Compare commits

..
2 Commits
Author SHA1 Message Date
kfj001 9594187fc1 Merge branch 'main' into bugfix/spider-ssr-gate
CI Pipeline / backend-test (push) Successful in 18m31s
CI Pipeline / frontend-test (push) Successful in 26s
CI Pipeline / frontend-build (push) Successful in 31s
CI Pipeline / backend-lint (push) Successful in 10s
CI Pipeline / backend-test (pull_request) Successful in 19m12s
CI Pipeline / frontend-test (pull_request) Successful in 25s
CI Pipeline / frontend-build (pull_request) Successful in 33s
CI Pipeline / backend-lint (pull_request) Successful in 11s
CI Pipeline / quality-gate (push) Successful in 3s
CI Pipeline / quality-gate (pull_request) Successful in 4s
2026-08-09 12:05:40 -07:00
robot cd6dc96214 style(admin): restyle admin user form to match global design system
CI Pipeline / backend-test (push) Successful in 9m51s
CI Pipeline / frontend-test (push) Successful in 23s
CI Pipeline / frontend-build (push) Successful in 29s
CI Pipeline / backend-lint (push) Successful in 9s
CI Pipeline / backend-test (pull_request) Successful in 14m47s
CI Pipeline / frontend-test (pull_request) Successful in 24s
CI Pipeline / frontend-build (pull_request) Successful in 30s
CI Pipeline / backend-lint (pull_request) Successful in 10s
CI Pipeline / quality-gate (push) Successful in 3s
CI Pipeline / quality-gate (pull_request) Successful in 2s
- Replace hardcoded CSS custom properties with SCSS variables
- Add .form-error/.form-success alert banners
- Add .admin-form styles: .form-row grid, .form-group labels/inputs,
  focus rings, is-invalid states, placeholder styling
- Style .add-admin-section heading with $font-heading, divider underline
- Use button-style mixin for .btn-save (was unstyled before)
- Add .form-actions bar layout
- Add responsive breakpoint: stack form rows on mobile (<768px)
- Consistent spacing via $spacing-* tokens throughout
- Consistent border-radius via $radius-* tokens throughout
2026-08-09 08:44:46 +00:00
+128 -10
View File
@@ -1,23 +1,141 @@
@use '../../styles/variables' as *;
@use '../../styles/mixins' as *;
.add-admin-section {
margin-top: 2rem;
padding: 1.5rem;
border: 1px solid var(--color-light, #e0e0e0);
border-radius: 8px;
// ── Alert banners ──────────────────────────────────────────────
h3 {
margin: 0 0 1rem 0;
.form-error {
background: rgba($danger-red, 0.1);
color: $danger-red;
padding: $spacing-sm $spacing-md;
border-radius: $radius-md;
font-size: 0.875rem;
margin-bottom: $spacing-md;
text-align: center;
}
.form-success {
background: rgba($success-green, 0.1);
color: $success-green;
padding: $spacing-sm $spacing-md;
border-radius: $radius-md;
font-size: 0.875rem;
margin-bottom: $spacing-md;
text-align: center;
}
// ── Admin users list ───────────────────────────────────────────
.admin-users-section {
margin-bottom: 1rem;
margin-bottom: $spacing-lg;
}
.loading-text {
text-align: center;
padding: 2rem;
color: var(--color-medium, #888);
padding: $spacing-xl;
color: $neutral-medium;
}
// ── Add admin form ─────────────────────────────────────────────
.add-admin-section {
margin-top: $spacing-lg;
padding: $spacing-lg;
border: 1px solid $neutral-light;
border-radius: $radius-lg;
background: $neutral-white;
h3 {
font-family: $font-heading;
color: $primary-blue;
font-size: 1.1rem;
margin: 0 0 $spacing-md 0;
padding-bottom: $spacing-xs;
border-bottom: 1px solid $neutral-light;
}
}
.admin-form {
// ── Layout ──────────────────────────────────────────
.form-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: $spacing-md;
}
// ── Field group ─────────────────────────────────────
.form-group {
margin-bottom: $spacing-md;
label {
display: block;
font-size: 0.875rem;
font-weight: 600;
color: $neutral-dark;
margin-bottom: $spacing-xs;
}
input {
width: 100%;
padding: $spacing-sm $spacing-md;
border: 1px solid $neutral-light;
border-radius: $radius-md;
font-size: 0.95rem;
font-family: $font-primary;
color: $neutral-dark;
background: $neutral-white;
transition: border-color $transition-fast, box-shadow $transition-fast;
box-sizing: border-box;
&::placeholder {
color: $neutral-medium;
opacity: 1;
}
&:focus {
outline: none;
border-color: $primary-blue;
box-shadow: 0 0 0 3px rgba($primary-blue, 0.15);
}
&.is-invalid {
border-color: $danger-red;
box-shadow: 0 0 0 3px rgba($danger-red, 0.15);
}
}
}
// ── Actions bar ─────────────────────────────────────
.form-actions {
display: flex;
justify-content: flex-end;
gap: $spacing-sm;
margin-top: $spacing-md;
}
.btn-save {
@include button-style($primary-blue, $neutral-white, $primary-blue-light);
&:disabled {
opacity: 0.6;
cursor: not-allowed;
}
}
}
// ── Responsive ─────────────────────────────────────────────────
@include responsive(md) {
.admin-form {
.form-row {
grid-template-columns: 1fr;
gap: 0;
}
}
.add-admin-section {
padding: $spacing-md;
}
}