@fragment-build/ui 3.0.9 → 3.0.11

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.
Files changed (48) hide show
  1. package/.storybook/style.css +3 -0
  2. package/components/grid/Grid.js +1 -0
  3. package/components/grid/Grid.js.map +1 -1
  4. package/components/grid/grid.css +17 -0
  5. package/components/multi-switch/MultiSwitch.js +1 -0
  6. package/components/multi-switch/MultiSwitch.js.map +1 -1
  7. package/components/multi-switch/multi-switch.css +24 -0
  8. package/components/theme-switch/ThemeSwitch.js +1 -0
  9. package/components/theme-switch/ThemeSwitch.js.map +1 -1
  10. package/fragments/form/Form.js +1 -0
  11. package/fragments/form/Form.js.map +1 -1
  12. package/fragments/form/FormSection.js +1 -0
  13. package/fragments/form/FormSection.js.map +1 -1
  14. package/fragments/form/form-section.css +41 -0
  15. package/fragments/form/form.css +5 -0
  16. package/fragments/navbar/Navbar.js +1 -0
  17. package/fragments/navbar/Navbar.js.map +1 -1
  18. package/fragments/navbar/navbar.css +25 -0
  19. package/fragments/page/PageHeader.js +1 -0
  20. package/fragments/page/PageHeader.js.map +1 -1
  21. package/fragments/page/page-header.css +13 -0
  22. package/fragments/shell/Shell.js +1 -0
  23. package/fragments/shell/Shell.js.map +1 -1
  24. package/fragments/shell/shell.css +22 -0
  25. package/fragments/sidebar/Sidebar.js +1 -0
  26. package/fragments/sidebar/Sidebar.js.map +1 -1
  27. package/fragments/sidebar/SidebarNavigation.js +1 -0
  28. package/fragments/sidebar/SidebarNavigation.js.map +1 -1
  29. package/fragments/sidebar/sidebar.css +205 -0
  30. package/fragments/widget/Widget.js +1 -0
  31. package/fragments/widget/Widget.js.map +1 -1
  32. package/fragments/widget/widget.css +29 -0
  33. package/index.css +113 -0
  34. package/package.json +4 -3
  35. package/provider.js +1 -0
  36. package/provider.js.map +1 -1
  37. package/src/components/grid/grid.css +17 -0
  38. package/src/components/multi-switch/multi-switch.css +24 -0
  39. package/src/fragments/form/form-section.css +41 -0
  40. package/src/fragments/form/form.css +5 -0
  41. package/src/fragments/navbar/navbar.css +25 -0
  42. package/src/fragments/page/page-header.css +13 -0
  43. package/src/fragments/shell/shell.css +22 -0
  44. package/src/fragments/sidebar/sidebar.css +205 -0
  45. package/src/fragments/widget/widget.css +29 -0
  46. package/src/index.css +113 -0
  47. package/src/theme.example.css +96 -0
  48. package/theme.example.css +96 -0
package/index.css ADDED
@@ -0,0 +1,113 @@
1
+ @theme {
2
+ --text-xs: 13px;
3
+ --text-sm: 15px;
4
+ }
5
+
6
+ @layer base {
7
+ body {
8
+ @apply bg-background text-foreground;
9
+ }
10
+
11
+ h1 {
12
+ @apply text-3xl font-semibold;
13
+ }
14
+
15
+ h2 {
16
+ @apply text-2xl font-semibold;
17
+ }
18
+
19
+ h3 {
20
+ @apply text-xl font-semibold;
21
+ }
22
+ }
23
+
24
+ @layer components {
25
+ .input, .textarea, .select__trigger {
26
+ @apply border border-border px-6 py-4 shadow-none;
27
+ }
28
+
29
+ .select__indicator {
30
+ @apply right-4;
31
+ }
32
+
33
+ .tabs {
34
+ &:not(.tabs--secondary) {
35
+ .tabs__list {
36
+ @apply bg-surface p-0;
37
+
38
+ border-radius: calc(var(--radius-3xl) + 0.25rem);
39
+ }
40
+
41
+ .tabs__indicator {
42
+ @apply shadow-none bg-surface-tertiary;
43
+ }
44
+
45
+ .tabs__tab {
46
+ &[data-selected="true"] {
47
+ @apply text-surface-tertiary-foreground;
48
+ }
49
+ }
50
+ }
51
+
52
+ .tabs__tab {
53
+ @apply h-10 px-6 text-xs text-nowrap;
54
+ }
55
+
56
+ .tabs__list {
57
+ &[data-orientation="horizontal"] {
58
+ @apply w-auto;
59
+ }
60
+ }
61
+
62
+ &.tabs--secondary {
63
+ .tabs__tab {
64
+ @apply h-12 px-10;
65
+ }
66
+ }
67
+ }
68
+
69
+ .card {
70
+ @apply border border-border shadow-none;
71
+ }
72
+
73
+ .button {
74
+ &.button--md:not(.button--icon-only) {
75
+ @apply h-12 px-6;
76
+
77
+ @media (width >= 48rem) {
78
+ @apply h-12 px-6;
79
+ }
80
+ }
81
+ }
82
+ }
83
+
84
+ @import "./fragments/navbar/navbar.css";
85
+ @import "./fragments/sidebar/sidebar.css";
86
+ @import "./fragments/shell/shell.css";
87
+ @import "./fragments/page/page-header.css";
88
+ @import "./fragments/widget/widget.css";
89
+ @import "./components/grid/grid.css";
90
+ @import "./components/multi-switch/multi-switch.css";
91
+ @import "./fragments/form/form.css";
92
+ @import "./fragments/form/form-section.css";
93
+
94
+ .light,
95
+ .default,
96
+ [data-theme="light"],
97
+ [data-theme="default"] {
98
+ /* Theme Colors (Light Mode) */
99
+ --background: #fff;
100
+ --border: rgba(0, 0, 0, 0.07);
101
+ --surface-secondary: rgba(0, 0, 0, 0.02);
102
+ }
103
+
104
+ .dark,
105
+ [data-theme="dark"] {
106
+ /* Theme Colors (Dark Mode) */
107
+ --background: oklch(12% 0.005 285.823);
108
+ --foreground: var(--snow);
109
+ --border: rgba(255, 255, 255, 0.07);
110
+ --surface-secondary: rgba(255, 255, 255, 0.02);
111
+ }
112
+
113
+ /* @import "./theme.example.css"; */
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@fragment-build/ui",
3
- "version": "3.0.9",
3
+ "version": "3.0.11",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=22"
7
7
  },
8
8
  "main": "index.js",
9
9
  "types": "index.d.ts",
10
+ "style": "index.css",
10
11
  "repository": {
11
12
  "type": "git",
12
13
  "url": "git+https://github.com/fragment-build/fragment-ui.git"
@@ -54,8 +55,8 @@
54
55
  "vite": "8.0.13"
55
56
  },
56
57
  "scripts": {
57
- "build": "tsc",
58
- "build:prod": "tsc --outDir .",
58
+ "build": "tsc && rsync -a --prune-empty-dirs --include='*/' --include='*.css' --exclude='*' src/ dist/",
59
+ "build:prod": "tsc --outDir . && rsync -a --prune-empty-dirs --include='*/' --include='*.css' --exclude='*' src/ .",
59
60
  "lint": "eslint --report-unused-disable-directives --max-warnings 0 ./src",
60
61
  "storybook": "storybook dev -p 6006",
61
62
  "build-storybook": "storybook build",
package/provider.js CHANGED
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { jsx as _jsx } from "react/jsx-runtime";
2
3
  import { ThemeProvider } from 'next-themes';
3
4
  import { FragmentUIContext } from './context';
package/provider.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["src/provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAsB,MAAM,WAAW,CAAC;AAOlE,MAAM,CAAC,MAAM,kBAAkB,GAAsC,CAAC,EACpE,QAAQ,EACR,aAAa,GAAG,GAAG,GACpB,EAAE,EAAE;IACH,OAAO,CACL,KAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,aAAa,EAAE,YAClD,KAAC,aAAa,IAAC,SAAS,EAAC,OAAO,YAC7B,QAAQ,GACK,GACW,CAC9B,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["src/provider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAsB,MAAM,WAAW,CAAC;AAOlE,MAAM,CAAC,MAAM,kBAAkB,GAAsC,CAAC,EACpE,QAAQ,EACR,aAAa,GAAG,GAAG,GACpB,EAAE,EAAE;IACH,OAAO,CACL,KAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,aAAa,EAAE,YAClD,KAAC,aAAa,IAAC,SAAS,EAAC,OAAO,YAC7B,QAAQ,GACK,GACW,CAC9B,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ @layer components {
2
+ .fragment-grid {
3
+ @apply grid gap-6 grid-flow-row-dense;
4
+ }
5
+
6
+ .fragment-grid--sm {
7
+ @apply grid-cols-1;
8
+ }
9
+
10
+ .fragment-grid--md {
11
+ @apply grid-cols-1 lg:grid-cols-2;
12
+ }
13
+
14
+ .fragment-grid--lg {
15
+ @apply grid-cols-1 lg:grid-cols-2 2xl:grid-cols-3;
16
+ }
17
+ }
@@ -0,0 +1,24 @@
1
+ @layer components {
2
+ .fragment-multi-switch.toggle-button-group--horizontal .toggle-button:first-child {
3
+ padding-inline-start: 2px;
4
+ }
5
+
6
+ .fragment-multi-switch.toggle-button-group--horizontal .toggle-button:last-child {
7
+ padding-inline-end: 2px;
8
+ }
9
+
10
+
11
+ .fragment-multi-switch__btn--danger {
12
+ --toggle-button-bg-selected: var(--danger-soft);
13
+ --toggle-button-bg-selected-hover: var(--danger-soft-hover);
14
+ --toggle-button-bg-selected-pressed: var(--danger-soft-hover);
15
+ --toggle-button-fg-selected: var(--danger-soft-foreground);
16
+ }
17
+
18
+ .fragment-multi-switch__btn--neutral {
19
+ --toggle-button-bg-selected: var(--default-hover);
20
+ --toggle-button-bg-selected-hover: var(--default-hover);
21
+ --toggle-button-bg-selected-pressed: var(--default-hover);
22
+ --toggle-button-fg-selected: var(--default-foreground);
23
+ }
24
+ }
@@ -0,0 +1,41 @@
1
+ @layer components {
2
+ .fragment-form-section__main {
3
+ @apply flex flex-col;
4
+ }
5
+
6
+ .fragment-form-section__info {
7
+ @apply flex-1 pb-4;
8
+ }
9
+
10
+ .fragment-form-section__content {
11
+ @apply flex flex-col gap-4 flex-1 min-w-0;
12
+ }
13
+
14
+ .fragment-form-section__description {
15
+ @apply text-sm text-muted;
16
+ }
17
+
18
+ .fragment-form-section--horizontal {
19
+ .fragment-form-section__main {
20
+ @apply sm:flex-row;
21
+ }
22
+ .fragment-form-section__info {
23
+ @apply sm:max-w-sm sm:pr-4 sm:pb-0;
24
+ }
25
+ .fragment-form-section__content {
26
+ @apply sm:items-end sm:justify-center sm:max-w-sm;
27
+ }
28
+ }
29
+
30
+ .fragment-form-section--vertical {
31
+ .fragment-form-section__content {
32
+ @apply sm:max-w-3xl;
33
+ }
34
+ }
35
+
36
+ .fragment-form-section--full-width {
37
+ .fragment-form-section__content {
38
+ @apply sm:max-w-full;
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,5 @@
1
+ @layer components {
2
+ .fragment-form__separator {
3
+ @apply my-6;
4
+ }
5
+ }
@@ -0,0 +1,25 @@
1
+ @layer components {
2
+ .fragment-navbar__topbar {
3
+ @apply flex gap-6 items-center px-8 py-5;
4
+ }
5
+
6
+ .fragment-navbar__tabs {
7
+ @apply hidden md:block;
8
+ }
9
+
10
+ .fragment-navbar__end {
11
+ @apply ml-auto flex gap-4 items-center;
12
+ }
13
+
14
+ .fragment-navbar__bottom-nav {
15
+ @apply fixed md:hidden z-50 bottom-0 bg-background flex w-full gap-2 px-2 py-1 border-t border-border;
16
+ & > *,
17
+ & > * > * {
18
+ @apply h-12 flex-1;
19
+ }
20
+ }
21
+
22
+ .fragment-navbar__bottom-nav-badge {
23
+ @apply -top-0.5 -right-2.5;
24
+ }
25
+ }
@@ -0,0 +1,13 @@
1
+ @layer components {
2
+ .fragment-page-header {
3
+ @apply flex gap-4 justify-between sm:items-end mb-8 flex-col sm:flex-row;
4
+ }
5
+
6
+ .fragment-page-header__description {
7
+ @apply mt-2 text-muted;
8
+ }
9
+
10
+ .fragment-page-header__actions {
11
+ @apply flex gap-4;
12
+ }
13
+ }
@@ -0,0 +1,22 @@
1
+ @layer components {
2
+ .fragment-shell {
3
+ @apply flex min-h-screen;
4
+ }
5
+
6
+ .fragment-shell--vertical {
7
+ @apply flex-col;
8
+ }
9
+
10
+ .fragment-shell__main {
11
+ @apply flex-1 min-w-0 mx-auto;
12
+
13
+ .fragment-shell--horizontal & {
14
+ @apply px-8 lg:px-12 xl:px-20 py-14 max-w-[2100px];
15
+ }
16
+
17
+ .fragment-shell--vertical & {
18
+ @apply px-8 py-6 max-w-[2100px] w-full;
19
+ }
20
+
21
+ }
22
+ }
@@ -0,0 +1,205 @@
1
+ @layer components {
2
+ .fragment-sidebar {
3
+ @apply hidden md:flex;
4
+ }
5
+
6
+ .fragment-sidebar__collapsed {
7
+ @apply fixed top-0 left-0 border-r border-border flex flex-col h-screen gap-8 transition-all;
8
+ }
9
+
10
+ .fragment-sidebar__collapsed-body {
11
+ @apply w-20 items-center flex flex-col gap-8 px-3 pt-8 overflow-y-auto flex-1;
12
+ }
13
+
14
+ .fragment-sidebar__collapsed-footer {
15
+ @apply w-20 items-center flex flex-col gap-8 px-3 pb-8;
16
+ }
17
+
18
+ .fragment-sidebar__expanded {
19
+ @apply fixed top-0 left-0 border-r border-border flex flex-col h-screen gap-8 overflow-hidden transition-all;
20
+ }
21
+
22
+ .fragment-sidebar__expanded-body {
23
+ @apply w-72 flex flex-col gap-8 px-3 pt-8 overflow-y-auto flex-1;
24
+ }
25
+
26
+ .fragment-sidebar__expanded-footer {
27
+ @apply w-72 flex flex-col gap-8 px-3 pb-8;
28
+ }
29
+
30
+ .fragment-sidebar__placeholder {
31
+ @apply transition-all h-screen;
32
+ }
33
+
34
+ .fragment-sidebar__layout-button-wrapper {
35
+ @apply fixed top-6 transition-all;
36
+ }
37
+
38
+ .fragment-sidebar__layout-button {
39
+ @apply h-6! w-6!;
40
+ }
41
+
42
+ .fragment-sidebar__bottom-nav {
43
+ @apply fixed md:hidden z-50 bottom-0 bg-background flex w-full gap-2 px-2 py-1 border-t border-border;
44
+ & > *:nth-child(n+5):not(:last-child) {
45
+ @apply hidden;
46
+ }
47
+
48
+ & > *,
49
+ & > * > *,
50
+ & > * > * > * {
51
+ @apply h-12 flex-1 w-full;
52
+ }
53
+ }
54
+
55
+ .fragment-sidebar__bottom-nav-badge {
56
+ @apply -top-0.5 -right-2.5;
57
+ }
58
+
59
+ .fragment-sidebar__modal-body {
60
+ @apply flex flex-col gap-8;
61
+ }
62
+
63
+ .fragment-sidebar__modal-footer {
64
+ @apply flex flex-col gap-8;
65
+ }
66
+
67
+ .fragment-sidebar__collapsed-nav {
68
+ @apply flex flex-col gap-1;
69
+ & svg {
70
+ @apply size-5! shrink-0 self-center;
71
+ }
72
+ }
73
+
74
+ .fragment-sidebar__item {
75
+ &--center {
76
+ @apply my-auto max-w-full;
77
+ }
78
+ &--bottom {
79
+ @apply mt-auto max-w-full sticky bottom-0;
80
+ }
81
+ }
82
+
83
+ .fragment-sidebar__user-trigger {
84
+ @apply justify-start;
85
+ }
86
+
87
+ .fragment-sidebar__user-info {
88
+ @apply flex items-center gap-2 px-2;
89
+ }
90
+
91
+ .fragment-sidebar__user-text {
92
+ @apply flex flex-col items-start;
93
+ }
94
+
95
+ .fragment-sidebar__custom-item {
96
+ @apply px-2;
97
+ }
98
+
99
+ .fragment-sidebar__nav {
100
+ @apply text-sm;
101
+
102
+ .list-box-item {
103
+ @apply px-3! pr-1! py-1! h-10!;
104
+ }
105
+
106
+ & svg {
107
+ @apply size-5 shrink-0 self-center;
108
+ }
109
+ }
110
+
111
+ .fragment-sidebar__accordion-trigger {
112
+ @apply w-full flex items-center gap-3 h-10 px-3 pr-1 py-1 rounded-2xl text-sm font-normal cursor-pointer
113
+ text-foreground transition-colors;
114
+ &:hover, &[data-hovered="true"] {
115
+ @apply bg-default!;
116
+ }
117
+ &--active {
118
+ @apply text-accent-soft-foreground;
119
+ }
120
+ & > .fragment-sidebar__accordion-label {
121
+ @apply flex-1 text-left;
122
+ }
123
+ }
124
+
125
+ .fragment-sidebar__accordion-trigger .accordion__indicator {
126
+ @apply w-8! shrink-0;
127
+ }
128
+
129
+ .fragment-sidebar__accordion-indicator {
130
+ @apply size-4 transition-transform duration-200;
131
+ [data-expanded] & {
132
+ @apply rotate-90;
133
+ }
134
+ }
135
+
136
+ .fragment-sidebar__tree-list {
137
+ @apply relative pl-7;
138
+ &::before {
139
+ content: '';
140
+ @apply absolute top-0 bottom-0 w-px bg-foreground opacity-15 rounded-full left-5;
141
+ }
142
+ .list-box {
143
+ @apply overflow-visible;
144
+ }
145
+ }
146
+
147
+ .fragment-sidebar__nav-item--active {
148
+ @apply bg-accent-soft! text-accent-soft-foreground!;
149
+ }
150
+
151
+ .fragment-sidebar__sub-item {
152
+ @apply pl-8! relative;
153
+ &::before {
154
+ content: '';
155
+ @apply absolute -left-3 ml-px top-1/2 -translate-y-1/2 w-3 h-px bg-foreground opacity-15;
156
+ }
157
+ }
158
+
159
+ .fragment-sidebar__collapsed-subnav-label {
160
+ @apply px-3 py-2 text-xs font-medium opacity-60;
161
+ }
162
+
163
+ /* Layout modifier variants */
164
+ .fragment-sidebar--auto {
165
+ .fragment-sidebar__expanded {
166
+ @apply w-20 opacity-0 pointer-events-none xl:w-72 xl:opacity-100 xl:pointer-events-auto;
167
+ }
168
+ .fragment-sidebar__placeholder {
169
+ @apply w-20 opacity-0 pointer-events-none xl:w-72 xl:opacity-100 xl:pointer-events-auto;
170
+ }
171
+ .fragment-sidebar__layout-button-wrapper {
172
+ @apply left-20 translate-x-1/2 rotate-180 xl:left-72 xl:-translate-x-1/2 xl:rotate-0;
173
+ }
174
+ .fragment-sidebar__collapsed {
175
+ @apply xl:opacity-0;
176
+ }
177
+ }
178
+
179
+ .fragment-sidebar--collapsed {
180
+ .fragment-sidebar__expanded {
181
+ @apply w-20 opacity-0 pointer-events-none;
182
+ }
183
+ .fragment-sidebar__placeholder {
184
+ @apply w-20 opacity-0 pointer-events-none;
185
+ }
186
+ .fragment-sidebar__layout-button-wrapper {
187
+ @apply left-20 translate-x-1/2 rotate-180;
188
+ }
189
+ }
190
+
191
+ .fragment-sidebar--expanded {
192
+ .fragment-sidebar__collapsed {
193
+ @apply opacity-0;
194
+ }
195
+ .fragment-sidebar__expanded {
196
+ @apply w-72;
197
+ }
198
+ .fragment-sidebar__placeholder {
199
+ @apply w-72;
200
+ }
201
+ .fragment-sidebar__layout-button-wrapper {
202
+ @apply left-72 -translate-x-1/2;
203
+ }
204
+ }
205
+ }
@@ -0,0 +1,29 @@
1
+ @layer components {
2
+ .fragment-widget {
3
+ @apply px-7 py-5 gap-5;
4
+ }
5
+
6
+ .fragment-widget__header {
7
+ @apply p-0;
8
+ }
9
+
10
+ .fragment-widget__header-end {
11
+ @apply ml-auto;
12
+ }
13
+
14
+ .fragment-widget__content {
15
+ @apply p-0 overflow-visible;
16
+ }
17
+
18
+ .fragment-widget--sm {
19
+ @apply col-span-1;
20
+ }
21
+
22
+ .fragment-widget--md {
23
+ @apply col-span-1 lg:col-span-2;
24
+ }
25
+
26
+ .fragment-widget--lg {
27
+ @apply col-span-1 lg:col-span-2 2xl:col-span-3;
28
+ }
29
+ }
package/src/index.css ADDED
@@ -0,0 +1,113 @@
1
+ @theme {
2
+ --text-xs: 13px;
3
+ --text-sm: 15px;
4
+ }
5
+
6
+ @layer base {
7
+ body {
8
+ @apply bg-background text-foreground;
9
+ }
10
+
11
+ h1 {
12
+ @apply text-3xl font-semibold;
13
+ }
14
+
15
+ h2 {
16
+ @apply text-2xl font-semibold;
17
+ }
18
+
19
+ h3 {
20
+ @apply text-xl font-semibold;
21
+ }
22
+ }
23
+
24
+ @layer components {
25
+ .input, .textarea, .select__trigger {
26
+ @apply border border-border px-6 py-4 shadow-none;
27
+ }
28
+
29
+ .select__indicator {
30
+ @apply right-4;
31
+ }
32
+
33
+ .tabs {
34
+ &:not(.tabs--secondary) {
35
+ .tabs__list {
36
+ @apply bg-surface p-0;
37
+
38
+ border-radius: calc(var(--radius-3xl) + 0.25rem);
39
+ }
40
+
41
+ .tabs__indicator {
42
+ @apply shadow-none bg-surface-tertiary;
43
+ }
44
+
45
+ .tabs__tab {
46
+ &[data-selected="true"] {
47
+ @apply text-surface-tertiary-foreground;
48
+ }
49
+ }
50
+ }
51
+
52
+ .tabs__tab {
53
+ @apply h-10 px-6 text-xs text-nowrap;
54
+ }
55
+
56
+ .tabs__list {
57
+ &[data-orientation="horizontal"] {
58
+ @apply w-auto;
59
+ }
60
+ }
61
+
62
+ &.tabs--secondary {
63
+ .tabs__tab {
64
+ @apply h-12 px-10;
65
+ }
66
+ }
67
+ }
68
+
69
+ .card {
70
+ @apply border border-border shadow-none;
71
+ }
72
+
73
+ .button {
74
+ &.button--md:not(.button--icon-only) {
75
+ @apply h-12 px-6;
76
+
77
+ @media (width >= 48rem) {
78
+ @apply h-12 px-6;
79
+ }
80
+ }
81
+ }
82
+ }
83
+
84
+ @import "./fragments/navbar/navbar.css";
85
+ @import "./fragments/sidebar/sidebar.css";
86
+ @import "./fragments/shell/shell.css";
87
+ @import "./fragments/page/page-header.css";
88
+ @import "./fragments/widget/widget.css";
89
+ @import "./components/grid/grid.css";
90
+ @import "./components/multi-switch/multi-switch.css";
91
+ @import "./fragments/form/form.css";
92
+ @import "./fragments/form/form-section.css";
93
+
94
+ .light,
95
+ .default,
96
+ [data-theme="light"],
97
+ [data-theme="default"] {
98
+ /* Theme Colors (Light Mode) */
99
+ --background: #fff;
100
+ --border: rgba(0, 0, 0, 0.07);
101
+ --surface-secondary: rgba(0, 0, 0, 0.02);
102
+ }
103
+
104
+ .dark,
105
+ [data-theme="dark"] {
106
+ /* Theme Colors (Dark Mode) */
107
+ --background: oklch(12% 0.005 285.823);
108
+ --foreground: var(--snow);
109
+ --border: rgba(255, 255, 255, 0.07);
110
+ --surface-secondary: rgba(255, 255, 255, 0.02);
111
+ }
112
+
113
+ /* @import "./theme.example.css"; */