Skip to content

feat(mapgen-studio): replace border-l indent ladder with page-tint well surface and codify 4/8/12px rhythm tiers#1628

Merged
mateicanavra merged 1 commit into
mainfrom
design/config-surface
Jun 12, 2026
Merged

feat(mapgen-studio): replace border-l indent ladder with page-tint well surface and codify 4/8/12px rhythm tiers#1628
mateicanavra merged 1 commit into
mainfrom
design/config-surface

Conversation

@mateicanavra

Copy link
Copy Markdown
Owner

Replaces the left-rule indent ladder in the config form with a two-tier surface elevation model: stage cards contain group wells, and wells contain fields — no third surface tier is ever introduced.

Group wells (depth === 2) now render as a recessed bg-background/40 panel with a subtle border and padding, replacing the previous border-l + pl-* indentation approach. This token choice (background sits below card in both dark and light themes) ensures the recess reads correctly in both modes without theme-specific overrides.

Deeper nesting (depth ≥ 3) adds an eyebrow heading and spacing rhythm only — no additional surface. Group headings across all depths move to a dedicated eyebrow style (text-label font-semibold uppercase tracking-wider) that recedes below field labels, letting the well geometry carry the grouping rather than the heading weight.

Array fields are unified onto the same well treatment as object groups, and individual array items are demoted to a hairline border only (rounded border p-2 border-border-subtle) to avoid introducing a third surface tier inside the well.

Spacing is now driven by a named rhythm scale on the 4px base: field (4px), siblings (8px), sections (12px), with groupPull (my-1) composing with sibling gap to hit the 12px group step.

Tests are added to assert that a depth === 2 group renders bg-background/40 and no border-l, and that a depth === 3 group adds neither.

This was referenced Jun 12, 2026
@github-actions

Copy link
Copy Markdown

Railway preview (MapGen Studio): not provisioned for this PR.

Policy (Graphite stacks): previews are created only for the top-of-stack PR by default.

  • To force a preview for this PR: add label railway-preview
  • To suppress a preview: add label no-railway-preview

Debug: {"isClosed":false,"isFork":false,"suppress":false,"force":false,"isTopOfStack":false,"hasToken":true,"draft":false}

mateicanavra commented Jun 12, 2026

Copy link
Copy Markdown
Owner Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

mateicanavra commented Jun 12, 2026

Copy link
Copy Markdown
Owner Author

Merge activity

  • Jun 12, 8:50 PM UTC: A user started a stack merge that includes this pull request via Graphite.
  • Jun 12, 9:39 PM UTC: Graphite rebased this pull request as part of a merge.
  • Jun 12, 9:39 PM UTC: @mateicanavra merged this pull request with Graphite.

@mateicanavra
mateicanavra changed the base branch from design/no-hardcoded-defaults to graphite-base/1628 June 12, 2026 21:36
@mateicanavra
mateicanavra changed the base branch from graphite-base/1628 to main June 12, 2026 21:37
…ied form rhythm

Groups inside stage cards become recessed wells (page-token tint, subtle
border) replacing the border-l indent ladder; arrays unify onto the same
well; surface nesting caps at card → well (depth ≥3 differentiates by
eyebrow heading + rhythm only). Spacing rhythm codified in FORM.rhythm:
4px within field blocks, 8px between siblings, 12px between sections.
Group headings invert to the eyebrow tier so field labels stay the
brightest scan line.

Verified both themes live (wells recess in dark AND light since
background sits below card in both); 146 tests + tsc green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@mateicanavra
mateicanavra force-pushed the design/config-surface branch from 472192a to bb79907 Compare June 12, 2026 21:38
@mateicanavra
mateicanavra merged commit 7cacec9 into main Jun 12, 2026
This was referenced Jun 12, 2026
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.

1 participant