Cada tema agora expõe variáveis próprias no theme.json (color pickers na config, injetadas no compile SCSS com !default): - aurora-glass: page-background + aurora-color-1/2/3 (gradientes e blobs) - nordic-minimal: page-background, panel-background e decor-color (grid, anéis e sombra do painel) - sunset-mesh: page-background, accent-color (links/foco) e mesh-color-1..4 (os 4 lóbulos do mesh) - carbon-neon: page-background, glow-color (bordas/glow/prompt/cursor) e terminal-background-color Tons translúcidos derivados de variável usam color-mix() do CSS (scssphp não avalia rgba($var) de cor injetada; color-mix passa direto e o browser resolve). Validado: injeção de variável altera o CSS compilado e os 4 temas servem color-mix na página de login. Temas legados removidos (aurora-boreal, baloons, cloud, desktop, light, neon, night, original, power-red, prompt-developer) — catálogo agora são só os 4 modernos. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
166 lines
4.1 KiB
SCSS
166 lines
4.1 KiB
SCSS
/* Tema Nordic Minimal — split-screen: painel branco full-height à direita,
|
|
fundo decorativo à esquerda (padrão Stripe/Notion) */
|
|
|
|
$btn-background-color: #1e3a5f !default;
|
|
$btn-foreground-color: #ffffff !default;
|
|
$page-background-color: #eef2f6 !default;
|
|
$panel-background-color: #ffffff !default;
|
|
$decor-color: #1e3a5f !default;
|
|
|
|
body.welcome-anonymous,
|
|
body.login-page,
|
|
main.page-anonymous {
|
|
min-height: 100vh;
|
|
background-color: $page-background-color;
|
|
background-image:
|
|
linear-gradient(color-mix(in srgb, #{$decor-color} 5%, transparent) 1px, transparent 1px),
|
|
linear-gradient(90deg, color-mix(in srgb, #{$decor-color} 5%, transparent) 1px, transparent 1px),
|
|
radial-gradient(45% 60% at 25% 35%, color-mix(in srgb, #{$decor-color} 16%, transparent) 0%, transparent 70%),
|
|
radial-gradient(35% 45% at 10% 80%, color-mix(in srgb, #{$decor-color} 12%, #60a5fa00) 0%, transparent 70%);
|
|
background-size: 36px 36px, 36px 36px, 100% 100%, 100% 100%;
|
|
background-attachment: fixed;
|
|
}
|
|
|
|
/* anéis decorativos no lado esquerdo livre */
|
|
main.page-anonymous {
|
|
position: relative;
|
|
|
|
&::before {
|
|
content: "";
|
|
position: fixed;
|
|
left: 8vw;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
width: 340px;
|
|
height: 340px;
|
|
border: 2px solid color-mix(in srgb, #{$decor-color} 14%, transparent);
|
|
border-radius: 50%;
|
|
pointer-events: none;
|
|
}
|
|
|
|
&::after {
|
|
content: "";
|
|
position: fixed;
|
|
left: calc(8vw + 60px);
|
|
top: calc(50% - 110px);
|
|
width: 220px;
|
|
height: 220px;
|
|
border: 2px dashed color-mix(in srgb, #{$decor-color} 20%, transparent);
|
|
border-radius: 50%;
|
|
pointer-events: none;
|
|
}
|
|
}
|
|
|
|
/* painel ancorado à direita, altura total */
|
|
.page-anonymous .flex-fill.d-flex.flex-column {
|
|
padding: 0 !important;
|
|
margin: 0 !important;
|
|
min-height: 100vh;
|
|
align-items: flex-end;
|
|
}
|
|
|
|
.page-anonymous .container-tight {
|
|
margin: 0 !important;
|
|
width: 30rem;
|
|
max-width: 100vw !important;
|
|
min-height: 100vh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
background: $panel-background-color;
|
|
padding: 2rem 3.2rem !important;
|
|
box-shadow: -32px 0 70px color-mix(in srgb, #{$decor-color} 16%, transparent);
|
|
}
|
|
|
|
.page-anonymous .container-tight .text-center {
|
|
text-align: left !important;
|
|
}
|
|
|
|
.page-anonymous .main-content-card .card-body {
|
|
padding: 0 !important;
|
|
}
|
|
|
|
.page-anonymous .main-content-card .col-md-5 {
|
|
width: 100% !important;
|
|
max-width: none;
|
|
flex: 1 1 100%;
|
|
}
|
|
|
|
.page-anonymous .card-header {
|
|
border: 0;
|
|
background: transparent;
|
|
padding-left: 0;
|
|
|
|
h2 {
|
|
color: #1e293b;
|
|
font-weight: 700;
|
|
margin: 0 !important;
|
|
text-align: left;
|
|
}
|
|
}
|
|
|
|
.page-anonymous .form-label {
|
|
color: #475569;
|
|
font-weight: 600;
|
|
font-size: 0.76rem;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.08em;
|
|
}
|
|
|
|
.page-anonymous .form-control,
|
|
.page-anonymous .form-select {
|
|
background: #fafbfc;
|
|
border: 1px solid #dfe5ec;
|
|
border-radius: 10px;
|
|
color: #1e293b;
|
|
padding: 0.7rem 0.9rem;
|
|
transition: border-color 0.15s ease, box-shadow 0.15s ease;
|
|
|
|
&:focus {
|
|
background: #ffffff;
|
|
border-color: $btn-background-color;
|
|
box-shadow: 0 0 0 0.25rem color-mix(in srgb, #{$btn-background-color} 12%, transparent);
|
|
}
|
|
}
|
|
|
|
.page-anonymous .select2-container .select2-selection {
|
|
background: #fafbfc;
|
|
border: 1px solid #dfe5ec;
|
|
border-radius: 10px;
|
|
}
|
|
|
|
.page-anonymous .btn.btn-primary {
|
|
background: $btn-background-color;
|
|
border: 0;
|
|
border-radius: 10px;
|
|
color: $btn-foreground-color;
|
|
padding: 0.75rem;
|
|
font-weight: 600;
|
|
transition: filter 0.15s ease, transform 0.15s ease;
|
|
|
|
&:hover {
|
|
filter: brightness(1.15);
|
|
transform: translateY(-1px);
|
|
}
|
|
}
|
|
|
|
.page-anonymous .text-muted,
|
|
.page-anonymous .copyright {
|
|
color: #94a3b8 !important;
|
|
}
|
|
|
|
.page-anonymous a {
|
|
color: $btn-background-color !important;
|
|
}
|
|
|
|
@media (max-width: 900px) {
|
|
.page-anonymous .container-tight {
|
|
width: 100vw;
|
|
box-shadow: none;
|
|
}
|
|
|
|
main.page-anonymous::before,
|
|
main.page-anonymous::after {
|
|
display: none;
|
|
}
|
|
}
|