Application
The root contract for building every solo-shape client without forking primitive behavior, naming, accessibility, responsive logic, or distribution rules.
The consumer boundary
The manager defines foundations, elements, and intrinsic layouts. Each application composes them into product UI.
- Shared:
--ss-*tokens,ss-*element roots, exports, behavior, accessibility, data-slot anatomy, responsive algorithms, and release metadata. - Client-selected: semantic color recipes, density, spacing choices, motion pace, content, information architecture, and compositions.
- Client-local: screens, workflows, cards, forms, navigation shells, and domain-specific components assembled from system elements.
- Prohibited: a client-owned substitute for a system element, unnamespaced global styling, or a runtime UI request to the manager.
When a client needs a primitive the current contract cannot express, that primitive is designed and proven here first. It reaches the client only in a new, pinned release.
Accessibility contract
Accessibility is element behavior, not application-by-application polish.
- Use native semantics first; composite widgets declare their roles and complete keyboard model.
- Every focusable element has a visible tokenized focus treatment and a deterministic focus destination.
- Disabled, invalid, loading, empty, and reduced-motion states are explicit in every applicable manifest.
- Status meaning survives grayscale through words, icons, borders, tone, and shape; color is never the only signal.
- Text and non-text contrast pairs are release-gated against the grayscale reference.
Responsive contract
Container constraints decide layout. Named devices are evidence points, not architecture.
- Elements size from their containing inline axis and declare wrapping, truncation, overflow, and transition behavior.
- Stack, Cluster, Grid, Center, Sidebar, and Switcher provide intrinsic layout algorithms before a client adds a custom media query.
- Proof covers continuous width samples, declared boundaries, browser engines, long content, low heights, and reduced motion.
- A layout is not approved merely because it matches one wide desktop screenshot.
Release and offline policy
Every consumer runs from local, observable, rollback-capable inputs.
- The public manager is https://ds.soloshape.com; it is documentation and a build-time artifact source, never a runtime CDN.
- Consumers vendor the exact release artifact, version, checksum, dependency declaration, and ownership marker into their own repository.
- CSS, fonts, icons, tokens, component behavior, and offline assets are bundled with the consuming application.
- Structural changes require a semver release and migration record. There are no silent live structural updates.
- Offline defaults never cache authentication, publish mutations, or sensitive application responses indiscriminately.
Change gate
A contract change is complete only when its documentation, implementation, evidence, and migration story agree.
- Define or amend the ID-first manifest and semantic tokens.
- Implement the smallest element or intrinsic layout primitive that satisfies the need.
- Add accessibility, long-content, responsive, and reduced-motion fixtures.
- Generate the self-contained versioned artifact and validate it in a clean consumer fixture.
- Run the complete release gate and publish only with explicit deployment authority.