feat(css): set up theme

This commit is contained in:
2025-12-07 21:27:23 +01:00
parent dd60e64f45
commit c9ff62da95
8 changed files with 227 additions and 16 deletions

84
app/assets/css/colors.css Normal file
View File

@@ -0,0 +1,84 @@
:root {
/* Polar Night */
--nord0: #2e3440; /* Darkest - base background (dark mode) */
--nord1: #3b4252; /* Dark - elevated surfaces (cards, panels) */
--nord2: #434c5e; /* Medium - selections, highlights */
--nord3: #4c566a; /* Light - borders, disabled states */
/* Snow Storm */
--nord4: #d8dee9; /* Dark - elevated (light mode) */
--nord5: #e5e9f0; /* Medium - selections (light mode) */
--nord6: #eceff4; /* Lightest - base background (light mode) */
/* Frost (Blues) */
--nord7: #8fbcbb; /* Calm accent */
--nord8: #88c0d0; /* PRIMARY brand color */
--nord9: #81a1c1; /* Secondary accent */
--nord10: #5e81ac; /* Deep accent, links */
/* Aurora (Status colors) */
--nord11: #bf616a; /* Error, danger (red) */
--nord12: #d08770; /* Orange accent */
--nord13: #ebcb8b; /* Warning (yellow) */
--nord14: #a3be8c; /* Success (green) */
--nord15: #b48ead; /* Uncommon (purple) */
--primary-50: #f0f9ff;
--primary-100: #e0f2fe;
--primary-200: #b9e6fe;
--primary-300: #7dd3fc;
--primary-400: #88c0d0; /* nord8 */
--primary-500: #88c0d0; /* nord8 - main */
--primary-600: #5e81ac; /* nord10 */
--PRIMARY-700: #5e81ac;
--primary-800: #434c5e; /* nord2 */
--primary-900: #2e3440; /* nord0 */
--primary-950: #1a1f2e;
--success-50: #f0fdf4;
--success-100: #dcfce7;
--success-200: #bbf7d0;
--success-300: #86efac;
--success-400: #a3be8c; /* nord14 */
--success-500: #a3be8c; /* nord14 - main */
--success-600: #8a9f75;
--success-700: #71805e;
--success-800: #586047;
--success-900: #3f4030;
--warning-50: #fefce8;
--warning-100: #fef9c3;
--warning-200: #fef08a;
--warning-300: #fde047;
--warning-400: #ebcb8b; /* nord13 */
--warning-500: #ebcb8b; /* nord13 - main */
--warning-600: #c8ac76;
--warning-700: #a58d61;
--warning-800: #826e4c;
--warning-900: #5f4f37;
--error-50: #fef2f2;
--error-100: #fee2e2;
--error-200: #fecaca;
--error-300: #fca5a5;
--error-400: #bf616a; /* nord11 */
--error-500: #bf616a; /* nord11 - main */
--error-600: #a2525a;
--error-700: #85434a;
--error-800: #68343a;
--error-900: #4b252a;
--category-issue: #bf616a; /* nord11 (red) */
--category-feature: #81a1c1; /* nord9 (blue) */
--category-assistance: #b48ead; /* nord15 (purple) */
--category-other: #4c566a; /* nord3 (gray) */
--text: var(--nord0);
--background: var(--nord6);
--primary: var(--nord8);
--secondary: var(--nord9);
--accent: var(--nord7);
}
.dark {
--text: var(--nord6);
--background: var(--nord0);
--background-elevated: var(--nord1);
--background-hover: var(--nord2);
}

View File

@@ -1,18 +1,6 @@
@import 'tailwindcss';
@import '@nuxt/ui';
@import './colors.css';
@import './ui/index.css';
@import './tailwind.css';
@theme static {
--font-sans: 'Public Sans', sans-serif;
--color-green-50: #effdf5;
--color-green-100: #d9fbe8;
--color-green-200: #b3f5d1;
--color-green-300: #75edae;
--color-green-400: #00dc82;
--color-green-500: #00c16a;
--color-green-600: #00a155;
--color-green-700: #007f45;
--color-green-800: #016538;
--color-green-900: #0a5331;
--color-green-950: #052e16;
}
@source "../../../content/**/*";

View File

@@ -0,0 +1,85 @@
@import 'tailwindcss';
@theme {
--color-text-50: var(--text-50);
--color-text: var(--text);
--color-text-100: var(--text-100);
--color-text-200: var(--text-200);
--color-text-300: var(--text-300);
--color-text-400: var(--text-400);
--color-text-500: var(--text-500);
--color-text-600: var(--text-600);
--color-text-700: var(--text-700);
--color-text-800: var(--text-800);
--color-text-900: var(--text-900);
--color-text-950: var(--text-950);
--color-background-50: var(--background-50);
--color-background-100: var(--background-100);
--color-background-200: var(--background-200);
--color-background-300: var(--background-300);
--color-background-400: var(--background-400);
--color-background-500: var(--background-500);
--color-background-600: var(--background-600);
--color-background-700: var(--background-700);
--color-background-800: var(--background-800);
--color-background-900: var(--background-900);
--color-background-950: var(--background-950);
--color-background: var(--background);
--color-primary-50: var(--primary-50);
--color-primary-100: var(--primary-100);
--color-primary-200: var(--primary-200);
--color-primary-300: var(--primary-300);
--color-primary-400: var(--primary-400);
--color-primary: var(--primary);
--color-primary-500: var(--primary-500);
--color-primary-600: var(--primary-600);
--color-primary-700: var(--primary-700);
--color-primary-800: var(--primary-800);
--color-primary-900: var(--primary-900);
--color-primary-950: var(--primary-950);
--color-secondary-50: var(--secondary-50);
--color-secondary-100: var(--secondary-100);
--color-secondary-200: var(--secondary-200);
--color-secondary-300: var(--secondary-300);
--color-secondary: var(--secondary);
--color-secondary-400: var(--secondary-400);
--color-secondary-500: var(--secondary-500);
--color-secondary-600: var(--secondary-600);
--color-secondary-700: var(--secondary-700);
--color-secondary-800: var(--secondary-800);
--color-secondary-900: var(--secondary-900);
--color-secondary-950: var(--secondary-950);
--color-accent-50: var(--accent-50);
--color-accent-100: var(--accent-100);
--color-accent-200: var(--accent-200);
--color-accent-300: var(--accent-300);
--color-accent: var(--accent);
--color-accent-400: var(--accent-400);
--color-accent-500: var(--accent-500);
--color-accent-600: var(--accent-600);
--color-accent-700: var(--accent-700);
--color-accent-800: var(--accent-800);
--color-accent-900: var(--accent-900);
--color-accent-950: var(--accent-950);
--text-sm: 0.75rem;
--text-base: 1rem;
--text-xl: 1.333rem;
--text-2xl: 1.777rem;
--text-3xl: 2.369rem;
--text-4xl: 3.158rem;
--text-5xl: 4.21rem;
--text-weight-normal: 400;
--text-weight-bold: 700;
--font-sans:
Noto Sans, ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
'Noto Color Emoji';
--font-title:
Wittgenstein, ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
'Noto Color Emoji';
}

View File

@@ -0,0 +1,14 @@
:root {
--ui-bg: var(--nord6);
--ui-bg-muted: var(--nord5);
--ui-bg-elevated: var(--nord5);
--ui-bg-accented: var(--nord4);
--ui-bg-inverted: var(--nord0);
}
.dark {
--ui-bg: var(--nord0);
--ui-bg-muted: var(--nord1);
--ui-bg-elevated: var(--nord1);
--ui-bg-accented: var(--nord2);
--ui-bg-inverted: var(--nord6);
}

View File

@@ -0,0 +1,12 @@
:root {
--ui-border: var(--nord5);
--ui-border-muted: var(--nord6);
--ui-border-accented: var(--nord4);
--ui-border-inverted: var(--nord0);
}
.dark {
--ui-border: var(--nord3);
--ui-border-muted: var(--nord2);
--ui-border-accented: var(--nord4);
--ui-border-inverted: var(--nord6);
}

View File

@@ -0,0 +1,8 @@
:root {
--ui-primary: var(--nord8);
--ui-secondary: var(--nord9);
--ui-success: var(--nord14);
--ui-info: var(--nord9);
--ui-warning: var(--nord13);
--ui-error: var(--nord11);
}

View File

@@ -0,0 +1,4 @@
@import './colors.css';
@import './text.css';
@import './background.css';
@import './border.css';

View File

@@ -0,0 +1,16 @@
:root {
--ui-text-dimmed: var(--nord3);
--ui-text-muted: var(--nord3);
--ui-text-toned: var(--nord2);
--ui-text: var(--nord0);
--ui-text-highlighted: var(--nord0);
--ui-text-inverted: var(--nord6);
}
.dark {
--ui-text-dimmed: var(--nord3);
--ui-text-muted: var(--nord4);
--ui-text-toned: var(--nord4);
--ui-text: var(--nord6);
--ui-text-highlighted: var(--nord6);
--ui-text-inverted: var(--nord0);
}