/* Rich text editor: ProseMirror styles using shadcn design tokens */ .rich-text-editor.ProseMirror { color: var(--foreground); caret-color: var(--foreground); } .rich-text-editor.ProseMirror:focus { outline: none; } /* Placeholder */ .rich-text-editor .is-editor-empty:first-child::before { content: attr(data-placeholder); float: left; color: var(--muted-foreground); pointer-events: none; height: 0; } /* Headings */ .rich-text-editor h1 { font-size: 1.125rem; font-weight: 700; margin-top: 1.25rem; margin-bottom: 0.5rem; line-height: 1.4; } .rich-text-editor h2 { font-size: 1rem; font-weight: 600; margin-top: 1rem; margin-bottom: 0.5rem; line-height: 1.4; } .rich-text-editor h3 { font-size: 0.875rem; font-weight: 600; margin-top: 0.75rem; margin-bottom: 0.25rem; line-height: 1.4; } /* Paragraphs */ .rich-text-editor p { margin-top: 0.375rem; margin-bottom: 0.375rem; line-height: 1.625; } /* First child should not have top margin */ .rich-text-editor > *:first-child { margin-top: 0; } /* Last child should not have bottom margin */ .rich-text-editor > *:last-child { margin-bottom: 0; } /* Lists */ .rich-text-editor ul { list-style-type: disc; padding-inline-start: 1.25rem; margin: 0.375rem 0; } .rich-text-editor ol { list-style-type: decimal; padding-inline-start: 1.25rem; margin: 0.375rem 0; } .rich-text-editor li { margin: 0.125rem 0; line-height: 1.625; } .rich-text-editor li::marker { color: var(--muted-foreground); } /* Inline code */ .rich-text-editor code { font-family: var(--font-mono, ui-monospace, monospace); font-size: 0.8em; background: var(--muted); color: var(--foreground); padding: 0.15em 0.35em; border-radius: calc(var(--radius) * 0.6); } /* Code blocks */ .rich-text-editor pre { background: var(--muted); border-radius: var(--radius); padding: 0.75rem 1rem; margin: 0.5rem 0; overflow-x: auto; } .rich-text-editor pre code { background: none; padding: 0; font-size: 0.8125rem; line-height: 1.6; } /* Blockquotes */ .rich-text-editor blockquote { border-left: 2px solid var(--border); padding-left: 0.75rem; margin: 0.5rem 0; color: var(--muted-foreground); } /* Horizontal rules */ .rich-text-editor hr { border: none; border-top: 1px solid var(--border); margin: 1rem 0; } /* Links */ .rich-text-editor a { color: var(--primary); text-decoration: underline; text-underline-offset: 2px; } /* Strong / emphasis */ .rich-text-editor strong { font-weight: 600; } .rich-text-editor em { font-style: italic; } .rich-text-editor s { text-decoration: line-through; color: var(--muted-foreground); }