diff --git a/frontend/src/app.css b/frontend/src/app.css index c9eb89b..aad9d43 100644 --- a/frontend/src/app.css +++ b/frontend/src/app.css @@ -28,53 +28,51 @@ html, body { .min-h-screen { background-color: var(--color-bg) !important; } div[style*="display: contents"] { background-color: var(--color-bg) !important; } -/* Override Tailwind defaults for dark theme */ -@layer base { - /* Overstyr alle bg-white til surface */ - .bg-white { background-color: var(--color-surface) !important; } - .bg-gray-50 { background-color: var(--color-bg) !important; } - .bg-gray-100 { background-color: var(--color-surface) !important; } - .bg-gray-200 { background-color: var(--color-border) !important; } +/* Override Tailwind defaults for dark theme — utenfor @layer for høy spesifisitet */ + .bg-white { background-color: #1c1c20 !important; } + .bg-gray-50 { background-color: #0a0a0b !important; } + .bg-gray-100 { background-color: #1c1c20 !important; } + .bg-gray-200 { background-color: #2a2a2e !important; } /* Tekst */ - .text-gray-900 { color: var(--color-text) !important; } - .text-gray-800 { color: var(--color-text) !important; } - .text-gray-700 { color: var(--color-text-muted) !important; } - .text-gray-600 { color: var(--color-text-muted) !important; } - .text-gray-500 { color: var(--color-text-muted) !important; } - .text-gray-400 { color: var(--color-text-dim) !important; } - .text-gray-300 { color: var(--color-text-dim) !important; } + .text-gray-900 { color: #e8e8ec !important; } + .text-gray-800 { color: #e8e8ec !important; } + .text-gray-700 { color: #8a8a96 !important; } + .text-gray-600 { color: #8a8a96 !important; } + .text-gray-500 { color: #8a8a96 !important; } + .text-gray-400 { color: #5a5a66 !important; } + .text-gray-300 { color: #5a5a66 !important; } /* Borders */ - .border-gray-200 { border-color: var(--color-border) !important; } - .border-gray-300 { border-color: var(--color-border) !important; } - .border-gray-100 { border-color: var(--color-border) !important; } + .border-gray-200 { border-color: #2a2a2e !important; } + .border-gray-300 { border-color: #2a2a2e !important; } + .border-gray-100 { border-color: #2a2a2e !important; } /* Hover states */ - .hover\:bg-gray-200:hover { background-color: var(--color-surface-hover) !important; } - .hover\:bg-gray-100:hover { background-color: var(--color-surface-hover) !important; } - .hover\:text-gray-700:hover { color: var(--color-text) !important; } + .hover\:bg-gray-200:hover { background-color: #242428 !important; } + .hover\:bg-gray-100:hover { background-color: #242428 !important; } + .hover\:text-gray-700:hover { color: #e8e8ec !important; } /* Accent-farger for knapper */ - .bg-indigo-500, .bg-indigo-600 { background-color: var(--color-accent) !important; } - .hover\:bg-indigo-600:hover, .hover\:bg-indigo-700:hover { background-color: var(--color-accent-hover) !important; } - .text-indigo-600, .text-indigo-500, .text-indigo-700 { color: var(--color-accent) !important; } - .bg-indigo-50, .bg-indigo-100 { background-color: var(--color-accent-glow) !important; } - .border-indigo-300 { border-color: var(--color-accent) !important; } - .hover\:border-indigo-300:hover { border-color: var(--color-accent) !important; } + .bg-indigo-500, .bg-indigo-600 { background-color: #6366f1 !important; } + .hover\:bg-indigo-600:hover, .hover\:bg-indigo-700:hover { background-color: #7577f5 !important; } + .text-indigo-600, .text-indigo-500, .text-indigo-700 { color: #6366f1 !important; } + .bg-indigo-50, .bg-indigo-100 { background-color: rgba(99, 102, 241, 0.15) !important; } + .border-indigo-300 { border-color: #6366f1 !important; } + .hover\:border-indigo-300:hover { border-color: #6366f1 !important; } /* Inputs og textareas */ input, textarea, select { - background-color: var(--color-surface) !important; - color: var(--color-text) !important; - border-color: var(--color-border) !important; + background-color: #1c1c20 !important; + color: #e8e8ec !important; + border-color: #2a2a2e !important; } input:focus, textarea:focus, select:focus { - border-color: var(--color-accent) !important; - outline-color: var(--color-accent) !important; + border-color: #6366f1 !important; + outline-color: #6366f1 !important; } input::placeholder, textarea::placeholder { - color: var(--color-text-dim) !important; + color: #5a5a66 !important; } /* Shadows */ @@ -82,13 +80,12 @@ div[style*="display: contents"] { background-color: var(--color-bg) !important; .shadow { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4) !important; } /* Status-farger */ - .text-green-600 { color: var(--color-success) !important; } - .text-yellow-600 { color: var(--color-warning) !important; } - .text-red-600 { color: var(--color-error) !important; } + .text-green-600 { color: #22c55e !important; } + .text-yellow-600 { color: #f59e0b !important; } + .text-red-600 { color: #ef4444 !important; } /* Scrollbar */ ::-webkit-scrollbar { width: 8px; } - ::-webkit-scrollbar-track { background: var(--color-bg); } - ::-webkit-scrollbar-thumb { background: var(--color-border); border-radius: 4px; } - ::-webkit-scrollbar-thumb:hover { background: var(--color-border-hover); } -} + ::-webkit-scrollbar-track { background: #0a0a0b; } + ::-webkit-scrollbar-thumb { background: #2a2a2e; border-radius: 4px; } + ::-webkit-scrollbar-thumb:hover { background: #3a3a3e; } diff --git a/frontend/src/app.html b/frontend/src/app.html index a69058b..b935e77 100644 --- a/frontend/src/app.html +++ b/frontend/src/app.html @@ -11,7 +11,7 @@ %sveltekit.head% - +
%sveltekit.body%
diff --git a/frontend/src/lib/components/ContextHeader.svelte b/frontend/src/lib/components/ContextHeader.svelte index c697ffc..3cc2a9d 100644 --- a/frontend/src/lib/components/ContextHeader.svelte +++ b/frontend/src/lib/components/ContextHeader.svelte @@ -282,8 +282,8 @@ /* Context Header */ /* ================================================================= */ .context-header { - border-bottom: 1px solid #e5e7eb; - background: white; + border-bottom: 1px solid #2a2a2e; + background: #1c1c20; flex-shrink: 0; z-index: 30; position: relative; @@ -318,7 +318,7 @@ /* ================================================================= */ .context-back { font-size: 16px; - color: #9ca3af; + color: #5a5a66; text-decoration: none; flex-shrink: 0; padding: 4px; @@ -348,13 +348,13 @@ cursor: pointer; font-size: 15px; font-weight: 600; - color: #111827; + color: #e8e8ec; max-width: 300px; transition: background 0.12s, border-color 0.12s; } .context-selector-trigger:hover { - background: #f3f4f6; + background: #242428; border-color: #e5e7eb; } @@ -366,7 +366,7 @@ .context-selector-chevron { font-size: 10px; - color: #9ca3af; + color: #5a5a66; transition: transform 0.15s; flex-shrink: 0; } @@ -384,8 +384,8 @@ left: 0; min-width: 260px; max-width: 360px; - background: white; - border: 1px solid #e5e7eb; + background: #1c1c20; + border: 1px solid #2a2a2e; border-radius: 8px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); z-index: 50; @@ -400,16 +400,16 @@ .context-selector-search-input { width: 100%; padding: 6px 10px; - border: 1px solid #e5e7eb; + border: 1px solid #2a2a2e; border-radius: 6px; font-size: 13px; outline: none; - background: #fafbfc; + background: #141416; } .context-selector-search-input:focus { border-color: #4f46e5; - background: white; + background: #1c1c20; } .context-selector-list { @@ -429,13 +429,13 @@ background: transparent; cursor: pointer; font-size: 13px; - color: #374151; + color: #8a8a96; text-align: left; transition: background 0.1s; } .context-selector-item:hover { - background: #f3f4f6; + background: #242428; } .context-selector-item.current { @@ -461,7 +461,7 @@ padding: 16px; text-align: center; font-size: 12px; - color: #9ca3af; + color: #5a5a66; } /* ================================================================= */ @@ -480,8 +480,8 @@ top: calc(100% + 4px); right: 0; min-width: 200px; - background: white; - border: 1px solid #e5e7eb; + background: #1c1c20; + border: 1px solid #2a2a2e; border-radius: 8px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); z-index: 50; @@ -493,7 +493,7 @@ padding: 6px 10px 4px; font-size: 11px; font-weight: 600; - color: #9ca3af; + color: #5a5a66; text-transform: uppercase; letter-spacing: 0.05em; } @@ -509,13 +509,13 @@ background: transparent; cursor: pointer; font-size: 13px; - color: #374151; + color: #8a8a96; text-align: left; transition: background 0.1s; } .tool-menu-item:hover:not(:disabled) { - background: #f3f4f6; + background: #242428; } .tool-menu-item:disabled { @@ -524,7 +524,7 @@ } .tool-menu-item-active { - color: #9ca3af; + color: #5a5a66; } .tool-menu-item-icon { @@ -538,8 +538,8 @@ .tool-menu-item-badge { font-size: 10px; - color: #9ca3af; - background: #f3f4f6; + color: #5a5a66; + background: #242428; padding: 1px 6px; border-radius: 4px; } @@ -566,7 +566,7 @@ font-size: 12px; font-weight: 500; cursor: pointer; - background: #f3f4f6; + background: #242428; color: #4b5563; transition: background 0.12s; } diff --git a/frontend/src/lib/components/blockshell/BlockShell.svelte b/frontend/src/lib/components/blockshell/BlockShell.svelte index 1ae64e9..e397e8f 100644 --- a/frontend/src/lib/components/blockshell/BlockShell.svelte +++ b/frontend/src/lib/components/blockshell/BlockShell.svelte @@ -425,8 +425,8 @@ position: relative; display: flex; flex-direction: column; - background: white; - border: 1px solid #e5e7eb; + background: #1c1c20; + border: 1px solid #2a2a2e; border-radius: 8px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); overflow: hidden; @@ -484,7 +484,7 @@ user-select: none; flex-shrink: 0; min-height: 36px; - background: #fafbfc; + background: #141416; } .blockshell-dragging .blockshell-header { @@ -507,7 +507,7 @@ .blockshell-title { font-size: 13px; font-weight: 600; - color: #374151; + color: #8a8a96; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; @@ -531,13 +531,13 @@ border-radius: 4px; cursor: pointer; font-size: 16px; - color: #6b7280; + color: #8a8a96; transition: background 0.12s, color 0.12s; } .blockshell-btn:hover { - background: #f3f4f6; - color: #374151; + background: #242428; + color: #8a8a96; } .blockshell-btn-close:hover { @@ -556,7 +556,7 @@ padding: 16px; text-align: center; font-size: 13px; - color: #9ca3af; + color: #5a5a66; } /* --- Drop overlay --- */ diff --git a/frontend/src/lib/components/canvas/Canvas.svelte b/frontend/src/lib/components/canvas/Canvas.svelte index 1790820..77ac9aa 100644 --- a/frontend/src/lib/components/canvas/Canvas.svelte +++ b/frontend/src/lib/components/canvas/Canvas.svelte @@ -575,8 +575,8 @@ align-items: center; gap: 4px; padding: 4px 8px; - background: white; - border: 1px solid #e5e7eb; + background: #1c1c20; + border: 1px solid #2a2a2e; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.1); } @@ -592,12 +592,12 @@ border-radius: 6px; cursor: pointer; font-size: 16px; - color: #374151; + color: #8a8a96; transition: background 0.15s; } .canvas-toolbar-btn:hover { - background: #f3f4f6; + background: #242428; } .canvas-toolbar-active { @@ -607,7 +607,7 @@ .canvas-toolbar-zoom { font-size: 12px; - color: #6b7280; + color: #8a8a96; min-width: 40px; text-align: center; font-variant-numeric: tabular-nums; diff --git a/frontend/src/lib/components/traits/CalendarTrait.svelte b/frontend/src/lib/components/traits/CalendarTrait.svelte index 0beb76f..34311e1 100644 --- a/frontend/src/lib/components/traits/CalendarTrait.svelte +++ b/frontend/src/lib/components/traits/CalendarTrait.svelte @@ -481,7 +481,7 @@ align-items: center; justify-content: center; flex: 1; - color: #9ca3af; + color: #5a5a66; font-size: 13px; } @@ -503,18 +503,18 @@ justify-content: center; width: 28px; height: 28px; - border: 1px solid #e5e7eb; - background: white; + border: 1px solid #2a2a2e; + background: #1c1c20; border-radius: 6px; cursor: pointer; font-size: 12px; - color: #6b7280; + color: #8a8a96; flex-shrink: 0; } .cal-nav-btn:hover { - background: #f9fafb; - color: #374151; + background: #141416; + color: #8a8a96; } .cal-nav-center { @@ -527,17 +527,17 @@ .cal-nav-title { font-size: 13px; font-weight: 600; - color: #1f2937; + color: #e8e8ec; white-space: nowrap; } .cal-today-btn { padding: 2px 6px; border: none; - background: #f3f4f6; + background: #242428; border-radius: 4px; font-size: 10px; - color: #6b7280; + color: #8a8a96; cursor: pointer; } @@ -558,8 +558,8 @@ .cal-day-headers { display: grid; grid-template-columns: repeat(7, 1fr); - border-bottom: 1px solid #e5e7eb; - background: #f9fafb; + border-bottom: 1px solid #2a2a2e; + background: #141416; position: sticky; top: 0; z-index: 1; @@ -569,7 +569,7 @@ text-align: center; font-size: 10px; font-weight: 600; - color: #9ca3af; + color: #5a5a66; padding: 4px 0; text-transform: uppercase; letter-spacing: 0.03em; @@ -592,7 +592,7 @@ } .cal-day-other { - background: #fafbfc; + background: #141416; } .cal-day-today { @@ -614,7 +614,7 @@ .cal-day-num { font-size: 11px; font-weight: 500; - color: #6b7280; + color: #8a8a96; line-height: 1; } @@ -710,7 +710,7 @@ .cal-add-form { margin-top: 2px; padding: 3px; - background: white; + background: #1c1c20; border: 1px solid #bfdbfe; border-radius: 4px; } @@ -718,7 +718,7 @@ .cal-add-input { width: 100%; padding: 2px 4px; - border: 1px solid #e5e7eb; + border: 1px solid #2a2a2e; border-radius: 3px; font-size: 10px; outline: none; @@ -765,12 +765,12 @@ border-radius: 3px; font-size: 10px; background: transparent; - color: #6b7280; + color: #8a8a96; cursor: pointer; } .cal-add-cancel:hover { - background: #f3f4f6; + background: #242428; } /* ================================================================= */ @@ -789,10 +789,10 @@ font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; - color: #9ca3af; + color: #5a5a66; position: sticky; top: 0; - background: white; + background: #1c1c20; } .cal-list-item { @@ -806,7 +806,7 @@ } .cal-list-item:hover { - background: #f9fafb; + background: #141416; } .cal-list-item:active { @@ -815,14 +815,14 @@ .cal-list-date { font-size: 10px; - color: #9ca3af; + color: #5a5a66; flex-shrink: 0; } .cal-list-time { font-size: 10px; font-weight: 600; - color: #6b7280; + color: #8a8a96; flex-shrink: 0; } @@ -830,7 +830,7 @@ overflow: hidden; text-overflow: ellipsis; white-space: nowrap; - color: #1f2937; + color: #e8e8ec; } /* ================================================================= */ diff --git a/frontend/src/lib/components/traits/ChatTrait.svelte b/frontend/src/lib/components/traits/ChatTrait.svelte index ef0d930..2c588da 100644 --- a/frontend/src/lib/components/traits/ChatTrait.svelte +++ b/frontend/src/lib/components/traits/ChatTrait.svelte @@ -386,7 +386,7 @@ justify-content: center; flex: 1; padding: 24px; - color: #9ca3af; + color: #5a5a66; font-size: 13px; text-align: center; gap: 8px; @@ -412,7 +412,7 @@ font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; - color: #9ca3af; + color: #5a5a66; } .chat-channel-item { @@ -424,13 +424,13 @@ background: transparent; cursor: pointer; font-size: 13px; - color: #374151; + color: #8a8a96; text-align: left; transition: background 0.1s; } .chat-channel-item:hover { - background: #f3f4f6; + background: #242428; } .chat-channel-icon { @@ -477,13 +477,13 @@ background: transparent; border-radius: 4px; cursor: pointer; - color: #6b7280; + color: #8a8a96; flex-shrink: 0; } .chat-back-btn:hover { - background: #f3f4f6; - color: #374151; + background: #242428; + color: #8a8a96; } .chat-back-icon { @@ -494,7 +494,7 @@ .chat-subheader-title { font-size: 13px; font-weight: 600; - color: #374151; + color: #8a8a96; min-width: 0; overflow: hidden; text-overflow: ellipsis; @@ -503,7 +503,7 @@ .chat-subheader-participants { font-size: 11px; - color: #9ca3af; + color: #5a5a66; margin-left: auto; white-space: nowrap; overflow: hidden; @@ -526,7 +526,7 @@ .chat-messages-empty { text-align: center; font-size: 12px; - color: #9ca3af; + color: #5a5a66; padding: 24px 8px; margin: auto 0; } @@ -568,8 +568,8 @@ } .chat-bubble-other { - background: white; - border: 1px solid #e5e7eb; + background: #1c1c20; + border: 1px solid #2a2a2e; color: #1e293b; } @@ -600,7 +600,7 @@ .chat-time { font-size: 10px; - color: #9ca3af; + color: #5a5a66; text-align: right; margin-top: 2px; } @@ -631,7 +631,7 @@ flex-shrink: 0; padding: 6px 8px; border-top: 1px solid #f3f4f6; - background: #fafbfc; + background: #141416; } /* ================================================================= */ diff --git a/frontend/src/lib/components/traits/EditorTrait.svelte b/frontend/src/lib/components/traits/EditorTrait.svelte index cc7300f..850e9ba 100644 --- a/frontend/src/lib/components/traits/EditorTrait.svelte +++ b/frontend/src/lib/components/traits/EditorTrait.svelte @@ -744,15 +744,15 @@ .editor-list-meta { font-size: 11px; - color: #9ca3af; + color: #5a5a66; text-transform: uppercase; letter-spacing: 0.03em; } .editor-list-count { font-size: 11px; - color: #9ca3af; - background: #f3f4f6; + color: #5a5a66; + background: #242428; border-radius: 9999px; padding: 0 6px; line-height: 18px; @@ -788,7 +788,7 @@ justify-content: center; flex: 1; padding: 24px; - color: #9ca3af; + color: #5a5a66; font-size: 13px; text-align: center; gap: 4px; @@ -818,8 +818,8 @@ } .editor-item { - background: white; - border: 1px solid #e5e7eb; + background: #1c1c20; + border: 1px solid #2a2a2e; border-radius: 6px; padding: 8px 10px; cursor: pointer; @@ -895,7 +895,7 @@ .editor-item-title { font-size: 13px; font-weight: 500; - color: #1f2937; + color: #e8e8ec; line-height: 1.3; word-break: break-word; } @@ -913,7 +913,7 @@ -webkit-box-orient: vertical; overflow: hidden; font-size: 12px; - color: #6b7280; + color: #8a8a96; line-height: 1.3; } @@ -944,7 +944,7 @@ .editor-item-time { font-size: 10px; - color: #9ca3af; + color: #5a5a66; } .editor-item-actions { @@ -966,14 +966,14 @@ border-radius: 4px; border: none; background: transparent; - color: #6b7280; + color: #8a8a96; cursor: pointer; text-decoration: none; } .editor-item-action:hover { - background: #f3f4f6; - color: #374151; + background: #242428; + color: #8a8a96; } .editor-item-action-danger { @@ -1002,15 +1002,15 @@ border: none; background: transparent; font-size: 12px; - color: #6b7280; + color: #8a8a96; cursor: pointer; border-radius: 6px; transition: background 0.1s, color 0.1s; } .editor-new-btn:hover { - background: #f3f4f6; - color: #374151; + background: #242428; + color: #8a8a96; } .editor-publish-btn { @@ -1039,7 +1039,7 @@ .editor-create-input { width: 100%; padding: 6px 8px; - border: 1px solid #e5e7eb; + border: 1px solid #2a2a2e; border-radius: 4px; font-size: 12px; outline: none; @@ -1081,12 +1081,12 @@ border-radius: 4px; font-size: 11px; background: transparent; - color: #6b7280; + color: #8a8a96; cursor: pointer; } .editor-cancel-btn:hover { - background: #f3f4f6; + background: #242428; } /* ================================================================= */ @@ -1143,12 +1143,12 @@ .editor-publish-picker-name { font-weight: 500; - color: #1f2937; + color: #e8e8ec; } .editor-publish-picker-preview { font-size: 11px; - color: #6b7280; + color: #8a8a96; } /* ================================================================= */ @@ -1176,7 +1176,7 @@ border: none; background: transparent; font-size: 12px; - color: #6b7280; + color: #8a8a96; cursor: pointer; padding: 4px 6px; border-radius: 4px; @@ -1184,8 +1184,8 @@ } .editor-back-btn:hover { - background: #f3f4f6; - color: #374151; + background: #242428; + color: #8a8a96; } .editor-toolbar-right { @@ -1195,7 +1195,7 @@ } .editor-sources-btn { - border: 1px solid #e5e7eb; + border: 1px solid #2a2a2e; background: transparent; font-size: 11px; color: #7c3aed; @@ -1267,10 +1267,10 @@ width: 100%; padding: 6px 4px; border: none; - border-bottom: 1px solid #e5e7eb; + border-bottom: 1px solid #2a2a2e; font-size: 16px; font-weight: 600; - color: #1f2937; + color: #e8e8ec; outline: none; box-sizing: border-box; flex-shrink: 0; @@ -1288,7 +1288,7 @@ border: none; font-size: 14px; font-family: inherit; - color: #374151; + color: #8a8a96; line-height: 1.6; outline: none; resize: none; @@ -1312,7 +1312,7 @@ .editor-sources-title { font-size: 11px; font-weight: 600; - color: #6b7280; + color: #8a8a96; text-transform: uppercase; letter-spacing: 0.03em; margin-bottom: 8px; @@ -1337,7 +1337,7 @@ } .editor-source-item:hover { - background: #f3f4f6; + background: #242428; } .editor-source-icon { @@ -1357,14 +1357,14 @@ .editor-source-name { font-size: 12px; font-weight: 500; - color: #374151; + color: #8a8a96; word-break: break-word; line-height: 1.3; } .editor-source-context { font-size: 10px; - color: #9ca3af; + color: #5a5a66; } /* ================================================================= */ diff --git a/frontend/src/lib/components/traits/KanbanTrait.svelte b/frontend/src/lib/components/traits/KanbanTrait.svelte index 1b36cdf..62edd6e 100644 --- a/frontend/src/lib/components/traits/KanbanTrait.svelte +++ b/frontend/src/lib/components/traits/KanbanTrait.svelte @@ -388,7 +388,7 @@ justify-content: center; flex: 1; padding: 24px; - color: #9ca3af; + color: #5a5a66; font-size: 13px; text-align: center; gap: 8px; @@ -420,7 +420,7 @@ flex: 1 1 0; min-width: 140px; max-width: 320px; - background: #f3f4f6; + background: #242428; border-radius: 8px; overflow: hidden; transition: box-shadow 0.15s; @@ -441,15 +441,15 @@ .kanban-column-title { font-size: 12px; font-weight: 600; - color: #6b7280; + color: #8a8a96; text-transform: uppercase; letter-spacing: 0.03em; } .kanban-column-count { font-size: 11px; - color: #9ca3af; - background: white; + color: #5a5a66; + background: #1c1c20; border-radius: 9999px; padding: 0 6px; line-height: 18px; @@ -469,8 +469,8 @@ /* Card */ /* ================================================================= */ .kanban-card { - background: white; - border: 1px solid #e5e7eb; + background: #1c1c20; + border: 1px solid #2a2a2e; border-radius: 6px; padding: 8px 10px; cursor: grab; @@ -493,7 +493,7 @@ display: block; font-size: 13px; font-weight: 500; - color: #1f2937; + color: #e8e8ec; line-height: 1.3; word-break: break-word; } @@ -504,7 +504,7 @@ -webkit-box-orient: vertical; overflow: hidden; font-size: 12px; - color: #6b7280; + color: #8a8a96; margin-top: 3px; line-height: 1.3; } @@ -512,7 +512,7 @@ .kanban-card-time { display: block; font-size: 10px; - color: #9ca3af; + color: #5a5a66; margin-top: 4px; } @@ -526,7 +526,7 @@ border: none; background: transparent; font-size: 12px; - color: #9ca3af; + color: #5a5a66; text-align: left; cursor: pointer; border-radius: 4px; @@ -535,11 +535,11 @@ .kanban-add-trigger:hover { background: rgba(255, 255, 255, 0.6); - color: #6b7280; + color: #8a8a96; } .kanban-add-form { - background: white; + background: #1c1c20; border: 1px solid #bfdbfe; border-radius: 6px; padding: 6px; @@ -548,7 +548,7 @@ .kanban-add-input { width: 100%; padding: 4px 6px; - border: 1px solid #e5e7eb; + border: 1px solid #2a2a2e; border-radius: 4px; font-size: 12px; outline: none; @@ -591,12 +591,12 @@ border-radius: 4px; font-size: 11px; background: transparent; - color: #6b7280; + color: #8a8a96; cursor: pointer; } .kanban-cancel-btn:hover { - background: #f3f4f6; + background: #242428; } /* ================================================================= */ diff --git a/frontend/src/lib/components/traits/MindMapTrait.svelte b/frontend/src/lib/components/traits/MindMapTrait.svelte index 01e28c0..665a5ad 100644 --- a/frontend/src/lib/components/traits/MindMapTrait.svelte +++ b/frontend/src/lib/components/traits/MindMapTrait.svelte @@ -505,7 +505,7 @@ width: 100%; height: 100%; min-height: 200px; - background: #fafbfc; + background: #141416; overflow: hidden; } @@ -515,8 +515,8 @@ justify-content: space-between; gap: 8px; padding: 6px 10px; - border-bottom: 1px solid #e5e7eb; - background: white; + border-bottom: 1px solid #2a2a2e; + background: #1c1c20; flex-shrink: 0; flex-wrap: wrap; } @@ -531,7 +531,7 @@ .mindmap-title { font-size: 13px; font-weight: 600; - color: #374151; + color: #8a8a96; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; @@ -540,21 +540,21 @@ .mindmap-count { font-size: 11px; - color: #9ca3af; + color: #5a5a66; } .mindmap-btn { padding: 3px 8px; - border: 1px solid #d1d5db; + border: 1px solid #2a2a2e; border-radius: 4px; - background: white; + background: #1c1c20; font-size: 11px; - color: #6b7280; + color: #8a8a96; cursor: pointer; } .mindmap-btn:hover { - background: #f3f4f6; + background: #242428; } .mindmap-btn-active { @@ -565,7 +565,7 @@ .mindmap-depth-label { font-size: 11px; - color: #6b7280; + color: #8a8a96; display: flex; align-items: center; gap: 3px; @@ -573,9 +573,9 @@ .mindmap-depth-select { padding: 1px 4px; - border: 1px solid #d1d5db; + border: 1px solid #2a2a2e; border-radius: 3px; - background: white; + background: #1c1c20; font-size: 11px; } @@ -599,7 +599,7 @@ align-items: center; justify-content: center; font-size: 13px; - color: #9ca3af; + color: #5a5a66; } .mindmap-empty-sub { @@ -611,13 +611,13 @@ .mindmap-legend { padding: 4px 10px; border-top: 1px solid #e5e7eb; - background: white; + background: #1c1c20; flex-shrink: 0; } .mindmap-legend-hint { font-size: 10px; - color: #9ca3af; + color: #5a5a66; } /* Mobile: simplify */ diff --git a/frontend/src/lib/components/traits/OrchestrationTrait.svelte b/frontend/src/lib/components/traits/OrchestrationTrait.svelte index fab115e..ebce131 100644 --- a/frontend/src/lib/components/traits/OrchestrationTrait.svelte +++ b/frontend/src/lib/components/traits/OrchestrationTrait.svelte @@ -554,7 +554,7 @@ justify-content: center; flex: 1; padding: 24px; - color: #9ca3af; + color: #5a5a66; text-align: center; gap: 4px; } @@ -574,24 +574,24 @@ /* ================================================================= */ .orch-selector { padding: 8px 12px; - border-bottom: 1px solid #e5e7eb; + border-bottom: 1px solid #2a2a2e; flex-shrink: 0; } .orch-title { font-weight: 600; font-size: 14px; - color: #1f2937; + color: #e8e8ec; } .orch-select { width: 100%; padding: 4px 8px; - border: 1px solid #d1d5db; + border: 1px solid #2a2a2e; border-radius: 4px; font-size: 13px; - background: white; - color: #1f2937; + background: #1c1c20; + color: #e8e8ec; } .orch-select-sm { @@ -604,7 +604,7 @@ /* ================================================================= */ .orch-trigger { padding: 6px 12px; - border-bottom: 1px solid #e5e7eb; + border-bottom: 1px solid #2a2a2e; flex-shrink: 0; } @@ -617,7 +617,7 @@ .orch-label { font-size: 11px; - color: #6b7280; + color: #8a8a96; text-transform: uppercase; letter-spacing: 0.03em; white-space: nowrap; @@ -629,7 +629,7 @@ .orch-tabs { display: flex; align-items: center; - border-bottom: 1px solid #e5e7eb; + border-bottom: 1px solid #2a2a2e; flex-shrink: 0; padding: 0 8px; gap: 0; @@ -643,14 +643,14 @@ border: none; background: transparent; font-size: 12px; - color: #6b7280; + color: #8a8a96; cursor: pointer; border-bottom: 2px solid transparent; transition: color 0.12s, border-color 0.12s; } .orch-tab:hover { - color: #374151; + color: #8a8a96; } .orch-tab-active { @@ -683,8 +683,8 @@ } .orch-status-compiling { - color: #6b7280; - background: #f3f4f6; + color: #8a8a96; + background: #242428; } .orch-status-ok { @@ -724,8 +724,8 @@ font-family: 'JetBrains Mono', 'Fira Code', monospace; font-size: 13px; line-height: 1.5; - color: #1f2937; - background: #fafbfc; + color: #e8e8ec; + background: #141416; outline: none; } @@ -740,8 +740,8 @@ font-family: 'JetBrains Mono', 'Fira Code', monospace; font-size: 12px; line-height: 1.5; - color: #374151; - background: #f9fafb; + color: #8a8a96; + background: #141416; border: none; overflow: auto; white-space: pre-wrap; @@ -764,7 +764,7 @@ gap: 3px; max-height: 160px; overflow-y: auto; - background: white; + background: #1c1c20; flex-shrink: 0; } @@ -792,13 +792,13 @@ .orch-diag-line { font-size: 10px; - color: #9ca3af; + color: #5a5a66; font-variant-numeric: tabular-nums; flex-shrink: 0; } .orch-diag-text { - color: #374151; + color: #8a8a96; } .orch-diag-error .orch-diag-text { @@ -825,7 +825,7 @@ .orch-btn { padding: 5px 12px; - border: 1px solid #d1d5db; + border: 1px solid #2a2a2e; border-radius: 5px; font-size: 12px; font-weight: 500; @@ -859,17 +859,17 @@ } .orch-btn-secondary { - background: white; - color: #374151; + background: #1c1c20; + color: #8a8a96; } .orch-btn-secondary:hover:not(:disabled) { - background: #f3f4f6; + background: #242428; } .orch-test-info { font-size: 11px; - color: #6b7280; + color: #8a8a96; font-family: monospace; } @@ -880,7 +880,7 @@ border-top: 1px solid #e5e7eb; max-height: 240px; overflow-y: auto; - background: #fafbfc; + background: #141416; flex-shrink: 0; } @@ -891,31 +891,31 @@ padding: 6px 12px; font-size: 11px; font-weight: 600; - color: #374151; - border-bottom: 1px solid #e5e7eb; + color: #8a8a96; + border-bottom: 1px solid #2a2a2e; position: sticky; top: 0; - background: #fafbfc; + background: #141416; } .orch-btn-refresh { padding: 2px 8px; - border: 1px solid #d1d5db; + border: 1px solid #2a2a2e; border-radius: 3px; font-size: 10px; - background: white; + background: #1c1c20; cursor: pointer; color: #4b5563; } .orch-btn-refresh:hover { - background: #f3f4f6; + background: #242428; } .orch-history-empty { padding: 12px; text-align: center; - color: #9ca3af; + color: #5a5a66; font-size: 12px; } @@ -951,7 +951,7 @@ .orch-history-step { font-size: 10px; - color: #6b7280; + color: #8a8a96; font-variant-numeric: tabular-nums; min-width: 20px; } @@ -959,18 +959,18 @@ .orch-history-binary { font-family: monospace; font-size: 11px; - color: #1f2937; + color: #e8e8ec; } .orch-history-duration { font-size: 10px; - color: #9ca3af; + color: #5a5a66; font-variant-numeric: tabular-nums; } .orch-history-time { font-size: 10px; - color: #9ca3af; + color: #5a5a66; margin-left: auto; } @@ -1013,14 +1013,14 @@ border: none; background: transparent; font-size: 16px; - color: #6b7280; + color: #8a8a96; cursor: pointer; padding: 0 4px; line-height: 1; } .orch-btn-close:hover { - color: #1f2937; + color: #e8e8ec; } .orch-ai-input { @@ -1032,8 +1032,8 @@ font-family: inherit; resize: vertical; min-height: 48px; - background: white; - color: #1f2937; + background: #1c1c20; + color: #e8e8ec; } .orch-ai-input::placeholder { diff --git a/frontend/src/lib/components/traits/StudioTrait.svelte b/frontend/src/lib/components/traits/StudioTrait.svelte index 21bbfd7..321e702 100644 --- a/frontend/src/lib/components/traits/StudioTrait.svelte +++ b/frontend/src/lib/components/traits/StudioTrait.svelte @@ -238,7 +238,7 @@ justify-content: center; flex: 1; padding: 24px; - color: #9ca3af; + color: #5a5a66; font-size: 13px; text-align: center; gap: 4px; @@ -268,15 +268,15 @@ .studio-header-label { font-size: 11px; - color: #9ca3af; + color: #5a5a66; text-transform: uppercase; letter-spacing: 0.03em; } .studio-header-count { font-size: 11px; - color: #9ca3af; - background: #f3f4f6; + color: #5a5a66; + background: #242428; border-radius: 9999px; padding: 0 6px; line-height: 18px; @@ -296,8 +296,8 @@ } .studio-item { - background: white; - border: 1px solid #e5e7eb; + background: #1c1c20; + border: 1px solid #2a2a2e; border-radius: 6px; padding: 8px 10px; cursor: grab; @@ -336,7 +336,7 @@ .studio-item-title { font-size: 13px; font-weight: 500; - color: #1f2937; + color: #e8e8ec; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; @@ -362,18 +362,18 @@ .studio-item-duration { font-size: 11px; - color: #6b7280; + color: #8a8a96; font-variant-numeric: tabular-nums; } .studio-item-size { font-size: 10px; - color: #9ca3af; + color: #5a5a66; } .studio-item-date { font-size: 10px; - color: #9ca3af; + color: #5a5a66; } .studio-item-actions { diff --git a/frontend/src/routes/collection/[id]/+page.svelte b/frontend/src/routes/collection/[id]/+page.svelte index c9308af..943d4bd 100644 --- a/frontend/src/routes/collection/[id]/+page.svelte +++ b/frontend/src/routes/collection/[id]/+page.svelte @@ -448,7 +448,7 @@ display: flex; flex-direction: column; height: 100vh; - background: #f0f2f5; + background: #0a0a0b; } .workspace-btn-primary { @@ -474,8 +474,8 @@ position: relative; z-index: 25; padding: 12px 16px; - background: #fafbfc; - border-bottom: 1px solid #e5e7eb; + background: #141416; + border-bottom: 1px solid #2a2a2e; } /* ================================================================= */ @@ -490,7 +490,7 @@ padding: 24px; text-align: center; font-size: 14px; - color: #6b7280; + color: #8a8a96; } .workspace-message-warn { @@ -505,7 +505,7 @@ .workspace-message-sub { font-size: 12px; - color: #9ca3af; + color: #5a5a66; margin-top: 4px; } @@ -534,8 +534,8 @@ display: flex; overflow-x: auto; gap: 0; - background: white; - border-bottom: 1px solid #e5e7eb; + background: #1c1c20; + border-bottom: 1px solid #2a2a2e; flex-shrink: 0; -webkit-overflow-scrolling: touch; } @@ -548,7 +548,7 @@ border: none; background: transparent; font-size: 13px; - color: #6b7280; + color: #8a8a96; cursor: pointer; white-space: nowrap; border-bottom: 2px solid transparent; @@ -556,7 +556,7 @@ } .mobile-tab:hover { - color: #374151; + color: #8a8a96; } .mobile-tab-active { @@ -585,7 +585,7 @@ .workspace-footer-tools { flex-shrink: 0; padding: 8px 16px; - background: white; + background: #1c1c20; border-top: 1px solid #e5e7eb; display: flex; gap: 16px; diff --git a/frontend/src/routes/workspace/+page.svelte b/frontend/src/routes/workspace/+page.svelte index 640d83b..2888506 100644 --- a/frontend/src/routes/workspace/+page.svelte +++ b/frontend/src/routes/workspace/+page.svelte @@ -627,15 +627,15 @@ display: flex; flex-direction: column; height: 100vh; - background: #f0f2f5; + background: #0a0a0b; } /* ================================================================= */ /* Context header (inline — personal workspace variant) */ /* ================================================================= */ .context-header { - border-bottom: 1px solid #e5e7eb; - background: white; + border-bottom: 1px solid #2a2a2e; + background: #1c1c20; flex-shrink: 0; z-index: 30; position: relative; @@ -667,7 +667,7 @@ .context-back { font-size: 16px; - color: #9ca3af; + color: #5a5a66; text-decoration: none; flex-shrink: 0; padding: 4px; @@ -697,13 +697,13 @@ cursor: pointer; font-size: 15px; font-weight: 600; - color: #111827; + color: #e8e8ec; max-width: 300px; transition: background 0.12s, border-color 0.12s; } .context-selector-trigger:hover { - background: #f3f4f6; + background: #242428; border-color: #e5e7eb; } @@ -715,7 +715,7 @@ .context-selector-chevron { font-size: 10px; - color: #9ca3af; + color: #5a5a66; transition: transform 0.15s; flex-shrink: 0; } @@ -730,8 +730,8 @@ left: 0; min-width: 260px; max-width: 360px; - background: white; - border: 1px solid #e5e7eb; + background: #1c1c20; + border: 1px solid #2a2a2e; border-radius: 8px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); z-index: 50; @@ -746,16 +746,16 @@ .context-selector-search-input { width: 100%; padding: 6px 10px; - border: 1px solid #e5e7eb; + border: 1px solid #2a2a2e; border-radius: 6px; font-size: 13px; outline: none; - background: #fafbfc; + background: #141416; } .context-selector-search-input:focus { border-color: #4f46e5; - background: white; + background: #1c1c20; } .context-selector-list { @@ -775,13 +775,13 @@ background: transparent; cursor: pointer; font-size: 13px; - color: #374151; + color: #8a8a96; text-align: left; transition: background 0.1s; } .context-selector-item:hover { - background: #f3f4f6; + background: #242428; } .context-selector-item-title { @@ -794,7 +794,7 @@ padding: 16px; text-align: center; font-size: 12px; - color: #9ca3af; + color: #5a5a66; } /* ================================================================= */ @@ -813,8 +813,8 @@ top: calc(100% + 4px); right: 0; min-width: 200px; - background: white; - border: 1px solid #e5e7eb; + background: #1c1c20; + border: 1px solid #2a2a2e; border-radius: 8px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); z-index: 50; @@ -826,7 +826,7 @@ padding: 6px 10px 4px; font-size: 11px; font-weight: 600; - color: #9ca3af; + color: #5a5a66; text-transform: uppercase; letter-spacing: 0.05em; } @@ -842,13 +842,13 @@ background: transparent; cursor: pointer; font-size: 13px; - color: #374151; + color: #8a8a96; text-align: left; transition: background 0.1s; } .tool-menu-item:hover:not(:disabled) { - background: #f3f4f6; + background: #242428; } .tool-menu-item:disabled { @@ -857,7 +857,7 @@ } .tool-menu-item-active { - color: #9ca3af; + color: #5a5a66; } .tool-menu-item-icon { @@ -871,8 +871,8 @@ .tool-menu-item-badge { font-size: 10px; - color: #9ca3af; - background: #f3f4f6; + color: #5a5a66; + background: #242428; padding: 1px 6px; border-radius: 4px; } @@ -896,7 +896,7 @@ font-size: 12px; font-weight: 500; cursor: pointer; - background: #f3f4f6; + background: #242428; color: #4b5563; transition: background 0.12s; } @@ -917,7 +917,7 @@ padding: 24px; text-align: center; font-size: 14px; - color: #6b7280; + color: #8a8a96; } .workspace-message-warn { @@ -949,13 +949,13 @@ .workspace-empty-title { font-size: 18px; font-weight: 600; - color: #111827; + color: #e8e8ec; margin-bottom: 8px; } .workspace-empty-desc { font-size: 14px; - color: #6b7280; + color: #8a8a96; margin-bottom: 24px; } @@ -971,12 +971,12 @@ align-items: center; gap: 6px; padding: 8px 14px; - border: 1px solid #e5e7eb; + border: 1px solid #2a2a2e; border-radius: 8px; - background: white; + background: #1c1c20; cursor: pointer; font-size: 13px; - color: #374151; + color: #8a8a96; transition: border-color 0.12s, box-shadow 0.12s; } @@ -1008,8 +1008,8 @@ display: flex; overflow-x: auto; gap: 0; - background: white; - border-bottom: 1px solid #e5e7eb; + background: #1c1c20; + border-bottom: 1px solid #2a2a2e; flex-shrink: 0; -webkit-overflow-scrolling: touch; } @@ -1022,7 +1022,7 @@ border: none; background: transparent; font-size: 13px; - color: #6b7280; + color: #8a8a96; cursor: pointer; white-space: nowrap; border-bottom: 2px solid transparent; @@ -1030,7 +1030,7 @@ } .mobile-tab:hover { - color: #374151; + color: #8a8a96; } .mobile-tab-active { @@ -1059,7 +1059,7 @@ .workspace-footer-tools { flex-shrink: 0; padding: 8px 16px; - background: white; + background: #1c1c20; border-top: 1px solid #e5e7eb; display: flex; gap: 16px;