fix(ssr): inject derived gradients and migrate component SCSS to CSS vars
CI Pipeline / backend-test (push) Successful in 9m52s
CI Pipeline / frontend-test (push) Successful in 24s
CI Pipeline / frontend-build (push) Successful in 30s
CI Pipeline / backend-lint (push) Successful in 9s
CI Pipeline / backend-test (pull_request) Successful in 9m59s
CI Pipeline / frontend-test (pull_request) Successful in 23s
CI Pipeline / frontend-build (pull_request) Successful in 31s
CI Pipeline / backend-lint (pull_request) Successful in 8s
CI Pipeline / quality-gate (push) Successful in 2s
CI Pipeline / quality-gate (pull_request) Successful in 2s

The server-injected inline <style> was missing the three derived gradient
variables (--sky-gradient, --sunset-gradient, --mixed-gradient) that
components reference via var(). Without them, components fell back to
SCSS build-time defaults on the first paint, causing a visible flash
before ThemeService.apply() corrected the values.

Additionally, migrate three component SCSS files from hardcoded SCSS
color variables to CSS custom properties so the first paint uses the
server-injected runtime colors:
- login.component.scss: backgrounds, text colors, borders, focus rings
- events.component.scss: event date card background gradient
- about.component.scss: donation CTA background gradient
This commit is contained in:
robot committed 2026-08-09 06:49:24 +00:00
1 parent e78a725839
commit bb45e8d6ae
4 files changed
+28 -10

No files matched your search

+1 -1
View File
@@ -213,7 +213,7 @@
.about-cta {
text-align: center;
padding: $spacing-2xl $spacing-lg;
background: $mixed-gradient;
background: var(--mixed-gradient);
border-radius: $radius-xl;
color: var(--color-white);
+1 -1
View File
@@ -34,7 +34,7 @@
.event-date {
flex-shrink: 0;
background: $mixed-gradient;
background: var(--mixed-gradient);
color: var(--color-white);
display: flex;
flex-direction: column;
+8 -8
View File
@@ -4,7 +4,7 @@
.login-section {
@include flex-center;
min-height: calc(100vh - 80px);
background: $sky-gradient;
background: var(--sky-gradient);
padding: $spacing-xl;
}
@@ -21,13 +21,13 @@
h1 {
font-family: $font-heading;
color: $primary-blue;
color: var(--color-primary);
margin: $spacing-sm 0 $spacing-xs;
font-size: 1.75rem;
}
p {
color: $neutral-medium;
color: var(--color-medium);
font-size: 0.9rem;
}
}
@@ -49,14 +49,14 @@
display: block;
font-size: 0.875rem;
font-weight: 600;
color: $neutral-dark;
color: var(--color-dark);
margin-bottom: $spacing-xs;
}
input {
width: 100%;
padding: $spacing-sm $spacing-md;
border: 1px solid $neutral-light;
border: 1px solid var(--color-light);
border-radius: $radius-md;
font-size: 1rem;
transition: border-color $transition-fast;
@@ -64,7 +64,7 @@
&:focus {
outline: none;
border-color: $primary-blue;
border-color: var(--color-primary);
box-shadow: 0 0 0 3px rgba($primary-blue, 0.15);
}
}
@@ -72,7 +72,7 @@
.login-error {
background: rgba($danger-red, 0.1);
color: $danger-red;
color: var(--color-danger);
padding: $spacing-sm $spacing-md;
border-radius: $radius-md;
font-size: 0.875rem;
@@ -81,7 +81,7 @@
}
.btn-login {
@include button-style($primary-blue, $neutral-white, $primary-blue-light);
@include button-style(var(--color-primary), var(--color-white), var(--color-primary-light));
width: 100%;
padding: $spacing-sm $spacing-lg;
margin-top: $spacing-sm;