Architecture and coexistence
v1 remains the stable product. vNext is an additive evolution and may become primary only after proving coverage, accessibility, consumption, and migration.
Coexisting lines
Section titled “Coexisting lines”| Line | State | Responsibility |
|---|---|---|
| v1 · Web CSS | Stable | Tokens, CSS, opt-in runtimes, the current catalog, and framework-agnostic consumption. |
| vNext | In development | Technology-specific documentation, native adapters, and a new behavioral base. |
vNext does not change v1 contracts silently. Each component must declare its availability by technology, and migration will be decided only with evidence from real consumption.
Repository responsibilities
Section titled “Repository responsibilities”ds-tis/├── css/ + js/ + docs/ + stories/ # stable v1├── apps/docs/ # Astro + Starlight├── packages/react/ # React adapter in development├── packages/angular/ # native Angular beta library├── packages/theme-schema/ # JSON contract├── packages/theme-engine/ # bridge to js/theme├── .storybook/ # v1 HTML/Vite├── .storybook-vnext/ # internal React/Vite validation└── .storybook-angular/ # isolated Angular validationFour outputs per component
Section titled “Four outputs per component”The DS does not seek one implementation or a winning provider. Each component may be delivered through four independent outputs:
| Output | Role | Distribution |
|---|---|---|
| HTML/CSS/JS | Framework-agnostic implementation and opt-in runtime | ds-tis package |
| Ark/Zag | Headless implementations by technology | dedicated adapters and releases |
| React · shadcn/Base UI | React source composed with shadcn and Base UI primitives | @tis shadcn registry |
| Angular | Native Angular library with Angular Aria/CDK when needed | local beta package @tis/angular |
All four share tokens, visual language, intent, and accessibility requirements. Source, dependencies, technical APIs, installation, and tests are not merged. An unavailable output remains visible as unavailable and never borrows another output’s code to simulate coverage.
Documentation choice
Section titled “Documentation choice”Every component page must allow the user to choose:
[ HTML/CSS/JS ] [ Ark/Zag ] [ React · shadcn/Base UI ] [ Angular ]The choice switches preview, installation, imports, API, example, dependencies, compatibility, limitations, and evidence. Shared design, usage, and accessibility content is not duplicated. Comparison measures parity and legitimate differences; it never removes an output.
Theme and tokens
Section titled “Theme and tokens”Theme JSON is the engine input, not a dump from a specific library.
@tis/theme-schema validates the configuration; @tis/theme-engine maps it to
CSS variables, contrast, radius, and typography.
The current file remains associated with v1. The future vNext library will be a controlled copy in a separate file. A plugin may apply validated JSON to the copy’s Variables, but it will not publish or update libraries automatically.
- Documentation foundation and Storybook.
- Ark/Zag output validated internally.
- React/shadcn/Base UI output validated through the registry.
- Native Angular output validated through package, Storybook, and a real consumer.
- Pilot component brief.
- Approved Figma spec and contract matrix.
- Separate implementation of authorized outputs.
- Parity, accessibility, and real consumption per output.
- Documentation selector exposing the real state of all four outputs.
- v1 × vNext comparison and promotion decision.