Skip to content

Commit f9d00aa

Browse files
committed
Merge branch 'main' into utopia
* main: yarn dedupe Bump the npm-minor-upgrades group with 3 updates Automated webmentions update upgrade deps Bump the npm-minor-upgrades group with 11 updates Automated webmentions update fix broken links Clean up legacy note upgrade dotenv Update Sass compiler article Bump the npm-minor-upgrades group with 7 updates Automated webmentions update Move updates to the start of the post Link to first step of logical shorthands research
2 parents 02dab42 + c63dfc1 commit f9d00aa

8 files changed

Lines changed: 792 additions & 755 deletions

File tree

content/_data/webmentions.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"lastFetched": "2025-06-23T08:08:45.726Z",
2+
"lastFetched": "2025-07-14T08:09:25.082Z",
33
"children": [
44
{
55
"type": "entry",

content/blog/2019/smashing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ With a quick search, I found several examples and articles:
162162
There's a lot of room left to explore here, so play with it, and share
163163
what you find!
164164

165-
[Live Theming with CSS Variables]: https://www.jonathan-harrell.com/blog/live-theming-with-css-variables/
165+
[Live Theming with CSS Variables]: https://www.jonathanharrell.com/blog/live-theming-with-css-variables/
166166
[How to use variables in CSS]: https://www.sitepoint.com/how-to-use-variables-in-css/
167167
[CSS-Tricks also provides a rundown]: https://css-tricks.com/css-custom-properties-theming/
168168

content/blog/2024/sass-compiler.md

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ title: Speeding Up Your Sass Compilation in Vite and Webpack
33
sub: A quick guide to adopting the modern Sass API
44
author: james
55
date: 2024-08-14
6+
updated: 2025-06-30
67
image:
78
src: blog/2024/sass-compiler.jpeg
89
alt: >
@@ -18,6 +19,8 @@ summary:
1819
but it doesn't have to be anymore.
1920
---
2021

22+
{% import 'utility.macros.njk' as utility %}
23+
2124
Vite comes with built in support for Sass, as well as other CSS preprocessors.
2225
Just `npm install sass`, import a `.scss` file, and it works.
2326

@@ -40,7 +43,15 @@ see the Vite team add support in version 5.4.0.
4043

4144
## How to enable the Sass Compiler API in Vite
4245

43-
1. Update to Vite version 5.4.0 or above.
46+
{% set update = ['Update', utility.datetime(updated)] | join(' ') %}
47+
{% callout 'note', update %}
48+
49+
[Vite 7.0](https://vite.dev/blog/announcing-vite7) changed the available options
50+
for compiling Sass, simplifying the process even more.
51+
52+
{% endcallout %}
53+
54+
1. Update to Vite version 5.4.0 or above, and ideally 7.0 or above.
4455
2. Switch from `sass` to `sass-embedded` by running `npm uninstall sass; npm
4556
install -D sass-embedded`.
4657

@@ -52,29 +63,30 @@ and `sass-embedded` exposes the same API, but around a native Dart executable.
5263
In many situations, `sass-embedded` is faster.
5364
{% endcallout %}
5465

55-
3. In your `vite.config.js` file, set `css.preprocessorOptions.scss.api` to `modern-compiler`.
66+
3. Vite 7.0 made the Sass Compiler API the default (and removed support for the
67+
non-compiler API), so you don't need to opt in to the API. For Vite 5.4.0
68+
through < 7.0, you will need to opt in. In your `vite.config.js` file, set
69+
`css.preprocessorOptions.scss.api` to `modern-compiler`.
5670

5771
```js
5872
...
5973
css: {
6074
preprocessorOptions: {
75+
// Set `sass` if using the indented syntax
6176
scss: {
77+
// Only needed on versions < 7.0.0
6278
api: 'modern-compiler',
6379
}
6480
}
6581
}
6682
...
6783
```
6884

69-
{% callout %}
70-
If you're using the indented syntax, you'll need to use the `sass` key
71-
instead of `scss`.
72-
{% endcallout %}
73-
74-
4. Adjust any options from the [`legacy`] API options to the [`modern`] API
75-
options. In my case, I needed to update `pkgImporter` to `importers: [new
76-
NodePackageImporter()]` and change the import of `NodePackageImporter` from
77-
`sass` to `sass-embedded`.
85+
4. Vite 7.0 also removed support for the legacy API. If you were using the
86+
legacy API, adjust any options from the [`legacy`] API options to the
87+
[`modern`] API options. In my case, I needed to update `pkgImporter` to
88+
`importers: [new NodePackageImporter()]` and change the import of
89+
`NodePackageImporter` from `sass` to `sass-embedded`.
7890

7991
[`legacy`]: https://sass-lang.com/documentation/js-api/interfaces/legacystringoptions/
8092
[`modern`]: https://sass-lang.com/documentation/js-api/interfaces/stringoptions/

content/blog/2025/logical-options.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ title: How do we move logical shorthands forward?
33
sub: There are several proposals, but one major road block
44
author: miriam
55
date: 2025-03-27
6+
updated: 2025-06-27
67
image:
78
src: blog/2025/closed.jpg
89
alt: >
@@ -32,6 +33,19 @@ summary: >
3233
a decade from now.
3334
---
3435

36+
{% import 'utility.macros.njk' as utility %}
37+
38+
{% set update = ['Update', utility.datetime(updated)] | join(' ') %}
39+
{% callout 'note', update %}
40+
Thanks to your contributions,
41+
I've completed the first phase of this project --
42+
[documenting impacted properties](https://css.oddbird.net/logical/properties/).
43+
But there's more to do,
44+
and we could still
45+
[use your help](https://opencollective.com/oddbird-open-source/contribute/css-logical-shorthands-86141)
46+
moving forward.
47+
{% endcallout %}
48+
3549
## What are flow-relative 'logical' properties?
3650

3751
The specification for

content/blog/2025/logical-shorthand.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
title: Support Logical Shorthands in CSS
33
sub: Can we get this process unstuck?
44
date: 2025-03-20
5+
updated: 2025-06-27
56
author: miriam
67
image:
78
src: blog/2025/logical.jpg
@@ -27,6 +28,19 @@ summary: >
2728
_Can we get them unstuck?_
2829
---
2930

31+
{% import 'utility.macros.njk' as utility %}
32+
33+
{% set update = ['Update', utility.datetime(updated)] | join(' ') %}
34+
{% callout 'note', update %}
35+
Thanks to your contributions,
36+
I've completed the first phase of this project --
37+
[documenting impacted properties](https://css.oddbird.net/logical/properties/).
38+
But there's more to do,
39+
and we could still
40+
[use your help](https://opencollective.com/oddbird-open-source/contribute/css-logical-shorthands-86141)
41+
moving forward.
42+
{% endcallout %}
43+
3044
CSS began to add
3145
[logical properties and values](https://www.w3.org/TR/css-logical-1/)
3246
in 2017,

content/blog/elsewhere/interview/podcast/podrocket/web-design.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,5 @@ audio: https://chrt.fm/track/7F1212/aphid.fireside.fm/d/1437767933/3911462c-bca2
1717
{{ embed.audio(audio) }}
1818

1919
Or listen on…
20-
- [YouTube](https://buff.ly/unnKZIs)
2120
- [Apple](https://buff.ly/ZFB9NRi)
2221
- [Spotify](https://buff.ly/unnKZIs)

package.json

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
"webmentions": "node scripts/fetch-webmentions.js",
4444
"prod": "yarn build",
4545
"checklinks:internal": "npx --yes --package=hyperlink --package=tap-spot -- 'hyperlink --canonicalroot https://www.oddbird.net/ --root _site/ -r -p -i --skip \".css.map\" --skip \".js.map\" --skip \"feed.atom\" --skip \"/docs/\" _site/index.html | tap-spot'",
46-
"checklinks:external": "npx --yes --package=broken-link-checker -- 'blc -ro --exclude=localhost --exclude=oddsite.local --exclude=stackoverflow.com --exclude=codepen.io --exclude=linkedin.com --exclude=projects.invisionapp.com --exclude=docs.github.com --exclude=www.sass.hk --exclude=www.drupal.org --exclude=www.canva.com --exclude=www.fastcompany.com --exclude=duabuset-tandem.com --exclude=puta-elementa.com --exclude=campaignzero.org --exclude=twitter.com --exclude=vimeo.com --exclude=slideshare.net --exclude=coachhub.resilienceboost.com --exclude=bsky.app --exclude=nativesintech.org --exclude=gsap.com --exclude=cps.edu --exclude=siegemedia.com --exclude=patreon.com --exclude=blog.natbat.net --exclude=figma.com --exclude=theworkitem.com --exclude=substack.com --exclude=info.cern.ch --exclude=apps.microsoft.com --exclude=jonathanharrell.com --exclude=breakpoint-sass.com https://www.oddbird.net'",
46+
"checklinks:external": "npx --yes --package=broken-link-checker -- 'blc -ro --exclude=localhost --exclude=oddsite.local --exclude=stackoverflow.com --exclude=codepen.io --exclude=linkedin.com --exclude=projects.invisionapp.com --exclude=docs.github.com --exclude=www.sass.hk --exclude=www.drupal.org --exclude=www.canva.com --exclude=www.fastcompany.com --exclude=duabuset-tandem.com --exclude=puta-elementa.com --exclude=campaignzero.org --exclude=twitter.com --exclude=vimeo.com --exclude=slideshare.net --exclude=coachhub.resilienceboost.com --exclude=bsky.app --exclude=nativesintech.org --exclude=gsap.com --exclude=cps.edu --exclude=siegemedia.com --exclude=patreon.com --exclude=blog.natbat.net --exclude=figma.com --exclude=theworkitem.com --exclude=substack.com --exclude=info.cern.ch --exclude=apps.microsoft.com --exclude=jonathanharrell.com --exclude=breakpoint-sass.com --exclude=fontspring.com --exclude=thebuild.com --exclude=buff.ly --exclude=askubuntu.com https://www.oddbird.net'",
4747
"checklinks": "run-s checklinks:internal checklinks:external"
4848
},
4949
"imports": {
@@ -57,16 +57,16 @@
5757
"cssremedy": "^0.1.0-beta.2"
5858
},
5959
"devDependencies": {
60-
"@11ty/eleventy": "^3.1.1",
60+
"@11ty/eleventy": "^3.1.2",
6161
"@11ty/eleventy-fetch": "^5.1.0",
6262
"@11ty/eleventy-img": "^6.0.4",
6363
"@11ty/eleventy-plugin-rss": "^2.0.4",
6464
"@11ty/eleventy-plugin-syntaxhighlight": "^5.0.1",
6565
"@11ty/is-land": "^4.0.1",
66-
"@babel/core": "^7.27.4",
67-
"@babel/preset-env": "^7.27.2",
66+
"@babel/core": "^7.28.0",
67+
"@babel/preset-env": "^7.28.0",
6868
"@date-fns/utc": "^2.1.0",
69-
"@eslint/js": "^9.29.0",
69+
"@eslint/js": "^9.31.0",
7070
"@netlify/plugin-a11y": "^1.0.0-beta.1",
7171
"@rollup/plugin-babel": "^6.0.4",
7272
"@rollup/plugin-commonjs": "^28.0.6",
@@ -76,18 +76,18 @@
7676
"autoprefixer": "^10.4.21",
7777
"chalk": "^5.4.1",
7878
"chokidar-cli": "^3.0.0",
79-
"core-js": "^3.43.0",
79+
"core-js": "^3.44.0",
8080
"date-fns": "^4.1.0",
81-
"dotenv": "^16.5.0",
81+
"dotenv": "^17.2.0",
8282
"doxray": "^0.10.1",
83-
"eslint": "^9.29.0",
83+
"eslint": "^9.31.0",
8484
"eslint-config-prettier": "^10.1.5",
8585
"eslint-plugin-jest": "^29.0.1",
8686
"eslint-plugin-simple-import-sort": "^12.1.1",
8787
"fs-extra": "^11.3.0",
88-
"globals": "^16.2.0",
89-
"jest": "^30.0.2",
90-
"jest-environment-jsdom": "^30.0.2",
88+
"globals": "^16.3.0",
89+
"jest": "^30.0.4",
90+
"jest-environment-jsdom": "^30.0.4",
9191
"js-yaml": "^4.1.0",
9292
"lite-youtube-embed": "^0.3.3",
9393
"lodash-es": "^4.17.21",
@@ -96,21 +96,21 @@
9696
"markdown-it-footnote": "^4.0.0",
9797
"markdown-it-mark": "^4.0.0",
9898
"mockdate": "^3.0.5",
99-
"netlify-plugin-11ty": "^1.4.0",
99+
"netlify-plugin-11ty": "^1.5.0",
100100
"node-fetch": "^3.3.2",
101101
"npm-run-all": "^4.1.5",
102102
"postcss": "^8.5.6",
103103
"posthtml": "^0.16.6",
104-
"prettier": "^3.6.0",
104+
"prettier": "^3.6.2",
105105
"rimraf": "^6.0.1",
106-
"rollup": "^4.44.0",
106+
"rollup": "^4.45.0",
107107
"sanitize-html": "^2.17.0",
108108
"sass-embedded": "^1.89.2",
109109
"sassdoc": "^2.7.4",
110110
"sassdoc-theme-herman": "^6.0.2",
111111
"slugify": "^1.6.6",
112112
"striptags": "^3.2.0",
113-
"stylelint": "^16.21.0",
113+
"stylelint": "^16.21.1",
114114
"stylelint-config-standard-scss": "^15.0.1",
115115
"truncate-html": "^1.2.2",
116116
"typescript": "^5.8.3",

0 commit comments

Comments
 (0)