diff --git a/src/app.css b/src/app.css index 79453ec..c0c8817 100644 --- a/src/app.css +++ b/src/app.css @@ -102,3 +102,77 @@ body::before { .tiptap .selectedCell { background-color: color-mix(in srgb, var(--primary) 12%, transparent); } + +/* Task list styles — shared between TipTap editor and markdown-it preview */ + +/* TipTap: ul[data-type="taskList"] | markdown-it: ul.task-list */ +.tiptap ul[data-type="taskList"], +.prose ul.task-list { + list-style: none; + padding-left: 0; + margin: 0.25rem 0; +} + +.tiptap ul[data-type="taskList"] li, +.prose ul.task-list li { + display: flex; + align-items: center; + gap: 0.375rem; + margin: 0; + padding: 0; +} + +.tiptap ul[data-type="taskList"] li::marker, +.prose ul.task-list li::marker { + content: none; +} + +/* TipTap: checkbox is inside a label */ +.tiptap ul[data-type="taskList"] li label { + display: flex; + align-items: center; + flex-shrink: 0; +} + +/* Shared checkbox styles */ +.tiptap ul[data-type="taskList"] li label input[type="checkbox"], +.prose ul.task-list .task-checkbox { + cursor: pointer; + margin: 0; + flex-shrink: 0; +} + +/* TipTap: text content is in a div>p */ +.tiptap ul[data-type="taskList"] li > div { + flex: 1; + min-width: 0; +} + +.tiptap ul[data-type="taskList"] li > div p { + margin: 0; +} + +/* Checked item styling */ +.tiptap ul[data-type="taskList"] li[data-checked="true"] > div { + text-decoration: line-through; + color: var(--text-muted); +} + +/* Override prose spacing for task lists */ +.prose ul[data-type="taskList"], +.prose ul.task-list { + padding-left: 0; + margin-top: 0.25rem; + margin-bottom: 0.25rem; +} + +.prose ul[data-type="taskList"] li, +.prose ul.task-list li { + padding-left: 0; + margin-top: 0; + margin-bottom: 0; +} + +.prose ul.task-list li p { + margin: 0; +} diff --git a/src/lib/components/FormattingToolbar.svelte b/src/lib/components/FormattingToolbar.svelte index 5a0e850..83b4075 100644 --- a/src/lib/components/FormattingToolbar.svelte +++ b/src/lib/components/FormattingToolbar.svelte @@ -6,6 +6,7 @@ Heading, List, ListOrdered, + ListChecks, TextQuote, CodeXml, Bold, @@ -222,7 +223,7 @@