# Rokkit UI Component Library > Data-driven, accessible UI components for Svelte 5 Rokkit is a component library built around the principle that **data should drive the interface**. Components adapt to any data structure via field mapping — no transformation required. All selection components share a consistent API: `options`/`items`, `value`, `fields`, callbacks. ## Packages | Package | Description | |---------|-------------| | `@rokkit/ui` | Main UI components (30+ components) | | `@rokkit/forms` | Dynamic form generation from JSON schema | | `@rokkit/states` | State management (ProxyItem, ProxyTree, Wrapper, ListController, NestedController) | | `@rokkit/actions` | Svelte actions (navigator, hoverLift, magnetic, ripple) | | `@rokkit/core` | Core utilities and field mapping | | `@rokkit/data` | Data manipulation utilities | | `@rokkit/themes` | CSS themes (rokkit, minimal, material) | | `@rokkit/icons` | Icon system with Iconify integration | ## Quick Start ```svelte ``` ## Standard API Pattern Most selection components share this pattern: ```svelte bind:value fields={{ text: 'name' }} onchange={(v, item) => {}} /> ``` ## Field Mapping System Map any data structure without transforming data: ```svelte