Three correctness fixes for the `vanilla-css` Tailwind target, each previously untested: 1. Preserve marker utilities. Utilities that produce no declarations (`group`, `peer`, `group/<name>`) were silently dropped when rewriting `className` to the semantic name, breaking every descendant `group-*` / `peer-*` variant. They're now kept on the element (`"play-button group"`), alongside any other class Tailwind doesn't recognize. 2. Flag class-name collisions. Two distinct elements that derive the same class name but resolve to different utilities would have their conflicting declarations silently merged into one rule (e.g. the forward/back `seek-icon`, buffering vs preview `spinner-icon`, current/duration `time-value`). The plugin now tracks a per-name utility signature and throws a fixable DiagnosticError on mismatch, while identical recurrences (repeated `Tooltip.Popup`) pass cleanly. 3. Emit referenced theme variables. The generated CSS referenced `var(--spacing)`, `var(--color-*)`, `var(--ease-*)` etc. with nothing defining them. `emitCss` now accepts a `resolveThemeVar` resolver (backed by `design.resolveThemeVar`) and emits a leading, transitively resolved theme block — scoped to the skin's hoist root when set — so the output resolves without a separate Tailwind theme on the page. Adds 11 tests (markers, collisions, theme emission incl. transitive, already-declared, scoped, and back-compat). Compiler suite: 169 passing. Note: `@property`-registered `--tw-*` slots (e.g. `--tw-content`) resolve to undefined and are left for a follow-up.
Video.js v10
Modern, modular, and composable media player framework for Web and React.
🚧 Beta - close to stable. Experimental adoption in real projects. 🚧
Video.js v10 is close to stable. Try it out in real projects and share your feedback 🙏.
- Read our design documents.
- Read the v10 discussion topic.
- Watch Heff's recent presentation.
Timeline
- Technical Preview (Complete): Initial showcase for Demuxed.
- Alpha (Complete): See milestone
- Beta (Complete): See milestone
- GA (Mid 2026): See milestone ← WIP
- Video.js (End of 2026): Video.js core/contrib parity and supported plugins migrated.
Documentation
If you'd like to get started and learn more, you can find our documentation on our website:
Community
If you need help with anything related to Video.js 10, or if you'd like to casually chat with other members:
Contributing
We'd love for you to join our community channels above and give us feedback! Feedback on any of the following would help us:
- Player skin designs
- Component structures and APIs
- Package structure and exports
- Repo, workspace, contributor guides
Please see our contributing guide for getting set up locally and making code or docs changes.
Code of Conduct
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.