diff --git a/apps/web/package.json b/apps/web/package.json index 49ad8c6..d5cf103 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -60,6 +60,7 @@ "marked": "^17.0.1", "papaparse": "^5.4.1", "svelte-sonner": "^1.0.5", + "theme-change": "^2.5.0", "xlsx": "^0.18.5", "xlsx-js-style": "^1.2.0", "zod": "^4.1.12" diff --git a/apps/web/src/app.css b/apps/web/src/app.css index 9622199..494c37c 100644 --- a/apps/web/src/app.css +++ b/apps/web/src/app.css @@ -21,405 +21,345 @@ @apply border-error bg-base-100 hover:bg-error/60 active:bg-error text-error flex items-center justify-center gap-2 rounded-xl border px-4 py-2 text-center font-medium transition-colors hover:text-white active:text-white; } -/* Tema Aqua (padrão roxo/azul) - customizado para garantir funcionamento */ -html[data-theme='aqua'], -html[data-theme='aqua'] body, -[data-theme='aqua'] { +/* Tema Aqua (padrão roxo/azul) - redefinido como custom para garantir compatibilidade */ +@plugin 'daisyui/theme' { + name: 'aqua'; + default: true; color-scheme: light; - --p: 217 91% 60%; - --pf: 217 91% 50%; - --pc: 0 0% 100%; - --s: 217 91% 60%; - --sf: 217 91% 50%; - --sc: 0 0% 100%; - --a: 217 91% 60%; - --af: 217 91% 50%; - --ac: 0 0% 100%; - --n: 217 20% 17%; - --nf: 217 20% 10%; - --nc: 0 0% 100%; - --b1: 0 0% 100%; - --b2: 217 20% 95%; - --b3: 217 20% 90%; - --bc: 217 20% 17%; - --in: 217 91% 60%; - --inc: 0 0% 100%; - --su: 142 76% 36%; - --suc: 0 0% 100%; - --wa: 38 92% 50%; - --wac: 0 0% 100%; - --er: 0 84% 60%; - --erc: 0 0% 100%; - --rounded-box: 1rem; - --rounded-btn: 0.5rem; - --rounded-badge: 1.9rem; - --animation-btn: 0.25s; - --animation-input: 0.2s; - --btn-focus-scale: 0.95; - --border-btn: 1px; - --tab-border: 1px; - --tab-radius: 0.5rem; + --color-primary: hsl(217 91% 60%); + --color-primary-content: hsl(0 0% 100%); + --color-secondary: hsl(217 91% 60%); + --color-secondary-content: hsl(0 0% 100%); + --color-accent: hsl(217 91% 60%); + --color-accent-content: hsl(0 0% 100%); + --color-neutral: hsl(217 20% 17%); + --color-neutral-content: hsl(0 0% 100%); + --color-base-100: hsl(0 0% 100%); + --color-base-200: hsl(217 20% 95%); + --color-base-300: hsl(217 20% 90%); + --color-base-content: hsl(217 20% 17%); + --color-info: hsl(217 91% 60%); + --color-info-content: hsl(0 0% 100%); + --color-success: hsl(142 76% 36%); + --color-success-content: hsl(0 0% 100%); + --color-warning: hsl(38 92% 50%); + --color-warning-content: hsl(0 0% 100%); + --color-error: hsl(0 84% 60%); + --color-error-content: hsl(0 0% 100%); + --radius-selector: 0.5rem; + --radius-field: 0.5rem; + --radius-box: 1rem; + --size-selector: 0.25rem; + --size-field: 0.25rem; + --border: 1px; + --depth: 1; + --noise: 0; } -/* Temas customizados para SGSE - Azul */ -html[data-theme='sgse-blue'], -html[data-theme='sgse-blue'] body, -[data-theme='sgse-blue'] { +/* Temas customizados para SGSE */ + +/* Azul */ +@plugin 'daisyui/theme' { + name: 'sgse-blue'; color-scheme: light; - --p: 217 91% 60%; - --pf: 217 91% 50%; - --pc: 0 0% 100%; - --s: 217 91% 60%; - --sf: 217 91% 50%; - --sc: 0 0% 100%; - --a: 217 91% 60%; - --af: 217 91% 50%; - --ac: 0 0% 100%; - --n: 217 20% 17%; - --nf: 217 20% 10%; - --nc: 0 0% 100%; - --b1: 0 0% 100%; - --b2: 217 20% 95%; - --b3: 217 20% 90%; - --bc: 217 20% 17%; - --in: 217 91% 60%; - --inc: 0 0% 100%; - --su: 142 76% 36%; - --suc: 0 0% 100%; - --wa: 38 92% 50%; - --wac: 0 0% 100%; - --er: 0 84% 60%; - --erc: 0 0% 100%; - --rounded-box: 1rem; - --rounded-btn: 0.5rem; - --rounded-badge: 1.9rem; - --animation-btn: 0.25s; - --animation-input: 0.2s; - --btn-focus-scale: 0.95; - --border-btn: 1px; - --tab-border: 1px; - --tab-radius: 0.5rem; + --color-primary: hsl(217 91% 60%); + --color-primary-content: hsl(0 0% 100%); + --color-secondary: hsl(217 91% 60%); + --color-secondary-content: hsl(0 0% 100%); + --color-accent: hsl(217 91% 60%); + --color-accent-content: hsl(0 0% 100%); + --color-neutral: hsl(217 20% 17%); + --color-neutral-content: hsl(0 0% 100%); + --color-base-100: hsl(0 0% 100%); + --color-base-200: hsl(217 20% 95%); + --color-base-300: hsl(217 20% 90%); + --color-base-content: hsl(217 20% 17%); + --color-info: hsl(217 91% 60%); + --color-info-content: hsl(0 0% 100%); + --color-success: hsl(142 76% 36%); + --color-success-content: hsl(0 0% 100%); + --color-warning: hsl(38 92% 50%); + --color-warning-content: hsl(0 0% 100%); + --color-error: hsl(0 84% 60%); + --color-error-content: hsl(0 0% 100%); + --radius-selector: 0.5rem; + --radius-field: 0.5rem; + --radius-box: 1rem; + --size-selector: 0.25rem; + --size-field: 0.25rem; + --border: 1px; + --depth: 1; + --noise: 0; } -/* Garantir que todas as variáveis CSS sejam aplicadas em todos os elementos */ -html[data-theme] { - color-scheme: var(--color-scheme, light); -} - -html[data-theme] * { - color-scheme: inherit; -} - -html[data-theme='sgse-green'], -html[data-theme='sgse-green'] body, -[data-theme='sgse-green'] { +/* Verde */ +@plugin 'daisyui/theme' { + name: 'sgse-green'; color-scheme: light; - --p: 142 76% 36%; - --pf: 142 76% 26%; - --pc: 0 0% 100%; - --s: 142 76% 36%; - --sf: 142 76% 26%; - --sc: 0 0% 100%; - --a: 142 76% 36%; - --af: 142 76% 26%; - --ac: 0 0% 100%; - --n: 142 20% 17%; - --nf: 142 20% 10%; - --nc: 0 0% 100%; - --b1: 0 0% 100%; - --b2: 142 20% 95%; - --b3: 142 20% 90%; - --bc: 142 20% 17%; - --in: 142 76% 36%; - --inc: 0 0% 100%; - --su: 142 76% 36%; - --suc: 0 0% 100%; - --wa: 38 92% 50%; - --wac: 0 0% 100%; - --er: 0 84% 60%; - --erc: 0 0% 100%; - --rounded-box: 1rem; - --rounded-btn: 0.5rem; - --rounded-badge: 1.9rem; - --animation-btn: 0.25s; - --animation-input: 0.2s; - --btn-focus-scale: 0.95; - --border-btn: 1px; - --tab-border: 1px; - --tab-radius: 0.5rem; + --color-primary: hsl(142 76% 36%); + --color-primary-content: hsl(0 0% 100%); + --color-secondary: hsl(142 76% 36%); + --color-secondary-content: hsl(0 0% 100%); + --color-accent: hsl(142 76% 36%); + --color-accent-content: hsl(0 0% 100%); + --color-neutral: hsl(142 20% 17%); + --color-neutral-content: hsl(0 0% 100%); + --color-base-100: hsl(0 0% 100%); + --color-base-200: hsl(142 20% 95%); + --color-base-300: hsl(142 20% 90%); + --color-base-content: hsl(142 20% 17%); + --color-info: hsl(142 76% 36%); + --color-info-content: hsl(0 0% 100%); + --color-success: hsl(142 76% 36%); + --color-success-content: hsl(0 0% 100%); + --color-warning: hsl(38 92% 50%); + --color-warning-content: hsl(0 0% 100%); + --color-error: hsl(0 84% 60%); + --color-error-content: hsl(0 0% 100%); + --radius-selector: 0.5rem; + --radius-field: 0.5rem; + --radius-box: 1rem; + --size-selector: 0.25rem; + --size-field: 0.25rem; + --border: 1px; + --depth: 1; + --noise: 0; } -html[data-theme='sgse-orange'], -html[data-theme='sgse-orange'] body, -[data-theme='sgse-orange'] { +/* Laranja */ +@plugin 'daisyui/theme' { + name: 'sgse-orange'; color-scheme: light; - --p: 25 95% 53%; - --pf: 25 95% 43%; - --pc: 0 0% 100%; - --s: 25 95% 53%; - --sf: 25 95% 43%; - --sc: 0 0% 100%; - --a: 25 95% 53%; - --af: 25 95% 43%; - --ac: 0 0% 100%; - --n: 25 20% 17%; - --nf: 25 20% 10%; - --nc: 0 0% 100%; - --b1: 0 0% 100%; - --b2: 25 20% 95%; - --b3: 25 20% 90%; - --bc: 25 20% 17%; - --in: 25 95% 53%; - --inc: 0 0% 100%; - --su: 142 76% 36%; - --suc: 0 0% 100%; - --wa: 38 92% 50%; - --wac: 0 0% 100%; - --er: 0 84% 60%; - --erc: 0 0% 100%; - --rounded-box: 1rem; - --rounded-btn: 0.5rem; - --rounded-badge: 1.9rem; - --animation-btn: 0.25s; - --animation-input: 0.2s; - --btn-focus-scale: 0.95; - --border-btn: 1px; - --tab-border: 1px; - --tab-radius: 0.5rem; + --color-primary: hsl(25 95% 53%); + --color-primary-content: hsl(0 0% 100%); + --color-secondary: hsl(25 95% 53%); + --color-secondary-content: hsl(0 0% 100%); + --color-accent: hsl(25 95% 53%); + --color-accent-content: hsl(0 0% 100%); + --color-neutral: hsl(25 20% 17%); + --color-neutral-content: hsl(0 0% 100%); + --color-base-100: hsl(0 0% 100%); + --color-base-200: hsl(25 20% 95%); + --color-base-300: hsl(25 20% 90%); + --color-base-content: hsl(25 20% 17%); + --color-info: hsl(25 95% 53%); + --color-info-content: hsl(0 0% 100%); + --color-success: hsl(142 76% 36%); + --color-success-content: hsl(0 0% 100%); + --color-warning: hsl(38 92% 50%); + --color-warning-content: hsl(0 0% 100%); + --color-error: hsl(0 84% 60%); + --color-error-content: hsl(0 0% 100%); + --radius-selector: 0.5rem; + --radius-field: 0.5rem; + --radius-box: 1rem; + --size-selector: 0.25rem; + --size-field: 0.25rem; + --border: 1px; + --depth: 1; + --noise: 0; } -html[data-theme='sgse-red'], -html[data-theme='sgse-red'] body, -[data-theme='sgse-red'] { +/* Vermelho */ +@plugin 'daisyui/theme' { + name: 'sgse-red'; color-scheme: light; - --p: 0 84% 60%; - --pf: 0 84% 50%; - --pc: 0 0% 100%; - --s: 0 84% 60%; - --sf: 0 84% 50%; - --sc: 0 0% 100%; - --a: 0 84% 60%; - --af: 0 84% 50%; - --ac: 0 0% 100%; - --n: 0 20% 17%; - --nf: 0 20% 10%; - --nc: 0 0% 100%; - --b1: 0 0% 100%; - --b2: 0 20% 95%; - --b3: 0 20% 90%; - --bc: 0 20% 17%; - --in: 0 84% 60%; - --inc: 0 0% 100%; - --su: 142 76% 36%; - --suc: 0 0% 100%; - --wa: 38 92% 50%; - --wac: 0 0% 100%; - --er: 0 84% 60%; - --erc: 0 0% 100%; - --rounded-box: 1rem; - --rounded-btn: 0.5rem; - --rounded-badge: 1.9rem; - --animation-btn: 0.25s; - --animation-input: 0.2s; - --btn-focus-scale: 0.95; - --border-btn: 1px; - --tab-border: 1px; - --tab-radius: 0.5rem; + --color-primary: hsl(0 84% 60%); + --color-primary-content: hsl(0 0% 100%); + --color-secondary: hsl(0 84% 60%); + --color-secondary-content: hsl(0 0% 100%); + --color-accent: hsl(0 84% 60%); + --color-accent-content: hsl(0 0% 100%); + --color-neutral: hsl(0 20% 17%); + --color-neutral-content: hsl(0 0% 100%); + --color-base-100: hsl(0 0% 100%); + --color-base-200: hsl(0 20% 95%); + --color-base-300: hsl(0 20% 90%); + --color-base-content: hsl(0 20% 17%); + --color-info: hsl(0 84% 60%); + --color-info-content: hsl(0 0% 100%); + --color-success: hsl(142 76% 36%); + --color-success-content: hsl(0 0% 100%); + --color-warning: hsl(38 92% 50%); + --color-warning-content: hsl(0 0% 100%); + --color-error: hsl(0 84% 60%); + --color-error-content: hsl(0 0% 100%); + --radius-selector: 0.5rem; + --radius-field: 0.5rem; + --radius-box: 1rem; + --size-selector: 0.25rem; + --size-field: 0.25rem; + --border: 1px; + --depth: 1; + --noise: 0; } -html[data-theme='sgse-pink'], -html[data-theme='sgse-pink'] body, -[data-theme='sgse-pink'] { +/* Rosa */ +@plugin 'daisyui/theme' { + name: 'sgse-pink'; color-scheme: light; - --p: 330 81% 60%; - --pf: 330 81% 50%; - --pc: 0 0% 100%; - --s: 330 81% 60%; - --sf: 330 81% 50%; - --sc: 0 0% 100%; - --a: 330 81% 60%; - --af: 330 81% 50%; - --ac: 0 0% 100%; - --n: 330 20% 17%; - --nf: 330 20% 10%; - --nc: 0 0% 100%; - --b1: 0 0% 100%; - --b2: 330 20% 95%; - --b3: 330 20% 90%; - --bc: 330 20% 17%; - --in: 330 81% 60%; - --inc: 0 0% 100%; - --su: 142 76% 36%; - --suc: 0 0% 100%; - --wa: 38 92% 50%; - --wac: 0 0% 100%; - --er: 0 84% 60%; - --erc: 0 0% 100%; - --rounded-box: 1rem; - --rounded-btn: 0.5rem; - --rounded-badge: 1.9rem; - --animation-btn: 0.25s; - --animation-input: 0.2s; - --btn-focus-scale: 0.95; - --border-btn: 1px; - --tab-border: 1px; - --tab-radius: 0.5rem; + --color-primary: hsl(330 81% 60%); + --color-primary-content: hsl(0 0% 100%); + --color-secondary: hsl(330 81% 60%); + --color-secondary-content: hsl(0 0% 100%); + --color-accent: hsl(330 81% 60%); + --color-accent-content: hsl(0 0% 100%); + --color-neutral: hsl(330 20% 17%); + --color-neutral-content: hsl(0 0% 100%); + --color-base-100: hsl(0 0% 100%); + --color-base-200: hsl(330 20% 95%); + --color-base-300: hsl(330 20% 90%); + --color-base-content: hsl(330 20% 17%); + --color-info: hsl(330 81% 60%); + --color-info-content: hsl(0 0% 100%); + --color-success: hsl(142 76% 36%); + --color-success-content: hsl(0 0% 100%); + --color-warning: hsl(38 92% 50%); + --color-warning-content: hsl(0 0% 100%); + --color-error: hsl(0 84% 60%); + --color-error-content: hsl(0 0% 100%); + --radius-selector: 0.5rem; + --radius-field: 0.5rem; + --radius-box: 1rem; + --size-selector: 0.25rem; + --size-field: 0.25rem; + --border: 1px; + --depth: 1; + --noise: 0; } -html[data-theme='sgse-teal'], -html[data-theme='sgse-teal'] body, -[data-theme='sgse-teal'] { +/* Teal */ +@plugin 'daisyui/theme' { + name: 'sgse-teal'; color-scheme: light; - --p: 173 80% 40%; - --pf: 173 80% 30%; - --pc: 0 0% 100%; - --s: 173 80% 40%; - --sf: 173 80% 30%; - --sc: 0 0% 100%; - --a: 173 80% 40%; - --af: 173 80% 30%; - --ac: 0 0% 100%; - --n: 173 20% 17%; - --nf: 173 20% 10%; - --nc: 0 0% 100%; - --b1: 0 0% 100%; - --b2: 173 20% 95%; - --b3: 173 20% 90%; - --bc: 173 20% 17%; - --in: 173 80% 40%; - --inc: 0 0% 100%; - --su: 142 76% 36%; - --suc: 0 0% 100%; - --wa: 38 92% 50%; - --wac: 0 0% 100%; - --er: 0 84% 60%; - --erc: 0 0% 100%; - --rounded-box: 1rem; - --rounded-btn: 0.5rem; - --rounded-badge: 1.9rem; - --animation-btn: 0.25s; - --animation-input: 0.2s; - --btn-focus-scale: 0.95; - --border-btn: 1px; - --tab-border: 1px; - --tab-radius: 0.5rem; + --color-primary: hsl(173 80% 40%); + --color-primary-content: hsl(0 0% 100%); + --color-secondary: hsl(173 80% 40%); + --color-secondary-content: hsl(0 0% 100%); + --color-accent: hsl(173 80% 40%); + --color-accent-content: hsl(0 0% 100%); + --color-neutral: hsl(173 20% 17%); + --color-neutral-content: hsl(0 0% 100%); + --color-base-100: hsl(0 0% 100%); + --color-base-200: hsl(173 20% 95%); + --color-base-300: hsl(173 20% 90%); + --color-base-content: hsl(173 20% 17%); + --color-info: hsl(173 80% 40%); + --color-info-content: hsl(0 0% 100%); + --color-success: hsl(142 76% 36%); + --color-success-content: hsl(0 0% 100%); + --color-warning: hsl(38 92% 50%); + --color-warning-content: hsl(0 0% 100%); + --color-error: hsl(0 84% 60%); + --color-error-content: hsl(0 0% 100%); + --radius-selector: 0.5rem; + --radius-field: 0.5rem; + --radius-box: 1rem; + --size-selector: 0.25rem; + --size-field: 0.25rem; + --border: 1px; + --depth: 1; + --noise: 0; } -html[data-theme='sgse-corporate'], -html[data-theme='sgse-corporate'] body, -[data-theme='sgse-corporate'] { +/* Corporativo (Dark Blue) */ +@plugin 'daisyui/theme' { + name: 'sgse-corporate'; color-scheme: dark; - --p: 217 91% 60%; - --pf: 217 91% 50%; - --pc: 0 0% 100%; - --s: 217 91% 60%; - --sf: 217 91% 50%; - --sc: 0 0% 100%; - --a: 217 91% 60%; - --af: 217 91% 50%; - --ac: 0 0% 100%; - --n: 217 30% 15%; - --nf: 217 30% 8%; - --nc: 0 0% 100%; - --b1: 217 30% 10%; - --b2: 217 30% 15%; - --b3: 217 30% 20%; - --bc: 217 10% 90%; - --in: 217 91% 60%; - --inc: 0 0% 100%; - --su: 142 76% 36%; - --suc: 0 0% 100%; - --wa: 38 92% 50%; - --wac: 0 0% 100%; - --er: 0 84% 60%; - --erc: 0 0% 100%; - --rounded-box: 1rem; - --rounded-btn: 0.5rem; - --rounded-badge: 1.9rem; - --animation-btn: 0.25s; - --animation-input: 0.2s; - --btn-focus-scale: 0.95; - --border-btn: 1px; - --tab-border: 1px; - --tab-radius: 0.5rem; + --color-primary: hsl(217 91% 60%); + --color-primary-content: hsl(0 0% 100%); + --color-secondary: hsl(217 91% 60%); + --color-secondary-content: hsl(0 0% 100%); + --color-accent: hsl(217 91% 60%); + --color-accent-content: hsl(0 0% 100%); + --color-neutral: hsl(217 30% 15%); + --color-neutral-content: hsl(0 0% 100%); + --color-base-100: hsl(217 30% 10%); + --color-base-200: hsl(217 30% 15%); + --color-base-300: hsl(217 30% 20%); + --color-base-content: hsl(217 10% 90%); + --color-info: hsl(217 91% 60%); + --color-info-content: hsl(0 0% 100%); + --color-success: hsl(142 76% 36%); + --color-success-content: hsl(0 0% 100%); + --color-warning: hsl(38 92% 50%); + --color-warning-content: hsl(0 0% 100%); + --color-error: hsl(0 84% 60%); + --color-error-content: hsl(0 0% 100%); + --radius-selector: 0.5rem; + --radius-field: 0.5rem; + --radius-box: 1rem; + --size-selector: 0.25rem; + --size-field: 0.25rem; + --border: 1px; + --depth: 1; + --noise: 0; } -/* Tema Light customizado para garantir funcionamento completo */ -html[data-theme='light'], -html[data-theme='light'] body, -[data-theme='light'] { +/* Light */ +@plugin 'daisyui/theme' { + name: 'light'; color-scheme: light; - --p: 217 91% 60%; - --pf: 217 91% 50%; - --pc: 0 0% 100%; - --s: 217 91% 60%; - --sf: 217 91% 50%; - --sc: 0 0% 100%; - --a: 217 91% 60%; - --af: 217 91% 50%; - --ac: 0 0% 100%; - --n: 217 20% 17%; - --nf: 217 20% 10%; - --nc: 0 0% 100%; - --b1: 0 0% 100%; - --b2: 217 20% 95%; - --b3: 217 20% 90%; - --bc: 217 20% 17%; - --in: 217 91% 60%; - --inc: 0 0% 100%; - --su: 142 76% 36%; - --suc: 0 0% 100%; - --wa: 38 92% 50%; - --wac: 0 0% 100%; - --er: 0 84% 60%; - --erc: 0 0% 100%; - --rounded-box: 1rem; - --rounded-btn: 0.5rem; - --rounded-badge: 1.9rem; - --animation-btn: 0.25s; - --animation-input: 0.2s; - --btn-focus-scale: 0.95; - --border-btn: 1px; - --tab-border: 1px; - --tab-radius: 0.5rem; + --color-primary: hsl(217 91% 60%); + --color-primary-content: hsl(0 0% 100%); + --color-secondary: hsl(217 91% 60%); + --color-secondary-content: hsl(0 0% 100%); + --color-accent: hsl(217 91% 60%); + --color-accent-content: hsl(0 0% 100%); + --color-neutral: hsl(217 20% 17%); + --color-neutral-content: hsl(0 0% 100%); + --color-base-100: hsl(0 0% 100%); + --color-base-200: hsl(217 20% 95%); + --color-base-300: hsl(217 20% 90%); + --color-base-content: hsl(217 20% 17%); + --color-info: hsl(217 91% 60%); + --color-info-content: hsl(0 0% 100%); + --color-success: hsl(142 76% 36%); + --color-success-content: hsl(0 0% 100%); + --color-warning: hsl(38 92% 50%); + --color-warning-content: hsl(0 0% 100%); + --color-error: hsl(0 84% 60%); + --color-error-content: hsl(0 0% 100%); + --radius-selector: 0.5rem; + --radius-field: 0.5rem; + --radius-box: 1rem; + --size-selector: 0.25rem; + --size-field: 0.25rem; + --border: 1px; + --depth: 1; + --noise: 0; } -/* Tema Dark customizado para garantir funcionamento completo */ -html[data-theme='dark'], -html[data-theme='dark'] body, -[data-theme='dark'] { +/* Dark */ +@plugin 'daisyui/theme' { + name: 'dark'; color-scheme: dark; - --p: 217 91% 60%; - --pf: 217 91% 50%; - --pc: 0 0% 100%; - --s: 217 91% 60%; - --sf: 217 91% 50%; - --sc: 0 0% 100%; - --a: 217 91% 60%; - --af: 217 91% 50%; - --ac: 0 0% 100%; - --n: 217 30% 15%; - --nf: 217 30% 8%; - --nc: 0 0% 100%; - --b1: 217 30% 10%; - --b2: 217 30% 15%; - --b3: 217 30% 20%; - --bc: 217 10% 90%; - --in: 217 91% 60%; - --inc: 0 0% 100%; - --su: 142 76% 36%; - --suc: 0 0% 100%; - --wa: 38 92% 50%; - --wac: 0 0% 100%; - --er: 0 84% 60%; - --erc: 0 0% 100%; - --rounded-box: 1rem; - --rounded-btn: 0.5rem; - --rounded-badge: 1.9rem; - --animation-btn: 0.25s; - --animation-input: 0.2s; - --btn-focus-scale: 0.95; - --border-btn: 1px; - --tab-border: 1px; - --tab-radius: 0.5rem; + --color-primary: hsl(217 91% 60%); + --color-primary-content: hsl(0 0% 100%); + --color-secondary: hsl(217 91% 60%); + --color-secondary-content: hsl(0 0% 100%); + --color-accent: hsl(217 91% 60%); + --color-accent-content: hsl(0 0% 100%); + --color-neutral: hsl(217 30% 15%); + --color-neutral-content: hsl(0 0% 100%); + --color-base-100: hsl(217 30% 10%); + --color-base-200: hsl(217 30% 15%); + --color-base-300: hsl(217 30% 20%); + --color-base-content: hsl(217 10% 90%); + --color-info: hsl(217 91% 60%); + --color-info-content: hsl(0 0% 100%); + --color-success: hsl(142 76% 36%); + --color-success-content: hsl(0 0% 100%); + --color-warning: hsl(38 92% 50%); + --color-warning-content: hsl(0 0% 100%); + --color-error: hsl(0 84% 60%); + --color-error-content: hsl(0 0% 100%); + --radius-selector: 0.5rem; + --radius-field: 0.5rem; + --radius-box: 1rem; + --size-selector: 0.25rem; + --size-field: 0.25rem; + --border: 1px; + --depth: 1; + --noise: 0; } diff --git a/apps/web/src/app.html b/apps/web/src/app.html index e912c97..acc1048 100644 --- a/apps/web/src/app.html +++ b/apps/web/src/app.html @@ -111,8 +111,17 @@ (function () { if (typeof document !== 'undefined') { var html = document.documentElement; - if (!html.getAttribute('data-theme')) { - html.setAttribute('data-theme', 'aqua'); + if (html && !html.getAttribute('data-theme')) { + var tema = null; + try { + // theme-change usa por padrão a chave "theme" + tema = localStorage.getItem('theme'); + } catch (e) { + tema = null; + } + + // Fallback para o tema padrão se não houver persistência + html.setAttribute('data-theme', tema || 'aqua'); } } })(); diff --git a/apps/web/src/lib/components/Header.svelte b/apps/web/src/lib/components/Header.svelte index 20ee848..a28489c 100644 --- a/apps/web/src/lib/components/Header.svelte +++ b/apps/web/src/lib/components/Header.svelte @@ -35,6 +35,23 @@