Skip to content

1.4.0#22

Merged
Foscat merged 31 commits into
mainfrom
1.4.0
Jul 19, 2026
Merged

1.4.0#22
Foscat merged 31 commits into
mainfrom
1.4.0

Conversation

@Foscat

@Foscat Foscat commented Jul 19, 2026

Copy link
Copy Markdown
Owner

Summary

Refines Interactive Surface CSS for the 1.4.0 release candidate as a stronger interaction-surface library while preserving existing 1.x imports, selectors, data hooks, ARIA hooks, and token fallbacks.

This adds the cleaner state-core.css and standalone-preset.css entry points, expands semantic/native interaction coverage, updates the demo and npm-facing README/wiki guidance, adds package icon assets, and moves release validation to a Node.js 20+ contract with explicit Node 20 and Node 22 CI lanes.

Scope

  • bug fix
  • feature
  • docs
  • tests
  • release/chore

Validation

Commands run and results:

npm run validate
# PASS on Node v22.19.0
# Includes CSS lint, public/generated bundle checks, docs/contracts, package contract,
# npm pack dry run, and npm audit.

npm run test:chromium
# PASS: 82/82 Chromium Playwright tests.

npm exec --yes --package=node@20 -- node -p "process.version"
# PASS: v20.20.2

# Node 20 direct verification also passed for:
# - check-no-hex-colors
# - stylelint
# - build/check-public/check-generated
# - test:contracts
# - test:package

git diff --check
# PASS: no whitespace errors; only normal LF -> CRLF Git warnings.

Not run locally:

npm run test:install
npm test

Focused Chromium coverage passed; full cross-browser install/test can run in CI or before final release approval.

API and Behavior Impact

  • no public API changes
  • class API changed
  • token contract changed
  • accessibility behavior changed
  • motion behavior changed
  • browser behavior changed

Public API impact is additive/compatible: existing 1.x imports and selectors remain supported. New/cleaner entry points are added via state-core.css and standalone-preset.css.

Documentation

  • README updated (if needed)
  • wiki updated (if needed)
  • CHANGELOG updated (if needed)

Notes

Reviewer focus areas:

  • Confirm the 1.x compatibility contract remains intact.
  • Review the state-core.css vs standalone-preset.css ownership split.
  • Check native subcontrol handling, especially input[type="file"].interactive-surface::file-selector-button.
  • Confirm Node.js 20+ package/runtime guidance and Node 20/22 workflow matrix are acceptable.
  • Review packed-package contents, including the new asset files.

Foscat and others added 24 commits July 8, 2026 01:52
Add data-surface-variant aliases and standalone surface-level defaults for bridge-generated and runtime-assigned markup.

Update docs, demo coverage, release notes, and package metadata for the 1.3.0 API contract.
- CSS: Level-1/2/3 rules now set internal --_is-* vars with public bridge
  tokens as first fallback instead of writing to public tokens, preserving
  import-order independence
- Test: Resolve state-layer opacity values via a probe element's opacity
  property rather than reading raw custom-property token streams
- index.html: Replace @latest with @<version> placeholder in embedded CDN
  code block for reproducibility
@Foscat Foscat self-assigned this Jul 19, 2026
Copilot AI review requested due to automatic review settings July 19, 2026 21:55
@Foscat Foscat added documentation Improvements or additions to documentation enhancement New feature or request dependencies Pull requests that update a dependency file labels Jul 19, 2026
@Foscat
Foscat removed the request for review from Copilot July 19, 2026 21:55
Comment thread tests/documentation.test.mjs Fixed
Comment thread tests/documentation.test.mjs Fixed
Comment thread tests/documentation.test.mjs Fixed
Comment thread tests/package-contract.test.mjs Fixed
Copilot AI review requested due to automatic review settings July 19, 2026 22:01

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Prepares the Interactive Surface CSS 1.4.0 release candidate by splitting the stylesheet into a state-only core and a standalone preset, hardening compatibility and validation contracts, and aligning README/wiki guidance and CI workflows with the new entry points and Node.js 20+ support.

Changes:

  • Introduces state-core.css (state mechanics) and standalone-preset.css (neutral standalone defaults), while keeping interactive-surface.css and the package-root import compatible with 1.x.
  • Expands automated verification (contracts + Playwright) for entry points, state precedence, motion composition, forced-colors/reduced-motion behavior, and UI Style Kit integration.
  • Updates docs/demo/release workflow guidance and CI to reflect Node.js 20+ minimum (with explicit Node 20 + Node 22 lanes) and pinned workflow actions.

Reviewed changes

Copilot reviewed 45 out of 61 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
wiki/Token-Reference.md Reworks token documentation to reflect core vs preset ownership and preserved fallbacks.
wiki/Testing-and-Quality.md Documents validation tiers and updated quality gates for the RC.
wiki/Roadmap.md Updates roadmap to reflect 1.4.0 RC focus and guardrails.
wiki/Publishing-and-Releases.md Clarifies RC status, release identity checks, and validation expectations.
wiki/Installation-and-Usage.md Updates entry-point guidance, CDN pins, and ecosystem composition examples.
wiki/Home.md Reframes the wiki landing page around new entry points and ownership boundaries.
wiki/Getting-Started.md Updates the quickstart flow to prefer the standalone preset and semantic recipes.
wiki/FAQ.md Updates FAQ for entry-point selection, state coverage, and RC/publishing status.
wiki/Contributing.md Updates contribution rules and workflows aligned to 1.4.0 validation tiers.
wiki/API-Reference.md Updates API reference to include new entry points and exact package-resolution contract table.
wiki/Accessibility.md Expands responsibilities and documents semantic state + preference behavior.
wiki/_Sidebar.md Switches wiki navigation links to absolute GitHub Wiki URLs plus live example links.
wiki/_Footer.md Expands footer links to include wiki home and live demos.
tests/ui-style-kit-compat.spec.ts Expands UI Style Kit compatibility coverage (lift, transitions, forced-colors, core-only behavior).
tests/state-core.spec.ts Adds comprehensive Playwright coverage for state core semantics, precedence, and preferences.
tests/public-contract.test.mjs Adds Node test verifying 1.x contract presence and key export invariants.
tests/interactive-surface.spec.ts Updates rendered behavior tests to reflect translate-based motion and formatting updates.
tests/entry-points.spec.ts Adds tests asserting entry-point behaviors and preset/compat parity.
tests/documentation.test.mjs Adds contract tests to keep README/wiki URLs, version pins, and documented fields in sync.
tests/build.test.mjs Adds build/parity tests to ensure generated bundles match authored sources and report staleness.
styles/state-core.css Adds authored state-only mechanics (state layer, focus, precedence, reduced-motion, forced-colors).
styles/standalone-preset.css Adds authored standalone paint/geometry defaults, variants, levels, icon roles, and forced-colors paint.
state-core.css Adds generated public state-core.css output.
scripts/check-no-hex-colors.mjs Extends hex-literal guard to cover authored + generated public stylesheets.
scripts/build.mjs Replaces single-bundle build with multi-bundle generation, minification, and parity verification.
README.md Rewrites README as npm-first guide with new entry points, semantic recipes, and ownership model.
playwright.config.mjs Minor formatting updates; preserves multi-project configuration.
package.json Bumps version to 1.4.0, adds exports/allowlist for new entry points, raises engines to Node >=20, adds contracts/scripts.
package-lock.json Updates lockfile version metadata for 1.4.0 and adds prettier dependency.
docs/superpowers/specs/2026-07-19-interactive-surface-1.4.0-refinement-design.md Adds design/spec document for the 1.4.0 refinement.
demo/demo.js Adds demo “state lab” runtime for tabs, token editor, status messaging, and README rendering.
demo/demo.css Adds demo presentation layer styles and responsive/accessibility presentation rules.
CHANGELOG.md Adds 1.4.0 dated changelog entry summarizing additions/changes/fixes/testing/docs.
assets/site.webmanifest Adds PWA manifest for package/demo icon assets.
assets/favicon-links.html Adds helper snippet documenting favicon link tags.
assets/browserconfig.xml Adds Windows tile browser configuration for icon assets.
.stylelintrc.cjs Minor formatting change (trailing commas).
.github/workflows/wiki-sync.yml Pins actions/checkout to a commit SHA.
.github/workflows/npm-publish.yml Pins actions, switches publish lane to Node 22, adds tag/changelog validation, checks out release tag.
.github/workflows/ci.yaml Adds Node 20 + Node 22 matrix lanes and pins actions.
.github/workflows/browser-tests.yml Pins actions and switches browser-validation lane to Node 22.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread README.md Outdated
Foscat and others added 6 commits July 19, 2026 17:05
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
@Foscat
Foscat merged commit 7da40aa into main Jul 19, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants