Conversation
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
Contributor
There was a problem hiding this comment.
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) andstandalone-preset.css(neutral standalone defaults), while keepinginteractive-surface.cssand 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.
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.cssandstandalone-preset.cssentry 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
Validation
Commands run and results:
Not run locally:
npm run test:install npm testFocused Chromium coverage passed; full cross-browser install/test can run in CI or before final release approval.
API and Behavior Impact
Public API impact is additive/compatible: existing 1.x imports and selectors remain supported. New/cleaner entry points are added via
state-core.cssandstandalone-preset.css.Documentation
Notes
Reviewer focus areas:
state-core.cssvsstandalone-preset.cssownership split.input[type="file"].interactive-surface::file-selector-button.