diff --git a/frontend/pluto_duck_frontend/app/editor-table.css b/frontend/pluto_duck_frontend/app/editor-table.css new file mode 100644 index 00000000..401cc0e3 --- /dev/null +++ b/frontend/pluto_duck_frontend/app/editor-table.css @@ -0,0 +1,42 @@ +.board-editor-prose .markdown-table-node { + margin: 8px 0; + overflow-x: auto; +} + +.board-editor-prose .markdown-table-node table { + font-size: 0.8rem; + border-collapse: collapse; + width: max-content; + min-width: 100%; + max-width: none; +} + +.board-editor-prose .markdown-table-node thead th { + text-align: left; + font-weight: 600; + padding: 8px 12px; + background: hsl(var(--muted)); + white-space: nowrap; + border-bottom: 2px solid hsl(var(--border)); +} + +.board-editor-prose .markdown-table-node tbody td { + text-align: left; + padding: 7px 12px; + color: hsl(var(--muted-foreground)); + white-space: nowrap; + background: hsl(var(--background)); + border-bottom: 1px solid hsl(var(--border)); +} + +.board-editor-prose .markdown-table-node tbody tr:last-child td { + border-bottom: none; +} + +.board-editor-prose .markdown-table-node tbody tr:hover td { + background: hsl(var(--accent)); +} + +.board-editor-prose .markdown-table-node :is(th, td)[contenteditable="true"] { + outline: none; +} diff --git a/frontend/pluto_duck_frontend/app/globals.css b/frontend/pluto_duck_frontend/app/globals.css index 5e228c18..a4642c76 100644 --- a/frontend/pluto_duck_frontend/app/globals.css +++ b/frontend/pluto_duck_frontend/app/globals.css @@ -1,3 +1,5 @@ +@import './editor-table.css'; + @tailwind base; @tailwind components; @tailwind utilities; @@ -217,6 +219,53 @@ margin-bottom: 0; } +.board-editor-prose hr { + border: 0; + border-top: 1px solid hsl(var(--border)); + margin: 1.25rem 0; +} + +.board-editor-prose .callout-node { + margin: 1rem 0; +} + +.board-editor-prose .callout-node-shell { + border-radius: 0.5rem; + padding: 0.625rem 0.75rem; +} + +.board-editor-prose .callout-node[data-callout-type="info"] .callout-node-shell { + background: hsl(210 100% 96%); +} + +.board-editor-prose .callout-node[data-callout-type="warning"] .callout-node-shell { + background: hsl(42 100% 94%); +} + +.board-editor-prose .callout-node[data-callout-type="success"] .callout-node-shell { + background: hsl(141 58% 94%); +} + +.board-editor-prose .callout-node[data-callout-type="error"] .callout-node-shell { + background: hsl(0 87% 95%); +} + +.dark .board-editor-prose .callout-node[data-callout-type="info"] .callout-node-shell { + background: hsl(210 35% 22%); +} + +.dark .board-editor-prose .callout-node[data-callout-type="warning"] .callout-node-shell { + background: hsl(40 30% 24%); +} + +.dark .board-editor-prose .callout-node[data-callout-type="success"] .callout-node-shell { + background: hsl(140 28% 24%); +} + +.dark .board-editor-prose .callout-node[data-callout-type="error"] .callout-node-shell { + background: hsl(0 28% 24%); +} + /* Chat prose typography: table overrides */ [role="log"] .prose :where([data-streamdown="table-wrapper"]) { margin: 8px 0; diff --git a/frontend/pluto_duck_frontend/app/layout.tsx b/frontend/pluto_duck_frontend/app/layout.tsx index 01913511..0cc6b6e1 100644 --- a/frontend/pluto_duck_frontend/app/layout.tsx +++ b/frontend/pluto_duck_frontend/app/layout.tsx @@ -1,4 +1,5 @@ import type { ReactNode } from 'react'; +import Script from 'next/script'; import './globals.css'; import { Providers } from './providers'; @@ -13,6 +14,11 @@ export default function RootLayout({ children }: { children: ReactNode }) { {children} + {/* Temporary: Figma capture script - REMOVE after capture */} +