Chrome pack
A chrome pack ships the framing layer — headers, footers, navs, sticky bars, modals — that wraps every page in a build. Chrome packs are how you can give an entire site a distinctive "feel" without touching widget internals.
What you ship
my-chrome/
├── manifest.json
├── chrome/
│ ├── header-default.json
│ ├── header-mega-menu.json
│ ├── footer-utility.json
│ ├── nav-side-rail.json
│ ├── sticky-cart-bar.json
│ └── modal-shell.json
├── preview/
│ └── shells.png # 1200x630 multi-shell preview
└── README.md
Key contracts
- Composition over CSS. Chrome elements are declared as widget compositions, not raw HTML. The runtime renders them with the active theme tokens applied.
- Responsive defaults. Each shell declares its mobile collapse strategy (drawer, sticky-bottom, hamburger).
- Section-purpose aware. Headers honor the build's
nav-primarydeclaration; footers honornav-utility.
Scaffold
vincia create chrome-pack my-chrome
cd my-chrome
vincia preview
vincia publish --dry-run
Approval gates
1. Schema parse — every chrome JSON validates against the schema. 2. Mobile collapse — every shell ships a mobile_strategy declaration. 3. A11y landmarks — header/footer/nav each ship the right ARIA landmark. 4. Preview present — preview/shells.png exists and is ≤ 500 KB.
Where to learn more
- /foundations — the
KitPreset.chromeshape. - Examples — section libraries that ship matching chrome packs.