-
+
Test 1
-
+
Test 2
-
+
Test 3
-
+
Test 4
diff --git a/src/lib/components/radio/radio.svelte b/src/lib/components/radio/radio.svelte
index 8e204d9..23dbc9a 100644
--- a/src/lib/components/radio/radio.svelte
+++ b/src/lib/components/radio/radio.svelte
@@ -72,7 +72,7 @@
{:else}
-
+
{/if}
{/if}
diff --git a/src/lib/components/root/root.css b/src/lib/components/root/root.css
index 5b5f183..b29485f 100644
--- a/src/lib/components/root/root.css
+++ b/src/lib/components/root/root.css
@@ -20,11 +20,12 @@
--border: oklch(0.922 0 0);
--input: oklch(0.922 0 0);
--ring: oklch(0.708 0 0);
- --chart-1: oklch(0.81 0.1 252);
- --chart-2: oklch(0.62 0.19 260);
- --chart-3: oklch(0.55 0.22 263);
- --chart-4: oklch(0.49 0.22 264);
- --chart-5: oklch(0.42 0.18 266);
+ --chart-1: oklch(0.646 0.222 41.116);
+ --chart-2: oklch(0.6 0.118 184.704);
+ --chart-3: oklch(0.398 0.07 227.392);
+ --chart-4: oklch(0.828 0.189 84.429);
+ --chart-5: oklch(0.769 0.188 70.08);
+ --radius: 0.625rem;
--sidebar: oklch(0.985 0 0);
--sidebar-foreground: oklch(0.145 0 0);
--sidebar-primary: oklch(0.205 0 0);
@@ -33,23 +34,13 @@
--sidebar-accent-foreground: oklch(0.205 0 0);
--sidebar-border: oklch(0.922 0 0);
--sidebar-ring: oklch(0.708 0 0);
- --font-sans:
- ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
- 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
- 'Segoe UI Symbol', 'Noto Color Emoji';
- --font-serif: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;
- --font-mono:
- ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New',
- monospace;
--radius: 0.625rem;
- --shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
- --shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
- --shadow-sm: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1);
- --shadow: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1);
- --shadow-md: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 2px 4px -1px hsl(0 0% 0% / 0.1);
- --shadow-lg: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 4px 6px -1px hsl(0 0% 0% / 0.1);
- --shadow-xl: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 8px 10px -1px hsl(0 0% 0% / 0.1);
- --shadow-2xl: 0 1px 3px 0px hsl(0 0% 0% / 0.25);
+ --shadow-x: 0px;
+ --shadow-y: 1px;
+ --shadow-blur: 2px;
+ --shadow-spread: 0px;
+ --shadow-opacity: 0.18;
+ --shadow-color: hsl(0 0% 0%);
--tracking-normal: 0em;
--spacing: 0.25rem;
}
@@ -59,7 +50,7 @@
--foreground: oklch(0.985 0 0);
--card: oklch(0.205 0 0);
--card-foreground: oklch(0.985 0 0);
- --popover: oklch(0.269 0 0);
+ --popover: oklch(0.205 0 0);
--popover-foreground: oklch(0.985 0 0);
--primary: oklch(0.922 0 0);
--primary-foreground: oklch(0.205 0 0);
@@ -67,43 +58,27 @@
--secondary-foreground: oklch(0.985 0 0);
--muted: oklch(0.269 0 0);
--muted-foreground: oklch(0.708 0 0);
- --accent: oklch(0.371 0 0);
+ --accent: oklch(0.269 0 0);
--accent-foreground: oklch(0.985 0 0);
--destructive: oklch(0.704 0.191 22.216);
--destructive-foreground: oklch(0.985 0 0);
- --border: oklch(0.275 0 0);
- --input: oklch(0.325 0 0);
+ --border: oklch(1 0 0 / 10%);
+ --input: oklch(1 0 0 / 15%);
--ring: oklch(0.556 0 0);
- --chart-1: oklch(0.81 0.1 252);
- --chart-2: oklch(0.62 0.19 260);
- --chart-3: oklch(0.55 0.22 263);
- --chart-4: oklch(0.49 0.22 264);
- --chart-5: oklch(0.42 0.18 266);
+ --chart-1: oklch(0.488 0.243 264.376);
+ --chart-2: oklch(0.696 0.17 162.48);
+ --chart-3: oklch(0.769 0.188 70.08);
+ --chart-4: oklch(0.627 0.265 303.9);
+ --chart-5: oklch(0.645 0.246 16.439);
--sidebar: oklch(0.205 0 0);
--sidebar-foreground: oklch(0.985 0 0);
--sidebar-primary: oklch(0.488 0.243 264.376);
--sidebar-primary-foreground: oklch(0.985 0 0);
--sidebar-accent: oklch(0.269 0 0);
--sidebar-accent-foreground: oklch(0.985 0 0);
- --sidebar-border: oklch(0.275 0 0);
- --sidebar-ring: oklch(0.439 0 0);
- --font-sans:
- ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
- 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
- 'Segoe UI Symbol', 'Noto Color Emoji';
- --font-serif: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;
- --font-mono:
- ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New',
- monospace;
- --radius: 0.625rem;
- --shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
- --shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
- --shadow-sm: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1);
- --shadow: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1);
- --shadow-md: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 2px 4px -1px hsl(0 0% 0% / 0.1);
- --shadow-lg: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 4px 6px -1px hsl(0 0% 0% / 0.1);
- --shadow-xl: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 8px 10px -1px hsl(0 0% 0% / 0.1);
- --shadow-2xl: 0 1px 3px 0px hsl(0 0% 0% / 0.25);
+ --sidebar-border: oklch(1 0 0 / 10%);
+ --sidebar-ring: oklch(0.556 0 0);
+ --shadow-color: hsl(0, 0%, 100%);
}
@theme inline {
@@ -140,22 +115,5 @@
--color-sidebar-border: var(--sidebar-border);
--color-sidebar-ring: var(--sidebar-ring);
- --font-sans: var(--font-sans);
- --font-mono: var(--font-mono);
- --font-serif: var(--font-serif);
-
- --radius-sm: calc(var(--radius) - 4px);
- --radius-md: calc(var(--radius) - 2px);
- --radius-lg: var(--radius);
- --radius-xl: calc(var(--radius) + 4px);
--radius-inherit: inherit;
-
- --shadow-2xs: var(--shadow-2xs);
- --shadow-xs: var(--shadow-xs);
- --shadow-sm: var(--shadow-sm);
- --shadow: var(--shadow);
- --shadow-md: var(--shadow-md);
- --shadow-lg: var(--shadow-lg);
- --shadow-xl: var(--shadow-xl);
- --shadow-2xl: var(--shadow-2xl);
}
diff --git a/src/lib/components/sidebar/sidebar-content.svelte b/src/lib/components/sidebar/sidebar-content.svelte
index a12463e..176cd62 100644
--- a/src/lib/components/sidebar/sidebar-content.svelte
+++ b/src/lib/components/sidebar/sidebar-content.svelte
@@ -1,21 +1,7 @@
-
-
-
@@ -18,275 +51,126 @@
-
-
- Components
-
-
-
- Accordion
-
-
-
-
-
-
Accordion
- Stable
-
-
- Collapsible content sections for organizing information. Perfect for FAQs, settings panels,
- and content organization.
-
-
+
-
-
- Installation
-
-
-
Installation
-
copyToClipboard("import { Accordion } from 'atomic-sv/accordion';")}
- >
- {#if copySuccess}
-
-
-
- {:else}
-
-
-
- {/if}
-
-
-
- import
- {
- Accordion
- ,
- AccordionItem
- }
- from
- 'atomic-sv/accordion' ;
-
-
-
+
-
-
- Examples
+
+
-
-
-
-
Basic Accordion
-
Simple accordion with collapsible sections
-
-
-
-
-
-
-
-
- What is Atomic SV?
-
-
-
-
-
-
-
- Atomic SV is a modular, accessible, and extensible Svelte UI component library
- built with Svelte 5.
-
-
-
-
-
- How do I install it?
-
-
-
-
-
-
-
- Simply run npm install atomic-sv to add it to your project. Import components as
- needed.
-
-
-
-
-
+
+
+
+ What is Atomic SV?
+
+
- Is it accessible?
-
-
-
-
-
-
-
- Yes, all Atomic SV components are built with accessibility in mind. They include
- proper ARIA attributes, keyboard navigation, and screen reader support out of the
- box.
-
-
-
-
-
+
+
+
+
+
+ Atomic SV is a modular, accessible, and extensible Svelte UI component library built
+ with Svelte 5.
+
+
-
-
-
Code
-
- copyToClipboard(`
-
-
+
+ How do I install it?
+
+
- What is Atomic SV?
-
-
-
-
-
-
-
- Atomic SV is a modular, accessible, and extensible Svelte UI component library
- built with Svelte 5.
-
-
+
+
+
+
+
+ Simply run npm install @svelte-atoms/core to add it to your project. Import components
+ as needed.
+
+
-
-
+
+ Is it accessible?
+
+
- How do I install it?
-
-
-
-
-
-
-
- Simply run npm install atomic-sv to add it to your project. Import components as
- needed.
-
-
+
+
+
+
+
+ Yes, all Atomic SV components are built with accessibility in mind. They include
+ proper ARIA attributes, keyboard navigation, and screen reader support out of the box.
+
+
+
+
-
-
- Is it accessible?
-
-
-
-
-
-
-
- Yes, all Atomic SV components are built with accessibility in mind. They include
- proper ARIA attributes, keyboard navigation, and screen reader support out of the
- box.
-
-
- `)}
+
+
+
+
- {#if copySuccess}
+ Section 1
+
- {:else}
-
+
+
+
+ Multiple sections can be open at the same time.
+
+
+
+
+
+ Section 2
+
+
- {/if}
-
-
-
{`
-
- What is Atomic SV?
-
- Atomic SV is a modular, accessible, and extensible
- Svelte UI component library built with Svelte 5.
-
-
-
- How do I install it?
-
- Simply run npm install atomic-sv
-
-
- `}
-
-
+
+
+
+ Opening this section won't close the others.
+
+
+
+
-
-
-
-
- Features
-
-
-
-
Fully Accessible
-
- Built with ARIA best practices, keyboard navigation, and screen reader support.
-
-
-
-
-
-
Customizable
-
- Style with Tailwind CSS or your own CSS. Full control over appearance and behavior.
-
-
-
-
-
-
Smooth Animations
-
- Built-in smooth expand/collapse animations with respect for reduced motion preferences.
-
-
-
-
-
-
Flexible Modes
-
- Supports single or multiple panel expansion modes for different use cases.
-
-
-
-
-
-
-
+
-
-
Accordion Props
-
-
-
-
- Prop
- Type
- Default
- Description
-
-
-
-
- multiple
- boolean
- false
- Allow multiple panels to be open simultaneously
-
-
- collapsible
- boolean
- true
- Allow panels to be collapsed when in single mode
-
-
- class
- string
- ''
- Additional CSS classes
-
-
-
-
+
Accordion Props
+
-
-
-
-
- Accessibility
-
-
-
-
-
-
-
Built-in Accessibility Features
-
- • Proper ARIA attributes (aria-expanded, aria-controls, etc.)
- • Keyboard navigation (Enter, Space, Arrow keys)
- • Focus management with visible indicators
- • Screen reader announcements for state changes
- • Semantic HTML structure
- • Respects prefers-reduced-motion setting
-
-
+
+
AccordionItem.Header Props
+
-
+
-
-
+
diff --git a/src/routes/components/button/+page.svelte b/src/routes/components/button/+page.svelte
index e32aae0..d2d29ff 100644
--- a/src/routes/components/button/+page.svelte
+++ b/src/routes/components/button/+page.svelte
@@ -1,176 +1,191 @@
- Button | Atomic SV
+ Button - Atomic SV
-
-
-
-
-
-
- Components
-
-
-
- Button
-
-
-
-
-
-
Button
- Stable
-
-
- Interactive element for triggering actions. Supports various styles, sizes, and states.
-
-
+
+
+
+
+
+
-
-
-
-
-
-
- Preview
-
-
-
- Click me
-
-
-
-
-
-
-
-
-
- Accessibility
-
-
-
-
-
-
-
-
Built-in Accessibility Features
+
+
+
+
+ Click me
+
+
+
+
+
+
+ Primary Button
+
+
+ Secondary Button
+
+
+ Outline Button
+
-
-
- • Proper semantic button element with role
- • Keyboard navigation support (Enter and Space keys)
- • Focus management with visible focus indicators
- • Screen reader compatible with proper ARIA attributes
- • Disabled state handling
-
-
-
-
-
-
-
+
+
+
- Next: Checkbox
-
-
-
-
+
+ Disabled Button
+
+
-
-
-
+
+
+
+
+
+
-
-
diff --git a/src/routes/components/checkbox/+page.svelte b/src/routes/components/checkbox/+page.svelte
index e55b5e5..779dbe2 100644
--- a/src/routes/components/checkbox/+page.svelte
+++ b/src/routes/components/checkbox/+page.svelte
@@ -1,14 +1,40 @@
@@ -17,258 +43,126 @@
-
-
- Components
-
-
-
- Checkbox
-
-
-
-
-
-
Checkbox
- Stable
-
-
- Selection control for multiple choices. Allows users to select one or more options from a set.
-
-
+
-
-
- Installation
-
-
-
Installation
-
copyToClipboard("import Checkbox from 'atomic-sv/checkbox';")}
- >
- {#if copySuccess}
-
-
-
- {:else}
-
-
-
- {/if}
-
-
-
- import Checkbox
- from
- 'atomic-sv/checkbox' ;
-
-
-
+
-
-
- Examples
+
+
-
-
-
-
Basic Checkbox
-
Simple checkbox with label
+
+
+
+
+ Accept terms and conditions
+
+
-
-
-
-
-
- Accept terms and conditions
-
-
+
+
+
+
+
+ Newsletter updates
+
-
-
-
-
-
Code
-
- copyToClipboard(`
-Accept terms and conditions `)}
- >
- {#if copySuccess}
-
-
-
- {:else}
-
-
-
- {/if}
-
+
+
+
+ Marketing emails
+
-
{`
-Accept terms and conditions `}
-
-
-
-
-
-
-
Checkbox Group
-
- Multiple checkboxes for selecting multiple options
-
-
-
-
-
-
-
-
-
- Newsletter updates
-
-
-
-
-
- Marketing emails
-
-
-
-
-
- Product announcements
-
-
-
+
+
+
+ Product announcements
+
+
-
-
-
Code
-
- copyToClipboard(`
-
-
- Newsletter updates
-
-
-
- Marketing emails
-
-
-
- Product announcements
-
-
`)}
- >
- {#if copySuccess}
-
-
-
- {:else}
-
-
-
- {/if}
-
-
-
{`
-
-
- Newsletter updates
-
-
-
- Marketing emails
-
-
-
- Product announcements
-
-
`}
+
+
+
+
+ Disabled checkbox
+
-
+
-
+
+
+
-
-
+
diff --git a/src/routes/components/form/+page.svelte b/src/routes/components/form/+page.svelte
index 1caa0e7..118e6c7 100644
--- a/src/routes/components/form/+page.svelte
+++ b/src/routes/components/form/+page.svelte
@@ -1,85 +1,17 @@
- Form & Field Components - Atomic SV
+ Form & Field - Atomic SV
-
-
-
-
-
-
- Components
-
-
-
- Form
-
+
+
-
-
-
-
Form & Field
- Stable
-
-
- Composable form and field components for building accessible, validated forms with powerful
- state management.
-
-
+
-
-
- Installation
-
-
-
Installation
-
copyToClipboard("import { Form, Field } from 'atomic-sv/form';")}
- >
- {#if copySuccess}
-
-
-
- {:else}
-
-
-
- {/if}
-
-
-
- import
- {{ Form, Field }}
- from
- 'atomic-sv/form' ;
-
-
-
+
-
+
-
-
- Field Component Props
+
+
+
+
Form Props
+
+
+
+
+ Prop
+ Type
+ Default
+ Description
+
+
-
-
-
Field.Root
-
',
- default: '-',
- description: 'Content to render with access to field state'
- }
- ]}
- >
+
+
+ class
+ string
+ ''
+ Additional CSS classes to apply
+
+
+ onsubmit
+ function
+ -
+ Form submission handler
+
+
+ children
+ Snippet
+ -
+ Form content
+
+
+
+
-
+
+
Field.Root Props
+
+
+
+
+ Prop
+ Type
+ Default
+ Description
+
+
-
-
Field.Control
-
+
+
+ name
+ string
+ -
+ Field name for form data
+
+
+ value
+ any
+ ''
+ Field value
+
+
+ class
+ string
+ ''
+ Additional CSS classes
+
+
+
-
-
-
- Accessibility
-
-
-
-
-
-
-
- Built-in Accessibility Features
-
-
- • Automatic label-control association with proper `for` attributes
- • Semantic form structure with proper roles and ARIA attributes
- • Keyboard navigation support for all form controls
- • Screen reader compatibility with descriptive labels
- • Focus management with visible focus indicators
- • Form validation states communicated to assistive technologies
- • Proper fieldset and legend usage for grouped controls
-
-
+
+
Field.Label Props
+
+
+
+
+ Prop
+ Type
+ Default
+ Description
+
+
+
+
+
+ for
+ string
+ -
+ ID of the associated form control
+
+
+ class
+ string
+ ''
+ Additional CSS classes
+
+
+ children
+ Snippet
+ -
+ Label content
+
+
+
-
-
-
- Usage Patterns
-
-
-
Simple Form
-
- Use standard HTML form elements for basic forms without complex state management needs.
-
-
-
- <form>
- <input type="text" />
- <button>Submit</button>
- </form>
-
-
-
+
+
Field.Control Props
+
+
+
+
+ Prop
+ Type
+ Default
+ Description
+
+
-
-
Advanced Form
-
- Use Form and Field components for complex forms with validation, state management, and
- dynamic behavior.
-
-
-
- <Form>
- <Field.Root>
- <Field.Label />
- <Field.Control />
- </Field.Root>
- </Form>
-
-
+
+
+ component
+ Component
+ -
+ Component to use for the control
+
+
+ class
+ string
+ ''
+ Additional CSS classes
+
+
+ ...props
+ any
+ -
+ All other props passed to control component
+
+
+
-
-
-
-
-
+
-
+
+
+
+
-
-
diff --git a/src/routes/header.svelte b/src/routes/header.svelte
index a99ba83..97aa8ce 100644
--- a/src/routes/header.svelte
+++ b/src/routes/header.svelte
@@ -27,12 +27,12 @@