@inchurch/matcha-theme 21.4.0 → 22.1.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 (94) hide show
  1. package/abstracts/_colors.scss +236 -236
  2. package/abstracts/_elevation.scss +108 -108
  3. package/abstracts/_functions.scss +321 -321
  4. package/abstracts/_media-breakpoint.scss +26 -26
  5. package/abstracts/_theme-api.scss +219 -219
  6. package/abstracts/_typography.scss +128 -128
  7. package/base/_reset.scss +446 -445
  8. package/components/app-page-header.scss +260 -260
  9. package/components/matcha-accordion.scss +293 -293
  10. package/components/matcha-audio-player.scss +31 -31
  11. package/components/matcha-autocomplete.scss +145 -145
  12. package/components/matcha-avatar.scss +440 -301
  13. package/components/matcha-badge.scss +120 -120
  14. package/components/matcha-breadcrumb.scss +231 -231
  15. package/components/matcha-button-toggle.scss +383 -384
  16. package/components/matcha-buttons.scss +913 -913
  17. package/components/matcha-calendar.scss +218 -218
  18. package/components/matcha-cards.scss +230 -230
  19. package/components/matcha-chart-card.scss +53 -53
  20. package/components/matcha-checkbox.scss +255 -255
  21. package/components/matcha-chip.scss +292 -292
  22. package/components/matcha-color-pick.scss +34 -34
  23. package/components/matcha-command-palette.scss +316 -316
  24. package/components/matcha-contact.scss +35 -0
  25. package/components/matcha-crop.scss +406 -406
  26. package/components/matcha-date.scss +81 -81
  27. package/components/matcha-divider.scss +100 -100
  28. package/components/matcha-draggable.scss +23 -23
  29. package/components/matcha-drawer.scss +376 -376
  30. package/components/matcha-drop-image.scss +14 -14
  31. package/components/matcha-drop-list.scss +430 -430
  32. package/components/matcha-emoji.scss +69 -69
  33. package/components/matcha-empty-state.scss +230 -230
  34. package/components/matcha-file-uploader.scss +471 -471
  35. package/components/matcha-flag.scss +103 -103
  36. package/components/matcha-footer.scss +91 -91
  37. package/components/matcha-form-field.scss +606 -606
  38. package/components/matcha-form-section.scss +100 -100
  39. package/components/matcha-header.scss +135 -135
  40. package/components/matcha-highlight.scss +164 -164
  41. package/components/matcha-hint-text.scss +90 -90
  42. package/components/matcha-horizontal-tree.scss +316 -316
  43. package/components/matcha-icon.scss +98 -98
  44. package/components/matcha-image.scss +61 -61
  45. package/components/matcha-list.scss +211 -211
  46. package/components/matcha-menu.scss +99 -99
  47. package/components/matcha-modal.scss +210 -210
  48. package/components/matcha-nav.scss +581 -581
  49. package/components/matcha-notification.scss +413 -413
  50. package/components/matcha-option.scss +170 -170
  51. package/components/matcha-page-builder.scss +4196 -4196
  52. package/components/matcha-paginator.scss +689 -689
  53. package/components/matcha-panel.scss +194 -194
  54. package/components/matcha-profile-card.scss +50 -50
  55. package/components/matcha-progress-bar.scss +313 -313
  56. package/components/matcha-radio.scss +320 -320
  57. package/components/matcha-ripple.scss +7 -7
  58. package/components/matcha-scrollbar.scss +33 -33
  59. package/components/matcha-scrollbox-shadow.scss +120 -120
  60. package/components/matcha-section.scss +102 -102
  61. package/components/matcha-select-multiple.scss +56 -56
  62. package/components/matcha-select.scss +667 -667
  63. package/components/matcha-skeleton.scss +155 -155
  64. package/components/matcha-slide-toggle.scss +369 -369
  65. package/components/matcha-slider.scss +285 -285
  66. package/components/matcha-snack-bar.scss +259 -259
  67. package/components/matcha-spin.scss +164 -164
  68. package/components/matcha-spinner.scss +97 -97
  69. package/components/matcha-status-pill.scss +38 -18
  70. package/components/matcha-stepper.scss +376 -376
  71. package/components/matcha-table-cell.scss +49 -41
  72. package/components/matcha-table.scss +579 -579
  73. package/components/matcha-tabs.scss +600 -600
  74. package/components/matcha-text-editor.scss +105 -105
  75. package/components/matcha-time.scss +33 -33
  76. package/components/matcha-timepicker.scss +13 -13
  77. package/components/matcha-toolbar.scss +359 -359
  78. package/components/matcha-tooltip.scss +224 -224
  79. package/components/matcha-tree-view.scss +257 -257
  80. package/layout/matcha-page-layout.scss +778 -778
  81. package/main.scss +331 -329
  82. package/package.json +1 -1
  83. package/tokens/_animations-tokens.scss +37 -37
  84. package/tokens/_breakpoints-tokens.scss +35 -35
  85. package/tokens/_color-tokens.scss +274 -274
  86. package/tokens/_elevation-tokens.scss +33 -33
  87. package/tokens/_emit-tokens.scss +324 -324
  88. package/tokens/_material-palette.scss +1149 -1149
  89. package/tokens/_primitives.scss +98 -98
  90. package/tokens/_semantic-aliases.scss +120 -120
  91. package/tokens/_spacing-tokens.scss +94 -94
  92. package/tokens/_static-tokens.scss +137 -137
  93. package/tokens/_typography-tokens.scss +65 -65
  94. package/vendors/charts.scss +90 -90
package/base/_reset.scss CHANGED
@@ -1,445 +1,446 @@
1
- @mixin base-body-reset-theme($theme: ()) {
2
- // theme-agnóstico em valor (var); fica per-classe de tema pelo & (pinta o
3
- // elemento que carrega a classe). $theme vestigial (default ()).
4
- & {
5
- *, *:before, *:after {
6
- box-sizing: border-box;
7
- }
8
- color: var(--matcha-color-fg);
9
- background: var(--matcha-color-surface-bg);
10
- }
11
- }
12
-
13
- /*
14
- How to use
15
- @import '~matcha-ds/assets/scss/components/matcha-typography.scss';
16
- @include base-typography-theme($theme);
17
- */
18
- // -----------------------------------------------------------------------------------------------------
19
- // Typography [Theme]
20
- // -----------------------------------------------------------------------------------------------------
21
- @mixin base-typography-theme($theme) {
22
- // theme-agnóstico: tudo via var(--matcha-color-*) (runtime). $theme mantido só
23
- // na assinatura por retrocompat dos call sites.
24
-
25
- a {
26
- color: var(--matcha-color-accent);
27
- }
28
-
29
- pre > code{
30
- color: var(--matcha-color-info);
31
- }
32
- code {
33
- &:not(.highlight) {
34
- // Token em runtime (não getter compile-time): resolve no escopo de tema
35
- // MAIS PRÓXIMO, então temas aninhados (ex.: preview light dentro de body
36
- // dark) não colidem mais antes geravam tarja escura sobre card claro.
37
- // Dark é value-preserving (#1c1f26); light adota o surface-card do DSV3.
38
- background-color: var(--matcha-color-surface-card);
39
- }
40
- }
41
-
42
- .changelog {
43
- .entry {
44
- background-color: var(--matcha-color-surface-card);
45
- }
46
- }
47
-
48
- .text-boxed {
49
- background-color: var(--matcha-color-text-boxed-bg);
50
- color: var(--matcha-color-text-boxed-fg);
51
- }
52
-
53
- .text-primary {
54
- color: var(--matcha-color-primary) !important;
55
- }
56
-
57
- .text-warn {
58
- color: var(--matcha-color-warn) !important;
59
- }
60
-
61
- .text-label {
62
- color: var(--matcha-color-text-label) !important;
63
- }
64
-
65
- .text-placeholder {
66
- color: var(--matcha-color-text-placeholder) !important;
67
- }
68
-
69
- .text-basic {
70
- color: var(--matcha-color-fg) !important;
71
- }
72
-
73
- // Changelog
74
- .changelog {
75
- .entry {
76
- .groups {
77
- .breaking-changes {
78
- .title {
79
- background: var(--matcha-color-danger);
80
- }
81
- }
82
-
83
- .new {
84
- .title {
85
- background: var(--matcha-color-success);
86
- }
87
- }
88
-
89
- .improved {
90
- .title {
91
- background: var(--matcha-prim-purple-500);
92
- }
93
- }
94
-
95
- .fixed {
96
- .title {
97
- background: var(--matcha-color-info);
98
- }
99
- }
100
- }
101
- }
102
- }
103
-
104
- // Code
105
- code {
106
- &:not(.highlight) {
107
- color: var(--matcha-color-info);
108
- }
109
- }
110
-
111
- // Mark
112
- mark {
113
- background: var(--matcha-color-warn);
114
- }
115
-
116
- // Message boxes
117
- .matcha-message-box,
118
- .matcha-msg-box,
119
- .message-box {
120
- background-color: var(--matcha-color-primary-alpha);
121
- border-left-color: var(--matcha-color-primary);
122
- color: var(--matcha-color-fg);
123
-
124
- &.error,
125
- &.warning,
126
- &.success,
127
- &.info,
128
- &--error,
129
- &--warning,
130
- &--success,
131
- &--info {
132
- color: var(--matcha-color-fg);
133
- }
134
-
135
- &--error,
136
- &.error {
137
- background-color: var(--matcha-color-danger-alpha);
138
- border-left-color: var(--matcha-color-danger);
139
- }
140
-
141
- &--warning,
142
- &.warning {
143
- background-color: var(--matcha-color-warn-alpha);
144
- border-left-color: var(--matcha-color-warn);
145
- }
146
-
147
- &--success,
148
- &.success {
149
- background-color: var(--matcha-color-success-alpha);
150
- border-left-color: var(--matcha-color-success);
151
- }
152
-
153
- &--info,
154
- &.info {
155
- background-color: var(--matcha-color-info-alpha);
156
- border-left-color: var(--matcha-color-info);
157
- }
158
- }
159
- }
160
-
161
- // -----------------------------------------------------------------------------------------------------
162
- // Typography [Style]
163
- // -----------------------------------------------------------------------------------------------------
164
- // Paragraph
165
- .par-xs,
166
- .p-tiny {
167
- font-size: 12px !important;
168
- }
169
-
170
- .par-sm,
171
- .par-p,
172
- .p-small {
173
- font-size: 14px !important;
174
- }
175
-
176
- .par-md,
177
- .par-m,
178
- .p-medium {
179
- font-size: 16px !important;
180
- }
181
-
182
- .par-lg,
183
- .p-large {
184
- font-size: 20px !important;
185
- }
186
-
187
- .par-xl,
188
- .p-huge {
189
- font-size: 24px !important;
190
- }
191
- .text-medium,
192
- .text-semibold {
193
- font-weight: 500;
194
- }
195
-
196
- .text-regular,
197
- .text-book {
198
- font-weight: 400;
199
- }
200
-
201
- .text-bold {
202
- font-weight: 700;
203
- }
204
-
205
- .text-black {
206
- font-weight: 900;
207
- }
208
-
209
- .matcha-message-box,
210
- .matcha-msg-box,
211
- .message-box {
212
- padding: 16px;
213
- border-left: 6px solid;
214
-
215
- &.error,
216
- &.warning,
217
- &.success,
218
- &.info,
219
- &--error,
220
- &--warning,
221
- &--success,
222
- &--info {
223
- padding: 16px;
224
- border-left: 6px solid;
225
- }
226
- }
227
-
228
- .title {
229
- line-height: 24px;
230
- margin: 0 0 16px 0;
231
- display: flex;
232
- align-items: center;
233
-
234
- .title-bullet {
235
- margin: 0px 8px 0 0;
236
- display: inline-block;
237
- position: relative;
238
- border-radius: 10px;
239
- }
240
-
241
- .title-content {
242
- line-height: 20px;
243
- display: -webkit-box;
244
- -webkit-line-clamp: 2;
245
- overflow: hidden;
246
- text-overflow: ellipsis;
247
- word-break: break-word;
248
- white-space: initial;
249
- -webkit-box-orient: vertical;
250
- text-transform: capitalize;
251
- }
252
- }
253
-
254
- .title-sm {
255
- display: block;
256
- overflow: hidden;
257
- text-overflow: ellipsis;
258
- white-space: nowrap;
259
- }
260
-
261
-
262
- // -----------------------------------------------------------------------------------------------------
263
- // @ Container helpers
264
- // -----------------------------------------------------------------------------------------------------
265
- .matcha-container {
266
- width: 100%;
267
- max-width: 1128px;
268
- margin-left:auto;
269
- margin-right:auto;
270
- }
271
-
272
- // -----------------------------------------------------------------------------------------------------
273
- // @ Combo helpers
274
- // -----------------------------------------------------------------------------------------------------
275
- .combo-image-text,
276
- .combo-checkbox-text,
277
- .combo-icon-text,
278
- .combo-double-line {
279
- display: flex;
280
- align-items: center;
281
- }
282
-
283
- .combo-image-text .side-text,
284
- .combo-checkbox-text .side-text,
285
- .combo-icon-text .side-text,
286
- .combo-double-line .side-text {
287
- display: inline-block;
288
- width: calc(100% - 48px);
289
- line-height: 20px;
290
- -webkit-line-clamp: 2;
291
- overflow: hidden;
292
- text-overflow: ellipsis;
293
- word-break: break-word;
294
- white-space: initial;
295
- -webkit-box-orient: vertical;
296
- }
297
-
298
- .combo-image-text .avatar,
299
- .combo-checkbox-text .avatar,
300
- .combo-icon-text .avatar,
301
- .combo-double-line .avatar {
302
- border-radius: 50px;
303
- min-width: 24px;
304
- min-height: 24px;
305
- }
306
-
307
- .one-line-text {
308
- line-height: 20px;
309
- display: -webkit-box;
310
- -webkit-line-clamp: 1;
311
- }
312
-
313
- .two-lines-text {
314
- line-height: 20px;
315
- display: -webkit-box;
316
- -webkit-line-clamp: 2;
317
- }
318
-
319
- .three-lines-text {
320
- line-height: 20px;
321
- display: -webkit-box;
322
- -webkit-line-clamp: 3;
323
- }
324
-
325
- .four-lines-text {
326
- line-height: 20px;
327
- display: -webkit-box;
328
- -webkit-line-clamp: 4;
329
- }
330
-
331
- .five-lines-text {
332
- line-height: 20px;
333
- display: -webkit-box;
334
- -webkit-line-clamp: 5;
335
- }
336
-
337
- .one-line-text,
338
- .two-lines-text,
339
- .three-lines-text,
340
- .four-lines-text,
341
- .five-lines-text {
342
- overflow: hidden;
343
- text-overflow: ellipsis;
344
- word-break: break-word;
345
- white-space: initial;
346
- -webkit-box-orient: vertical;
347
- }
348
- .word-break {
349
- word-break: break-word
350
- }
351
- .word-break-all {
352
- word-break: break-all
353
- }
354
-
355
- // Helpers pontuais migrados do matcha-core (DSV3): matcha-core é só a grade
356
- // gerada; helpers escritos à mão vivem aqui na base (junto de .word-break etc.).
357
- // (.break-word não migra use .word-break acima, mesma regra.)
358
- .overflow-wrap-anywhere { overflow-wrap: anywhere; }
359
- .font-inherit { font-family: inherit; }
360
- .font-italic { font-style: italic; }
361
- .tabular-nums { font-variant-numeric: tabular-nums; }
362
- .user-select-none { -webkit-user-select: none; user-select: none; }
363
- .scrollbar-none {
364
- scrollbar-width: none;
365
- &::-webkit-scrollbar { display: none; }
366
- }
367
-
368
- // -----------------------------------------------------------------------------------------------------
369
- // @ Letter spacing helpers
370
- // -----------------------------------------------------------------------------------------------------
371
- .letter-spacing-condensed {
372
- letter-spacing: -.08em !important;
373
- }
374
- .letter-spacing-normal {
375
- letter-spacing: normal !important;
376
- }
377
- .letter-spacing-relaxed {
378
- letter-spacing: .08em !important;
379
- }
380
-
381
- // -----------------------------------------------------------------------------------------------------
382
- // @ Cursor helpers
383
- // -----------------------------------------------------------------------------------------------------
384
- .pointer-events-all {
385
- pointer-events: all
386
- }
387
- .pointer-events-none {
388
- pointer-events: none
389
- }
390
-
391
- // -----------------------------------------------------------------------------------------------------
392
- // @ Clear Shadows
393
- // -----------------------------------------------------------------------------------------------------
394
- .flatten,
395
- .no-shadow,
396
- .shadow-none {
397
- box-shadow: none !important;
398
- }
399
-
400
- // -----------------------------------------------------------------------------------------------------
401
- // @ Enable/Disable
402
- // -----------------------------------------------------------------------------------------------------
403
- .disabled {
404
- transition: opacity 100ms linear;
405
- opacity: .5;
406
- pointer-events: none
407
- }
408
- .enabled {
409
- transition: opacity 100ms linear;
410
- opacity: 1
411
- }
412
-
413
-
414
- // -----------------------------------------------------------------------------------------------------
415
- // @ Hover - Show/Hide
416
- // -----------------------------------------------------------------------------------------------------
417
- .on-hover-show:hover {
418
- opacity: 1;
419
- }
420
- .on-hover-hide:hover {
421
- opacity: 0;
422
- }
423
-
424
- // -----------------------------------------------------------------------------------------------------
425
- // @ Float
426
- // -----------------------------------------------------------------------------------------------------
427
- .clearfix::after {
428
- content: "";
429
- clear: both;
430
- display: table;
431
- }
432
- .left {
433
- float: left;
434
- }
435
- .right {
436
- float: right;
437
- }
438
- .list,
439
- .list-style-none {
440
- list-style: none;
441
- }
442
- .list-style-disc,
443
- .list-style-dot {
444
- list-style: disc;
445
- }
1
+ @mixin base-body-reset-theme($theme: ()) {
2
+ // theme-agnóstico em valor (var); fica per-classe de tema pelo & (pinta o
3
+ // elemento que carrega a classe). $theme vestigial (default ()).
4
+ & {
5
+ color: var(--matcha-color-fg);
6
+ background: var(--matcha-color-surface-bg);
7
+
8
+ *, *:before, *:after {
9
+ box-sizing: border-box;
10
+ }
11
+ }
12
+ }
13
+
14
+ /*
15
+ How to use
16
+ @import '~matcha-ds/assets/scss/components/matcha-typography.scss';
17
+ @include base-typography-theme($theme);
18
+ */
19
+ // -----------------------------------------------------------------------------------------------------
20
+ // Typography [Theme]
21
+ // -----------------------------------------------------------------------------------------------------
22
+ @mixin base-typography-theme($theme) {
23
+ // theme-agnóstico: tudo via var(--matcha-color-*) (runtime). $theme mantido só
24
+ // na assinatura por retrocompat dos call sites.
25
+
26
+ a {
27
+ color: var(--matcha-color-accent);
28
+ }
29
+
30
+ pre > code{
31
+ color: var(--matcha-color-info);
32
+ }
33
+ code {
34
+ &:not(.highlight) {
35
+ // Token em runtime (não getter compile-time): resolve no escopo de tema
36
+ // MAIS PRÓXIMO, então temas aninhados (ex.: preview light dentro de body
37
+ // dark) não colidem mais antes geravam tarja escura sobre card claro.
38
+ // Dark é value-preserving (#1c1f26); light adota o surface-card do DSV3.
39
+ background-color: var(--matcha-color-surface-card);
40
+ }
41
+ }
42
+
43
+ .changelog {
44
+ .entry {
45
+ background-color: var(--matcha-color-surface-card);
46
+ }
47
+ }
48
+
49
+ .text-boxed {
50
+ background-color: var(--matcha-color-text-boxed-bg);
51
+ color: var(--matcha-color-text-boxed-fg);
52
+ }
53
+
54
+ .text-primary {
55
+ color: var(--matcha-color-primary) !important;
56
+ }
57
+
58
+ .text-warn {
59
+ color: var(--matcha-color-warn) !important;
60
+ }
61
+
62
+ .text-label {
63
+ color: var(--matcha-color-text-label) !important;
64
+ }
65
+
66
+ .text-placeholder {
67
+ color: var(--matcha-color-text-placeholder) !important;
68
+ }
69
+
70
+ .text-basic {
71
+ color: var(--matcha-color-fg) !important;
72
+ }
73
+
74
+ // Changelog
75
+ .changelog {
76
+ .entry {
77
+ .groups {
78
+ .breaking-changes {
79
+ .title {
80
+ background: var(--matcha-color-danger);
81
+ }
82
+ }
83
+
84
+ .new {
85
+ .title {
86
+ background: var(--matcha-color-success);
87
+ }
88
+ }
89
+
90
+ .improved {
91
+ .title {
92
+ background: var(--matcha-prim-purple-500);
93
+ }
94
+ }
95
+
96
+ .fixed {
97
+ .title {
98
+ background: var(--matcha-color-info);
99
+ }
100
+ }
101
+ }
102
+ }
103
+ }
104
+
105
+ // Code
106
+ code {
107
+ &:not(.highlight) {
108
+ color: var(--matcha-color-info);
109
+ }
110
+ }
111
+
112
+ // Mark
113
+ mark {
114
+ background: var(--matcha-color-warn);
115
+ }
116
+
117
+ // Message boxes
118
+ .matcha-message-box,
119
+ .matcha-msg-box,
120
+ .message-box {
121
+ background-color: var(--matcha-color-primary-alpha);
122
+ border-left-color: var(--matcha-color-primary);
123
+ color: var(--matcha-color-fg);
124
+
125
+ &.error,
126
+ &.warning,
127
+ &.success,
128
+ &.info,
129
+ &--error,
130
+ &--warning,
131
+ &--success,
132
+ &--info {
133
+ color: var(--matcha-color-fg);
134
+ }
135
+
136
+ &--error,
137
+ &.error {
138
+ background-color: var(--matcha-color-danger-alpha);
139
+ border-left-color: var(--matcha-color-danger);
140
+ }
141
+
142
+ &--warning,
143
+ &.warning {
144
+ background-color: var(--matcha-color-warn-alpha);
145
+ border-left-color: var(--matcha-color-warn);
146
+ }
147
+
148
+ &--success,
149
+ &.success {
150
+ background-color: var(--matcha-color-success-alpha);
151
+ border-left-color: var(--matcha-color-success);
152
+ }
153
+
154
+ &--info,
155
+ &.info {
156
+ background-color: var(--matcha-color-info-alpha);
157
+ border-left-color: var(--matcha-color-info);
158
+ }
159
+ }
160
+ }
161
+
162
+ // -----------------------------------------------------------------------------------------------------
163
+ // Typography [Style]
164
+ // -----------------------------------------------------------------------------------------------------
165
+ // Paragraph
166
+ .par-xs,
167
+ .p-tiny {
168
+ font-size: 12px !important;
169
+ }
170
+
171
+ .par-sm,
172
+ .par-p,
173
+ .p-small {
174
+ font-size: 14px !important;
175
+ }
176
+
177
+ .par-md,
178
+ .par-m,
179
+ .p-medium {
180
+ font-size: 16px !important;
181
+ }
182
+
183
+ .par-lg,
184
+ .p-large {
185
+ font-size: 20px !important;
186
+ }
187
+
188
+ .par-xl,
189
+ .p-huge {
190
+ font-size: 24px !important;
191
+ }
192
+ .text-medium,
193
+ .text-semibold {
194
+ font-weight: 500;
195
+ }
196
+
197
+ .text-regular,
198
+ .text-book {
199
+ font-weight: 400;
200
+ }
201
+
202
+ .text-bold {
203
+ font-weight: 700;
204
+ }
205
+
206
+ .text-black {
207
+ font-weight: 900;
208
+ }
209
+
210
+ .matcha-message-box,
211
+ .matcha-msg-box,
212
+ .message-box {
213
+ padding: 16px;
214
+ border-left: 6px solid;
215
+
216
+ &.error,
217
+ &.warning,
218
+ &.success,
219
+ &.info,
220
+ &--error,
221
+ &--warning,
222
+ &--success,
223
+ &--info {
224
+ padding: 16px;
225
+ border-left: 6px solid;
226
+ }
227
+ }
228
+
229
+ .title {
230
+ line-height: 24px;
231
+ margin: 0 0 16px 0;
232
+ display: flex;
233
+ align-items: center;
234
+
235
+ .title-bullet {
236
+ margin: 0px 8px 0 0;
237
+ display: inline-block;
238
+ position: relative;
239
+ border-radius: 10px;
240
+ }
241
+
242
+ .title-content {
243
+ line-height: 20px;
244
+ display: -webkit-box;
245
+ -webkit-line-clamp: 2;
246
+ overflow: hidden;
247
+ text-overflow: ellipsis;
248
+ word-break: break-word;
249
+ white-space: initial;
250
+ -webkit-box-orient: vertical;
251
+ text-transform: capitalize;
252
+ }
253
+ }
254
+
255
+ .title-sm {
256
+ display: block;
257
+ overflow: hidden;
258
+ text-overflow: ellipsis;
259
+ white-space: nowrap;
260
+ }
261
+
262
+
263
+ // -----------------------------------------------------------------------------------------------------
264
+ // @ Container helpers
265
+ // -----------------------------------------------------------------------------------------------------
266
+ .matcha-container {
267
+ width: 100%;
268
+ max-width: 1128px;
269
+ margin-left:auto;
270
+ margin-right:auto;
271
+ }
272
+
273
+ // -----------------------------------------------------------------------------------------------------
274
+ // @ Combo helpers
275
+ // -----------------------------------------------------------------------------------------------------
276
+ .combo-image-text,
277
+ .combo-checkbox-text,
278
+ .combo-icon-text,
279
+ .combo-double-line {
280
+ display: flex;
281
+ align-items: center;
282
+ }
283
+
284
+ .combo-image-text .side-text,
285
+ .combo-checkbox-text .side-text,
286
+ .combo-icon-text .side-text,
287
+ .combo-double-line .side-text {
288
+ display: inline-block;
289
+ width: calc(100% - 48px);
290
+ line-height: 20px;
291
+ -webkit-line-clamp: 2;
292
+ overflow: hidden;
293
+ text-overflow: ellipsis;
294
+ word-break: break-word;
295
+ white-space: initial;
296
+ -webkit-box-orient: vertical;
297
+ }
298
+
299
+ .combo-image-text .avatar,
300
+ .combo-checkbox-text .avatar,
301
+ .combo-icon-text .avatar,
302
+ .combo-double-line .avatar {
303
+ border-radius: 50px;
304
+ min-width: 24px;
305
+ min-height: 24px;
306
+ }
307
+
308
+ .one-line-text {
309
+ line-height: 20px;
310
+ display: -webkit-box;
311
+ -webkit-line-clamp: 1;
312
+ }
313
+
314
+ .two-lines-text {
315
+ line-height: 20px;
316
+ display: -webkit-box;
317
+ -webkit-line-clamp: 2;
318
+ }
319
+
320
+ .three-lines-text {
321
+ line-height: 20px;
322
+ display: -webkit-box;
323
+ -webkit-line-clamp: 3;
324
+ }
325
+
326
+ .four-lines-text {
327
+ line-height: 20px;
328
+ display: -webkit-box;
329
+ -webkit-line-clamp: 4;
330
+ }
331
+
332
+ .five-lines-text {
333
+ line-height: 20px;
334
+ display: -webkit-box;
335
+ -webkit-line-clamp: 5;
336
+ }
337
+
338
+ .one-line-text,
339
+ .two-lines-text,
340
+ .three-lines-text,
341
+ .four-lines-text,
342
+ .five-lines-text {
343
+ overflow: hidden;
344
+ text-overflow: ellipsis;
345
+ word-break: break-word;
346
+ white-space: initial;
347
+ -webkit-box-orient: vertical;
348
+ }
349
+ .word-break {
350
+ word-break: break-word
351
+ }
352
+ .word-break-all {
353
+ word-break: break-all
354
+ }
355
+
356
+ // Helpers pontuais migrados do matcha-core (DSV3): matcha-core é a grade
357
+ // gerada; helpers escritos à mão vivem aqui na base (junto de .word-break etc.).
358
+ // (.break-word não migra — use .word-break acima, mesma regra.)
359
+ .overflow-wrap-anywhere { overflow-wrap: anywhere; }
360
+ .font-inherit { font-family: inherit; }
361
+ .font-italic { font-style: italic; }
362
+ .tabular-nums { font-variant-numeric: tabular-nums; }
363
+ .user-select-none { -webkit-user-select: none; user-select: none; }
364
+ .scrollbar-none {
365
+ scrollbar-width: none;
366
+ &::-webkit-scrollbar { display: none; }
367
+ }
368
+
369
+ // -----------------------------------------------------------------------------------------------------
370
+ // @ Letter spacing helpers
371
+ // -----------------------------------------------------------------------------------------------------
372
+ .letter-spacing-condensed {
373
+ letter-spacing: -.08em !important;
374
+ }
375
+ .letter-spacing-normal {
376
+ letter-spacing: normal !important;
377
+ }
378
+ .letter-spacing-relaxed {
379
+ letter-spacing: .08em !important;
380
+ }
381
+
382
+ // -----------------------------------------------------------------------------------------------------
383
+ // @ Cursor helpers
384
+ // -----------------------------------------------------------------------------------------------------
385
+ .pointer-events-all {
386
+ pointer-events: all
387
+ }
388
+ .pointer-events-none {
389
+ pointer-events: none
390
+ }
391
+
392
+ // -----------------------------------------------------------------------------------------------------
393
+ // @ Clear Shadows
394
+ // -----------------------------------------------------------------------------------------------------
395
+ .flatten,
396
+ .no-shadow,
397
+ .shadow-none {
398
+ box-shadow: none !important;
399
+ }
400
+
401
+ // -----------------------------------------------------------------------------------------------------
402
+ // @ Enable/Disable
403
+ // -----------------------------------------------------------------------------------------------------
404
+ .disabled {
405
+ transition: opacity 100ms linear;
406
+ opacity: .5;
407
+ pointer-events: none
408
+ }
409
+ .enabled {
410
+ transition: opacity 100ms linear;
411
+ opacity: 1
412
+ }
413
+
414
+
415
+ // -----------------------------------------------------------------------------------------------------
416
+ // @ Hover - Show/Hide
417
+ // -----------------------------------------------------------------------------------------------------
418
+ .on-hover-show:hover {
419
+ opacity: 1;
420
+ }
421
+ .on-hover-hide:hover {
422
+ opacity: 0;
423
+ }
424
+
425
+ // -----------------------------------------------------------------------------------------------------
426
+ // @ Float
427
+ // -----------------------------------------------------------------------------------------------------
428
+ .clearfix::after {
429
+ content: "";
430
+ clear: both;
431
+ display: table;
432
+ }
433
+ .left {
434
+ float: left;
435
+ }
436
+ .right {
437
+ float: right;
438
+ }
439
+ .list,
440
+ .list-style-none {
441
+ list-style: none;
442
+ }
443
+ .list-style-disc,
444
+ .list-style-dot {
445
+ list-style: disc;
446
+ }