lumen-plus 0.0.3 → 0.0.5

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 (73) hide show
  1. package/dist/index.js +2 -0
  2. package/dist/theme-chalk/_index.scss +69 -0
  3. package/dist/theme-chalk/_reset.scss +16 -0
  4. package/dist/theme-chalk/_variables.scss +91 -0
  5. package/dist/theme-chalk/affix.scss +8 -0
  6. package/dist/theme-chalk/alert.scss +140 -0
  7. package/dist/theme-chalk/autocomplete.scss +238 -0
  8. package/dist/theme-chalk/avatar.scss +49 -0
  9. package/dist/theme-chalk/backtop.scss +55 -0
  10. package/dist/theme-chalk/badge.scss +47 -0
  11. package/dist/theme-chalk/breadcrumb.scss +50 -0
  12. package/dist/theme-chalk/button.scss +472 -0
  13. package/dist/theme-chalk/calendar.scss +166 -0
  14. package/dist/theme-chalk/card.scss +70 -0
  15. package/dist/theme-chalk/carousel.scss +167 -0
  16. package/dist/theme-chalk/cascader.scss +265 -0
  17. package/dist/theme-chalk/checkbox.scss +127 -0
  18. package/dist/theme-chalk/collapse.scss +100 -0
  19. package/dist/theme-chalk/color-picker.scss +247 -0
  20. package/dist/theme-chalk/container.scss +79 -0
  21. package/dist/theme-chalk/date-picker.scss +352 -0
  22. package/dist/theme-chalk/date-time-picker.scss +396 -0
  23. package/dist/theme-chalk/descriptions.scss +160 -0
  24. package/dist/theme-chalk/dialog.scss +154 -0
  25. package/dist/theme-chalk/divider.scss +61 -0
  26. package/dist/theme-chalk/drawer.scss +211 -0
  27. package/dist/theme-chalk/dropdown.scss +230 -0
  28. package/dist/theme-chalk/empty.scss +36 -0
  29. package/dist/theme-chalk/form.scss +187 -0
  30. package/dist/theme-chalk/icon.scss +16 -0
  31. package/dist/theme-chalk/image.scss +171 -0
  32. package/dist/theme-chalk/input-number.scss +229 -0
  33. package/dist/theme-chalk/input-tag.scss +119 -0
  34. package/dist/theme-chalk/input.scss +249 -0
  35. package/dist/theme-chalk/link.scss +28 -0
  36. package/dist/theme-chalk/loading.scss +68 -0
  37. package/dist/theme-chalk/menu.scss +239 -0
  38. package/dist/theme-chalk/message.scss +150 -0
  39. package/dist/theme-chalk/messagebox.scss +76 -0
  40. package/dist/theme-chalk/mixins/_bem.scss +103 -0
  41. package/dist/theme-chalk/mixins/_function.scss +12 -0
  42. package/dist/theme-chalk/notification.scss +164 -0
  43. package/dist/theme-chalk/pagination.scss +130 -0
  44. package/dist/theme-chalk/pin-input.scss +192 -0
  45. package/dist/theme-chalk/popconfirm.scss +194 -0
  46. package/dist/theme-chalk/popover.scss +196 -0
  47. package/dist/theme-chalk/progress.scss +51 -0
  48. package/dist/theme-chalk/radio.scss +128 -0
  49. package/dist/theme-chalk/rating.scss +227 -0
  50. package/dist/theme-chalk/result.scss +80 -0
  51. package/dist/theme-chalk/segmented.scss +108 -0
  52. package/dist/theme-chalk/select.scss +301 -0
  53. package/dist/theme-chalk/skeleton.scss +113 -0
  54. package/dist/theme-chalk/slider.scss +259 -0
  55. package/dist/theme-chalk/space.scss +44 -0
  56. package/dist/theme-chalk/statistic.scss +49 -0
  57. package/dist/theme-chalk/steps.scss +255 -0
  58. package/dist/theme-chalk/switch.scss +277 -0
  59. package/dist/theme-chalk/table.scss +343 -0
  60. package/dist/theme-chalk/tabs.scss +433 -0
  61. package/dist/theme-chalk/tag.scss +143 -0
  62. package/dist/theme-chalk/textarea.scss +125 -0
  63. package/dist/theme-chalk/time-picker.scss +321 -0
  64. package/dist/theme-chalk/timeline.scss +119 -0
  65. package/dist/theme-chalk/tooltip.scss +165 -0
  66. package/dist/theme-chalk/transfer.scss +219 -0
  67. package/dist/theme-chalk/tree-select.scss +384 -0
  68. package/dist/theme-chalk/tree.scss +101 -0
  69. package/dist/theme-chalk/upload.scss +457 -0
  70. package/dist/theme-chalk/watermark.scss +30 -0
  71. package/dist/utils/index.js +1 -0
  72. package/dist/utils/transitions.js +31 -0
  73. package/package.json +8 -2
@@ -0,0 +1,433 @@
1
+ @use './variables' as *;
2
+ @use './mixins/bem' as *;
3
+
4
+ @include b('tabs') {
5
+ @include e('close') {
6
+ display: inline-flex;
7
+ align-items: center;
8
+ justify-content: center;
9
+ width: 14px;
10
+ height: 14px;
11
+ padding: 0;
12
+ margin-left: 4px;
13
+ border: none;
14
+ border-radius: 3px;
15
+ background: transparent;
16
+ color: inherit;
17
+ cursor: pointer;
18
+ opacity: 0.8;
19
+ line-height: 1;
20
+
21
+ &:hover { opacity: 1; background: transparent; }
22
+ }
23
+
24
+ @include e('header') {
25
+ display: flex;
26
+ align-items: stretch;
27
+ position: relative;
28
+ margin-bottom: 16px;
29
+ border-bottom: 1px solid $border-color-light;
30
+ }
31
+
32
+ @include e('nav') {
33
+ display: flex;
34
+ flex-wrap: nowrap;
35
+ overflow-x: auto;
36
+ overflow-y: hidden;
37
+ scrollbar-width: none;
38
+ gap: 32px;
39
+ font-weight: 500;
40
+ position: relative;
41
+ align-items: center;
42
+ flex: 1;
43
+ min-width: 0;
44
+
45
+ &::-webkit-scrollbar { display: none; }
46
+ }
47
+
48
+ @include e('scroll-btn') {
49
+ flex-shrink: 0;
50
+ width: 28px;
51
+ padding: 0;
52
+ border: none;
53
+ background: $bg-color;
54
+ color: $color-text-secondary;
55
+ display: inline-flex;
56
+ align-items: center;
57
+ justify-content: center;
58
+ cursor: pointer;
59
+ z-index: 2;
60
+
61
+ &:disabled {
62
+ cursor: not-allowed;
63
+ opacity: 0.4;
64
+ }
65
+
66
+ &:not(:disabled):hover { color: $color-text; }
67
+
68
+ &--prev {
69
+ border-right: 1px solid $border-color-light;
70
+ }
71
+
72
+ &--next {
73
+ border-left: 1px solid $border-color-light;
74
+ }
75
+ }
76
+
77
+ @include e('item') {
78
+ position: relative;
79
+ padding: 12px 0;
80
+ color: rgba(0, 0, 0, 0.65);
81
+ cursor: pointer;
82
+ user-select: none;
83
+ font-size: 14px;
84
+ display: inline-flex;
85
+ align-items: center;
86
+ flex: 0 0 auto;
87
+ white-space: nowrap;
88
+ transition: background-color .2s, color .2s, border-color .2s;
89
+
90
+ &.is-closable {
91
+ justify-content: center;
92
+ }
93
+
94
+ &:hover:not(.is-disabled):not(.is-active) {
95
+ color: $color-primary;
96
+ }
97
+
98
+ &.is-disabled {
99
+ color: rgba(0, 0, 0, 0.25);
100
+ cursor: not-allowed;
101
+ }
102
+
103
+ &.is-active {
104
+ color: $color-primary;
105
+ }
106
+ }
107
+
108
+ // moving indicator
109
+ @include e('indicator') {
110
+ position: absolute;
111
+ left: 0;
112
+ bottom: -1px;
113
+ height: 2px;
114
+ background: $color-primary;
115
+ transform: translateX(0);
116
+ transition: transform .25s ease, width .25s ease;
117
+ will-change: transform, width;
118
+ }
119
+
120
+ @include e('content') {
121
+ min-height: 20px;
122
+ font-size: 14px;
123
+ }
124
+
125
+ @include e('add') {
126
+ display: flex;
127
+ align-items: center;
128
+ justify-content: center;
129
+ padding: 8px 12px;
130
+ border: 1px solid #e8e8e8;
131
+ border-bottom: none;
132
+ border-radius: 6px 6px 0 0;
133
+ background-color: #fff;
134
+ color: rgba(0, 0, 0, 0.65);
135
+ cursor: pointer;
136
+ font-size: 14px;
137
+ line-height: 1.2;
138
+ transition: background-color .2s, color .2s, border-color .2s;
139
+ min-width: 36px;
140
+ flex-shrink: 0;
141
+ position: relative;
142
+ z-index: 1;
143
+
144
+ &:hover {
145
+ color: $color-primary;
146
+ }
147
+ }
148
+
149
+ // Button type modifier
150
+ @include m('button') {
151
+ .#{$namespace}-tabs__nav {
152
+ gap: 0;
153
+ border-bottom: none;
154
+ border: 1px solid #e8e8e8;
155
+ border-radius: 6px;
156
+ overflow: hidden;
157
+ width: fit-content;
158
+ }
159
+
160
+ .#{$namespace}-tabs__item {
161
+ padding: 8px 20px;
162
+ border: none;
163
+ border-radius: 0;
164
+ background-color: transparent;
165
+ color: rgba(0, 0, 0, 0.65);
166
+ font-size: 14px;
167
+ transition: background-color .2s, color .2s;
168
+
169
+ &.is-active {
170
+ background-color: $color-primary;
171
+ color: #fff;
172
+ }
173
+
174
+ &:hover:not(.is-active):not(.is-disabled) {
175
+ color: $color-primary;
176
+ }
177
+
178
+ // use left border as separator for button tabs (skip first)
179
+ &:not(:first-child) {
180
+ border-left: 1px solid rgba(0, 0, 0, 0.06);
181
+ padding-left: 18px; // visually offset from separator
182
+ }
183
+ }
184
+
185
+ // ensure add button doesn't show a left separator
186
+ .#{$namespace}-tabs__add {
187
+ border-left: none;
188
+ }
189
+
190
+ .#{$namespace}-tabs__indicator { display: none; }
191
+ }
192
+
193
+ // Card type modifier
194
+ @include m('card') {
195
+ .#{$namespace}-tabs__header {
196
+ border-bottom: none;
197
+
198
+ &::after {
199
+ content: '';
200
+ position: absolute;
201
+ left: 0;
202
+ right: 0;
203
+ bottom: 0;
204
+ height: 1px;
205
+ background-color: #e8e8e8;
206
+ z-index: 0;
207
+ }
208
+ }
209
+
210
+ .#{$namespace}-tabs__nav {
211
+ gap: 4px;
212
+ }
213
+
214
+ .#{$namespace}-tabs__item {
215
+ padding: 8px 16px;
216
+ justify-content: center;
217
+ border: 1px solid #e8e8e8;
218
+ border-radius: 6px 6px 0 0;
219
+ background-color: #fafafa;
220
+ color: rgba(0, 0, 0, 0.65);
221
+ font-size: 14px;
222
+ transition: background-color .2s, color .2s, border-color .2s;
223
+ margin-right: 2px;
224
+ position: relative;
225
+ z-index: 1;
226
+
227
+ &.is-active {
228
+ background-color: #fff;
229
+ border-color: $color-primary;
230
+ color: $color-primary;
231
+ border-bottom-color: #fff;
232
+ }
233
+
234
+ &:hover:not(.is-active):not(.is-disabled) {
235
+ color: $color-primary;
236
+ }
237
+
238
+ .#{$namespace}-tabs__close {
239
+ margin: 0 -4px 0 4px;
240
+ }
241
+ }
242
+
243
+ .#{$namespace}-tabs__scroll-btn {
244
+ background: #fff;
245
+ position: relative;
246
+ z-index: 1;
247
+ }
248
+
249
+ .#{$namespace}-tabs__indicator { display: none; }
250
+ }
251
+
252
+ // Editable type modifier
253
+ @include m('editable') {
254
+ .#{$namespace}-tabs__header {
255
+ border-bottom: none;
256
+
257
+ &::after {
258
+ content: '';
259
+ position: absolute;
260
+ left: 0;
261
+ right: 0;
262
+ bottom: 0;
263
+ height: 1px;
264
+ background-color: #e8e8e8;
265
+ z-index: 0;
266
+ }
267
+ }
268
+
269
+ .#{$namespace}-tabs__nav {
270
+ gap: 4px;
271
+ }
272
+
273
+ .#{$namespace}-tabs__item {
274
+ padding: 8px 16px;
275
+ border: 1px solid #e8e8e8;
276
+ border-radius: 6px 6px 0 0;
277
+ background-color: #fafafa;
278
+ color: rgba(0, 0, 0, 0.65);
279
+ font-size: 14px;
280
+ line-height: 1.2;
281
+ display: flex;
282
+ align-items: center;
283
+ gap: 4px;
284
+ justify-content: center;
285
+ transition: background-color .2s, color .2s, border-color .2s;
286
+ margin-right: 2px;
287
+ position: relative;
288
+ z-index: 1;
289
+
290
+ &.is-active {
291
+ background-color: #fff;
292
+ border-color: #e8e8e8;
293
+ border-bottom-color: #fff;
294
+ color: $color-primary;
295
+ }
296
+
297
+ &:hover:not(.is-disabled) {
298
+ color: $color-primary;
299
+ }
300
+
301
+ .#{$namespace}-tabs__close {
302
+ color: rgba(0, 0, 0, 0.45);
303
+ transition: opacity .2s, color .2s;
304
+ margin: 0 -4px 0 4px;
305
+
306
+ &:hover {
307
+ background: transparent;
308
+ color: rgba(0, 0, 0, 0.85);
309
+ }
310
+ }
311
+ }
312
+
313
+ .#{$namespace}-tabs__scroll-btn {
314
+ background: #fff;
315
+ position: relative;
316
+ z-index: 1;
317
+ }
318
+
319
+ .#{$namespace}-tabs__indicator { display: none; }
320
+ }
321
+ }
322
+
323
+ @include b('tabs') {
324
+ @include e('label') {
325
+ display: inline-flex;
326
+ align-items: center;
327
+ line-height: 1.2;
328
+ white-space: nowrap;
329
+ }
330
+ }
331
+
332
+ @include b('tab-pane') {
333
+ display: none;
334
+
335
+ &.is-active {
336
+ display: block;
337
+ }
338
+ }
339
+
340
+ .dark {
341
+ .#{$namespace}-tabs {
342
+ .#{$namespace}-tabs__header {
343
+ border-bottom-color: $bg-color-dark-lighter;
344
+ }
345
+
346
+ .#{$namespace}-tabs__scroll-btn {
347
+ background: $bg-color-dark-light;
348
+ color: $color-text-dark-secondary;
349
+
350
+ &:not(:disabled):hover {
351
+ color: $color-text-dark;
352
+ }
353
+
354
+ &--prev {
355
+ border-right-color: $bg-color-dark-lighter;
356
+ }
357
+
358
+ &--next {
359
+ border-left-color: $bg-color-dark-lighter;
360
+ }
361
+ }
362
+
363
+ .#{$namespace}-tabs__item {
364
+ color: $color-text-dark;
365
+
366
+ &.is-disabled {
367
+ color: rgba($color-text-dark, 0.25);
368
+ }
369
+
370
+ &.is-active {
371
+ color: $color-primary;
372
+ }
373
+ }
374
+
375
+ .#{$namespace}-tabs__add {
376
+ background-color: $bg-color-dark-light;
377
+ border-color: color-mix(in oklab, #{$bg-color-dark-lighter} 72%, #{$color-text-dark});
378
+ color: $color-text-dark-secondary;
379
+ }
380
+
381
+ &.#{$namespace}-tabs--button {
382
+ .#{$namespace}-tabs__nav {
383
+ border-color: $bg-color-dark-lighter;
384
+ }
385
+
386
+ .#{$namespace}-tabs__item {
387
+ color: $color-text-dark;
388
+
389
+ &.is-active {
390
+ color: #fff;
391
+ }
392
+
393
+ &:not(:first-child) {
394
+ border-left-color: rgba($color-text-dark, 0.12);
395
+ }
396
+ }
397
+ }
398
+
399
+ &.#{$namespace}-tabs--card,
400
+ &.#{$namespace}-tabs--editable {
401
+ .#{$namespace}-tabs__header::after {
402
+ background-color: $bg-color-dark-lighter;
403
+ }
404
+
405
+ .#{$namespace}-tabs__item {
406
+ border-color: color-mix(in oklab, #{$bg-color-dark-lighter} 72%, #{$color-text-dark});
407
+ background-color: $bg-color-dark-lighter;
408
+ color: $color-text-dark;
409
+
410
+ &.is-active {
411
+ background-color: $bg-color-dark-light;
412
+ border-color: $color-primary;
413
+ border-bottom-color: $bg-color-dark-light;
414
+ color: $color-primary;
415
+ }
416
+ }
417
+
418
+ .#{$namespace}-tabs__scroll-btn {
419
+ background: $bg-color-dark-light;
420
+ }
421
+ }
422
+
423
+ &.#{$namespace}-tabs--editable {
424
+ .#{$namespace}-tabs__item .#{$namespace}-tabs__close {
425
+ color: rgba($color-text-dark, 0.55);
426
+
427
+ &:hover {
428
+ color: rgba($color-text-dark, 0.95);
429
+ }
430
+ }
431
+ }
432
+ }
433
+ }
@@ -0,0 +1,143 @@
1
+ @use './variables' as *;
2
+ @use './mixins/bem' as *;
3
+
4
+ @include b('tag') {
5
+ display: inline-flex;
6
+ align-items: center;
7
+ gap: 6px;
8
+ padding: 0 8px;
9
+ border-radius: $border-radius-base;
10
+ line-height: 22px;
11
+ font-size: $font-size-small;
12
+ color: $color-text-regular;
13
+ background-color: $bg-color-page;
14
+ border: 1px solid transparent;
15
+
16
+ @include m('small') {
17
+ line-height: 20px;
18
+ font-size: $font-size-extra-small;
19
+ padding: 0 6px;
20
+
21
+ &.is-closable {
22
+ gap: 3px;
23
+ }
24
+ }
25
+
26
+ @include m('medium') {
27
+ line-height: 22px;
28
+ font-size: $font-size-small;
29
+ }
30
+
31
+ @include m('large') {
32
+ line-height: 28px;
33
+ font-size: $font-size-base;
34
+ padding: 0 10px;
35
+
36
+ &.is-closable {
37
+ gap: 5px;
38
+ padding-right: 6px;
39
+ }
40
+ }
41
+
42
+ &.is-closable {
43
+ gap: 4px;
44
+ padding-right: 4px;
45
+ }
46
+
47
+ @include when('round') {
48
+ border-radius: 999px;
49
+ }
50
+
51
+ @include e('close') {
52
+ display: inline-flex;
53
+ align-items: center;
54
+ justify-content: center;
55
+ width: 14px;
56
+ height: 14px;
57
+ border-radius: 50%;
58
+ color: inherit;
59
+ opacity: 0.8;
60
+ background: transparent;
61
+ border: none;
62
+ cursor: pointer;
63
+
64
+ &:hover {
65
+ opacity: 1;
66
+ }
67
+
68
+ svg { width: 10px; height: 10px; }
69
+ }
70
+
71
+ @include m('default') {
72
+ background-color: $bg-color-page;
73
+ color: $color-text-regular;
74
+ border-color: color-mix(in oklab, $color-text-placeholder 10%, transparent);
75
+ }
76
+
77
+ @include m('primary') {
78
+ background-color: color-mix(in oklab, #fff 92%, $color-primary);
79
+ color: $color-primary;
80
+ border-color: color-mix(in oklab, #fff 80%, $color-primary);
81
+ }
82
+
83
+ @include m('success') {
84
+ background-color: color-mix(in oklab, #fff 92%, $color-success);
85
+ color: $color-success;
86
+ border-color: color-mix(in oklab, #fff 80%, $color-success);
87
+ }
88
+
89
+ @include m('warning') {
90
+ background-color: color-mix(in oklab, #fff 92%, $color-warning);
91
+ color: $color-warning;
92
+ border-color: color-mix(in oklab, #fff 80%, $color-warning);
93
+ }
94
+
95
+ @include m('danger') {
96
+ background-color: color-mix(in oklab, #fff 92%, $color-danger);
97
+ color: $color-danger;
98
+ border-color: color-mix(in oklab, #fff 80%, $color-danger);
99
+ }
100
+
101
+ @include m('info') {
102
+ background-color: color-mix(in oklab, #fff 92%, $color-info);
103
+ color: $color-info;
104
+ border-color: color-mix(in oklab, #fff 80%, $color-info);
105
+ }
106
+
107
+ @include when('hidden') { display: none; }
108
+ }
109
+
110
+ .dark {
111
+ .#{$namespace}-tag {
112
+ @include m('default') {
113
+ background-color: $bg-color-dark-lighter;
114
+ color: $color-text-dark-secondary;
115
+ border-color: color-mix(in oklab, #{$bg-color-dark-lighter} 74%, #{$color-text-dark});
116
+ }
117
+
118
+ @include m('primary') {
119
+ background-color: color-mix(in oklab, $bg-color-dark-light 88%, $color-primary);
120
+ border-color: color-mix(in oklab, $bg-color-dark-light 70%, $color-primary);
121
+ }
122
+
123
+ @include m('success') {
124
+ background-color: color-mix(in oklab, $bg-color-dark-light 88%, $color-success);
125
+ border-color: color-mix(in oklab, $bg-color-dark-light 70%, $color-success);
126
+ }
127
+
128
+ @include m('warning') {
129
+ background-color: color-mix(in oklab, $bg-color-dark-light 88%, $color-warning);
130
+ border-color: color-mix(in oklab, $bg-color-dark-light 70%, $color-warning);
131
+ }
132
+
133
+ @include m('danger') {
134
+ background-color: color-mix(in oklab, $bg-color-dark-light 88%, $color-danger);
135
+ border-color: color-mix(in oklab, $bg-color-dark-light 70%, $color-danger);
136
+ }
137
+
138
+ @include m('info') {
139
+ background-color: color-mix(in oklab, $bg-color-dark-light 88%, $color-info);
140
+ border-color: color-mix(in oklab, $bg-color-dark-light 70%, $color-info);
141
+ }
142
+ }
143
+ }
@@ -0,0 +1,125 @@
1
+ @use './variables' as *;
2
+ @use './mixins/bem' as *;
3
+
4
+ @include b('textarea') {
5
+ position: relative;
6
+ display: inline-block;
7
+ width: 100%;
8
+
9
+ @include e('input') {
10
+ width: 100%;
11
+ padding: 8px 12px;
12
+ border: 1px solid $border-color-light;
13
+ border-radius: $border-radius-medium;
14
+ font-size: $font-size-base;
15
+ line-height: 1.5;
16
+ color: $color-text-primary;
17
+ background-color: #fff;
18
+ font-family: $font-family;
19
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
20
+ resize: vertical;
21
+
22
+ &:hover:not(:disabled):not([readonly]) {
23
+ border-color: #c0c4cc;
24
+ }
25
+
26
+ &:focus {
27
+ outline: none;
28
+ border-color: $color-primary;
29
+ }
30
+
31
+ &:disabled {
32
+ background-color: $bg-color-page;
33
+ color: $color-text-placeholder;
34
+ cursor: not-allowed;
35
+ }
36
+
37
+ &[readonly] {
38
+ background-color: $bg-color-page;
39
+ cursor: default;
40
+ }
41
+ }
42
+
43
+ @include e('clear') {
44
+ position: absolute;
45
+ top: 8px;
46
+ right: 8px;
47
+ width: 20px;
48
+ height: 20px;
49
+ padding: 0;
50
+ border: none;
51
+ background: transparent;
52
+ color: $color-text-placeholder;
53
+ cursor: pointer;
54
+ display: flex;
55
+ align-items: center;
56
+ justify-content: center;
57
+ opacity: 0.6;
58
+ transition: opacity 0.2s ease;
59
+
60
+ &:hover {
61
+ opacity: 1;
62
+ }
63
+
64
+ svg {
65
+ width: 16px;
66
+ height: 16px;
67
+ }
68
+ }
69
+
70
+ @include when('disabled') {
71
+ .#{$namespace}-textarea__input {
72
+ background-color: $bg-color-page;
73
+ color: $color-text-placeholder;
74
+ }
75
+ }
76
+
77
+ @include when('readonly') {
78
+ .#{$namespace}-textarea__input {
79
+ background-color: $bg-color-page;
80
+ }
81
+ }
82
+ }
83
+
84
+ .dark {
85
+ .#{$namespace}-textarea {
86
+ .#{$namespace}-textarea__input {
87
+ background-color: $bg-color-dark-light;
88
+ border-color: color-mix(in oklab, $bg-color-dark-lighter 70%, $color-text-dark-secondary);
89
+ color: $color-text-dark;
90
+
91
+ &::placeholder {
92
+ color: $color-text-dark-secondary;
93
+ }
94
+
95
+ &:hover:not(:disabled):not([readonly]):not(:focus) {
96
+ border-color: color-mix(in oklab, $bg-color-dark-lighter 55%, $color-text-dark-secondary);
97
+ }
98
+
99
+ &:focus {
100
+ border-color: $color-primary;
101
+ }
102
+
103
+ &:disabled {
104
+ background-color: $bg-color-dark-lighter;
105
+ color: rgba($color-text-dark, 0.35);
106
+ border-color: color-mix(in oklab, $bg-color-dark-lighter 85%, $color-text-dark-secondary);
107
+ }
108
+
109
+ &[readonly] {
110
+ background-color: $bg-color-dark-lighter;
111
+ border-color: color-mix(in oklab, $bg-color-dark-lighter 75%, $color-text-dark-secondary);
112
+ }
113
+ }
114
+
115
+ &.is-focused {
116
+ .#{$namespace}-textarea__input {
117
+ border-color: $color-primary;
118
+ }
119
+ }
120
+
121
+ .#{$namespace}-textarea__clear {
122
+ color: $color-text-dark-secondary;
123
+ }
124
+ }
125
+ }