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/table.css
ADDED
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
/*----------------------------*/
|
|
2
|
+
/* TABLE */
|
|
3
|
+
/*----------------------------*/
|
|
4
|
+
|
|
5
|
+
@utility table-container {
|
|
6
|
+
@apply overflow-x-auto w-full;
|
|
7
|
+
|
|
8
|
+
/* Overflow handling */
|
|
9
|
+
&.table-overflow {
|
|
10
|
+
@apply overflow-x-auto;
|
|
11
|
+
|
|
12
|
+
/* Custom scrollbar styling */
|
|
13
|
+
&::-webkit-scrollbar {
|
|
14
|
+
@apply w-2 h-2;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&::-webkit-scrollbar-track {
|
|
18
|
+
@apply rounded-full bg-core-ui-100 dark:bg-core-ui-900;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
&::-webkit-scrollbar-thumb {
|
|
22
|
+
@apply rounded-full transition-colors bg-core-ui-400 dark:bg-core-ui-600 hover:bg-text-tertiary;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* Sticky first column */
|
|
27
|
+
&.table-sticky-first {
|
|
28
|
+
th:first-child,
|
|
29
|
+
td:first-child {
|
|
30
|
+
@apply sticky left-0 z-10 border-r bg-background-surface border-line-default;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* Sticky two first columns */
|
|
35
|
+
&.table-sticky-two {
|
|
36
|
+
th:first-child,
|
|
37
|
+
td:first-child {
|
|
38
|
+
@apply sticky left-0 z-10 bg-background-surface;
|
|
39
|
+
}
|
|
40
|
+
th:nth-child(2),
|
|
41
|
+
td:nth-child(2) {
|
|
42
|
+
@apply sticky left-0 z-10 border-r bg-background-surface border-line-default;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* Sticky last column */
|
|
47
|
+
&.table-sticky-last {
|
|
48
|
+
th:last-child,
|
|
49
|
+
td:last-child {
|
|
50
|
+
@apply sticky right-0 z-10 border-l bg-background-surface border-line-default;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/* Base table styles */
|
|
56
|
+
@utility table {
|
|
57
|
+
@apply w-full text-sm border-separate border-spacing-0;
|
|
58
|
+
|
|
59
|
+
thead {
|
|
60
|
+
tr {
|
|
61
|
+
@apply border-b border-line-default;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
th,
|
|
66
|
+
td {
|
|
67
|
+
@apply content-center px-4 py-2 align-middle min-h-8;
|
|
68
|
+
|
|
69
|
+
input {
|
|
70
|
+
@apply m-auto;
|
|
71
|
+
|
|
72
|
+
&:only-child {
|
|
73
|
+
@apply block;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
:where(.table-pin-rows thead tr) {
|
|
79
|
+
@apply bg-background-surface sticky top-0 z-[1];
|
|
80
|
+
}
|
|
81
|
+
:where(.table-pin-rows tfoot tr) {
|
|
82
|
+
@apply bg-background-surface sticky bottom-0 z-[1];
|
|
83
|
+
}
|
|
84
|
+
:where(.table-pin-cols tr th) {
|
|
85
|
+
@apply sticky right-0 left-0 bg-background-surface;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
&.table-sm {
|
|
89
|
+
th,
|
|
90
|
+
td {
|
|
91
|
+
@apply px-2 py-1 min-h-6;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
&.table-lg {
|
|
96
|
+
th,
|
|
97
|
+
td {
|
|
98
|
+
@apply px-6 py-4 min-h-12;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
th {
|
|
103
|
+
@apply font-medium text-left whitespace-nowrap text-text-secondary;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
td {
|
|
107
|
+
@apply align-middle border-b border-line-default;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
tbody {
|
|
111
|
+
tr {
|
|
112
|
+
@apply transition-colors include-transition;
|
|
113
|
+
|
|
114
|
+
&:last-child td {
|
|
115
|
+
@apply border-b-0;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/* Variants */
|
|
121
|
+
|
|
122
|
+
/* Striped rows */
|
|
123
|
+
&.table-striped-rows {
|
|
124
|
+
tbody tr:nth-child(even) {
|
|
125
|
+
@apply bg-core-black/5 dark:bg-core-white/5;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/* Striped columns */
|
|
130
|
+
&.table-striped-columns {
|
|
131
|
+
td:nth-child(even),
|
|
132
|
+
th:nth-child(even) {
|
|
133
|
+
@apply bg-core-ui-700/5 dark:bg-core-ui-300/5;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/* Hoverable rows */
|
|
138
|
+
&.table-hover {
|
|
139
|
+
tbody tr {
|
|
140
|
+
&:hover {
|
|
141
|
+
@apply bg-core-ui-700/5 dark:bg-core-ui-300/5;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/* Compact variant */
|
|
147
|
+
&.table-compact {
|
|
148
|
+
th,
|
|
149
|
+
td {
|
|
150
|
+
@apply p-2;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/* Checkbox styles */
|
|
155
|
+
.table-checkbox {
|
|
156
|
+
@apply w-4;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/* Row selection styles */
|
|
160
|
+
tr:has(input[type="checkbox"]:checked),
|
|
161
|
+
tr:has(input[type="radio"]:checked) {
|
|
162
|
+
@apply bg-background-brand/5;
|
|
163
|
+
.table-item-title {
|
|
164
|
+
@apply font-medium text-text-default;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/* Hidden actions */
|
|
169
|
+
.table-actions {
|
|
170
|
+
@apply invisible opacity-0 translate-y-1 include-transition;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
tbody tr {
|
|
174
|
+
&:hover {
|
|
175
|
+
.table-actions {
|
|
176
|
+
@apply visible opacity-100 translate-y-0;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/* Table filters container */
|
|
183
|
+
@utility table-filters {
|
|
184
|
+
@apply flex flex-col gap-4 mb-4 sm:flex-row sm:justify-between sm:items-center;
|
|
185
|
+
|
|
186
|
+
.table-search {
|
|
187
|
+
@apply w-full sm:max-w-xs;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.table-date-filter {
|
|
191
|
+
@apply w-full sm:w-auto;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
@utility button-table-sort {
|
|
196
|
+
@apply cursor-pointer inline-flex relative justify-center items-center w-6 h-6 text-transparent rounded-full transition-transform duration-150 include-interactive ease-out-quint;
|
|
197
|
+
|
|
198
|
+
> span {
|
|
199
|
+
@apply opacity-0 pointer-events-none;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
&::before,
|
|
203
|
+
&::after {
|
|
204
|
+
@apply content-['']
|
|
205
|
+
size-4
|
|
206
|
+
m-auto
|
|
207
|
+
aspect-square
|
|
208
|
+
bg-core-black/20
|
|
209
|
+
dark:bg-core-white/20
|
|
210
|
+
absolute
|
|
211
|
+
block
|
|
212
|
+
transform-gpu
|
|
213
|
+
mask
|
|
214
|
+
mask-triangle-filled-down
|
|
215
|
+
transition-transform;
|
|
216
|
+
}
|
|
217
|
+
&::before {
|
|
218
|
+
@apply top-0 rotate-180 translate-y-px;
|
|
219
|
+
}
|
|
220
|
+
&::after {
|
|
221
|
+
@apply bottom-0 -translate-y-px;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
&:hover {
|
|
225
|
+
&::before {
|
|
226
|
+
@apply -translate-y-px;
|
|
227
|
+
}
|
|
228
|
+
&::after {
|
|
229
|
+
@apply translate-y-px;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
&.is-active-down {
|
|
234
|
+
&::after {
|
|
235
|
+
@apply bg-core-black dark:bg-core-white;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
&.is-active-up {
|
|
239
|
+
&::before {
|
|
240
|
+
@apply bg-core-black dark:bg-core-white;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
package/styles/theme.css
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/*----------------------------*/
|
|
2
|
+
/* TAILWIND V4 THEME */
|
|
3
|
+
/*----------------------------*/
|
|
4
|
+
|
|
5
|
+
/* Configure dark mode to use .dark class instead of media query */
|
|
6
|
+
@variant dark (&:where(.dark, .dark *));
|
|
7
|
+
|
|
8
|
+
@theme {
|
|
9
|
+
/* Font Family */
|
|
10
|
+
--font-body: "Instrument Sans", Arial, sans-serif;
|
|
11
|
+
--font-heading: "Gazpacho", Georgia, serif;
|
|
12
|
+
|
|
13
|
+
/* Spacing */
|
|
14
|
+
/* --spacing-xxxs: 4px;
|
|
15
|
+
--spacing-xxs: 8px;
|
|
16
|
+
--spacing-xs: 12px;
|
|
17
|
+
--spacing-sm: 16px;
|
|
18
|
+
--spacing-md: 20px;
|
|
19
|
+
--spacing-lg: 24px;
|
|
20
|
+
--spacing-xl: 32px;
|
|
21
|
+
--spacing-2xl: 40px;
|
|
22
|
+
--spacing-3xl: 48px; */
|
|
23
|
+
|
|
24
|
+
/* Box Shadows */
|
|
25
|
+
--shadow-regular: 0px 2px 3px #5353534d;
|
|
26
|
+
--shadow-hover: 0px 2px 4px #53535366;
|
|
27
|
+
--shadow-drag: 0px 4px 6px #53535340;
|
|
28
|
+
--shadow-content: -2px 0px 3px #53535314;
|
|
29
|
+
--shadow-table-separator: inset 0px -1px 0px #e0e0e0;
|
|
30
|
+
--shadow-elevation-low: 0px 3px 8px #0000001a, 0px 1px 4px #00000014;
|
|
31
|
+
--shadow-elevation-medium: 0px 4px 8px #0000001a, 0px 3px 8px #0000001a, 0px 1px 4px #00000014;
|
|
32
|
+
--shadow-elevation-high: 0px 6px 16px #0000001f, 0px 3px 8px #0000001a, 0px 1px 4px #00000014;
|
|
33
|
+
--shadow-sm: 0px 0px 0px rgb(10 10 10 / 0.05), 0px 1px 1px rgb(10 10 10 / 0.04), 0px 1px 1px rgb(10 10 10 / 0.02), 0px 3px 3px rgb(10 10 10 / 0.01), 0px 4px 4px rgb(10 10 10 / 0.005);
|
|
34
|
+
--shadow-md: 0px 0px 0px rgb(10 10 10 / 0.05), 0px 1px 1px rgb(10 10 10 / 0.04), 0px 3px 3px rgb(10 10 10 / 0.02), 0px 5px 5px rgb(10 10 10 / 0.01), 0px 8px 8px rgb(10 10 10 / 0.005);
|
|
35
|
+
--shadow-lg: 0px 1px 1px rgb(10 10 10 / 0.05), 0px 3px 3px rgb(10 10 10 / 0.04), 0px 6px 6px rgb(10 10 10 / 0.02), 0px 10px 10px rgb(10 10 10 / 0.01), 0px 16px 16px rgb(10 10 10 / 0.005);
|
|
36
|
+
--shadow-xl: 0px 1px 1px rgb(10 10 10 / 0.05), 0px 5px 5px rgb(10 10 10 / 0.04), 0px 12px 12px rgb(10 10 10 / 0.02), 0px 20px 20px rgb(10 10 10 / 0.01), 0px 32px 32px rgb(10 10 10 / 0.005);
|
|
37
|
+
--shadow-dark-sm: 0px 0px 0px rgb(10 10 10 / 0.25), 0px 1px 1px rgb(10 10 10 / 0.20), 0px 1px 1px rgb(10 10 10 / 0.15), 0px 3px 3px rgb(10 10 10 / 0.10), 0px 4px 4px rgb(10 10 10 / 0.05);
|
|
38
|
+
--shadow-dark-md: 0px 0px 0px rgb(10 10 10 / 0.25), 0px 1px 1px rgb(10 10 10 / 0.20), 0px 3px 3px rgb(10 10 10 / 0.15), 0px 5px 5px rgb(10 10 10 / 0.10), 0px 8px 8px rgb(10 10 10 / 0.05);
|
|
39
|
+
--shadow-dark-lg: 0px 1px 1px rgb(10 10 10 / 0.25), 0px 3px 3px rgb(10 10 10 / 0.20), 0px 6px 6px rgb(10 10 10 / 0.15), 0px 10px 10px rgb(10 10 10 / 0.10), 0px 16px 16px rgb(10 10 10 / 0.05);
|
|
40
|
+
--shadow-dark-xl: 0px 1px 1px rgb(10 10 10 / 0.25), 0px 5px 5px rgb(10 10 10 / 0.20), 0px 12px 12px rgb(10 10 10 / 0.15), 0px 20px 20px rgb(10 10 10 / 0.10), 0px 32px 32px rgb(10 10 10 / 0.05);
|
|
41
|
+
|
|
42
|
+
/* Font Weights */
|
|
43
|
+
--font-weight-light: 300;
|
|
44
|
+
--font-weight-normal: 400;
|
|
45
|
+
--font-weight-medium: 500;
|
|
46
|
+
|
|
47
|
+
/* Line Heights */
|
|
48
|
+
--leading-compact: 130%;
|
|
49
|
+
--leading-default: 145%;
|
|
50
|
+
|
|
51
|
+
/* Transition Timing Functions */
|
|
52
|
+
--ease-anticipate: cubic-bezier(1, -0.4, 0.35, 0.95);
|
|
53
|
+
--ease-snappy-out: cubic-bezier(0.19, 1, 0.22, 1);
|
|
54
|
+
--ease-out-cubic: cubic-bezier(0.215, 0.61, 0.355, 1);
|
|
55
|
+
--ease-out-quart: cubic-bezier(0.165, 0.84, 0.44, 1);
|
|
56
|
+
--ease-out-quint: cubic-bezier(0.23, 1, 0.32, 1);
|
|
57
|
+
--ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1);
|
|
58
|
+
--ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1);
|
|
59
|
+
--ease-in-out-quart: cubic-bezier(0.77, 0, 0.175, 1);
|
|
60
|
+
--ease-in-out-quint: cubic-bezier(0.86, 0, 0.07, 1);
|
|
61
|
+
--ease-in-out-expo: cubic-bezier(1, 0, 0, 1);
|
|
62
|
+
--ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.15, 0.86);
|
|
63
|
+
--ease-overshoot: linear(0, 0.379 5.6%, 0.66 11.7%, 0.855 18.5%, 0.924 22.3%, 0.976 26.4%, 1.021 33%, 1.037 41.1%, 1.005 72.8%, 1);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* Custom Flex Utilities - These need @utility since flex doesn't have a theme namespace in v4 */
|
|
67
|
+
@utility flex-0 {
|
|
68
|
+
flex: 0 0 0%;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@utility flex-1 {
|
|
72
|
+
flex: 1 1 0%;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
@utility flex-2 {
|
|
76
|
+
flex: 2 2 0%;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
@utility flex-3 {
|
|
80
|
+
flex: 3 3 0%;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@utility flex-4 {
|
|
84
|
+
flex: 4 4 0%;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
@utility flex-5 {
|
|
88
|
+
flex: 5 5 0%;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
@utility flex-6 {
|
|
92
|
+
flex: 6 6 0%;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
@utility flex-7 {
|
|
96
|
+
flex: 7 7 0%;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
@utility flex-8 {
|
|
100
|
+
flex: 8 8 0%;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
@utility flex-9 {
|
|
104
|
+
flex: 9 9 0%;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
@utility flex-10 {
|
|
108
|
+
flex: 10 10 0%;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
@utility flex-11 {
|
|
112
|
+
flex: 11 11 0%;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
@utility flex-12 {
|
|
116
|
+
flex: 12 12 0%;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/* Gradient utilities */
|
|
120
|
+
@utility bg-gradient-radial {
|
|
121
|
+
background-image: radial-gradient(var(--tw-gradient-stops));
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
@utility bg-gradient-conic {
|
|
125
|
+
background-image: conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops));
|
|
126
|
+
}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/*----------------------------*/
|
|
2
|
+
/* TIMELINE */
|
|
3
|
+
/*----------------------------*/
|
|
4
|
+
|
|
5
|
+
@utility timeline {
|
|
6
|
+
--timeline-marker-size: 0.75rem;
|
|
7
|
+
--timeline-line-width: 2px;
|
|
8
|
+
--timeline-item-indent: 1.5rem;
|
|
9
|
+
@apply relative m-0 list-none p-0;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
@utility timeline-item {
|
|
13
|
+
@apply relative;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@utility timeline-dot {
|
|
17
|
+
@apply
|
|
18
|
+
size-(--timeline-marker-size)
|
|
19
|
+
block
|
|
20
|
+
rounded-full
|
|
21
|
+
border
|
|
22
|
+
border-line-default
|
|
23
|
+
bg-background-surface-elevated;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@utility timeline-marker {
|
|
27
|
+
@apply
|
|
28
|
+
size-(--timeline-marker-size)
|
|
29
|
+
inline-flex
|
|
30
|
+
shrink-0
|
|
31
|
+
items-center
|
|
32
|
+
justify-center
|
|
33
|
+
rounded-full
|
|
34
|
+
border
|
|
35
|
+
border-line-default
|
|
36
|
+
bg-background-surface-elevated;
|
|
37
|
+
&::before {
|
|
38
|
+
@apply content-['']
|
|
39
|
+
absolute
|
|
40
|
+
-z-10
|
|
41
|
+
-inset-1.5
|
|
42
|
+
rounded-full;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@utility timeline-connector {
|
|
47
|
+
@apply
|
|
48
|
+
block
|
|
49
|
+
rounded-full
|
|
50
|
+
bg-line-default;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* Shared vertical structure */
|
|
54
|
+
.timeline-default,
|
|
55
|
+
.timeline-vertical,
|
|
56
|
+
.timeline-activity {
|
|
57
|
+
> :where(li, .timeline-item) {
|
|
58
|
+
@apply relative px-(--timeline-item-indent);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
> :where(li, .timeline-item):not(:last-child)::before {
|
|
62
|
+
@apply content-[''] absolute rounded-full bg-line-default top-[calc(var(--timeline-marker-size)+0.25rem)] bottom-0;
|
|
63
|
+
inset-inline-start: calc(
|
|
64
|
+
(var(--timeline-marker-size) / 2) - (var(--timeline-line-width) / 2)
|
|
65
|
+
);
|
|
66
|
+
width: var(--timeline-line-width);
|
|
67
|
+
/* height: calc(100% - var(--timeline-marker-size) + 1.25rem); */
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
> :where(li, .timeline-item) > :where(.timeline-marker, .timeline-dot) {
|
|
71
|
+
@apply absolute inset-x-0 top-1;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
@utility timeline-default {
|
|
76
|
+
--timeline-marker-size: 0.75rem;
|
|
77
|
+
--timeline-line-width: 1px;
|
|
78
|
+
--timeline-item-indent: 1.75rem;
|
|
79
|
+
|
|
80
|
+
> :where(li, .timeline-item):not(:last-child) {
|
|
81
|
+
@apply pb-10;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
> :where(li, .timeline-item) > :where(.timeline-marker, .timeline-dot) {
|
|
85
|
+
@apply top-1.5;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
> :where(li, .timeline-item) > :where(.timeline-marker, .timeline-dot) {
|
|
89
|
+
@apply border-line-highlight bg-background-surface-elevated;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@utility timeline-vertical {
|
|
94
|
+
--timeline-marker-size: 1.5rem;
|
|
95
|
+
--timeline-line-width: 1px;
|
|
96
|
+
--timeline-item-indent: 2.25rem;
|
|
97
|
+
|
|
98
|
+
> :where(li, .timeline-item):not(:last-child) {
|
|
99
|
+
@apply pb-10;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
> :where(li, .timeline-item) > .timeline-marker {
|
|
103
|
+
@apply border-line-brand-active bg-background-brand-active text-text-brand ring-6 ring-background-page;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
@utility timeline-stepper {
|
|
108
|
+
/* --timeline-marker-size: 1.5rem; */
|
|
109
|
+
--timeline-line-width: 1px;
|
|
110
|
+
@apply items-start sm:flex gap-4;
|
|
111
|
+
|
|
112
|
+
> :where(li, .timeline-item) {
|
|
113
|
+
@apply relative mb-6 sm:mb-0 sm:flex-1;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
> :where(li, .timeline-item) .timeline-stepper-head {
|
|
117
|
+
@apply flex items-center;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
> :where(li, .timeline-item) .timeline-marker {
|
|
121
|
+
@apply relative z-10 border-line-brand-active bg-background-brand-active text-text-brand ring-6 ring-background-page;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
> :where(li, .timeline-item) .timeline-connector {
|
|
125
|
+
@apply hidden h-px flex-1 bg-line-default sm:block -mr-4;
|
|
126
|
+
min-width: 1.5rem;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
> :where(li, .timeline-item):last-child .timeline-connector {
|
|
130
|
+
@apply hidden;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
> :where(li, .timeline-item) .timeline-content {
|
|
134
|
+
@apply mt-3 sm:pe-8;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
@utility timeline-activity {
|
|
139
|
+
--timeline-marker-size: 1.5rem;
|
|
140
|
+
--timeline-line-width: 1px;
|
|
141
|
+
--timeline-item-indent: 2.25rem;
|
|
142
|
+
|
|
143
|
+
> :where(li, .timeline-item):not(:last-child) {
|
|
144
|
+
@apply pb-10;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
> :where(li, .timeline-item) > .timeline-marker {
|
|
148
|
+
@apply overflow-hidden border-background-page ring-6 ring-background-page;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
> :where(li, .timeline-item) > .timeline-marker img {
|
|
152
|
+
@apply size-full object-cover;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/* Shared states */
|
|
157
|
+
.timeline {
|
|
158
|
+
> :where(li, .timeline-item).is-current {
|
|
159
|
+
> :where(.timeline-dot, .timeline-marker):not(:has(img)),
|
|
160
|
+
:where(.timeline-dot, .timeline-marker):not(:has(img)) {
|
|
161
|
+
@apply border-line-brand bg-background-brand text-text-inverted;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.timeline-marker {
|
|
165
|
+
&::before {
|
|
166
|
+
@apply bg-background-brand animate-radar;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
&::before {
|
|
171
|
+
@apply bg-line-brand;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.timeline-connector {
|
|
175
|
+
@apply bg-line-brand;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
> :where(li, .timeline-item).is-complete {
|
|
180
|
+
> :where(.timeline-dot, .timeline-marker):not(:has(img)),
|
|
181
|
+
:where(.timeline-dot, .timeline-marker):not(:has(img)) {
|
|
182
|
+
@apply border-line-success bg-background-success text-text-success;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
&::before {
|
|
186
|
+
@apply bg-line-success;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.timeline-connector {
|
|
190
|
+
@apply bg-line-success;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
package/styles/toast.css
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/*----------------------------*/
|
|
2
|
+
/* TOAST */
|
|
3
|
+
/*----------------------------*/
|
|
4
|
+
|
|
5
|
+
@utility toast-container {
|
|
6
|
+
@apply fixed inset-x-4 bottom-4 z-50 mx-auto max-w-xl;
|
|
7
|
+
.toast-container-inner {
|
|
8
|
+
@apply flex flex-col gap-2 w-full;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
@utility toast {
|
|
13
|
+
@apply relative pt-0.5 mx-auto w-full max-w-lg overflow-clip rounded border shadow-xl duration-300 text-text-default bg-background-surface ease-snappy-out border-line-default;
|
|
14
|
+
|
|
15
|
+
&::before {
|
|
16
|
+
@apply content-[''] absolute inset-x-0 top-0 h-0.5 rounded-t-xl duration-200 ease-in-out-cubic origin-center;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
&:hover .toast-close {
|
|
20
|
+
@apply opacity-100 pointer-events-auto;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
&:not(.is-active) {
|
|
24
|
+
@apply opacity-0 scale-95 translate-y-4 -skew-x-2;
|
|
25
|
+
&::before {
|
|
26
|
+
@apply rounded-sm opacity-0 scale-x-90;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&.is-active {
|
|
31
|
+
@apply opacity-100 scale-100 translate-y-0 skew-x-0;
|
|
32
|
+
&::before {
|
|
33
|
+
@apply rounded-none opacity-100 scale-x-100;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
&.is-loading {
|
|
38
|
+
.toast-icon {
|
|
39
|
+
&:empty {
|
|
40
|
+
@apply !bg-transparent;
|
|
41
|
+
mask-image: none !important;
|
|
42
|
+
}
|
|
43
|
+
svg {
|
|
44
|
+
@apply opacity-0 scale-95;
|
|
45
|
+
}
|
|
46
|
+
&::before {
|
|
47
|
+
@apply content-[''] loader-base;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
@utility toast-content {
|
|
54
|
+
@apply flex items-center px-4 py-2 text-left;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@utility toast-icon {
|
|
58
|
+
@apply flex flex-shrink-0 justify-center items-center mr-3;
|
|
59
|
+
|
|
60
|
+
&:empty {
|
|
61
|
+
@apply bg-black size-11;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
> svg {
|
|
65
|
+
@apply transition-opacity duration-300 size-11 ease-snappy-out;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@utility toast-message {
|
|
70
|
+
@apply flex-1 grow text-sm;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
@utility toast-action {
|
|
74
|
+
@apply
|
|
75
|
+
px-3
|
|
76
|
+
py-1
|
|
77
|
+
ml-3
|
|
78
|
+
rounded-2xl
|
|
79
|
+
;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@utility toast-close {
|
|
83
|
+
@apply opacity-0 pointer-events-none mx-(--spacing-small) transition-opacity duration-300 ease-snappy-out;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/* Toast Variants */
|
|
87
|
+
.toast-info {
|
|
88
|
+
@apply text-text-info [&_svg]:text-background-info-active;
|
|
89
|
+
&::before {
|
|
90
|
+
@apply bg-background-info-active;
|
|
91
|
+
}
|
|
92
|
+
.toast-icon {
|
|
93
|
+
&:empty {
|
|
94
|
+
@apply bg-text-info mask-info;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.toast-success {
|
|
100
|
+
@apply text-text-success [&_svg]:text-background-success-active;
|
|
101
|
+
&::before {
|
|
102
|
+
@apply bg-background-success-active;
|
|
103
|
+
}
|
|
104
|
+
.toast-icon {
|
|
105
|
+
&:empty {
|
|
106
|
+
@apply bg-text-success mask-check-circle;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.toast-warning {
|
|
112
|
+
@apply text-text-warning [&_svg]:text-background-warning-active;
|
|
113
|
+
&::before {
|
|
114
|
+
@apply bg-background-warning-active;
|
|
115
|
+
}
|
|
116
|
+
.toast-icon {
|
|
117
|
+
&:empty {
|
|
118
|
+
@apply bg-text-warning mask-warning;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.toast-error {
|
|
124
|
+
@apply text-text-error [&_svg]:text-background-error-active;
|
|
125
|
+
&::before {
|
|
126
|
+
@apply bg-background-error-active;
|
|
127
|
+
}
|
|
128
|
+
.toast-icon {
|
|
129
|
+
&:empty {
|
|
130
|
+
@apply bg-text-error mask-report;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/* Visibility transitions */
|
|
136
|
+
.toast-enter {
|
|
137
|
+
@apply opacity-0 translate-y-full;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.toast-enter-active {
|
|
141
|
+
@apply opacity-100 translate-y-0;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.toast-exit {
|
|
145
|
+
@apply opacity-100 translate-y-0;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.toast-exit-active {
|
|
149
|
+
@apply opacity-0 translate-y-full;
|
|
150
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
@tailwind utilities;
|
|
2
|
+
/*----------------------------*/
|
|
3
|
+
/* TOOLTIP */
|
|
4
|
+
/*----------------------------*/
|
|
5
|
+
|
|
6
|
+
@utility tooltip {
|
|
7
|
+
@apply px-3 py-1 text-xs rounded-xl shadow-lg backdrop-blur bg-background-inverted text-text-inverted font-semibold *:text-base max-w-60;
|
|
8
|
+
}
|