DS
Premium Docs

Design System Showroom

Published-package documentation wired to the real DS runtime so the same routes reveal how tenant and engine reshape identical component contracts.
Rottay / modern
Published package
Primary
#0A0A0A
Rottay
Radius
14px
Surface shape
DensitynormalPlatform Flagship
NavigatorLibrary map
8 sections
212 routes
Foundations first, then primitives, patterns, structures, and surfaces. Keep this rail legible enough to scan without hunting.
Foundations4 documented routes
4
Tokens
Themes
Engines
Icons
109
97
48
Data
Forms
Visualization
Communication
Workflow
Navigation
Misc
21
Headers
Workspace
Record
Dashboard
Feedback
36
Admin
Data
Experience
Forms
Operations
Workspace
3
Platform
Bit Hire
Evnto
1
Playground
2
Developers
Runtime fingerprintToken readout from the active provider chain.
Live DS
Runtime
Platform
Rottay
Rottay / ModernPlatform Flagship
Primary
#0A0A0ASecondary #6B6B6B
Radius
14pxxl 18px
Density
normalBorder-light cards
Accent
Badge
Compact runtime evidence across 3+ token signals.
Published DS package · Component Layer · Rottay / modernShared route metadata for the active runtime, kept inline so the shell reads like a thin header band.
Palette
#0A0A0ARottay
Chrome
Modernrenderer posture
Radius
14pxsurface shape
Density
normalPlatform Flagship
Primitives
Inputs
Button

Button

Active profilePlatform Flagship
Runtime postureRottay / modern
Primitives reference for Button.
Runtime controls
TenantRottay
Reference summaryClickable action trigger with multiple variantsInput primitives should make capture, editing, and validation feel trustworthy at speed.
How to read this pageUse the showroom switchers in the sidebar to change engine and tenant, then judge this primitive in the live preview before styling around it locally.
At a glanceThe meta cards below are the quickest read on how this primitive behaves across the current runtime.
Tier
PrimitiveThe lowest reusable UI contract.
Category
InputsInteractive controls that carry most of the UX friction if they are under-designed.
Best paired with
form buildersEscalate to patterns or surfaces when workflow logic starts dominating.
Use it when
PrimitivesCurrent section
Display
Inputs
Auto Complete
Button
Cascader
Checkbox
Color Picker
Date Picker
Form
Form Field
Input
Input Number
Mentions
OTPInput
Password Input
Radio
Select
Slider
Switch
Tag Input
Textarea
Time Picker
Toggle
Transfer
Tree Select
Upload
Voice Input Button
Feedback
Layout
Navigation
Overlay
Patterns48 documented routes
Structures21 documented routes
Surfaces36 documented routes
Verticals3 documented routes
Playground1 documented routes
Developers2 documented routes
roundedtop bar · solid dividers
EngineModern
capturing structured data
filtering collections
triggering actions
Review checklist
focus states
validation
keyboard ergonomics
Common pairings
form builders
toolbars
command surfaces
Live preview

Compare the same primitive across engines

Sidebar controls drive this
Button
This is the primary runtime verification surface for the component. Engine and tenant changes should land in the rendered DS primitive itself, not in showroom-local wrapper styling.
Preview heuristics
Compare hierarchy, spacing, and interaction feedback before any page-level styling.
The rendered primitive should carry the engine and tenant differences by itself.
If it only looks right inside local wrapper chrome, the primitive or preview needs more work.
Engine comparisonEngine comparisonThe active tenant stays real while the same component is rendered by every engine. The wrapper stays intentionally quiet so engine differences come from the DS itself.
Rottay
3 live engines
Same tenant, isolated engine
ClassicAnt Design
Live provider
ModernDaisyUI
Live provider
Consumption

Import and usage

Keep the primitive contract visible. These snippets are meant to help teams consume the base component before they wrap or escalate it.Browse all Inputs
Adoption postureStart with Button, not a wrapperImport directly from the design system package, verify the base behavior across 3 engines here, and only wrap when workflow logic starts repeating.
The primitive should stay legible before any page-specific chrome is layered on top.
Usage notes
Import directly from the design system package and keep composition simple first.
Use category-appropriate props before creating wrapper APIs that hide the base contract.
Escalate to patterns or surfaces only when workflow logic clearly outweighs local UI concerns.
Published entrypoint@rottay/design-systemUse the shared package surface as the default import path for Button. It keeps adoption readable and future extraction work straightforward.
Base tier: Inputs
API surface

Props

Curated reference for fast browsing. Verify edge-case props against the source until this table is extracted directly from the DS.
Reference scan6 documented props1 required and 5 optional rows are listed here so teams can review the contract without digging through source immediately.
Confirm uncommon edge cases against the component implementation until this table is extracted automatically.
Reference disciplineThe table below is tuned for quick scanning in docs. For unusual composition or engine-specific behavior, treat the DS source as the final authority.
Button propsProp contracts stay readable across dark-first and light-first tenants.
6 props
1 required
5 optional
Fast readStart with required props, then scan defaults before dropping to per-row details.
Contract postureThis reference stays intentionally concise so the primitive contract remains scannable.
Name
Optional
Optional
Optional
Required
Optional
Optional
Related components

Continue within Inputs

If Button is close but not quite right, scan nearby primitives in the same tier before jumping to a heavier surface or pattern abstraction.Browse all Inputs
Next moveStay within Inputs firstCategory siblings usually solve adjacent states while preserving the same primitive contract level and runtime expectations.
Escalate to patterns or surfaces only when the interaction model itself changes.
Also in Inputs3 engines
AutoCompleteText input with suggestion dropdown
Peer primitive within the same category set.Open detail
Also in Inputs3 engines
CascaderMulti-level cascading dropdown selector
Peer primitive within the same category set.Open detail
CheckboxBoolean or group selection control
InputButton
3 live engines
Live DS output
Runtime fingerprint
Runtime
PlatformRottay
Rottay / ModernPlatform Flagship
Primary
Radius
Density
Accent
Badge
Motion
Compact runtime evidence across 2+ token signals.
Note
Check focus, affordance, and whether the control still feels trustworthy when styling shifts.
InputButton
3 live engines
Live DS output
Runtime fingerprint
Runtime
Platform
Rottay
Primary
Radius
Density
Accent
Badge
Motion
Compact runtime evidence across 2+ token signals.
Note
Check focus, affordance, and whether the control still feels trustworthy when styling shifts.
RusticVanilla CSS
Live provider
InputButton
3 live engines
Live DS output
Note
Check focus, affordance, and whether the control still feels trustworthy when styling shifts.
EntrypointKeep imports directReach for the published DS export first so teams can read the contract at a glance.
ImportPublished package entrypoint, ready to copy.
tsx
1 line
Consumption
Runtime-aware snippet
ImportTSX
Quick copy
import { Button } from '@rottay/design-system';
Baseline exampleStart with ButtonUse the smallest valid composition first, then layer in product-specific wrappers only when the workflow truly needs them.
UsagePaste-ready example that shows the base contract first.
tsx
3 lines
Consumption
Runtime-aware snippet
<Button variant="primary" size="md">
  Create tenant
</Button>
Type
Default
Required
Description
variant
'primary' | 'secondary' | 'default' | 'ghost'
'default'
Controls emphasis and visual intent for the action.
size
'sm' | 'md' | 'lg'
'md'
Adjusts touch target, typography, and spacing.
loading
boolean
false
Replaces the label with a pending treatment while work is in flight.
children
ReactNode
none
Visible button label or content.
className
string
none
Additional class names for product-specific extension points.
style
CSSProperties
none
Inline overrides for advanced composition or one-off layout tweaks.
variant
Optional
'primary' | 'secondary' | 'default' | 'ghost''default'
Controls emphasis and visual intent for the action.
size
Optional
'sm' | 'md' | 'lg''md'
Adjusts touch target, typography, and spacing.
loading
Optional
booleanfalse
Replaces the label with a pending treatment while work is in flight.
children
Required
ReactNodenone
Visible button label or content.
className
Optional
stringnone
Additional class names for product-specific extension points.
style
Optional
CSSPropertiesnone
Inline overrides for advanced composition or one-off layout tweaks.
Also in Inputs3 engines
Peer primitive within the same category set.Open detail
Also in Inputs3 engines
ColorPickerColor selection with palette and custom input
Peer primitive within the same category set.Open detail
#0A0A0ASecondary #6B6B6B
14pxxl 18px
normalBorder-light cards
roundedtop bar · solid dividers
springHover lift 2px
Rottay / ModernPlatform Flagship
#0A0A0ASecondary #6B6B6B
14pxxl 18px
normalBorder-light cards
roundedtop bar · solid dividers
springHover lift 2px
Runtime fingerprint
Runtime
Platform
Rottay
Rottay / ModernPlatform Flagship
Primary
#0A0A0ASecondary #6B6B6B
Radius
14pxxl 18px
Density
normalBorder-light cards
Accent
Badge
Motion
Compact runtime evidence across 2+ token signals.
UsageTSX
Quick copy
roundedtop bar · solid dividers
springHover lift 2px