/* Base de l'éditeur */ .ql-toolbar.ql-snow { background: var(--bg-secondary); border-color: var(--border-color); border-radius: var(--radius-sm) var(--radius-sm) 0 0; padding: var(--spacing-sm); display: flex; flex-wrap: wrap; gap: 5px; } .ql-container.ql-snow { background: var(--input-bg); border-color: var(--border-color); border-radius: 0 0 var(--radius-sm) var(--radius-sm); color: var(--text-primary); min-height: 300px; font-family: inherit; } /* Contenu de l'éditeur */ .ql-editor { color: var(--text-primary); padding: var(--spacing-md); font-size: 1rem; line-height: 1.6; } .ql-editor.ql-blank::before { color: var(--text-secondary); font-style: italic; left: var(--spacing-md); } /* Styles des éléments dans l'éditeur */ .ql-editor h1, .ql-editor h2, .ql-editor h3 { color: var(--text-primary); margin: 1em 0 0.5em; } .ql-editor blockquote { border-left: 4px solid var(--accent-primary); margin: 1.5em 0; padding-left: 1em; color: var(--text-secondary); } .ql-editor pre.ql-syntax { background: var(--bg-secondary); color: var(--text-primary); border-radius: var(--radius-sm); padding: var(--spacing-md); } /* Gestion des images dans l'éditeur */ .ql-editor img { max-width: 100% !important; height: auto; display: block; margin: var(--spacing-md) 0; } .ql-editor img.ql-selected { border: 2px solid var(--accent-primary); } .ql-editor .image-container { margin: var(--spacing-md) 0; max-width: 100%; } .ql-editor .ql-size-small img { max-width: 50%; margin: 0 auto; } .ql-editor .ql-size-large img { max-width: 100%; } .ql-editor .ql-align-center img { margin-left: auto; margin-right: auto; } .ql-editor .ql-align-right img { margin-left: auto; margin-right: 0; } /* Icônes de la barre d'outils */ .ql-snow .ql-stroke { stroke: var(--text-primary) !important; stroke-width: 1.2 !important; } .ql-snow .ql-fill, .ql-snow .ql-stroke.ql-fill { fill: var(--text-primary) !important; } .ql-snow .ql-picker { color: var(--text-primary) !important; } .ql-snow.ql-toolbar button { padding: 4px 6px; height: 28px; width: 28px; opacity: 0.9; } .ql-snow.ql-toolbar button svg { width: 20px; height: 20px; } /* États au survol et actif */ .ql-snow .ql-toolbar button:hover, .ql-snow .ql-toolbar button:focus, .ql-snow .ql-toolbar button.ql-active, .ql-snow .ql-toolbar .ql-picker-label:hover, .ql-snow .ql-toolbar .ql-picker-label.ql-active { color: var(--accent-primary) !important; opacity: 1; } .ql-snow .ql-toolbar button:hover .ql-stroke, .ql-snow .ql-toolbar button:focus .ql-stroke, .ql-snow .ql-toolbar button.ql-active .ql-stroke, .ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke, .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke { stroke: var(--accent-primary) !important; } .ql-snow .ql-toolbar button:hover .ql-fill, .ql-snow .ql-toolbar button:focus .ql-fill, .ql-snow .ql-toolbar button.ql-active .ql-fill, .ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill, .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill { fill: var(--accent-primary) !important; } /* Menus déroulants */ .ql-snow .ql-picker-options { background-color: var(--bg-secondary) !important; border-color: var(--border-color) !important; border-radius: var(--radius-sm); padding: var(--spacing-sm); } .ql-snow .ql-picker-options .ql-picker-item { color: var(--text-primary) !important; padding: 4px 8px; border-radius: var(--radius-sm); } .ql-snow .ql-picker-options .ql-picker-item:hover, .ql-snow .ql-picker-options .ql-picker-item.ql-selected { color: var(--accent-primary) !important; background-color: var(--bg-tertiary) !important; } /* Tooltip pour les liens */ .ql-snow .ql-tooltip { background-color: var(--bg-secondary); border: 1px solid var(--border-color); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); color: var(--text-primary); border-radius: var(--radius-sm); padding: var(--spacing-sm); z-index: 1000; } .ql-snow .ql-tooltip input[type=text] { background-color: var(--input-bg); border: 1px solid var(--border-color); color: var(--text-primary); padding: 4px 8px; border-radius: var(--radius-sm); width: 170px; margin: 0; } .ql-snow .ql-tooltip input[type=text]:focus { border-color: var(--accent-primary); outline: none; } .ql-snow .ql-tooltip a.ql-action, .ql-snow .ql-tooltip a.ql-remove { color: var(--accent-primary); padding: 4px 8px; margin: 0 4px; cursor: pointer; border-radius: var(--radius-sm); display: inline-block; text-decoration: none; } .ql-snow .ql-tooltip a.ql-action:hover, .ql-snow .ql-tooltip a.ql-remove:hover { color: var(--accent-secondary); background-color: var(--bg-tertiary); } /* Tooltip pour le redimensionnement des images */ .ql-snow .ql-tooltip[data-mode="image"] { padding: var(--spacing-sm); display: flex; gap: var(--spacing-sm); align-items: center; } .ql-snow .ql-tooltip[data-mode="image"] input[type="text"] { min-width: 200px; } /* Style des icônes dans la barre d'outils */ .ql-toolbar.ql-snow { background: var(--bg-secondary); border-color: var(--border-color); border-radius: var(--radius-sm) var(--radius-sm) 0 0; padding: var(--spacing-sm); display: flex; flex-wrap: wrap; gap: 5px; } /* États au survol des boutons */ .ql-toolbar.ql-snow button:hover { color: var(--accent-primary) !important; } .ql-toolbar.ql-snow button:hover svg { stroke: var(--accent-primary) !important; } .ql-toolbar.ql-snow button:hover .ql-stroke { stroke: var(--accent-primary) !important; } .ql-toolbar.ql-snow button:hover .ql-fill { fill: var(--accent-primary) !important; } /* Style des pickers (menus déroulants) */ .ql-toolbar.ql-snow .ql-picker-label:hover { color: var(--accent-primary) !important; } .ql-toolbar.ql-snow .ql-picker-label:hover .ql-stroke { stroke: var(--accent-primary) !important; } /* Style du séparateur dans l'éditeur */ .chapter-divider { border: none; border-top: 2px solid var(--accent-primary); margin: 2em 0; opacity: 0.5; transition: opacity var(--transition-fast); } .chapter-divider:hover { opacity: 0.8; } /* Style de base des icônes */ .ql-snow .ql-stroke { stroke: var(--text-primary); } .ql-snow .ql-fill { fill: var(--text-primary); } .ql-snow .ql-picker { color: var(--text-primary); } /* États actifs des boutons */ .ql-toolbar.ql-snow .ql-active, .ql-toolbar.ql-snow .ql-active .ql-stroke, .ql-toolbar.ql-snow .ql-active .ql-fill { color: var(--accent-primary) !important; stroke: var(--accent-primary) !important; fill: var(--accent-primary) !important; } /* Responsive */ @media (max-width: 768px) { .ql-snow.ql-toolbar { padding: var(--spacing-xs); } .ql-container.ql-snow { min-height: 200px; } .ql-editor .ql-size-small img { max-width: 75%; } .ql-editor img { max-width: 100% !important; } .ql-snow .ql-tooltip { left: 0 !important; top: 100% !important; width: 100%; position: fixed; transform: none !important; } .ql-snow .ql-tooltip input[type=text] { width: 100%; margin: 4px 0; } .tooltip:before { width: 200px; white-space: normal; text-align: center; } }