@dxos/ui-theme 0.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.
Files changed (97) hide show
  1. package/LICENSE +8 -0
  2. package/README.md +25 -0
  3. package/package.json +80 -0
  4. package/src/Tokens.stories.tsx +88 -0
  5. package/src/config/index.ts +6 -0
  6. package/src/config/tailwind.ts +250 -0
  7. package/src/config/tokens/alias-colors.ts +39 -0
  8. package/src/config/tokens/index.ts +92 -0
  9. package/src/config/tokens/lengths.ts +97 -0
  10. package/src/config/tokens/physical-colors.ts +125 -0
  11. package/src/config/tokens/semantic-colors.ts +27 -0
  12. package/src/config/tokens/sememes-calls.ts +17 -0
  13. package/src/config/tokens/sememes-codemirror.ts +50 -0
  14. package/src/config/tokens/sememes-hue.ts +54 -0
  15. package/src/config/tokens/sememes-sheet.ts +62 -0
  16. package/src/config/tokens/sememes-system.ts +302 -0
  17. package/src/config/tokens/sizes.ts +7 -0
  18. package/src/config/tokens/types.ts +9 -0
  19. package/src/docs/theme.drawio.svg +635 -0
  20. package/src/index.ts +19 -0
  21. package/src/plugins/esbuild-plugin.ts +65 -0
  22. package/src/plugins/plugin.ts +130 -0
  23. package/src/plugins/resolveContent.ts +51 -0
  24. package/src/styles/components/README.md +6 -0
  25. package/src/styles/components/anchored-overflow.ts +20 -0
  26. package/src/styles/components/avatar.ts +96 -0
  27. package/src/styles/components/breadcrumb.ts +29 -0
  28. package/src/styles/components/button.ts +48 -0
  29. package/src/styles/components/dialog.ts +36 -0
  30. package/src/styles/components/icon-button.ts +20 -0
  31. package/src/styles/components/icon.ts +19 -0
  32. package/src/styles/components/index.ts +27 -0
  33. package/src/styles/components/input.ts +177 -0
  34. package/src/styles/components/link.ts +26 -0
  35. package/src/styles/components/list.ts +46 -0
  36. package/src/styles/components/main.ts +36 -0
  37. package/src/styles/components/menu.ts +60 -0
  38. package/src/styles/components/message.ts +36 -0
  39. package/src/styles/components/popover.ts +40 -0
  40. package/src/styles/components/scroll-area.ts +43 -0
  41. package/src/styles/components/select.ts +60 -0
  42. package/src/styles/components/separator.ts +24 -0
  43. package/src/styles/components/status.ts +32 -0
  44. package/src/styles/components/tag.ts +23 -0
  45. package/src/styles/components/toast.ts +55 -0
  46. package/src/styles/components/toolbar.ts +29 -0
  47. package/src/styles/components/tooltip.ts +29 -0
  48. package/src/styles/components/treegrid.ts +37 -0
  49. package/src/styles/fragments/density.ts +17 -0
  50. package/src/styles/fragments/dimension.ts +8 -0
  51. package/src/styles/fragments/disabled.ts +6 -0
  52. package/src/styles/fragments/elevation.ts +29 -0
  53. package/src/styles/fragments/focus.ts +16 -0
  54. package/src/styles/fragments/group.ts +12 -0
  55. package/src/styles/fragments/hover.ts +25 -0
  56. package/src/styles/fragments/index.ts +20 -0
  57. package/src/styles/fragments/layout.ts +7 -0
  58. package/src/styles/fragments/motion.ts +6 -0
  59. package/src/styles/fragments/ornament.ts +10 -0
  60. package/src/styles/fragments/selected.ts +45 -0
  61. package/src/styles/fragments/shimmer.ts +9 -0
  62. package/src/styles/fragments/size.ts +117 -0
  63. package/src/styles/fragments/surface.ts +29 -0
  64. package/src/styles/fragments/text.ts +12 -0
  65. package/src/styles/fragments/valence.ts +46 -0
  66. package/src/styles/index.ts +7 -0
  67. package/src/styles/layers/README.md +15 -0
  68. package/src/styles/layers/anchored-overflow.css +9 -0
  69. package/src/styles/layers/animation.css +17 -0
  70. package/src/styles/layers/attention.css +8 -0
  71. package/src/styles/layers/base.css +25 -0
  72. package/src/styles/layers/button.css +76 -0
  73. package/src/styles/layers/can-scroll.css +26 -0
  74. package/src/styles/layers/checkbox.css +50 -0
  75. package/src/styles/layers/dialog.css +42 -0
  76. package/src/styles/layers/drag-preview.css +18 -0
  77. package/src/styles/layers/focus-ring.css +224 -0
  78. package/src/styles/layers/hues.css +110 -0
  79. package/src/styles/layers/index.css +26 -0
  80. package/src/styles/layers/main.css +160 -0
  81. package/src/styles/layers/native.css +20 -0
  82. package/src/styles/layers/positioning.css +23 -0
  83. package/src/styles/layers/size.css +397 -0
  84. package/src/styles/layers/surfaces.css +31 -0
  85. package/src/styles/layers/tag.css +132 -0
  86. package/src/styles/layers/tldraw.css +91 -0
  87. package/src/styles/layers/tokens.css +45 -0
  88. package/src/styles/layers/typography.css +157 -0
  89. package/src/styles/theme.ts +69 -0
  90. package/src/tailwind.ts +5 -0
  91. package/src/theme.css +9 -0
  92. package/src/types.ts +7 -0
  93. package/src/typings.d.ts +8 -0
  94. package/src/util/hash-styles.ts +168 -0
  95. package/src/util/index.ts +6 -0
  96. package/src/util/mx.ts +51 -0
  97. package/src/util/withLogical.ts +114 -0
@@ -0,0 +1,76 @@
1
+ /* TODO(thure): Focus is handled by .dx-focus-ring, but should ideally be applied as part of this component. */
2
+ @layer dx-components {
3
+ /**
4
+ * NOTE: These are component classes (not utility classes) on a different layer, which themselves apply utility classes using `@apply`.
5
+ */
6
+
7
+ /* Base styles */
8
+ .dx-button {
9
+ @apply font-medium shrink-0 inline-flex select-none items-center justify-center overflow-hidden transition-colors duration-100 ease-linear bg-inputSurface min-bs-[2.5rem] pli-3;
10
+ &[aria-pressed='true'],
11
+ &[aria-checked='true'] {
12
+ @apply text-accentText bg-attention;
13
+ }
14
+ /* Disabled styles */
15
+ &[disabled]:not([disabled='false']) {
16
+ @apply opacity-40 cursor-not-allowed shadow-none;
17
+ }
18
+ /* Variants consistent between enabled & disabled */
19
+ &[data-variant='ghost'] {
20
+ @apply bg-transparent;
21
+ &:hover {
22
+ @apply bg-hoverSurface text-inherit;
23
+ }
24
+ &[data-state='open'] {
25
+ @apply bg-inputSurface;
26
+ }
27
+ &[aria-pressed='true'],
28
+ &[aria-checked='true'] {
29
+ @apply bg-baseSurface text-accentText;
30
+ }
31
+ }
32
+ &[data-variant='outline'] {
33
+ @apply border border-baseSurface bg-transparent;
34
+ &:hover {
35
+ @apply bg-hoverSurface;
36
+ }
37
+ }
38
+ /* Enabled styles */
39
+ &:not([disabled]),
40
+ &[disabled='false'] {
41
+ /* Hover */
42
+ &:hover {
43
+ @apply bg-hoverSurface;
44
+ }
45
+ /* Variants */
46
+ &[data-variant='primary'] {
47
+ @apply text-accentSurfaceText bg-accentSurface;
48
+ &:hover,
49
+ &[aria-pressed='true'],
50
+ &[aria-checked='true'] &[data-state='open'] {
51
+ @apply bg-accentSurfaceHover;
52
+ }
53
+ }
54
+ &[data-variant='destructive'] {
55
+ @apply text-accentSurfaceText bg-roseFill;
56
+ &:hover,
57
+ &[aria-pressed='true'],
58
+ &[aria-checked='true'] &[data-state='open'] {
59
+ @apply bg-roseFill;
60
+ }
61
+ }
62
+ }
63
+ }
64
+ /* Props */
65
+ .dx-button:not([data-props~='grouped']) {
66
+ @apply rounded-sm;
67
+ }
68
+ .dx-button:not([data-props~='wrap']) {
69
+ @apply truncate;
70
+ }
71
+ @media (pointer: fine) {
72
+ .dx-button[data-density='fine'] {
73
+ @apply min-bs-[2rem] pli-2.5;
74
+ }
75
+ }
76
+ }
@@ -0,0 +1,26 @@
1
+ @layer dx-components {
2
+ :root {
3
+ --can-scroll-inline: initial;
4
+ }
5
+
6
+ @keyframes detect-scroll-inline {
7
+ from,
8
+ to {
9
+ --can-scroll-inline: ;
10
+ }
11
+ }
12
+
13
+ .justify-center-if-no-scroll {
14
+ justify-content: start;
15
+ }
16
+
17
+ @supports (animation-timeline: scroll(inline self)) {
18
+ .justify-center-if-no-scroll {
19
+ animation: detect-scroll-inline linear;
20
+ animation-timeline: scroll(inline self);
21
+ --justify-if-no-scroll: center;
22
+ --justify-if-can-scroll: var(--can-scroll-inline) start;
23
+ justify-content: var(--justify-if-can-scroll, var(--justify-if-no-scroll));
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,50 @@
1
+ /* TODO(thure): Focus is handled by .dx-focus-ring, but should ideally be applied as part of this component.*/
2
+ @layer dx-components {
3
+ .dx-checkbox--switch,
4
+ .dx-checkbox {
5
+ @apply border border-unAccent;
6
+ &[aria-checked='true'],
7
+ &[aria-checked='mixed'],
8
+ &:checked {
9
+ @apply bg-accentSurface accent-accentSurface border-accentSurface;
10
+ }
11
+
12
+ &:not([disabled]),
13
+ &[disabled='false'] {
14
+ &:hover {
15
+ @apply bg-unAccentHover accent-unAccentHover;
16
+ &[aria-checked='true'],
17
+ &[aria-checked='mixed'],
18
+ &:checked {
19
+ @apply bg-accentSurfaceHover accent-accentSurfaceHover border-accentSurfaceHover;
20
+ }
21
+ }
22
+ }
23
+ }
24
+
25
+ .dx-checkbox {
26
+ @apply is-4 bs-4 overflow-hidden shadow-inner transition-colors bg-unAccent accent-unAccent text-accentSurfaceText shrink-0 inline-grid place-items-center rounded-sm;
27
+ }
28
+
29
+ /* TODO(ZaymonFC): Focus is handled by .dx-focus-ring, but should ideally be applied as part of this component.*/
30
+ /* NOTE: This isn't compatible with the Radix switch. */
31
+ .dx-checkbox--switch {
32
+ @apply inline-block appearance-none relative shrink-0 bs-5 is-8;
33
+ @apply shadow-inner transition-colors bg-unAccent;
34
+ @apply cursor-pointer rounded-full;
35
+
36
+ &::before {
37
+ @apply is-3 bs-3 mli-[0.1875rem] mlb-[0.1875rem] absolute block bg-white rounded-full border-separator transition-transform duration-100 will-change-transform;
38
+ content: '';
39
+ }
40
+
41
+ &[aria-checked='true'],
42
+ &[aria-checked='mixed'],
43
+ &:checked {
44
+ background-image: none;
45
+ &::before {
46
+ @apply translate-x-[100%];
47
+ }
48
+ }
49
+ }
50
+ }
@@ -0,0 +1,42 @@
1
+ @layer dx-components {
2
+ .dx-dialog__overlay {
3
+ @apply fixed z-50 inset-inline-0 block-start-0 bs-dvh bg-scrimSurface overflow-auto grid place-items-center pbs-[env(safe-area-inset-top)];
4
+ @media (min-width: theme('screens.sm')) {
5
+ @apply p-[calc(env(safe-area-inset-top)+.6rem)];
6
+ }
7
+ @media (min-width: theme('screens.md')) {
8
+ @apply p-[calc(env(safe-area-inset-top)+1.2rem)];
9
+ }
10
+ @media (min-width: theme('screens.lg')) {
11
+ @apply p-[calc(env(safe-area-inset-top)+2.4rem)];
12
+ }
13
+ &[data-block-align="start"]{
14
+ align-items: start;
15
+ justify-items: center;
16
+ }
17
+ &[data-block-align="center"]{
18
+ place-items: center;
19
+ }
20
+ &[data-block-align="end"]{
21
+ align-items: end;
22
+ justify-items: center;
23
+ }
24
+ }
25
+ .dx-dialog__content {
26
+ /* TODO(thure): `flex` should not be default. */
27
+ @apply flex flex-col is-dvw max-is-full p-4 animate-slideUpAndFade shadow-md backdrop-blur;
28
+ will-change: opacity, transform;
29
+ @media (min-width: theme('screens.sm')) {
30
+ @apply is-[95vw] border rounded-md border-separator;
31
+ }
32
+ @media (min-width: theme('screens.md')) {
33
+ @apply max-is-[24rem];
34
+ }
35
+ }
36
+ .dx-dialog__title {
37
+ @apply rounded shrink-0 text-xl font-medium;
38
+ }
39
+ .dx-dialog__description {
40
+ @apply mlb-2;
41
+ }
42
+ }
@@ -0,0 +1,18 @@
1
+ @layer dx-base {
2
+ body[data-drag-preview] {
3
+ i[data-tabster-dummy] {
4
+ display: none;
5
+ }
6
+ }
7
+ }
8
+
9
+ @layer utilities {
10
+ body[data-drag-preview] {
11
+ .drag-preview-p-0 {
12
+ padding-inline-start: 0;
13
+ padding-inline-end: 0;
14
+ padding-block-start: 0;
15
+ padding-block-end: 0;
16
+ }
17
+ }
18
+ }
@@ -0,0 +1,224 @@
1
+ @layer utilities {
2
+ .dx-focus-ring,
3
+ .dx-focus-ring-inset {
4
+ &:not([disabled]),
5
+ &[disabled='false'] {
6
+ &:focus {
7
+ @apply outline-none;
8
+ }
9
+
10
+ &:focus-visible {
11
+ @apply ring-focusLine ring-offset-focusOffset z-[1] ring-neutralFocusIndicator;
12
+
13
+ &[data-variant='primary'] {
14
+ @apply ring-accentFocusIndicator;
15
+ }
16
+
17
+ &:hover {
18
+ @apply outline-none;
19
+
20
+ .dark & {
21
+ @apply outline-none;
22
+ }
23
+ }
24
+ }
25
+ }
26
+ }
27
+
28
+ .dx-focus-ring-always,
29
+ .dx-focus-ring-inset-always {
30
+ &:not([disabled]),
31
+ &[disabled='false'] {
32
+ &:focus {
33
+ @apply outline-none;
34
+ }
35
+
36
+ &:focus {
37
+ @apply ring-focusLine ring-offset-focusOffset z-[1] ring-neutralFocusIndicator;
38
+
39
+ &[data-variant='primary'] {
40
+ @apply ring-accentFocusIndicator;
41
+ }
42
+
43
+ &:hover {
44
+ @apply outline-none;
45
+
46
+ .dark & {
47
+ @apply outline-none;
48
+ }
49
+ }
50
+ }
51
+ }
52
+ }
53
+
54
+ .dx-focus-ring-group,
55
+ .dx-focus-ring-group-x,
56
+ .dx-focus-ring-group-y,
57
+ .dx-focus-ring-group-always,
58
+ .dx-focus-ring-group-x-always,
59
+ .dx-focus-ring-group-y-always {
60
+ &:not([disabled]),
61
+ &[disabled='false'] {
62
+ &:focus {
63
+ @apply outline-none;
64
+ }
65
+ }
66
+ }
67
+
68
+ .dx-focus-ring-group:focus-visible .dx-focus-ring-group-indicator,
69
+ .dx-focus-ring-group-x:focus-visible .dx-focus-ring-group-x-indicator,
70
+ .dx-focus-ring-group-y:focus-visible .dx-focus-ring-group-y-indicator {
71
+ @apply ring-focusLine ring-offset-focusOffset ring-neutralFocusIndicator;
72
+
73
+ &[data-variant='primary'] {
74
+ @apply ring-accentFocusIndicator;
75
+ }
76
+
77
+ &:hover {
78
+ @apply outline-none;
79
+
80
+ .dark & {
81
+ @apply outline-none;
82
+ }
83
+ }
84
+ }
85
+
86
+ .dx-focus-ring-group-always:focus .dx-focus-ring-group-indicator,
87
+ .dx-focus-ring-group-x-always:focus .dx-focus-ring-group-x-indicator,
88
+ .dx-focus-ring-group-y-always:focus .dx-focus-ring-group-y-indicator {
89
+ @apply ring-focusLine ring-offset-focusOffset ring-neutralFocusIndicator;
90
+
91
+ &[data-variant='primary'] {
92
+ @apply ring-accentFocusIndicator;
93
+ }
94
+
95
+ &:hover {
96
+ @apply outline-none;
97
+
98
+ .dark & {
99
+ @apply outline-none;
100
+ }
101
+ }
102
+ }
103
+
104
+ .dx-focus-ring-inset {
105
+ &:not([disabled]),
106
+ &[disabled='false'] {
107
+ &:focus-visible {
108
+ @apply ring-inset;
109
+ }
110
+ }
111
+ }
112
+
113
+ .dx-focus-ring-inset-always {
114
+ &:not([disabled]),
115
+ &[disabled='false'] {
116
+ &:focus {
117
+ @apply ring-inset;
118
+ }
119
+ }
120
+ }
121
+
122
+ .dx-focus-ring-inset-over-all,
123
+ .dx-focus-ring-main[data-handles-focus='true'] {
124
+ &:not([disabled]),
125
+ &[disabled='false'] {
126
+ &::after {
127
+ content: '';
128
+ @apply z-20 pointer-events-none;
129
+ }
130
+
131
+ &:focus {
132
+ @apply outline-none;
133
+ }
134
+
135
+ &:focus-visible {
136
+ &::after {
137
+ @apply ring-focusLine ring-offset-focusOffset ring-inset z-[1] ring-neutralFocusIndicator;
138
+ }
139
+
140
+ &[data-variant='primary']::after {
141
+ @apply ring-accentFocusIndicator;
142
+ }
143
+
144
+ &:hover {
145
+ @apply outline-none;
146
+
147
+ .dark & {
148
+ @apply outline-none;
149
+ }
150
+ }
151
+ }
152
+ }
153
+ }
154
+
155
+ .dx-focus-ring-inset-over-all-always,
156
+ .dx-focus-ring-main-always[data-handles-focus='true'] {
157
+ &:not([disabled]),
158
+ &[disabled='false'] {
159
+ &::after {
160
+ content: '';
161
+ @apply z-20 pointer-events-none;
162
+ }
163
+
164
+ &:focus {
165
+ @apply outline-none;
166
+ }
167
+
168
+ &:focus {
169
+ &::after {
170
+ @apply ring-focusLine ring-offset-focusOffset ring-inset z-[1] ring-neutralFocusIndicator;
171
+ }
172
+
173
+ &[data-variant='primary']::after {
174
+ @apply ring-accentFocusIndicator;
175
+ }
176
+
177
+ &:hover {
178
+ @apply outline-none;
179
+
180
+ .dark & {
181
+ @apply outline-none;
182
+ }
183
+ }
184
+ }
185
+ }
186
+ }
187
+
188
+ .dx-focus-ring-inset-over-all, .dx-focus-ring-inset-over-all-always {
189
+ &:not([disabled]),
190
+ &[disabled='false'] {
191
+ &::after {
192
+ @apply inset-0 absolute;
193
+ }
194
+ }
195
+ }
196
+
197
+ .dx-focus-ring-main[data-handles-focus='true'] {
198
+ &:not([disabled]),
199
+ &[disabled='false'] {
200
+ &::after {
201
+ position: fixed;
202
+ inset: 0;
203
+ }
204
+
205
+ @media screen(lg) {
206
+ &[data-sidebar-inline-start-state='expanded']::after {
207
+ inset-inline-start: var(--nav-sidebar-size);
208
+ }
209
+
210
+ &[data-sidebar-inline-start-state='collapsed']::after {
211
+ inset-inline-start: var(--l0-size);
212
+ }
213
+
214
+ &[data-sidebar-inline-end-state='expanded']::after {
215
+ inset-inline-end: var(--complementary-sidebar-size);
216
+ }
217
+
218
+ &[data-sidebar-inline-end-state='collapsed']::after {
219
+ inset-inline-end: var(--r0-size);
220
+ }
221
+ }
222
+ }
223
+ }
224
+ }
@@ -0,0 +1,110 @@
1
+ @layer dx-components {
2
+ .dx-text-hue[data-hue='red'],
3
+ .dx-text-hue--red {
4
+ @apply text-redText;
5
+ }
6
+
7
+ .dx-text-hue[data-hue='orange'],
8
+ .dx-text-hue--orange {
9
+ @apply text-orangeText;
10
+ }
11
+
12
+ .dx-text-hue[data-hue='amber'],
13
+ .dx-text-hue--amber {
14
+ @apply text-amberText;
15
+ }
16
+
17
+ .dx-text-hue[data-hue='yellow'],
18
+ .dx-text-hue--yellow {
19
+ @apply text-yellowText;
20
+ }
21
+
22
+ .dx-text-hue[data-hue='lime'],
23
+ .dx-text-hue--lime {
24
+ @apply text-limeText;
25
+ }
26
+
27
+ .dx-text-hue[data-hue='green'],
28
+ .dx-text-hue--green {
29
+ @apply text-greenText;
30
+ }
31
+
32
+ .dx-text-hue[data-hue='emerald'],
33
+ .dx-text-hue--emerald {
34
+ @apply text-emeraldText;
35
+ }
36
+
37
+ .dx-text-hue[data-hue='teal'],
38
+ .dx-text-hue--teal {
39
+ @apply text-tealText;
40
+ }
41
+
42
+ .dx-text-hue[data-hue='cyan'],
43
+ .dx-text-hue--cyan {
44
+ @apply text-cyanText;
45
+ }
46
+
47
+ .dx-text-hue[data-hue='sky'],
48
+ .dx-text-hue--sky {
49
+ @apply text-skyText;
50
+ }
51
+
52
+ .dx-text-hue[data-hue='blue'],
53
+ .dx-text-hue--blue {
54
+ @apply text-blueText;
55
+ }
56
+
57
+ .dx-text-hue[data-hue='indigo'],
58
+ .dx-text-hue--indigo {
59
+ @apply text-indigoText;
60
+ }
61
+
62
+ .dx-text-hue[data-hue='violet'],
63
+ .dx-text-hue--violet {
64
+ @apply text-violetText;
65
+ }
66
+
67
+ .dx-text-hue[data-hue='purple'],
68
+ .dx-text-hue--purple {
69
+ @apply text-purpleText;
70
+ }
71
+
72
+ .dx-text-hue[data-hue='fuchsia'],
73
+ .dx-text-hue--fuchsia {
74
+ @apply text-fuchsiaText;
75
+ }
76
+
77
+ .dx-text-hue[data-hue='pink'],
78
+ .dx-text-hue--pink {
79
+ @apply text-pinkText;
80
+ }
81
+
82
+ .dx-text-hue[data-hue='rose'],
83
+ .dx-text-hue--rose {
84
+ @apply text-roseText;
85
+ }
86
+
87
+ /*
88
+ * System colors.
89
+ */
90
+
91
+ .dx-text-hue[data-hue='info'],
92
+ .dx-text-hue--info {
93
+ @apply text-cyanText;
94
+ }
95
+
96
+ .dx-text-hue[data-hue='success'],
97
+ .dx-text-hue--success {
98
+ @apply text-emeraldText;
99
+ }
100
+
101
+ .dx-text-hue[data-hue='warning'],
102
+ .dx-text-hue--warning {
103
+ @apply text-amberText;
104
+ }
105
+
106
+ .dx-text-hue[data-hue='error'],
107
+ .dx-text-hue--error {
108
+ @apply text-roseText;
109
+ }
110
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * NOTE: The order of the layers is important and defined in the root `index.html`.
3
+ */
4
+
5
+ @import './anchored-overflow.css';
6
+ @import './animation.css';
7
+ @import './attention.css';
8
+ @import './base.css';
9
+ @import './button.css';
10
+ @import './can-scroll.css';
11
+ @import './checkbox.css';
12
+ @import './dialog.css';
13
+ @import './drag-preview.css';
14
+ @import './focus-ring.css';
15
+ @import './hues.css';
16
+ @import './positioning.css';
17
+ @import './main.css';
18
+ @import './native.css';
19
+ @import './size.css';
20
+ @import './surfaces.css';
21
+ @import './tag.css';
22
+ @import './tldraw.css';
23
+ @import './tokens.css';
24
+ @import './typography.css';
25
+
26
+ @layer dx-tokens, user-tokens, tw-base, dx-base, tw-components, dx-components, utilities;