refactor: UI consistency — shared CSS, design system colors, no inline styles
All checks were successful
CI / cleanup-branch (push) Has been skipped
CI / build (push) Successful in 1m22s
CI / docker (push) Successful in 1m9s
CI / deploy-feature (push) Has been skipped
CI / deploy (push) Successful in 36s

Phase 1: Extract 6 shared CSS modules (table-section, log-panel,
rate-colors, refresh-indicator, chart-card, section-card) eliminating
~135 duplicate class definitions across 11 files.

Phase 2: Replace all hardcoded hex colors in CSS modules with design
system variables. Strip ~55 hex fallbacks from var() patterns. Fix 4
undefined variable names (--accent, --bg-base, --surface, --bg-surface-raised).

Phase 3: Replace ~45 hardcoded hex values in ProcessDiagram SVG
components with var() CSS custom properties. Fix Dashboard.tsx color prop.

Phase 4: Create CSS modules for AdminLayout, DatabaseAdminPage,
OidcCallback (previously 100% inline). Extract shared PageLoader
component (replaces 3 copy-pasted spinner patterns). Move AppsTab
static inline styles to CSS classes. Extract LayoutShell StarredList styles.

58 files changed, net -219 lines.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
hsiegeln
2026-04-09 14:55:54 +02:00
parent bfed8174ca
commit ff62a34d89
58 changed files with 770 additions and 989 deletions

View File

@@ -57,7 +57,7 @@
.stepIndicator {
font-size: 12px;
color: var(--accent, #6c7aff);
color: var(--amber);
font-style: italic;
}
@@ -143,8 +143,8 @@
}
.subTabActive {
color: var(--accent, #6c7aff);
border-bottom-color: var(--accent, #6c7aff);
color: var(--amber);
border-bottom-color: var(--amber);
}
/* Table */
@@ -230,7 +230,7 @@
.editBannerActive {
border-color: var(--warning);
background: rgba(251, 191, 36, 0.06);
background: color-mix(in srgb, var(--amber) 6%, transparent);
}
.editBannerText {
@@ -432,3 +432,44 @@
.removeBtn:hover {
color: var(--error);
}
/* Visually hidden file inputs */
.visuallyHidden {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
/* Fixed-width inputs */
.inputXs {
width: 50px;
}
.inputSm {
width: 60px;
}
.inputMd {
width: 70px;
}
.inputLg {
width: 80px;
}
.inputXl {
width: 90px;
}
/* Table cell flex layout */
.cellFlex {
display: flex;
align-items: center;
gap: 4px;
}