@yuuvis/material 0.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 (51) hide show
  1. package/README.md +5 -0
  2. package/fesm2022/yuuvis-material.mjs +229 -0
  3. package/fesm2022/yuuvis-material.mjs.map +1 -0
  4. package/index.d.ts +4 -0
  5. package/lib/components/index.d.ts +2 -0
  6. package/lib/directives/icon-button/icon-button.directive.d.ts +15 -0
  7. package/lib/directives/icon-button/icon-button.model.d.ts +4 -0
  8. package/lib/directives/icon-button/index.d.ts +2 -0
  9. package/lib/directives/index.d.ts +2 -0
  10. package/lib/directives/yuv-button.directive.d.ts +17 -0
  11. package/lib/providers/index.d.ts +1 -0
  12. package/lib/providers/material.providers.d.ts +2 -0
  13. package/lib/services/index.d.ts +1 -0
  14. package/lib/services/yuv-mat-icon-registry.service.d.ts +13 -0
  15. package/package.json +26 -0
  16. package/scss/components/_loading-indicator.scss +126 -0
  17. package/scss/components/index.scss +1 -0
  18. package/scss/elements/_body.scss +11 -0
  19. package/scss/elements/_focus.scss +20 -0
  20. package/scss/elements/_index.scss +6 -0
  21. package/scss/elements/_root.scss +14 -0
  22. package/scss/elements/_scrollbar.scss +33 -0
  23. package/scss/elements/_text-selection.scss +6 -0
  24. package/scss/elements/_text.scss +23 -0
  25. package/scss/generics/_normalize.scss +1 -0
  26. package/scss/generics/index.scss +1 -0
  27. package/scss/index.scss +45 -0
  28. package/scss/material-components/_button.scss +5 -0
  29. package/scss/material-components/_cdk-overlay.scss +6 -0
  30. package/scss/material-components/_dialog.scss +6 -0
  31. package/scss/material-components/_icon-button.scss +34 -0
  32. package/scss/material-components/_icon.scss +15 -0
  33. package/scss/material-components/_menu.scss +10 -0
  34. package/scss/material-components/_select.scss +19 -0
  35. package/scss/material-components/_tools.scss +1 -0
  36. package/scss/material-components/index.scss +8 -0
  37. package/scss/material-components/progress/_index.scss +1 -0
  38. package/scss/material-components/progress/_progress.scss +32 -0
  39. package/scss/material-components/progress/_progress.tools.scss +8 -0
  40. package/scss/themes/yuuvis-standard/theme-color.scss +136 -0
  41. package/scss/themes/yuuvis-standard/theme.scss +230 -0
  42. package/scss/token/_css-token.scss +11 -0
  43. package/scss/token/_index.scss +1 -0
  44. package/scss/token/_token.config.scss +1 -0
  45. package/scss/token/_token.scss +249 -0
  46. package/scss/token/_token.tools.scss +23 -0
  47. package/scss/utils/_font.scss +41 -0
  48. package/scss/utils/_index.scss +3 -0
  49. package/scss/utils/_spacing.scss +53 -0
  50. package/scss/utils/_visibility.scss +9 -0
  51. package/scss/vendors/_index.scss +0 -0
@@ -0,0 +1,249 @@
1
+ @use 'sass:map';
2
+ @use '../themes/yuuvis-standard/theme-color';
3
+
4
+ /*
5
+
6
+ Font
7
+
8
+ */
9
+
10
+ //Base
11
+ $ref-font-family: 'Mulish', sans-serif;
12
+ $ref-font-weight-bold: 900;
13
+ $ref-font-weight-medium: 700;
14
+ $ref-font-weight-regular: 500;
15
+
16
+ //Body
17
+ $font-body: var(--mat-sys-body-medium);
18
+ $font-body-font: var(--mat-sys-body-medium-font);
19
+ $font-body-line-height: var(--mat-sys-body-medium-line-height);
20
+ $font-body-size: var(--mat-sys-body-medium-size);
21
+ $font-body-tracking: var(--mat-sys-body-medium-tracking);
22
+ $font-body-weight: var(--mat-sys-body-medium-weight);
23
+
24
+ $font-body-subtle: var(--mat-sys-body-small);
25
+ $font-body-subtle-font: var(--mat-sys-body-small-font);
26
+ $font-body-subtle-line-height: var(--mat-sys-body-small-line-height);
27
+ $font-body-subtle-size: var(--mat-sys-body-small-size);
28
+ $font-body-subtle-tracking: var(--mat-sys-body-small-tracking);
29
+ $font-body-subtle-weight: var(--mat-sys-body-small-weight);
30
+
31
+ //Headlines
32
+ $ref-font-headline-line-height: 1.4;
33
+
34
+ $ref-font-headline-small-size: 1rem; //16px
35
+ $font-headline-small: var(--mat-sys-headline-small);
36
+ $font-headline-small-font: var(--mat-sys-headline-small-font);
37
+ $font-headline-small-line-height: var(--mat-sys-headline-small-line-height);
38
+ $font-headline-small-size: var(--mat-sys-headline-small-size);
39
+ $font-headline-small-tracking: var(--mat-sys-headline-small-tracking);
40
+ $font-headline-small-weight: var(--mat-sys-headline-small-weight);
41
+
42
+ $ref-font-headline-medium-size: 1.125rem; //18px
43
+ $font-headline-medium: var(--mat-sys-headline-medium);
44
+ $font-headline-medium-font: var(--mat-sys-headline-medium-font);
45
+ $font-headline-medium-line-height: var(--mat-sys-headline-medium-line-height);
46
+ $font-headline-medium-size: var(--mat-sys-headline-medium-size);
47
+ $font-headline-medium-tracking: var(--mat-sys-headline-medium-tracking);
48
+ $font-headline-medium-weight: var(--mat-sys-headline-medium-weight);
49
+
50
+ $ref-font-headline-large-size: 1.438rem; //23px
51
+ $font-headline-large: var(--mat-sys-headline-large);
52
+ $font-headline-large-font: var(--mat-sys-headline-large-font);
53
+ $font-headline-large-line-height: var(--mat-sys-headline-large-line-height);
54
+ $font-headline-large-size: var(--mat-sys-headline-large-size);
55
+ $font-headline-large-tracking: var(--mat-sys-headline-large-tracking);
56
+ $font-headline-large-weight: var(--mat-sys-headline-large-weight);
57
+
58
+ //Title
59
+ $ref-font-title-small-size: 0.875rem; //14px
60
+ $font-title-small: var(--mat-sys-title-small);
61
+ $font-title-small-font: var(--mat-sys-title-small-font);
62
+ $font-title-small-line-height: var(--mat-sys-title-small-line-height);
63
+ $font-title-small-size: var(--mat-sys-title-small-size);
64
+ $font-title-small-tracking: var(--mat-sys-title-small-tracking);
65
+ $font-title-small-weight: var(--mat-sys-title-small-weight);
66
+
67
+ $ref-font-title-medium-size: 1rem; //16px
68
+ $font-title-medium: var(--mat-sys-title-medium);
69
+ $font-title-medium-font: var(--mat-sys-title-medium-font);
70
+ $font-title-medium-line-height: var(--mat-sys-title-medium-line-height);
71
+ $font-title-medium-size: var(--mat-sys-title-medium-size);
72
+ $font-title-medium-tracking: var(--mat-sys-title-medium-tracking);
73
+ $font-title-medium-weight: var(--mat-sys-title-medium-weight);
74
+
75
+ $ref-font-title-large-size: 1.125rem; //18px
76
+ $font-title-large: var(--mat-sys-title-large);
77
+ $font-title-large-font: var(--mat-sys-title-large-font);
78
+ $font-title-large-line-height: var(--mat-sys-title-large-line-height);
79
+ $font-title-large-size: var(--mat-sys-title-large-size);
80
+ $font-title-large-tracking: var(--mat-sys-title-large-tracking);
81
+ $font-title-large-weight: var(--mat-sys-title-large-weight);
82
+
83
+ //Other
84
+ $font-subhead: var(--mat-sys-title-small);
85
+ $font-subhead-font: var(--mat-sys-title-small-font);
86
+ $font-subhead-line-height: var(--mat-sys-title-small-line-height);
87
+ $font-subhead-size: var(--mat-sys-title-small-size);
88
+ $font-subhead-tracking: var(--mat-sys-title-small-tracking);
89
+ $font-subhead-weight: var(--mat-sys-title-small-weight);
90
+
91
+
92
+ /*
93
+
94
+ Color
95
+
96
+ */
97
+ //Outlines
98
+ $outline: var(--mat-sys-outline);
99
+ $outline-variant: var(--mat-sys-outline-variant);
100
+
101
+ //Level (Could be used for text-color, surfaces, outlines)
102
+ $primary: var(--mat-sys-primary);
103
+ $on-primary: var(--mat-sys-on-primary);
104
+ $primary-container: var(--mat-sys-primary-container);
105
+ $on-primary-container: var(--mat-sys-on-primary-container);
106
+
107
+ //Brand (Could be used for text-color, surfaces, outlines)
108
+ $brand: light-dark(#{map.get(theme-color.$primary-palette, 'neutral', 10)}, #{map.get(theme-color.$primary-palette, 'neutral', 6)});
109
+ $on-brand: light-dark(#{map.get(theme-color.$primary-palette, 'neutral', 90)}, #{map.get(theme-color.$primary-palette, 'neutral', 90)});
110
+
111
+ //Status
112
+ $success: light-dark(#006B54, #9EE3B5); //(Could be used for text-color, outlines)
113
+ $success-container: #9EE3B5;
114
+ $on-success-container: #295C4C;
115
+
116
+ $danger: var(--mat-sys-error); //(Could be used for text-color, outlines)
117
+ $danger-container: var(--mat-sys-error-container);
118
+ $on-danger-container: var(--mat-sys-on-error-container);
119
+
120
+ $warning: light-dark(#615106,#FDF2BA); //(Could be used for text-color, outlines)
121
+ $warning-container: #FDF2BA;
122
+ $on-warning-container: #615106;
123
+
124
+ //Surfaces
125
+ $surface: var(--mat-sys-surface);
126
+ $surface-container-low: var(--mat-sys-surface-container);
127
+ $surface-container: var(--mat-sys-surface-container-high);
128
+ $surface-container-high: var(--mat-sys-surface-container-highest);
129
+
130
+ //Surfaces - Alias Token (More Semantic)
131
+ //Custom Surface Alias Token should only reference one of Materials surface-* token
132
+ //to ensure that the combination with $on-surface-* is accessible
133
+ //If you are using a custom color instead of make sure that this color is accessible with all on-surface-* token
134
+ $surface-panel: $surface-container-low;
135
+ $surface-frame: $surface-container-low;
136
+
137
+ //Surfaces - Foreground Color
138
+ //All on-surface-* token are accessible in combination with all surface-* token
139
+ $on-surface: var(--mat-sys-on-surface);
140
+ //"-variant" refers to a variant of the foreground color. (not to a variant of the surface itself)
141
+ $on-surface-subtle-variant: light-dark(#{map.get(theme-color.$primary-palette, 'neutral', 40)}, #{map.get(theme-color.$primary-palette, 'neutral', 70)});
142
+ $on-surface-primary-variant: $primary;
143
+
144
+ //Text (Alias for Surfaces - Foreground Color Token)
145
+ $text-color: $on-surface;
146
+ $text-color-subtle: $on-surface-subtle-variant;
147
+ $text-color-primary: $on-surface-primary-variant;
148
+
149
+ //Text Selection
150
+ $text-selection-background: var(--mat-sys-primary-container);
151
+ $text-selection-color: var(--mat-sys-on-primary-container);
152
+
153
+
154
+ /*
155
+ Corner
156
+ */
157
+
158
+ $corner-full: var(--mat-sys-corner-full);
159
+ $corner-xl: var(--mat-sys-corner-extra-large);
160
+ $corner-l: var(--mat-sys-corner-large);
161
+ $corner: var(--mat-sys-corner-medium);
162
+ $corner-s: var(--mat-sys-corner-small);
163
+ $corner-xs: var(--mat-sys-corner-extra-small);
164
+
165
+
166
+ /*
167
+ Sizing
168
+ */
169
+
170
+ $_sizing-base: 1rem; // 16px
171
+
172
+ $sizing-xs: $_sizing-base * 1; // 16px
173
+ $sizing-s: $_sizing-base * 1.25; // 20px
174
+ $sizing-m: $_sizing-base * 1.5; // 24px
175
+ $sizing-l: $_sizing-base * 1.75; // 28px;
176
+ $sizing-xl: $_sizing-base * 2; // 32px;
177
+ $sizing-2xl: $_sizing-base * 2.25; // 36px;
178
+ $sizing-3xl: $_sizing-base * 2.5; // 40px;
179
+ $sizing-4xl: $_sizing-base * 3; // 48px;
180
+
181
+
182
+ /*
183
+ Spacing
184
+ */
185
+
186
+ $_spacing-base: 1rem; // 16px
187
+
188
+ $spacing-0: 0; // 0px
189
+ $spacing-4xs: $_spacing-base * .0625; // 1px
190
+ $spacing-3xs: $_spacing-base * .125; // 2px
191
+ $spacing-2xs: $_spacing-base * .25; // 4px
192
+ $spacing-xs: $_spacing-base * .5; // 8px
193
+ $spacing-s: $_spacing-base * .75; // 12px
194
+ $spacing-m: $_spacing-base; // 16px (base: browserDefault)
195
+ $spacing-l: $_spacing-base * 1.25; // 20px
196
+ $spacing-xl: $_spacing-base * 1.5; // 24px
197
+ $spacing-2xl: $_spacing-base * 1.75; // 28px
198
+ $spacing-3xl: $_spacing-base * 2; // 32px
199
+ $spacing-4xl: $_spacing-base * 3; // 48px
200
+
201
+
202
+ /*
203
+ State Layer Opacity
204
+ */
205
+ $dragged-state-layer-opacity: var(--mat-sys-dragged-state-layer-opacity);
206
+ $focus-state-layer-opacity: var(--mat-sys-focus-state-layer-opacity);
207
+ $hover-state-layer-opacity: var(--mat-sys-hover-state-layer-opacity);
208
+ $pressed-state-layer-opacity: var(--mat-sys-pressed-state-layer-opacity);
209
+
210
+ /*
211
+ Elements
212
+ */
213
+
214
+ //Scrollbar
215
+ $scrollbar-outer-size: 24px;
216
+ $scrollbar-inner-size: 4px;
217
+ $scrollbar-thumb-color: var(--mat-sys-outline-variant);
218
+ $scrollbar-track-color: transparent;
219
+ $scrollbar-thumb-color-hover: var(--mat-sys-outline);
220
+
221
+ /*
222
+ Selection & Focus & Hover
223
+ */
224
+ //There is a complete misunderstanding of aria-selected, aria-current and focusing element across the whole system
225
+ //This should be cleaned up asap
226
+ $focus-background: var(--mat-sys-surface-container);
227
+ $on-focus-background: var(--mat-sys-on-surface);
228
+ $hover-background: var(--mat-sys-surface-container-low);
229
+ $on-hover-background: var(--mat-sys-on-surface);
230
+ $selection-background: var(--mat-sys-surface-container-highest);
231
+ $on-selection-background: var(--mat-sys-on-surface);
232
+ $current-background: $focus-background;
233
+ $on-current-background: $on-focus-background;
234
+
235
+ $focus-indicator-size: 2px;
236
+ $focus-indicator-inner: light-dark(#{map.get(theme-color.$primary-palette, 'neutral', 90)}, #{map.get(theme-color.$primary-palette, 'neutral', 10)});
237
+ $focus-indicator-outer: light-dark(#{map.get(theme-color.$primary-palette, 'neutral', 10)}, #{map.get(theme-color.$primary-palette, 'neutral', 90)});
238
+
239
+ /*
240
+ Additional Component Tokens
241
+ */
242
+ //Dialog
243
+ $dialog-content-display: contents;
244
+
245
+ //Overlay
246
+ $overlay-backdrop-color: light-dark(rgb(from #{map.get(theme-color.$primary-palette, 'neutral', 0)} r g b / .3), rgb(from #{map.get(theme-color.$primary-palette, 'neutral', 0)} r g b / .8));
247
+
248
+ /* Progress-Bar */
249
+ $progress-bar-height: 4px;
@@ -0,0 +1,23 @@
1
+ @use 'sass:meta';
2
+ @use 'sass:map';
3
+ @use './token.config' as token-config;
4
+ @use './token';
5
+
6
+ $_map: meta.module-variables('token');
7
+
8
+ @function use-token($token-name){
9
+
10
+ @if(str-index($token-name, "ref-") == 1){
11
+ @error 'The ymt-Token with name: #{$token-name} is not a CSS Custom Property (variable).';
12
+ }
13
+
14
+ @if(map.has-key($_map, $token-name) == false){
15
+ @error 'The ymt-Token with name: #{$token-name} does not exist';
16
+ }
17
+
18
+ @return var(#{token($token-name)});
19
+ }
20
+
21
+ @function token($token-name){
22
+ @return '--#{token-config.$prefix}-#{$token-name}';
23
+ }
@@ -0,0 +1,41 @@
1
+ @use '../token/token.tools' as t;
2
+
3
+ .ymt-font-body {
4
+ font: t.use-token(font-body);
5
+ letter-spacing: t.use-token(font-body-tracking);
6
+ }
7
+ .ymt-font-body-subtle {
8
+ font: t.use-token(font-body-subtle);
9
+ letter-spacing: t.use-token(font-body-subtle-tracking);
10
+ }
11
+
12
+ .ymt-font-headline-small {
13
+ font: t.use-token(font-headline-small);
14
+ letter-spacing: t.use-token(font-headline-small-tracking);
15
+ }
16
+ .ymt-font-headline-medium {
17
+ font: t.use-token(font-headline-medium);
18
+ letter-spacing: t.use-token(font-headline-medium-tracking);
19
+ }
20
+ .ymt-font-headline-large {
21
+ font: t.use-token(font-headline-large);
22
+ letter-spacing: t.use-token(font-headline-large-tracking);
23
+ }
24
+
25
+ .ymt-font-title-small {
26
+ font: t.use-token(font-title-small);
27
+ letter-spacing: t.use-token(font-title-small-tracking);
28
+ }
29
+ .ymt-font-title-medium {
30
+ font: t.use-token(font-title-medium);
31
+ letter-spacing: t.use-token(font-title-medium-tracking);
32
+ }
33
+ .ymt-font-title-large {
34
+ font: t.use-token(font-title-large);
35
+ letter-spacing: t.use-token(font-title-large-tracking);
36
+ }
37
+
38
+ .ymt-font-subhead {
39
+ font: t.use-token(font-subhead);
40
+ letter-spacing: t.use-token(font-subhead-tracking);
41
+ }
@@ -0,0 +1,3 @@
1
+ @forward "visibility";
2
+ @forward "font";
3
+ @forward "spacing";
@@ -0,0 +1,53 @@
1
+ @use '../token/token.tools' as t;
2
+
3
+ .ymt-spacing {
4
+ &-padding {
5
+ &--0 {
6
+ padding: t.use-token(spacing-0);
7
+ }
8
+
9
+ &--4xs {
10
+ padding: t.use-token(spacing-4xs);
11
+ }
12
+
13
+ &--3xs {
14
+ padding: t.use-token(spacing-3xs);
15
+ }
16
+
17
+ &--2xs {
18
+ padding: t.use-token(spacing-2xs);
19
+ }
20
+
21
+ &--xs {
22
+ padding: t.use-token(spacing-xs);
23
+ }
24
+
25
+ &--s {
26
+ padding: t.use-token(spacing-s);
27
+ }
28
+
29
+ &--m {
30
+ padding: t.use-token(spacing-m);
31
+ }
32
+
33
+ &--l {
34
+ padding: t.use-token(spacing-l);
35
+ }
36
+
37
+ &--xl {
38
+ padding: t.use-token(spacing-xl);
39
+ }
40
+
41
+ &--2xl {
42
+ padding: t.use-token(spacing-2xl);
43
+ }
44
+
45
+ &--3xl {
46
+ padding: t.use-token(spacing-3xl);
47
+ }
48
+
49
+ &--4xl {
50
+ padding: t.use-token(spacing-4xl);
51
+ }
52
+ }
53
+ }
@@ -0,0 +1,9 @@
1
+ .ymt-hide-sr {
2
+ position: absolute!important;
3
+ clip: rect(1px, 1px, 1px, 1px)!important;
4
+ overflow: hidden;
5
+ width: 1px;
6
+ height: 1px;
7
+ white-space: nowrap;
8
+ margin: 0;
9
+ }
File without changes