Skip to content

Sass 1.105 and its module system, with the CSS byte for byte as it was - #232

Merged
xuelink merged 1 commit into
mainfrom
claude/sass-modern
Sep 24, 2026
Merged

xuelink merged 1 commit into
mainfrom
claude/sass-modern

Conversation

@xuelink

@xuelink xuelink commented Sep 24, 2026

Copy link
Copy Markdown
Member

Follow-up to #230, which pinned Sass at 1.77.6 to keep the build free of warnings. This moves to the current release (1.105) and clears everything it warns about, without changing the CSS:

  • @use/@forward instead of @import (removed in Dart Sass 3). global.scss loads the partials in the same order; _mixins forwards the breakpoints, so components that took both from it still get them. Plain CSS @imports of fontsource stay (not deprecated).
  • Colour helpers use sass:color (color.channel) instead of the global red(), hue() etc.; the contrast choice is an @if instead of if().
  • Three rules (blog #article-content, the compare picker's .vs, the say page's .term) declared properties after a nested rule. Current Sass writes those into a second rule after the nested one, which changes the cascade; they now sit above the nested rules, where Sass used to put them.

Checked

  • Against a build of main: all 58 stylesheets are byte-identical; all 1371 pages have the same element tree, text and head.
  • No Sass warnings from svelte-check or the build; CI replayed in a clean copy under Node 22.

🤖 Generated with Claude Code

Sass was pinned at 1.77.6 during the Svelte 5 upgrade to keep the build
quiet. This moves to the current release and clears what it warns about,
without changing a byte of the CSS it writes:

- @use and @forward instead of @import, which Dart Sass 3 removes. global.scss
  loads the partials in the order it imported them; the mixins forward the
  breakpoints, so a component that took both from _mixins still does. The
  fontsource imports stay: plain CSS @import is not deprecated.
- The colour helpers read channels through sass:color (color.channel) instead
  of the global red(), hue() and friends, and the contrast choice is an @if
  instead of the if() function.
- Three rules declared properties after a nested rule. Sass now writes those
  into a second rule after the nested one, which reorders the cascade; they
  sit above the nested rules now, which is where Sass used to put them.

Checked against a build of main: all 58 stylesheets are byte-identical, and
all 1371 pages have the same element tree, text and head. No Sass warnings in
svelte-check or the build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@xuelink
xuelink merged commit de677a0 into main Sep 24, 2026
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.

1 participant