Castra Labs Design System

v4 · the ui lane, rendered from the registry's own source

Theme

Button

Six variants. Disabled is three roles, never opacity.

Button sizes

The lane has two control heights by design; xs and lg resolve to the nearest rather than inventing a third — a control below 28px would breach the target window.

Badge

defaultsecondaryoutlineghostdestructivelink

Input and Label

34px control, 2px radius, one lane-wide focus ring.

Card

Monthly report
Generated on the first of the month.

The title above reads in the display face, not the interface one — that is cn-font-heading, which had no rule until #11.

Skeleton

A pulse between two solved grounds. The usual idiom animates opacity, which the window forbids.

Table

Rows take the sunken ground on hover; cells are separated by a hairline, not a shadow.

Four consumers, two of which were dropped in #18.
RepositorySurfaceNotify
nexus-platformportalfalse
castralabs-comwebfalse
2 consumers0 notified

Tabs

Two list variants. The line variant has to be able to remove the pill ground — until #30 its bg-transparent utility lost a specificity tie and both variants rendered identically.

default variant — the pill ground
line variant — no ground

Dialog

The close button is pinned to the corner with logical properties, so it follows the writing direction.