A comprehensive documentation of the Soroush Design System — scalable components, strict structural consistency, and production-grade developer experience.
A temporary panel that slides in from a screen edge, built on Modal — portal, backdrop, focus trap, scroll lock, and Escape/backdrop-click close are inherited.
User image, initials, or icon in a consistently sized container. Three shapes (circular, rounded, square), four preset sizes, optional ring outline, and an automatic image-error fallback chain.
ButtonGroup joins Button children into one cluster and broadcasts variant/color/size via context. ToggleButtonGroup adds selection state — exclusive here, so re-clicking clears it.
Checkbox, Radio, and Switch are all label-wrapped native inputs. Checkbox supports indeterminate state. Radio enforces group exclusivity via name. Switch transitions are CSS-only.
Select renders a combobox trigger with a themeable portaled listbox of MenuItem options. NativeSelect is the real-<select> counterpart with the same Form/FormControl integration.
Form provides field-wide defaults via context; Field bridges to TanStack Form and composes FormControl, FormLabel, and FormHelperText — shown standalone below in the error state.
INTERACTIVE_COLOR_SIZEButton, Checkbox, Switch, and TextInput across all palette colors and all three sizes.Colors
The horizontal counterpart of CircularProgress. Value-driven rows follow a shared 10s loop; spinning sends the value segment travelling along the track, wrapping past the end.
Loading placeholders in three shapes. pulse fades opacity so mixed sizes stay in lockstep; wave anchors its shimmer to the viewport. REAL_LOAD is the loaded post the skeletons stand in for.
The low-level overlay primitive — portals its content, dims the page with a Backdrop, traps focus, locks body scroll, and closes on Escape or backdrop click.
Anchors floating content to an element, portaled above the page. Built on Modal, so backdrop, focus management, and Escape/click-away close come for free.
Cookie-Free by Design. The only cookies we like are the ones that come fresh from the oven.