Skip to content

v0.19.3 — preset merge + deprecation shim + font-dos fallback

Choose a tag to compare

@CinimoDY CinimoDY released this 20 Apr 07:08
· 80 commits to main since this release
e5df41d

eiDotter 0.19.3 consolidates the Tailwind preset surface and restores defensive behavior that briefly slipped between 0.19.1 and main. Rolls up work from #282 (preset consolidation), #283 (deprecation shim), #285 (tests + doc hardening), and #289 (font-dos fallback restoration). No consumer action required.

Highlights

  • One Tailwind preset, not three. The base and enhanced presets are merged into a single generated eidotter/tailwind.preset. It ships all tokens + React Aria state variants + the animate plugin. No migration is needed for consumers on eidotter/tailwind.preset.
  • font-dos preserves the DOS aesthetic under degraded loads. Restored the monospace fallback on the font-dos utility — the stack is now "Flexi IBM VGA True", monospace. Surfaces that want fail-loud diagnostic behavior compose font-dos font-dos-fallback (the bare monospace utility remains unchanged).
  • Hardened against the regression class that motivated this release. New contract tests pin the preset shape, the shim's object identity and once-per-process warn, the package.json exports key set, and the exports ↔ files ↔ filesystem pairing. Future generator drift has to fail multiple tests to slip through.

Deprecation: eidotter/tailwind.preset.enhanced

The ./tailwind.preset.enhanced subpath is now a deprecated alias that re-exports ./tailwind.preset. It logs a one-time console.warn on load and will be removed in 0.21.0.

// tailwind.config.js
- presets: [require('eidotter/tailwind.preset.enhanced')]
+ presets: [require('eidotter/tailwind.preset')]

No behavior change — the merged preset already carries the React Aria state variants and animate plugin that the enhanced preset used to add.

font-dos vs font-dos-fallback

Two utilities with distinct intent:

Utility Stack Intent
font-dos "Flexi IBM VGA True", monospace Default — preserves DOS aesthetic when @font-face fails (strict CSP, web-fonts disabled, reader mode).
font-dos-fallback monospace Fail-loud diagnostic — surfaces font-loading failures explicitly.

Internal

  • 3 new contract test files (tailwind-preset, tailwind-preset-enhanced, package-exports) — 65 assertions total pinning the preset surface, shim behavior, and exports key set.
  • New exports ↔ files ↔ filesystem pairing test block: catches the exact invariant whose violation caused the original regression in #282.
  • CLAUDE.md clarified that the entire docs/ directory is the Storybook build output; skill-generated content belongs at solutions/, plans/, ideation/, .superpowers/, or .devjournal/ instead.
  • README.md migration callout for consumers upgrading from 0.19.1.
  • Regenerated Style Dictionary outputs (tokens.{css,js,json}, 5 × theme.*.css, tailwind.preset.cjs).

Changelog entries rolled into this release

  • [0.19.3]font-dos fallback restored (#289).
  • [0.19.2] — Deprecated ./tailwind.preset.enhanced alias (#283); stale ADOPTION_STRATEGY.md fixed.

Full diff: v0.19.1...v0.19.3