@inchurch/matcha-theme 20.0.3

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 (112) hide show
  1. package/README.md +303 -0
  2. package/abstracts/_colors.scss +405 -0
  3. package/abstracts/_elevation.scss +102 -0
  4. package/abstracts/_functions.scss +1213 -0
  5. package/abstracts/_media-breakpoint.scss +23 -0
  6. package/abstracts/_typography.scss +127 -0
  7. package/base/_reset.scss +438 -0
  8. package/components/matcha-accordion.scss +157 -0
  9. package/components/matcha-audio-player.scss +32 -0
  10. package/components/matcha-autocomplete.scss +134 -0
  11. package/components/matcha-avatar.scss +161 -0
  12. package/components/matcha-badge.scss +120 -0
  13. package/components/matcha-breadcrumb.scss +126 -0
  14. package/components/matcha-button-toggle.scss +363 -0
  15. package/components/matcha-buttons.scss +784 -0
  16. package/components/matcha-calendar.scss +154 -0
  17. package/components/matcha-cards.scss +205 -0
  18. package/components/matcha-chart-card.scss +60 -0
  19. package/components/matcha-checkbox.scss +554 -0
  20. package/components/matcha-chip.scss +212 -0
  21. package/components/matcha-color-pick.scss +35 -0
  22. package/components/matcha-command-palette.scss +89 -0
  23. package/components/matcha-crop.scss +172 -0
  24. package/components/matcha-date.scss +81 -0
  25. package/components/matcha-divider.scss +45 -0
  26. package/components/matcha-draggable.scss +24 -0
  27. package/components/matcha-drawer.scss +235 -0
  28. package/components/matcha-drop-list.scss +390 -0
  29. package/components/matcha-emoji.scss +69 -0
  30. package/components/matcha-empty-state.scss +118 -0
  31. package/components/matcha-flag.scss +62 -0
  32. package/components/matcha-footer.scss +187 -0
  33. package/components/matcha-form-field.scss +552 -0
  34. package/components/matcha-form-section.scss +101 -0
  35. package/components/matcha-header.scss +325 -0
  36. package/components/matcha-highlight.scss +296 -0
  37. package/components/matcha-hint-text.scss +66 -0
  38. package/components/matcha-horizontal-tree.scss +317 -0
  39. package/components/matcha-icon.scss +106 -0
  40. package/components/matcha-image.scss +62 -0
  41. package/components/matcha-list.scss +212 -0
  42. package/components/matcha-menu.scss +86 -0
  43. package/components/matcha-modal.scss +234 -0
  44. package/components/matcha-nav.scss +450 -0
  45. package/components/matcha-notification.scss +197 -0
  46. package/components/matcha-option.scss +95 -0
  47. package/components/matcha-page-builder.scss +4186 -0
  48. package/components/matcha-paginator.scss +235 -0
  49. package/components/matcha-panel.scss +167 -0
  50. package/components/matcha-profile-card.scss +50 -0
  51. package/components/matcha-progress-bar.scss +209 -0
  52. package/components/matcha-radio.scss +528 -0
  53. package/components/matcha-ripple.scss +7 -0
  54. package/components/matcha-scrollbar.scss +35 -0
  55. package/components/matcha-scrollbox-shadow.scss +123 -0
  56. package/components/matcha-section.scss +105 -0
  57. package/components/matcha-select.scss +661 -0
  58. package/components/matcha-skeleton.scss +138 -0
  59. package/components/matcha-slide-toggle.scss +590 -0
  60. package/components/matcha-slider.scss +188 -0
  61. package/components/matcha-snack-bar.scss +266 -0
  62. package/components/matcha-spin.scss +252 -0
  63. package/components/matcha-spinner.scss +78 -0
  64. package/components/matcha-stepper.scss +177 -0
  65. package/components/matcha-table-cell.scss +41 -0
  66. package/components/matcha-table.scss +785 -0
  67. package/components/matcha-tabs.scss +469 -0
  68. package/components/matcha-text-editor.scss +151 -0
  69. package/components/matcha-time.scss +33 -0
  70. package/components/matcha-timepicker.scss +13 -0
  71. package/components/matcha-toolbar.scss +206 -0
  72. package/components/matcha-tooltip.scss +128 -0
  73. package/components/matcha-uploader.scss +215 -0
  74. package/css/matcha-style.css +76772 -0
  75. package/fonts/CircularStd-Black.eot +0 -0
  76. package/fonts/CircularStd-Black.svg +3426 -0
  77. package/fonts/CircularStd-Black.ttf +0 -0
  78. package/fonts/CircularStd-Black.woff +0 -0
  79. package/fonts/CircularStd-Black.woff2 +0 -0
  80. package/fonts/CircularStd-Bold.eot +0 -0
  81. package/fonts/CircularStd-Bold.otf +0 -0
  82. package/fonts/CircularStd-Bold.svg +13532 -0
  83. package/fonts/CircularStd-Bold.ttf +0 -0
  84. package/fonts/CircularStd-Bold.woff +0 -0
  85. package/fonts/CircularStd-Bold.woff2 +0 -0
  86. package/fonts/CircularStd-Medium.eot +0 -0
  87. package/fonts/CircularStd-Medium.otf +0 -0
  88. package/fonts/CircularStd-Medium.svg +13511 -0
  89. package/fonts/CircularStd-Medium.ttf +0 -0
  90. package/fonts/CircularStd-Medium.woff +0 -0
  91. package/fonts/CircularStd-Medium.woff2 +0 -0
  92. package/fonts/CircularStd-Regular.eot +0 -0
  93. package/fonts/CircularStd-Regular.otf +0 -0
  94. package/fonts/CircularStd-Regular.svg +2378 -0
  95. package/fonts/CircularStd-Regular.ttf +0 -0
  96. package/fonts/CircularStd-Regular.woff +0 -0
  97. package/fonts/CircularStd-Regular.woff2 +0 -0
  98. package/main.scss +262 -0
  99. package/package.json +11 -0
  100. package/tokens/_animations-tokens.scss +37 -0
  101. package/tokens/_breakpoints-tokens.scss +26 -0
  102. package/tokens/_color-tokens.scss +1153 -0
  103. package/tokens/_css-custom-properties.scss +568 -0
  104. package/tokens/_elevation-tokens.scss +33 -0
  105. package/tokens/_spacing-tokens.scss +94 -0
  106. package/tokens/_typography-tokens.scss +65 -0
  107. package/vendors/angular-editor.scss +56 -0
  108. package/vendors/angular-material-fixes.scss +297 -0
  109. package/vendors/calendar.scss +2880 -0
  110. package/vendors/charts.scss +92 -0
  111. package/vendors/ng5-slider.scss +56 -0
  112. package/vendors/ngx-material-timepicker.scss +50 -0
@@ -0,0 +1,154 @@
1
+ @use "sass:map";
2
+
3
+ // =========================================================
4
+ // Matcha Calendar — somente cores/sombras/bordas (tema)
5
+ // Estrutura (layout, tamanhos, transitions) vive em
6
+ // matcha-components/src/lib/matcha-calendar/calendar/matcha-calendar.component.scss
7
+ // =========================================================
8
+
9
+ @mixin matcha-calendar-theme($theme) {
10
+ $is-dark: map.get($theme, is-dark);
11
+
12
+ .matcha-calendar {
13
+ background: var(--matcha-color-surface-card, var(--matcha-color-surface, #{getSurface($theme)}));
14
+ color: var(--matcha-color-text-primary, var(--matcha-color-fg, #{getForeground($theme)}));
15
+ box-shadow: var(--matcha-shadow-2, #{if($is-dark, $shadow-2-dark, $shadow-2-light)});
16
+
17
+ @if $is-dark {
18
+ border: var(--matcha-border-hairline, 1px) solid var(--matcha-color-surface-border, rgba(255, 255, 255, 0.12));
19
+ }
20
+ }
21
+
22
+ // ── Header ──────────────────────────────────────────────
23
+ .matcha-calendar-header-label {
24
+ color: var(--matcha-color-text-primary, var(--matcha-color-fg, #{getForeground($theme)}));
25
+
26
+ &:hover {
27
+ background-color: var(--matcha-color-surface-hover, rgba(255, 255, 255, 0.08));
28
+ }
29
+
30
+ &:focus-visible {
31
+ outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent, #{getAccent($theme)});
32
+ outline-offset: var(--matcha-state-focus-ring-offset, 2px);
33
+ }
34
+ }
35
+
36
+ .matcha-calendar-nav-btn {
37
+ color: var(--matcha-color-text-primary, var(--matcha-color-fg, #{getForeground($theme)}));
38
+
39
+ &:hover:not(:disabled):not(.is-disabled) {
40
+ background-color: var(--matcha-color-surface-hover, rgba(255, 255, 255, 0.08));
41
+ }
42
+
43
+ &:focus-visible {
44
+ outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent, #{getAccent($theme)});
45
+ outline-offset: var(--matcha-state-focus-ring-offset, 2px);
46
+ }
47
+
48
+ &[disabled],
49
+ &.is-disabled {
50
+ color: var(--matcha-color-interaction-disabled-fg, #{getDisabledContrast($theme)});
51
+ }
52
+ }
53
+
54
+ // ── Weekday + Divider ───────────────────────────────────
55
+ .matcha-calendar-weekday {
56
+ color: var(--matcha-color-text-secondary, rgba(255, 255, 255, 0.7));
57
+ }
58
+
59
+ .matcha-calendar-divider {
60
+ background: var(--matcha-color-surface-border, var(--matcha-color-border, #{getGrey($theme)}));
61
+ }
62
+
63
+ // ── Day cells (Month view) ──────────────────────────────
64
+ .matcha-calendar-cell {
65
+ color: var(--matcha-color-text-primary, var(--matcha-color-fg, #{getForeground($theme)}));
66
+
67
+ &:hover:not(.is-disabled):not(.is-selected):not(.is-range-start):not(.is-range-end) {
68
+ background-color: var(--matcha-color-surface-hover, rgba(255, 255, 255, 0.08));
69
+ }
70
+
71
+ &:focus-visible {
72
+ outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent, #{getAccent($theme)});
73
+ outline-offset: -2px;
74
+ }
75
+
76
+ // Today: ring accent (sem fill)
77
+ &.is-today:not(.is-selected):not(.is-range-start):not(.is-range-end) {
78
+ box-shadow: inset 0 0 0 var(--matcha-border-thin, 2px) var(--matcha-color-accent, #{getAccent($theme)});
79
+ }
80
+
81
+ // In-range (exclusive): pill individual com accent-alpha
82
+ &.is-in-range:not(.is-selected):not(.is-range-start):not(.is-range-end) {
83
+ background-color: var(--matcha-color-accent-alpha, #{getAccentAlpha($theme)});
84
+ }
85
+
86
+ // Selected / range start / range end: fill accent + contrast
87
+ &.is-selected,
88
+ &.is-range-start,
89
+ &.is-range-end {
90
+ background-color: var(--matcha-color-accent, #{getAccent($theme)});
91
+ color: var(--matcha-color-accent-contrast, getAccentContrast($theme));
92
+ font-weight: var(--matcha-weight-semibold, 600);
93
+ box-shadow: none;
94
+ }
95
+
96
+ &.is-other-month {
97
+ color: var(--matcha-color-interaction-disabled-fg, #{getDisabledContrast($theme)});
98
+ }
99
+
100
+ &.is-disabled {
101
+ color: var(--matcha-color-interaction-disabled-fg, #{getDisabledContrast($theme)});
102
+ background-color: transparent;
103
+ box-shadow: none;
104
+ }
105
+ }
106
+
107
+ // ── Grid views (Year / Decade) ──────────────────────────
108
+ .matcha-calendar-grid-cell {
109
+ color: var(--matcha-color-text-primary, var(--matcha-color-fg, #{getForeground($theme)}));
110
+
111
+ &:hover:not(.is-disabled):not(.is-selected) {
112
+ background-color: var(--matcha-color-surface-hover, rgba(255, 255, 255, 0.08));
113
+ }
114
+
115
+ &:focus-visible {
116
+ outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent, #{getAccent($theme)});
117
+ outline-offset: -2px;
118
+ }
119
+
120
+ &.is-today:not(.is-selected) {
121
+ box-shadow: inset 0 0 0 var(--matcha-border-thin, 2px) var(--matcha-color-accent, #{getAccent($theme)});
122
+ }
123
+
124
+ &.is-selected {
125
+ background-color: var(--matcha-color-accent, #{getAccent($theme)});
126
+ color: var(--matcha-color-accent-contrast, getAccentContrast($theme));
127
+ font-weight: var(--matcha-weight-semibold, 600);
128
+ box-shadow: none;
129
+ }
130
+
131
+ &.is-disabled {
132
+ color: var(--matcha-color-interaction-disabled-fg, #{getDisabledContrast($theme)});
133
+ }
134
+ }
135
+
136
+ // ── Footer (botão Hoje) ─────────────────────────────────
137
+ .matcha-calendar-today-btn {
138
+ color: var(--matcha-color-accent, #{getAccent($theme)});
139
+
140
+ &:hover:not(:disabled):not(.is-disabled) {
141
+ background-color: var(--matcha-color-accent-alpha, #{getAccentAlpha($theme)});
142
+ }
143
+
144
+ &:focus-visible {
145
+ outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent, #{getAccent($theme)});
146
+ outline-offset: 2px;
147
+ }
148
+
149
+ &[disabled],
150
+ &.is-disabled {
151
+ color: var(--matcha-color-interaction-disabled-fg, #{getDisabledContrast($theme)});
152
+ }
153
+ }
154
+ }
@@ -0,0 +1,205 @@
1
+ @use "sass:map";
2
+
3
+ // =============================================================================
4
+ // matcha-cards.scss — Card container (surface, outline, alpha, blockquote)
5
+ // Aligned with Figma matcha/card: Tipo(3) × Direção(2) = 6 variants
6
+ // =============================================================================
7
+
8
+ @mixin matcha-cards-theme($theme) {
9
+ $is-dark: map.get($theme, is-dark);
10
+
11
+ matcha-card,
12
+ .matcha-card,
13
+ .matcha-card-flat {
14
+
15
+ // ── Default: surface ──
16
+ &:not([color]) {
17
+ background-color: var(--matcha-color-surface, #{getSurface($theme)});
18
+ color: var(--matcha-color-fg, #{getForeground($theme)});
19
+ }
20
+
21
+ // ── Semantic colors ──
22
+ &[color="surface"] {
23
+ background-color: var(--matcha-color-surface, #{getSurface($theme)});
24
+ color: var(--matcha-color-fg, #{getForeground($theme)});
25
+ }
26
+
27
+ &[color="bg"] {
28
+ background-color: var(--matcha-color-bg, #{getBackground($theme)});
29
+ color: var(--matcha-color-fg, #{getForeground($theme)});
30
+ }
31
+
32
+ &[color="accent"] {
33
+ background-color: var(--matcha-color-accent, #{getAccent($theme)});
34
+ color: var(--matcha-color-accent-contrast, #{getAccentContrast($theme)});
35
+ }
36
+
37
+ &[color="primary"] {
38
+ background-color: var(--matcha-color-primary, #{getPrimary($theme)});
39
+ color: var(--matcha-color-primary-contrast, #{getPrimaryContrast($theme)});
40
+ }
41
+
42
+ &[color="danger"] {
43
+ background-color: var(--matcha-color-danger, #{getDanger($theme)});
44
+ color: var(--matcha-color-danger-contrast, #{getDangerContrast($theme)});
45
+ }
46
+
47
+ // ── Alpha modifier ──
48
+ &[alpha]:not([alpha="false"]) {
49
+ &[color="accent"] {
50
+ background-color: var(--matcha-color-accent-alpha, #{getAccentAlpha($theme)});
51
+ color: var(--matcha-color-fg, #{getForeground($theme)});
52
+ }
53
+ &[color="primary"] {
54
+ background-color: var(--matcha-color-primary-alpha, #{getPrimaryAlpha($theme)});
55
+ color: var(--matcha-color-fg, #{getForeground($theme)});
56
+ }
57
+ &[color="danger"] {
58
+ background-color: var(--matcha-color-danger-alpha, #{getDangerAlpha($theme)});
59
+ color: var(--matcha-color-fg, #{getForeground($theme)});
60
+ }
61
+ &[color="surface"] {
62
+ background-color: #{getSurfaceAlpha($theme)};
63
+ color: var(--matcha-color-fg, #{getForeground($theme)});
64
+ }
65
+ &[color="bg"] {
66
+ background-color: #{getBackgroundAlpha($theme)};
67
+ color: var(--matcha-color-fg, #{getForeground($theme)});
68
+ }
69
+ }
70
+
71
+ // ── Outline modifier ──
72
+ &[outline]:not([outline="false"]) {
73
+ background: transparent;
74
+ box-shadow: inset 0 0 0 var(--matcha-border-thin, 2px) currentColor;
75
+
76
+ &:not([color]) {
77
+ color: var(--matcha-color-fg, #{getForeground($theme)});
78
+ }
79
+ }
80
+
81
+ // ── Tint modifier ──
82
+ &[tint]:not([tint="false"]) {
83
+ &[color="accent"] {
84
+ background-color: var(--matcha-color-accent-alpha, #{getAccentAlpha($theme)});
85
+ color: var(--matcha-color-accent, #{getAccent($theme)});
86
+ }
87
+ &[color="primary"] {
88
+ background-color: var(--matcha-color-primary-alpha, #{getPrimaryAlpha($theme)});
89
+ color: var(--matcha-color-primary, #{getPrimary($theme)});
90
+ }
91
+ &[color="danger"] {
92
+ background-color: var(--matcha-color-danger-alpha, #{getDangerAlpha($theme)});
93
+ color: var(--matcha-color-danger, #{getDanger($theme)});
94
+ }
95
+ }
96
+
97
+ // ── Basic modifier ──
98
+ &[basic]:not([basic="false"]) {
99
+ box-shadow: none;
100
+ background-color: var(--matcha-color-surface, #{getSurface($theme)});
101
+
102
+ &:not([color]) {
103
+ color: var(--matcha-color-fg, #{getForeground($theme)});
104
+ }
105
+ }
106
+
107
+ // ── Link modifier ──
108
+ &[link]:not([link="false"]) {
109
+ text-transform: initial;
110
+ letter-spacing: 0;
111
+ text-decoration: none;
112
+ padding: 0;
113
+ background: transparent;
114
+ }
115
+ }
116
+ }
117
+
118
+ // =============================================================================
119
+ // Structural styles
120
+ // =============================================================================
121
+
122
+ matcha-card,
123
+ .matcha-card,
124
+ .matcha-card-flat {
125
+ // Figma matcha/card: radius 16 (xl)
126
+ padding: var(--matcha-space-200, 16px);
127
+ border-radius: var(--matcha-radius-xl, 16px);
128
+ display: flex;
129
+ flex-direction: column;
130
+
131
+ // ── Direction: horizontal ──
132
+ &.matcha-card--horizontal {
133
+ flex-direction: row;
134
+ }
135
+
136
+ // ── Blockquote borders ──
137
+ &-border,
138
+ &-border-left {
139
+ border-left: var(--matcha-border-thick, 8px) solid;
140
+ }
141
+
142
+ &-border-right {
143
+ border-right: var(--matcha-border-thick, 8px) solid;
144
+ }
145
+
146
+ // ── States ──
147
+ &.disabled {
148
+ opacity: var(--matcha-opacity-disabled, 0.38);
149
+ pointer-events: none;
150
+ transition: opacity 100ms linear;
151
+ }
152
+
153
+ &.enabled {
154
+ opacity: 1;
155
+ transition: opacity 100ms linear;
156
+ }
157
+
158
+ // ── Width variants ──
159
+ &.variable-width { min-width: 0; }
160
+ &.auto-width { min-width: 0; max-width: none; }
161
+ &.fixed-width { min-width: 264px; max-width: 264px; width: 264px; }
162
+
163
+ // ── Divider ──
164
+ .card-divider {
165
+ margin: var(--matcha-space-200, 16px);
166
+ &.full-width { margin: 0; }
167
+ }
168
+
169
+ // ── Expand area ──
170
+ .card-expand-area {
171
+ overflow: hidden;
172
+ .card-expanded-content {
173
+ padding: var(--matcha-space-100, 8px) var(--matcha-space-200, 16px) var(--matcha-space-200, 16px);
174
+ line-height: 1.75;
175
+ }
176
+ }
177
+
178
+ // ── Media slot (16:9) ──
179
+ .matcha-card__media {
180
+ width: 100%;
181
+ aspect-ratio: 16 / 9;
182
+ overflow: hidden;
183
+ border-radius: var(--matcha-radius-md, 4px);
184
+ flex-shrink: 0;
185
+
186
+ img {
187
+ width: 100%;
188
+ height: 100%;
189
+ object-fit: cover;
190
+ }
191
+ }
192
+
193
+ // Horizontal media
194
+ &.matcha-card--horizontal .matcha-card__media {
195
+ width: 160px;
196
+ aspect-ratio: auto;
197
+ height: 100%;
198
+ }
199
+
200
+ @media (prefers-reduced-motion: reduce) {
201
+ &.disabled, &.enabled {
202
+ transition: none;
203
+ }
204
+ }
205
+ }
@@ -0,0 +1,60 @@
1
+ @use "sass:map";
2
+
3
+ // =============================================================================
4
+ // matcha-chart-card.scss — Simple wrapper card for Chart.js charts
5
+ // Aligned with Figma matcha/chart-card:
6
+ // Accent line + content slot (chart goes inside via ng-content)
7
+ // Angular: matcha-chart-card
8
+ // =============================================================================
9
+
10
+ @mixin matcha-chart-card-theme($theme) {
11
+ $is-dark: map.get($theme, is-dark);
12
+
13
+ .matcha-chart-card {
14
+ background: var(--matcha-color-surface, #{getSurface($theme)});
15
+ box-shadow: var(--matcha-shadow-1,
16
+ 0 2px 12px rgba(0, 0, 0, if($is-dark, 0.3, 0.06)),
17
+ 0 0 4px rgba(0, 0, 0, if($is-dark, 0.2, 0.04))
18
+ );
19
+
20
+ @if $is-dark {
21
+ border: var(--matcha-border-hairline, 1px) solid rgba(#212121, 0.06); // ok: structural
22
+ }
23
+ }
24
+
25
+ .matcha-chart-card__accent {
26
+ background: var(--matcha-color-accent, #{getAccent($theme)});
27
+ }
28
+ }
29
+
30
+ // ── Layout ──────────────────────────────────────────────────────────────────
31
+
32
+ .matcha-chart-card {
33
+ display: flex;
34
+ flex-direction: column;
35
+ width: 100%;
36
+ border-radius: var(--matcha-radius-xl, 16px);
37
+ overflow: hidden;
38
+ box-sizing: border-box;
39
+ }
40
+
41
+ .matcha-chart-card__accent {
42
+ width: 100%;
43
+ height: 3px;
44
+ flex-shrink: 0;
45
+ }
46
+
47
+ .matcha-chart-card__content {
48
+ display: flex;
49
+ flex-direction: column;
50
+ padding: var(--matcha-space-200, 16px);
51
+ flex: 1;
52
+ }
53
+
54
+ // ── Reduced motion ──────────────────────────────────────────────────────────
55
+
56
+ @media (prefers-reduced-motion: reduce) {
57
+ .matcha-chart-card {
58
+ transition: none;
59
+ }
60
+ }