@thl-ui/styles 0.0.0-stage → 0.1.1

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 (45) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +42 -2
  3. package/dist/components/alert.css +1 -0
  4. package/dist/components/app.css +1 -0
  5. package/dist/components/avatar.css +1 -0
  6. package/dist/components/badge.css +1 -0
  7. package/dist/components/button.css +1 -0
  8. package/dist/components/card.css +1 -0
  9. package/dist/components/form.css +1 -0
  10. package/dist/components/nav.css +1 -0
  11. package/dist/components/overlay.css +1 -0
  12. package/dist/components/pages.css +1 -0
  13. package/dist/components/progress.css +1 -0
  14. package/dist/components/ribbon.css +1 -0
  15. package/dist/components/table.css +1 -0
  16. package/dist/components/widgets.css +1 -0
  17. package/dist/fonts/OFL.txt +93 -0
  18. package/dist/fonts/open-sans-cyrillic-ext-wght-normal.woff2 +0 -0
  19. package/dist/fonts/open-sans-cyrillic-wght-normal.woff2 +0 -0
  20. package/dist/fonts/open-sans-greek-ext-wght-normal.woff2 +0 -0
  21. package/dist/fonts/open-sans-greek-wght-normal.woff2 +0 -0
  22. package/dist/fonts/open-sans-latin-ext-wght-normal.woff2 +0 -0
  23. package/dist/fonts/open-sans-latin-wght-normal.woff2 +0 -0
  24. package/dist/fonts/open-sans-vietnamese-wght-normal.woff2 +0 -0
  25. package/dist/fonts.css +70 -0
  26. package/dist/thl-ui.css +447 -0
  27. package/dist/tokens.css +376 -0
  28. package/package.json +48 -4
  29. package/src/_base.scss +408 -0
  30. package/src/_mixins.scss +53 -0
  31. package/src/components/_alert.scss +183 -0
  32. package/src/components/_avatar.scss +75 -0
  33. package/src/components/_badge.scss +112 -0
  34. package/src/components/_button.scss +242 -0
  35. package/src/components/_card.scss +211 -0
  36. package/src/components/_form.scss +959 -0
  37. package/src/components/_nav.scss +738 -0
  38. package/src/components/_overlay.scss +382 -0
  39. package/src/components/_progress.scss +103 -0
  40. package/src/components/_ribbon.scss +136 -0
  41. package/src/components/_table.scss +215 -0
  42. package/src/components/_widgets.scss +1102 -0
  43. package/src/index.scss +16 -0
  44. package/src/layout/_app.scss +804 -0
  45. package/src/pages/_pages.scss +691 -0
@@ -0,0 +1,376 @@
1
+ /* @thl-ui/tokens — generated, do not edit */
2
+
3
+ :root {
4
+ --thl-color-primary: #0277b9;
5
+ --thl-color-success: #2ecc71;
6
+ --thl-color-info: #00bbd9;
7
+ --thl-color-warning: #ffb136;
8
+ --thl-color-danger: #d6411d;
9
+ --thl-color-default: #dbe8eb;
10
+ --thl-color-inverse: #282f32;
11
+ --thl-color-dark: #2b2b2b;
12
+ --thl-color-purple: #4a23ad;
13
+ --thl-color-red: #d93c17;
14
+ --thl-color-blue: #0078bc;
15
+ --thl-color-light: #e5ebec;
16
+ --thl-color-extralight: #f7fafc;
17
+ --thl-color-white: #ffffff;
18
+ --thl-color-muted: #8d9498;
19
+ --thl-on-default: #333b3f;
20
+ --thl-on-primary: #ffffff;
21
+ --thl-on-success: #1d2326;
22
+ --thl-on-info: #1d2326;
23
+ --thl-on-warning: #1d2326;
24
+ --thl-on-danger: #ffffff;
25
+ --thl-on-inverse: #ffffff;
26
+ --thl-on-dark: #ffffff;
27
+ --thl-on-purple: #ffffff;
28
+ --thl-on-red: #ffffff;
29
+ --thl-on-muted: #1d2326;
30
+ --thl-color-default-text: #4f5a5e;
31
+ --thl-color-primary-text: #026aa7;
32
+ --thl-color-success-text: #18713d;
33
+ --thl-color-info-text: #0a6f82;
34
+ --thl-color-warning-text: #8a5700;
35
+ --thl-color-danger-text: #b5361a;
36
+ --thl-color-inverse-text: #282f32;
37
+ --thl-color-dark-text: #2b2b2b;
38
+ --thl-color-purple-text: #4a23ad;
39
+ --thl-color-red-text: #b5361a;
40
+ --thl-color-muted-text: #6b7377;
41
+ --thl-body-bg: #f4f8f9;
42
+ --thl-surface: #ffffff;
43
+ --thl-surface-muted: #f7fafc;
44
+ --thl-border-color: #e5ebec;
45
+ --thl-text: #6b7377;
46
+ --thl-text-strong: #333b3f;
47
+ --thl-heading: #333b3f;
48
+ --thl-link: #026aa7;
49
+ --thl-theme: #0277b9;
50
+ --thl-on-theme: #ffffff;
51
+ --thl-theme-text: #026aa7;
52
+ --thl-topbar-1: #0078bc;
53
+ --thl-topbar-2: #00beda;
54
+ --thl-topbar-text: #ffffff;
55
+ --thl-topbar-border: rgba(255,255,255,0.2);
56
+ --thl-sidebar-bg: #ffffff;
57
+ --thl-sidebar-text: #6b7377;
58
+ --thl-sidebar-active: #333b3f;
59
+ --thl-sidebar-border: #e5ebec;
60
+ --thl-font-family: 'Open Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Noto Sans', 'Noto Sans JP', 'Noto Sans SC', sans-serif;
61
+ --thl-font-size: 14px;
62
+ --thl-font-size-sm: 12px;
63
+ --thl-font-size-lg: 16px;
64
+ --thl-line-height: 1.6;
65
+ --thl-h1: 36px;
66
+ --thl-h2: 24px;
67
+ --thl-h3: 21px;
68
+ --thl-h4: 18px;
69
+ --thl-h5: 16px;
70
+ --thl-h6: 14px;
71
+ --thl-radius-sm: 2px;
72
+ --thl-radius: 4px;
73
+ --thl-radius-lg: 8px;
74
+ --thl-radius-pill: 60px;
75
+ --thl-radius-circle: 50%;
76
+ --thl-shadow-sm: 0 1px 2px rgba(0,0,0,0.1);
77
+ --thl-shadow: 0 2px 6px rgba(0,0,0,0.05);
78
+ --thl-shadow-lg: 0 10px 20px rgba(0,0,0,0.09);
79
+ --thl-shadow-modal: 0 5px 15px rgba(0,0,0,0.1);
80
+ --thl-space-1: 4px;
81
+ --thl-space-2: 8px;
82
+ --thl-space-3: 12px;
83
+ --thl-space-4: 16px;
84
+ --thl-space-5: 20px;
85
+ --thl-space-6: 25px;
86
+ --thl-space-7: 30px;
87
+ --thl-topbar-height: 60px;
88
+ --thl-sidebar-width: 265px;
89
+ --thl-sidebar-mini-width: 60px;
90
+ --thl-right-sidebar-width: 240px;
91
+ --thl-container-padding: 30px;
92
+ --thl-control-height-sm: 30px;
93
+ --thl-control-height: 38px;
94
+ --thl-control-height-lg: 46px;
95
+ --thl-transition: 0.2s ease-in;
96
+ --thl-z-dropdown: 1000;
97
+ --thl-z-sidebar: 1001;
98
+ --thl-z-overlay: 1040;
99
+ --thl-z-modal: 1050;
100
+ --thl-z-popover: 1060;
101
+ --thl-z-toast: 1080;
102
+ --thl-z-preloader: 99999;
103
+ color-scheme: light;
104
+ }
105
+
106
+ [data-thl-theme="default"] {
107
+ --thl-theme: #0277b9;
108
+ --thl-topbar-1: #0078bc;
109
+ --thl-topbar-2: #00beda;
110
+ --thl-on-theme: #ffffff;
111
+ --thl-theme-text: #026aa7;
112
+ }
113
+
114
+ [data-thl-theme="default-dark"] {
115
+ --thl-theme: #0277b9;
116
+ --thl-topbar-1: #0078bc;
117
+ --thl-topbar-2: #00beda;
118
+ --thl-on-theme: #ffffff;
119
+ --thl-theme-text: #026aa7;
120
+ --thl-sidebar-bg: #4f5467;
121
+ --thl-sidebar-text: #dcdfe5;
122
+ --thl-sidebar-active: #ffffff;
123
+ --thl-sidebar-border: #727685;
124
+ }
125
+
126
+ [data-thl-theme="green"] {
127
+ --thl-theme: #2ecc71;
128
+ --thl-topbar-1: #25bf67;
129
+ --thl-topbar-2: #3fdd82;
130
+ --thl-on-theme: #1d2326;
131
+ --thl-theme-text: #18713d;
132
+ }
133
+
134
+ [data-thl-theme="green-dark"] {
135
+ --thl-theme: #2ecc71;
136
+ --thl-topbar-1: #25bf67;
137
+ --thl-topbar-2: #3fdd82;
138
+ --thl-on-theme: #1d2326;
139
+ --thl-theme-text: #18713d;
140
+ --thl-sidebar-bg: #4f5467;
141
+ --thl-sidebar-text: #dcdfe5;
142
+ --thl-sidebar-active: #ffffff;
143
+ --thl-sidebar-border: #727685;
144
+ }
145
+
146
+ [data-thl-theme="yellow"] {
147
+ --thl-theme: #ffb136;
148
+ --thl-topbar-1: #f2a225;
149
+ --thl-topbar-2: #ffbb51;
150
+ --thl-on-theme: #1d2326;
151
+ --thl-theme-text: #8a5700;
152
+ }
153
+
154
+ [data-thl-theme="yellow-dark"] {
155
+ --thl-theme: #ffb136;
156
+ --thl-topbar-1: #f2a225;
157
+ --thl-topbar-2: #ffbb51;
158
+ --thl-on-theme: #1d2326;
159
+ --thl-theme-text: #8a5700;
160
+ --thl-sidebar-bg: #4f5467;
161
+ --thl-sidebar-text: #dcdfe5;
162
+ --thl-sidebar-active: #ffffff;
163
+ --thl-sidebar-border: #727685;
164
+ }
165
+
166
+ [data-thl-theme="red"] {
167
+ --thl-theme: #d6411d;
168
+ --thl-topbar-1: #d93c17;
169
+ --thl-topbar-2: #ff704f;
170
+ --thl-on-theme: #ffffff;
171
+ --thl-theme-text: #b5361a;
172
+ }
173
+
174
+ [data-thl-theme="red-dark"] {
175
+ --thl-theme: #d6411d;
176
+ --thl-topbar-1: #d93c17;
177
+ --thl-topbar-2: #ff704f;
178
+ --thl-on-theme: #ffffff;
179
+ --thl-theme-text: #b5361a;
180
+ --thl-sidebar-bg: #4f5467;
181
+ --thl-sidebar-text: #dcdfe5;
182
+ --thl-sidebar-active: #ffffff;
183
+ --thl-sidebar-border: #727685;
184
+ }
185
+
186
+ [data-thl-theme="purple"] {
187
+ --thl-theme: #4a23ad;
188
+ --thl-topbar-1: #4a23ad;
189
+ --thl-topbar-2: #693fd5;
190
+ --thl-on-theme: #ffffff;
191
+ --thl-theme-text: #4a23ad;
192
+ }
193
+
194
+ [data-thl-theme="purple-dark"] {
195
+ --thl-theme: #4a23ad;
196
+ --thl-topbar-1: #4a23ad;
197
+ --thl-topbar-2: #693fd5;
198
+ --thl-on-theme: #ffffff;
199
+ --thl-theme-text: #4a23ad;
200
+ --thl-sidebar-bg: #4f5467;
201
+ --thl-sidebar-text: #dcdfe5;
202
+ --thl-sidebar-active: #ffffff;
203
+ --thl-sidebar-border: #727685;
204
+ }
205
+
206
+ [data-thl-theme="black"] {
207
+ --thl-theme: #282f32;
208
+ --thl-topbar-1: #282f32;
209
+ --thl-topbar-2: #4b555b;
210
+ --thl-on-theme: #ffffff;
211
+ --thl-theme-text: #282f32;
212
+ }
213
+
214
+ [data-thl-theme="black-dark"] {
215
+ --thl-theme: #282f32;
216
+ --thl-topbar-1: #282f32;
217
+ --thl-topbar-2: #4b555b;
218
+ --thl-on-theme: #ffffff;
219
+ --thl-theme-text: #282f32;
220
+ --thl-sidebar-bg: #4f5467;
221
+ --thl-sidebar-text: #dcdfe5;
222
+ --thl-sidebar-active: #ffffff;
223
+ --thl-sidebar-border: #727685;
224
+ }
225
+
226
+ [data-thl-color-mode="dark"] {
227
+ --thl-body-bg: #14161c;
228
+ --thl-surface: #1d2027;
229
+ --thl-surface-muted: #252932;
230
+ --thl-border-color: #323743;
231
+ --thl-text: #a6adb4;
232
+ --thl-text-strong: #e8ebee;
233
+ --thl-heading: #f1f3f5;
234
+ --thl-link: #6cbbe8;
235
+ --thl-color-default: #3a404c;
236
+ --thl-on-default: #e8ebee;
237
+ --thl-color-default-text: #c3c9cd;
238
+ --thl-color-primary-text: #45a4da;
239
+ --thl-color-success-text: #2ecc71;
240
+ --thl-color-info-text: #00bbd9;
241
+ --thl-color-warning-text: #ffb136;
242
+ --thl-color-danger-text: #ff7a5c;
243
+ --thl-color-inverse-text: #c3c9cd;
244
+ --thl-color-dark-text: #c3c9cd;
245
+ --thl-color-purple-text: #a58cf0;
246
+ --thl-color-red-text: #ff7a5c;
247
+ --thl-color-muted-text: #a6adb4;
248
+ --thl-color-light: #2c313b;
249
+ --thl-color-extralight: #252932;
250
+ --thl-sidebar-bg: #1a1d23;
251
+ --thl-sidebar-text: #9aa1a9;
252
+ --thl-sidebar-active: #ffffff;
253
+ --thl-sidebar-border: #2a2e37;
254
+ --thl-shadow-sm: 0 1px 2px rgba(0,0,0,0.4);
255
+ --thl-shadow: 0 2px 6px rgba(0,0,0,0.35);
256
+ --thl-shadow-lg: 0 10px 20px rgba(0,0,0,0.45);
257
+ --thl-shadow-modal: 0 5px 15px rgba(0,0,0,0.5);
258
+ color-scheme: dark;
259
+ }
260
+
261
+ @media (prefers-color-scheme: dark) {
262
+ [data-thl-color-mode="auto"] {
263
+ --thl-body-bg: #14161c;
264
+ --thl-surface: #1d2027;
265
+ --thl-surface-muted: #252932;
266
+ --thl-border-color: #323743;
267
+ --thl-text: #a6adb4;
268
+ --thl-text-strong: #e8ebee;
269
+ --thl-heading: #f1f3f5;
270
+ --thl-link: #6cbbe8;
271
+ --thl-color-default: #3a404c;
272
+ --thl-on-default: #e8ebee;
273
+ --thl-color-default-text: #c3c9cd;
274
+ --thl-color-primary-text: #45a4da;
275
+ --thl-color-success-text: #2ecc71;
276
+ --thl-color-info-text: #00bbd9;
277
+ --thl-color-warning-text: #ffb136;
278
+ --thl-color-danger-text: #ff7a5c;
279
+ --thl-color-inverse-text: #c3c9cd;
280
+ --thl-color-dark-text: #c3c9cd;
281
+ --thl-color-purple-text: #a58cf0;
282
+ --thl-color-red-text: #ff7a5c;
283
+ --thl-color-muted-text: #a6adb4;
284
+ --thl-color-light: #2c313b;
285
+ --thl-color-extralight: #252932;
286
+ --thl-sidebar-bg: #1a1d23;
287
+ --thl-sidebar-text: #9aa1a9;
288
+ --thl-sidebar-active: #ffffff;
289
+ --thl-sidebar-border: #2a2e37;
290
+ --thl-shadow-sm: 0 1px 2px rgba(0,0,0,0.4);
291
+ --thl-shadow: 0 2px 6px rgba(0,0,0,0.35);
292
+ --thl-shadow-lg: 0 10px 20px rgba(0,0,0,0.45);
293
+ --thl-shadow-modal: 0 5px 15px rgba(0,0,0,0.5);
294
+ color-scheme: dark;
295
+ }
296
+ }
297
+
298
+ [data-thl-color-mode="dark"][data-thl-theme^="default"] {
299
+ --thl-theme-text: #45a4da;
300
+ }
301
+
302
+ @media (prefers-color-scheme: dark) {
303
+ [data-thl-color-mode="auto"][data-thl-theme^="default"] {
304
+ --thl-theme-text: #45a4da;
305
+ }
306
+ }
307
+
308
+ [data-thl-color-mode="dark"][data-thl-theme^="green"] {
309
+ --thl-theme-text: #2ecc71;
310
+ }
311
+
312
+ @media (prefers-color-scheme: dark) {
313
+ [data-thl-color-mode="auto"][data-thl-theme^="green"] {
314
+ --thl-theme-text: #2ecc71;
315
+ }
316
+ }
317
+
318
+ [data-thl-color-mode="dark"][data-thl-theme^="yellow"] {
319
+ --thl-theme-text: #ffb136;
320
+ }
321
+
322
+ @media (prefers-color-scheme: dark) {
323
+ [data-thl-color-mode="auto"][data-thl-theme^="yellow"] {
324
+ --thl-theme-text: #ffb136;
325
+ }
326
+ }
327
+
328
+ [data-thl-color-mode="dark"][data-thl-theme^="red"] {
329
+ --thl-theme-text: #ff7a5c;
330
+ }
331
+
332
+ @media (prefers-color-scheme: dark) {
333
+ [data-thl-color-mode="auto"][data-thl-theme^="red"] {
334
+ --thl-theme-text: #ff7a5c;
335
+ }
336
+ }
337
+
338
+ [data-thl-color-mode="dark"][data-thl-theme^="purple"] {
339
+ --thl-theme-text: #a58cf0;
340
+ }
341
+
342
+ @media (prefers-color-scheme: dark) {
343
+ [data-thl-color-mode="auto"][data-thl-theme^="purple"] {
344
+ --thl-theme-text: #a58cf0;
345
+ }
346
+ }
347
+
348
+ [data-thl-color-mode="dark"][data-thl-theme^="black"] {
349
+ --thl-theme-text: #c3c9cd;
350
+ }
351
+
352
+ @media (prefers-color-scheme: dark) {
353
+ [data-thl-color-mode="auto"][data-thl-theme^="black"] {
354
+ --thl-theme-text: #c3c9cd;
355
+ }
356
+ }
357
+
358
+ [data-thl-color-mode="dark"][data-thl-theme$="-dark"] {
359
+ --thl-sidebar-bg: #22262e;
360
+ }
361
+
362
+ [data-thl-radius="sharp"] {
363
+ --thl-radius-sm: 0;
364
+ --thl-radius: 0;
365
+ --thl-radius-lg: 0;
366
+ }
367
+
368
+ [data-thl-size="sm"] {
369
+ --thl-font-size: 13px;
370
+ --thl-control-height: 32px;
371
+ }
372
+
373
+ [data-thl-size="lg"] {
374
+ --thl-font-size: 15px;
375
+ --thl-control-height: 44px;
376
+ }
package/package.json CHANGED
@@ -1,6 +1,50 @@
1
1
  {
2
2
  "name": "@thl-ui/styles",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.1",
4
+ "description": "thl-ui CSS: --thl-* tokens, 12 skins, dark mode and three admin layouts. No Bootstrap, no jQuery.",
5
+ "keywords": [
6
+ "thl-ui",
7
+ "ui",
8
+ "components",
9
+ "admin",
10
+ "dashboard",
11
+ "css",
12
+ "scss",
13
+ "theme",
14
+ "dark-mode"
15
+ ],
16
+ "license": "MIT",
17
+ "homepage": "https://thl.tandd.dev/guide/theming",
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://gitlab.com/tandd.packages/thl-ui.git",
21
+ "directory": "packages/styles"
22
+ },
23
+ "bugs": {
24
+ "url": "https://gitlab.com/tandd.packages/thl-ui/-/issues"
25
+ },
26
+ "type": "module",
27
+ "files": [
28
+ "dist",
29
+ "src"
30
+ ],
31
+ "exports": {
32
+ ".": "./dist/thl-ui.css",
33
+ "./thl-ui.css": "./dist/thl-ui.css",
34
+ "./tokens.css": "./dist/tokens.css",
35
+ "./scss/*": "./src/*",
36
+ "./components/*": "./dist/components/*",
37
+ "./fonts.css": "./dist/fonts.css",
38
+ "./fonts/*": "./dist/fonts/*"
39
+ },
40
+ "sideEffects": [
41
+ "*.css"
42
+ ],
43
+ "scripts": {
44
+ "build": "node ./scripts/build.mjs"
45
+ },
46
+ "dependencies": {
47
+ "@thl-ui/tokens": "0.1.1",
48
+ "@fontsource-variable/open-sans": "^5.3.0"
49
+ }
50
+ }