@ihk-gfi/lux-components-theme 19.3.0 → 21.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 (123) hide show
  1. package/README.md +140 -189
  2. package/package.json +10 -10
  3. package/prebuilt-themes/luxtheme-authentic-min.css +1 -1
  4. package/prebuilt-themes/luxtheme-authentic-min.css.map +1 -1
  5. package/prebuilt-themes/luxtheme-authentic.css +9508 -11439
  6. package/prebuilt-themes/luxtheme-authentic.css.map +1 -1
  7. package/prebuilt-themes/luxtheme-green-min.css +1 -1
  8. package/prebuilt-themes/luxtheme-green-min.css.map +1 -1
  9. package/prebuilt-themes/luxtheme-green.css +9445 -11650
  10. package/prebuilt-themes/luxtheme-green.css.map +1 -1
  11. package/src/base-templates/common/_luxbreakpoints.scss +96 -0
  12. package/src/{base → base-templates/common}/_luxelevations.scss +1 -1
  13. package/src/base-templates/common/_luxfocus.scss +84 -0
  14. package/src/{base → base-templates/common}/_luxlayout.scss +0 -1
  15. package/src/base-templates/common/_luxstyles.scss +510 -0
  16. package/src/base-templates/components/_luxAccordion.scss +137 -0
  17. package/src/base-templates/components/_luxAppContent.scss +4 -0
  18. package/src/{base → base-templates}/components/_luxAppFooter.scss +2 -6
  19. package/src/{base → base-templates}/components/_luxAppHeader.scss +66 -76
  20. package/src/base-templates/components/_luxAppHeaderAc.scss +147 -0
  21. package/src/base-templates/components/_luxAppHeaderAcSessionTimer.scss +95 -0
  22. package/src/base-templates/components/_luxAutocomplete.scss +24 -0
  23. package/src/base-templates/components/_luxBadge.scss +40 -0
  24. package/src/base-templates/components/_luxBadgeNotification.scss +53 -0
  25. package/src/base-templates/components/_luxBreadcrumb.scss +117 -0
  26. package/src/base-templates/components/_luxButton.scss +107 -0
  27. package/src/base-templates/components/_luxButtonFlat.scss +53 -0
  28. package/src/base-templates/components/_luxButtonRaised.scss +80 -0
  29. package/src/base-templates/components/_luxButtonRounded.scss +83 -0
  30. package/src/base-templates/components/_luxButtonRoundedStroked.scss +76 -0
  31. package/src/base-templates/components/_luxButtonSpinner.scss +90 -0
  32. package/src/base-templates/components/_luxButtonStroked.scss +45 -0
  33. package/src/base-templates/components/_luxCard.scss +133 -0
  34. package/src/base-templates/components/_luxCheckbox.scss +11 -0
  35. package/src/{base → base-templates}/components/_luxCheckboxContainerAc.scss +6 -4
  36. package/src/base-templates/components/_luxChips.scss +144 -0
  37. package/src/base-templates/components/_luxCore.scss +26 -0
  38. package/src/base-templates/components/_luxDatepicker.scss +65 -0
  39. package/src/base-templates/components/_luxDatetimepicker.scss +17 -0
  40. package/src/{base → base-templates}/components/_luxDialog.scss +33 -16
  41. package/src/base-templates/components/_luxDivider.scss +10 -0
  42. package/src/{base → base-templates}/components/_luxErrorPage.scss +0 -4
  43. package/src/base-templates/components/_luxFileList.scss +55 -0
  44. package/src/{base → base-templates}/components/_luxFilePreview.scss +1 -4
  45. package/src/base-templates/components/_luxFileProgress.scss +13 -0
  46. package/src/base-templates/components/_luxFileUpload.scss +271 -0
  47. package/src/base-templates/components/_luxFileinput.scss +27 -0
  48. package/src/{base → base-templates}/components/_luxFilter.scss +31 -5
  49. package/src/base-templates/components/_luxFormControlWrapper.scss +276 -0
  50. package/src/base-templates/components/_luxHtml.scss +8 -0
  51. package/src/base-templates/components/_luxIcon.scss +53 -0
  52. package/src/base-templates/components/_luxInput.scss +30 -0
  53. package/src/{base → base-templates}/components/_luxLinkPlain.scss +12 -13
  54. package/src/{base → base-templates}/components/_luxList.scss +5 -8
  55. package/src/base-templates/components/_luxLookupAutocomplete.scss +6 -0
  56. package/src/base-templates/components/_luxLookupCombobox.scss +30 -0
  57. package/src/{base → base-templates}/components/_luxMasterDetailAc.scss +17 -34
  58. package/src/base-templates/components/_luxMenu.scss +270 -0
  59. package/src/base-templates/components/_luxMessagebox.scss +119 -0
  60. package/src/base-templates/components/_luxPopup.scss +54 -0
  61. package/src/base-templates/components/_luxProgressBar.scss +103 -0
  62. package/src/base-templates/components/_luxProgressSpinner.scss +94 -0
  63. package/src/base-templates/components/_luxRadioButton.scss +32 -0
  64. package/src/base-templates/components/_luxSelect.scss +42 -0
  65. package/src/base-templates/components/_luxSideNav.scss +93 -0
  66. package/src/base-templates/components/_luxSlider.scss +17 -0
  67. package/src/base-templates/components/_luxSnackbar.scss +41 -0
  68. package/src/{base → base-templates}/components/_luxStepper.scss +33 -129
  69. package/src/base-templates/components/_luxStepperLarge.scss +435 -0
  70. package/src/{base → base-templates}/components/_luxTable.scss +29 -63
  71. package/src/{base → base-templates}/components/_luxTabs.scss +32 -67
  72. package/src/base-templates/components/_luxTextarea.scss +16 -0
  73. package/src/base-templates/components/_luxTextbox.scss +83 -0
  74. package/src/{base → base-templates}/components/_luxTile.scss +12 -17
  75. package/src/base-templates/components/_luxTileAc.scss +71 -0
  76. package/src/base-templates/components/_luxToggle.scss +19 -0
  77. package/src/base-templates/components/_luxToolTip.scss +8 -0
  78. package/src/{base → base-templates}/components/_luxTourHint.scss +11 -7
  79. package/src/theme-authentic/_mat3Theme.scss +135 -0
  80. package/src/theme-authentic/_palettes.scss +183 -0
  81. package/src/theme-authentic/_variables.scss +486 -0
  82. package/src/theme-authentic/_variablesPreferContrast.scss +76 -0
  83. package/src/theme-authentic/lux-authentic.scss +69 -0
  84. package/src/theme-green/_mat3Theme.scss +134 -0
  85. package/src/theme-green/_palettes.scss +182 -0
  86. package/src/theme-green/_variables.scss +487 -0
  87. package/src/theme-green/_variablesPreferContrast.scss +76 -0
  88. package/src/theme-green/lux-green.scss +68 -0
  89. package/src/authentic/_custom.scss +0 -609
  90. package/src/authentic/_custombutton.scss +0 -143
  91. package/src/authentic/_luxcommon.scss +0 -138
  92. package/src/authentic/_luxpalette.scss +0 -230
  93. package/src/authentic/luxtheme.scss +0 -113
  94. package/src/base/_luxbreakpoints.scss +0 -94
  95. package/src/base/_luxcommon.scss +0 -104
  96. package/src/base/_luxcomponents.scss +0 -843
  97. package/src/base/_luxfocus.scss +0 -438
  98. package/src/base/_luxpalette.scss +0 -10
  99. package/src/base/_luxstyles.scss +0 -723
  100. package/src/base/_luxtheme.scss +0 -23
  101. package/src/base/components/_luxAppHeaderAc.scss +0 -214
  102. package/src/base/components/_luxBadge.scss +0 -62
  103. package/src/base/components/_luxBreadcrumb.scss +0 -90
  104. package/src/base/components/_luxButton.scss +0 -283
  105. package/src/base/components/_luxCard.scss +0 -179
  106. package/src/base/components/_luxFormControlWrapper.scss +0 -205
  107. package/src/base/components/_luxFormControlsAuthentic.scss +0 -715
  108. package/src/base/components/_luxIcon.scss +0 -41
  109. package/src/base/components/_luxMenu.scss +0 -314
  110. package/src/base/components/_luxMessagebox.scss +0 -156
  111. package/src/base/components/_luxProgressBar.scss +0 -5
  112. package/src/base/components/_luxProgressSpinner.scss +0 -13
  113. package/src/base/components/_luxSnackbar.scss +0 -77
  114. package/src/base/components/_luxTextbox.scss +0 -91
  115. package/src/base/components/_luxTileAc.scss +0 -87
  116. package/src/base/components/_luxToolTip.scss +0 -5
  117. package/src/green/_custom.scss +0 -1125
  118. package/src/green/_luxcommon.scss +0 -117
  119. package/src/green/_luxpalette.scss +0 -231
  120. package/src/green/luxtheme.scss +0 -117
  121. package/src/public/global.scss +0 -113
  122. /package/src/{base → base-templates/common}/_luxSvgIcons.scss +0 -0
  123. /package/src/{base → base-templates/common}/_luxfonts.scss +0 -0
@@ -0,0 +1,8 @@
1
+ @use "../common/luxfocus";
2
+
3
+ lux-html {
4
+ & a[href]:focus-visible {
5
+ @include luxfocus.focus-dark-mixin;
6
+ border-radius: var(--lux-theme-app-border-radius);
7
+ }
8
+ }
@@ -0,0 +1,53 @@
1
+ $componentColorNames: ("red", "green", "purple", "blue", "gray", "orange", "yellow", "pink", "lightblue", "black");
2
+
3
+ @mixin lux-icon-color-mixin($prefix) {
4
+ @each $colorName in $componentColorNames {
5
+ .lux-icon-#{$colorName} {
6
+ background-color: var(#{$prefix}-#{$colorName});
7
+ }
8
+ .lux-icon-on-#{$colorName} {
9
+ color: var(#{$prefix}-on-#{$colorName});
10
+ }
11
+ }
12
+ }
13
+
14
+ lux-icon {
15
+ position: relative;
16
+ display: inline-flex;
17
+ width: fit-content;
18
+
19
+ @include lux-icon-color-mixin("--lux-theme-icon");
20
+
21
+ &.lux-icon-rounded {
22
+ mat-icon.lux-icon {
23
+ border-radius: 50%;
24
+
25
+ &.lux-icon-rounded-1em {
26
+ padding: 0.25rem;
27
+ }
28
+ &.lux-icon-rounded-2em {
29
+ padding: 0.5rem;
30
+ }
31
+ &.lux-icon-rounded-3em {
32
+ padding: 0.75rem;
33
+ }
34
+ &.lux-icon-rounded-4em,
35
+ &.lux-icon-rounded-5em {
36
+ padding: 1rem;
37
+ }
38
+ }
39
+ }
40
+
41
+ &.lux-error-icon {
42
+ font-size: 0.75rem;
43
+
44
+ mat-icon.lux-icon {
45
+ padding: 0 !important;
46
+ color: var(--mat-sys-on-error-container);
47
+
48
+ &:hover {
49
+ cursor: pointer;
50
+ }
51
+ }
52
+ }
53
+ }
@@ -0,0 +1,30 @@
1
+ // Muss der Wrapper sein, da Input-Elemente auch in anderen Komponenten (z.B. lux-autocomplete) genutzt werden
2
+ lux-form-control-wrapper {
3
+ input {
4
+ font: inherit;
5
+ color: currentColor;
6
+ background: transparent;
7
+ border: none;
8
+ outline: 0;
9
+ padding: 0;
10
+ margin: 0;
11
+ width: 100%;
12
+ max-width: 100%;
13
+ vertical-align: bottom;
14
+ text-align: inherit;
15
+ font-size: var(--lux-theme-form-control-font-size);
16
+ }
17
+ }
18
+
19
+ lux-input-ac {
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;
29
+ }
30
+ }
@@ -1,11 +1,9 @@
1
- @use "sass:map";
2
- @use "../luxfocus";
3
- @use "../luxcommon";
4
- @use "../luxpalette";
1
+ @use "../common/luxfocus";
5
2
 
6
3
  lux-link-plain {
7
4
  display: inline-flex;
8
5
  align-items: baseline;
6
+ background-color: var(--lux-theme-link-plain-background-color);
9
7
  .link-wrapper {
10
8
  display: flex;
11
9
  gap: 0.25em;
@@ -15,7 +13,7 @@ lux-link-plain {
15
13
  font-family: inherit;
16
14
  font-size: inherit;
17
15
  font-weight: inherit;
18
- text-decoration: inherit;
16
+ text-decoration: var(--lux-theme-link-plain-text-decoration);
19
17
  color: inherit;
20
18
  display: flex;
21
19
  }
@@ -23,6 +21,7 @@ lux-link-plain {
23
21
  lux-icon {
24
22
  font-size: inherit;
25
23
  display: flex;
24
+ color: var(--lux-theme-link-plain-icon-color);
26
25
  mat-icon.mat-icon.lux-icon {
27
26
  padding: 0px !important;
28
27
  width: 0.8em;
@@ -38,34 +37,34 @@ lux-link-plain {
38
37
  }
39
38
 
40
39
  &.default-style {
41
- color: map.get(luxpalette.$lux-palette-primary, A700);
40
+ color: var(--lux-theme-link-plain-color);
42
41
  font-family: inherit;
43
42
  lux-icon {
44
43
  mat-icon {
45
- color: map.get(luxpalette.$lux-palette-primary, A700);
44
+ color: var(--lux-theme-link-plain-icon-color);
46
45
  }
47
46
  }
48
47
  }
49
48
 
50
- &.lux-disabled,
51
- .link-wrapper.lux-disabled {
52
- color: luxcommon.$dark-disabled-text;
49
+ &.lux-disabled {
50
+ color: var(--lux-theme-dark-disabled-text);
53
51
  cursor: text;
54
52
  text-decoration: none;
55
53
  lux-icon {
56
54
  mat-icon {
57
- color: luxcommon.$dark-disabled-text;
55
+ color: var(--lux-theme-dark-disabled-text);
58
56
  }
59
57
  }
60
58
  }
61
59
 
62
60
  &:hover:not(.lux-disabled) {
63
- color: map.get(luxpalette.$lux-palette-primary, 300);
61
+ color: var(--lux-theme-link-plain-hover-color);
64
62
  text-decoration: underline;
63
+ background-color: var(--lux-theme-link-plain-hover-background-color);
65
64
  cursor: pointer;
66
65
  lux-icon {
67
66
  mat-icon {
68
- color: map.get(luxpalette.$lux-palette-primary, 300);
67
+ color: var(--lux-theme-link-plain-hover-color);
69
68
  }
70
69
  }
71
70
  }
@@ -1,8 +1,5 @@
1
- @use "sass:map";
2
- @use "../luxfocus";
3
- @use "../luxcommon";
4
- @use "../luxpalette";
5
- @use "../luxelevations";
1
+ @use "../common/luxfocus";
2
+ @use "../common/luxelevations";
6
3
 
7
4
  /*
8
5
  * Theming for LUX-List
@@ -17,7 +14,7 @@ lux-list {
17
14
 
18
15
  .lux-list-empty-icon,
19
16
  .lux-list-empty-icon-text {
20
- color: map.get(luxcommon.$componentBgColors, "gray");
17
+ color: var(--lux-theme-custom-gray);
21
18
  padding: 0 8px;
22
19
  }
23
20
  .mat-mdc-card:not([class*="mat-elevation-z"]) {
@@ -85,8 +82,8 @@ lux-list {
85
82
  @include luxfocus.lux-selectable-mixin;
86
83
 
87
84
  &:hover {
88
- border: 1px solid luxpalette.$lux-primary-color;
89
- background: luxcommon.$app-gradient-reverse;
85
+ border: 1px solid var(--lux-theme-primary-color);
86
+ background: var(--lux-theme-app-gradient-reverse);
90
87
  background-color: #fff !important;
91
88
  }
92
89
  }
@@ -0,0 +1,6 @@
1
+ .lux-autocomplete-panel-ac {
2
+ .invalid {
3
+ font-weight: var(--lux-theme-lookup-invalid-option-font-weight);
4
+ color: var(--lux-theme-lookup-invalid-option-text-color);
5
+ }
6
+ }
@@ -0,0 +1,30 @@
1
+ @use "../common/luxfocus" as luxfocus;
2
+
3
+ lux-lookup-combobox-ac {
4
+ &.lux-form-control-readonly {
5
+ pointer-events: none;
6
+ }
7
+
8
+ // Hier kann nicht der Token "disabled-arrow-color" verwendet werden, da dieser
9
+ // nur greifen würde, wenn das mat-select-Element in einem mat-form-field verwendet wird.
10
+ [aria-disabled="true"] {
11
+ .mat-mdc-select-arrow {
12
+ color: var(--lux-theme-dark-disabled-text);
13
+ }
14
+ }
15
+ }
16
+
17
+ .lux-select-panel-ac {
18
+ .invalid {
19
+ font-weight: var(--lux-theme-lookup-invalid-option-font-weight);
20
+ color: var(--lux-theme-lookup-invalid-option-text-color);
21
+ }
22
+ }
23
+
24
+ lux-lookup-combobox-ac {
25
+ @media (prefers-contrast: more) {
26
+ .mat-mdc-select:focus {
27
+ @include luxfocus.focus-dark-mixin;
28
+ }
29
+ }
30
+ }
@@ -1,15 +1,11 @@
1
- @use "sass:map";
2
- @use "../luxfocus";
3
- @use "../luxcommon";
4
- @use "../luxpalette";
5
- @use "../luxelevations";
1
+ @use "../common/luxelevations";
6
2
 
7
3
  // Die lux-list besitzt eine unsichtbare Border für die Anzeige des Focus-Indicators
8
4
  // damit dieser vollständig angzeigt werden kann, muss die Master-View ein passendes Padding anbieten
9
5
  // damit der Master-Header/Master-Footer mit der Liste ausgerichtet werden, müssen sie ebenfalls mit dem
10
6
  // passenden Padding/Margin versehen werden.
11
7
  // Das Margin berechnet sich aus der Breite der Outline + 1px Abstand zu den Listitems.
12
- $listmargin: calc(luxcommon.$outline-width + 1px);
8
+ $listmargin: calc(var(--lux-theme-outline-width) + 1px);
13
9
 
14
10
  .lux-master-detail-ac {
15
11
  // Hauptcontainer für die Komponente
@@ -45,7 +41,7 @@ $listmargin: calc(luxcommon.$outline-width + 1px);
45
41
  max-width: calc(50% - 15px);
46
42
  }
47
43
  &.lux-master-closed {
48
- border: 1px solid luxcommon.$app-border-color;
44
+ border: 1px solid var(--lux-theme-app-border-color);
49
45
  border-left-style: none;
50
46
  border-radius: 0 4px 4px 0;
51
47
  padding: 0;
@@ -78,27 +74,17 @@ $listmargin: calc(luxcommon.$outline-width + 1px);
78
74
 
79
75
  button.lux-button.lux-button-rounded {
80
76
  @include luxelevations.lux-elevation-z0;
81
- border: 1px solid luxcommon.$app-border-color;
82
- color: map.get(luxpalette.$lux-palette-primary, 500);
77
+ border: 1px solid var(--lux-theme-app-border-color);
78
+ color: var(--lux-theme-primary-20);
83
79
  background-color: #fff !important;
84
80
  }
85
81
 
86
82
  .lux-button-icon-round.lux-lx-icon.lux-no-size {
87
83
  // optische Anpassung für das "Chevron"-Icon, damit es zentriert im Button sitzt
88
- // // Anpassung erforderlich, falls das Icon ausgetauscht wird
84
+ // Anpassung erforderlich, falls das Icon ausgetauscht wird
89
85
  padding-bottom: 4px;
90
86
  }
91
87
  }
92
- button.lux-button.lux-button-rounded {
93
- &:hover:not([disabled]) {
94
- color: luxcommon.$lux-hover-color;
95
- border-radius: 50%;
96
- }
97
- &:active:not([disabled]) {
98
- color: map.get(luxpalette.$lux-palette-primary, 700);
99
- background-color: #fff !important;
100
- }
101
- }
102
88
  .lux-menu-extended {
103
89
  padding: 0px;
104
90
  }
@@ -118,9 +104,6 @@ $listmargin: calc(luxcommon.$outline-width + 1px);
118
104
  lux-filter-form .lux-filter-card,
119
105
  .detail-header-container .lux-detail-header-ac,
120
106
  .lux-master-view-ac lux-list-item {
121
- mat-card.mat-mdc-card {
122
- padding: 12px;
123
- }
124
107
  mat-card-title,
125
108
  h2 {
126
109
  font-size: 1rem;
@@ -132,7 +115,7 @@ $listmargin: calc(luxcommon.$outline-width + 1px);
132
115
 
133
116
  .lux-empty-master-header {
134
117
  div.lux-master-header-container-ac {
135
- border: 1px solid luxcommon.$app-border-color;
118
+ border: 1px solid var(--lux-theme-app-border-color);
136
119
  border-radius: 4px;
137
120
  background-color: #fff;
138
121
  height: 72px;
@@ -181,7 +164,7 @@ $listmargin: calc(luxcommon.$outline-width + 1px);
181
164
  }
182
165
  .lux-list-empty-icon,
183
166
  .lux-list-empty-icon-text {
184
- color: rgb(97, 97, 97);
167
+ color: rgb(97, 97, 97);
185
168
  opacity: 1;
186
169
  margin-bottom: 8px;
187
170
  }
@@ -190,7 +173,7 @@ $listmargin: calc(luxcommon.$outline-width + 1px);
190
173
  lux-master-footer-ac {
191
174
  padding: 10px 12px 10px 16px;
192
175
  z-index: 100;
193
- border: 1px solid luxcommon.$app-border-color;
176
+ border: 1px solid var(--lux-theme-app-border-color);
194
177
  border-radius: 4px;
195
178
  background-color: #fff;
196
179
  .lux-menu-extended {
@@ -200,7 +183,7 @@ $listmargin: calc(luxcommon.$outline-width + 1px);
200
183
 
201
184
  .lux-detail-ac-container {
202
185
  position: relative;
203
- border: 1px solid luxcommon.$app-border-color;
186
+ border: 1px solid var(--lux-theme-app-border-color);
204
187
  border-radius: 4px;
205
188
  background-color: #fff;
206
189
  display: flex;
@@ -221,7 +204,7 @@ $listmargin: calc(luxcommon.$outline-width + 1px);
221
204
 
222
205
  .lux-detail-empty-icon,
223
206
  .lux-detail-empty-icon-text {
224
- color: rgb(97, 97, 97);
207
+ color: rgb(97, 97, 97);
225
208
  opacity: 1;
226
209
  }
227
210
  &.lux-detail-ac-container-mobile {
@@ -229,7 +212,7 @@ $listmargin: calc(luxcommon.$outline-width + 1px);
229
212
  background-color: unset;
230
213
  .lux-detail-header-ac {
231
214
  mat-card.mat-mdc-card.lux-card {
232
- border: 2px solid luxpalette.$lux-primary-color;
215
+ border: 2px solid var(--lux-theme-primary-color);
233
216
  }
234
217
  }
235
218
  .back-to-master-button-container {
@@ -239,15 +222,15 @@ $listmargin: calc(luxcommon.$outline-width + 1px);
239
222
  padding: 4px;
240
223
 
241
224
  &:hover {
242
- color: luxcommon.$lux-hover-color;
225
+ color: var(--lux-theme-hover-color);
243
226
  cursor: pointer;
244
227
  }
245
228
 
246
229
  lux-button.back-to-master-button {
247
230
  button.lux-button.lux-button-rounded {
248
231
  @include luxelevations.lux-elevation-z0;
249
- border: 1px solid luxcommon.$app-border-color;
250
- color: map.get(luxpalette.$lux-palette-primary, 500);
232
+ border: 1px solid var(--lux-theme-app-border-color);
233
+ color: var(--lux-theme-primary-20);
251
234
  }
252
235
  .lux-button-icon-round.lux-lx-icon.lux-no-size {
253
236
  // optische Anpassung für das "Chevron"-Icon, damit es zentriert im Button sitzt
@@ -257,11 +240,11 @@ $listmargin: calc(luxcommon.$outline-width + 1px);
257
240
  }
258
241
  .back-to-master-label {
259
242
  font-size: 1rem;
260
- color: map.get(luxpalette.$lux-palette-primary, 500);
243
+ color: var(--lux-theme-primary-20);
261
244
  }
262
245
  }
263
246
  .lux-detail-view-container {
264
- border: 1px solid luxcommon.$app-border-color;
247
+ border: 1px solid var(--lux-theme-app-border-color);
265
248
  border-radius: 4px;
266
249
  background-color: #fff;
267
250
  }
@@ -0,0 +1,270 @@
1
+ @use "@angular/material" as mat;
2
+ @use "../common/luxSvgIcons" as luxicons;
3
+ @use "../common/luxfocus" as luxfocus;
4
+
5
+ .mat-mdc-menu-panel {
6
+ .mat-mdc-menu-item-text {
7
+ min-height: var(--lux-theme-menu-panel-option-min-height);
8
+ padding: var(--lux-theme-menu-panel-option-padding);
9
+ }
10
+ }
11
+
12
+ lux-menu {
13
+ display: block;
14
+ width: 100%;
15
+
16
+ .lux-menu-extended,
17
+ .lux-menu-trigger {
18
+ > lux-button {
19
+ button {
20
+ padding-left: 8px;
21
+ padding-right: 8px;
22
+ min-width: 30px;
23
+ }
24
+ }
25
+ }
26
+ }
27
+
28
+ // Container für die Buttons und den Trigger ausserhalb des Menu-Panels
29
+ .lux-menu-extended {
30
+ overflow: hidden;
31
+ min-width: 0;
32
+ padding: 4px 0;
33
+ position: relative;
34
+
35
+ > lux-button {
36
+ @include mat.button-overrides(
37
+ (
38
+ text-container-shape: var(--lux-theme-menu-button-text-container-shape),
39
+ text-label-text-size: var(--lux-theme-menu-button-item-font-size),
40
+ text-container-height: var(--lux-theme-menu-container-height)
41
+ )
42
+ );
43
+
44
+ margin-right: 8px;
45
+ &.lux-menu-item .lux-button-label {
46
+ white-space: nowrap;
47
+ font-weight: 400;
48
+ letter-spacing: 1px;
49
+ }
50
+ }
51
+ }
52
+
53
+ // Container für den Menu-Trigger-button
54
+ .lux-menu-trigger {
55
+ display: flex;
56
+ flex: 0 0 auto;
57
+ margin: 0 4px;
58
+ align-self: center;
59
+ box-sizing: border-box;
60
+ }
61
+
62
+ .lux-menu-trigger-default {
63
+ button.mat-mdc-button {
64
+ white-space: nowrap;
65
+
66
+ &:not(:disabled) {
67
+ color: var(--lux-theme-primary-20);
68
+ }
69
+ }
70
+ }
71
+
72
+ /* Menu-Overlay-Panel anpassen */
73
+ .lux-menu-panel {
74
+ @include mat.menu-overrides(
75
+ (
76
+ container-shape: var(--lux-theme-app-border-radius),
77
+ container-elevation-shadow: 0 0 0 1px var(--mat-card-outlined-outline-color, var(--mat-sys-outline-variant)),
78
+ container-color: var(--lux-theme-panel-bg-color),
79
+ item-hover-state-layer-color: color-mix(in srgb, var(--mat-sys-secondary-container) 8%, transparent),
80
+ item-focus-state-layer-color: color-mix(in srgb, var(--mat-sys-secondary-container) 12%, transparent),
81
+ item-label-text-size: var(--lux-theme-menu-item-font-size),
82
+ item-label-text-color: var(--lux-theme-menu-item-font-color),
83
+ item-icon-color: var(--lux-theme-menu-item-font-color),
84
+ divider-color: var(--lux-theme-dark-dividers)
85
+ )
86
+ );
87
+
88
+ .lux-selected-item-ac {
89
+ font-weight: 600;
90
+ color: var(--lux-theme-primary-color);
91
+ .lux-button-label {
92
+ padding-right: 24px;
93
+ &::after {
94
+ content: "";
95
+ position: absolute;
96
+ width: 20px;
97
+ height: 20px;
98
+ right: 0;
99
+ top: 14px;
100
+ margin: 0 10px 0 4px;
101
+ background-color: var(--lux-theme-primary-color);
102
+ -webkit-mask: url(luxicons.$checkmark);
103
+ -webkit-mask-repeat: no-repeat;
104
+ -webkit-mask-position: center;
105
+ -webkit-mask-size: cover;
106
+ mask: url(luxicons.$checkmark);
107
+ mask-repeat: no-repeat;
108
+ mask-position: center;
109
+ mask-size: cover;
110
+ }
111
+ }
112
+ }
113
+
114
+ .mat-mdc-menu-item-text {
115
+ display: flex;
116
+ }
117
+
118
+ .lux-button-badge-container {
119
+ min-width: 38px;
120
+ vertical-align: middle;
121
+ align-self: center;
122
+ }
123
+
124
+ .lux-button-badge {
125
+ color: #fff;
126
+ border-radius: 4px;
127
+ padding: 1px 4px;
128
+ font-size: 0.6875rem;
129
+ line-height: normal;
130
+ max-height: 16px;
131
+ min-width: 15px;
132
+ max-width: 38px;
133
+ display: inline-block;
134
+ overflow: hidden;
135
+ text-overflow: ellipsis;
136
+ white-space: nowrap;
137
+ box-sizing: border-box;
138
+ letter-spacing: 1.25px;
139
+ }
140
+
141
+ .lux-menu-item-icon {
142
+ align-self: center;
143
+ vertical-align: middle;
144
+ mat-icon {
145
+ margin: 0;
146
+ }
147
+ }
148
+ }
149
+
150
+ //Styling für das neue Panel mit Sektionen und das Large Panel
151
+ .lux-menu-section-panel,
152
+ .lux-menu-section-panel:not(.lux-menu-panel-large) {
153
+ min-width: 260px !important;
154
+ max-width: 100%;
155
+ }
156
+
157
+ .lux-menu-section-panel,
158
+ .lux-menu-section-panel:has(.lux-menu-panel-large) {
159
+ min-width: 360px !important;
160
+ max-width: 100%;
161
+ }
162
+
163
+ .lux-menu-section-panel {
164
+ .lux-menu-item-content {
165
+ display: flex;
166
+ align-items: center;
167
+ width: 100%;
168
+ }
169
+
170
+ .lux-menu-item-icon {
171
+ margin-right: 8px;
172
+ flex-shrink: 0;
173
+ }
174
+
175
+ .lux-button-label {
176
+ color: var(--lux-theme-menu-item-font-color);
177
+ text-align: left;
178
+ flex: 1 1 auto;
179
+ white-space: normal;
180
+ }
181
+
182
+ .lux-menu-item-badge-right {
183
+ min-width: 0px !important;
184
+ margin-left: auto;
185
+ align-self: center;
186
+ display: flex;
187
+ }
188
+
189
+ .lux-button-label-subtitle {
190
+ color: var(--lux-theme-menu-item-subtitle-font-color);
191
+ font-size: 0.875rem;
192
+ font-style: normal;
193
+ font-weight: 400;
194
+ letter-spacing: 0.07px;
195
+ }
196
+
197
+ .lux-menu-panelheader-username {
198
+ display: flex;
199
+ padding: 12px 16px;
200
+ flex-direction: column;
201
+ align-items: flex-start;
202
+ gap: 4px;
203
+ align-self: stretch;
204
+ font-weight: 600;
205
+ font-size: 1rem;
206
+ font-style: normal;
207
+ line-height: 120%;
208
+ }
209
+ .lux-menu-panelheader-username-subtitle {
210
+ display: flex;
211
+ flex-direction: column;
212
+ align-items: flex-start;
213
+ gap: 4px;
214
+ align-self: stretch;
215
+ font-weight: 400;
216
+
217
+ font-size: 0.75rem;
218
+ font-style: normal;
219
+ line-height: normal;
220
+ }
221
+ .lux-menu-section-title {
222
+ display: flex;
223
+ padding: 8px 16px;
224
+ flex-direction: column;
225
+ justify-content: center;
226
+ align-items: flex-start;
227
+ align-self: stretch;
228
+
229
+ color: var(--lux-theme-neutral-40);
230
+ font-weight: 600;
231
+ font-size: 1rem;
232
+ letter-spacing: 0.08px;
233
+ line-height: 120%; /* 19.2px */
234
+ }
235
+ .lux-menu-item-divider {
236
+ padding: 4px;
237
+ }
238
+
239
+ .lux-menu-item-selected {
240
+ background-color: var(--lux-theme-primary-90) !important;
241
+ text-decoration-line: underline;
242
+ text-decoration-style: solid;
243
+ text-decoration-thickness: 10%;
244
+ text-underline-offset: 5%;
245
+ text-underline-position: from-font;
246
+ }
247
+
248
+ .lux-menu-item-selected {
249
+ background-color: var(--lux-theme-primary-90);
250
+ &.lux-button-label {
251
+ text-decoration-line: underline;
252
+ text-decoration-style: solid;
253
+ text-decoration-thickness: 10%;
254
+ text-underline-offset: 5%;
255
+ text-underline-position: from-font;
256
+ }
257
+ &.lux-button-label-subtitle {
258
+ text-decoration-color: var(--lux-theme-primary-40);
259
+ text-decoration-line: underline;
260
+ text-decoration-style: solid;
261
+ text-decoration-thickness: 12%;
262
+ text-underline-offset: 5%;
263
+ text-underline-position: from-font;
264
+ }
265
+ }
266
+
267
+ .lux-menu-item-badge-right {
268
+ text-align: end;
269
+ }
270
+ }