What's new: Search, Motion & Attributes 0.9.0 extension
Beyond the published 0.9.0 release (docs generate, perf CLI, PII scanner), VelinStyle adds a central search system, a unified motion runtime, and declarative HTML attributes that bridge to existing Web Components.
Overview
| Feature | Location | Docs |
|---|---|---|
| VelinSearch | core/search/, <velin-search> | VelinSearch guide |
| Motion | core/motion/, initMotion() | Motion & attributes |
| Attributes | core/attributes/, bootFromDOM({ attributes: true }) | Attribute reference |
| Architecture | Tree-shakeable subpaths | Core modules |
New core/ modules
Small ESM packages inside the framework repo (also exported from npm):
@birdapi/velinstyle/search— offline JSON index, fuzzy query,registerSearchProvider()@birdapi/velinstyle/motion— IntersectionObserver + rAF scheduler, stagger, smooth scroll@birdapi/velinstyle/attributes— registry ofvelin-*attribute handlers (bridge to WCs)
See Core modules for file layout and design goals.
VelinSearch
Documentation header search on this site uses the same API. Build the index with velinstyle search index or npm run docs:generate in the framework repo.
npx velinstyle search index --out dist/search-index.json
Motion runtime
Replaces the split between velin-reveal.js (class .is-visible) and scroll-timeline-only CSS. Primary path: .velin-in-view + prefers-reduced-motion.
HTML attributes
25+ attributes such as velin-modal, velin-reveal, velin-code — no duplicate WC implementations; attributes lazy-load components via data-velin-component.
Generated Markdown: docs/generated/attributes/ (after npm run sync:generated).
Migration
initReveal()still works — delegates toinitMotion()- Site search:
doc-search.jsimports@birdapi/velinstyle/search(ES module) - Enable attributes:
bootFromDOM(document, { attributes: true })