# Bref-UI
Minimal Svelte 5 UI component library. Scoped CSS, no dependencies, batteries-included theming.
Install: `npm|bun|pnpm install bref-ui`
Import: `import { Button, Icon, TextInput, TreeView, Pill, Theme } from 'bref-ui';`
## Types
```ts
type Size = 'x-small' | 'small' | 'medium' | 'large' | 'x-large'
type Color = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info' | 'foreground' | 'background'
type Variant = 'filled' | 'soft' | 'ghost'
type Speed = 'slow' | 'normal' | 'fast'
```
---
## Theme
Generates CSS custom properties for theming. Add at app root.
**Props:**
- `paletteHex`: { primary, secondary, success, warning, danger, info: string }
- `surfaceHex`: { background, foreground: string }
- `border`: { widthPx: number, radiusRem: number, colorHex: string }
- `spacingRem`: number
```svelte
```
---
## Button
Versatile button with variants, colors, sizes, optional icon.
**Props:**
- `label`: string (required)
- `onClick`: () => void (required)
- `size?`: Size
- `color?`: Color
- `variant?`: Variant
- `disabled?`: boolean
- `wide?`: boolean
- `icon?`: { name: IconName, filled?: boolean }
```svelte