From 28973ea98bdd58db5fed30254f39cf155974f341 Mon Sep 17 00:00:00 2001 From: Kiro Agent <244629292+kiro-agent@users.noreply.github.com> Date: Wed, 19 Aug 2026 21:53:22 +0000 Subject: [PATCH] feat(configurator): grouped, named navigation IA (Foundations/Composition/Quality/Project) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace the flat, unlabelled icon rail with a grouped, always-labelled navigation so users reason about areas of the design system instead of decoding icons. The rail is now organised into four named groups: - Foundations: Colors, Typography, Spacing, Shape, Motion - Composition: Layout, Shadows, Effects, Macros, Components, Misc - Quality: Changes, Accessibility - Project: Presets, Install & export, Reference Renames per the plan: Borders→Shape (it already holds radius), WCAG→ Accessibility, Themes→Presets, Install→"Install & export", Classes→Reference. Labels update in App's panel-heading map and HomePanel too, so the sidebar, the panel header and the Home overview all tell the same story (same order, names, descriptions and counts). Responsive: desktop shows the labelled column (w-52) with group headers and a trailing count pill; mobile keeps the compact icon rail (w-14) with corner-dot counts and tooltips — no change to the mobile fold behaviour. Scope: this is the information-architecture + naming half of the redesign's phase 4. Domain/panel ids, token classification and preview mapping are unchanged, so it's non-disruptive. Content-level panel merges (a single Depth panel combining Shadows+Effects, the Misc split, and moving focus-ring/touch into an expanded Accessibility panel) are deliberately deferred to their own focused follow-ups. Updated tests-e2e/shell.spec.js NAV_LABELS to the new names. check, lint, all 257 unit tests and the shell e2e suite pass; desktop + mobile screenshot-verified. --- configurator/src/App.svelte | 5 +- .../src/components/panels/HomePanel.svelte | 156 +++++++-------- .../src/components/shell/SidebarNav.svelte | 182 ++++++++++-------- configurator/tests-e2e/shell.spec.js | 6 +- 4 files changed, 191 insertions(+), 158 deletions(-) diff --git a/configurator/src/App.svelte b/configurator/src/App.svelte index 41265ac6e..fa63e96a6 100644 --- a/configurator/src/App.svelte +++ b/configurator/src/App.svelte @@ -18,9 +18,10 @@ const DOMAIN_LABELS: Record = { home: "Home", colors: "Colors", typography: "Typography", spacing: "Spacing", - layout: "Layout", borders: "Borders", shadows: "Shadows", motion: "Motion", + layout: "Layout", borders: "Shape", shadows: "Shadows", motion: "Motion", effects: "Effects", macros: "Macros", misc: "Misc", components: "Components", - changes: "Changes", themes: "Themes", wcag: "WCAG", setup: "Install", cheatsheet: "Classes", + changes: "Changes", themes: "Presets", wcag: "Accessibility", + setup: "Install & export", cheatsheet: "Reference", }; function overridesByDomain(ov: Record): Record { diff --git a/configurator/src/components/panels/HomePanel.svelte b/configurator/src/components/panels/HomePanel.svelte index 0078d853b..846a64191 100644 --- a/configurator/src/components/panels/HomePanel.svelte +++ b/configurator/src/components/panels/HomePanel.svelte @@ -1,7 +1,7 @@ - diff --git a/configurator/tests-e2e/shell.spec.js b/configurator/tests-e2e/shell.spec.js index 0b7e72376..7cd2e8fc4 100644 --- a/configurator/tests-e2e/shell.spec.js +++ b/configurator/tests-e2e/shell.spec.js @@ -5,9 +5,9 @@ import { test, expect } from '@playwright/test'; import { watchErrors, gotoClean, navButton } from './helpers.js'; const NAV_LABELS = [ - 'Home', 'Colors', 'Typography', 'Spacing', 'Layout', - 'Borders', 'Shadows', 'Motion', 'Effects', 'Misc', 'Components', - 'Themes', 'WCAG', 'Install', 'Classes', + 'Home', 'Colors', 'Typography', 'Spacing', 'Shape', + 'Layout', 'Shadows', 'Motion', 'Effects', 'Misc', 'Components', + 'Changes', 'Accessibility', 'Presets', 'Install & export', 'Reference', ]; test('loads with the SLASHED Studio branding', async ({ page }) => {