Skip to content

Add new configurator design spec - #417

Closed
jackgranatowski wants to merge 1 commit into
mainfrom
claude/new-configurator-spec-1kh6kk
Closed

Add new configurator design spec#417
jackgranatowski wants to merge 1 commit into
mainfrom
claude/new-configurator-spec-1kh6kk

Conversation

@jackgranatowski

@jackgranatowski jackgranatowski commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Comprehensive UX/design document for the new SLASHED configurator,
designed fresh from the framework token API. Covers all 686 tokens
organized by domain (Colors, Typography, Spacing, Layout, Borders,
Shadows, Motion, Effects), widget library, state architecture,
CSS export format and cascade dependency map.

Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01XJYHqUSy7CtxfPrTAxM8wo

Summary by CodeRabbit

  • Documentation
    • Added a comprehensive design and behavior guide for the Configurator UI.
    • Documented the main interface layout, navigation, and all configuration panels.
    • Included details on available tools, editing controls, preview behavior, persistence, shareable links, and CSS export/import formats.
    • Added token dependency notes and a post-implementation verification checklist.

Comprehensive UX/design document for the new SLASHED configurator,
designed fresh from the framework token API. Covers all 686 tokens
organized by domain (Colors, Typography, Spacing, Layout, Borders,
Shadows, Motion, Effects), widget library, state architecture,
CSS export format and cascade dependency map.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJYHqUSy7CtxfPrTAxM8wo
@coderabbitai

coderabbitai Bot commented Jun 25, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Adds a design specification for the SLASHED Configurator covering shell layout, domain studios, tools, state handling, CSS export/import rules, token cascade relationships, and verification cases.

Changes

Configurator design specification

Layer / File(s) Summary
Configurator shell, layout, and navigation
docs/configurator-design.md
Defines the document framing, desktop and responsive shell layout, navigation structure, and overview screen contents.
Colors studio
docs/configurator-design.md
Describes the Colors studio tabs, controls, token behaviors, and related color widgets.
Typography studio
docs/configurator-design.md
Describes the Typography studio controls, font inputs, scale generator, and advanced typography overrides.
Spacing and layout studios
docs/configurator-design.md
Describes spacing density presets, scale and primitive tokens, layout containers, grids, anchors, z-index, and print tokens.
Borders, shadows, motion, effects, and misc
docs/configurator-design.md
Describes border and divider controls, shadow tokens, motion and effect tokens, and the misc token grouping.
Tools, widgets, state, export, and verification
docs/configurator-design.md
Describes WCAG tools, themes, install and cheatsheet tools, widget specs, persistence and URL state, CSS export/import rules, token cascade relationships, and the verification checklist.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding a new configurator design specification document.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/new-configurator-spec-1kh6kk

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@qodo-code-review

Copy link
Copy Markdown

CI Feedback 🧐

A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

Action: Lint commit messages

Failed stage: Validate PR commits against Conventional Commits [❌]

Failed test name: ""

Failure summary:

The action failed due to a commit message linting error from commitlint enforcing Conventional
Commits.
- The commit/PR title/message did not include a valid Conventional Commit type and subject,
so commitlint reported:
- subject may not be empty ([subject-empty])
- type may not be empty
([type-empty])
The lint step exited with code 1, causing the GitHub Action to fail.

Relevant error logs:
1:  ##[group]Runner Image Provisioner
2:  Hosted Compute Agent
...

164:  * [new branch]      claude/gutenberg-integration-scope-jSOZX -> origin/claude/gutenberg-integration-scope-jSOZX
165:  * [new branch]      claude/hopeful-carson-ipz2rb             -> origin/claude/hopeful-carson-ipz2rb
166:  * [new branch]      claude/implementation-task-2rjlS         -> origin/claude/implementation-task-2rjlS
167:  * [new branch]      claude/issue-327-api-freeze-pp8lip       -> origin/claude/issue-327-api-freeze-pp8lip
168:  * [new branch]      claude/kind-mayer-sNP78                  -> origin/claude/kind-mayer-sNP78
169:  * [new branch]      claude/laughing-noether-0V06F            -> origin/claude/laughing-noether-0V06F
170:  * [new branch]      claude/laughing-turing-gU3Jt             -> origin/claude/laughing-turing-gU3Jt
171:  * [new branch]      claude/live-preview-framework-showcase-imd74f -> origin/claude/live-preview-framework-showcase-imd74f
172:  * [new branch]      claude/loving-babbage-a1o5vw             -> origin/claude/loving-babbage-a1o5vw
173:  * [new branch]      claude/loving-galileo-0197q7             -> origin/claude/loving-galileo-0197q7
174:  * [new branch]      claude/new-configurator-spec-1kh6kk      -> origin/claude/new-configurator-spec-1kh6kk
175:  * [new branch]      claude/open-issues-review-n064yh         -> origin/claude/open-issues-review-n064yh
176:  * [new branch]      claude/pr-331-framework-review-fhjser    -> origin/claude/pr-331-framework-review-fhjser
177:  * [new branch]      claude/pr381-merge-readiness-6u7vya      -> origin/claude/pr381-merge-readiness-6u7vya
178:  * [new branch]      claude/pr397-review-fixes-mg603u         -> origin/claude/pr397-review-fixes-mg603u
179:  * [new branch]      claude/pr401-errors-reviews-np5mqg       -> origin/claude/pr401-errors-reviews-np5mqg
180:  * [new branch]      claude/quirky-pascal-ou0n7a              -> origin/claude/quirky-pascal-ou0n7a
...

453:  shell: /usr/bin/bash -e {0}
454:  ##[endgroup]
455:  �[90m⧗�[39m   --- input ---
456:  �[1mAdd new configurator design spec
457:  Comprehensive UX/design document for the new SLASHED configurator,
458:  designed fresh from the framework token API. Covers all 686 tokens
459:  organized by domain (Colors, Typography, Spacing, Layout, Borders,
460:  Shadows, Motion, Effects), widget library, state architecture,
461:  CSS export format and cascade dependency map.
462:  Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
463:  Claude-Session: https://claude.ai/code/session_01XJYHqUSy7CtxfPrTAxM8wo�[22m
464:  �[31m✖�[39m   subject may not be empty �[90m[subject-empty]�[39m
465:  �[31m✖�[39m   type may not be empty �[90m[type-empty]�[39m
466:  �[1m�[31m✖�[39m   found 2 problems, 0 warnings�[22m
467:  ⓘ   Get help: https://github.com/conventional-changelog/commitlint/#what-is-commitlint
468:  ##[error]Process completed with exit code 1.
469:  Post job cleanup.

@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Add SLASHED configurator UX/design specification
📝 Documentation 🕐 20-40 Minutes

Grey Divider

Description

• Add a comprehensive UX/design spec for the new SLASHED token configurator.
• Define domain studios, widget library, and state model (undo/redo, persistence, shareable URLs).
• Specify CSS export/import format and document key cascade dependencies across tokens.
Diagram

graph TD
  A["docs/configurator-design.md"] --> B["UI layout"] --> C["Domain studios"]
  A --> D["Widget library"] --> E["State model"]
  A --> F["CSS export/import"] --> G["Cascade map"]
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Split the spec into smaller docs (per domain + shared systems)
  • ➕ Easier targeted review/iteration (e.g., Colors vs. Motion)
  • ➕ Enables owners to maintain sections independently
  • ➕ Reduces merge conflicts as implementation proceeds
  • ➖ Harder to keep cross-cutting rules consistent (state/export/cascade)
  • ➖ Readers may miss the end-to-end flow without a strong index
2. Add a machine-readable token appendix generated from the token source
  • ➕ Keeps the 686-token inventory always current
  • ➕ Allows implementers to cross-reference tokens and tiers reliably
  • ➕ Reduces manual maintenance of long token lists
  • ➖ Requires build tooling or scripts to generate docs
  • ➖ May reduce readability if the generated appendix dominates the document
3. Convert key decisions into ADR-style summaries alongside the spec
  • ➕ Clarifies rationale and tradeoffs (why these knobs, why @layer, etc.)
  • ➕ Makes future changes auditable and easier to discuss in PRs
  • ➖ Adds process overhead and more files to maintain
  • ➖ Risk of duplicating content if not kept minimal

Recommendation: The current single-document approach is good for establishing an end-to-end shared vision before implementation. Consider a follow-up that (1) splits per-domain studios into separate docs once implementation starts, and (2) adds a generated token appendix to prevent drift as tokens evolve.

Files changed (1) +897 / -0

Documentation (1) +897 / -0
configurator-design.mdAdd end-to-end UX/design spec for SLASHED configurator +897/-0

Add end-to-end UX/design spec for SLASHED configurator

• Introduces a comprehensive design document describing the configurator’s layout, navigation, per-domain editing studios (colors/typography/spacing/layout/borders/shadows/motion/effects), and a shared widget library. Specifies state architecture (undo/redo, persistence, shareable URLs, preview isolation) plus CSS export/import format and a cascade dependency map for derived tokens.

docs/configurator-design.md

@qodo-code-review

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (2) 📘 Rule violations (0) 📜 Skill insights (0)

Context used
✅ Compliance rules (platform): 5 rules

Grey Divider


Remediation recommended

1. Wrong share URL format 🐞 Bug ⚙ Maintainability
Description
The spec claims shareable configs use #c=<lz-string>, but the configurator currently documents and
implements #c=<base64url-config-code> (binary codec based on token-registry ids). Following the
spec as-written would produce links that won’t round-trip with the existing decoder and would
conflict with the documented share contract.
Code

docs/configurator-design.md[R814-816]

+### Shareable URL
+Fragment `#c=<lz-string>` — debounce 400ms, replaceState.
+
Relevance

⭐⭐⭐ High

Share URL format intentionally migrated off lz-string to base64url binary codec; spec mismatch would
be fixed.

PR-#368
PR-#366

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The new doc states #c=<lz-string>, while the existing share implementation explicitly defines the
wire format as #c=<base64url-config-code>, and the changelog records the migration away from
lz-string.

docs/configurator-design.md[814-816]
configurator/src/lib/share.js[4-21]
CHANGELOG.md[122-126]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`docs/configurator-design.md` documents the share URL as `#c=<lz-string>`, but the repo’s configurator share implementation uses a different wire format (`#c=<base64url-config-code>` via `codec.js` + `token-registry.json`). This mismatch will cause anyone implementing from the spec to generate incompatible share links.

### Issue Context
- The configurator’s share code and the changelog both indicate the project moved away from lz-string.

### Fix Focus Areas
- docs/configurator-design.md[814-816]
- configurator/src/lib/share.js[4-21]
- CHANGELOG.md[122-126]

### Expected change
Update the spec’s “Shareable URL” section to match the implemented format/description (base64url binary config code), or explicitly mark it as a proposed change if the spec intentionally diverges from current behavior.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Invalid bundle list 🐞 Bug ⚙ Maintainability
Description
The spec’s Install (Bundle Picker) lists a core bundle and omits optimal-utilities, but the
framework/configurator bundle definitions only include optimal, optimal-components,
optimal-utilities, and full. This will lead to incorrect install guidance and can produce broken
links/snippets (stale bundle naming has been a recurring doc issue).
Code

docs/configurator-design.md[R731-734]

+### Install (Bundle Picker)
+
+Karty bundli: `core` · `optimal ← Recommended` · `optimal-components` · `full`
+Output: HTML `<link>` lub CSS `@import` + override blok CSS.
Relevance

⭐⭐⭐ High

Docs fixed stale/removed bundle references before (essential→optimal); likely to correct bundle
picker list too.

PR-#415

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The spec introduces a core bundle card, but the framework’s bundle config and the configurator’s
curated bundle metadata enumerate only optimal, optimal-components, optimal-utilities, and
full. A prior accepted bug shows stale bundle references are a known recurring problem in this
repo’s docs/demo surfaces.

docs/configurator-design.md[731-735]
bundle.config.json[1-104]
configurator/src/lib/bundles.js[19-40]
PR-#415

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`docs/configurator-design.md` lists bundle cards as `core · optimal · optimal-components · full`, but the repo’s bundle configuration/model does not define a `core` bundle and does define `optimal-utilities`. The spec should reflect the actual bundle IDs to prevent broken install instructions.

### Issue Context
- Actual bundles are derived from `bundle.config.json` and curated in `configurator/src/lib/bundles.js`.
- Past bug pattern: docs referencing removed/nonexistent bundles caused broken demos.

### Fix Focus Areas
- docs/configurator-design.md[731-735]
- bundle.config.json[1-104]
- configurator/src/lib/bundles.js[19-40]

### Expected change
Update the bundle list to the real set (e.g. `optimal ← Recommended · optimal-components · optimal-utilities · full`) and remove/rename `core` (or clarify it’s a conceptual grouping, not a shipped dist bundle).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Qodo Logo

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/configurator-design.md`:
- Around line 696-704: Remove the duplicate documentation entry for
--sf-current-font-weight from the MISC token table and keep it only in the
existing Typography → Advanced section. Update the MISC namespace list so the
ownership/filtering model stays unambiguous, and verify that the canonical
placement remains the single source of truth for this token.
- Around line 104-125: The Quick-Win summary counts are inconsistent with the
actual token lists: the “30 Quick-Win Tokens” checklist currently adds up to 29
items, and “Krok 1 — Kolory” lists 10 tokens instead of 11. Update the markdown
in this section by either adding the missing token(s) to the relevant step or
correcting the headline/subsection counts so the total and per-step numbers
match the list content. Use the “30 Quick-Win Tokens” heading and the step
blocks (especially “Krok 1 — Kolory” and the other numbered steps) to keep the
document internally consistent.
- Around line 36-60: The documented shell geometry does not match the actual
responsive contract in App.svelte, so update the configurator design text to
reflect the implemented defaults and breakpoints. In the layout section that
describes the three-zone desktop and responsiveness, replace the 220px/420px
proportions and 56px rail with the values used by the shell in App.svelte
(240px/440px defaults, 60px collapsed rail), and make the preview behavior
consistent with the slide-over at max-width 1100px. Keep the wording aligned
with the symbols and layout states already implemented so the doc matches the
code contract.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: e99596d8-19d4-4cb2-a7fe-5da11b6877f8

📥 Commits

Reviewing files that changed from the base of the PR and between c00216c and a4e0798.

📒 Files selected for processing (1)
  • docs/configurator-design.md

Comment on lines +36 to +60
### 2.1 Trzy-strefowy desktop (≥ 1100 px)

```
┌──────────────────────────────────────────────────────────────────────┐
│ TOPBAR: Logo · Szukaj (/) · Modyfikowane: N · Undo/Redo · Motyw UI │
├─────────────┬────────────────────────────────────┬───────────────────┤
│ │ │ │
│ NAWIGACJA │ PANEL EDYCJI │ PODGLĄD LIVE │
│ (sidebar) │ (domenowe studio) │ (izolowany) │
│ │ │ │
├─────────────┴────────────────────────────────────┴───────────────────┤
│ SZUFLADA CSS OUTPUT (zwijana, otwiera się klikając "N modyfikowanych")│
└──────────────────────────────────────────────────────────────────────┘
```

**Proporcje:** Nawigacja 220px · Edycja flex · Podgląd 420px (oba resizable).

### 2.2 Responsywność

| Viewport | Zachowanie |
|---|---|
| ≥ 1100 px | Pełny 3-strefowy layout |
| 600–1099 px | Podgląd chowany za przyciskiem (slide-over z prawej); nawigacja → 56px rail z ikonami |
| < 600 px | Rail 44px; szuflada CSS domyślnie zwinięta |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Align the shell geometry with the implemented breakpoints.

The sizes here don’t match configurator/src/App.svelte: the shell uses 240px / 440px defaults, a 60px collapsed rail, and the preview becomes a slide-over at max-width: 1100px. The current 220px / 420px and 56px wording will send layout work toward the wrong contract.

Proposed correction
-### 2.1 Trzy-strefowy desktop (≥ 1100 px)
+### 2.1 Desktop shell (> 1100 px)

-**Proporcje:** Nawigacja 220px · Edycja flex · Podgląd 420px (oba resizable).
+**Proporcje:** Nawigacja 240px · Edycja flex · Podgląd 440px (oba resizable).

-| ≥ 1100 px | Pełny 3-strefowy layout |
-| 600–1099 px | Podgląd chowany za przyciskiem (slide-over z prawej); nawigacja → 56px rail z ikonami |
-| < 600 px | Rail 44px; szuflada CSS domyślnie zwinięta |
+| > 1100 px | Pełny 5-panelowy shell |
+| 600–1100 px | Podgląd jako slide-over z prawej; nawigacja → 60px rail z ikonami |
+| 400–599 px | Rail 44px; szuflada CSS domyślnie zwinięta |
+| < 400 px | Rail 40px |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
### 2.1 Trzy-strefowy desktop (≥ 1100 px)
```
┌──────────────────────────────────────────────────────────────────────┐
│ TOPBAR: Logo · Szukaj (/) · Modyfikowane: N · Undo/Redo · Motyw UI │
├─────────────┬────────────────────────────────────┬───────────────────┤
│ │ │ │
│ NAWIGACJA │ PANEL EDYCJI │ PODGLĄD LIVE │
│ (sidebar) │ (domenowe studio) │ (izolowany) │
│ │ │ │
├─────────────┴────────────────────────────────────┴───────────────────┤
│ SZUFLADA CSS OUTPUT (zwijana, otwiera się klikając "N modyfikowanych")│
└──────────────────────────────────────────────────────────────────────┘
```
**Proporcje:** Nawigacja 220px · Edycja flex · Podgląd 420px (oba resizable).
### 2.2 Responsywność
| Viewport | Zachowanie |
|---|---|
| ≥ 1100 px | Pełny 3-strefowy layout |
| 600–1099 px | Podgląd chowany za przyciskiem (slide-over z prawej); nawigacja → 56px rail z ikonami |
| < 600 px | Rail 44px; szuflada CSS domyślnie zwinięta |
### 2.1 Desktop shell (> 1100 px)
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 38-38: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/configurator-design.md` around lines 36 - 60, The documented shell
geometry does not match the actual responsive contract in App.svelte, so update
the configurator design text to reflect the implemented defaults and
breakpoints. In the layout section that describes the three-zone desktop and
responsiveness, replace the 220px/420px proportions and 56px rail with the
values used by the shell in App.svelte (240px/440px defaults, 60px collapsed
rail), and make the preview behavior consistent with the slide-over at max-width
1100px. Keep the wording aligned with the symbols and layout states already
implemented so the doc matches the code contract.

Comment on lines +104 to +125
1. **Nagłówek:** "Customize your design system" + krótki lead
2. **Export banner** (widoczny gdy N > 0): `N tokens modified · Export CSS ↓` — klikalny
3. **Siatka domen 2×4** — każda karta ma: ikonę, nazwę, 1-zdaniowy blurb, status badge
4. **30 Quick-Win Tokens** — check-lista zorganizowana w 6 kroków:

**Krok 1 — Kolory (11 tokenów):**
`--sf-color-primary-source-light`, `--sf-color-secondary-source-light`, `--sf-color-action-source-light`, `--sf-color-base-source-light`, `--sf-color-neutral-source-light`, `--sf-color-tertiary-source-light`, `--sf-color-success-source-light`, `--sf-color-warning-source-light`, `--sf-color-danger-source-light`, `--sf-color-info-source-light`

**Krok 2 — Typografia (5):**
`--sf-font-body`, `--sf-font-heading`, `--sf-font-mono`, `--sf-leading-normal`, `--sf-font-weight-heading`

**Krok 3 — Odstępy (5):**
`--sf-space-scale`, `--sf-section-pad`, `--sf-content-gap`, `--sf-gutter`, `--sf-gap`

**Krok 4 — Layout (3):**
`--sf-container-default`, `--sf-container-prose`, `--sf-header-height-desktop`

**Krok 5 — Kształty (3):**
`--sf-radius-scale`, `--sf-radius-m`, `--sf-border-width-1`

**Krok 6 — Cienie + Ruch (3):**
`--sf-shadow-strength`, `--sf-motion-scale`, `--sf-focus-ring-width`

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Fix the Quick-Win counts.

As written, the checklist totals 29 items, not 30, and the color subsection lists 10 tokens, not 11. Either add the missing token(s) or update the headline/counts so the summary matches the actual list.

Proposed correction
-4. **30 Quick-Win Tokens** — check-lista zorganizowana w 6 kroków:
+4. **29 Quick-Win Tokens** — check-lista zorganizowana w 6 kroków:

-**Krok 1 — Kolory (11 tokenów):**
+**Krok 1 — Kolory (10 tokenów):**
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
1. **Nagłówek:** "Customize your design system" + krótki lead
2. **Export banner** (widoczny gdy N > 0): `N tokens modified · Export CSS ↓` — klikalny
3. **Siatka domen 2×4** — każda karta ma: ikonę, nazwę, 1-zdaniowy blurb, status badge
4. **30 Quick-Win Tokens** — check-lista zorganizowana w 6 kroków:
**Krok 1 — Kolory (11 tokenów):**
`--sf-color-primary-source-light`, `--sf-color-secondary-source-light`, `--sf-color-action-source-light`, `--sf-color-base-source-light`, `--sf-color-neutral-source-light`, `--sf-color-tertiary-source-light`, `--sf-color-success-source-light`, `--sf-color-warning-source-light`, `--sf-color-danger-source-light`, `--sf-color-info-source-light`
**Krok 2 — Typografia (5):**
`--sf-font-body`, `--sf-font-heading`, `--sf-font-mono`, `--sf-leading-normal`, `--sf-font-weight-heading`
**Krok 3 — Odstępy (5):**
`--sf-space-scale`, `--sf-section-pad`, `--sf-content-gap`, `--sf-gutter`, `--sf-gap`
**Krok 4 — Layout (3):**
`--sf-container-default`, `--sf-container-prose`, `--sf-header-height-desktop`
**Krok 5 — Kształty (3):**
`--sf-radius-scale`, `--sf-radius-m`, `--sf-border-width-1`
**Krok 6 — Cienie + Ruch (3):**
`--sf-shadow-strength`, `--sf-motion-scale`, `--sf-focus-ring-width`
1. **Nagłówek:** "Customize your design system" + krótki lead
2. **Export banner** (widoczny gdy N > 0): `N tokens modified · Export CSS ↓` — klikalny
3. **Siatka domen 2×4** — każda karta ma: ikonę, nazwę, 1-zdaniowy blurb, status badge
4. **29 Quick-Win Tokens** — check-lista zorganizowana w 6 kroków:
**Krok 1 — Kolory (10 tokenów):**
`--sf-color-primary-source-light`, `--sf-color-secondary-source-light`, `--sf-color-action-source-light`, `--sf-color-base-source-light`, `--sf-color-neutral-source-light`, `--sf-color-tertiary-source-light`, `--sf-color-success-source-light`, `--sf-color-warning-source-light`, `--sf-color-danger-source-light`, `--sf-color-info-source-light`
**Krok 2 — Typografia (5):**
`--sf-font-body`, `--sf-font-heading`, `--sf-font-mono`, `--sf-leading-normal`, `--sf-font-weight-heading`
**Krok 3 — Odstępy (5):**
`--sf-space-scale`, `--sf-section-pad`, `--sf-content-gap`, `--sf-gutter`, `--sf-gap`
**Krok 4 — Layout (3):**
`--sf-container-default`, `--sf-container-prose`, `--sf-header-height-desktop`
**Krok 5 — Kształty (3):**
`--sf-radius-scale`, `--sf-radius-m`, `--sf-border-width-1`
**Krok 6 — Cienie + Ruch (3):**
`--sf-shadow-strength`, `--sf-motion-scale`, `--sf-focus-ring-width`
🧰 Tools
🪛 LanguageTool

[typographical] ~105-~105: Przed tym spójnikiem stawiamy przecinek: "widoczny, gdy".
Context: ...em" + krótki lead 2. Export banner (widoczny gdy N > 0): `N tokens modified · Export CSS...

(BRAK_PRZECINKA_GDY)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/configurator-design.md` around lines 104 - 125, The Quick-Win summary
counts are inconsistent with the actual token lists: the “30 Quick-Win Tokens”
checklist currently adds up to 29 items, and “Krok 1 — Kolory” lists 10 tokens
instead of 11. Update the markdown in this section by either adding the missing
token(s) to the relevant step or correcting the headline/subsection counts so
the total and per-step numbers match the list content. Use the “30 Quick-Win
Tokens” heading and the step blocks (especially “Krok 1 — Kolory” and the other
numbered steps) to keep the document internally consistent.

Comment on lines +696 to +704
## 13. MISC

Tokeny bez domeny — inline lista z filtrami (All / Modified). Brak studia.

| Namespace | Tokeny |
|---|---|
| print | `--sf-print-page-margin`, `--sf-print-page-size`, `--sf-print-base-size` |
| state flags | `--sf-is-dark`, `--sf-current-font-weight` |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Keep --sf-current-font-weight in one place.

This token is already documented in Typography → Advanced, so listing it again under MISC makes the ownership/filtering model ambiguous. Remove the duplicate here and keep a single canonical section.

Proposed correction
-| state flags | `--sf-is-dark`, `--sf-current-font-weight` |
+| state flags | `--sf-is-dark` |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## 13. MISC
Tokeny bez domeny — inline lista z filtrami (All / Modified). Brak studia.
| Namespace | Tokeny |
|---|---|
| print | `--sf-print-page-margin`, `--sf-print-page-size`, `--sf-print-base-size` |
| state flags | `--sf-is-dark`, `--sf-current-font-weight` |
## 13. MISC
Tokeny bez domeny — inline lista z filtrami (All / Modified). Brak studia.
| Namespace | Tokeny |
|---|---|
| print | `--sf-print-page-margin`, `--sf-print-page-size`, `--sf-print-base-size` |
| state flags | `--sf-is-dark` |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/configurator-design.md` around lines 696 - 704, Remove the duplicate
documentation entry for --sf-current-font-weight from the MISC token table and
keep it only in the existing Typography → Advanced section. Update the MISC
namespace list so the ownership/filtering model stays unambiguous, and verify
that the canonical placement remains the single source of truth for this token.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants