Skip to content

Consolidate example CSS files into single customize-example.css - #617

Merged
jackgranatowski merged 5 commits into
mainfrom
claude/theme-transition-class-review-w2uhmm
Jul 15, 2026
Merged

Consolidate example CSS files into single customize-example.css#617
jackgranatowski merged 5 commits into
mainfrom
claude/theme-transition-class-review-w2uhmm

Conversation

@jackgranatowski

@jackgranatowski jackgranatowski commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Summary

Consolidates three separate example CSS files (theme-example.css, config-example.css, and overrides-example.css) into a single, comprehensive customize-example.css starter file. This reduces cognitive load for users by providing one well-organized reference for all customization patterns (brand tokens, fluid engine config, dark mode, multi-brand theming, and override escape hatches) rather than requiring them to juggle three separate files.

The new file uses numbered sections and detailed comments to guide users through each customization layer, from basic brand colors through advanced overrides. Removes the .theme-transition helper class (now superseded by the .sf-theme-transition opt-in pattern in core/themes.css).

Type

  • chore / tooling
  • feat
  • fix
  • docs

Changes

  • Added: optional/customize-example.css — unified copy-and-customize starter combining all three previous example files with improved organization and documentation
  • Removed: optional/theme-example.css, optional/config-example.css, optional/overrides-example.css
  • Removed: .theme-transition class (superseded by .sf-theme-transition in core)
  • Updated: Documentation references in docs/theming.md, docs/architecture.md, docs/motion.md, user-manual/colors.md, and docs/llm-guide.md to point to the new consolidated file
  • Updated: Generated artifacts (docs/api-index.json, docs/api-index.md, docs/registry.json, configurator/src/data/classes.generated.json, scripts/gen-class-reference.js, scripts/lib/api-index/extract.js, scripts/registry-sources.js) to reflect removal of theme-example category and .theme-transition class

Checklist

  • Conventional Commit messages
  • npm run lint:css passes
  • npm run build rebuilds generated artifacts
  • Generated artifacts regenerated, not hand-edited (npm run check:registry, npm run audit:check)
  • LLM guide reviewed/updated (docs/llm-guide.md references updated)
  • Documentation updated to reference new file location

Notes

This is a pure consolidation with no functional changes to the framework itself. The .theme-transition class removal is non-breaking since it was an optional example helper; users should migrate to the .sf-theme-transition pattern documented in core/themes.css and docs/motion.md.

https://claude.ai/code/session_01GpaNFRtJE2BKNW457w3cVa

Summary by CodeRabbit

  • New Features

    • Added an optional customize-example.css template combining theme settings and customization examples, including dark mode and brand-specific overrides.
    • Documented public theme helpers for light mode, dark mode, and smooth theme transitions.
  • Documentation

    • Updated theming, motion, architecture, color, and AI guidance to reference the new customization template.
    • Clarified how to apply theme transitions to the document or specific page sections.
  • Cleanup

    • Removed outdated, separate theme, configuration, and override example files and references.

claude added 2 commits July 15, 2026 09:14
.theme-transition (optional/theme-example.css) was an unbundled,
example-only helper (bundles: []) that never shipped in any dist
bundle — the full-API audit had already flagged its demo tile as
inert (finding F4). The real, shipped API is .sf-theme-transition
(core/themes.css), which is more complete (transitions all registered
color tokens, tuned by --sf-theme-transition-duration, respects
prefers-reduced-motion). Drop the dead example and point docs at the
real helper; regenerate docs/registry/configurator artifacts.
Consolidate config-example.css, theme-example.css, and the never-filled
overrides-example.css stub into a single optional/customize-example.css.
It carries both @layer blocks (slashed.themes for brand tokens/fluid
engine/dark-mode/multi-brand, slashed.overrides for real element/class/
third-party/opt-in override examples — the old overrides-example.css
had only section-header comments, no actual code). Update every doc
and script reference accordingly; regenerate docs/registry/configurator
artifacts.
@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@jackgranatowski, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 28 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 4c2a7f4f-5093-4994-85b4-49fd46f95052

📥 Commits

Reviewing files that changed from the base of the PR and between 7999f35 and 60362fe.

⛔ Files ignored due to path filters (1)
  • configurator/src/data/classes.generated.json is excluded by !**/*.generated.*
📒 Files selected for processing (14)
  • CHANGELOG.md
  • core/layout.css
  • demos/full-api-demo-with-overrides.html
  • demos/full-api-demo.html
  • docs/api-index.json
  • docs/api-index.md
  • docs/classes.md
  • docs/demo.html
  • docs/layout.md
  • docs/migration.md
  • docs/registry.json
  • docs/test-coverage-3-layout.html
  • docs/token-annotations.json
  • tests/bundle-size.spec.js
📝 Walkthrough

Walkthrough

The separate theme, configuration, and override examples were replaced by optional/customize-example.css. Source registries, generated API indexes, class annotations, and documentation now reference the consolidated template and opt-in theme transition utilities.

Changes

Theme customization consolidation

Layer / File(s) Summary
Consolidated customization template
optional/customize-example.css, optional/config-example.css, optional/overrides-example.css, optional/theme-example.css
Adds layered theme tokens, dark-mode and brand overrides, and escape-hatch examples while removing the previous templates.
Source registries and generated indexes
scripts/..., docs/registry.json, docs/token-annotations.json, docs/api-index.*
Removes theme-transition and its former source metadata, and updates generated class and element counts.
Documentation and usage references
docs/architecture.md, docs/llm-guide.md, docs/motion.md, docs/theming.md, user-manual/colors.md
Points documentation to customize-example.css and documents the opt-in .sf-theme-transition helper.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

Suggested labels: codex

Suggested reviewers: claude

🚥 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 matches the main change: consolidating multiple example CSS files into customize-example.css.
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/theme-transition-class-review-w2uhmm

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.

@coderabbitai coderabbitai Bot added the codex label Jul 15, 2026
@greptile-apps

greptile-apps Bot commented Jul 15, 2026

Copy link
Copy Markdown

Greptile Summary

This PR consolidates three separate optional example CSS files (theme-example.css, config-example.css, overrides-example.css) into a single customize-example.css starter, and removes the unbundled .theme-transition helper class (superseded by .sf-theme-transition in core/themes.css). All generated artifacts, documentation, and tooling scripts are updated consistently.

  • New optional/customize-example.css: Combines brand-token rebrand, fluid engine config, dark-mode/multi-brand scoping, and slashed.overrides escape hatches into numbered sections with concrete example rules — replacing three stub-style files with a single well-documented starter.
  • .theme-transition removal: The class is deleted from all registries, docs, and the configurator data file; docs/motion.md now documents the preferred .sf-theme-transition opt-in pattern from core/themes.css.
  • Artifact consistency: Counts in api-index.json/api-index.md (1087→1086 total, 331→330 classes, 9→8 unprefixed) and list entries in registry.json, token-annotations.json, and classes.generated.json are all updated in lock-step; customize-example.css is correctly absent from CLASS_FILES and FILE_META since it is not a bundled framework source.

Confidence Score: 5/5

Safe to merge — the framework bundles are untouched; only the unbundled example file and docs are affected.

The consolidation is mechanically clean: all three source files are faithfully folded into the new file, every registry entry, count, and documentation link was updated in lock-step, and the scripts that scan for framework classes correctly exclude the new example file. The only references still naming the old files are CHANGELOG.md (historical record, expected) and analysis/gap-analysis.md (explicitly marked as a frozen one-off snapshot). No functional framework CSS was changed.

No files require special attention.

Important Files Changed

Filename Overview
optional/customize-example.css New consolidated starter file combining brand tokens, fluid engine config, dark-mode/multi-brand theming, and override escape hatches from three previous files; not bundled by the framework.
optional/theme-example.css Deleted — contents merged into customize-example.css; .theme-transition helper class removed (superseded by .sf-theme-transition in core/themes.css).
optional/config-example.css Deleted — fluid engine and scale-multiplier examples now live in customize-example.css sections 2–4.
optional/overrides-example.css Deleted — override layer examples (with concrete CSS rules added) now live in customize-example.css sections 7–12.
scripts/registry-sources.js Correctly removes optional/theme-example.css from CLASS_FILES; customize-example.css is intentionally not added (it is not a framework source).
docs/api-index.json Removes theme-example.css from sources, removes .theme-transition class entry, and correctly decrements counts (1087→1086 total, 331→330 classes, 1026→1025 PUBLIC, 9→8 unprefixed).
docs/registry.json Removes theme-example.css from class_sources and theme-transition from unprefixed_classes list; consistent with api-index.json.
configurator/src/data/classes.generated.json Removes the theme-transition class entry; correctly reflects the removal of the class from the source.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    subgraph Before
        A[optional/theme-example.css
slashed.themes
rebrand + dark-mode + .theme-transition]
        B[optional/config-example.css
slashed.themes
fluid engine + scale multipliers]
        C[optional/overrides-example.css
slashed.overrides
escape-hatch stubs]
    end

    subgraph After
        D[optional/customize-example.css
slashed.themes + slashed.overrides
Sections 1-6: brand tokens, fluid engine,
dark-mode, multi-brand
Sections 7-12: override examples]
    end

    subgraph Superseded
        E[.theme-transition
removed from all registries]
        F[.sf-theme-transition
in core/themes.css
bundled opt-in helper]
    end

    A -->|merged| D
    B -->|merged| D
    C -->|merged| D
    A -.->|class removed| E
    E -.->|superseded by| F
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    subgraph Before
        A[optional/theme-example.css
slashed.themes
rebrand + dark-mode + .theme-transition]
        B[optional/config-example.css
slashed.themes
fluid engine + scale multipliers]
        C[optional/overrides-example.css
slashed.overrides
escape-hatch stubs]
    end

    subgraph After
        D[optional/customize-example.css
slashed.themes + slashed.overrides
Sections 1-6: brand tokens, fluid engine,
dark-mode, multi-brand
Sections 7-12: override examples]
    end

    subgraph Superseded
        E[.theme-transition
removed from all registries]
        F[.sf-theme-transition
in core/themes.css
bundled opt-in helper]
    end

    A -->|merged| D
    B -->|merged| D
    C -->|merged| D
    A -.->|class removed| E
    E -.->|superseded by| F
Loading

Reviews (1): Last reviewed commit: "chore(optional): merge config/theme/over..." | Re-trigger Greptile

claude added 3 commits July 15, 2026 14:01
…hild)

Same word, different scope: --tall/--compact resize every row in the
grid, -tall/-wide/-full/-featured resize a single child item. Document
the distinction in docs/layout.md and add an inline comment at the
child-modifier definitions in core/layout.css so it's not missed at
either read site. No class renamed — public API unchanged.
…--row-tall

The container-level row-height modifiers collided visually with the
unrelated child modifier .sf-bento-tall (spans one item over 2 rows) —
same word, one dash apart. Rename the container modifiers to match the
--sf-bento-row-compact/-tall tokens they already set, so the two
modifier families read distinctly. Child span classes
(.sf-bento-wide/-full/-tall/-featured) are unchanged.

See docs/migration.md.
full.min.css was already at the 22kB edge; the .sf-bento--row-compact/
--row-tall rename (f90961d) added just enough bytes to tip it over in
CI (22.0029kB measured there vs 21.99kB locally — cross-environment
gzip variance at the margin). Small, documented headroom bump,
consistent with how this budget has been adjusted before.
@jackgranatowski
jackgranatowski merged commit 6c802f2 into main Jul 15, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants