# RandomCodeSpace Design System
> Strongly-typed React component library — 58 components across 9 categories (51 core + 7 charts). Bricolage Grotesque on Cod Gray, Signal Red accent, single CSS file, zero core runtime deps. Built for self-hosted developer tooling.
## Install
```bash
npm install @ossrandom/design-system
# or, from GitHub Packages mirror (different scope):
npm install @randomcodespace/design-system
```
Charts ship at the `@ossrandom/design-system/charts` subpath and pull heavier peer deps (`uplot`, `d3-hierarchy`, `cytoscape`, `@deck.gl/core` + `@deck.gl/layers`). Install only the ones the charts you render require — see the Charts section below.
## Usage
```tsx
import { ThemeProvider, Button, toast } from "@ossrandom/design-system";
import { Chart, ServiceMap } from "@ossrandom/design-system/charts";
import "@ossrandom/design-system/styles.css";
```
## Components
### Theme
- [ThemeProvider](https://randomcodespace.github.io/design-system/docs/ThemeProvider/) — 4 props
- [useTheme](https://randomcodespace.github.io/design-system/docs/useTheme/) — hook
### Layout
- [Card](https://randomcodespace.github.io/design-system/docs/Card/) — 10 props
- [Space](https://randomcodespace.github.io/design-system/docs/Space/) — 7 props
- [ScrollDiv](https://randomcodespace.github.io/design-system/docs/ScrollDiv/) — 9 props
- [Divider](https://randomcodespace.github.io/design-system/docs/Divider/) — 3 props
- [Grid](https://randomcodespace.github.io/design-system/docs/Grid/) — 3 props
- [PageHeader](https://randomcodespace.github.io/design-system/docs/PageHeader/) — 8 props
- [AppShell](https://randomcodespace.github.io/design-system/docs/AppShell/) — 6 props
### Buttons & actions
- [Button](https://randomcodespace.github.io/design-system/docs/Button/) — 11 props
- [IconButton](https://randomcodespace.github.io/design-system/docs/IconButton/) — 3 props
- [ButtonGroup](https://randomcodespace.github.io/design-system/docs/ButtonGroup/) — 4 props
### Forms & inputs
- [Input](https://randomcodespace.github.io/design-system/docs/Input/) — 14 props
- [NumberInput](https://randomcodespace.github.io/design-system/docs/NumberInput/) — 7 props
- [PinInput](https://randomcodespace.github.io/design-system/docs/PinInput/) — 6 props
- [Textarea](https://randomcodespace.github.io/design-system/docs/Textarea/) — 4 props
- [Select](https://randomcodespace.github.io/design-system/docs/Select/) — 10 props
- [Combobox
extends Omit, "value" | "defaultValue" | "onChange">](https://randomcodespace.github.io/design-system/docs/Combobox/) — 6 props
- [Checkbox](https://randomcodespace.github.io/design-system/docs/Checkbox/) — 7 props
- [RadioGroup](https://randomcodespace.github.io/design-system/docs/RadioGroup/) — 7 props
- [Switch](https://randomcodespace.github.io/design-system/docs/Switch/) — 7 props
- [Slider](https://randomcodespace.github.io/design-system/docs/Slider/) — 10 props
- [DatePicker](https://randomcodespace.github.io/design-system/docs/DatePicker/) — 8 props
- [DateRangePicker](https://randomcodespace.github.io/design-system/docs/DateRangePicker/) — 3 props
- [FileUpload](https://randomcodespace.github.io/design-system/docs/FileUpload/) — 7 props
- [FormField](https://randomcodespace.github.io/design-system/docs/FormField/) — 7 props
### Data display
- [Badge](https://randomcodespace.github.io/design-system/docs/Badge/) — 6 props
- [StatusDot](https://randomcodespace.github.io/design-system/docs/StatusDot/) — 3 props
- [Table](https://randomcodespace.github.io/design-system/docs/Table/) — 3 props
- [Stat](https://randomcodespace.github.io/design-system/docs/Stat/) — 5 props
- [Avatar](https://randomcodespace.github.io/design-system/docs/Avatar/) — 6 props
- [Timeline](https://randomcodespace.github.io/design-system/docs/Timeline/) — 2 props
### Navigation
- [Tabs](https://randomcodespace.github.io/design-system/docs/Tabs/) — 6 props
- [Menu](https://randomcodespace.github.io/design-system/docs/Menu/) — 5 props
- [Breadcrumb](https://randomcodespace.github.io/design-system/docs/Breadcrumb/) — 3 props
- [Pagination](https://randomcodespace.github.io/design-system/docs/Pagination/) — 8 props
- [Steps](https://randomcodespace.github.io/design-system/docs/Steps/) — 5 props
### Feedback
- [Alert](https://randomcodespace.github.io/design-system/docs/Alert/) — 7 props
- [Modal](https://randomcodespace.github.io/design-system/docs/Modal/) — 9 props
- [Drawer](https://randomcodespace.github.io/design-system/docs/Drawer/) — 2 props
- [Progress](https://randomcodespace.github.io/design-system/docs/Progress/) — 6 props
- [Skeleton](https://randomcodespace.github.io/design-system/docs/Skeleton/) — 5 props
- [Spin](https://randomcodespace.github.io/design-system/docs/Spin/) — 3 props
- [Tooltip](https://randomcodespace.github.io/design-system/docs/Tooltip/) — 4 props
- [toast](https://randomcodespace.github.io/design-system/docs/toast/) — 0 props
- [ToastRegion](https://randomcodespace.github.io/design-system/docs/ToastRegion/) — 0 props
### Content
- [Chat](https://randomcodespace.github.io/design-system/docs/Chat/) — 4 props
- [CodeBlock](https://randomcodespace.github.io/design-system/docs/CodeBlock/) — 8 props
- [Markdown](https://randomcodespace.github.io/design-system/docs/Markdown/) — 4 props
- [Terminal](https://randomcodespace.github.io/design-system/docs/Terminal/) — 7 props
- [RichTextEditor](https://randomcodespace.github.io/design-system/docs/RichTextEditor/) — 8 props
### Charts (subpath)
Subpath: `@ossrandom/design-system/charts`
- [Chart](https://randomcodespace.github.io/design-system/docs/Chart/) — 10 props
- [Sparkline](https://randomcodespace.github.io/design-system/docs/Sparkline/) — 7 props
- [Donut](https://randomcodespace.github.io/design-system/docs/Donut/) — 7 props
- [RadialGauge](https://randomcodespace.github.io/design-system/docs/RadialGauge/) — 6 props
- [UptimeBar](https://randomcodespace.github.io/design-system/docs/UptimeBar/) — 5 props
- [Treemap](https://randomcodespace.github.io/design-system/docs/Treemap/) — 6 props
- [ServiceMap](https://randomcodespace.github.io/design-system/docs/ServiceMap/) — 6 props
## Tokens
Strongly-typed unions exposed as TypeScript types and CSS custom properties:
- `BrandColor` = | "signal-red" // #E60000 — primary action, live state, errors | "signal-red-…
- `SemanticColor` = | "success" // green-ish via signal-red? we use mono — runtime cod-gray w/ fi…
- `ThemeMode` = "light" | "dark"
- `SpaceSize` = "xs" | "sm" | "md" | "lg" | "xl" | number
- `Radius` = "none" | "sm" | "md" | "lg" | "pill" | "circle" | number
- `Shadow` = "none" | "sm" | "md" | "lg" | "overlay"
- `FontFamily` = "sans" | "mono"
- `FontWeight` = 400 | 500 | 600 | 700
- `TypeScale` = | "display-xl" | "display-lg" | "display-md" | "h1" | "h2" | "h3" | "h4" | "b…
- `Size` = "xs" | "sm" | "md" | "lg"
- `Density` = "comfortable" | "default" | "compact"
- `Direction` = "horizontal" | "vertical"
- `Axis` = "x" | "y" | "both"
- `Align` = "start" | "center" | "end" | "baseline" | "stretch"
- `Justify` = "start" | "center" | "end" | "between" | "around" | "evenly"
## Optional
- [Full API reference (every prop signature + example)](https://randomcodespace.github.io/design-system/llms-full.txt)
- [Live docs with previews](https://randomcodespace.github.io/design-system/docs/)
- [Playground](https://randomcodespace.github.io/design-system/docs/playground/)
- [Source code](https://github.com/RandomCodeSpace/design-system)