Every piece in one place.
A complete visual reference for building OpenSBC interfaces. Semantic CSS tokens, native HTML, and a little vanilla JavaScript for the working examples.
Foundations
The stable token API beneath every component. Change one layer and the whole system follows.
Color system
semantic / light / darkTypography scale
typeDisplay
Heading one
Heading two
Heading three
Body paragraph with normal line height.
Caption and metadata
Overline
Spacing scale
space.1 to space.20Border radius
none / sm / md / lg / fullShadow / Elevation
low to modalZ-index stacking context
100 to 1000Breakpoints
responsiveMotion / Transition tokens
100 / 180 / 320msLayout and structure
Small primitives for arranging pages, tools and workspaces.
Box / Fragment
primitiveContainer
sm / md / lgStack
vertical / horizontalGrid
columns / spans / gapDivider
horizontal / vertical / textAspect ratio
16:9 / 4:3 / 1:1Scroll container
horizontal / viewport / virtualized-readyData input
Controls for forms, creator workflows and product interfaces.
Button / Icon button / Button group / Loading button
solid / outline / ghost / destructive / link / sm / md / lgText input / Label
icons / helper / error / requiredTextarea
auto-resize-readyNumber input
step controlsSelect
native / custom / async / multi-select tagsCheckbox / Radio / Switch
individual / groups / cards / indeterminateSlider / Range
single / dual / vertical / marksFile upload / Dropzone
drag / validation / previewColor picker
hex / RGB / swatches / eyedropperDate picker / Date range picker / Time picker
day / month / year / 12h / 24hPhone / Country input
flag / masksOTP / PIN input
auto-focusRating / Stars
star / heart / emoji / half-starCombobox / Autocomplete
free text / suggestionsForm / Fieldset / Legend / Error summary
validation scope / framework wrapper anatomyData display
Readable primitives for people, assets, metrics, activity and large datasets.
Typography
H1-H6 / paragraph / small / caption / overlineExperience overview
Performance
Server health
Current allocation
Paragraph for longer explanations.
Updated 30 seconds agoTable / Data grid / Advanced table
striped / hover / sticky / sort / filter / resize / select| Asset ↕ | Type | Status | Updated | |
|---|---|---|---|---|
| Town square | World | Ready | 2 min ago | |
| Blue hoodie | Clothing | Processing | 8 min ago | |
| Runner | Animation | Ready | Yesterday |
List
ordered / unordered / actionable / insetCard
header / footer / media / interactiveBlocktown
Avatar
image / initials / fallback / group / badgeBadge / Chip / Tag
dismissible / clickable / outline / dotStatistic / Metric
trend up / down12,482
↑ 8.4%14
↑ 3Timeline
vertical / marker states- Build queued
18:02
- Assets packaged
18:04
- Release published
18:05
Tree view
nested / collapsible / checkboxWorkspace
Assets
- Models
- Textures
Calendar / Agenda
month / week / day / eventsImage
skeleton / fallback / object-fitVideo / Audio
controls / posterMasonry
dynamic columnsFeedback and overlays
Clear interruption levels, from inline status to modal decisions.
Alert / Banner
success / warning / error / info / dismissibleYou can leave this page.
The release is live.
Review unused assets.
Open the log for details.
Toast / Snackbar / Notification
floating / auto-dismiss / actionShare it with your team.
blue-hoodie.glb is ready.
Modal / Dialog
basic / confirmation / full-screen / focus trap anatomyDrawer / Off-canvas / Sheet
left / right / top / bottomAsset details
Contextual settings.
Tooltip / Popover
top / right / bottom / left / rich contentPublish this build?
Progress
linear / indeterminate / buffer / circularSkeleton / Placeholder / Spinner / Loader
text / avatar / card / shimmerEmpty state
illustration / heading / action CTANo experiences yet
Create your first world.
Error boundary
JSX failure fallback anatomyThis panel crashed
The rest of the page still works.
Surfaces and containers
Structured ways to group, reveal and switch larger pieces of content.
Accordion / Collapse
single / multiple / chevronWebsite
Runtime
Renderer
Disclosure
show / hide without animationShow advanced settings
Card deck
equal height gridWebsite
Community-facing pages.
Editor
Tools for building worlds and publishing assets.
Runtime
Authoritative servers.
Carousel / Slider
loop / autoplay / thumbnails / arrowsTabs panel
switching / lazy-loading anatomy<os-world name="Blocktown">Sheet
mobile bottom drawerPublish experience
Choose who can access this build.
Advanced and composite
Large tools assembled from the same tokens and primitives. These CSS-first demos define their anatomy and states.
Rich text editor / WYSIWYG
toolbar / editable contentRelease notes
Write an update.
Markdown renderer
live preview / syntax highlighting anatomyHello world
A bold update.
Code editor
line numbers / Monaco or CodeMirror frame2
3
4
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
print(player.Name)
end)Drag-and-Drop / Sortable / Kanban
list / grid / columnsCommand palette / KBar
Spotlight search / keyboard shortcutsCommands
Tour / Onboarding coachmark
spotlight / stepsStep 2 of 4
Publish when readyThis creates an immutable build.
Infinite scroll
load-more thresholdVirtualized list / Window
visible rows onlyNested dropdown / Mega-menu
cascading / multi-columnSignature pad
drawing canvasQR code generator
scannable output anatomyUtility helpers
Component-adjacent contracts for a later SolidJS implementation.
Portal
data-os-portalMoves overlays to a root layer.
Transition / AnimatePresence
data-os-enter / exitMount and unmount motion states.
Focus Trap
data-os-focus-trapKeeps keyboard focus inside a modal.
Visually Hidden / Screen Reader Only
.sr-onlyLabels without visible layout.
Screen Reader Text / Read-aloud
aria-live / speechSynthesisAnnouncements and optional speech.
Polymorphic Component / as prop
data-os-as="a"HTML-first future component contract.
Click Outside / UseOutsideClick
data-os-outside-closeDismisses popovers and menus.
UseMediaQuery / UseBreakpoint
--breakpoint-*CSS values mirrored into matchMedia.
UseId
crypto.randomUUID()Stable labelling relationships.
UseClipboard
navigator.clipboardCopy with status feedback.
UseLocalStorage
localStoragePersistent client preferences.
UseSessionStorage
sessionStorageShort-lived per-tab state.