v0.19.3 — preset merge + deprecation shim + font-dos fallback
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 oneidotter/tailwind.preset. font-dospreserves the DOS aesthetic under degraded loads. Restored themonospacefallback on thefont-dosutility — the stack is now"Flexi IBM VGA True", monospace. Surfaces that want fail-loud diagnostic behavior composefont-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.jsonexportskey set, and theexports ↔ files ↔ filesystempairing. 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 ↔ filesystempairing test block: catches the exact invariant whose violation caused the original regression in#282. CLAUDE.mdclarified that the entiredocs/directory is the Storybook build output; skill-generated content belongs atsolutions/,plans/,ideation/,.superpowers/, or.devjournal/instead.README.mdmigration callout for consumers upgrading from0.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-dosfallback restored (#289).[0.19.2]— Deprecated./tailwind.preset.enhancedalias (#283); staleADOPTION_STRATEGY.mdfixed.
Full diff: v0.19.1...v0.19.3