diff --git a/docs/TOOLBAR_DESIGN_ANALYSIS.md b/docs/TOOLBAR_DESIGN_ANALYSIS.md new file mode 100644 index 0000000..5aa8ecb --- /dev/null +++ b/docs/TOOLBAR_DESIGN_ANALYSIS.md @@ -0,0 +1,435 @@ +# ๐ŸŽฏ 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)