Skip to content

Tokenise page gutter and add .l-ui-bleed full-bleed utility - #91

Merged
thomasgallagher merged 2 commits into
mainfrom
page-gutter-token-and-bleed
Jun 7, 2026
Merged

Tokenise page gutter and add .l-ui-bleed full-bleed utility#91
thomasgallagher merged 2 commits into
mainfrom
page-gutter-token-and-bleed

Conversation

@thomasgallagher

@thomasgallagher thomasgallagher commented Jun 7, 2026

Copy link
Copy Markdown
Collaborator

Introduce --l-ui-gutter (default 1rem) as the single source for the page's horizontal/bottom padding and the breathing-room part of the top offset, and bind .l-ui-header to the same token so the page and header gutters can no longer drift. Add .l-ui-bleed, which cancels exactly the current gutter to take a child edge-to-edge without negative-margin guesswork. Computed values are unchanged (non-breaking).

Document both in the skill reference and the dummy app utilities page.

Also clarify that .l-ui-page__width-constrained is a narrow ~384px column for compact / centred content, not a general page container.

Introduce --l-ui-gutter (default 1rem) as the single source for the
page's horizontal/bottom padding and the breathing-room part of the
top offset, and bind .l-ui-header to the same token so the page and
header gutters can no longer drift. Add .l-ui-bleed, which cancels
exactly the current gutter to take a child edge-to-edge without
negative-margin guesswork. Computed values are unchanged (non-breaking).

Document both in the skill reference and the dummy app utilities page.

Also clarify that .l-ui-page__width-constrained is a narrow ~384px
auth-card column, not a general page container.
@claude

claude Bot commented Jun 7, 2026

Copy link
Copy Markdown

Review

Tokenises the page gutter into a --l-ui-gutter CSS custom property (replacing hardcoded 1rem/px-4 values) and introduces .l-ui-bleed to cancel that gutter for full-bleed children. Computed values are unchanged.

Ship - Clean, non-breaking tokenisation with correct semantics and complete documentation.

The old name read as a general page-width container, so it was reached
for to bound arbitrary page content and then imposed a 384px straitjacket.
The class is actually a narrow (md:max-w-sm, ~384px) column for auth cards
and compact forms. Rename to .l-ui-page__narrow and trim the defensive
docs the misleading name required.

Breaking change (pre-release): documented in CHANGELOG and UPGRADING.
Updates the six Devise views, engine CSS, and skill reference.
@claude

claude Bot commented Jun 7, 2026

Copy link
Copy Markdown

This PR tokenises the page horizontal/bottom padding into a --l-ui-gutter CSS custom property, introduces .l-ui-bleed for full-bleed children, and renames l-ui-page__width-constrained to l-ui-page__narrow.

No issues found. A few things I checked specifically:

  • overflow-x-clip + negative-margin interaction (engine.css:447,455): .l-ui-bleed's mx-[calc(var(--l-ui-gutter)*-1)] pulls the child to exactly the page's padding-box edge, which is also the overflow-x-clip boundary - so the bleed element is not clipped. Correct.
  • calc() expression: calc(var(--l-ui-gutter)*-1) is valid CSS. The unitless multiplier is fine.
  • Breaking change coverage: CHANGELOG, UPGRADING.md, all six Devise views, both skill reference files, and the dummy app docs are all updated consistently.
  • Header py-3 unchanged: Only px was moved to the token; vertical padding stays hardcoded. Intentional and correct.

Ship

@thomasgallagher
thomasgallagher merged commit 20219a4 into main Jun 7, 2026
4 checks passed
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