@ihk-gfi/lux-components-theme 21.1.0 → 21.3.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 (30) hide show
  1. package/package.json +1 -1
  2. package/prebuilt-themes/luxtheme-authentic-min.css +1 -1
  3. package/prebuilt-themes/luxtheme-authentic-min.css.map +1 -1
  4. package/prebuilt-themes/luxtheme-authentic.css +339 -59
  5. package/prebuilt-themes/luxtheme-authentic.css.map +1 -1
  6. package/prebuilt-themes/luxtheme-green-min.css +1 -1
  7. package/prebuilt-themes/luxtheme-green-min.css.map +1 -1
  8. package/prebuilt-themes/luxtheme-green.css +341 -61
  9. package/prebuilt-themes/luxtheme-green.css.map +1 -1
  10. package/src/base-templates/common/_luxstyles.scss +42 -0
  11. package/src/base-templates/components/_luxAppHeaderAc.scss +1 -1
  12. package/src/base-templates/components/_luxButton.scss +1 -0
  13. package/src/base-templates/components/_luxButtonFlat.scss +8 -8
  14. package/src/base-templates/components/_luxButtonIcon.scss +44 -0
  15. package/src/base-templates/components/_luxButtonRaised.scss +2 -2
  16. package/src/base-templates/components/_luxButtonRoundedStroked.scss +11 -4
  17. package/src/base-templates/components/_luxButtonSpinner.scss +3 -3
  18. package/src/base-templates/components/_luxButtonToggle.scss +61 -0
  19. package/src/base-templates/components/_luxConsent.scss +63 -0
  20. package/src/base-templates/components/_luxDialog.scss +15 -12
  21. package/src/base-templates/components/_luxFormControlWrapper.scss +1 -1
  22. package/src/base-templates/components/_luxInput.scss +4 -8
  23. package/src/base-templates/components/_luxMenu.scss +26 -3
  24. package/src/base-templates/components/_luxSelect.scss +41 -1
  25. package/src/base-templates/components/_luxTile.scss +1 -1
  26. package/src/base-templates/components/_luxTileAc.scss +5 -1
  27. package/src/theme-authentic/_variables.scss +85 -18
  28. package/src/theme-authentic/lux-authentic.scss +2 -0
  29. package/src/theme-green/_variables.scss +86 -19
  30. package/src/theme-green/lux-green.scss +2 -0
@@ -56,6 +56,48 @@ h6 {
56
56
  margin-block-end: 0.8rem;
57
57
  }
58
58
 
59
+ .lux-h1,
60
+ h1.lux-h1 {
61
+ font-family: var(--lux-theme-app-headline-font);
62
+ font-size: 2rem;
63
+ font-weight: 500;
64
+ }
65
+
66
+ .lux-h2,
67
+ h2.lux-h2 {
68
+ font-family: var(--lux-theme-app-headline-font);
69
+ font-size: 1.5rem;
70
+ font-weight: 500;
71
+ }
72
+
73
+ .lux-h3,
74
+ h3.lux-h3 {
75
+ font-family: var(--lux-theme-app-headline-font);
76
+ font-size: 1.25rem;
77
+ font-weight: 500;
78
+ }
79
+
80
+ .lux-h4,
81
+ h4.lux-h4 {
82
+ font-family: var(--lux-theme-app-headline-font);
83
+ font-size: 1rem;
84
+ font-weight: 500;
85
+ }
86
+
87
+ .lux-h5,
88
+ h5.lux-h5 {
89
+ font-family: var(--lux-theme-app-headline-font);
90
+ font-size: 0.875rem;
91
+ font-weight: 700;
92
+ }
93
+
94
+ .lux-h6,
95
+ h6.lux-h6 {
96
+ font-family: var(--lux-theme-app-headline-font);
97
+ font-size: 0.75rem;
98
+ font-weight: 700;
99
+ }
100
+
59
101
  a:not(.lux-link) {
60
102
  background-color: var(--lux-theme-link-plain-background-color);
61
103
  color: var(--lux-theme-link-plain-color);
@@ -23,7 +23,7 @@ lux-app-header-ac {
23
23
  (
24
24
  foreground-color: var(--mat-sys-primary),
25
25
  container-color: var(--mat-sys-on-primary),
26
- hover-state-layer-opacity: 0.1
26
+ hover-state-layer-opacity: var(--lux-theme-hover-state-layer-opacity)
27
27
  )
28
28
  );
29
29
  }
@@ -6,6 +6,7 @@
6
6
  @use "luxButtonFlat";
7
7
  @use "luxButtonRounded";
8
8
  @use "luxButtonRoundedStroked";
9
+ @use "luxButtonIcon";
9
10
  @use "luxButtonSpinner";
10
11
 
11
12
  lux-button,
@@ -13,8 +13,8 @@ lux-link.lux-flat {
13
13
  filled-container-height: var(--lux-theme-button-flat-container-height),
14
14
  filled-label-text-color: var(--lux-theme-button-flat-default-text-color),
15
15
  filled-container-color: var(--lux-theme-button-flat-default-container-color),
16
- filled-focus-state-layer-opacity: 0.1,
17
- filled-hover-state-layer-opacity: 0.1
16
+ filled-focus-state-layer-opacity: var(--lux-theme-focus-state-layer-opacity),
17
+ filled-hover-state-layer-opacity: var(--lux-theme-hover-state-layer-opacity)
18
18
  )
19
19
  );
20
20
 
@@ -23,8 +23,8 @@ lux-link.lux-flat {
23
23
  (
24
24
  filled-label-text-color: var(--lux-theme-button-flat-primary-text-color),
25
25
  filled-container-color: var(--lux-theme-button-flat-primary-container-color),
26
- filled-focus-state-layer-opacity: 0.1,
27
- filled-hover-state-layer-opacity: 0.1
26
+ filled-focus-state-layer-opacity: var(--lux-theme-focus-state-layer-opacity),
27
+ filled-hover-state-layer-opacity: var(--lux-theme-hover-state-layer-opacity)
28
28
  )
29
29
  );
30
30
  }
@@ -34,8 +34,8 @@ lux-link.lux-flat {
34
34
  (
35
35
  filled-label-text-color: var(--lux-theme-button-flat-accent-text-color),
36
36
  filled-container-color: var(--lux-theme-button-flat-accent-container-color),
37
- filled-focus-state-layer-opacity: 0.1,
38
- filled-hover-state-layer-opacity: 0.1
37
+ filled-focus-state-layer-opacity: var(--lux-theme-focus-state-layer-opacity),
38
+ filled-hover-state-layer-opacity: var(--lux-theme-hover-state-layer-opacity)
39
39
  )
40
40
  );
41
41
  }
@@ -45,8 +45,8 @@ lux-link.lux-flat {
45
45
  (
46
46
  filled-label-text-color: var(--lux-theme-button-flat-warn-text-color),
47
47
  filled-container-color: var(--lux-theme-button-flat-warn-container-color),
48
- filled-focus-state-layer-opacity: 0.1,
49
- filled-hover-state-layer-opacity: 0.1
48
+ filled-focus-state-layer-opacity: var(--lux-theme-focus-state-layer-opacity),
49
+ filled-hover-state-layer-opacity: var(--lux-theme-hover-state-layer-opacity)
50
50
  )
51
51
  );
52
52
  }
@@ -0,0 +1,44 @@
1
+ @use "@angular/material" as mat;
2
+
3
+ lux-button.lux-icon-button {
4
+ @include mat.icon-button-overrides(
5
+ (
6
+ container-shape: var(--lux-theme-button-icon-container-shape),
7
+ icon-color: var(--lux-theme-button-icon-default-text-color),
8
+ icon-size: var(--lux-theme-button-icon-size),
9
+ state-layer-size: var(--lux-theme-button-icon-container-size),
10
+ state-layer-color: var(--lux-theme-state-layer-color),
11
+ touch-target-size: var(--lux-theme-button-icon-container-size)
12
+ )
13
+ );
14
+
15
+ lux-icon,
16
+ .lux-icon {
17
+ width: var(--lux-theme-button-icon-size);
18
+ height: var(--lux-theme-button-icon-size);
19
+ }
20
+
21
+ .mat-primary {
22
+ @include mat.icon-button-overrides(
23
+ (
24
+ icon-color: var(--lux-theme-button-icon-primary-text-color)
25
+ )
26
+ );
27
+ }
28
+
29
+ .mat-accent {
30
+ @include mat.icon-button-overrides(
31
+ (
32
+ icon-color: var(--lux-theme-button-icon-accent-text-color)
33
+ )
34
+ );
35
+ }
36
+
37
+ .mat-warn {
38
+ @include mat.icon-button-overrides(
39
+ (
40
+ icon-color: var(--lux-theme-button-icon-warn-text-color)
41
+ )
42
+ );
43
+ }
44
+ }
@@ -13,8 +13,8 @@ lux-link.lux-raised {
13
13
  protected-container-height: var(--lux-theme-button-raised-container-height),
14
14
  protected-label-text-color: var(--lux-theme-button-raised-default-text-color),
15
15
  protected-container-color: var(--lux-theme-button-raised-default-container-color),
16
- protected-focus-state-layer-opacity: 0.1,
17
- protected-hover-state-layer-opacity: 0.1
16
+ protected-focus-state-layer-opacity: var(--lux-theme-focus-state-layer-opacity),
17
+ protected-hover-state-layer-opacity: var(--lux-theme-hover-state-layer-opacity)
18
18
  )
19
19
  );
20
20
 
@@ -21,7 +21,7 @@ lux-link.lux-rounded.lux-stroked {
21
21
  (
22
22
  foreground-color: var(--lux-theme-button-rounded-stroked-primary-text-color),
23
23
  container-color: transparent,
24
- hover-state-layer-opacity: 0.1
24
+ hover-state-layer-opacity: var(--lux-theme-hover-state-layer-opacity)
25
25
  )
26
26
  );
27
27
  }
@@ -31,7 +31,7 @@ lux-link.lux-rounded.lux-stroked {
31
31
  (
32
32
  foreground-color: var(--lux-theme-button-rounded-stroked-accent-text-color),
33
33
  container-color: transparent,
34
- hover-state-layer-opacity: 0.1
34
+ hover-state-layer-opacity: var(--lux-theme-hover-state-layer-opacity)
35
35
  )
36
36
  );
37
37
  }
@@ -41,7 +41,7 @@ lux-link.lux-rounded.lux-stroked {
41
41
  (
42
42
  foreground-color: var(--lux-theme-button-rounded-stroked-warn-text-color),
43
43
  container-color: transparent,
44
- hover-state-layer-opacity: 0.1
44
+ hover-state-layer-opacity: var(--lux-theme-hover-state-layer-opacity)
45
45
  )
46
46
  );
47
47
  }
@@ -57,8 +57,15 @@ lux-link.lux-rounded.lux-stroked {
57
57
  height: var(--lux-theme-button-rounded-stroked-text-size);
58
58
  }
59
59
 
60
- .lux-stroked:not(:disabled):not([aria-disabled="true"]) {
60
+ .lux-stroked {
61
61
  border: 1px solid;
62
+
63
+ &:disabled {
64
+ border-color: transparent;
65
+ }
66
+ }
67
+
68
+ .lux-stroked:not(:disabled) {
62
69
  border-color: var(--lux-theme-button-rounded-stroked-default-text-color);
63
70
 
64
71
  &.mat-primary {
@@ -79,9 +79,9 @@ lux-link {
79
79
  }
80
80
 
81
81
  .lux-button-spinner {
82
- mat-progress-spinner {
83
- width: 0.875rem !important;
84
- height: 0.875rem !important;
82
+ .lux-progress-small mat-progress-spinner {
83
+ width: 1.125rem !important;
84
+ height: 1.125rem !important;
85
85
  }
86
86
  .spinner-padding {
87
87
  padding: 0;
@@ -0,0 +1,61 @@
1
+ @use "@angular/material" as mat;
2
+
3
+ lux-button-toggle {
4
+ @include mat.button-toggle-overrides(
5
+ (
6
+ shape: var(--lux-theme-button-toggle-shape),
7
+ text-color: var(--lux-theme-button-toggle-text-color),
8
+ selected-state-text-color: var(--lux-theme-button-toggle-selected-state-text-color),
9
+ selected-state-background-color: var(--lux-theme-button-toggle-selected-state-background-color),
10
+ hover-state-layer-opacity: var(--lux-theme-button-toggle-hover-state-layer-opacity),
11
+ disabled-selected-state-text-color: var(--lux-theme-button-toggle-disabled-selected-state-text-color),
12
+ disabled-selected-state-background-color: var(--lux-theme-button-toggle-disabled-selected-state-background-color),
13
+ disabled-state-text-color: var(--lux-theme-button-toggle-disabled-state-text-color),
14
+ disabled-state-background-color: var(--lux-theme-button-toggle-disabled-state-background-color),
15
+ height: var(--lux-theme-button-toggle-height),
16
+ divider-color: var(--lux-theme-button-toggle-divider-color)
17
+ )
18
+ );
19
+
20
+ mat-button-toggle-group[aria-disabled="true"] {
21
+ @include mat.button-toggle-overrides(
22
+ (
23
+ divider-color: var(--lux-theme-button-toggle-disabled-divider-color)
24
+ )
25
+ );
26
+ }
27
+
28
+ &.lux-dense {
29
+ @include mat.button-toggle-overrides(
30
+ (
31
+ height: var(--lux-theme-button-toggle-height-dense)
32
+ )
33
+ );
34
+ }
35
+
36
+ .lux-button-toggle-wrapper {
37
+ display: flex;
38
+ flex-direction: column;
39
+ gap: 0.25rem;
40
+ }
41
+
42
+ .lux-button-toggle-misc {
43
+ display: flex;
44
+ margin-left: 12px;
45
+ font-size: 0.75rem;
46
+ line-height: 1.2rem;
47
+ color: var(--lux-theme-dark-secondary-text);
48
+ word-wrap: break-word;
49
+ }
50
+
51
+ .lux-button-toggle-error {
52
+ display: flex;
53
+ align-items: center;
54
+ justify-content: center;
55
+ text-align: center;
56
+ background-color: var(--lux-theme-form-error-msg-background);
57
+ border-radius: 4px;
58
+ padding-right: 2px;
59
+ color: var(--mat-sys-on-error-container);
60
+ }
61
+ }
@@ -0,0 +1,63 @@
1
+ lux-consent-dialog {
2
+ // Größere Schrift für die Hinweistexte der Toggle
3
+ lux-toggle-ac lux-form-control-wrapper .lux-form-control-wrapper .lux-form-control-misc-authentic {
4
+ font-size: 0.875rem;
5
+ }
6
+
7
+ .lux-consent-description {
8
+ margin-top: 0;
9
+ padding-top: 0;
10
+ }
11
+
12
+ .lux-consent-card {
13
+ padding: 4px;
14
+ }
15
+
16
+ .essential-always-active {
17
+ font-weight: 700;
18
+ }
19
+
20
+ .essential-hint {
21
+ display: flex;
22
+ font-size: 0.875rem;
23
+ line-height: 1em;
24
+ font-weight: 400;
25
+ color: rgba(0, 0, 0, 0.6);
26
+ word-wrap: break-word;
27
+ margin: 0.25em calc(0.5em + 1px) 0 calc(0.5em + 1px);
28
+ }
29
+
30
+ .lux-consent-dialog-actions {
31
+ display: flex;
32
+ gap: 0.5rem;
33
+ flex-direction: row;
34
+ flex-wrap: wrap;
35
+ }
36
+
37
+ .storage-type-title {
38
+ padding-left: 26px;
39
+ }
40
+
41
+ .storage-name {
42
+ word-break: break-all;
43
+ }
44
+ }
45
+
46
+ lux-consent-dialog.mobile-view {
47
+ .lux-consent-dialog-actions {
48
+ display: flex;
49
+ flex-direction: column;
50
+ flex: 1 1 auto;
51
+ justify-content: space-between;
52
+
53
+ lux-button {
54
+ display: flex;
55
+ flex: 1 1 auto;
56
+
57
+ button {
58
+ display: flex;
59
+ flex: 1 1 auto;
60
+ }
61
+ }
62
+ }
63
+ }
@@ -3,8 +3,16 @@
3
3
  @use "../common/luxbreakpoints";
4
4
  @use "@angular/material" as mat;
5
5
 
6
- .cdk-overlay-pane.mat-mdc-dialog-panel .mat-mdc-dialog-container {
7
- border-radius: var(--lux-theme-app-border-radius);
6
+ .cdk-overlay-pane.mat-mdc-dialog-panel {
7
+ .mat-mdc-dialog-container {
8
+ border-radius: var(--lux-theme-app-border-radius);
9
+ width: unset;
10
+ height: unset;
11
+ min-width: 100%;
12
+ max-width: 100%;
13
+ min-height: 100%;
14
+ max-height: 100%;
15
+ }
8
16
  }
9
17
 
10
18
  .cdk-overlay-pane.mat-mdc-dialog-panel.lux-dialog {
@@ -17,10 +25,6 @@
17
25
  );
18
26
  }
19
27
 
20
- lux-dialog-preset {
21
- height: 100%;
22
- }
23
-
24
28
  lux-dialog-action {
25
29
  flex-flow: row wrap;
26
30
  gap: 8px;
@@ -29,14 +33,14 @@ lux-dialog-action {
29
33
  }
30
34
 
31
35
  lux-dialog-structure {
32
-
33
- @include mat.dialog-overrides((
34
- supporting-text-size: 1rem
35
- ));
36
+ @include mat.dialog-overrides(
37
+ (
38
+ supporting-text-size: 1rem
39
+ )
40
+ );
36
41
 
37
42
  display: flex;
38
43
  flex: 1 1 auto;
39
- min-height: 100%;
40
44
 
41
45
  .lux-dialog {
42
46
  // Das Element kann fokussiert werden, das muss aber nicht zwingend mit der Outline gezeigt werden
@@ -61,7 +65,6 @@ lux-dialog-structure {
61
65
  .lux-dialog-content {
62
66
  margin: 0;
63
67
  padding: 0;
64
- max-height: 100%;
65
68
  font-family: var(--lux-theme-app-font-family);
66
69
  letter-spacing: normal;
67
70
  color: var(--lux-theme-dark-primary-text);
@@ -206,7 +206,7 @@ lux-form-control-wrapper {
206
206
  // HOVER
207
207
  &:hover:not(.lux-form-control-disabled-authentic):not(.lux-focused-authentic):not(.lux-form-control-error-authentic) {
208
208
  .lux-form-control-container-authentic:not(.lux-no-input-row) {
209
- border-color: var(--lux-theme-dark-primary-text);
209
+ border-color: var(--lux-theme-form-hover-border-color);
210
210
  }
211
211
  }
212
212
  // FOCUS
@@ -18,13 +18,9 @@ lux-form-control-wrapper {
18
18
 
19
19
  lux-input-ac {
20
20
  // Theming des Prefix- und Suffix-Containers
21
- .lux-input-prefix-container,
22
- .lux-input-suffix-container {
23
- width: auto;
24
- white-space: nowrap;
25
- display: inline-block;
26
- flex: 1 1 auto;
27
- max-height: 1.5em;
28
- align-items: center;
21
+ lux-input-ac-prefix,
22
+ lux-input-ac-suffix {
23
+ display: flex;
24
+ white-space: nowrap;
29
25
  }
30
26
  }
@@ -141,6 +141,16 @@ lux-menu {
141
141
  .lux-menu-item-icon {
142
142
  align-self: center;
143
143
  vertical-align: middle;
144
+ width: var(--lux-theme-menu-item-icon-size);
145
+ height: var(--lux-theme-menu-item-icon-size);
146
+
147
+ .lux-icon,
148
+ mat-icon {
149
+ width: 100%;
150
+ height: 100%;
151
+ font-size: var(--lux-theme-menu-item-icon-size);
152
+ }
153
+
144
154
  mat-icon {
145
155
  margin: 0;
146
156
  }
@@ -188,7 +198,7 @@ lux-menu {
188
198
 
189
199
  .lux-button-label-subtitle {
190
200
  color: var(--lux-theme-menu-item-subtitle-font-color);
191
- font-size: 0.875rem;
201
+ font-size: var(--lux-theme-menu-item-subtitle-font-size);
192
202
  font-style: normal;
193
203
  font-weight: 400;
194
204
  letter-spacing: 0.07px;
@@ -201,8 +211,9 @@ lux-menu {
201
211
  align-items: flex-start;
202
212
  gap: 4px;
203
213
  align-self: stretch;
204
- font-weight: 600;
205
- font-size: 1rem;
214
+ color: var(--lux-theme-menu-panel-header-font-color);
215
+ font-weight: var(--lux-theme-menu-panel-header-font-weight);
216
+ font-size: var(--lux-theme-menu-panel-header-font-size);
206
217
  font-style: normal;
207
218
  line-height: 120%;
208
219
  }
@@ -267,4 +278,16 @@ lux-menu {
267
278
  .lux-menu-item-badge-right {
268
279
  text-align: end;
269
280
  }
281
+
282
+ &.lux-menu-panel-large {
283
+ .lux-menu-item-icon {
284
+ width: var(--lux-theme-menu-item-icon-size-large);
285
+ height: var(--lux-theme-menu-item-icon-size-large);
286
+
287
+ .lux-icon,
288
+ mat-icon {
289
+ font-size: var(--lux-theme-menu-item-icon-size-large);
290
+ }
291
+ }
292
+ }
270
293
  }
@@ -9,6 +9,46 @@
9
9
  container-elevation-shadow: 0 0 0 1px var(--mat-card-outlined-outline-color, var(--mat-sys-outline-variant))
10
10
  )
11
11
  );
12
+
13
+ lux-select-panel-filter {
14
+ position: sticky;
15
+ top: 0;
16
+ z-index: 2;
17
+ display: block;
18
+ box-sizing: border-box;
19
+ background-color: var(--lux-theme-panel-bg-color);
20
+ border-bottom: 1px solid var(--mat-card-outlined-outline-color, var(--mat-sys-outline-variant));
21
+ }
22
+
23
+ .lux-select-panel-filter {
24
+ display: block;
25
+ box-sizing: border-box;
26
+ padding: 8px 8px 4px;
27
+ background-color: var(--lux-theme-panel-bg-color);
28
+ }
29
+
30
+ .lux-select-panel-filter-option {
31
+ position: sticky;
32
+ top: 0;
33
+ z-index: 3;
34
+ min-height: auto !important;
35
+ padding: 0 !important;
36
+ pointer-events: auto;
37
+ cursor: default;
38
+ }
39
+
40
+ .lux-select-panel-filter-option .mdc-list-item__primary-text {
41
+ width: 100%;
42
+ }
43
+
44
+ &.lux-select-panel-ac-filter {
45
+ padding-top: 0;
46
+ scroll-padding-top: var(--lux-select-filter-offset, 0px);
47
+ }
48
+
49
+ &.lux-select-panel-ac-filter .mat-mdc-option {
50
+ scroll-margin-top: var(--lux-select-filter-offset, 0px);
51
+ }
12
52
  }
13
53
 
14
54
  lux-select-ac {
@@ -39,4 +79,4 @@ lux-select-ac {
39
79
  @include luxfocus.focus-dark-mixin;
40
80
  }
41
81
  }
42
- }
82
+ }
@@ -12,7 +12,7 @@ lux-tile {
12
12
 
13
13
  mat-card[class~="lux-cursor"] {
14
14
  &.mat-mdc-card {
15
- border-radius: var(--lux-theme-tile-borderradius);
15
+ border-radius: var(--lux-theme-tile-border-radius);
16
16
  overflow: hidden !important;
17
17
  padding: 24px;
18
18
  }
@@ -62,9 +62,13 @@ lux-tile-ac {
62
62
 
63
63
  // Hover
64
64
  &:hover {
65
+ .lux-tile-ac {
66
+ background-image: var(--lux-theme-tile-ac-hover-bg-color);
67
+ }
68
+
65
69
  @include mat.card-overrides(
66
70
  (
67
- elevated-container-elevation: #{"0 0 0 1px #000, #{$tileBoxShadow}"}
71
+ elevated-container-elevation: #{"0 0 0 1px var(--lux-theme-tile-ac-hover-border-color), #{$tileBoxShadow}"}
68
72
  )
69
73
  );
70
74
  }