@svelte-atoms/core 1.0.0-alpha.25 → 1.0.0-alpha.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +645 -645
- package/dist/components/accordion/accordion-root.svelte +61 -79
- package/dist/components/accordion/accordion-root.svelte.d.ts +2 -15
- package/dist/components/accordion/index.d.ts +2 -1
- package/dist/components/accordion/index.js +2 -1
- package/dist/components/accordion/item/accordion-item-body.svelte +42 -52
- package/dist/components/accordion/item/accordion-item-body.svelte.d.ts +2 -8
- package/dist/components/accordion/item/accordion-item-header.svelte +50 -56
- package/dist/components/accordion/item/accordion-item-header.svelte.d.ts +3 -20
- package/dist/components/accordion/item/accordion-item-indicator.svelte +50 -59
- package/dist/components/accordion/item/accordion-item-indicator.svelte.d.ts +2 -8
- package/dist/components/accordion/item/accordion-item-root.svelte +65 -79
- package/dist/components/accordion/item/accordion-item-root.svelte.d.ts +2 -12
- package/dist/components/accordion/item/index.d.ts +1 -0
- package/dist/components/accordion/item/types.d.ts +52 -0
- package/dist/components/accordion/item/types.js +1 -0
- package/dist/components/accordion/types.d.ts +21 -0
- package/dist/components/accordion/types.js +1 -0
- package/dist/components/alert/alert-actions.svelte +42 -52
- package/dist/components/alert/alert-actions.svelte.d.ts +3 -30
- package/dist/components/alert/alert-close-button.svelte +72 -79
- package/dist/components/alert/alert-close-button.svelte.d.ts +8 -35
- package/dist/components/alert/alert-content.svelte +42 -52
- package/dist/components/alert/alert-content.svelte.d.ts +3 -30
- package/dist/components/alert/alert-description.svelte +41 -51
- package/dist/components/alert/alert-description.svelte.d.ts +7 -10
- package/dist/components/alert/alert-icon.svelte +46 -56
- package/dist/components/alert/alert-icon.svelte.d.ts +2 -8
- package/dist/components/alert/alert-root.svelte +102 -118
- package/dist/components/alert/alert-root.svelte.d.ts +2 -13
- package/dist/components/alert/alert-title.svelte +41 -51
- package/dist/components/alert/alert-title.svelte.d.ts +2 -8
- package/dist/components/alert/index.d.ts +1 -0
- package/dist/components/alert/index.js +1 -0
- package/dist/components/alert/types.d.ts +85 -0
- package/dist/components/alert/types.js +1 -0
- package/dist/components/atom/html-atom.svelte +201 -217
- package/dist/components/atom/html-atom.svelte.d.ts +2 -22
- package/dist/components/atom/types.d.ts +7 -2
- package/dist/components/avatar/types.d.ts +7 -2
- package/dist/components/badge/badge.svelte +1 -1
- package/dist/components/badge/types.d.ts +7 -2
- package/dist/components/breadcrumb/breadcrumb-item.svelte +1 -1
- package/dist/components/breadcrumb/breadcrumb-root.svelte +1 -1
- package/dist/components/breadcrumb/breadcrumb-separator.svelte +1 -1
- package/dist/components/button/button.stories.svelte +57 -57
- package/dist/components/button/button.svelte +1 -1
- package/dist/components/button/button.svelte.d.ts +4 -1
- package/dist/components/button/index.d.ts +1 -0
- package/dist/components/button/index.js +1 -0
- package/dist/components/button/types.d.ts +8 -3
- package/dist/components/card/card-body.svelte +39 -45
- package/dist/components/card/card-body.svelte.d.ts +7 -4
- package/dist/components/card/card-description.svelte +41 -48
- package/dist/components/card/card-description.svelte.d.ts +7 -7
- package/dist/components/card/card-footer.svelte +41 -48
- package/dist/components/card/card-footer.svelte.d.ts +7 -4
- package/dist/components/card/card-header.svelte +41 -48
- package/dist/components/card/card-header.svelte.d.ts +7 -4
- package/dist/components/card/card-media.svelte +41 -48
- package/dist/components/card/card-media.svelte.d.ts +7 -4
- package/dist/components/card/card-root.svelte +91 -91
- package/dist/components/card/card-root.svelte.d.ts +1 -1
- package/dist/components/card/card-subtitle.svelte +41 -48
- package/dist/components/card/card-subtitle.svelte.d.ts +12 -9
- package/dist/components/card/card-title.svelte +45 -48
- package/dist/components/card/card-title.svelte.d.ts +12 -9
- package/dist/components/card/index.d.ts +1 -0
- package/dist/components/card/index.js +1 -0
- package/dist/components/card/types.d.ts +57 -2
- package/dist/components/checkbox/checkbox.svelte +39 -28
- package/dist/components/checkbox/types.d.ts +7 -2
- package/dist/components/collapsible/collapsible-body.svelte +39 -52
- package/dist/components/collapsible/collapsible-body.svelte.d.ts +2 -9
- package/dist/components/collapsible/collapsible-header.svelte +39 -52
- package/dist/components/collapsible/collapsible-header.svelte.d.ts +2 -9
- package/dist/components/collapsible/collapsible-indicator.svelte +50 -65
- package/dist/components/collapsible/collapsible-indicator.svelte.d.ts +3 -10
- package/dist/components/collapsible/collapsible-root.svelte +66 -85
- package/dist/components/collapsible/collapsible-root.svelte.d.ts +2 -14
- package/dist/components/collapsible/index.d.ts +1 -0
- package/dist/components/collapsible/index.js +1 -0
- package/dist/components/collapsible/types.d.ts +54 -0
- package/dist/components/collapsible/types.js +1 -0
- package/dist/components/combobox/atoms.d.ts +5 -1
- package/dist/components/combobox/atoms.js +5 -1
- package/dist/components/combobox/{combobox-input.svelte → combobox-control.svelte} +3 -3
- package/dist/components/combobox/{combobox-input.svelte.d.ts → combobox-control.svelte.d.ts} +3 -3
- package/dist/components/combobox/combobox-root.svelte +65 -68
- package/dist/components/combobox/combobox-root.svelte.d.ts +5 -18
- package/dist/components/combobox/combobox-trigger.svelte +1 -1
- package/dist/components/combobox/compobox-item.svelte +1 -1
- package/dist/components/combobox/index.d.ts +1 -0
- package/dist/components/combobox/index.js +1 -0
- package/dist/components/combobox/types.d.ts +25 -0
- package/dist/components/combobox/types.js +1 -0
- package/dist/components/container/container.svelte +1 -1
- package/dist/components/container/types.d.ts +7 -2
- package/dist/components/contextmenu/types.d.ts +8 -0
- package/dist/components/contextmenu/types.js +1 -0
- package/dist/components/datagrid/datagrid-body.svelte +37 -44
- package/dist/components/datagrid/datagrid-body.svelte.d.ts +17 -20
- package/dist/components/datagrid/datagrid-checkbox.svelte +101 -108
- package/dist/components/datagrid/datagrid-checkbox.svelte.d.ts +4 -6
- package/dist/components/datagrid/datagrid-footer.svelte +34 -34
- package/dist/components/datagrid/datagrid-footer.svelte.d.ts +1 -1
- package/dist/components/datagrid/datagrid-header.svelte +49 -49
- package/dist/components/datagrid/datagrid-header.svelte.d.ts +1 -1
- package/dist/components/datagrid/datagrid-root.svelte +59 -59
- package/dist/components/datagrid/datagrid-root.svelte.d.ts +1 -1
- package/dist/components/datagrid/datagrid.stories.svelte +75 -75
- package/dist/components/datagrid/td/datagrid-td.svelte +66 -80
- package/dist/components/datagrid/td/datagrid-td.svelte.d.ts +7 -16
- package/dist/components/datagrid/th/datagrid-th-sort-icon.svelte +1 -1
- package/dist/components/datagrid/th/datagrid-th.svelte +106 -127
- package/dist/components/datagrid/th/datagrid-th.svelte.d.ts +2 -20
- package/dist/components/datagrid/tr/bond.svelte.d.ts +3 -1
- package/dist/components/datagrid/tr/bond.svelte.js +4 -2
- package/dist/components/datagrid/tr/datagrid-tr.svelte +88 -103
- package/dist/components/datagrid/tr/datagrid-tr.svelte.d.ts +2 -18
- package/dist/components/datagrid/types.d.ts +85 -37
- package/dist/components/dialog/dialog-body.svelte +39 -45
- package/dist/components/dialog/dialog-body.svelte.d.ts +2 -2
- package/dist/components/dialog/dialog-close-button.svelte +58 -61
- package/dist/components/dialog/dialog-close-button.svelte.d.ts +7 -7
- package/dist/components/dialog/dialog-content.svelte +62 -71
- package/dist/components/dialog/dialog-content.svelte.d.ts +2 -2
- package/dist/components/dialog/dialog-description.svelte +40 -46
- package/dist/components/dialog/dialog-description.svelte.d.ts +2 -2
- package/dist/components/dialog/dialog-footer.svelte +39 -45
- package/dist/components/dialog/dialog-footer.svelte.d.ts +2 -2
- package/dist/components/dialog/dialog-header.svelte +39 -45
- package/dist/components/dialog/dialog-header.svelte.d.ts +2 -2
- package/dist/components/dialog/dialog-root.svelte +110 -120
- package/dist/components/dialog/dialog-root.svelte.d.ts +2 -10
- package/dist/components/dialog/dialog-title.svelte +41 -47
- package/dist/components/dialog/dialog-title.svelte.d.ts +7 -7
- package/dist/components/dialog/index.d.ts +1 -0
- package/dist/components/dialog/index.js +1 -0
- package/dist/components/dialog/types.d.ts +67 -0
- package/dist/components/dialog/types.js +1 -0
- package/dist/components/divider/types.d.ts +10 -0
- package/dist/components/divider/types.js +1 -0
- package/dist/components/drawer/drawer-backdrop.svelte +38 -47
- package/dist/components/drawer/drawer-backdrop.svelte.d.ts +3 -26
- package/dist/components/drawer/drawer-body.svelte +42 -56
- package/dist/components/drawer/drawer-body.svelte.d.ts +3 -16
- package/dist/components/drawer/drawer-content.svelte +42 -55
- package/dist/components/drawer/drawer-content.svelte.d.ts +3 -14
- package/dist/components/drawer/drawer-description.svelte +44 -57
- package/dist/components/drawer/drawer-description.svelte.d.ts +3 -14
- package/dist/components/drawer/drawer-footer.svelte +41 -54
- package/dist/components/drawer/drawer-footer.svelte.d.ts +3 -14
- package/dist/components/drawer/drawer-header.svelte +43 -56
- package/dist/components/drawer/drawer-header.svelte.d.ts +3 -14
- package/dist/components/drawer/drawer-root.svelte +93 -113
- package/dist/components/drawer/drawer-root.svelte.d.ts +3 -31
- package/dist/components/drawer/drawer-title.svelte +44 -57
- package/dist/components/drawer/drawer-title.svelte.d.ts +3 -14
- package/dist/components/drawer/index.d.ts +1 -0
- package/dist/components/drawer/index.js +1 -0
- package/dist/components/drawer/types.d.ts +86 -0
- package/dist/components/drawer/types.js +1 -0
- package/dist/components/dropdown/dropdown-placeholder.svelte +1 -1
- package/dist/components/dropdown/dropdown-query.svelte +54 -53
- package/dist/components/dropdown/dropdown-query.svelte.d.ts +11 -10
- package/dist/components/dropdown/dropdown-root.svelte +59 -59
- package/dist/components/dropdown/dropdown-trigger.svelte +41 -52
- package/dist/components/dropdown/dropdown-trigger.svelte.d.ts +1 -8
- package/dist/components/dropdown/dropdown-value.svelte +60 -62
- package/dist/components/dropdown/index.d.ts +1 -0
- package/dist/components/dropdown/index.js +1 -0
- package/dist/components/dropdown/item/bond.svelte.d.ts +4 -0
- package/dist/components/dropdown/item/bond.svelte.js +9 -0
- package/dist/components/dropdown/item/dropdown-item.svelte +10 -6
- package/dist/components/dropdown/types.d.ts +37 -0
- package/dist/components/dropdown/types.js +1 -0
- package/dist/components/element/html-element.svelte.d.ts +2 -14
- package/dist/components/element/svg-element.svelte.d.ts +2 -14
- package/dist/components/element/types.d.ts +14 -7
- package/dist/components/form/field/bond.svelte.d.ts +8 -0
- package/dist/components/form/field/bond.svelte.js +13 -1
- package/dist/components/form/field/field-control.svelte +48 -58
- package/dist/components/form/field/field-control.svelte.d.ts +5 -19
- package/dist/components/form/field/field-label.svelte +24 -31
- package/dist/components/form/field/field-label.svelte.d.ts +1 -2
- package/dist/components/form/field/field-root.svelte +59 -88
- package/dist/components/form/field/field-root.svelte.d.ts +5 -20
- package/dist/components/form/form.stories.svelte +3 -3
- package/dist/components/form/index.d.ts +1 -0
- package/dist/components/form/index.js +1 -0
- package/dist/components/form/types.d.ts +76 -0
- package/dist/components/form/types.js +1 -0
- package/dist/components/icon/icon.svelte +44 -55
- package/dist/components/icon/icon.svelte.d.ts +4 -29
- package/dist/components/icon/types.d.ts +11 -7
- package/dist/components/input/atoms.d.ts +5 -1
- package/dist/components/input/atoms.js +5 -1
- package/dist/components/input/index.d.ts +1 -0
- package/dist/components/input/index.js +1 -0
- package/dist/components/input/{input-value.svelte → input-control.svelte} +14 -24
- package/dist/components/input/input-control.svelte.d.ts +26 -0
- package/dist/components/input/input-icon.svelte +1 -1
- package/dist/components/input/input-icon.svelte.d.ts +1 -1
- package/dist/components/input/input-placeholder.svelte +54 -56
- package/dist/components/input/input-placeholder.svelte.d.ts +2 -19
- package/dist/components/input/input-root.svelte +5 -12
- package/dist/components/input/input-root.svelte.d.ts +3 -20
- package/dist/components/input/input.stories.svelte +2 -2
- package/dist/components/input/types.d.ts +33 -0
- package/dist/components/input/types.js +1 -0
- package/dist/components/label/index.d.ts +1 -0
- package/dist/components/label/index.js +1 -0
- package/dist/components/label/label.svelte +25 -41
- package/dist/components/label/label.svelte.d.ts +3 -27
- package/dist/components/label/types.d.ts +11 -0
- package/dist/components/label/types.js +1 -0
- package/dist/components/layer/layer-inner.svelte.d.ts +2 -19
- package/dist/components/layer/layer-root.svelte.d.ts +2 -19
- package/dist/components/layer/types.d.ts +11 -0
- package/dist/components/layer/types.js +1 -0
- package/dist/components/link/types.d.ts +8 -0
- package/dist/components/link/types.js +1 -0
- package/dist/components/list/list-group.svelte +1 -1
- package/dist/components/list/list-item.svelte +1 -1
- package/dist/components/list/list-root.svelte +6 -1
- package/dist/components/list/list-title.svelte +1 -1
- package/dist/components/list/types.d.ts +8 -0
- package/dist/components/list/types.js +1 -0
- package/dist/components/menu/index.d.ts +1 -0
- package/dist/components/menu/index.js +1 -0
- package/dist/components/menu/menu-list.svelte +1 -1
- package/dist/components/menu/types.d.ts +15 -0
- package/dist/components/menu/types.js +1 -0
- package/dist/components/popover/bond.svelte.d.ts +2 -0
- package/dist/components/popover/bond.svelte.js +1 -1
- package/dist/components/popover/index.d.ts +1 -0
- package/dist/components/popover/index.js +1 -0
- package/dist/components/popover/popover-arrow.svelte +111 -117
- package/dist/components/popover/popover-arrow.svelte.d.ts +3 -20
- package/dist/components/popover/popover-content.svelte +139 -147
- package/dist/components/popover/popover-content.svelte.d.ts +3 -17
- package/dist/components/popover/popover-indicator.svelte +1 -1
- package/dist/components/popover/popover-root.svelte +4 -18
- package/dist/components/popover/popover-root.svelte.d.ts +1 -15
- package/dist/components/popover/popover-trigger.svelte +3 -12
- package/dist/components/popover/popover-trigger.svelte.d.ts +2 -8
- package/dist/components/popover/types.d.ts +61 -0
- package/dist/components/popover/types.js +1 -0
- package/dist/components/portal/active-portal.svelte +8 -2
- package/dist/components/portal/active-portal.svelte.d.ts +2 -2
- package/dist/components/portal/index.d.ts +1 -0
- package/dist/components/portal/index.js +1 -0
- package/dist/components/portal/portal-inner.svelte +1 -1
- package/dist/components/portal/portal-inner.svelte.d.ts +2 -19
- package/dist/components/portal/portal-root.svelte +83 -88
- package/dist/components/portal/portal-root.svelte.d.ts +2 -22
- package/dist/components/portal/teleport.svelte +50 -49
- package/dist/components/portal/teleport.svelte.d.ts +5 -23
- package/dist/components/portal/types.d.ts +39 -0
- package/dist/components/portal/types.js +1 -0
- package/dist/components/radio/radio-group.stories.svelte +4 -4
- package/dist/components/radio/radio.svelte +109 -109
- package/dist/components/radio/radio.svelte.d.ts +14 -36
- package/dist/components/root/root.css +24 -66
- package/dist/components/root/root.svelte +121 -121
- package/dist/components/root/types.d.ts +8 -0
- package/dist/components/root/types.js +1 -0
- package/dist/components/scrollable/index.d.ts +1 -0
- package/dist/components/scrollable/index.js +1 -0
- package/dist/components/scrollable/scrollable-container.svelte +82 -89
- package/dist/components/scrollable/scrollable-container.svelte.d.ts +2 -6
- package/dist/components/scrollable/scrollable-content.svelte +41 -51
- package/dist/components/scrollable/scrollable-content.svelte.d.ts +1 -6
- package/dist/components/scrollable/scrollable-root.svelte +100 -120
- package/dist/components/scrollable/scrollable-root.svelte.d.ts +3 -19
- package/dist/components/scrollable/scrollable-thumb.svelte +75 -86
- package/dist/components/scrollable/scrollable-thumb.svelte.d.ts +1 -7
- package/dist/components/scrollable/scrollable-track.svelte +59 -70
- package/dist/components/scrollable/scrollable-track.svelte.d.ts +1 -7
- package/dist/components/scrollable/types.d.ts +62 -0
- package/dist/components/scrollable/types.js +1 -0
- package/dist/components/sidebar/index.d.ts +1 -0
- package/dist/components/sidebar/index.js +1 -0
- package/dist/components/sidebar/sidebar-content.svelte +2 -16
- package/dist/components/sidebar/sidebar-content.svelte.d.ts +2 -9
- package/dist/components/sidebar/sidebar-root.svelte +4 -23
- package/dist/components/sidebar/sidebar-root.svelte.d.ts +2 -13
- package/dist/components/sidebar/types.d.ts +30 -0
- package/dist/components/sidebar/types.js +1 -0
- package/dist/components/stack/stack-item.svelte +5 -1
- package/dist/components/stack/stack-root.svelte +5 -1
- package/dist/components/stack/stack-root.svelte.d.ts +2 -19
- package/dist/components/stack/types.d.ts +12 -0
- package/dist/components/stack/types.js +1 -0
- package/dist/components/tabs/index.d.ts +1 -0
- package/dist/components/tabs/index.js +1 -0
- package/dist/components/tabs/tab/tab-body.svelte +52 -61
- package/dist/components/tabs/tab/tab-body.svelte.d.ts +2 -8
- package/dist/components/tabs/tab/tab-description.svelte +41 -50
- package/dist/components/tabs/tab/tab-description.svelte.d.ts +2 -8
- package/dist/components/tabs/tab/tab-header.svelte +71 -81
- package/dist/components/tabs/tab/tab-header.svelte.d.ts +2 -11
- package/dist/components/tabs/tab/tab-root.svelte +86 -81
- package/dist/components/tabs/tabs-body.svelte +1 -1
- package/dist/components/tabs/tabs-header.svelte +1 -1
- package/dist/components/tabs/tabs-root.svelte +1 -1
- package/dist/components/tabs/types.d.ts +55 -0
- package/dist/components/tabs/types.js +1 -0
- package/dist/components/textarea/index.d.ts +1 -0
- package/dist/components/textarea/index.js +1 -0
- package/dist/components/textarea/textarea-input.svelte +2 -1
- package/dist/components/textarea/types.d.ts +28 -0
- package/dist/components/textarea/types.js +1 -0
- package/dist/components/toast/index.d.ts +1 -0
- package/dist/components/toast/index.js +1 -0
- package/dist/components/toast/toast-description.svelte +38 -44
- package/dist/components/toast/toast-description.svelte.d.ts +8 -34
- package/dist/components/toast/toast-root.svelte +61 -74
- package/dist/components/toast/toast-root.svelte.d.ts +4 -43
- package/dist/components/toast/toast-title.svelte +35 -43
- package/dist/components/toast/toast-title.svelte.d.ts +2 -34
- package/dist/components/toast/types.d.ts +40 -0
- package/dist/components/toast/types.js +1 -0
- package/dist/components/tooltip/types.d.ts +13 -0
- package/dist/components/tooltip/types.js +1 -0
- package/dist/components/tree/index.d.ts +1 -0
- package/dist/components/tree/index.js +1 -0
- package/dist/components/tree/tree-body.svelte +39 -50
- package/dist/components/tree/tree-body.svelte.d.ts +2 -10
- package/dist/components/tree/tree-header.svelte +54 -66
- package/dist/components/tree/tree-header.svelte.d.ts +3 -29
- package/dist/components/tree/tree-indicator.svelte +40 -50
- package/dist/components/tree/tree-indicator.svelte.d.ts +3 -9
- package/dist/components/tree/tree-root.svelte +65 -80
- package/dist/components/tree/tree-root.svelte.d.ts +2 -12
- package/dist/components/tree/types.d.ts +59 -0
- package/dist/components/tree/types.js +1 -0
- package/dist/components/virtual/types.d.ts +23 -0
- package/dist/components/virtual/types.js +1 -0
- package/dist/components/virtual/virtual-root.svelte +239 -258
- package/dist/components/virtual/virtual-root.svelte.d.ts +1 -18
- package/dist/context/preset.svelte.d.ts +1 -1
- package/llm/composition.md +395 -395
- package/llm/crafting.md +838 -838
- package/llm/motion.md +970 -970
- package/llm/philosophy.md +23 -23
- package/llm/preset-variant-integration.md +516 -516
- package/llm/preset.md +383 -383
- package/llm/styling.md +216 -216
- package/llm/usage.md +46 -46
- package/llm/variants.md +712 -712
- package/package.json +437 -437
- package/dist/components/input/input-value.svelte.d.ts +0 -19
package/llm/styling.md
CHANGED
|
@@ -1,216 +1,216 @@
|
|
|
1
|
-
# Styling Guide for @svelte-atoms/core
|
|
2
|
-
|
|
3
|
-
> **Audience**: LLMs and developers working with @svelte-atoms/core
|
|
4
|
-
|
|
5
|
-
## Core Concepts
|
|
6
|
-
|
|
7
|
-
All components accept a `class` prop that supports:
|
|
8
|
-
|
|
9
|
-
```svelte
|
|
10
|
-
<!-- String -->
|
|
11
|
-
<Button class="bg-blue-500 px-4 py-2 text-white">Click me</Button>
|
|
12
|
-
|
|
13
|
-
<!-- Array with conditionals -->
|
|
14
|
-
<Button class={['base-class', isActive && 'active-class', klass]}>Click me</Button>
|
|
15
|
-
|
|
16
|
-
<!-- Object -->
|
|
17
|
-
<Button class={{ 'bg-blue-500': isPrimary, 'bg-gray-500': !isPrimary }}>Click me</Button>
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## 1. TailwindCSS (Primary Method)
|
|
21
|
-
|
|
22
|
-
Use Tailwind utility classes for all styling needs:
|
|
23
|
-
|
|
24
|
-
```svelte
|
|
25
|
-
<!-- Layout & spacing -->
|
|
26
|
-
<Card.Root class="max-w-sm p-4">
|
|
27
|
-
<Card.Header>
|
|
28
|
-
<Card.Title class="text-lg font-semibold">Title</Card.Title>
|
|
29
|
-
</Card.Header>
|
|
30
|
-
</Card.Root>
|
|
31
|
-
|
|
32
|
-
<!-- Interactive states -->
|
|
33
|
-
<button class="bg-blue-500 px-4 py-2 text-white hover:bg-blue-600 active:bg-blue-700">
|
|
34
|
-
Action
|
|
35
|
-
</button>
|
|
36
|
-
|
|
37
|
-
<!-- Responsive -->
|
|
38
|
-
<h2 class="text-2xl md:text-3xl lg:text-4xl">Responsive heading</h2>
|
|
39
|
-
|
|
40
|
-
<!-- With opacity -->
|
|
41
|
-
<div class="bg-foreground/10">Subtle background</div>
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### Class Order Pattern
|
|
45
|
-
|
|
46
|
-
```svelte
|
|
47
|
-
<HtmlAtom
|
|
48
|
-
class={[
|
|
49
|
-
'base-layout-classes', // flex, grid, etc.
|
|
50
|
-
'sizing-classes', // w-full, px-4, etc.
|
|
51
|
-
'visual-classes', // bg-blue-500, border, etc.
|
|
52
|
-
isOpen && 'conditional', // Conditional classes
|
|
53
|
-
'$preset', // Preset placeholder (if using presets)
|
|
54
|
-
klass // User overrides (highest priority)
|
|
55
|
-
]}
|
|
56
|
-
/>
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
## 2. Preset System
|
|
60
|
-
|
|
61
|
-
Define default styles once, use everywhere:
|
|
62
|
-
|
|
63
|
-
```svelte
|
|
64
|
-
<script lang="ts">
|
|
65
|
-
import { setPreset } from '@svelte-atoms/core/context';
|
|
66
|
-
|
|
67
|
-
const preset = {
|
|
68
|
-
// Simple preset
|
|
69
|
-
button: () => ({
|
|
70
|
-
class: 'bg-primary text-primary-foreground px-4 py-2 rounded'
|
|
71
|
-
}),
|
|
72
|
-
|
|
73
|
-
// With custom element
|
|
74
|
-
accordion: () => ({
|
|
75
|
-
as: 'ul',
|
|
76
|
-
class: 'w-full max-w-md rounded-md border'
|
|
77
|
-
}),
|
|
78
|
-
|
|
79
|
-
// Dynamic with state
|
|
80
|
-
'accordion.item.header': (bond) => ({
|
|
81
|
-
class: bond?.state?.isActive ? 'text-foreground' : 'text-foreground/50'
|
|
82
|
-
})
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
setPreset(preset);
|
|
86
|
-
</script>
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
**Using the `$preset` placeholder:**
|
|
90
|
-
|
|
91
|
-
```svelte
|
|
92
|
-
<!-- In your component -->
|
|
93
|
-
<HtmlAtom
|
|
94
|
-
preset="button"
|
|
95
|
-
class={[
|
|
96
|
-
'component-defaults',
|
|
97
|
-
'$preset', // Replaced with preset classes
|
|
98
|
-
klass // User classes override
|
|
99
|
-
]}
|
|
100
|
-
/>
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
## 3. CSS Custom Properties
|
|
104
|
-
|
|
105
|
-
Use design tokens from `root.css`:
|
|
106
|
-
|
|
107
|
-
```svelte
|
|
108
|
-
<!-- Color tokens -->
|
|
109
|
-
<div class="bg-background text-foreground">Background color</div>
|
|
110
|
-
<Button class="bg-primary text-primary-foreground">Primary button</Button>
|
|
111
|
-
|
|
112
|
-
<!-- With opacity -->
|
|
113
|
-
<div class="bg-foreground/10 text-foreground/50">Subtle styling</div>
|
|
114
|
-
|
|
115
|
-
<!-- Borders and shadows -->
|
|
116
|
-
<Card.Root class="border-border border shadow-lg">Card</Card.Root>
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
**Available tokens:**
|
|
120
|
-
|
|
121
|
-
- Colors: `background`, `foreground`, `primary`, `secondary`, `muted`, `accent`, `destructive`, `border`
|
|
122
|
-
- Each color has `-foreground` variant
|
|
123
|
-
- Shadows: `shadow-sm`, `shadow-md`, `shadow-lg`, `shadow-xl`
|
|
124
|
-
|
|
125
|
-
## 4. Conditional Classes
|
|
126
|
-
|
|
127
|
-
Most common pattern from stories:
|
|
128
|
-
|
|
129
|
-
```svelte
|
|
130
|
-
<script>
|
|
131
|
-
let isOpen = $state(false);
|
|
132
|
-
</script>
|
|
133
|
-
|
|
134
|
-
<!-- Array with conditions -->
|
|
135
|
-
<Collapsible.Body class={['pointer-events-none h-0 opacity-0', isOpen && 'pointer-events-auto']}>
|
|
136
|
-
Content
|
|
137
|
-
</Collapsible.Body>
|
|
138
|
-
|
|
139
|
-
<!-- Ternary -->
|
|
140
|
-
<Tab.Root class={isActive ? 'opacity-100' : 'opacity-50'}>Tab content</Tab.Root>
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
## 5. Component Variants
|
|
144
|
-
|
|
145
|
-
Create reusable variants:
|
|
146
|
-
|
|
147
|
-
```svelte
|
|
148
|
-
<script lang="ts">
|
|
149
|
-
let { variant = 'primary', size = 'md', class: klass = '' } = $props();
|
|
150
|
-
|
|
151
|
-
const variants = {
|
|
152
|
-
primary: 'bg-blue-500 text-white hover:bg-blue-600',
|
|
153
|
-
secondary: 'bg-gray-200 text-gray-800 hover:bg-gray-300'
|
|
154
|
-
};
|
|
155
|
-
|
|
156
|
-
const sizes = {
|
|
157
|
-
sm: 'px-3 py-1.5 text-xs',
|
|
158
|
-
md: 'px-4 py-2 text-sm',
|
|
159
|
-
lg: 'px-6 py-3 text-base'
|
|
160
|
-
};
|
|
161
|
-
</script>
|
|
162
|
-
|
|
163
|
-
<Button class="{variants[variant]} {sizes[size]} {klass}">
|
|
164
|
-
{@render children?.()}
|
|
165
|
-
</Button>
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
## 6. Inline Styles
|
|
169
|
-
|
|
170
|
-
Use for dynamic values only:
|
|
171
|
-
|
|
172
|
-
```svelte
|
|
173
|
-
<script>
|
|
174
|
-
let width = $state(240);
|
|
175
|
-
</script>
|
|
176
|
-
|
|
177
|
-
<!-- ✅ Good: Dynamic values -->
|
|
178
|
-
<div style="width: {width}px; opacity: {isOpen ? 1 : 0}">Dynamic sizing</div>
|
|
179
|
-
|
|
180
|
-
<!-- ❌ Avoid: Static styling -->
|
|
181
|
-
<div style="padding: 16px; background: blue;">Use Tailwind instead</div>
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
## Quick Reference
|
|
185
|
-
|
|
186
|
-
| Need | Use |
|
|
187
|
-
| -------------- | ------------------------------------ |
|
|
188
|
-
| Static styling | TailwindCSS classes |
|
|
189
|
-
| Theme/defaults | Preset system |
|
|
190
|
-
| Conditional | Array syntax with `&&` |
|
|
191
|
-
| Responsive | Tailwind breakpoints (`md:`, `lg:`) |
|
|
192
|
-
| Colors | CSS custom properties (`bg-primary`) |
|
|
193
|
-
| Dynamic values | Inline styles |
|
|
194
|
-
| Variants | Computed class objects |
|
|
195
|
-
|
|
196
|
-
## Best Practices
|
|
197
|
-
|
|
198
|
-
1. **Prefer Tailwind** - Use utility classes for 90% of styling
|
|
199
|
-
2. **Class order matters** - Base → Conditionals → `$preset` → User classes
|
|
200
|
-
3. **Use presets for consistency** - Define theme defaults once
|
|
201
|
-
4. **Avoid inline styles** - Use only for truly dynamic values
|
|
202
|
-
5. **Keep specificity low** - Avoid `!important`, let cascade work
|
|
203
|
-
|
|
204
|
-
## Class Merging
|
|
205
|
-
|
|
206
|
-
The `cn()` utility merges classes intelligently:
|
|
207
|
-
|
|
208
|
-
```typescript
|
|
209
|
-
import { cn } from '@svelte-atoms/core/utils';
|
|
210
|
-
|
|
211
|
-
// Resolves conflicts automatically
|
|
212
|
-
cn('px-2 py-1', 'px-4'); // Result: 'py-1 px-4'
|
|
213
|
-
|
|
214
|
-
// Handles conditionals
|
|
215
|
-
cn('base', isActive && 'active', false && 'ignored');
|
|
216
|
-
```
|
|
1
|
+
# Styling Guide for @svelte-atoms/core
|
|
2
|
+
|
|
3
|
+
> **Audience**: LLMs and developers working with @svelte-atoms/core
|
|
4
|
+
|
|
5
|
+
## Core Concepts
|
|
6
|
+
|
|
7
|
+
All components accept a `class` prop that supports:
|
|
8
|
+
|
|
9
|
+
```svelte
|
|
10
|
+
<!-- String -->
|
|
11
|
+
<Button class="bg-blue-500 px-4 py-2 text-white">Click me</Button>
|
|
12
|
+
|
|
13
|
+
<!-- Array with conditionals -->
|
|
14
|
+
<Button class={['base-class', isActive && 'active-class', klass]}>Click me</Button>
|
|
15
|
+
|
|
16
|
+
<!-- Object -->
|
|
17
|
+
<Button class={{ 'bg-blue-500': isPrimary, 'bg-gray-500': !isPrimary }}>Click me</Button>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## 1. TailwindCSS (Primary Method)
|
|
21
|
+
|
|
22
|
+
Use Tailwind utility classes for all styling needs:
|
|
23
|
+
|
|
24
|
+
```svelte
|
|
25
|
+
<!-- Layout & spacing -->
|
|
26
|
+
<Card.Root class="max-w-sm p-4">
|
|
27
|
+
<Card.Header>
|
|
28
|
+
<Card.Title class="text-lg font-semibold">Title</Card.Title>
|
|
29
|
+
</Card.Header>
|
|
30
|
+
</Card.Root>
|
|
31
|
+
|
|
32
|
+
<!-- Interactive states -->
|
|
33
|
+
<button class="bg-blue-500 px-4 py-2 text-white hover:bg-blue-600 active:bg-blue-700">
|
|
34
|
+
Action
|
|
35
|
+
</button>
|
|
36
|
+
|
|
37
|
+
<!-- Responsive -->
|
|
38
|
+
<h2 class="text-2xl md:text-3xl lg:text-4xl">Responsive heading</h2>
|
|
39
|
+
|
|
40
|
+
<!-- With opacity -->
|
|
41
|
+
<div class="bg-foreground/10">Subtle background</div>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Class Order Pattern
|
|
45
|
+
|
|
46
|
+
```svelte
|
|
47
|
+
<HtmlAtom
|
|
48
|
+
class={[
|
|
49
|
+
'base-layout-classes', // flex, grid, etc.
|
|
50
|
+
'sizing-classes', // w-full, px-4, etc.
|
|
51
|
+
'visual-classes', // bg-blue-500, border, etc.
|
|
52
|
+
isOpen && 'conditional', // Conditional classes
|
|
53
|
+
'$preset', // Preset placeholder (if using presets)
|
|
54
|
+
klass // User overrides (highest priority)
|
|
55
|
+
]}
|
|
56
|
+
/>
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## 2. Preset System
|
|
60
|
+
|
|
61
|
+
Define default styles once, use everywhere:
|
|
62
|
+
|
|
63
|
+
```svelte
|
|
64
|
+
<script lang="ts">
|
|
65
|
+
import { setPreset } from '@svelte-atoms/core/context';
|
|
66
|
+
|
|
67
|
+
const preset = {
|
|
68
|
+
// Simple preset
|
|
69
|
+
button: () => ({
|
|
70
|
+
class: 'bg-primary text-primary-foreground px-4 py-2 rounded'
|
|
71
|
+
}),
|
|
72
|
+
|
|
73
|
+
// With custom element
|
|
74
|
+
accordion: () => ({
|
|
75
|
+
as: 'ul',
|
|
76
|
+
class: 'w-full max-w-md rounded-md border'
|
|
77
|
+
}),
|
|
78
|
+
|
|
79
|
+
// Dynamic with state
|
|
80
|
+
'accordion.item.header': (bond) => ({
|
|
81
|
+
class: bond?.state?.isActive ? 'text-foreground' : 'text-foreground/50'
|
|
82
|
+
})
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
setPreset(preset);
|
|
86
|
+
</script>
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Using the `$preset` placeholder:**
|
|
90
|
+
|
|
91
|
+
```svelte
|
|
92
|
+
<!-- In your component -->
|
|
93
|
+
<HtmlAtom
|
|
94
|
+
preset="button"
|
|
95
|
+
class={[
|
|
96
|
+
'component-defaults',
|
|
97
|
+
'$preset', // Replaced with preset classes
|
|
98
|
+
klass // User classes override
|
|
99
|
+
]}
|
|
100
|
+
/>
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## 3. CSS Custom Properties
|
|
104
|
+
|
|
105
|
+
Use design tokens from `root.css`:
|
|
106
|
+
|
|
107
|
+
```svelte
|
|
108
|
+
<!-- Color tokens -->
|
|
109
|
+
<div class="bg-background text-foreground">Background color</div>
|
|
110
|
+
<Button class="bg-primary text-primary-foreground">Primary button</Button>
|
|
111
|
+
|
|
112
|
+
<!-- With opacity -->
|
|
113
|
+
<div class="bg-foreground/10 text-foreground/50">Subtle styling</div>
|
|
114
|
+
|
|
115
|
+
<!-- Borders and shadows -->
|
|
116
|
+
<Card.Root class="border-border border shadow-lg">Card</Card.Root>
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**Available tokens:**
|
|
120
|
+
|
|
121
|
+
- Colors: `background`, `foreground`, `primary`, `secondary`, `muted`, `accent`, `destructive`, `border`
|
|
122
|
+
- Each color has `-foreground` variant
|
|
123
|
+
- Shadows: `shadow-sm`, `shadow-md`, `shadow-lg`, `shadow-xl`
|
|
124
|
+
|
|
125
|
+
## 4. Conditional Classes
|
|
126
|
+
|
|
127
|
+
Most common pattern from stories:
|
|
128
|
+
|
|
129
|
+
```svelte
|
|
130
|
+
<script>
|
|
131
|
+
let isOpen = $state(false);
|
|
132
|
+
</script>
|
|
133
|
+
|
|
134
|
+
<!-- Array with conditions -->
|
|
135
|
+
<Collapsible.Body class={['pointer-events-none h-0 opacity-0', isOpen && 'pointer-events-auto']}>
|
|
136
|
+
Content
|
|
137
|
+
</Collapsible.Body>
|
|
138
|
+
|
|
139
|
+
<!-- Ternary -->
|
|
140
|
+
<Tab.Root class={isActive ? 'opacity-100' : 'opacity-50'}>Tab content</Tab.Root>
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## 5. Component Variants
|
|
144
|
+
|
|
145
|
+
Create reusable variants:
|
|
146
|
+
|
|
147
|
+
```svelte
|
|
148
|
+
<script lang="ts">
|
|
149
|
+
let { variant = 'primary', size = 'md', class: klass = '' } = $props();
|
|
150
|
+
|
|
151
|
+
const variants = {
|
|
152
|
+
primary: 'bg-blue-500 text-white hover:bg-blue-600',
|
|
153
|
+
secondary: 'bg-gray-200 text-gray-800 hover:bg-gray-300'
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
const sizes = {
|
|
157
|
+
sm: 'px-3 py-1.5 text-xs',
|
|
158
|
+
md: 'px-4 py-2 text-sm',
|
|
159
|
+
lg: 'px-6 py-3 text-base'
|
|
160
|
+
};
|
|
161
|
+
</script>
|
|
162
|
+
|
|
163
|
+
<Button class="{variants[variant]} {sizes[size]} {klass}">
|
|
164
|
+
{@render children?.()}
|
|
165
|
+
</Button>
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## 6. Inline Styles
|
|
169
|
+
|
|
170
|
+
Use for dynamic values only:
|
|
171
|
+
|
|
172
|
+
```svelte
|
|
173
|
+
<script>
|
|
174
|
+
let width = $state(240);
|
|
175
|
+
</script>
|
|
176
|
+
|
|
177
|
+
<!-- ✅ Good: Dynamic values -->
|
|
178
|
+
<div style="width: {width}px; opacity: {isOpen ? 1 : 0}">Dynamic sizing</div>
|
|
179
|
+
|
|
180
|
+
<!-- ❌ Avoid: Static styling -->
|
|
181
|
+
<div style="padding: 16px; background: blue;">Use Tailwind instead</div>
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Quick Reference
|
|
185
|
+
|
|
186
|
+
| Need | Use |
|
|
187
|
+
| -------------- | ------------------------------------ |
|
|
188
|
+
| Static styling | TailwindCSS classes |
|
|
189
|
+
| Theme/defaults | Preset system |
|
|
190
|
+
| Conditional | Array syntax with `&&` |
|
|
191
|
+
| Responsive | Tailwind breakpoints (`md:`, `lg:`) |
|
|
192
|
+
| Colors | CSS custom properties (`bg-primary`) |
|
|
193
|
+
| Dynamic values | Inline styles |
|
|
194
|
+
| Variants | Computed class objects |
|
|
195
|
+
|
|
196
|
+
## Best Practices
|
|
197
|
+
|
|
198
|
+
1. **Prefer Tailwind** - Use utility classes for 90% of styling
|
|
199
|
+
2. **Class order matters** - Base → Conditionals → `$preset` → User classes
|
|
200
|
+
3. **Use presets for consistency** - Define theme defaults once
|
|
201
|
+
4. **Avoid inline styles** - Use only for truly dynamic values
|
|
202
|
+
5. **Keep specificity low** - Avoid `!important`, let cascade work
|
|
203
|
+
|
|
204
|
+
## Class Merging
|
|
205
|
+
|
|
206
|
+
The `cn()` utility merges classes intelligently:
|
|
207
|
+
|
|
208
|
+
```typescript
|
|
209
|
+
import { cn } from '@svelte-atoms/core/utils';
|
|
210
|
+
|
|
211
|
+
// Resolves conflicts automatically
|
|
212
|
+
cn('px-2 py-1', 'px-4'); // Result: 'py-1 px-4'
|
|
213
|
+
|
|
214
|
+
// Handles conditionals
|
|
215
|
+
cn('base', isActive && 'active', false && 'ignored');
|
|
216
|
+
```
|
package/llm/usage.md
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
# Component Usage Patterns
|
|
2
|
-
|
|
3
|
-
## Namespace.Atom Pattern
|
|
4
|
-
|
|
5
|
-
Components follow a hierarchical naming pattern using dot notation:
|
|
6
|
-
|
|
7
|
-
```svelte
|
|
8
|
-
<Form.Root>
|
|
9
|
-
<Form.Field>
|
|
10
|
-
<Form.Label />
|
|
11
|
-
<Form.Control />
|
|
12
|
-
</Form.Field>
|
|
13
|
-
</Form.Root>
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
## Naming Convention
|
|
17
|
-
|
|
18
|
-
- **Namespace** = Component family (e.g., `Form`, `Button`, `Dropdown`)
|
|
19
|
-
- **Atom** = Specific component within the family (e.g., `Root`, `Field`, `Label`)
|
|
20
|
-
|
|
21
|
-
## Import Pattern
|
|
22
|
-
|
|
23
|
-
```javascript
|
|
24
|
-
import { Form } from '$lib/components/form';
|
|
25
|
-
|
|
26
|
-
// Usage
|
|
27
|
-
<Form.Root>
|
|
28
|
-
<Form.Field>
|
|
29
|
-
<Form.Label>Username</Form.Label>
|
|
30
|
-
<Form.Control type="text" />
|
|
31
|
-
</Form.Field>
|
|
32
|
-
</Form.Root>;
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Benefits
|
|
36
|
-
|
|
37
|
-
- **Clear hierarchy** - Components group logically
|
|
38
|
-
- **Namespace isolation** - Prevents naming conflicts
|
|
39
|
-
- **Discoverable API** - IDE autocomplete shows related components
|
|
40
|
-
- **Consistent patterns** - Same structure across all component families
|
|
41
|
-
|
|
42
|
-
## Examples
|
|
43
|
-
|
|
44
|
-
- `Button.Root`, `Button.Icon`, `Button.Text`
|
|
45
|
-
- `Dropdown.Root`, `Dropdown.Trigger`, `Dropdown.Content`
|
|
46
|
-
- `Form.Root`, `Form.Field`, `Form.Label`, `Form.Control`
|
|
1
|
+
# Component Usage Patterns
|
|
2
|
+
|
|
3
|
+
## Namespace.Atom Pattern
|
|
4
|
+
|
|
5
|
+
Components follow a hierarchical naming pattern using dot notation:
|
|
6
|
+
|
|
7
|
+
```svelte
|
|
8
|
+
<Form.Root>
|
|
9
|
+
<Form.Field>
|
|
10
|
+
<Form.Label />
|
|
11
|
+
<Form.Control />
|
|
12
|
+
</Form.Field>
|
|
13
|
+
</Form.Root>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Naming Convention
|
|
17
|
+
|
|
18
|
+
- **Namespace** = Component family (e.g., `Form`, `Button`, `Dropdown`)
|
|
19
|
+
- **Atom** = Specific component within the family (e.g., `Root`, `Field`, `Label`)
|
|
20
|
+
|
|
21
|
+
## Import Pattern
|
|
22
|
+
|
|
23
|
+
```javascript
|
|
24
|
+
import { Form } from '$lib/components/form';
|
|
25
|
+
|
|
26
|
+
// Usage
|
|
27
|
+
<Form.Root>
|
|
28
|
+
<Form.Field>
|
|
29
|
+
<Form.Label>Username</Form.Label>
|
|
30
|
+
<Form.Control type="text" />
|
|
31
|
+
</Form.Field>
|
|
32
|
+
</Form.Root>;
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Benefits
|
|
36
|
+
|
|
37
|
+
- **Clear hierarchy** - Components group logically
|
|
38
|
+
- **Namespace isolation** - Prevents naming conflicts
|
|
39
|
+
- **Discoverable API** - IDE autocomplete shows related components
|
|
40
|
+
- **Consistent patterns** - Same structure across all component families
|
|
41
|
+
|
|
42
|
+
## Examples
|
|
43
|
+
|
|
44
|
+
- `Button.Root`, `Button.Icon`, `Button.Text`
|
|
45
|
+
- `Dropdown.Root`, `Dropdown.Trigger`, `Dropdown.Content`
|
|
46
|
+
- `Form.Root`, `Form.Field`, `Form.Label`, `Form.Control`
|