twntyx-css 1.0.0
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 +105 -0
- package/llm/CHANGELOG.md +7 -0
- package/llm/components/ai-background.json +90 -0
- package/llm/components/ai-orb.json +91 -0
- package/llm/components/ai-perl.json +91 -0
- package/llm/components/all-components.json +104 -0
- package/llm/components/animation-references.json +84 -0
- package/llm/components/avatar.json +149 -0
- package/llm/components/badge.json +263 -0
- package/llm/components/banner-marketplace.json +81 -0
- package/llm/components/banner.json +120 -0
- package/llm/components/breadcrumb.json +169 -0
- package/llm/components/button-container.json +150 -0
- package/llm/components/button-feedback.json +155 -0
- package/llm/components/button.json +290 -0
- package/llm/components/card-assessment.json +93 -0
- package/llm/components/card-test.json +83 -0
- package/llm/components/card.json +94 -0
- package/llm/components/chat.json +155 -0
- package/llm/components/checkbox.json +186 -0
- package/llm/components/checkmark.json +175 -0
- package/llm/components/collapsible.json +100 -0
- package/llm/components/color-palette.json +79 -0
- package/llm/components/color-usage.json +83 -0
- package/llm/components/combobox.json +143 -0
- package/llm/components/command-palette.json +159 -0
- package/llm/components/countdown.json +113 -0
- package/llm/components/datepicker.json +151 -0
- package/llm/components/divider.json +104 -0
- package/llm/components/empty-state.json +80 -0
- package/llm/components/field.json +123 -0
- package/llm/components/fieldset.json +78 -0
- package/llm/components/file-upload.json +163 -0
- package/llm/components/form-example.json +82 -0
- package/llm/components/getting-started.json +70 -0
- package/llm/components/icons-reference.json +78 -0
- package/llm/components/illustrations-library.json +78 -0
- package/llm/components/input-group.json +94 -0
- package/llm/components/introduction.json +71 -0
- package/llm/components/join.json +105 -0
- package/llm/components/kbd.json +139 -0
- package/llm/components/key-value.json +86 -0
- package/llm/components/link.json +120 -0
- package/llm/components/loader.json +117 -0
- package/llm/components/logotype.json +75 -0
- package/llm/components/menu.json +192 -0
- package/llm/components/modal.json +167 -0
- package/llm/components/navbar.json +158 -0
- package/llm/components/pagination.json +122 -0
- package/llm/components/pie-chart.json +94 -0
- package/llm/components/popover.json +174 -0
- package/llm/components/progress-bullet.json +203 -0
- package/llm/components/progress-linear.json +129 -0
- package/llm/components/progress-radial.json +125 -0
- package/llm/components/radio.json +162 -0
- package/llm/components/range-slider.json +125 -0
- package/llm/components/scrollbar.json +96 -0
- package/llm/components/select-input.json +224 -0
- package/llm/components/shadows.json +107 -0
- package/llm/components/skeleton.json +84 -0
- package/llm/components/stacked-chart.json +100 -0
- package/llm/components/state.json +138 -0
- package/llm/components/stepper.json +95 -0
- package/llm/components/steps.json +177 -0
- package/llm/components/surface.json +181 -0
- package/llm/components/table.json +223 -0
- package/llm/components/tabs.json +147 -0
- package/llm/components/template-ai.json +80 -0
- package/llm/components/template-login.json +88 -0
- package/llm/components/template-stats.json +76 -0
- package/llm/components/text-input.json +275 -0
- package/llm/components/textarea.json +183 -0
- package/llm/components/timeline.json +142 -0
- package/llm/components/toast.json +164 -0
- package/llm/components/toggle.json +158 -0
- package/llm/components/tool-svg-to-base64.json +78 -0
- package/llm/components/tool-svg-to-icon-data.json +81 -0
- package/llm/components/tooltip.json +90 -0
- package/llm/examples/ai-background.html +1 -0
- package/llm/examples/ai-orb.html +1 -0
- package/llm/examples/ai-perl.html +1 -0
- package/llm/examples/all-components.html +1 -0
- package/llm/examples/animation-references.html +1 -0
- package/llm/examples/avatar.html +1 -0
- package/llm/examples/badge.html +1 -0
- package/llm/examples/banner-marketplace.html +1 -0
- package/llm/examples/banner.html +1 -0
- package/llm/examples/breadcrumb.html +1 -0
- package/llm/examples/button-container.html +1 -0
- package/llm/examples/button-feedback.html +1 -0
- package/llm/examples/button.html +3 -0
- package/llm/examples/card-assessment.html +1 -0
- package/llm/examples/card-test.html +1 -0
- package/llm/examples/card.html +1 -0
- package/llm/examples/chat.html +1 -0
- package/llm/examples/checkbox.html +1 -0
- package/llm/examples/checkmark.html +1 -0
- package/llm/examples/collapsible.html +1 -0
- package/llm/examples/color-palette.html +1 -0
- package/llm/examples/color-usage.html +1 -0
- package/llm/examples/combobox.html +1 -0
- package/llm/examples/command-palette.html +1 -0
- package/llm/examples/countdown.html +1 -0
- package/llm/examples/datepicker.html +1 -0
- package/llm/examples/divider.html +1 -0
- package/llm/examples/empty-state.html +1 -0
- package/llm/examples/field.html +1 -0
- package/llm/examples/fieldset.html +1 -0
- package/llm/examples/file-upload.html +1 -0
- package/llm/examples/form-example.html +1 -0
- package/llm/examples/getting-started.html +1 -0
- package/llm/examples/icons-reference.html +1 -0
- package/llm/examples/illustrations-library.html +1 -0
- package/llm/examples/input-group.html +1 -0
- package/llm/examples/introduction.html +1 -0
- package/llm/examples/join.html +1 -0
- package/llm/examples/kbd.html +1 -0
- package/llm/examples/key-value.html +1 -0
- package/llm/examples/link.html +1 -0
- package/llm/examples/loader.html +1 -0
- package/llm/examples/logotype.html +1 -0
- package/llm/examples/menu.html +1 -0
- package/llm/examples/modal.html +16 -0
- package/llm/examples/navbar.html +1 -0
- package/llm/examples/pagination.html +1 -0
- package/llm/examples/pie-chart.html +1 -0
- package/llm/examples/popover.html +1 -0
- package/llm/examples/progress-bullet.html +1 -0
- package/llm/examples/progress-linear.html +1 -0
- package/llm/examples/progress-radial.html +1 -0
- package/llm/examples/radio.html +1 -0
- package/llm/examples/range-slider.html +1 -0
- package/llm/examples/scrollbar.html +1 -0
- package/llm/examples/select-input.html +1 -0
- package/llm/examples/shadows.html +1 -0
- package/llm/examples/skeleton.html +1 -0
- package/llm/examples/stacked-chart.html +1 -0
- package/llm/examples/state.html +1 -0
- package/llm/examples/stepper.html +1 -0
- package/llm/examples/steps.html +1 -0
- package/llm/examples/surface.html +1 -0
- package/llm/examples/table.html +16 -0
- package/llm/examples/tabs.html +1 -0
- package/llm/examples/template-ai.html +1 -0
- package/llm/examples/template-login.html +1 -0
- package/llm/examples/template-stats.html +1 -0
- package/llm/examples/text-input.html +10 -0
- package/llm/examples/textarea.html +1 -0
- package/llm/examples/timeline.html +1 -0
- package/llm/examples/toast.html +5 -0
- package/llm/examples/toggle.html +1 -0
- package/llm/examples/tool-svg-to-base64.html +1 -0
- package/llm/examples/tool-svg-to-icon-data.html +1 -0
- package/llm/examples/tooltip.html +1 -0
- package/llm/index.json +1615 -0
- package/llm/llms.txt +18 -0
- package/llm/patterns.json +111 -0
- package/llm/rules.json +47 -0
- package/llm/schema.json +804 -0
- package/llm/tokens.json +3629 -0
- package/package.json +30 -0
- package/styles/ai.css +114 -0
- package/styles/animation.css +2493 -0
- package/styles/avatar.css +101 -0
- package/styles/background-ai.css +118 -0
- package/styles/badge.css +274 -0
- package/styles/banner.css +98 -0
- package/styles/breadcrumb.css +72 -0
- package/styles/button.css +621 -0
- package/styles/card.css +27 -0
- package/styles/chart-pie.css +39 -0
- package/styles/chart-stacked.css +91 -0
- package/styles/chat.css +506 -0
- package/styles/checkmark.css +105 -0
- package/styles/code.css +264 -0
- package/styles/collapsible.css +93 -0
- package/styles/colors.css +536 -0
- package/styles/combobox.css +66 -0
- package/styles/command.css +81 -0
- package/styles/contest.css +227 -0
- package/styles/countdown.css +65 -0
- package/styles/datepicker.css +124 -0
- package/styles/divider.css +72 -0
- package/styles/drawer.css +142 -0
- package/styles/dropdown.css +22 -0
- package/styles/empty-state.css +48 -0
- package/styles/field.css +47 -0
- package/styles/fieldset.css +24 -0
- package/styles/form-checkbox-radio-toggle.css +233 -0
- package/styles/form-fileupload.css +146 -0
- package/styles/form-rangeslider.css +106 -0
- package/styles/form-shared.css +41 -0
- package/styles/form-text-select.css +411 -0
- package/styles/form.css +86 -0
- package/styles/globals.css +66 -0
- package/styles/input-group.css +63 -0
- package/styles/join.css +141 -0
- package/styles/kbd.css +55 -0
- package/styles/key-value.css +44 -0
- package/styles/link.css +48 -0
- package/styles/loader.css +183 -0
- package/styles/logotype.css +13 -0
- package/styles/menu.css +317 -0
- package/styles/modal.css +172 -0
- package/styles/navbar.css +48 -0
- package/styles/package-quill.css +1001 -0
- package/styles/pagination.css +147 -0
- package/styles/panel.css +113 -0
- package/styles/popover.css +303 -0
- package/styles/prism.css +60 -0
- package/styles/progress.css +209 -0
- package/styles/scrollbar.css +17 -0
- package/styles/shadow.css +25 -0
- package/styles/shared.css +226 -0
- package/styles/skeleton.css +34 -0
- package/styles/state.css +150 -0
- package/styles/stepper.css +72 -0
- package/styles/steps.css +98 -0
- package/styles/surface.css +252 -0
- package/styles/tab.css +286 -0
- package/styles/table.css +243 -0
- package/styles/theme.css +126 -0
- package/styles/timeline.css +193 -0
- package/styles/toast.css +150 -0
- package/styles/tooltip.css +8 -0
- package/styles/typography.css +160 -0
- package/styles/utility.css +20 -0
- package/tailwind.config.cjs +9 -0
package/styles/menu.css
ADDED
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
/*----------------------------*/
|
|
2
|
+
/* MENU */
|
|
3
|
+
/*----------------------------*/
|
|
4
|
+
|
|
5
|
+
/* Base Menu */
|
|
6
|
+
@utility menu {
|
|
7
|
+
@apply flex flex-col gap-1 text-sm;
|
|
8
|
+
|
|
9
|
+
/* Menu Items */
|
|
10
|
+
|
|
11
|
+
> li {
|
|
12
|
+
> * {
|
|
13
|
+
@apply font-medium text-left select-none;
|
|
14
|
+
}
|
|
15
|
+
ul {
|
|
16
|
+
@apply font-normal;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
li {
|
|
21
|
+
@apply flex relative flex-col flex-wrap items-stretch shrink-0;
|
|
22
|
+
|
|
23
|
+
/* Default Link/Button Style */
|
|
24
|
+
> *:not(ul, details, .menu-title) {
|
|
25
|
+
@apply flex gap-2 items-center px-4 py-2 w-full max-w-full text-sm rounded cursor-pointer include-hover-primary include-interactive text-text-tertiary hover:text-text-default disabled:cursor-not-allowed disabled:text-text-disabled disabled:hover:bg-transparent;
|
|
26
|
+
|
|
27
|
+
&:active {
|
|
28
|
+
> * {
|
|
29
|
+
@apply translate-y-px duration-0;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
span {
|
|
35
|
+
@apply truncate min-w-fit;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
> * {
|
|
39
|
+
&:has(svg:only-child) {
|
|
40
|
+
@apply px-2;
|
|
41
|
+
}
|
|
42
|
+
> *:not(svg, .avatar) {
|
|
43
|
+
@apply w-full;
|
|
44
|
+
}
|
|
45
|
+
svg {
|
|
46
|
+
@apply fill-current size-5;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
:where(a, button) {
|
|
51
|
+
@apply include-interactive;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
&.is-selected {
|
|
55
|
+
> *:not(ul, details, .menu-title) {
|
|
56
|
+
@apply include-hover-primary-hover;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/* Nested menus */
|
|
61
|
+
ul {
|
|
62
|
+
@apply relative pl-4;
|
|
63
|
+
|
|
64
|
+
/* Add vertical line for nested menus */
|
|
65
|
+
&:before {
|
|
66
|
+
@apply content-[''] absolute inset-y-3 left-3 w-px bg-line-default;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/* Details element for collapsible menu */
|
|
71
|
+
> details {
|
|
72
|
+
@apply w-full;
|
|
73
|
+
|
|
74
|
+
summary {
|
|
75
|
+
@apply flex gap-2 items-center px-4 py-2 text-sm list-none rounded cursor-pointer include-interactive text-text-default include-hover-primary;
|
|
76
|
+
|
|
77
|
+
&::after {
|
|
78
|
+
@apply shrink-0 content-[''] ml-auto opacity-50 transition-transform duration-150 ease-anticipate include-transition bg-text-secondary mask-carat text-text-secondary size-5 rotate-0;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
> span {
|
|
82
|
+
@apply truncate;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
&[open] > summary::after {
|
|
87
|
+
@apply rotate-180;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
&.is-disabled > * {
|
|
92
|
+
@apply cursor-not-allowed text-text-disabled hover:bg-transparent hover:text-text-disabled active:outline-transparent;
|
|
93
|
+
&::before {
|
|
94
|
+
@apply hidden;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
&.is-active > * {
|
|
99
|
+
@apply font-medium include-hover-primary-active text-text-brand hover:text-text-brand;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
&:has(:focus-visible) > * {
|
|
103
|
+
@apply outline-line-brand;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
li.menu-divider {
|
|
108
|
+
@apply w-full h-px bg-line-default;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
summary {
|
|
112
|
+
&::marker,
|
|
113
|
+
&::-webkit-details-marker {
|
|
114
|
+
@apply hidden;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
svg {
|
|
119
|
+
@apply shrink-0;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/* Menu Title */
|
|
124
|
+
@utility menu-title {
|
|
125
|
+
@apply px-4 py-2 font-body font-medium text-text-secondary;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
@utility menu-noline {
|
|
129
|
+
li {
|
|
130
|
+
> ul {
|
|
131
|
+
&:before {
|
|
132
|
+
@apply hidden;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/* Horizontal Menu */
|
|
139
|
+
@utility menu-horizontal {
|
|
140
|
+
@apply flex-row items-center;
|
|
141
|
+
|
|
142
|
+
li {
|
|
143
|
+
@apply flex-row;
|
|
144
|
+
|
|
145
|
+
/* Adjust dropdown positioning for horizontal menu */
|
|
146
|
+
> details > ul {
|
|
147
|
+
@apply absolute left-0 top-full py-2 pr-2 pl-0 mt-4 rounded-2xl border min-w-48 bg-background-surface border-line-default shadow-elevation-low;
|
|
148
|
+
|
|
149
|
+
&:before {
|
|
150
|
+
content: none;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/* Sizes */
|
|
157
|
+
@utility menu-xs {
|
|
158
|
+
@apply text-xs;
|
|
159
|
+
li {
|
|
160
|
+
> * {
|
|
161
|
+
&:not(ul, details, .menu-title),
|
|
162
|
+
details > summary {
|
|
163
|
+
@apply gap-1 px-2 py-1 text-xs;
|
|
164
|
+
}
|
|
165
|
+
&:has(svg:only-child) {
|
|
166
|
+
@apply px-1;
|
|
167
|
+
}
|
|
168
|
+
> svg {
|
|
169
|
+
@apply size-3.5;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
.menu-title {
|
|
174
|
+
@apply px-2 py-1;
|
|
175
|
+
}
|
|
176
|
+
&.menu-check {
|
|
177
|
+
li.is-active > *::after {
|
|
178
|
+
@apply size-3;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
@utility menu-sm {
|
|
184
|
+
@apply text-xs;
|
|
185
|
+
li {
|
|
186
|
+
> * {
|
|
187
|
+
&:not(ul, details, .menu-title),
|
|
188
|
+
details > summary {
|
|
189
|
+
@apply gap-1.5 px-3 py-1.5 text-xs;
|
|
190
|
+
}
|
|
191
|
+
&:has(svg:only-child) {
|
|
192
|
+
@apply px-1.5;
|
|
193
|
+
}
|
|
194
|
+
> svg {
|
|
195
|
+
@apply size-[18px];
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
.menu-title {
|
|
200
|
+
@apply px-3 py-1.5;
|
|
201
|
+
}
|
|
202
|
+
&.menu-check {
|
|
203
|
+
li.is-active > *::after {
|
|
204
|
+
@apply size-4;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
@utility menu-lg {
|
|
210
|
+
@apply text-xs;
|
|
211
|
+
li {
|
|
212
|
+
> * {
|
|
213
|
+
&:not(ul, details, .menu-title),
|
|
214
|
+
details > summary {
|
|
215
|
+
@apply gap-3 px-5 py-3 text-xs;
|
|
216
|
+
}
|
|
217
|
+
&:has(svg:only-child) {
|
|
218
|
+
@apply px-3;
|
|
219
|
+
}
|
|
220
|
+
> svg {
|
|
221
|
+
@apply size-6;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
.menu-title {
|
|
226
|
+
@apply px-5 py-3;
|
|
227
|
+
}
|
|
228
|
+
&.menu-check {
|
|
229
|
+
li.is-active > *::after {
|
|
230
|
+
@apply size-6;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/* Roundness modifiers */
|
|
236
|
+
@utility menu-rounded-none {
|
|
237
|
+
li {
|
|
238
|
+
> *:not(ul, details, .menu-title),
|
|
239
|
+
details > summary {
|
|
240
|
+
&,
|
|
241
|
+
&::before {
|
|
242
|
+
@apply rounded-none;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
@utility menu-rounded-sm {
|
|
249
|
+
li {
|
|
250
|
+
> *:not(ul, details, .menu-title),
|
|
251
|
+
details > summary {
|
|
252
|
+
&,
|
|
253
|
+
&::before {
|
|
254
|
+
@apply rounded-sm;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
@utility menu-rounded-lg {
|
|
261
|
+
li {
|
|
262
|
+
> *:not(ul, details, .menu-title),
|
|
263
|
+
details > summary {
|
|
264
|
+
&,
|
|
265
|
+
&::before {
|
|
266
|
+
@apply rounded-lg;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
@utility menu-rounded-full {
|
|
273
|
+
li {
|
|
274
|
+
> *:not(ul, details, .menu-title),
|
|
275
|
+
details > summary {
|
|
276
|
+
&,
|
|
277
|
+
&::before {
|
|
278
|
+
@apply rounded-full;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
@utility menu-check {
|
|
285
|
+
li.is-active {
|
|
286
|
+
> * {
|
|
287
|
+
&::after {
|
|
288
|
+
@apply content-[''] bg-background-brand size-5 aspect-square mask-check mask;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
/*
|
|
294
|
+
summary + div {
|
|
295
|
+
@apply
|
|
296
|
+
grid
|
|
297
|
+
overflow-hidden
|
|
298
|
+
transition-[grid-template-rows]
|
|
299
|
+
duration-500
|
|
300
|
+
ease-[cubic-bezier(.55,0,.15,1)]
|
|
301
|
+
|
|
302
|
+
;
|
|
303
|
+
@starting-style {
|
|
304
|
+
@apply
|
|
305
|
+
grid-rows-[0fr]
|
|
306
|
+
;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
details[open] summary + div {
|
|
312
|
+
@apply
|
|
313
|
+
!grid-rows-[1fr]
|
|
314
|
+
[&>*>*>*]:scale-100
|
|
315
|
+
[&>*>*>*]:translate-y-0
|
|
316
|
+
;
|
|
317
|
+
} */
|
package/styles/modal.css
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/*----------------------------*/
|
|
2
|
+
/* MODAL */
|
|
3
|
+
/*----------------------------*/
|
|
4
|
+
|
|
5
|
+
/* Prevent body scroll when modal is open */
|
|
6
|
+
body {
|
|
7
|
+
&:has(dialog[open]) {
|
|
8
|
+
@apply overflow-hidden;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
&:has(.demo dialog[open]) {
|
|
12
|
+
@apply overflow-visible;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/* Base dialog styles */
|
|
17
|
+
dialog {
|
|
18
|
+
--transition-easing: cubic-bezier(0.7, 0, 0.1, 1);
|
|
19
|
+
--transition-duration: 0.25s;
|
|
20
|
+
overscroll-behavior: contain;
|
|
21
|
+
|
|
22
|
+
@apply fixed
|
|
23
|
+
inset-0
|
|
24
|
+
w-full
|
|
25
|
+
min-w-full
|
|
26
|
+
h-full
|
|
27
|
+
max-h-[100dvh]
|
|
28
|
+
m-0
|
|
29
|
+
p-0
|
|
30
|
+
border-0
|
|
31
|
+
bg-transparent
|
|
32
|
+
overflow-y-auto;
|
|
33
|
+
|
|
34
|
+
/* Animation properties */
|
|
35
|
+
display: none;
|
|
36
|
+
opacity: 0;
|
|
37
|
+
transform: scale(1);
|
|
38
|
+
transition-property: overlay display opacity;
|
|
39
|
+
transition-duration: var(--transition-duration);
|
|
40
|
+
transition-timing-function: var(--transition-easing);
|
|
41
|
+
transition-behavior: allow-discrete;
|
|
42
|
+
|
|
43
|
+
/* Open state */
|
|
44
|
+
&[open] {
|
|
45
|
+
@apply block opacity-100;
|
|
46
|
+
transform: scale(1);
|
|
47
|
+
|
|
48
|
+
@starting-style {
|
|
49
|
+
opacity: 0;
|
|
50
|
+
transform: scale(0.95);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* Backdrop styles */
|
|
55
|
+
&::backdrop {
|
|
56
|
+
@apply backdrop-blur-2xl bg-background-overlay;
|
|
57
|
+
transition-property: overlay display opacity;
|
|
58
|
+
transition-duration: var(--transition-duration);
|
|
59
|
+
transition-timing-function: var(--transition-easing);
|
|
60
|
+
transition-behavior: allow-discrete;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/* Modal container */
|
|
65
|
+
.modal-container {
|
|
66
|
+
@apply flex flex-col flex-1 justify-center items-stretch p-2 m-auto w-full h-full md:p-4;
|
|
67
|
+
|
|
68
|
+
/* Width variants */
|
|
69
|
+
&.modal-sm {
|
|
70
|
+
> * {
|
|
71
|
+
@apply max-w-md md:w-full;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
&.modal-md {
|
|
76
|
+
> * {
|
|
77
|
+
@apply max-w-xl xl:w-full;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
&.modal-lg {
|
|
82
|
+
> * {
|
|
83
|
+
@apply max-w-3xl xl:w-full;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
&.modal-xl {
|
|
88
|
+
> * {
|
|
89
|
+
@apply max-w-4xl xl:w-full;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
&.modal-full {
|
|
94
|
+
> * {
|
|
95
|
+
@apply w-full max-w-full h-screen;
|
|
96
|
+
}
|
|
97
|
+
.modal-body.modal-body {
|
|
98
|
+
@apply p-0 pt-0;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/* Modal content wrapper */
|
|
104
|
+
.modal {
|
|
105
|
+
@apply flex overflow-x-hidden relative z-50 flex-col items-stretch mx-auto w-full max-w-xl rounded-3xl border xl:w-full shadow-dark-xl bg-background-surface border-line-default;
|
|
106
|
+
|
|
107
|
+
/* Title section */
|
|
108
|
+
.modal-title {
|
|
109
|
+
@apply relative px-4 pt-2 bg-background-surface;
|
|
110
|
+
|
|
111
|
+
&:not(:has(~ .modal-stepper)) {
|
|
112
|
+
@apply pb-2 border-b border-line-default;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.modal-title-content {
|
|
116
|
+
@apply flex gap-2 justify-center items-center min-h-11;
|
|
117
|
+
|
|
118
|
+
h2 {
|
|
119
|
+
@apply flex-1 font-medium font-body text-left md:text-center;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.modal-close {
|
|
124
|
+
@apply float-right;
|
|
125
|
+
/* @apply md:absolute md:right-4; */
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/* Stepper section */
|
|
130
|
+
.modal-stepper {
|
|
131
|
+
@apply px-4;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/* Body section */
|
|
135
|
+
.modal-body {
|
|
136
|
+
@apply relative z-10 grow px-4 pb-4;
|
|
137
|
+
|
|
138
|
+
&:not(:has(~ .modal-stepper)) {
|
|
139
|
+
@apply pt-4;
|
|
140
|
+
}
|
|
141
|
+
&:has(~ .modal-stepper) {
|
|
142
|
+
@apply pt-2;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/* Footer section */
|
|
147
|
+
.modal-footer {
|
|
148
|
+
@apply flex relative z-0 justify-end items-center px-4 pb-4 gap-4 bg-background-surface;
|
|
149
|
+
|
|
150
|
+
&:not(.no-border) {
|
|
151
|
+
@apply pt-4 border-t border-line-default;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
&.modal-sticky-header {
|
|
156
|
+
.modal-title {
|
|
157
|
+
@apply sticky top-0 z-50;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
&.modal-sticky-footer {
|
|
162
|
+
.modal-footer {
|
|
163
|
+
@apply sticky bottom-0 z-50;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.demo {
|
|
169
|
+
dialog {
|
|
170
|
+
@apply block relative opacity-100;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/*----------------------------*/
|
|
2
|
+
/* NAVBAR */
|
|
3
|
+
/*----------------------------*/
|
|
4
|
+
|
|
5
|
+
@utility navbar {
|
|
6
|
+
@apply w-full flex gap-3 items-center p-2 rounded-2xl border bg-background-surface border-line-default;
|
|
7
|
+
|
|
8
|
+
> :where(:first-child, .navbar-start) {
|
|
9
|
+
@apply flex flex-1 gap-2 items-center min-w-0;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
> :where(:nth-child(2), .navbar-center) {
|
|
13
|
+
@apply flex gap-2 justify-center items-center;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
> :where(:last-child, .navbar-end) {
|
|
17
|
+
@apply flex flex-1 gap-2 justify-end items-center min-w-0;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
:where(a, button, .navbar-item) {
|
|
21
|
+
@apply inline-flex gap-2 items-center px-3 py-1.5 rounded-full text-sm include-interactive include-hover-primary text-text-secondary hover:text-text-default;
|
|
22
|
+
|
|
23
|
+
&.is-active {
|
|
24
|
+
@apply include-hover-primary-active text-text-brand;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* Compatibility aliases */
|
|
30
|
+
@utility navbar-start {
|
|
31
|
+
@apply flex flex-1 gap-2 items-center min-w-0;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@utility navbar-center {
|
|
35
|
+
@apply flex gap-2 justify-center items-center;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@utility navbar-end {
|
|
39
|
+
@apply flex flex-1 gap-2 justify-end items-center min-w-0;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@utility navbar-item {
|
|
43
|
+
@apply inline-flex gap-2 items-center px-3 py-1.5 rounded-full text-sm include-interactive include-hover-primary text-text-secondary hover:text-text-default;
|
|
44
|
+
|
|
45
|
+
&.is-active {
|
|
46
|
+
@apply include-hover-primary-active text-text-brand;
|
|
47
|
+
}
|
|
48
|
+
}
|