diff --git a/apps/web/src/app.css b/apps/web/src/app.css index 494c37c..31ac095 100644 --- a/apps/web/src/app.css +++ b/apps/web/src/app.css @@ -26,11 +26,12 @@ name: 'aqua'; default: true; color-scheme: light; - --color-primary: hsl(217 91% 60%); + /* Azul principal (ligeiramente mais escuro que o anterior) */ + --color-primary: hsl(217 91% 55%); --color-primary-content: hsl(0 0% 100%); - --color-secondary: hsl(217 91% 60%); + --color-secondary: hsl(217 91% 55%); --color-secondary-content: hsl(0 0% 100%); - --color-accent: hsl(217 91% 60%); + --color-accent: hsl(217 91% 55%); --color-accent-content: hsl(0 0% 100%); --color-neutral: hsl(217 20% 17%); --color-neutral-content: hsl(0 0% 100%); @@ -62,11 +63,11 @@ @plugin 'daisyui/theme' { name: 'sgse-blue'; color-scheme: light; - --color-primary: hsl(217 91% 60%); + --color-primary: hsl(217 91% 55%); --color-primary-content: hsl(0 0% 100%); - --color-secondary: hsl(217 91% 60%); + --color-secondary: hsl(217 91% 55%); --color-secondary-content: hsl(0 0% 100%); - --color-accent: hsl(217 91% 60%); + --color-accent: hsl(217 91% 55%); --color-accent-content: hsl(0 0% 100%); --color-neutral: hsl(217 20% 17%); --color-neutral-content: hsl(0 0% 100%); @@ -266,17 +267,19 @@ @plugin 'daisyui/theme' { name: 'sgse-corporate'; color-scheme: dark; - --color-primary: hsl(217 91% 60%); + --color-primary: hsl(217 91% 55%); --color-primary-content: hsl(0 0% 100%); - --color-secondary: hsl(217 91% 60%); + --color-secondary: hsl(217 91% 55%); --color-secondary-content: hsl(0 0% 100%); - --color-accent: hsl(217 91% 60%); + --color-accent: hsl(217 91% 55%); --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%); + /* Aproxima do fundo do login (Tailwind slate-900 = #0f172a) */ + --color-base-100: hsl(222 47% 11%); + /* Escala de contraste (slate-800 / slate-700 aproximados) */ + --color-base-200: hsl(215 28% 17%); + --color-base-300: hsl(215 25% 23%); --color-base-content: hsl(217 10% 90%); --color-info: hsl(217 91% 60%); --color-info-content: hsl(0 0% 100%); @@ -300,11 +303,11 @@ @plugin 'daisyui/theme' { name: 'light'; color-scheme: light; - --color-primary: hsl(217 91% 60%); + --color-primary: hsl(217 91% 55%); --color-primary-content: hsl(0 0% 100%); - --color-secondary: hsl(217 91% 60%); + --color-secondary: hsl(217 91% 55%); --color-secondary-content: hsl(0 0% 100%); - --color-accent: hsl(217 91% 60%); + --color-accent: hsl(217 91% 55%); --color-accent-content: hsl(0 0% 100%); --color-neutral: hsl(217 20% 17%); --color-neutral-content: hsl(0 0% 100%); @@ -334,11 +337,11 @@ @plugin 'daisyui/theme' { name: 'dark'; color-scheme: dark; - --color-primary: hsl(217 91% 60%); + --color-primary: hsl(217 91% 55%); --color-primary-content: hsl(0 0% 100%); - --color-secondary: hsl(217 91% 60%); + --color-secondary: hsl(217 91% 55%); --color-secondary-content: hsl(0 0% 100%); - --color-accent: hsl(217 91% 60%); + --color-accent: hsl(217 91% 55%); --color-accent-content: hsl(0 0% 100%); --color-neutral: hsl(217 30% 15%); --color-neutral-content: hsl(0 0% 100%); diff --git a/apps/web/src/lib/components/AnimatedBackgroundElements.svelte b/apps/web/src/lib/components/AnimatedBackgroundElements.svelte new file mode 100644 index 0000000..fbf9ee5 --- /dev/null +++ b/apps/web/src/lib/components/AnimatedBackgroundElements.svelte @@ -0,0 +1,16 @@ + + +
+
+
+
diff --git a/apps/web/src/lib/components/DecorativeTopLine.svelte b/apps/web/src/lib/components/DecorativeTopLine.svelte new file mode 100644 index 0000000..97129d5 --- /dev/null +++ b/apps/web/src/lib/components/DecorativeTopLine.svelte @@ -0,0 +1,14 @@ + + +
diff --git a/apps/web/src/lib/components/ErrorMessage.svelte b/apps/web/src/lib/components/ErrorMessage.svelte new file mode 100644 index 0000000..e6f0850 --- /dev/null +++ b/apps/web/src/lib/components/ErrorMessage.svelte @@ -0,0 +1,22 @@ + + +{#if message} +
+ + {message} +
+{/if} diff --git a/apps/web/src/lib/components/GlassCard.svelte b/apps/web/src/lib/components/GlassCard.svelte new file mode 100644 index 0000000..600d7f3 --- /dev/null +++ b/apps/web/src/lib/components/GlassCard.svelte @@ -0,0 +1,19 @@ + + +
+ {@render children?.()} +
diff --git a/apps/web/src/lib/components/Header.svelte b/apps/web/src/lib/components/Header.svelte index 6a42959..e5e7e3e 100644 --- a/apps/web/src/lib/components/Header.svelte +++ b/apps/web/src/lib/components/Header.svelte @@ -12,7 +12,7 @@
diff --git a/apps/web/src/lib/components/MenuToggleIcon.svelte b/apps/web/src/lib/components/MenuToggleIcon.svelte new file mode 100644 index 0000000..1e6bb1e --- /dev/null +++ b/apps/web/src/lib/components/MenuToggleIcon.svelte @@ -0,0 +1,85 @@ + + + + + diff --git a/apps/web/src/lib/components/ShineEffect.svelte b/apps/web/src/lib/components/ShineEffect.svelte new file mode 100644 index 0000000..df60c12 --- /dev/null +++ b/apps/web/src/lib/components/ShineEffect.svelte @@ -0,0 +1,14 @@ + + +
diff --git a/apps/web/src/lib/components/login/LoginInput.svelte b/apps/web/src/lib/components/login/LoginInput.svelte new file mode 100644 index 0000000..024413a --- /dev/null +++ b/apps/web/src/lib/components/login/LoginInput.svelte @@ -0,0 +1,62 @@ + + + +
+ + {label} + + {@render right?.()} +
+ +
+ +
+ + {#if error} + {error} + {/if} +
diff --git a/apps/web/src/routes/(dashboard)/+layout.svelte b/apps/web/src/routes/(dashboard)/+layout.svelte index 68ea086..46cf6c0 100644 --- a/apps/web/src/routes/(dashboard)/+layout.svelte +++ b/apps/web/src/routes/(dashboard)/+layout.svelte @@ -4,11 +4,11 @@ import PushNotificationManager from '$lib/components/PushNotificationManager.svelte'; import Footer from '$lib/components/Footer.svelte'; import Header from '$lib/components/Header.svelte'; + import MenuToggleIcon from '$lib/components/MenuToggleIcon.svelte'; import Sidebar from '$lib/components/Sidebar.svelte'; import DashboardHeaderActions from '$lib/components/dashboard/DashboardHeaderActions.svelte'; import ChatWidget from '$lib/components/chat/ChatWidget.svelte'; import PresenceManager from '$lib/components/chat/PresenceManager.svelte'; - import { Menu, X } from 'lucide-svelte'; const { children } = $props(); @@ -44,11 +44,7 @@ aria-label={sidebarOpen ? 'Fechar menu' : 'Abrir menu'} onclick={toggleSidebar} > - {#if sidebarOpen} - - {:else} - - {/if} + {/snippet} diff --git a/apps/web/src/routes/(public)/login/+page.svelte b/apps/web/src/routes/(public)/login/+page.svelte index 2aabd1b..94daa52 100644 --- a/apps/web/src/routes/(public)/login/+page.svelte +++ b/apps/web/src/routes/(public)/login/+page.svelte @@ -9,7 +9,13 @@ import logo from '$lib/assets/logo_governo_PE.png'; import { authClient } from '$lib/auth'; import { obterIPPublico } from '$lib/utils/deviceInfo'; - import { LogIn, XCircle } from 'lucide-svelte'; + import AnimatedBackgroundElements from '$lib/components/AnimatedBackgroundElements.svelte'; + import DecorativeTopLine from '$lib/components/DecorativeTopLine.svelte'; + import ErrorMessage from '$lib/components/ErrorMessage.svelte'; + import GlassCard from '$lib/components/GlassCard.svelte'; + import LoginInput from '$lib/components/login/LoginInput.svelte'; + import ShineEffect from '$lib/components/ShineEffect.svelte'; + import { LogIn } from 'lucide-svelte'; interface GPSLocation { latitude?: number; @@ -167,114 +173,74 @@
- -
-
-
-
+
-
- -
+ +
Logo SGSE
-

+

Bem-vindo de volta

-

+

Entre com suas credenciais para acessar o sistema

- {#if erroLogin} -
- - {erroLogin} -
- {/if} +
-
- -
- -
-
+ -
-
- + + {#snippet right()} Esqueceu a senha? -
-
- -
-
+ {/snippet} +
-

+

Precisa de ajuda? Abrir um chamado

-
+ -
+

© {new Date().getFullYear()} Governo de Pernambuco. Todos os direitos reservados.