Skip to content

feat(motion): motion tokens module with duration and ease-in checks - #91

Merged
Hebilicious merged 3 commits into
feat/issue-82-pow-scalefrom
feat/issue-83-motion
Oct 8, 2026
Merged

Hebilicious merged 3 commits into
feat/issue-82-pow-scalefrom
feat/issue-83-motion

Conversation

@Hebilicious

@Hebilicious Hebilicious commented Oct 7, 2026 •

Copy link
Copy Markdown
Owner

Closes #83.

A new motion module with duration and easing groups emits --motion-duration-* and --motion-easing-* tokens. They can be referenced from primitives and appear in every output format.

  • Durations (ms/s) and easings are validated, including strict cubic-bezier() and light checks on steps()/linear().
  • Warnings through the feat(typography): fluid type checks for WCAG 1.4.4, static clamps, and a legibility floor #81 channel:
    • a duration over 300ms, or over 500ms in a settings.long group (modals, drawers);
    • ease-in and ease-in-shaped curves (slope below 1 at the start, above 1 at the end, so ease-in-out is not flagged).
  • uiEasings (out, inOut) is an exported preset and is never injected automatically.

Minor changeset, README section.

Deviations from #83:

  • The ease-in rule uses end slopes (slope below 1 at the start, above 1 at the end) instead of the issue's "x1 > 0 with y1 = 0". The issue's rule would flag ease-in-out. With the slope rule, cubic-bezier(0.42, 0, 0.9, 0.9) does not warn, while cubic-bezier(0.5, 0.2, 0.9, 0.5) does.
  • Motion tokens are referenced from primitives only. Theme variables resolve color paths only, which is already the case for spacing and typography.

🤖 Generated with Claude Code

@changeset-bot

changeset-bot Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 5ce98af

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
@hebilicious/cssforge Minor
@hebilicious/cssforge-unplugin Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@Hebilicious
Hebilicious added this pull request to stack #93 October 7, 2026 21:03
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
cssforge 5ce98af Commit Preview URL

Branch Preview URL
Oct 08 2026, 08:16 AM

@Hebilicious
Hebilicious force-pushed the feat/issue-83-motion branch 3 times, most recently from da55182 to b85936b Compare October 8, 2026 06:07
Hebilicious and others added 3 commits October 8, 2026 15:14
Add a motion module: duration and easing groups emitted as
--motion-duration-<group>-<name> and --motion-easing-<group>-<name>,
resolvable from primitives as motion.<kind>.<group>.<name>. Durations
and easing functions are validated at the boundary. A duration over
300ms (500ms with settings.long) and an ease-in shaped curve warn
through the diagnostics channel. goodCssEasings exports the two
recommended curves as an opt-in preset.

Closes #83

Co-Authored-By: Claude <noreply@anthropic.com>
Refs #83

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CSS Forge ships no other preset constants. The README shows the two
curves written out in a motion config instead.

Refs #83

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Hebilicious
Hebilicious force-pushed the feat/issue-83-motion branch from b85936b to 5ce98af Compare October 8, 2026 08:15
@Hebilicious
Hebilicious marked this pull request as ready for review October 8, 2026 08:24
@Hebilicious
Hebilicious merged commit f316382 into main Oct 8, 2026
9 checks 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.

feat(motion): motion tokens module with duration and ease-in checks

1 participant