Foundations
Choose Tinyrack primitives, semantic roles, and component contracts in the order that keeps operational interfaces consistent.
Decision model
Use the system in one direction: primitive → semantic role → component contract. Primitive values supply material, semantic roles state intent across themes, and components turn those roles into reusable behavior. Product UI should normally enter at the semantic or component layer.
- Choose the relationship or meaning the interface needs.
- Select the matching semantic token or text/spacing recipe.
- Use the component contract, and override its
--tr-*hook only for a deliberate local exception.
Core principles
- Meaning before value. Choose
surface,text,primary, or a status role instead of a palette step. - Hierarchy before decoration. Establish scan order with type roles and spacing before adding color emphasis.
- Relationships stay visible. Tight gaps join details; larger gaps separate components, tasks, and sections.
- Components own behavior. Foundations supply shared decisions while components own interaction and accessibility.
One operational screen
Rack A
Cluster health
Load41%
Nodes12 / 12
Backup03
- Color assigns surface, content, action, and status meaning.
- Typography orders the label, heading, body, and metric.
- Spacing groups details, then separates the component from adjacent tasks.
- Component contracts supply button and badge behavior.
Four learning tracks
- Core visuals: Colors and themes, Typography, and Spacing.
- Layout and interaction: Responsive layout, Shape and boundaries, and Controls and states.
- Depth and behavior: Layers and elevation, Motion, and Accessibility.
- Delivery and identity: use the Tailwind reference, then choose the approved Logo and App icons.