Skip to content

Conversation

@planetabhi
Copy link
Member

@planetabhi planetabhi commented Nov 16, 2025

Summary by CodeRabbit

  • Documentation

    • Renamed "Design Tokens & Primitives" to "Semantic Design Tokens", removed Icon token section, reorganized Spacings and added Sizing, removed the reset example.
  • Chores

    • Patch version bumps and build tooling updates across packages.
  • Changes

    • Text tokens renamed to content tokens; placeholder/support/link states updated; icon color utilities removed.
    • Numeric spacer utilities replaced with semantic spacer names; new semantic spacing and sizing aliases added.
    • Some system font fallbacks simplified.
  • Refactor

    • Color theming consolidated to a centralized palette and semantic-token composition; spacing utilities generation unified.
  • New Features

    • Added new radius, blur, perspective, aspect-ratio and transition tokens; expanded responsive grid utilities and visibility helpers.

@coderabbitai
Copy link

coderabbitai bot commented Nov 16, 2025

Warning

Rate limit exceeded

@planetabhi has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 18 minutes and 59 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between cd21bdb and 8e01183.

⛔ Files ignored due to path filters (3)
  • bun.lock is excluded by !**/*.lock
  • dist/index.css is excluded by !**/dist/**
  • dist/index.css.map is excluded by !**/dist/**, !**/*.map
📒 Files selected for processing (2)
  • README.md (4 hunks)
  • package.json (2 hunks)

Walkthrough

Replaces many inline color variables with mixin-driven palette and semantic-token generation, renames --text-* tokens to --content-* and removes icon utilities, converts numeric spacers and spacing utilities to semantic aliases/mixins, adjusts typography font stacks, and bumps multiple package versions/devDependencies.

Changes

Cohort / File(s) Summary
Docs
README.md
Rebranded header "Design Tokens & Primitives" → "Semantic Design Tokens"; removed Icon token block and the reset section; renamed table header and token refs from --text-*--content-*.
Colors: metadata & ignore
packages/colors/package.json, packages/colors/.gitignore
Bumped version 2.2.02.2.1; updated devDependencies; added test.html to .gitignore.
Palette mixin
packages/colors/src/_palette.scss
Added @mixin color-palette emitting OKLCH-based color groups and shades as CSS custom properties.
Theme mixins
packages/colors/src/_theme-mixins.scss
Added grey-scale(...), semantic-tokens-light(...), semantic-tokens-dark(...) mixins to generate greys and semantic token sets.
Theme files
packages/colors/src/_theme-*.scss
Replaced explicit per-token CSS var blocks with @use + @include color-palette, @include grey-scale(...), and `@include semantic-tokens-(light
Color utilities
packages/colors/src/_utilities.scss
Replaced utilities to use --content-* tokens, removed .nu-u-icon--* classes, added .nu-u-link--visited, updated support token to --support-info.
Spacings: metadata
packages/spacings/package.json
Bumped version 0.1.60.1.7; updated devDependencies.
Spacer components
packages/spacings/src/_components.scss
Removed numeric spacer classes .nu-c-spacer-1.nu-c-spacer-18; added semantic spacer classes .nu-c-spacer-zero, -xs, -s, -m, -l, -xl, -xxl, -xxxl mapped to --spacing-*.
Spacing utilities
packages/spacings/src/_utilities.scss
Added spacing-utilities($property, $prefix) mixin and replaced explicit margin/padding rules with mixin-generated semantic utilities.
Spacing variables
packages/spacings/src/_variables.scss
Added semantic aliases --spacing-zero, --spacing-xs, … and sizing aliases --size-*, --controls-size-* mapped to existing spacing tokens; updated comments.
Typography: metadata & fonts
packages/typography/package.json, packages/typography/src/_fonts.scss
Bumped version 0.1.90.1.10; updated devDependencies; removed several system font custom-properties and dropped 'DejaVu Sans Mono' from --monospace-code.
Grid
packages/grid/src/_grid.scss, packages/grid/package.json, packages/grid/.gitignore
Added box-sizing: border-box, many responsive column/offset/grow modifiers, visibility utilities, legacy gap fallback; bumped version and devDeps; adjusted .gitignore.
Effects
packages/effects/src/_variables.scss, packages/effects/package.json
Simplified shadow values (adjusted rgba layers) and removed a block of border-width variables; bumped package metadata/devDeps.
Reset
packages/reset/package.json
Updated devDependencies (parcel/sass/autoprefixer) only.

Sequence Diagram(s)

sequenceDiagram
  participant Sass as Sass compiler
  participant ThemeFile as _theme-*.scss
  participant Palette as _palette.scss
  participant Mixins as _theme-mixins.scss
  participant Output as Generated CSS

  rect rgb(237,247,237)
  Note over ThemeFile,Palette: Theme now composes palette + greys + semantic tokens
  Sass->>ThemeFile: compile theme file
  ThemeFile->>Palette: `@use` + `@include` color-palette()
  ThemeFile->>Mixins: `@include` grey-scale(...)\n@include semantic-tokens-(light|dark)(...)
  Mixins->>Output: emit --color*, --grey*, --content-*, semantic tokens
  end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~40 minutes

Areas to focus:

  • packages/colors/src/_theme-mixins.scss and packages/colors/src/_palette.scss — verify generated variable names/temperature mappings and OKLCH values.
  • Theme files (packages/colors/src/_theme-*.scss) — confirm mixin inputs recreate prior token set.
  • packages/colors/src/_utilities.scss — ensure all text → content substitutions and icon class removals are complete.
  • packages/spacings/src/_utilities.scss and _variables.scss — validate mixin-generated classes match previous semantics.
  • packages/grid/src/_grid.scss and packages/effects/src/_variables.scss — review expanded responsive rules and shadow/border changes.

Possibly related PRs

  • is #12 — similar color/theme token changes and --text-*--content-* renames (strong overlap).
  • feat: color updates #10 — edits to grey/scale and theme generation logic; likely overlaps with palette/grey-scale adjustments.
  • polishing #6 — touches typography font-stack declarations that overlap with removed font custom-properties.

Poem

🐇 I nibble tokens, mixins bloom,
Content colors where text once stood,
Spacers stretch in kinder names,
Palettes hum in oklch light,
A hopping rabbit says: themes feel bright.

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'feat:Optimizations' is vague and overly generic, failing to convey what specific optimizations were made across the extensive changes to color tokens, spacing utilities, typography, and grid systems. Revise the title to be more descriptive and specific, such as 'refactor: Migrate to semantic design tokens and mixin-based theming' to clearly reflect the main architectural changes.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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 and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
packages/colors/src/_theme-dark--warm.scss (1)

1-22: Parameter naming could better reflect usage intent.

The semantic-tokens-dark mixin uses a $grey-prefix parameter, but here it receives 'warm' (a temperature/variant name rather than a color channel prefix). While functionally correct—the grey-scale mixin creates --warm1 through --warm10 variables that are then referenced via var(--#{$grey-prefix}10)—the parameter name is misleading.

Consider renaming the parameter to $color-variant or $palette-prefix in the mixin definition to clarify that it's meant to reference any grayscale variant, not strictly grey.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7b793ed and 8957653.

⛔ Files ignored due to path filters (3)
  • packages/colors/bun.lock is excluded by !**/*.lock
  • packages/colors/dist/index.css is excluded by !**/dist/**
  • packages/colors/dist/index.css.map is excluded by !**/dist/**, !**/*.map
📒 Files selected for processing (12)
  • README.md (1 hunks)
  • packages/colors/.gitignore (1 hunks)
  • packages/colors/package.json (2 hunks)
  • packages/colors/src/_palette.scss (1 hunks)
  • packages/colors/src/_theme-dark--cold.scss (1 hunks)
  • packages/colors/src/_theme-dark--warm.scss (1 hunks)
  • packages/colors/src/_theme-dark.scss (1 hunks)
  • packages/colors/src/_theme-light--cold.scss (1 hunks)
  • packages/colors/src/_theme-light--warm.scss (1 hunks)
  • packages/colors/src/_theme-light.scss (1 hunks)
  • packages/colors/src/_theme-mixins.scss (1 hunks)
  • packages/colors/src/_utilities.scss (1 hunks)
🔇 Additional comments (16)
packages/colors/.gitignore (1)

1-3: No concerns.

Standard gitignore entries; no issues flagged.

packages/colors/src/_palette.scss (1)

1-114: Well-structured color palette mixin.

The centralized palette mixin cleanly defines all color tokens in oklch color space across 12 hue groups with consistent shading (1–8). This enables theme files to include the palette uniformly and supports the refactor away from inline token declarations.

packages/colors/package.json (1)

3-3: Version and dependencies look good.

Patch version bump (2.2.0 → 2.2.1) is appropriate for a refactor with API changes. DevDependencies are updated to patch/minor versions, which is safe and keeps tooling current.

Also applies to: 39-42

packages/colors/src/_utilities.scss (3)

285-294: Token rename to Content is consistent and well-executed.

All text-related token classes correctly map from --text-* to --content-* nomenclature across primary, secondary, secondary-alt, placeholder, on-color, error, success, and inked variants. Placeholder selectors are updated across all vendor prefixes (::placeholder, ::-webkit-input-placeholder, :-ms-input-placeholder).


303-303: Link visited state and support-info token addition.

New .nu-u-link--visited class and semantic rename of .nu-u-support--info (from --support-blue) improve UX and token clarity.

Also applies to: 309-309


1-309: Dist artifacts contain stale icon utility classes—regenerate the build output.

The source file (packages/colors/src/_utilities.scss) has been correctly updated with no .nu-u-icon-* utility classes remaining. However, the compiled dist/index.css still contains semantic icon utilities (.nu-u-icon--primary, .nu-u-icon--secondary, .nu-u-icon--disabled, .nu-u-icon--on-color, .nu-u-icon--inked) and their associated CSS variable tokens. These stale classes should be removed by running a clean rebuild. Icon tokens (--icon-* variables) used internally elsewhere in the design system remain unaffected.

README.md (1)

93-102: Documentation correctly reflects token renames.

The new Content section documents all renamed tokens (--text-* → --content-*) with clear role descriptions. Icon token section removal aligns with code changes in _utilities.scss.

packages/colors/src/_theme-light--warm.scss (1)

1-22: Mixin-based light--warm theme structure looks good.

The theme correctly imports palette and theme-mixins modules, includes the shared color-palette, and applies warm-specific grey-scale and semantic tokens. Consistency with other theme variants evident.

packages/colors/src/_theme-light.scss (1)

1-21: Light theme mixin-based structure is sound.

The default light theme correctly applies shared palette and uses default (no temperature variant) grey-scale and semantic tokens. Selector covers both :root and explicit data-new-ui-theme="light".

packages/colors/src/_theme-light--cold.scss (1)

1-22: Cold theme variant follows consistent mixin pattern.

Structure mirrors warm theme but with cold-specific oklch palette values and 'cold' parameter passed to grey-scale and semantic-tokens-light mixins. Consistent with overall refactor.

packages/colors/src/_theme-dark.scss (2)

4-21: Mixin composition strategy is sound.

The delegation of color generation to mixins reduces duplication and improves maintainability. The sequence—palette generation, grey-scale setup, semantic token definition—follows a logical composition pattern.


1-2: No issues found—dependencies are correctly resolved.

Both _palette.scss and _theme-mixins.scss exist and export all required mixins (color-palette, grey-scale, semantic-tokens-dark) with correct signatures. The @use statements properly expose these mixins to the root namespace. Mixin invocations align with their parameter definitions, and referenced color variables are available.

packages/colors/src/_theme-dark--cold.scss (1)

1-22: Consistent implementation with warm theme variant.

The cold theme follows the same mixin-based pattern as the warm variant. No new concerns beyond the parameter naming issue noted in _theme-dark--warm.scss.

packages/colors/src/_theme-mixins.scss (3)

3-38: Grey-scale mixin correctly implements parametrized color generation.

The mixin accepts 10 oklch color values and conditionally creates themed aliases ('warm' or 'cold'). String interpolation via #{...} properly converts Sass parameters to CSS custom property values. The design allows reusability across light/dark and warm/cold variants.


1-132: Module imports and public API are correctly configured.

The @use statement with 'as *' correctly exposes all public members (mixins) locally without a namespace, allowing direct @include calls from consuming theme files. The mixin signatures match their documented parameters, and no private members (prefixed with _ or -) are accidentally exposed.


41-85: All palette color variables are properly defined—no issues found.

Verification confirms all 18 color variables referenced in the semantic token mixins exist in the palette module:

  • --blue2 through --blue7
  • --red4 through --red6
  • --green4 through --green6
  • --yellow4 through --yellow5
  • --indigo4 through --indigo5
  • --white and --black

The semantic token mixins follow consistent design patterns with appropriate contrast hierarchy and all palette dependencies are satisfied.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b211965 and 64fc97d.

⛔ Files ignored due to path filters (3)
  • packages/spacings/bun.lock is excluded by !**/*.lock
  • packages/spacings/dist/index.css is excluded by !**/dist/**
  • packages/spacings/dist/index.css.map is excluded by !**/dist/**, !**/*.map
📒 Files selected for processing (5)
  • README.md (2 hunks)
  • packages/spacings/package.json (2 hunks)
  • packages/spacings/src/_components.scss (1 hunks)
  • packages/spacings/src/_utilities.scss (1 hunks)
  • packages/spacings/src/_variables.scss (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • packages/spacings/src/_variables.scss
🔇 Additional comments (5)
README.md (1)

127-146: All referenced tokens are properly defined and exported.

Verification confirms that all semantic spacing tokens (--spacing-zero through --spacing-xxxl) and sizing tokens (--size-xs, --size-s, --size-m, --controls-size-default, --controls-size-small) exist in packages/spacings/src/_variables.scss and are properly exported via the package's index.scss using SCSS's @use directive.

packages/spacings/src/_utilities.scss (2)

18-42: Auto-margin utilities are comprehensive and conflict-free.

Verification confirms:

  • The mixin generates only semantic spacing utilities (zero, xs, s, m, l, xl, xxl, xxxl), not -auto variants, so explicit auto rules (.nu-u-mx-auto, .nu-u-me-auto, .nu-u-ms-auto) do not conflict or shadow mixin-generated utilities
  • The omission of .nu-u-my-auto is intentional—only inline margin (mx) and individual directions (me, ms) support auto alignment; block margin (my) provides semantic spacing utilities only
  • No duplication or unintended gaps in coverage

1-16: All semantic spacing variables are properly exported and mixin generates expected utility classes.

Verification confirmed:

  1. ✓ All 8 semantic spacing tokens (--spacing-zero, --spacing-xs, --spacing-s, --spacing-m, --spacing-l, --spacing-xl, --spacing-xxl, --spacing-xxxl) are defined in _variables.scss
  2. ✓ The mixin is correctly invoked 14 times across margin and padding variants, generating CSS utility classes following the expected pattern (.nu-u-{prefix}-{token})

Verify testing setup: Test files were not found in the packages/spacings/ directory structure. Please confirm whether tests exist elsewhere in the project or document the testing approach for these utilities.

packages/spacings/package.json (1)

3-3: Dependency updates are verified as secure.

Parcel 2.16.1 is free from known vulnerabilities (note: CVE-2025-56648 affected versions through 2.16.0, so the update to 2.16.1 resolves that). Autoprefixer 10.4.22 has no known security advisories. Both versions are available on npm.

packages/spacings/src/_components.scss (1)

3-10: Verify migration documentation and dist rebuild before publishing breaking change.

The source file correctly implements semantic spacer naming (lines 3–10 match review expectations), and the README documents the new semantic tokens (--spacing-zero through --spacing-xxxl). However, two critical gaps remain:

  1. Stale distribution: dist/index.css still contains old numeric classes (.nu-c-spacer-1 through .nu-c-spacer-18), indicating the dist has not been rebuilt from the updated source.

  2. Missing migration guidance: No migration documentation was found in README.md despite this being a breaking change. Users upgrading from numeric to semantic classes need explicit guidance on class renaming.

Before merging, ensure:

  • Rebuild dist to reflect semantic class changes
  • Add migration or changelog entry documenting the breaking change and new semantic class names

Comment on lines +93 to +102
Content | Role
:--- | :---
**`--text-primary`** | Primary body copy
**`--text-secondary`** | Secondary text color
**`--text-secondary-alt`** | Secondary text color alt
**`--text-placeholder`** | Placeholder text color
**`--text-on-color`** | Text on interactive color
**`--text-error`** | Error message
**`--text-success`** | Success message
**`--text-inked`** | Inked text
**`--content-primary`** | Primary body copy
**`--content-secondary`** | Secondary text color
**`--content-secondary-alt`** | Secondary text color alt
**`--content-placeholder`** | Placeholder text color
**`--content-on-color`** | Text on interactive color
**`--content-error`** | Error message
**`--content-success`** | Success message
**`--content-inked`** | Inked text
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

Document migration path for breaking token rename (Text → Content).

The renaming of --text-* tokens to --content-* is a breaking change for consumers. While the README reflects the new tokens, there's no migration guide or deprecation notice for users upgrading from previous versions.

Consider:

  1. Adding a migration section to the README or CHANGELOG documenting this breaking change
  2. Verifying that the old --text-* tokens are completely removed (not providing backward compatibility)
  3. Searching the codebase for any remaining references to old tokens

Run the following script to check for old token references:


🏁 Script executed:

#!/bin/bash
# Search for old --text-* token references across the codebase
rg --type scss '\-\-text\-' --files-with-matches
rg --type css '\-\-text\-' --files-with-matches

Length of output: 43


🏁 Script executed:

#!/bin/bash
# Check content of dist/index.css for --text- references
echo "=== Checking dist/index.css for --text- references ==="
grep -c '\-\-text\-' dist/index.css 2>/dev/null || echo "File not found or no matches"
head -50 dist/index.css | grep '\-\-text\-' || echo "No matches in first 50 lines"

# Search all files (not just css/scss) for --text- in source directories
echo -e "\n=== Searching all source files for --text- ==="
rg '\-\-text\-' --type-list | head -20

# Try searching without type restriction
echo -e "\n=== Searching codebase without type restriction ==="
rg '\-\-text\-' -g '!node_modules' -g '!dist' -C 2 | head -100

# Check if there's a migration guide or changelog
echo -e "\n=== Checking for migration documentation ==="
find . -maxdepth 2 -type f \( -name 'CHANGELOG*' -o -name 'MIGRATION*' -o -name 'BREAKING*' \) 2>/dev/null

Length of output: 64445



🏁 Script executed:

#!/bin/bash
# Search for actual token definitions, not CSS properties
echo "=== Searching for --content- token definitions ==="
rg '\-\-content\-' -g '!dist' -g '!node_modules' -C 1 | head -80

echo -e "\n=== Searching for --text- token definitions (in source only) ==="
rg '\-\-text\-' -g '!dist' -g '!node_modules' -C 1 | head -80

echo -e "\n=== Check README for content tokens ==="
grep -n '\-\-content\-' README.md | head -20

echo -e "\n=== Check README for text tokens ==="
grep -n '\-\-text\-' README.md | head -20

echo -e "\n=== Check if CHANGELOG exists anywhere ==="
find . -name '*CHANGE*' -o -name '*change*' 2>/dev/null | grep -v node_modules | grep -v dist

Length of output: 3606


Add migration guide for breaking token rename (Text → Content).

The --text-* tokens have been successfully removed from the source code and replaced with --content-* tokens throughout (verified in packages/colors/src/_theme-mixins.scss and packages/colors/src/_utilities.scss). However, no migration documentation exists for consumers upgrading from previous versions who rely on the old token names.

Add a migration section to the README or create a CHANGELOG entry documenting this breaking change and providing a mapping of old to new token names for users to reference during their upgrade.

🤖 Prompt for AI Agents
In README.md around lines 93 to 102, add a migration section documenting the
breaking rename of design tokens from --text-* to --content-*; create a clear
heading like "Migration: Text → Content tokens", include a simple mapping table
of old -> new token names for all renamed tokens, reference the source files
where the change occurred (packages/colors/src/_theme-mixins.scss and
packages/colors/src/_utilities.scss), state the release/version that contains
the breaking change, and provide a short upgrade instruction telling consumers
to replace usages of --text-* with the corresponding --content-* tokens (and how
to verify via the mapped list).

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
packages/grid/src/_grid.scss (1)

153-156: Clarify the rationale for flex-grow range constraints.

The flex-grow utilities exclude grow-1 and grow-12 (generating only grow-2 through grow-11). While flex-grow: 1 is a valid CSS value and arguably the most common, excluding it is an intentional design choice. Document why grow-1 and grow-12 are excluded (e.g., are they considered defaults or anti-patterns in your design system?).

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 83ddd60 and 7151fc5.

⛔ Files ignored due to path filters (4)
  • packages/grid/bun.lock is excluded by !**/*.lock
  • packages/grid/dist/index.css is excluded by !**/dist/**
  • packages/grid/dist/index.css.map is excluded by !**/dist/**, !**/*.map
  • packages/reset/bun.lock is excluded by !**/*.lock
📒 Files selected for processing (4)
  • packages/grid/.gitignore (1 hunks)
  • packages/grid/package.json (2 hunks)
  • packages/grid/src/_grid.scss (1 hunks)
  • packages/reset/package.json (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • packages/grid/.gitignore
🔇 Additional comments (8)
packages/grid/package.json (2)

3-4: Version and description updates align with grid feature expansion.

The version bump from 0.1.0 → 0.1.1 and description punctuation adjustment are reasonable and consistent with the substantial grid system enhancements (responsive modifiers, accessibility, legacy support) added in packages/grid/src/_grid.scss.


39-41: DevDependency versions consistent with other packages.

Same build toolchain updates as packages/reset/package.json and broader monorepo alignment.

packages/grid/src/_grid.scss (6)

28-34: ✓ Box-sizing consistency applied across layout primitives.

Adding box-sizing: border-box to .container, .grid, and %col-base ensures predictable sizing behavior across the layout system. This is a solid best practice for grid/layout utilities.

Also applies to: 41-47, 56-60


11-17: ✓ Breakpoint mixin guard prevents silent failures.

The guard @if map.has-key($breakpoints, $breakpoint) safely prevents media queries from being generated if an invalid breakpoint is requested. This is defensive and maintains robustness.


93-114: ✓ Responsive column modifiers and offsets are well-scoped.

Responsive sizing (col--{breakpoint}-{1..12}) and offsets (col--{breakpoint}-offset-{1..11}) follow correct semantics—offsets exclude 12 to avoid redundant full-width offset. The breakpoint guard ensures media queries only render for valid breakpoints.


159-186: ✓ Visibility utilities follow clear, consistent naming.

The hidden/visible directional utilities (hidden-{bp}-up, hidden-{bp}-down, visible-{bp}-up, visible-{bp}-down) provide predictable breakpoint control and are well-organized. Media query calculation (calc(#{$value} - 0.01rem)) prevents boundary overlap.


200-208: ✓ Legacy gap support fallback is appropriate.

The @supports not (gap: 1rem) block provides a safe fallback using margin/padding for browsers that don't support the CSS gap property. Calculation is correct and maintains gutter consistency.


188-198: ****

Setting transition: none; within a prefers-reduced-motion: reduce media query is a standard accessibility pattern that doesn't require transitions to be defined on the selector. This defensive approach disables transitions based on a media query, and is valid whether or not transitions are currently applied. This common technique ensures that when users switch off distracting or motion-intensive styles, transitions are disabled—protecting against future changes or cascade effects. The practice follows WCAG guidance to disable transitions for users who have expressed a reduced motion preference. The code is correct as written.

Likely an incorrect or invalid review comment.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (1)
README.md (1)

93-102: Add migration guide for the breaking --text-*--content-* token rename.

This change documents the new content tokens, but the previous review flagged a missing migration section for consumers upgrading from the old --text-* tokens. No migration guide is visible in the current README that helps users map old to new token names or explains the breaking change.

Add a migration section (e.g., after line 102 or in a dedicated subsection) that includes:

#### Migration: Text → Content Tokens

The following `--text-*` tokens have been renamed to `--content-*` tokens in [version]:

| Old Token | New Token |
| --- | --- |
| `--text-primary` | `--content-primary` |
| `--text-secondary` | `--content-secondary` |
| `--text-secondary-alt` | `--content-secondary-alt` |
| `--text-placeholder` | `--content-placeholder` |
| `--text-on-color` | `--content-on-color` |
| `--text-error` | `--content-error` |
| `--text-success` | `--content-success` |
| `--text-inked` | `--content-inked` |

**To upgrade:** Replace all usages of `--text-*` tokens with the corresponding `--content-*` tokens in your codebase.

Also consider adding a CHANGELOG or BREAKING_CHANGES document at the repository root if not already present.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7151fc5 and f6b22e5.

⛔ Files ignored due to path filters (3)
  • packages/effects/bun.lock is excluded by !**/*.lock
  • packages/effects/dist/index.css is excluded by !**/dist/**
  • packages/effects/dist/index.css.map is excluded by !**/dist/**, !**/*.map
📒 Files selected for processing (3)
  • README.md (3 hunks)
  • packages/effects/package.json (2 hunks)
  • packages/effects/src/_variables.scss (1 hunks)
🔇 Additional comments (7)
README.md (3)

50-50: Good semantic framing in section header.

Renaming to "Semantic Design Tokens" better reflects the palette and semantic token generation approach described in the PR.


122-131: Spacing token restructure is clear and well-mapped.

The new table format with Token | Source | Size provides good transparency into how semantic spacing tokens map to underlying numeric scales. The size values (in both px and rem) are consistent and properly documented.


133-141: Sizing subsection provides helpful semantic size abstractions.

The new Sizing section appropriately separates generic sizing tokens from control-specific ones, with clear source mappings to existing spacing tokens. This addition aligns well with the semantic token strategy and gives consumers multiple entry points for sizing decisions.

packages/effects/package.json (1)

3-4: Version bump and metadata cleanup look good.

The patch version bump (0.1.7) is appropriate for tooling updates, and the description punctuation cleanup is consistent with package metadata standards.

packages/effects/src/_variables.scss (3)

1-15: Border variables are still active in the codebase—review concern is misdirected.

The search reveals that border variables (--border-muted-width-, --border-width-, etc.) have not been removed from the codebase. They continue to exist in:

  • packages/colors/src/_theme-mixins.scss (--border-muted, --border-strong definitions)
  • packages/colors/src/_utilities.scss (border utility classes)
  • dist/index.css (compiled output with active variable definitions)

The file packages/effects/src/_variables.scss shown in the review contains only shadow and focus variables—it does not and did not contain border variables. The border tokens are defined and managed in the packages/colors/ package, not effects.

No compilation or runtime failures are expected, as no actual removal occurred. The concern in the review comment appears to be based on a misunderstanding of where these variables are defined across the monorepo packages.


3-6: Verify design specifications and component adoption plan for shadow utility changes.

The shadow variable changes in packages/effects/src/_variables.scss (lines 3–6) are currently isolated within the effects package with no active usage across the codebase. No components currently reference these --dialog-strong or --dialog variables, and the shadow utility classes (.sh-dialog--strong, .sh-dialog) are defined but unused.

Before merging, confirm:

  • The shadow value changes align with your design specifications
  • This is intentional preparatory work for future component adoption
  • The compiled output in dist/index.css reflects the expected visual refinements

7-7: Incorrect — --content is a shadow token, not a color; this is not a breaking change.
--content is defined/used as a box-shadow in packages/effects (packages/effects/src/_variables.scss:7 and packages/effects/src/_utilities.scss:10) and appears in the effects dist files; color tokens are --content-primary, --content-* (packages/colors). README mentions are documentation only.

Likely an incorrect or invalid review comment.

Comment on lines +31 to +33
"@parcel/transformer-sass": "^2.16.1",
"autoprefixer": "^10.4.22",
"parcel": "^2.16.1"
Copy link

@coderabbitai coderabbitai bot Nov 16, 2025

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

Verify package versions exist and have no security advisories.

The parcel updates (2.14.4 → 2.16.1) are minor version bumps within the 2.x range, and autoprefixer (10.4.21 → 10.4.22) is a patch bump. These should be compatible via the caret constraints, but verify they're available on npm and free from security issues.


🌐 Web query:

Are parcel 2.16.1, @parcel/transformer-sass 2.16.1, and autoprefixer 10.4.22 the latest stable versions available?

💡 Result:

Short answer: No.

  • autoprefixer 10.4.22 — appears to be the latest stable (published very recently). [1][2]
  • parcel / @parcel/transformer-sass 2.16.1 — I cannot find a published stable 2.16.1; public registries show parcel and many @parcel/* packages at 2.16.0 (or 2.15.x for some subpackages). So 2.16.1 is not shown as a published stable release. See registry listings for parcel/@parcel/core and @parcel/transformer-sass. [3][4]

Sources:

  1. Autoprefixer (package info showing 10.4.22 as latest). [Socket/npm summary]. [1]
  2. npm/autoprefixer package page. [2]
  3. parcel package listings (jsDelivr / jsdocs showing parcel v2.16.0 and registry state). [3]
  4. @parcel/transformer-sass npm page (shows 2.15.4 / registry entries). [4]

If you want I can check npmjs.com/your registry in real time and confirm exact latest versions for each package.


I need to verify the exact availability of these versions on npm, as the results suggest parcel 2.16.1 may not exist. Let me search for more definitive information:

I need to verify the compatibility between parcel 2.16.1 and @parcel/transformer-sass versions.

@parcel/transformer-sass@2.16.1 does not exist on npm; the latest available version is 2.15.4.

Parcel 2.16.1 is available and was last published 6 days ago, but @parcel/transformer-sass latest version is 2.15.4, last published 4 days ago. The version @parcel/transformer-sass@2.16.1 specified in the package.json does not exist on npm, which will cause installation to fail. Update the version to 2.15.4 to match the latest available release, or investigate the parcel 2.16.1 release documentation to determine the correct compatible version of the transformer.

🤖 Prompt for AI Agents
In packages/effects/package.json around lines 31-33, the dependency
"@parcel/transformer-sass": "^2.16.1" does not exist on npm and will break
installs; change that entry to a real published version (e.g. "^2.15.4") or pick
the transformer version explicitly compatible with the installed parcel (verify
parcel 2.16.1 release notes), then run npm/yarn install and update the lockfile
to reflect the corrected version.

Copy link

Choose a reason for hiding this comment

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

Seems like the humans are having a chat. I'll hop back into my burrow for now. If you need me again, just tag @coderabbitai in a new comment, and I'll come hopping out!

Copy link
Member Author

Choose a reason for hiding this comment

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

@coderabbitai https://www.npmjs.com/package/@parcel/transformer-sass

  "name": "@parcel/transformer-sass",
  "version": "2.16.1",

Copy link

Choose a reason for hiding this comment

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

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check the latest version of @parcel/transformer-sass on npm
npm view @parcel/transformer-sass version
npm view @parcel/transformer-sass time --json | jq -r '.["2.16.1"]' 2>/dev/null || echo "Version 2.16.1 time not found"

Length of output: 31


@planetabhi You're absolutely right, and I apologize for the incorrect information!

The npm registry confirms that @parcel/transformer-sass@2.16.1 does exist and is in fact the latest version (published on November 5, 2025). My earlier analysis was mistaken.

The dependency updates in this package.json are correct:

  • @parcel/transformer-sass: ^2.16.1 (latest)
  • autoprefixer: ^10.4.22 (latest)
  • parcel: ^2.16.1 (latest)

All versions are valid and available on npm. Thank you for catching this error! 🙏

@planetabhi planetabhi merged commit 27d68db into main Nov 16, 2025
1 check 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.

2 participants