@ihk-gfi/lux-components-theme 18.0.0 → 18.2.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.
@@ -119,3 +119,9 @@ $colorsForDarkBg: (
119
119
  "brown": #eb7c05,
120
120
  "white": #ffffff
121
121
  );
122
+
123
+ // Tile
124
+ $lux-tile-font-hover-color: #2e8533;
125
+ $lux-tile-icon-color: #56bd66;
126
+ $lux-tile-borderradius: 24px;
127
+ $lux-tile-bottom-line-color: #56bd66;
@@ -76,7 +76,6 @@
76
76
  $lux-stepper-large-nav-item-completed-fg: themeCommon.$lux-stepper-large-nav-item-completed-fg,
77
77
  $lux-stepper-large-nav-item-completed-bg: themeCommon.$lux-stepper-large-nav-item-completed-bg,
78
78
 
79
-
80
79
  // Overlay
81
80
  $lux-overlay-backdrop-color: themeCommon.$lux-overlay-backdrop-color,
82
81
 
@@ -87,7 +86,13 @@
87
86
  $componentFontColors: themeCommon.$componentFontColors,
88
87
 
89
88
  // Farben für einen dunklen Hintergrund (z.B. Snackbar).
90
- $colorsForDarkBg: themeCommon.$colorsForDarkBg
89
+ $colorsForDarkBg: themeCommon.$colorsForDarkBg,
90
+
91
+ // Tile
92
+ $lux-tile-font-hover-color: themeCommon.$lux-tile-font-hover-color,
93
+ $lux-tile-icon-color: themeCommon.$lux-tile-icon-color,
94
+ $lux-tile-borderradius: themeCommon.$lux-tile-borderradius,
95
+ $lux-tile-bottom-line-color: themeCommon.$lux-tile-bottom-line-color
91
96
  );
92
97
  @use "../base/luxSvgIcons";
93
98
  @use "../base/luxelevations";
@@ -91,3 +91,9 @@ $colorsForDarkBg: (
91
91
  "brown": mustOverriden,
92
92
  "white": mustOverriden
93
93
  ) !default;
94
+
95
+ // Tile
96
+ $lux-tile-font-hover-color: mustOverriden !default;
97
+ $lux-tile-icon-color: mustOverriden !default;
98
+ $lux-tile-borderradius: mustOverriden !default;
99
+ $lux-tile-bottom-line-color: mustOverriden !default;
@@ -99,11 +99,21 @@ $outline-bright: luxcommon.$outline-width luxcommon.$outline-style luxcommon.$ou
99
99
  background-color: luxcommon.$lux-hover-color;
100
100
  }
101
101
 
102
+ /** ########## Green ########## **/
102
103
  @mixin lux-hovered-mixin-green {
103
104
  background-color: #e3ebf5 !important;
104
105
  border-radius: 4px;
105
106
  }
106
107
 
108
+ $dark-green: #2e8533;
109
+
110
+ @mixin lux-focus-mixin-green {
111
+ box-shadow:
112
+ 0 0 0 2px $dark-green,
113
+ 0 0 8px 2px $dark-green !important;
114
+ outline: 0 !important;
115
+ }
116
+
107
117
  /** ########## Chips ########## **/
108
118
  lux-chips-ac {
109
119
  mat-chip-row.cdk-focused:not(.cdk-mouse-focused):not(.cdk-program-focused) {
@@ -573,67 +573,10 @@ lux-button.lux-uppercase {
573
573
 
574
574
  $notificationSizes: (18, 24, 30);
575
575
 
576
- $notificationSizeNames: ("small", "medium", "large");
577
-
578
- $notificationPositions1: ("before", "after");
579
-
580
- $notificationPositions2: ("above", "below");
581
-
582
- @each $position1 in $notificationPositions1 {
583
- @each $position2 in $notificationPositions2 {
584
- @each $notificationSize in $notificationSizes {
585
- $i: index($notificationSizes, $notificationSize);
586
- .lux-badge-notification {
587
- &.mat-badge-#{$position1}.mat-badge-#{$position2} {
588
- // Nicht überlappend
589
- &.mat-badge-#{nth($notificationSizeNames, $i)} {
590
- .mat-badge-content {
591
- @if $position1 == "before" {
592
- left: -#{$notificationSize}px;
593
- right: unset;
594
- } @else if $position1 == "after" {
595
- left: unset;
596
- right: -#{$notificationSize}px;
597
- }
598
-
599
- @if $position2 == "above" {
600
- top: -#{calc($notificationSize / 2)}px;
601
- bottom: unset;
602
- } @else if $position2 == "below" {
603
- top: unset;
604
- bottom: -#{calc($notificationSize / 2)}px;
605
- }
606
- }
607
-
608
- // Überlappend
609
- &.mat-badge-overlap .mat-badge-content {
610
- @if $position1 == "before" {
611
- left: -#{calc($notificationSize / 2)}px;
612
- right: unset;
613
- } @else if $position1 == "after" {
614
- left: unset;
615
- right: -#{calc($notificationSize / 2)}px;
616
- }
617
-
618
- @if $position2 == "above" {
619
- top: -#{calc($notificationSize / 2)}px;
620
- bottom: unset;
621
- } @else if $position2 == "below" {
622
- top: unset;
623
- bottom: -#{calc($notificationSize / 2)}px;
624
- }
625
- }
626
- }
627
- }
628
- }
629
- }
630
- }
631
- }
632
-
633
576
  .lux-badge-notification {
634
577
  &.mat-badge-small {
635
578
  .mat-badge-content {
636
- padding-top: 2px;
579
+ padding-top: 0;
637
580
  font-size: 9px;
638
581
  width: #{nth($notificationSizes, 1)}px;
639
582
  height: #{nth($notificationSizes, 1)}px;
@@ -642,7 +585,7 @@ $notificationPositions2: ("above", "below");
642
585
 
643
586
  &.mat-badge-medium {
644
587
  .mat-badge-content {
645
- padding-top: 4px;
588
+ padding-top: 0;
646
589
  font-size: 12px;
647
590
  width: #{nth($notificationSizes, 2)}px;
648
591
  height: #{nth($notificationSizes, 2)}px;
@@ -651,7 +594,7 @@ $notificationPositions2: ("above", "below");
651
594
 
652
595
  &.mat-badge-large {
653
596
  .mat-badge-content {
654
- padding-top: 5px;
597
+ padding-top: 0;
655
598
  font-size: 15px;
656
599
  width: #{nth($notificationSizes, 3)}px;
657
600
  height: #{nth($notificationSizes, 3)}px;
@@ -2,22 +2,22 @@
2
2
  @use "luxpalette";
3
3
 
4
4
  @include mat.core();
5
- @include mat.legacy-core();
6
5
 
7
- $lux-primary: mat.define-palette(luxpalette.$lux-palette_primary);
8
- $lux-accent: mat.define-palette(luxpalette.$lux-palette_accent);
9
- $lux-warn: mat.define-palette(luxpalette.$lux-palette_warn);
10
- $lux-theme: mat.define-light-theme(
6
+ $lux-primary: mat.m2-define-palette(luxpalette.$lux-palette_primary);
7
+ $lux-accent: mat.m2-define-palette(luxpalette.$lux-palette_accent);
8
+ $lux-warn: mat.m2-define-palette(luxpalette.$lux-palette_warn);
9
+ $lux-theme: mat.m2-define-light-theme(
11
10
  (
12
11
  color: (
13
12
  primary: $lux-primary,
14
13
  accent: $lux-accent,
15
14
  warn: $lux-warn
16
15
  ),
17
- typography: mat.define-typography-config(),
16
+ typography: mat.m2-define-typography-config(),
18
17
  density: 0
19
18
  )
20
19
  );
21
20
 
22
- @include mat.all-component-themes($lux-theme);
23
- @include mat.all-legacy-component-themes($lux-theme);
21
+ html {
22
+ @include mat.all-component-themes($lux-theme);
23
+ }
@@ -3,6 +3,7 @@
3
3
  @use "../luxpalette";
4
4
 
5
5
  lux-app-footer {
6
+ display: flex;
6
7
  flex: 0 0 auto;
7
8
  height: 60px;
8
9
  min-height: 60px;
@@ -17,6 +17,11 @@ lux-button button.lux-button {
17
17
 
18
18
  &.mat-mdc-fab {
19
19
  border-radius: 50%;
20
+
21
+ .mat-mdc-button-touch-target {
22
+ width: 36px;
23
+ height: 36px;
24
+ }
20
25
  }
21
26
 
22
27
  &:not(.mat-mdc-fab) {
@@ -31,8 +31,15 @@ lux-card {
31
31
  @include luxelevations.lux-elevation-z0;
32
32
  }
33
33
  .mat-mdc-card-content {
34
- padding: 16px 0 0 0;
35
34
  font-size: 1rem;
35
+ padding: 0;
36
+
37
+ .lux-card-content {
38
+ padding: 16px 0 0 0;
39
+ &:empty {
40
+ padding: 0;
41
+ }
42
+ }
36
43
  }
37
44
  }
38
45
 
@@ -81,8 +88,19 @@ lux-card {
81
88
  }
82
89
  .lux-card-info-container {
83
90
  margin-left: 10px;
84
- grid-row: 1 / span 2;
85
91
  grid-column-start: 3;
92
+
93
+ &.lux-title.lux-subtitle {
94
+ grid-row: 1 / span 2;
95
+ }
96
+
97
+ &.lux-title:not(.lux-subtitle) {
98
+ grid-row: 1;
99
+ }
100
+
101
+ &.lux-subtitle:not(.lux-title) {
102
+ grid-row: 2;
103
+ }
86
104
  }
87
105
 
88
106
  .lux-card-title,
@@ -112,7 +130,6 @@ lux-card {
112
130
  &.lux-card-actions {
113
131
  margin-right: 0;
114
132
  margin-left: 0;
115
- padding: luxcommon.$outline-width 0 0 0;
116
133
  }
117
134
  }
118
135
 
@@ -115,6 +115,11 @@ lux-lookup-combobox-ac {
115
115
  /*
116
116
  * Theming für Lux-Checkbox
117
117
  */
118
+ html .mat-mdc-checkbox .mat-internal-form-field {
119
+ --mat-switch-label-text-size: 16px;
120
+ --mat-checkbox-label-text-line-height: 24px;
121
+ }
122
+
118
123
  lux-checkbox-ac {
119
124
  input:focus ~ .mdc-checkbox__background,
120
125
  input:hover ~ .mdc-checkbox__background,
@@ -138,12 +143,18 @@ lux-checkbox-ac {
138
143
  top: 0;
139
144
  left: 0;
140
145
  }
146
+
147
+ .mat-mdc-checkbox-touch-target {
148
+ width: 24px;
149
+ height: 24px;
150
+ }
141
151
  }
142
152
 
143
153
  label {
144
154
  font-family: luxcommon.$app-font-family;
145
155
  font-size: luxcommon.$form-control-font-size;
146
156
  color: luxcommon.$dark-primary-text;
157
+ letter-spacing: normal;
147
158
  cursor: pointer;
148
159
  }
149
160
 
@@ -209,16 +220,39 @@ lux-datetimepicker-ac {
209
220
  /*
210
221
  * Theming für lux-Toggle
211
222
  */
212
- $toggleControlWidth: 50;
213
- $toggleControlHeight: 30;
214
- $toggleBorderRadius: 15;
223
+ $toggleHandleSize: 23;
215
224
  $toggleBorderWidth: 2;
216
- $toggleImageWidth: $toggleControlHeight - (2 * $toggleBorderWidth) - 3;
217
- $toggleImageHeight: $toggleControlHeight - (2 * $toggleBorderWidth) - 3;
218
225
  $toggleMarginLeft: $toggleBorderWidth + 1;
219
226
 
227
+ html lux-toggle-ac .mat-mdc-slide-toggle {
228
+ --mat-switch-label-text-size: 16px;
229
+ --mdc-switch-track-width: 50px;
230
+ --mdc-switch-track-height: 30px;
231
+ --mdc-switch-track-shape: 15px;
232
+ --mdc-switch-handle-width: 30px;
233
+ --mat-switch-track-outline-width: #{$toggleBorderWidth}px !important;
234
+ --mat-switch-track-outline-color: #{luxcommon.$dark-disabled-text} !important;
235
+ --mat-switch-selected-track-outline-width: #{$toggleBorderWidth}px !important;
236
+ --mat-switch-selected-track-outline-color: #{luxpalette.$lux-primary-color} !important;
237
+ --mat-switch-selected-handle-size: #{$toggleHandleSize}px;
238
+ --mat-switch-pressed-handle-size: #{$toggleHandleSize}px;
239
+ --mat-switch-with-icon-handle-size: #{$toggleHandleSize}px;
240
+ --mdc-switch-selected-icon-size: #{$toggleHandleSize}px;
241
+ --mdc-switch-selected-handle-size: #{$toggleHandleSize}px;
242
+ --mdc-switch-unselected-icon-size: #{$toggleHandleSize}px;
243
+ --mat-switch-unselected-handle-size: #{$toggleHandleSize}px;
244
+ --mdc-switch-selected-icon-color: #{luxpalette.$lux-primary-color};
245
+ --mdc-switch-state-layer-size: 40px;
246
+
247
+ .mat-internal-form-field {
248
+ letter-spacing: normal;
249
+ }
250
+ }
251
+
220
252
  lux-toggle-ac {
221
253
  mat-slide-toggle {
254
+ max-height: 26px;
255
+
222
256
  .mdc-switch__ripple {
223
257
  display: none;
224
258
  }
@@ -227,41 +261,22 @@ lux-toggle-ac {
227
261
  button {
228
262
  &.mdc-switch--disabled {
229
263
  &.mdc-switch--checked {
230
- .mdc-switch__track {
231
- &::before {
232
- border-color: #e0e0e0 !important;
233
- }
234
-
235
- &::after {
236
- border-color: #e0e0e0 !important;
237
- background: #e0e0e0;
238
- }
239
- }
240
-
241
264
  .mdc-switch__icons {
265
+ --mdc-switch-disabled-selected-icon-opacity: 1;
242
266
  svg.mdc-switch__icon--on {
243
267
  fill: luxcommon.$dark-disabled-text;
244
- background-color: white;
268
+ background: white;
245
269
  }
246
270
  }
247
271
  }
248
272
 
249
273
  &:not(.mdc-switch--checked) {
250
274
  .mdc-switch__track {
275
+ opacity: 1;
276
+ --mat-switch-disabled-unselected-track-outline-color: #e0e0e0;
277
+ --mat-switch-disabled-unselected-track-outline-width: #{$toggleBorderWidth}px;
251
278
  &::before {
252
- border-color: #e0e0e0 !important;
253
- background: White;
254
- }
255
-
256
- &::after {
257
- border-color: #e0e0e0 !important;
258
- }
259
- }
260
-
261
- .mdc-switch__icons {
262
- svg.mdc-switch__icon--off {
263
- fill: white;
264
- background-color: #a9a9a9;
279
+ background: transparent;
265
280
  }
266
281
  }
267
282
  }
@@ -269,77 +284,28 @@ lux-toggle-ac {
269
284
 
270
285
  &:not(.mdc-switch--disabled) {
271
286
  &.mdc-switch--checked {
272
- .mdc-switch__track {
273
- &::before {
274
- border-color: map-get(luxpalette.$lux-palette_primary, 500) !important;
275
- }
276
-
277
- &::after {
278
- border-color: map-get(luxpalette.$lux-palette_primary, 500) !important;
279
- }
280
- }
281
-
282
287
  .mdc-switch__icons {
283
288
  svg.mdc-switch__icon--on {
284
- fill: map-get(luxpalette.$lux-palette_primary, 500);
285
289
  background-color: white;
286
290
  }
287
291
  }
288
292
  }
289
-
290
- &:not(.mdc-switch--checked) {
291
- .mdc-switch__track {
292
- &::before {
293
- border-color: luxcommon.$dark-secondary-text !important;
294
- }
295
-
296
- &::after {
297
- border-color: luxcommon.$dark-secondary-text !important;
298
- }
299
- }
300
- }
301
293
  }
302
294
  }
303
295
 
304
296
  // Layout
305
297
  button {
306
- width: #{$toggleControlWidth}px;
307
- height: #{$toggleImageHeight + 1}px;
308
-
309
- .mdc-switch__track {
310
- width: #{$toggleControlWidth}px;
311
- height: #{$toggleControlHeight}px;
312
- border-radius: #{$toggleBorderRadius}px;
313
-
314
- &::before {
315
- border-width: #{$toggleBorderWidth}px !important;
316
- }
317
- &::after {
318
- border-width: #{$toggleBorderWidth}px !important;
319
- }
320
- }
321
-
322
298
  .mdc-switch__handle {
323
- width: #{$toggleImageWidth}px;
324
- height: #{$toggleImageHeight}px;
325
299
  margin-left: #{$toggleMarginLeft}px !important;
326
- border-radius: #{$toggleBorderRadius}px;
327
- }
328
-
329
- .mdc-switch__handle-track {
330
- width: #{$toggleControlWidth - $toggleImageWidth - $toggleMarginLeft - (2 * $toggleBorderWidth)}px;
331
300
  }
332
301
 
333
302
  .mdc-switch__icons {
334
- width: #{$toggleImageWidth}px;
335
- height: #{$toggleImageHeight}px;
336
-
337
303
  svg.mdc-switch__icon--on {
338
- border-radius: #{$toggleBorderRadius}px;
304
+ border-radius: 50%;
339
305
  }
340
306
 
341
307
  svg.mdc-switch__icon--off {
342
- border-radius: #{$toggleBorderRadius}px;
308
+ border-radius: 50%;
343
309
  }
344
310
  }
345
311
  }
@@ -389,6 +355,18 @@ lux-toggle-ac {
389
355
  /*
390
356
  * Theming for LUX-Radio
391
357
  */
358
+ html .mat-mdc-radio-button {
359
+ --mat-radio-label-text-size: 16px;
360
+ }
361
+
362
+ .mat-mdc-radio-button .mat-internal-form-field {
363
+ --mat-radio-label-text-line-height: 24px;
364
+
365
+ label {
366
+ letter-spacing: normal;
367
+ }
368
+ }
369
+
392
370
  lux-radio-ac {
393
371
  .mat-mdc-radio-button .mdc-radio {
394
372
  padding: 0;
@@ -413,6 +391,7 @@ lux-radio-ac {
413
391
  display: none;
414
392
  }
415
393
  }
394
+
416
395
  .mdc-label {
417
396
  color: luxcommon.$dark-primary-text;
418
397
  font-family: luxcommon.$app-font-family;
@@ -455,6 +434,11 @@ lux-radio-ac {
455
434
  &.lux-form-control-readonly {
456
435
  pointer-events: none;
457
436
  }
437
+
438
+ .mdc-radio .mat-mdc-radio-touch-target {
439
+ width: 24px;
440
+ height: 24px;
441
+ }
458
442
  }
459
443
 
460
444
  /*
@@ -633,31 +617,24 @@ lux-slider-ac {
633
617
  }
634
618
  }
635
619
 
636
- .mdc-slider__track {
637
- background-color: luxcommon.$dark-disabled-text;
638
- height: 2px;
639
- }
640
-
641
- .mdc-slider__value-indicator-container {
642
- left: 26%;
620
+ .mat-mdc-slider-visual-thumb .mat-ripple {
621
+ display: none;
643
622
  }
644
623
 
645
- .mdc-slider__thumb-knob {
646
- height: 15px;
647
- width: 15px;
648
- top: 27%;
649
- border-radius: 50%;
624
+ .mdc-slider__thumb {
625
+ height: 24px;
650
626
  }
651
627
 
652
628
  mat-slider-visual-thumb div.mdc-slider__value-indicator-container {
653
- bottom: 48px;
629
+ bottom: 27px;
654
630
 
655
631
  .mdc-slider__value-indicator {
656
632
  border-radius: 50%;
657
- min-height: 25px;
633
+ max-height: 23px;
658
634
  min-width: 20px;
659
635
  padding-left: 2px;
660
636
  padding-right: 2px;
637
+ opacity: 1;
661
638
  }
662
639
 
663
640
  .mdc-slider__value-indicator-text {
@@ -125,7 +125,7 @@ lux-table {
125
125
  }
126
126
 
127
127
  .mat-mdc-row:nth-child(odd) {
128
- background-color: map.get(luxpalette.$lux-palette_primary, 50);
128
+ background-color: #f0f3f6;
129
129
  }
130
130
 
131
131
  .mat-mdc-row:nth-child(even) {
@@ -229,6 +229,10 @@ lux-table {
229
229
  // damit die Events der eigentliche Checkbox nicht zusätzlich gezählt werden
230
230
  pointer-events: none;
231
231
  }
232
+
233
+ .lux-element-align-top {
234
+ vertical-align: text-top;
235
+ }
232
236
  }
233
237
 
234
238
  /** ########## HOVER / FOCUS ########## **/
@@ -71,6 +71,7 @@ lux-tabs {
71
71
  .lux-tabs-show-border {
72
72
  border: 1px solid luxcommon.$app-border-color;
73
73
  border-radius: 4px;
74
+ background-color: luxcommon.$app-content-bg;
74
75
  }
75
76
 
76
77
  // Anpassungen für kleine Screensizes
@@ -110,7 +111,9 @@ lux-tabs {
110
111
  // luxCounter (z.B. 10) neben dem Tablabel auf normalen bis großen Auflösungen
111
112
  .lux-tab-group .lux-tab-title.lux-badge-notification {
112
113
  &.mat-badge.lux-badge-no-border .mat-badge-content {
113
- top: -5px;
114
+ left: unset;
115
+ bottom: unset;
116
+ top: 6px;
114
117
  right: -30px;
115
118
  }
116
119
  }
@@ -119,7 +122,10 @@ lux-tabs {
119
122
  .lux-tab-group lux-icon.lux-badge-notification,
120
123
  .lux-tab-group lux-image.lux-badge-notification {
121
124
  &.mat-badge.lux-badge-no-border .mat-badge-content {
122
- top: 5px;
125
+ left: unset;
126
+ bottom: unset;
127
+ top: 20px;
128
+ right: -22px;
123
129
  }
124
130
  }
125
131
  .lux-tab-header-image-right,