# rawblock-ui
**Repository Path**: uyevan/rawblock-ui
## Basic Information
- **Project Name**: rawblock-ui
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-06-04
- **Last Updated**: 2026-06-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# RawBlock
Brutalist UI Component Library — **0px radius**, thick black borders, zero shadows, full color inversions.
**50 components, zero dependencies.** Just CSS + ~50KB of vanilla JS.
```bash
npm install rawblock-ui
```
## Quick Start
```js
import 'rawblock-ui/rawblock.css'
import RB from 'rawblock-ui'
```
Or via CDN:
```html
```
## What's New in v3.0
v3.0 is a major enhancement to 15 core components with real working functionality:
- **Button**: ripple effect, loading state, button groups
- **Input**: clear button, password toggle, char counter, validation states
- **Checkbox**: indeterminate state, card variant, `RB.checkboxGroup()` for select-all
- **Radio**: card variant
- **Toggle**: 3 sizes (sm / md / lg)
- **Calendar**: real month/year navigation, range selection, keyboard nav (arrows / PageUp / PageDown / Home / End), today highlight, min/max constraints
- **Date Picker** (NEW): single / range modes, auto-flip popup
- **Time Picker** (NEW): scroll wheels, 12h / 24h formats
- **Search Bar**: debounced, with results dropdown, keyboard nav
- **Command Palette** (NEW): `⌘K` / `Ctrl+K` global shortcut, fuzzy search, categories, recents
- **Tooltip**: 4 positions, viewport-aware auto-shift, focus support, light variant
- **Modal**: focus trap, body scroll lock, ESC close, 5 sizes, side drawers (`bottom` / `right` variants)
- **Drawer**: focus trap, body scroll lock, ESC
- **Toast**: types (success / error / warning / info), action button, progress bar, pause-on-hover, queue
- **Searchable Select** (NEW): single / multi modes, fuzzy search, keyboard nav
## Components
| # | Component | Class | JS |
|---|---|---|---|
| 1 | Typography | `.rb-h1`–`.rb-h4`, `.rb-mono`, `.rb-link` | — |
| 2 | **Button** | `.rb-btn`, variants + ripple + groups | ✓ |
| 3 | **Input** | `.rb-input` + clear, pwd, counter, validation | ✓ |
| 4 | Textarea | `.rb-textarea` | — |
| 5 | Select | `.rb-select` | — |
| 6 | **Searchable Select** | `data-select-search` | ✓ |
| 7 | **Checkbox** | `.rb-checkbox`, card, indeterminate | ✓ |
| 8 | **Radio** | `.rb-radio`, card variant | — |
| 9 | **Toggle** | `.rb-toggle`, 3 sizes | — |
| 10 | Card | `.rb-card`, `-elevated`, `-interactive` | — |
| 11 | Tabs | `.rb-tabs` | ✓ |
| 12 | Breadcrumb | `.rb-breadcrumb` | — |
| 13 | Pagination | `.rb-pagination` | — |
| 14 | Accordion | `.rb-accordion` | ✓ |
| 15 | **Modal** | `.rb-modal`, 5 sizes + focus trap + dynamic API | ✓ RB.openModal/closeModal |
| 16 | **Tooltip** | `.rb-tooltip`, 4 positions, 5 variants, rich content, delay | ✓ |
| 17 | **Table** | `.rb-table`, striped/hover/sortable/sticky/compact/bordered/row-select+multi/status cell/numeric/action col/pagination | ✓ |
| 18 | **List** | `.rb-list`, bordered/hoverable/selectable+multi/ordered/with-icons/media/status/grouped/sizes + kbnav | ✓ |
| 19 | **Avatar** | `.rb-avatar`, 6 sizes + 3 shapes + initials + status dot + badge overlay + stacked group | ✓ |
| 20 | Badge | `.rb-badge` | — |
| 21 | Progress | `.rb-progress`, indeterminate | — |
| 22 | **Progress Circle** | `.rb-progress-circle`, SVG | ✓ |
| 23 | Skeleton | `.rb-skeleton` | — |
| 24 | Divider | `.rb-divider` | — |
| 25 | Alert | `.rb-alert` | — |
| 26 | **Toast** | `.rb-toast`, 4 types + queue | ✓ RB.toast() |
| 27 | Dropdown | `.rb-dropdown` | ✓ |
| 28 | Slider | `.rb-range` | ✓ |
| 29 | **Dual Range** | `.rb-range-double` | ✓ |
| 30 | Stepper | `.rb-steps` | — |
| 31 | File Input | `.rb-file-input` | ✓ |
| 32 | **Code Block** | `.rb-code`, syntax highlight | ✓ |
| 33 | **Drawer** | `.rb-drawer` | ✓ |
| 34 | **Spinner** | `.rb-spinner-*` | — |
| 35 | **Rating** | `.rb-rating` | ✓ |
| 36 | **Notification Badge** | `.rb-notif-wrap` | — |
| 37 | **Timeline** | `.rb-timeline` | — |
| 38 | **Empty State** | `.rb-empty` | — |
| 39 | **Stats** | `.rb-stat` | — |
| 40 | **Keyboard Key** | `.rb-kbd` | — |
| 41 | **Popover** | `.rb-popover` | ✓ |
| 42 | **Banner** | `.rb-banner` | ✓ |
| 43 | **Card Grid** | `.rb-card-grid` | — |
| 44 | **Search Bar** | `.rb-search` | ✓ |
| 45 | **Calendar** | `.rb-calendar` | ✓ |
| 46 | **Navigation Bar** | `.rb-navbar` | ✓ |
| 47 | **Footer** | `.rb-footer` | — |
| 48 | **Sidebar** | `.rb-sidebar` | — |
| 49 | **Pricing Card** | `.rb-price-card` | — |
| 50 | **Tag Input** | `.rb-tag-input` | ✓ |
**Bold** = enhanced or added in v3.0.
## Usage Examples
### Button (with ripple + loading)
```html
```
### Input (with clear, counter, password toggle)
```html
Required
```
### Modal (focus trap + scroll lock)
```html