Skip to content

Commit a3c2d90

Browse files
Copilotpethers
andauthored
Polish dashboard light and dark theme surfaces
Agent-Logs-Url: https://github.com/Hack23/cia-compliance-manager/sessions/9cad628c-4d84-42cd-a39d-26f68cdfe8d7 Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
1 parent 21a293f commit a3c2d90

2 files changed

Lines changed: 174 additions & 0 deletions

File tree

src/styles/dark-theme.css

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -540,3 +540,82 @@
540540
[data-testid^="widget-container"] {
541541
overflow: visible;
542542
}
543+
544+
/* Final dark-mode dashboard polish.
545+
* Keeps the cyber security look while preventing nested panels from becoming
546+
* low-contrast black blocks or inheriting light-mode surfaces.
547+
*/
548+
.dark {
549+
--widget-shell-border: rgba(56, 189, 248, 0.24);
550+
--widget-inner-border: rgba(125, 211, 252, 0.18);
551+
--widget-muted-border: rgba(148, 163, 184, 0.22);
552+
--widget-surface: linear-gradient(135deg, rgba(15, 23, 42, 0.98) 0%, rgba(8, 20, 32, 0.98) 100%);
553+
--widget-subtle-surface: rgba(30, 41, 59, 0.66);
554+
--widget-nested-surface: rgba(15, 23, 42, 0.76);
555+
--widget-nested-strong-surface: rgba(30, 41, 59, 0.86);
556+
--widget-header-surface: linear-gradient(135deg, rgba(15, 35, 52, 0.98) 0%, rgba(10, 28, 42, 0.98) 100%);
557+
--widget-shadow: 0 16px 34px rgba(0, 0, 0, 0.36), 0 0 18px rgba(43, 138, 255, 0.1);
558+
}
559+
560+
.dark .widget-container,
561+
.dark [data-testid^="widget-container"] {
562+
background: var(--widget-surface);
563+
border-color: var(--widget-shell-border);
564+
box-shadow: var(--widget-shadow);
565+
}
566+
567+
.dark .widget-header,
568+
.dark .widget-container > div:first-child,
569+
.dark [data-testid^="widget-container"] > div:first-child {
570+
background: var(--widget-header-surface);
571+
border-bottom-color: var(--widget-inner-border);
572+
}
573+
574+
.dark .widget-body,
575+
.dark .widget-container > div:nth-child(2),
576+
.dark [data-testid^="widget-container"] > div:nth-child(2) {
577+
background: transparent;
578+
color: var(--text-color);
579+
}
580+
581+
.dark .security-level-control-card,
582+
.dark .security-level-details-card,
583+
.dark .security-level-overview,
584+
.dark .business-impact-category-card,
585+
.dark .business-impact-executive-summary,
586+
.dark .security-summary-section,
587+
.dark .security-summary-radar-shell,
588+
.dark .security-summary-metric-grid > div {
589+
background: var(--widget-nested-surface);
590+
border-color: var(--widget-inner-border);
591+
color: var(--text-color);
592+
box-shadow: inset 0 1px 0 rgba(148, 163, 184, 0.08);
593+
}
594+
595+
.dark .business-impact-executive-summary,
596+
.dark .security-summary-radar-shell {
597+
background: linear-gradient(180deg, var(--widget-nested-strong-surface) 0%, var(--widget-nested-surface) 100%);
598+
}
599+
600+
.dark .security-level-control-card select,
601+
.dark .widget-body input,
602+
.dark .widget-body select,
603+
.dark .widget-body textarea,
604+
.dark [data-testid^="widget-container"] input,
605+
.dark [data-testid^="widget-container"] select,
606+
.dark [data-testid^="widget-container"] textarea {
607+
background-color: rgba(15, 23, 42, 0.92);
608+
border-color: var(--widget-muted-border);
609+
color: var(--text-color);
610+
}
611+
612+
.dark .business-impact-category-card p,
613+
.dark .security-level-details-card p,
614+
.dark .security-level-control-card [data-testid*="-summary"],
615+
.dark .security-summary-metric-grid > div {
616+
color: var(--text-secondary);
617+
}
618+
619+
.dark .security-summary-component-card {
620+
box-shadow: inset 0 1px 0 rgba(148, 163, 184, 0.08);
621+
}

src/styles/light-theme.css

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,3 +334,98 @@ button.lightbutton:hover:active {
334334
[data-testid^="widget-container"] {
335335
overflow: visible;
336336
}
337+
338+
/* Final light-mode dashboard polish.
339+
* These selectors intentionally target existing widget composition classes so
340+
* utility-level dark/light classes cannot leave nested cards looking inverted.
341+
*/
342+
:root {
343+
--light-primary: #005ea8;
344+
--light-secondary: #0072ce;
345+
--light-accent: #0d9488;
346+
--light-background: #f6f8fb;
347+
--light-card-bg: #ffffff;
348+
--light-border: rgba(0, 94, 168, 0.18);
349+
--light-glow: 0 12px 30px rgba(15, 23, 42, 0.08);
350+
--light-text: #172033;
351+
--widget-shell-border: rgba(15, 81, 128, 0.18);
352+
--widget-inner-border: rgba(15, 81, 128, 0.14);
353+
--widget-muted-border: rgba(100, 116, 139, 0.22);
354+
--widget-surface: #ffffff;
355+
--widget-subtle-surface: #f8fbff;
356+
--widget-nested-surface: #f7fbff;
357+
--widget-nested-strong-surface: #eef6ff;
358+
--widget-header-surface: linear-gradient(135deg, #f8fbff 0%, #edf6ff 100%);
359+
--widget-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
360+
--color-integrity: #1f7a3f;
361+
--color-integrity-dark: #166534;
362+
--color-availability: #075985;
363+
--color-availability-dark: #075985;
364+
--color-high: #1f7a3f;
365+
--color-very-high: #075985;
366+
--color-success: #1f7a3f;
367+
--color-info: #075985;
368+
}
369+
370+
.widget-container,
371+
[data-testid^="widget-container"] {
372+
background: var(--widget-surface);
373+
border-color: var(--widget-shell-border);
374+
box-shadow: var(--widget-shadow);
375+
}
376+
377+
.widget-header,
378+
.widget-container > div:first-child,
379+
[data-testid^="widget-container"] > div:first-child {
380+
background: var(--widget-header-surface);
381+
border-bottom-color: var(--widget-inner-border);
382+
}
383+
384+
.widget-body,
385+
.widget-container > div:nth-child(2),
386+
[data-testid^="widget-container"] > div:nth-child(2) {
387+
background: var(--widget-surface);
388+
color: var(--text-color);
389+
}
390+
391+
.security-level-control-card,
392+
.security-level-details-card,
393+
.security-level-overview,
394+
.business-impact-category-card,
395+
.business-impact-executive-summary,
396+
.security-summary-section,
397+
.security-summary-radar-shell,
398+
.security-summary-metric-grid > div {
399+
background: var(--widget-nested-surface);
400+
border-color: var(--widget-inner-border);
401+
color: var(--text-color);
402+
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
403+
}
404+
405+
.business-impact-executive-summary,
406+
.security-summary-radar-shell {
407+
background: linear-gradient(180deg, #ffffff 0%, var(--widget-nested-strong-surface) 100%);
408+
}
409+
410+
.security-level-control-card select,
411+
.widget-body input,
412+
.widget-body select,
413+
.widget-body textarea,
414+
[data-testid^="widget-container"] input,
415+
[data-testid^="widget-container"] select,
416+
[data-testid^="widget-container"] textarea {
417+
background-color: #ffffff;
418+
border-color: var(--widget-muted-border);
419+
color: var(--text-color);
420+
}
421+
422+
.business-impact-category-card p,
423+
.security-level-details-card p,
424+
.security-level-control-card [data-testid*="-summary"],
425+
.security-summary-metric-grid > div {
426+
color: var(--text-secondary);
427+
}
428+
429+
.security-summary-component-card {
430+
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
431+
}

0 commit comments

Comments
 (0)