Skip to content

Publish Next Version - #2407

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
changeset-release/main
Open

Publish Next Version#2407
github-actions[bot] wants to merge 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

@github-actions github-actions Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@cloudfour/patterns@17.2.0

Minor Changes

  • #2405 96fd86e Thanks @spaceninja! - Make the font directory configurable. base/fonts now exposes a $dir variable, so the location of the font files can be overridden with @use '@cloudfour/patterns/src/base/fonts' with ($dir: '/my/path'). The default is unchanged, and the font URLs in dist/standalone.css are byte-for-byte identical.

Patch Changes

  • #2439 27d3085 Thanks @renovate! - Stop WordPress's File block font size from shrinking our file download buttons.

    WordPress shrinks the File block's text to 0.8em. It used to set that on
    .wp-block-file__button, where our button styles overrode it outright, but it
    now sets it on the .wp-block-file container instead. Our button mixins take
    font: inherit and size their padding and block size in em, so the inherited
    0.8em scaled the entire button down by a fifth rather than just its text.
    Resetting font-size on the container restores the buttons to the same
    dimensions they had before.

    This only became visible with newer WordPress, so on older installs the new
    declaration is a no-op.

  • #2442 3d8554e Thanks @spaceninja! - Stop publishing three Storybook demo fixtures — defaultArgs, defaultArgTypes and generateGroundNavProps. They come from ground-nav-args.js, which only the Ground Nav stories import, and they reached the bundle because the build's entry glob excluded .stories. and .test. files but not -args. ones. They were never documented or intended as API, and nothing a consumer would want can be done with them.

    The four real exports — createElasticTextArea, createSubscribe, initCommentReplyForm and initSkyNav — are byte-for-byte unchanged, and dist/standalone.css and dist/standalone.min.css are untouched. Dropping the fixtures takes dist/cloudfour-patterns.min.js from 7.8KB to 4.1KB (2.7KB to 1.5KB gzipped), the ESM bundle from 9.4KB to 5.9KB, the UMD bundle from 21KB to 15KB, and the type declarations from 8.0KB to 1.6KB.

  • #2450 152ed19 Thanks @spaceninja! - Make every published file reachable through Node resolution. exports was a bare string pointing at the browser bundle, and defining exports at all encapsulates every other subpath — so of the 360 files in the tarball, exactly one could be resolved. Requiring the compiled design tokens failed with ERR_PACKAGE_PATH_NOT_EXPORTED, and so did reading our own package.json, which is something tooling routinely does to a dependency.

    files and exports disagreed about what the public API is, and files is the field expressing the intent: we deliberately publish /dist, the compiled tokens, the Sass partials, the Twig templates and the assets. exports now mirrors that shape, so what we ship and what a consumer can reach are the same set.

    The subpath patterns are written per extension rather than as a blanket ./src/*, which keeps stories and tests encapsulated even for a consumer resolving against a working tree rather than an installed tarball. files remains the authority on the exact file list.

    Widening exports cannot break an import that already worked, and the published file list is byte-for-byte unchanged — only reachability changes. Sass is unaffected in both directions: it compiles identically before and after via both loadPaths and the pkg: importer, because neither route enforces the export map for stylesheets.

    Also adds a types condition to the main entry. Under node16/nodenext/bundler module resolution, TypeScript reads types through exports and ignores the top-level types field, so consumers on those settings were getting any — TypeScript reported "There are types at dist/cloudfour-patterns.d.ts, but this result could not be resolved when respecting package.json exports". This was already true before this change; it is fixed here because it is the same field and the same root cause. What the main entry resolves to at runtime is unchanged.

  • #2405 96fd86e Thanks @spaceninja! - Fix Sky Nav rendering permanently open with no toggle button when its markup is injected as a string rather than parsed by the browser. The no-js class is normally cleared by an inline <script>, which never runs in that case, so initSkyNav now clears it as well.

  • #2446 913c466 Thanks @spaceninja! - Stop publishing src/index-with-dependencies.scss. It is a Storybook-only entry point, and files already excludes its sibling src/index.scss for the same reason — this was the exclusion being one file short rather than a deliberate choice.

    No consumer can have been using it. It loads @wordpress/block-library through ../node_modules/, which resolves inside our own package directory, and that is a devDependency we never install for anyone else; it then loads ./index, which files deliberately excludes; and it configures the font directory as /src/assets/fonts, a root-absolute path that only means anything while Vite is serving Storybook. Compiling it from an installed tarball fails on the first of those three.

    The tarball goes from 361 files to 360, and nothing else changes. Storybook reads the file from the working tree, so it is unaffected.

  • #2422 3492198 Thanks @spaceninja! - Keep the viewBox on the SVGs inlined into dist/standalone.min.css. The minifier had been stripping it, so the minified bundle no longer matched the unminified one it is built from. Rendering is unchanged — compared pixel for pixel, the two differ only by antialiasing — but the bundle is now a faithful minification of its source, and around 227 bytes larger gzipped.

    The generated token files also lose the build timestamp from their header comment, which makes them identical between builds, and each token in src/compiled/tokens/js/ gains a key field. No token value changed.

  • #2432 570de07 Thanks @spaceninja! - Drop the xmlns attribute from the templatized SVG partials in src/assets. These files are only ever included inline into HTML, where the namespace is implied — it is required on standalone SVG documents. The optimizer had been configured to remove it for years, but in a format it silently ignored.

    The same partials also pick up small coordinate rounding differences from a newer SVGO. Rendered and compared pixel for pixel, 55 of the 72 are unchanged and the largest difference in the rest is 0.53% of pixels at the edges of curves.

  • #2405 96fd86e Thanks @spaceninja! - Fix Footnote Link failing to render under Twig 3, which removed the spaceless tag. The template now uses the spaceless filter, which Twig has supported since 2.9. Rendered output is unchanged.

  • #2443 5a65202 Thanks @spaceninja! - Drop the engines.node field, so installing the package no longer declares a Node requirement. Nothing in the published files runs on Node — the package ships CSS, Sass, Twig templates, assets and a browser bundle — so the field was only ever gating installation, and it was gating it on >=12.16.3, a floor nobody chose deliberately. Removing a restriction cannot break an install that worked before.

    .nvmrc and the pinned Node version in CI are what actually control the development environment, and neither changes.

  • #2416 5232e5e Thanks @spaceninja! - Collapse the wide-viewport align-self/justify-self pair on Ground Nav's social area into the equivalent place-self shorthand. Computed styles are unchanged; only the two declarations in dist/standalone.css become one.

  • #2406 eb1bb81 Thanks @spaceninja! - Shrink the UMD bundles. Rollup 4 tree-shakes the generated design-token module, which Sky Nav reads three values from, so dist/cloudfour-patterns.js drops from 116KB to 21KB and dist/cloudfour-patterns.min.js from 37KB to 7.8KB. The ESM bundle is byte-for-byte unchanged and the exports are identical in all three.

  • #2444 ad12466 Thanks @spaceninja! - Load src/index-with-dependencies.scss with @use rather than @import, which Dart Sass 3 removes. This was the last @import in the repo.

    Compiled output loses seven duplicate @font-face rules and nothing else. @use loads each stylesheet once, so the fonts configured at the top of the file are emitted a single time; under @import they came out twice, because ./index loads base/fonts as well and an @import does not share the module graph with the file importing it. Every surviving rule is byte-for-byte one of the originals, in the same order, and all other CSS is byte-for-byte identical — 1,245 bytes smaller in the Storybook build.

@netlify

netlify Bot commented Aug 20, 2026

Copy link
Copy Markdown

Deploy Preview for cloudfour-patterns ready!

Name Link
🔨 Latest commit 1deb0cc
🔍 Latest deploy log https://app.netlify.com/projects/cloudfour-patterns/deploys/6a8dd5847c7a690008cb82ab
😎 Deploy Preview https://deploy-preview-2407--cloudfour-patterns.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions
github-actions Bot force-pushed the changeset-release/main branch 29 times, most recently from abcd35d to 4f7b1b4 Compare August 25, 2026 17:38
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 4f7b1b4 to 1deb0cc Compare August 25, 2026 17:48
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.

0 participants