Tracks this family from #3134 . Experimental @vizejs/ui workstream.
Outcome
Ship layout, typography, avatar, image, and first-class SVG primitives that stay lightweight and CSS-first.
Authoring contract
Public components are real .vue files. Handwritten render functions and JSX are not the public authoring model.
Generated compiler output stays an internal artifact.
Hover and completion must be enough to use the API without leaving the editor.
Keep runtime script small. Prefer native HTML, CSS, and platform APIs.
Extension is a first-class contract: parts, slots, CSS properties, and typed hooks.
Inventory
Aspect Ratio, Separator, Spacer, Stack, Cluster, Grid, Container
Resizable / Splitter: nested groups, persisted sizes, min/max, collapse, keyboard resize
Scroll Area, Scroll Bar, Scroll Shadow, Scroll Top, overscroll affordance
Card, Panel, Surface, Sheet, Hero, Item, List Item, description list
App Shell, master-detail, split view, breakpoints, safe areas, viewport segments
Typography: Heading, Text, Prose, Code, Kbd, Blockquote, List, truncation/clamp
Avatar, Avatar Group, Icon, Icon Button
Image, Image Compare, responsive picture
SVG root, sprite, inline SVG, accessible title/desc, currentColor, and icon composer
Dependencies
Depends on #4893 and #4894 . Charts are #4908 . Graphics scenes are #4912 .
Quality gates
This family is not done until it satisfies the parent definition of done in #3134 :
Canonical Vue SFCs with explicit <template>, <script setup lang="ts">, and scoped <style>
kebab-case filenames for every public source, test, story, and fixture
Every public prop, emit, slot, expose, CSS custom property, part, and data attribute documented; every option states @default
Literal types for props, emits, slots, expose, and useTemplateRef
Equivalent public contracts across DOM, SSR, and Vapor builds
WCAG 2.2 AA, WAI-ARIA APG, keyboard, pointer, touch, focus, and dismissal where applicable
LTR/RTL, locale, reduced motion, forced colors, and zoom
SSR, hydration, deterministic IDs, Teleport, Suspense, islands, and no request-global state
Colocated Vue Test Utils tests, Vitest browser-mode coverage, and Playwright visual regression
Musea stories covering states, slots, parts, and presets
Tree-shakable ESM subpath, exact sideEffects, and enforced bundle budgets
Headless by default; visual style arrives only through opt-in presets
Testbed notes
Container query and logical-property CSS for the Lightning CSS pipeline. SVG title/desc a11y tests. Splitter keyboard tests.
Out of scope
Charts and signature canvas belong in data and editing. Three/WebGPU scenes belong in next-gen.
Tracks this family from #3134. Experimental
@vizejs/uiworkstream.Outcome
Ship layout, typography, avatar, image, and first-class SVG primitives that stay lightweight and CSS-first.
Authoring contract
.vuefiles. Handwritten render functions and JSX are not the public authoring model.Inventory
Dependencies
Depends on #4893 and #4894. Charts are #4908. Graphics scenes are #4912.
Quality gates
This family is not done until it satisfies the parent definition of done in #3134:
<template>,<script setup lang="ts">, and scoped<style>@defaultuseTemplateRefsideEffects, and enforced bundle budgetsTestbed notes
Container query and logical-property CSS for the Lightning CSS pipeline. SVG title/desc a11y tests. Splitter keyboard tests.
Out of scope
Charts and signature canvas belong in data and editing. Three/WebGPU scenes belong in next-gen.