We just published @abeedoo/bigdesign-svelte — a Svelte 5 port of BigCommerce's BigDesign component library. 52 components, zero dependencies, MIT licensed.
Playground: bigdesign-svelte.abeedoo.com
npm: @abeedoo/bigdesign-svelte
GitHub: abeedoolabs/bigdesign-svelte
Why
If you're building a BigCommerce app with Svelte, you need your UI to match the BigCommerce admin panel. BigDesign is BigCommerce's official design system — but it's React-only. We needed it in Svelte for a couple of production apps, so we ported it.
What's In the Box
52 components across 8 categories:
- Layout — Box, Flex, Grid, Panel, Collapse, AccordionPanel
- Actions — Button, ButtonGroup, Link, Dropdown
- Forms — Input, Textarea, Select, MultiSelect, Checkbox, Radio, Switch, Toggle, Counter, Search, Datepicker, FileUploader, Fieldset, Form
- Data Display — Typography (H0–H4, Text, Small), HR, Badge, Chip, Lozenge, List, Table, StatefulTable
- Feedback — Alert, InlineMessage, Message, StatusMessage, ProgressBar, ProgressCircle
- Navigation — Tabs, PillTabs, Stepper, OffsetPagination, StatelessPagination
- Overlays — Modal, Tooltip, Popover
- Specialized — AnchorNav, Timepicker, Tree, StatefulTree, TableNext, Worksheet, FeatureSet
Quick Start
npm install @abeedoo/bigdesign-svelte
Import the theme in your root layout:
<!-- +layout.svelte -->
<script>
import '@abeedoo/bigdesign-svelte/theme';
</script>
Use components:
<script>
import { Button, Panel, Input, Alert } from '@abeedoo/bigdesign-svelte';
</script>
<Panel header="Settings">
<Input label="Store name" placeholder="My Store" />
<Button variant="primary">Save</Button>
</Panel>
How It's Built
The port matches BigDesign's visual appearance, prop names, and accessibility while using Svelte 5 idioms:
| React BigDesign | Svelte BigDesign |
|---|---|
| styled-components (CSS-in-JS) | Scoped CSS + CSS custom properties |
{children} / render props |
Svelte 5 snippets |
useState / useRef |
$state / $derived runes |
onChange callbacks |
$bindable() runes |
All design tokens are CSS custom properties with a --bd- prefix. No runtime CSS-in-JS. No Tailwind. Just CSS variables in :root and scoped styles in each component. This means the theme loads in one CSS import and everything just works.
Component names are 1:1 with React BigDesign — StatefulTable is StatefulTable, not DataGrid or SmartTable. If you're reading BigCommerce's docs, the same component names apply.
LLMs.txt
The package ships with an llms.txt manifest — a structured document describing all 52 components, their props, types, defaults, and usage examples. It follows the llms.txt standard and is designed for AI agents that can't fetch external URLs from sandboxed environments. Point your agent at the file and it can generate valid BigDesign Svelte components without hallucinating prop names.
Status
v0.3.1. Used in production in two BigCommerce apps. The component set covers everything we've needed so far. If you're building BigCommerce integrations with Svelte and you've been rolling your own components or wrapping React in iframes, give it a try.
Not affiliated with, endorsed by, or maintained by BigCommerce. BigDesign is a trademark of BigCommerce.