fix(ui): align frontend with Telekom Scale design tokens#727
Conversation
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
Manifest Changes vs v0.1.0-beta.28base✅ No changes debug✅ No changes crds✅ No changes |
📸 UI ScreenshotsCaptured 44 screenshots (11 light, 11 dark, 22 high-contrast mode) 📥 Download
Pages Captured
Screenshots are generated automatically on each PR that modifies frontend code. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #727 +/- ##
=======================================
Coverage 69.28% 69.28%
=======================================
Files 160 160
Lines 33830 33830
=======================================
Hits 23438 23438
Misses 8851 8851
Partials 1541 1541
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
37cd4ff to
c6c166b
Compare
93da552 to
694b1d0
Compare
| .loading-state--small .loading-state__message { | ||
| font-size: 0.875rem; | ||
| font: var(--telekom-text-style-caption); | ||
| } |
| if curl -skf --connect-timeout 5 --max-time 10 "$url/realms/master" > /dev/null 2>&1; then | ||
| return 0 | ||
| fi | ||
| sleep 1 | ||
| done |
b02a9e8 to
c0a319f
Compare
There was a problem hiding this comment.
⚠️ Not ready to approve
It introduces an accessibility regression by removing the <main> landmark for the skip-link target in frontend/src/App.vue.
Copilot's findings
- Files reviewed: 36/36 changed files
- Comments generated: 1
Note
Your feedback helps us improve the quality of this feature.
Please use 👍 or 👎 to tell us whether this assessment is correct.
| <div id="main" class="app-container"> | ||
| <div v-if="!authenticated" class="center login-gate"> |
6d88688 to
43c7574
Compare
Replace all hardcoded CSS values (103+ font-sizes, transitions, spacing, z-index, rgba colors) with Scale design tokens across 33 files. Override neutral theme purple (#5300ff) with Telekom magenta (#e20074) via runtime style injection. Add fallback header/nav layout for OSS/neutral variant where Scale Telekom shell components aren't registered. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…nize remaining hardcodes - Remove runtime magenta (#e20074) injection for neutral/OSS theme — the neutral flavour is intentionally unbranded and should keep Scale's default purple primary (#5300ff) - Scope branded-only overrides (primary button, active nav link) to :not([data-ui-flavour="oss"]):not([data-ui-flavour="neutral"]) - Replace custom-styled 404 CTA link with <scale-button variant="primary"> to fix color-contrast a11y violation in dark/HC-dark modes - Remove dead :root primary color override from base.css (Scale CSS loads dynamically and overwrites it) - Replace all remaining hardcoded rgba() colors with Scale functional tokens and color-mix(): debug panel, SessionConfigForm constraint tags - Replace all remaining hardcoded px spacing (gap, margin, padding) with --space-* and --scl-spacing-* tokens across 6 component files - Update SCALE_DEVIATIONS.md and design.md to reflect neutral theme intent and completed remediation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Maximilian Rink <maximilian.rink@telekom.de>
64be824 to
05ae9ad
Compare
| | Token coverage — z-index | 1 hardcoded `z-index: 99` | 9/10 | | ||
| | Naming consistency | Minor `--space-*` vs `--stack-gap-*` overlap | 8/10 | | ||
| | Token coverage — colors | 0 hardcoded colors; all rgba replaced with functional tokens or `color-mix()` | 10/10 | | ||
| | Token coverage — spacing | 0 hardcoded px gaps/margins/padding; all use `--space-*` or `--scl-spacing-*` | 10/10 | |
Summary
font-sizevalues across 26 Vue files withvar(--telekom-text-style-*)tokensvar(--telekom-motion-*)tokens (App.vue, AutoLogoutWarning, ClusterSelectGrid, CountdownTimer, DebugPanel, DebugSessionCard, PendingApprovalsView, SessionBrowser)--space-*tokensrgba(226, 0, 116, 0.15)withcolor-mix(in srgb, var(--telekom-color-primary-standard) 15%, transparent)--z-headerthrough--z-debug-panel) and apply across all components:not(:defined)fallback forscale-telekom-header/nav/app-shellwhen using the neutral/OSS packageborder: dashed->border: solidfor cleaner card/empty-state bordersscale-card::part(base)border to prevent double borders#appbackgroundSupersedes #719
Test plan
vue-tsc --noEmitpasses (verified locally)vite buildsucceeds (verified locally):not(:defined)rules don't apply)font-size,transition, orrgba(226values in componentsGenerated with Claude Code