# ๐ŸŽฏ Analyse : Architecture de Toolbar pour ObsiGate > **Date** : 2026-06-05 > **Auteur** : Hermes-Claw (Agent IA) > **Contexte** : Recherche et recommandation du meilleur design de barre d'outils pour l'รฉditeur ObsiGate > **Fonctionnalitรฉs cibles** : ร‰dition Markdown, Actions IA, Insertion PDF, Insertion Images --- ## ๐Ÿ“‹ Sources d'inspiration L'analyse repose sur l'รฉtude des รฉditeurs leaders du marchรฉ : | ร‰diteur | Pattern clรฉ | Pertinence pour ObsiGate | |---------|-------------|--------------------------| | **Notion** | Slash menu + Bubble menu + Quick insert `+` | โญโญโญโญโญ Forte | | **Novel.sh** | Slash menu + AI autocomplete (`++`) | โญโญโญโญโญ Forte | | **Medium** | Bubble menu minimal sur sรฉlection | โญโญโญโญ ร‰levรฉe | | **Dropbox Paper** | Quick insert `+` + Slash commands | โญโญโญโญ ร‰levรฉe | | **Cursor / Windsurf** | AI Side Panel + Inline AI | โญโญโญโญ ร‰levรฉe | | **Google Docs** | Top toolbar traditionnelle | โญโญ Faible (trop chargรฉe) | | **Obsidian** | Command palette + Sidebar | โญโญโญ Moyenne | | **Tiptap** | API de menus : Fixed / Bubble / Floating / Slash | โญโญโญโญโญ Fondation technique | --- ## ๐Ÿ† Recommandation : Architecture Multi-Zone Les รฉditeurs modernes n'utilisent **plus une toolbar unique** en haut. Ils distribuent les contrรดles dans **5 zones contextuelles** qui apparaissent uniquement quand elles sont pertinentes. ### Principe fondamental > **"Montre le bon contrรดle, au bon endroit, au bon moment."** Une toolbar fixe traditionnelle (style Google Docs) **ne fonctionne plus** pour un รฉditeur moderne avec IA intรฉgrรฉe. La complexitรฉ est trop grande pour tout afficher en permanence. --- ## ๐Ÿ“ Zone 1 โ€” Top Fixed Bar (toujours visible) ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ˜ฐ [Obsigate] Document Title... ๐Ÿ”ฎ AI ๐Ÿ“Ž โš™๏ธ ๐Ÿ’พ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### Contenu | Position | ร‰lรฉment | Description | |----------|---------|-------------| | **Gauche** | โ˜ฐ Menu hamburger | Navigation, settings, historique | | **Gauche** | Titre du document | ร‰ditable inline, se sauvegarde automatiquement | | **Droite** | ๐Ÿ”ฎ **AI Assistant** | Bouton principal, couleur d'accent โ€” le diffรฉrenciateur produit | | **Droite** | ๐Ÿ“Ž Quick Insert | Dropdown : Image, PDF, Table, Embed | | **Droite** | โš™๏ธ Actions | Export, Settings, Share | | **Droite** | ๐Ÿ’พ Save indicator | Auto-save status (saved / saving / error) | ### Design notes - Hauteur : ~48px - Fond : lรฉgรจrement distinct de l'รฉditeur (ombre ou bordure) - Le bouton AI est le plus visible (couleur primaire, lรฉgรจre glow) - Barre fixe au scroll (sticky top) ### Pourquoi Barre minimale, toujours accessible. Les actions document-level (PDF, images) sont ร  portรฉe mais ne polluent pas l'interface. Le bouton AI est le **hero** โ€” le diffรฉrenciateur d'ObsiGate face aux autres รฉditeurs. --- ## ๐Ÿ“ Zone 2a โ€” Slash Command Menu (tape `/` sur ligne vide) ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐Ÿ” Filtrer... โ”‚ โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”‚ โ”‚ ๐Ÿ“ Text Just start โ”‚ โ”‚ โœ… To-do List Track... โ”‚ โ”‚ H1 Heading 1 Big... โ”‚ โ”‚ H2 Heading 2 Medium... โ”‚ โ”‚ H3 Heading 3 Small... โ”‚ โ”‚ โ€ข Bullet List Simple... โ”‚ โ”‚ 1. Numbered List Ordered.. โ”‚ โ”‚ ๐Ÿ’ฌ Quote Block... โ”‚ โ”‚ ๐Ÿ“‹ Code Block Syntax... โ”‚ โ”‚ โ”€โ”€ Divider Horiz... โ”‚ โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”‚ โ”‚ ๐Ÿ–ผ๏ธ Insert Image Upload... โ”‚ โ”‚ ๐Ÿ“„ Insert PDF Attach... โ”‚ โ”‚ ๐Ÿ“Š Insert Table Data... โ”‚ โ”‚ ๐Ÿ”— Insert Link URL... โ”‚ โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”‚ โ”‚ โœจ AI: Continue Write... โ”‚ โ”‚ โœจ AI: Summarize Condense โ”‚ โ”‚ โœจ AI: Translate To... โ”‚ โ”‚ โœจ AI: Brainstorm Ideas... โ”‚ โ”‚ โœจ AI: Fix grammar Correct โ”‚ โ”‚ โœจ AI: Change tone Formal... โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### Design notes - Menu flottant (popover) positionnรฉ sous le curseur - Hauteur max : ~400px, scroll si plus - Chaque item : **icรดne + titre + description courte** - Sections sรฉparรฉes par un divider subtil - Navigation : flรจches โ†‘โ†“ + Entrรฉe pour sรฉlectionner - Barre de filtrage en haut (taper filtre les rรฉsultats) - Fond : blanc/carte avec ombre lรฉgรจre + border-radius 8px - Animation : fade-in + slide-up (150ms) ### Pourquoi c'est le game-changer Le slash menu **remplace 90% des besoins de toolbar**. Plus besoin d'une barre fixe pour les actions de formatage. L'utilisateur tape `/` et tout est lร , accessible au clavier. C'est le pattern qui a fait le succรจs de Notion. --- ## ๐Ÿ“ Zone 2b โ€” Bubble Menu (apparaรฎt sur sรฉlection de texte) ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐ ๐ผ Sฬถ ๐Ÿ”— โ‹ฏ โœจ AI โ–พ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### Contenu | Icรดne | Action | Raccourci | |-------|--------|-----------| | **B** | Bold | Ctrl+B | | *I* | Italic | Ctrl+I | | ~~S~~ | Strikethrough | Ctrl+Shift+X | | `` | Code inline | Ctrl+E | | ๐Ÿ”— | Link | Ctrl+K | | โ‹ฏ | More (Quote, Highlight) | โ€” | | โœจ AI โ–พ | Dropdown AI actions | โ€” | ### Dropdown AI (โœจ) | Action | Description | |--------|-------------| | Improve writing | Amรฉliore le style | | Fix spelling & grammar | Corrige les erreurs | | Translate to... | Traduit vers langue cible | | Continue writing | Continue le texte | | Summarize | Rรฉsume la sรฉlection | | Change tone | Ajuste le ton (formel/informel) | | Explain | Explique le texte sรฉlectionnรฉ | ### Design notes - Apparaรฎt **au-dessus** de la sรฉlection (รฉvite de cacher le texte) - Position calculรฉe dynamiquement (reste dans le viewport) - Animation : scale-in + fade (120ms) - Fond : blanc + ombre `0 4px 12px rgba(0,0,0,0.15)` + radius 8px - Disparaรฎt quand la sรฉlection est perdue - Dรฉlai d'apparition : 50ms aprรจs sรฉlection (pas de flash intempestif) ### Pourquoi Pattern Medium/Notion. Le plus efficace car le curseur est dรฉjร  proche de la sรฉlection. ร‰vite les allers-retours avec une toolbar fixe distante. --- ## ๐Ÿ“ Zone 3 โ€” Floating Quick Insert (ligne vide) ``` โŠ• โ”‚___________________________________________ ``` ### Comportement - Apparaรฎt ร  gauche d'une ligne vide quand le curseur est dessus - Au clic sur โŠ•, ouvre un mini-menu compact (4-5 options) ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐Ÿ–ผ๏ธ Image โ”‚ โ”‚ ๐Ÿ“„ PDF โ”‚ โ”‚ ๐Ÿ“‹ Code Block โ”‚ โ”‚ ๐Ÿ“Š Table โ”‚ โ”‚ โœจ AI Actions โ–ธ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### Design notes - Icรดne โŠ• semi-transparente, devient opaque au hover - Cercle de 24px, centrรฉ verticalement sur la ligne - Mini-menu : compact, sans description (icรดne + texte uniquement) - Animation : fade-in (100ms) ### Pourquoi Pattern Dropbox Paper. **Ultra-rapide** pour les insertions frรฉquentes โ€” pas besoin de taper `/` ni d'aller dans la toolbar. Complรฉmentaire au slash menu. --- ## ๐Ÿ“ Zone 4 โ€” AI Side Panel (toggle droite) ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โœจ AI Assistant โ”‚ โ”‚ Zone d'รฉdition โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ Ceci est le contenu โ”‚ ๐Ÿ’ฌ Chat โ”‚ โ”‚ du document en cours โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ d'รฉdition... โ”‚ โ”‚ Pose ta โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ question.. โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ [Send] โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ“‹ Suggestions โ”‚ โ”‚ โ”‚ โ€ข Improve style โ”‚ โ”‚ โ”‚ โ€ข Add section โ”‚ โ”‚ โ”‚ โ€ข Translate โ”‚ โ”‚ โ”‚ โ€ข Generate PDF โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### Contenu | Section | Description | |---------|-------------| | **Chat** | Conversation IA contextuelle (connaรฎt le document) | | **Suggestions** | Actions IA contextuelles basรฉes sur le contenu | | **History** | Historique des interactions IA rรฉcentes | | **One-click actions** | "Fix grammar", "Translate to EN", "Generate summary" | ### Design notes - Panel rรฉtractable (toggle via bouton ๐Ÿ”ฎ de la Zone 1) - Largeur : 320-380px - Fond lรฉgรจrement distinct - Slide-in depuis la droite (200ms) - L'รฉditeur se rรฉduit (responsive, pas d'overlay) - Persiste entre les sessions (รฉtat sauvegardรฉ) - Sur mobile : passe en bottom sheet ### Pourquoi Pour les interactions AI complexes (brainstorm, rรฉรฉcriture multi-paragraphes, recherche). Le bubble menu gรจre le micro ; le panel gรจre le macro. Pattern Cursor/Windsurf. --- ## ๐Ÿ“ Zone 5 โ€” Drag & Drop Zone (invisible, toujours actif) ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ โ”Œ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ” โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ–ผ๏ธ Dรฉposez vos fichiers ici โ”‚ โ”‚ โ”‚ โ”‚ Images, PDFs, documents โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”” โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”˜ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### Comportement - Zone active sur tout l'รฉditeur - Au survol d'un fichier : bordure pointillรฉe bleue + overlay semi-transparent - Accepte : images (png, jpg, webp, gif, svg), PDFs, .md, .txt - Feedback visuel pendant le drop : animation + barre de progression ### Design notes - Bordure pointillรฉe : 2px dashed `#4A90D9` - Overlay : fond bleu ร  5% d'opacitรฉ - Icรดne + texte centrรฉs, large - Disparaรฎt quand le drag quitte la zone - Upload progressif avec prรฉvisualisation --- ## ๐ŸŽจ Layout complet intรฉgrรฉ ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ˜ฐ [ObsiGate] Mon Document... ๐Ÿ”ฎ AI ๐Ÿ“Ž Insert โš™๏ธ ๐Ÿ’พ โ”‚ โ† Zone 1 โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”‚ โ”‚ โŠ• โ”‚ ## Introduction โ”‚ โœจ AI โ”‚ โ† Zone 4 โ”‚ โ”‚ โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”‚ โ”‚ โ”‚ Ceci est le contenu du document... โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ Chat โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ๐ ๐ผ Sฬถ ๐Ÿ”— โœจ AI โ–พโ”‚ โ† Zone 2b (sel.) โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ Du texte sรฉlectionnรฉ ici... โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โŠ• โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ / โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ“ Text โ”‚ โ† Zone 2a (slash) โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ H1 Heading 1 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โœจ AI: Improve writing โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โŒจ๏ธ / pour menu | Ctrl+K pour commandes | 1200 mots โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### Barre de statut (footer) - Toujours visible, fine (24-28px) - Affiche : raccourcis utiles, compteur de mots, statut connexion - Icรดne IA clignotante si l'IA est en train de traiter --- ## ๐ŸŽฏ Tableau comparatif : besoin vs solution | Besoin ObsiGate | Solution | Pattern utilisรฉ par | |-----------------|----------|---------------------| | ร‰dition Markdown rapide | Slash `/` + Bubble menu | Notion, Medium, Dropbox Paper | | Actions IA frรฉquentes | Bouton ๐Ÿ”ฎ proรฉminent + Bubble AI dropdown + Panel | Cursor, Novel.sh, Windsurf | | Insertion PDF/Images | Slash menu + Quick insert โŠ• + Drag & drop | Notion, Dropbox Paper | | Pas de clutter | Zones contextuelles (rien de visible inutilement) | Medium, iA Writer | | Accessibilitรฉ clavier | Tout accessible via `/`, `Ctrl+K`, `Ctrl+P` | Notion, Linear | | Feedback IA | Barre de statut + animations | Cursor, Copilot | --- ## ๐Ÿ”‘ Les 3 patterns diffรฉrenciateurs ### 1. Slash Command Menu Le **game-changer**. Plus besoin de toolbar fixe pour 90% des actions. Tu tapes `/` et tout est lร , navigable au clavier. ### 2. L'IA comme citoyen de premiรจre classe L'IA n'est **pas cachรฉe** dans un sous-menu. Elle est : - En bouton dรฉdiรฉ visible (Zone 1) - Dans le slash menu (Zone 2a) - Dans le bubble menu (Zone 2b) - En panel latรฉral (Zone 4) ### 3. Bubble Menu on Selection Plus proche du curseur, plus rapide. Medium l'a popularisรฉ, tout le monde l'a copiรฉ depuis. --- ## ๐Ÿ› ๏ธ Implรฉmentation technique recommandรฉe ### Option A : Tiptap + Custom Extensions (recommandรฉ) ```javascript // Base : Tiptap (React) import { Editor } from '@tiptap/react' import StarterKit from '@tiptap/starter-kit' // Extensions pour ObsiGate import { SlashCommand } from './extensions/slash-command' import { BubbleMenuAI } from './extensions/bubble-menu-ai' import { QuickInsert } from './extensions/quick-insert' import { AIPanel } from './extensions/ai-panel' import { DropZone } from './extensions/drop-zone' ``` **Avantages** : - Contrรดle total sur chaque zone - ร‰cosystรจme mature (ProseMirror) - Extensions custom faciles ร  crรฉer - Support React/Vue natif ### Option B : Novel.sh (rapide) ```javascript import { Editor } from 'novel' ``` **Avantages** : - 80% du comportement Notion direct - Slash menu + AI autocomplete intรฉgrรฉs - MIT License - Moins flexible que Tiptap pur ### Bibliothรจques UI complรฉmentaires | Composant | Librairie | Usage | |-----------|-----------|-------| | Popover / Menu flottant | `@radix-ui/react-popover` | Slash menu, Bubble menu | | Panel rรฉtractable | `@radix-ui/react-dialog` ou custom | AI Panel | | Drag & Drop | `react-dnd` ou natif HTML5 | Zone 5 | | Animations | `framer-motion` ou CSS transitions | Toutes les zones | --- ## ๐Ÿ“ฑ Considรฉrations Responsive / Mobile ### Desktop (>768px) - Toutes les zones actives - AI Panel : rรฉtractable ร  droite ### Tablette (480-768px) - AI Panel : overlay (pas de rรฉduction de l'รฉditeur) - Bubble menu : taille rรฉduite - Slash menu : pleine largeur ### Mobile (<480px) - AI Panel : bottom sheet - Bubble menu : repositionnรฉ en bas d'รฉcran - Top bar : simplifiรฉe (icรดnes uniquement) - Quick insert โŠ• : plus grand (32px) pour le toucher --- ## โšก Raccourcis clavier | Raccourci | Action | Zone | |-----------|--------|------| | `/` | Slash command menu | 2a | | `Ctrl+B` | Bold | 2b | | `Ctrl+I` | Italic | 2b | | `Ctrl+K` | Insert link | 2b | | `Ctrl+Shift+I` | Insert image | 2a | | `Ctrl+Shift+P` | Insert PDF | 2a | | `Ctrl+J` | Toggle AI Panel | 4 | | `Ctrl+Shift+K` | AI quick action | 2b | | `Ctrl+P` | Quick open / Command palette | โ€” | | `Ctrl+S` | Force save | 1 | | `Ctrl+/` | Show all shortcuts | โ€” | --- ## ๐Ÿงช Prochaines รฉtapes 1. **Mockup HTML interactif** โ€” Crรฉer un prototype statique pour valider le layout 2. **POC Tiptap** โ€” Implรฉmenter les zones 1, 2a, 2b dans un projet test 3. **User testing** โ€” Faire tester le prototype pour recueillir du feedback 4. **Implรฉmentation progressive** : - Sprint 1 : Zone 1 (Top bar) + Zone 2a (Slash menu) - Sprint 2 : Zone 2b (Bubble menu) + Zone 3 (Quick insert) - Sprint 3 : Zone 4 (AI Panel) + Zone 5 (Drag & drop) 5. **Intรฉgration IA** โ€” Brancher le backend AI existant (`backend/ai_routes.py`) au panel et au bubble menu --- ## ๐Ÿ“š Rรฉfรฉrences - [Tiptap Editor Documentation](https://tiptap.dev/docs) - [Novel.sh โ€” Notion-style Editor](https://novel.sh) - [Notion โ€” Onboarding & Editor Design](https://www.notion.so) - [Medium โ€” Design Blog](https://medium.design) - [Dropbox Paper](https://www.dropbox.com/paper) - [Radix UI Primitives](https://www.radix-ui.com/primitives) - [ProseMirror](https://prosemirror.net)