@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
@@ -1,1125 +0,0 @@
1
- @use "sass:map";
2
- @use "sass:color";
3
- @use "@angular/material" as mat;
4
- @use "../base/luxfocus";
5
- @use "../base/luxelevations";
6
- @use "../public/global";
7
- @use "luxcommon";
8
- @use "luxpalette";
9
-
10
- $button-font-size: 1.375rem;
11
- $light-green: #e4f1e4;
12
- $medium-green: #9ad7a3;
13
- $dark-green: #2e8533;
14
- $light-gray: #eff3f6;
15
- $light-blue: #e3ebf5;
16
- $slightly-blue: #ccd7e6;
17
- $medium-blue: #b0c4d6;
18
- $dark-blue: #335c85;
19
- $dark-red: #ad000f;
20
-
21
- body {
22
- color: luxpalette.$lux-primary-color;
23
- font-family: luxcommon.$app-font-family;
24
- }
25
-
26
- p,
27
- div,
28
- span {
29
- font-family: luxcommon.$app-font-family;
30
- }
31
-
32
- h1,
33
- h2,
34
- h3,
35
- h4,
36
- h5,
37
- h6 {
38
- font-family: luxcommon.$app-headline-font;
39
- }
40
-
41
- /*
42
- * Theming for LUX-Slider
43
- */
44
- lux-slider-ac {
45
- lux-form-control-wrapper .lux-form-control-wrapper .lux-form-control-container-authentic {
46
- &.lux-no-input-row {
47
- padding-top: 12px;
48
- padding-bottom: 4px;
49
- }
50
- }
51
- }
52
-
53
- /*
54
- * Theming for LUX-Card
55
- */
56
- lux-card {
57
- .mat-mdc-card {
58
- color: luxpalette.$lux-primary-color;
59
- }
60
- }
61
-
62
- lux-panel {
63
- & .mat-expansion-panel,
64
- .mat-expansion-panel-header-title,
65
- .mat-expansion-panel-header-description {
66
- color: luxpalette.$lux-primary-color;
67
- }
68
- }
69
-
70
- @mixin lux-hovered-mixin-green {
71
- background-color: #e3ebf5 !important;
72
- border-radius: 4px;
73
- }
74
-
75
- /*
76
- * Theming for LUX-App-Header
77
- */
78
- lux-app-header .lux-app-header {
79
- .lux-header-title {
80
- p,
81
- div,
82
- span {
83
- font-weight: 400;
84
- font-family: luxcommon.$app-button-font-family;
85
- }
86
- }
87
-
88
- .lux-header-user {
89
- p,
90
- div,
91
- span {
92
- font-weight: 400;
93
- font-family: luxcommon.$app-button-font-family;
94
- }
95
- }
96
- }
97
-
98
- /*
99
- * Theming for LUX-App-Footer
100
- */
101
- lux-app-footer {
102
- .lux-app-footer {
103
- border-bottom: 8px solid map.get(luxpalette.$lux-palette_primary, 500);
104
- .lux-menu-extended {
105
- > lux-button {
106
- button {
107
- &.lux-button {
108
- font-size: $button-font-size;
109
-
110
- p,
111
- div,
112
- span {
113
- font-family: luxcommon.$app-button-font-family;
114
- }
115
- }
116
- }
117
- }
118
- }
119
- }
120
- }
121
-
122
- /*
123
- * Theming for LUX-Button
124
- */
125
- lux-button button.lux-button {
126
- font-weight: 400 !important;
127
- font-family: luxcommon.$app-button-font-family;
128
-
129
- &.mdc-button {
130
- letter-spacing: normal;
131
- }
132
-
133
- p,
134
- div,
135
- span {
136
- font-family: luxcommon.$app-button-font-family;
137
- }
138
-
139
- &.mat-mdc-button,
140
- &.mat-mdc-raised-button,
141
- &.mat-mdc-unelevated-button,
142
- &.mat-mdc-outlined-button {
143
- border-radius: 18px;
144
- height: luxcommon.$button-height;
145
- font-size: $button-font-size;
146
- }
147
-
148
- &.mat-mdc-button:disabled,
149
- &.mat-mdc-raised-button:disabled,
150
- &.mat-mdc-fab:disabled,
151
- &.mat-mdc-outlined-button:disabled,
152
- &.mat-mdc-unelevated-button:disabled {
153
- color: luxcommon.$dark-disabled-text;
154
- &.lux-stroked {
155
- color: luxcommon.$dark-disabled-text;
156
- border-color: luxcommon.$dark-disabled-text;
157
- }
158
- }
159
-
160
- &.mat-mdc-unelevated-button:not([disabled], .mat-accent, .mat-warn, .mat-primary),
161
- &.mat-mdc-raised-button:not([disabled], .mat-accent, .mat-warn, .mat-primary),
162
- &.mat-mdc-outlined-button:not([disabled], .mat-accent, .mat-warn, .mat-primary) {
163
- color: luxpalette.$lux-primary-color;
164
- & lux-icon.lux-button-icon:not(.lux-button-icon-round) {
165
- color: #000000;
166
- }
167
- }
168
-
169
- &.mat-mdc-raised-button.mat-accent:not([disabled]),
170
- &.mat-mdc-unelevated-button.mat-accent:not([disabled]),
171
- &.mat-mdc-fab.mat-accent:not([disabled]) {
172
- color: map.get(luxpalette.$lux-palette-primary, 500);
173
- &.lux-stroked {
174
- color: $dark-green;
175
- }
176
- }
177
-
178
- &.mat-mdc-raised-button.mat-warn:not([disabled]),
179
- &.mat-mdc-unelevated-button.mat-warn:not([disabled]) {
180
- background-color: $dark-red;
181
- color: #ffffff;
182
- }
183
-
184
- &.mat-mdc-button.mat-warn:not([disabled]),
185
- &.mat-mdc-outlined-button.mat-warn:not([disabled]),
186
- &.mat-mdc-raised-button.lux-stroked.mat-warn:not([disabled]),
187
- &.mat-mdc-unelevated-button.lux-stroked.mat-warn:not([disabled]),
188
- &.mat-mdc-fab.lux-stroked.mat-warn:not([disabled]) {
189
- color: $dark-red;
190
- }
191
-
192
- &.mat-mdc-raised-button.mat-warn:not([disabled]):hover,
193
- &.mat-mdc-unelevated-button.mat-warn:not([disabled]):hover,
194
- &.mat-mdc-fab.mat-warn:not([disabled]):hover {
195
- background-color: color.adjust($dark-red, $lightness: 5%) !important;
196
- }
197
-
198
- &.mat-mdc-button.mat-accent:not([disabled]),
199
- &.mat-mdc-outlined-button.mat-accent:not([disabled]),
200
- &.mat-mdc-raised-button.lux-stroked.mat-accent:not([disabled]),
201
- &.mat-mdc-unelevated-button.lux-stroked.mat-accent:not([disabled]) {
202
- color: $dark-green;
203
- }
204
-
205
-
206
- &.lux-icon-button {
207
- border-radius: 18px;
208
- height: luxcommon.$button-height;
209
-
210
- lux-icon.lux-button-icon mat-icon.mat-icon.lux-icon {
211
- height: 1.375rem !important;
212
- width: 1.375rem !important;
213
- }
214
- }
215
-
216
- .lux-button-spinner {
217
- mat-progress-spinner {
218
- width: 1.375rem !important;
219
- height: 1.375rem !important;
220
- }
221
- }
222
-
223
- &.mat-mdc-fab.lux-button-rounded {
224
- border-radius: 16px !important;
225
- height: luxcommon.$button-fav-height;
226
- width: luxcommon.$button-fav-height;
227
- font-size: $button-font-size;
228
-
229
- & lux-icon.lux-button-icon-round {
230
- mat-icon.mat-icon.lux-icon {
231
- height: 1.375rem !important;
232
- width: 1.375rem !important;
233
- }
234
- }
235
- &.lux-stroked {
236
- border-color: luxcommon.$app-border-color !important;
237
- &:hover:not([disabled]) {
238
- background-color: color.adjust(luxcommon.$lux-hover-color, $lightness: -10%) !important;
239
- }
240
- &:focus-visible:not([disabled], :hover) {
241
- background-color: transparent !important;
242
- }
243
- @include luxelevations.lux-elevation-z0;
244
-
245
- &:active {
246
- @include luxelevations.lux-elevation-z2;
247
- }
248
- }
249
- }
250
-
251
- .lux-button-badge {
252
- border-radius: 0.5rem;
253
- padding: 0.125rem 0.5rem;
254
- font-size: 0.875rem;
255
- max-width: 3rem;
256
- }
257
- }
258
-
259
- /*
260
- * Theming for LUX-Menu
261
- */
262
- .lux-menu-extended {
263
- > lux-button {
264
- &.lux-menu-item .lux-button-label {
265
- font-weight: 400;
266
- font-family: luxcommon.$app-button-font-family;
267
- }
268
-
269
- button {
270
- padding-left: 1rem;
271
- padding-right: 1rem;
272
-
273
- &.lux-button {
274
- font-size: 0.875rem;
275
- }
276
- }
277
- }
278
- }
279
-
280
- /*
281
- * Theming for LUX-badge-notification
282
- */
283
- .lux-badge-notification {
284
- &.mat-badge:not(.mat-badge-disabled).mat-badge-accent .mat-badge-content {
285
- background-color: map.get(luxpalette.$lux-palette_accent, 500);
286
- }
287
- }
288
-
289
- /*
290
- * Theming for LUX-Form-Controls
291
- */
292
-
293
- $form-control-border-radius: 4px;
294
- $form-control-old-border-bottom: 0px;
295
-
296
- /*
297
- * Theming für LUX-Table
298
- */
299
- lux-table {
300
- .mat-header-row:not(.lux-table-header-no-data) {
301
- background-color: $light-green;
302
- }
303
- .mat-row:nth-child(even) {
304
- background-color: $light-gray;
305
- }
306
- .mat-row:nth-child(odd) {
307
- background-color: #ffffff;
308
- }
309
- .lux-multiselect-td,
310
- .lux-multiselect-tf:not(.lux-ignore-multiselect-tf) {
311
- border-right: 1px solid rgba(0, 0, 0, 0.12);
312
- }
313
-
314
- .lux-table .lux-table-content table td .lux-form-control-wrapper .lux-form-control-container-authentic.lux-no-input-row {
315
- padding: 0.625em 0;
316
- }
317
-
318
- tr:hover {
319
- > td,
320
- > th {
321
- @include luxfocus.lux-hovered-mixin;
322
- // Wir nutzen hier die hover-Farbe ohne Alpha-Wert, da bei Sticky-Columns sonst unschöne Überlagerungen entstehen können
323
- background-color: luxcommon.$lux-hover-color !important;
324
- border-radius: 0;
325
- }
326
- }
327
- }
328
-
329
- /*
330
- * Theming für LUX-List
331
- */
332
- lux-list lux-list-item lux-card {
333
- &.lux-list-item-selected {
334
- mat-card.mat-mdc-card.lux-card {
335
- @include luxfocus.lux-selected-mixin;
336
- background: unset;
337
- box-shadow: unset;
338
- border: 1px solid luxcommon.$app-border-color;
339
- }
340
- }
341
- &:not(.lux-list-item-selected) {
342
- mat-card[class~="lux-cursor"]:not([class*="mat-elevation-z"]) {
343
- &:hover {
344
- background: luxcommon.$lux-hover-color;
345
- border: 1px solid luxpalette.$lux-primary-color;
346
- background-color: #fff !important;
347
- }
348
- }
349
- }
350
- }
351
-
352
- lux-stepper {
353
- lux-stepper-vertical mat-step-header[aria-selected="true"] {
354
- @include luxfocus.lux-selected-mixin;
355
- background-image: none;
356
- background-color: $light-blue;
357
- border: none;
358
- box-shadow: none;
359
- }
360
-
361
- lux-stepper-horizontal mat-step-header[aria-selected="true"] {
362
- @include luxfocus.lux-selected-bottom-mixin;
363
- background-color: transparent;
364
- }
365
- mat-step-header,
366
- .lux-ignore-mat-step-icons mat-step-header {
367
- &:hover {
368
- @include luxfocus.lux-hovered-mixin;
369
- &[aria-selected="false"] {
370
- div.mat-step-icon.mat-step-icon-state-number,
371
- div.mat-step-icon.mat-step-icon-state-edit,
372
- .lux-stepper-normal-icon mat-icon {
373
- background-color: transparent;
374
- color: luxpalette.$lux-primary-color;
375
- border-color: luxcommon.$app-border-color;
376
- }
377
- div.mat-step-label lux-step-header {
378
- color: luxpalette.$lux-primary-color;
379
- }
380
- }
381
- &[aria-selected="true"] {
382
- div.mat-step-icon.mat-step-icon-state-number,
383
- div.mat-step-icon.mat-step-icon-state-edit,
384
- .lux-stepper-normal-icon mat-icon {
385
- background-color: luxpalette.$lux-primary-color;
386
- color: #fff;
387
- border-color: luxpalette.$lux-primary-color;
388
- }
389
- div.mat-step-label lux-step-header {
390
- color: luxpalette.$lux-primary-color;
391
- }
392
- }
393
- }
394
- }
395
- }
396
-
397
- /*
398
- * Theming für LUX-Tabs
399
- */
400
- lux-tabs,
401
- mat-card lux-tabs {
402
- mat-tab-group div[role="tab"]:not(.mat-mdc-tab-disabled) {
403
- &.mat-tab-label-active {
404
- background-color: luxcommon.$lux-hover-color;
405
- border-radius: luxcommon.$app-border-radius;
406
- }
407
-
408
- &:hover {
409
- background-color: luxcommon.$lux-hover-color;
410
- border-radius: luxcommon.$app-border-radius;
411
-
412
- &:not(.mdc-tab--active) .lux-tab-title,
413
- &:not(.mdc-tab--active) lux-icon {
414
- color: luxpalette.$lux-primary-color;
415
- }
416
- }
417
-
418
- &:hover .mdc-tab__ripple::before {
419
- background-color: luxcommon.$lux-hover-color;
420
- border-radius: luxcommon.$app-border-radius;
421
- }
422
- }
423
-
424
- div.lux-tab-title {
425
- font-family: Korb, "Source Code Pro", Helvetica, Arial, sans-serif;
426
- font-size: 1.375rem;
427
- font-weight: 700;
428
- }
429
- }
430
-
431
- /*
432
- * Mixin für den Datepicker-AC und Datetimepicker-AC
433
- */
434
- @mixin datepicker-content {
435
- .mat-calendar-content {
436
- padding: 0px 10px 10px 10px;
437
-
438
- th {
439
- font-size: 1.125rem;
440
- color: map.get(luxpalette.$lux-palette_primary, 500);
441
- }
442
-
443
- td.mat-calendar-body-cell-container {
444
- &:after {
445
- background-color: white;
446
- }
447
-
448
- &:hover > div {
449
- border-radius: 2px;
450
- background-color: map.get(luxpalette.$lux-palette_accent, 300) !important;
451
- color: map.get(luxpalette.$lux-palette_primary, 500);
452
- }
453
-
454
- .mat-calendar-body-cell-content.mat-focus-indicator {
455
- border-radius: 2px;
456
- font-size: 1.125rem;
457
- background-color: $light-blue;
458
- color: map.get(luxpalette.$lux-palette_primary, 500);
459
-
460
- &.mat-calendar-body-selected {
461
- background-color: map.get(luxpalette.$lux-palette_primary, 500);
462
- color: $light-blue;
463
- }
464
- }
465
- }
466
-
467
- // Ausblenden des zusätzlichen Monatslabels
468
- .mat-calendar-body-label:not(:last-of-type) {
469
- visibility: hidden;
470
- }
471
-
472
- .mat-calendar-body-label:last-of-type,
473
- th.mat-calendar-table-header-divider {
474
- display: none;
475
- }
476
- }
477
- }
478
-
479
- /*
480
- * Theming für Lux-Datepicker-Custom-Header
481
- * wird auch von den AC-Components genutzt
482
- */
483
- .lux-datepicker-custom-header-component {
484
- display: flex;
485
- align-items: center;
486
- justify-content: space-between;
487
- padding: 10px 10px 18px 10px;
488
-
489
- lux-button {
490
- &.lux-datepicker-prev-month button.lux-button.mat-mdc-button {
491
- padding: 0;
492
- min-width: 24px;
493
- }
494
-
495
- &.lux-datepicker-year button.lux-button.mat-mdc-button {
496
- font-size: 1.125rem;
497
- }
498
-
499
- &.lux-datepicker-next-month button.lux-button.mat-mdc-button {
500
- padding: 0;
501
- min-width: 24px;
502
- }
503
- }
504
- }
505
-
506
- /*
507
- * Theming für Lux-Datepicker-AC
508
- */
509
- .lux-datepicker-panel {
510
- .mat-calendar.mat-datepicker-content {
511
- min-height: 350px;
512
- }
513
- @include datepicker-content();
514
- }
515
-
516
- /*
517
- * Theming für Lux-Datetime-Picker-AC
518
- */
519
- .lux-datetime-overlay-content {
520
- .mat-calendar.lux-datetime-overlay-calendar {
521
- min-height: 340px;
522
- }
523
- @include datepicker-content();
524
- }
525
-
526
- /*
527
- * Theming for LUX-Filter-Form
528
- */
529
- lux-filter-form {
530
- lux-accordion {
531
- lux-menu {
532
- .lux-menu-trigger button.mat-mdc-button {
533
- height: 45px;
534
- }
535
- }
536
- .mat-expansion-panel-header.mat-expanded {
537
- height: 60px !important;
538
- }
539
- }
540
- lux-menu {
541
- .lux-filter-menu-trigger button:not([disabled]).mat-fab.lux-button-rounded:hover {
542
- background-color: color.adjust(luxcommon.$lux-hover-color, $lightness: -10%) !important;
543
- color: luxpalette.$lux-primary-color;
544
- }
545
- .lux-filter-menu-trigger button:not([disabled]).mat-fab.lux-button-rounded:focus-visible {
546
- background-color: transparent !important;
547
- }
548
- }
549
- }
550
-
551
- /*
552
- * Theming for LUX-Master-Detail-ac
553
- */
554
- .lux-master-detail-ac {
555
- .lux-master-header-container-ac lux-button.master-light-toggle {
556
- right: -23px;
557
- }
558
-
559
- .lux-detail-header-ac {
560
- mat-card.mat-mdc-card {
561
- @include luxelevations.lux-elevation-z0;
562
- }
563
- }
564
-
565
- .lux-master-ac-container {
566
- padding: 3px 0 3px 3px;
567
- &.lux-master-closed {
568
- flex: 1 1 30px !important;
569
- max-width: 30px !important;
570
- min-width: 30px !important;
571
- }
572
- lux-list {
573
- padding: 0 3px;
574
- }
575
- lux-master-header-ac {
576
- margin: 3px;
577
- }
578
- }
579
- }
580
-
581
- /**
582
- * Theming für Lux-Formcontrols-AC
583
- */
584
- lux-form-control-wrapper .lux-form-control-wrapper {
585
- .lux-form-control-label-authentic {
586
- margin: 0 0 4px 0;
587
- height: 15px;
588
- }
589
-
590
- .lux-form-control-misc-authentic {
591
- margin: 4px 0 0 0;
592
- min-height: 17px;
593
- mat-hint {
594
- color: luxpalette.$lux-primary-color;
595
- }
596
- }
597
-
598
- &.lux-dense-authentic {
599
- .lux-form-control-container-authentic {
600
- &.lux-no-input-row {
601
- padding: 0.25em 0em;
602
- }
603
- }
604
- }
605
-
606
- .lux-form-control-container-authentic {
607
- padding: 10px;
608
- line-height: 1;
609
- border-color: luxcommon.$form-border-color;
610
-
611
- .lux-input-row-authentic {
612
- min-height: unset;
613
- height: 18px;
614
- color: luxpalette.$lux-primary-color;
615
- }
616
-
617
- &.lux-no-input-row {
618
- font-size: luxcommon.$form-control-font-size;
619
- font-family: luxcommon.$app-font-family;
620
- padding: 8px 0;
621
- }
622
- }
623
-
624
- // Definitionen der einzelnen States der Form-Controls
625
- &:hover:not(.lux-form-control-disabled-authentic):not(.lux-focused-authentic):not(.lux-form-control-error-authentic) {
626
- .lux-form-control-container-authentic:not(.lux-no-input-row) {
627
- box-shadow: none;
628
- }
629
- }
630
- &.lux-focused-authentic {
631
- .lux-form-control-label-authentic > * {
632
- color: luxpalette.$lux-primary-color;
633
- }
634
- .lux-form-control-container-authentic:not(.lux-no-input-row) {
635
- box-shadow: 0 0 0 2px $dark-green, 0 0 4px 2px $dark-green !important;
636
- outline: 0;
637
- }
638
- }
639
-
640
- &.lux-form-control-error-authentic:not(.lux-form-control-disabled-authentic) {
641
- .lux-form-control-label-authentic > * {
642
- color: luxpalette.$lux-primary-color;
643
- }
644
- .lux-form-control-container-authentic:not(.lux-no-input-row) {
645
- border-color: luxpalette.$lux-warn-color;
646
- box-shadow: 0 0 0 2px luxpalette.$lux-warn-color, 0 0 4px 2px luxpalette.$lux-warn-color !important;
647
- }
648
- }
649
-
650
- &.lux-form-control-disabled-authentic {
651
- .lux-form-control-container-authentic,
652
- .lux-form-control-label-authentic,
653
- .lux-form-control-misc-authentic > * {
654
- color: luxcommon.$dark-disabled-text;
655
- }
656
-
657
- .lux-form-control-container-authentic:not(.lux-no-input-row) {
658
- border-style: dashed;
659
- border-color: luxcommon.$dark-disabled-text;
660
- .mat-input-element::placeholder {
661
- color: luxcommon.$dark-disabled-text;
662
- }
663
- }
664
- }
665
-
666
- &.lux-form-control-readonly-authentic,
667
- &.lux-form-control-disabled-authentic {
668
- pointer-events: none;
669
- }
670
- }
671
-
672
- /*
673
- * Theming für LUX-Checkbox-ac
674
- */
675
- lux-checkbox-ac {
676
- .mat-checkbox-inner-container {
677
- .mat-checkbox-frame {
678
- border-radius: 4px;
679
- border: 1px solid map.get(luxpalette.$lux-palette_primary, 500);
680
- }
681
-
682
- .mat-checkbox-background,
683
- .mat-checkbox-checkmark {
684
- border-radius: 4px;
685
- }
686
- }
687
- }
688
-
689
- /*
690
- * Theming für LUX-Radio-ac
691
- */
692
- lux-radio-ac {
693
- & lux-form-control-wrapper .lux-form-control-wrapper .lux-form-control-container-authentic.lux-no-input-row {
694
- height: auto;
695
- }
696
-
697
- .mat-radio-button {
698
- .mdc-label {
699
- line-height: normal;
700
- }
701
- .mat-radio-ripple {
702
- height: 20px; /*double of your required circle radius*/
703
- width: 20px; /*double of your required circle radius*/
704
- left: calc(50% - 10px); /*'10px'-same as your required circle radius*/
705
- top: calc(50% - 10px); /*'10px'-same as your required circle radius */
706
- }
707
- }
708
- }
709
-
710
- /*
711
- * Theming für LUX-datepicker-ac und LUX-datetimepicker-ac
712
- */
713
- lux-datepicker-ac,
714
- lux-datetimepicker-ac {
715
- mat-datepicker-toggle {
716
- height: 18px !important;
717
- width: 18px !important;
718
-
719
- .mdc-icon-button.mat-mdc-icon-button.mat-mdc-button-base {
720
- height: 18px !important;
721
- width: 18px !important;
722
- line-height: 1.5;
723
- font-size: inherit;
724
-
725
- lux-icon.lux-datepicker-toggle-icon,
726
- mat-icon.mat-icon {
727
- display: inline-flex;
728
- height: 18px !important;
729
- width: 18px !important;
730
- padding: 0px !important;
731
- }
732
-
733
- svg {
734
- height: 18px;
735
- width: 18px;
736
- }
737
-
738
- &:disabled {
739
- svg {
740
- color: luxcommon.$dark-disabled-text;
741
- }
742
- }
743
- }
744
-
745
- button:hover lux-icon.lux-datepicker-toggle-icon.lux-color-blue {
746
- color: map-get(luxpalette.$lux-palette_primary, 300);
747
- }
748
- }
749
- }
750
-
751
- .cdk-overlay-pane .mat-datepicker-content,
752
- .lux-datetimepicker-overlay .mat-mdc-card.lux-card {
753
- margin: 11px -6px;
754
- }
755
-
756
- /*
757
- * Theming für LUX-select-ac und LUX-lookup-combobox-ac
758
- */
759
- lux-select-ac,
760
- lux-lookup-combobox-ac {
761
- mat-select {
762
- height: 18px !important;
763
- }
764
- .mat-select-value {
765
- line-height: normal;
766
- }
767
- }
768
-
769
- .lux-select-panel-ac mat-option,
770
- .lux-select-panel-ac-multiple mat-option {
771
- &.mat-mdc-option:hover:not(.mdc-list-item--disabled),
772
- &.mat-mdc-option:focus-visible:not(.mdc-list-item--disabled),
773
- &.mat-mdc-option.mat-mdc-option-active:not(.mdc-list-item--disabled),
774
- &.mdc-list-item--selected:not(.mdc-list-item--disabled) {
775
- background-color: luxcommon.$lux-hover-color;
776
-
777
- .mdc-list-item__primary-text {
778
- color: luxpalette.$lux-primary-color;
779
- }
780
-
781
- .mat-pseudo-checkbox-full {
782
- background-color: luxcommon.$lux-hover-color;
783
- border-color: luxpalette.$lux-primary-color;
784
- &.mat-pseudo-checkbox-checked {
785
- background-color: luxpalette.$lux-primary-color;
786
- &::after {
787
- color: #ffffff;
788
- }
789
- }
790
- }
791
-
792
- .mat-pseudo-checkbox-minimal {
793
- &.mat-pseudo-checkbox-checked {
794
- &::after {
795
- color: luxpalette.$lux-primary-color;
796
- }
797
- }
798
- }
799
- }
800
-
801
- &.mat-mdc-option:not(.mdc-list-item--disabled) {
802
- .mdc-list-item__primary-text {
803
- color: luxpalette.$lux-primary-color;
804
- }
805
-
806
- .mat-pseudo-checkbox-full {
807
- border-color: luxpalette.$lux-primary-color;
808
- }
809
- }
810
- }
811
-
812
- /*
813
- * Eineheitliche Elevation für die Components auf Cdk-Overlay-Pane
814
- * wird noch für "Green" benötigt
815
- */
816
- .cdk-overlay-pane {
817
- & > .mat-mdc-autocomplete-panel:not([class*="mat-elevation-z"]),
818
- .mat-datepicker-content,
819
- .mat-mdc-select-panel:not([class*="mat-elevation-z"]),
820
- .mat-mdc-menu-panel {
821
- @include luxelevations.lux-elevation-z4;
822
- }
823
- }
824
-
825
- /*
826
- * Theming für LUX-file-input-ac
827
- */
828
- lux-file-input-ac {
829
- .lux-menu-extended {
830
- gap: 4px;
831
- lux-button button.lux-button lux-icon.lux-button-icon:not(.lux-button-icon-round) mat-icon.lux-icon {
832
- height: 0.875rem !important;
833
- width: 0.875rem !important;
834
- font-size: 0.875rem;
835
- }
836
- }
837
- }
838
-
839
- /*
840
- * Theming für LUX-file-list
841
- */
842
- lux-file-list {
843
- .lux-menu-extended {
844
- gap: 4px;
845
- .lux-menu-item,
846
- .lux-menu-trigger {
847
- lux-icon mat-icon.lux-icon {
848
- font-size: 0.875rem !important;
849
- }
850
- }
851
- }
852
- }
853
-
854
- /*
855
- * Theming für LUX-textarea-ac
856
- */
857
- lux-textarea-ac {
858
- textarea {
859
- min-height: 18px;
860
- line-height: normal;
861
- }
862
- }
863
-
864
- lux-checkbox-container-ac {
865
- .lux-checkbox-container {
866
- row-gap: 6px;
867
- }
868
- .lux-label-container {
869
- margin: 0 0 0.25em 0;
870
- }
871
- lux-checkbox-ac lux-form-control-wrapper .lux-form-control-wrapper .lux-form-control-container-authentic.lux-no-input-row {
872
- height: auto;
873
- }
874
- }
875
-
876
- /*
877
- * Theming für LUX-Dialog
878
- */
879
- lux-dialog-structure {
880
- // x-Button oben rechts im Dialog-Fenster
881
- .lux-icon-close {
882
- &:hover {
883
- @include luxfocus.lux-hovered-mixin;
884
- }
885
-
886
- &:focus-visible {
887
- @include luxfocus.focus-dark-mixin;
888
- border-radius: 4px;
889
- }
890
- }
891
- }
892
-
893
- lux-dialog-structure .lux-icon-close:hover mat-icon,
894
- lux-dialog-structure .lux-icon-close:hover mat-icon.mat-icon-no-color,
895
- lux-dialog-structure .lux-icon-close:hover lux-icon mat-icon {
896
- color: luxpalette.$lux-primary-color;
897
- }
898
-
899
- /*
900
- * Theming für LUX-Autocomplete-ac
901
- */
902
- .lux-autocomplete-panel-ac mat-option {
903
- &.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled),
904
- &.mat-mdc-option:hover:not(.mdc-list-item--disabled),
905
- &.mat-mdc-option:focus-visible:not(.mdc-list-item--disabled),
906
- &.mat-mdc-option.mat-mdc-option-active:not(.mdc-list-item--disabled) {
907
- background-color: luxcommon.$lux-hover-color;
908
-
909
- .mdc-list-item__primary-text {
910
- color: luxpalette.$lux-primary-color;
911
- }
912
- }
913
-
914
- &.mat-mdc-option:not(.mdc-list-item--disabled) {
915
- color: luxpalette.$lux-primary-color;
916
- }
917
- }
918
-
919
- /*
920
- * Theming für LUX-Message-Box
921
- */
922
- lux-message-box {
923
- .lux-message-box-content {
924
- margin: var(--lux-theme-outline-width);
925
-
926
- & .lux-message-container {
927
- &.lux-bg-color-white {
928
- border-color: transparent;
929
- & button.mat-fab.lux-button-rounded.lux-icon-button:not([disabled]) {
930
- color: luxpalette.$lux-primary-color;
931
- &:hover {
932
- color: luxpalette.$lux-primary-color;
933
- }
934
- }
935
- }
936
- }
937
- }
938
- &.mat-elevation-z4 {
939
- @include luxelevations.lux-elevation-z4();
940
- }
941
- }
942
-
943
- /*
944
- * Theming für Lux-Breadcrumb
945
- */
946
-
947
- lux-breadcrumb {
948
- .lux-breadcrumb-item {
949
- :focus-visible {
950
- box-shadow: 0 0 0 2px $dark-green, 0 0 4px 2px $dark-green !important;
951
- outline: 0 !important;
952
- border-radius: 2px;
953
- }
954
-
955
- :hover {
956
- color: $dark-green;
957
- }
958
-
959
- lux-icon {
960
- cursor: default;
961
- :hover {
962
- color: var(--lux-theme-primary-color);
963
- cursor: default;
964
- }
965
- }
966
- }
967
- }
968
-
969
- /*
970
- * Theming for LUX-Accordion
971
- */
972
- lux-accordion {
973
- .mat-accordion.lux-primary {
974
- mat-expansion-panel-header.mat-expansion-panel-header,
975
- mat-expansion-panel-header.mat-expansion-panel-header.mat-expanded {
976
- background-color: white;
977
- }
978
- }
979
-
980
- .mat-accordion.lux-accent {
981
- mat-expansion-panel-header.mat-expansion-panel-header,
982
- mat-expansion-panel-header.mat-expansion-panel-header.mat-expanded {
983
- background-color: map.get(luxpalette.$lux-palette-accent, 100);
984
- }
985
- }
986
-
987
- .mat-accordion.lux-warn {
988
- mat-expansion-panel-header.mat-expansion-panel-header,
989
- mat-expansion-panel-header.mat-expansion-panel-header.mat-expanded {
990
- background-color: map.get(luxpalette.$lux-palette-warn, 50);
991
- }
992
- }
993
-
994
- .mat-accordion.lux-neutral {
995
- mat-expansion-panel-header.mat-expansion-panel-header,
996
- mat-expansion-panel-header.mat-expansion-panel-header.mat-expanded {
997
- background-color: map.get(luxpalette.$lux-palette-primary, 100);
998
- }
999
- }
1000
- }
1001
-
1002
- lux-panel-content lux-card mat-card {
1003
- .lux-card-title {
1004
- line-height: normal;
1005
- }
1006
- }
1007
-
1008
- /*
1009
- * Theming für LUX-File-Upload
1010
- */
1011
- $fileUploadDisabledColor: #{luxcommon.$dark-primary-text}4d;
1012
- $fileUploadHoverBold: 700;
1013
- lux-file-upload {
1014
- .lux-file-upload-container {
1015
- .lux-file-upload-drop-container {
1016
- .lux-file-upload-drop-label-container {
1017
- padding: 24px 48px;
1018
- }
1019
- }
1020
- }
1021
-
1022
- .lux-file-upload-error-container {
1023
- margin-top: 16px;
1024
- margin-bottom: 12px;
1025
- }
1026
-
1027
- // Workaround-Start für die fette Schrift beim Hover-Effekt
1028
- // ========================================================
1029
- // Größenberechnung des Containers über ein unsichtbares
1030
- // ::after-Element mit fetter Schrift, so dass beim
1031
- // Wechsel zum Hover-Effekt kein Sprung entsteht.
1032
- .lux-file-upload-label {
1033
- &::after {
1034
- content: attr(data-label);
1035
- font-weight: 700;
1036
- visibility: hidden;
1037
- height: 0px;
1038
- overflow: hidden;
1039
- display: block;
1040
- }
1041
- }
1042
-
1043
- .lux-file-upload-label-container {
1044
- line-height: 20px;
1045
- }
1046
- // Workaround-Ende
1047
-
1048
- .lux-file-upload-label-text lux-link-plain .link-wrapper .lux-link-plain-text {
1049
- color: luxpalette.$lux-primary-color;
1050
- text-decoration: underline;
1051
- }
1052
-
1053
- .lux-file-upload-view-container {
1054
- margin-top: 12px;
1055
- }
1056
-
1057
- .lux-file-upload-view-item-container {
1058
- background-color: var(--lux-theme-selected-bg-color);
1059
- border: 1px solid var(--lux-theme-accent-500);
1060
- border-radius: 4px;
1061
- margin-bottom: 12px;
1062
- padding: 18px 15px 18px 26px;
1063
-
1064
- .lux-file-upload-view-item {
1065
- .lux-file-upload-view-item-icon {
1066
- display: flex;
1067
- flex: 0 0 30px;
1068
- }
1069
-
1070
- lux-button.lux-file-upload-view-item-button {
1071
- button.mat-mdc-button {
1072
- border-radius: 8px;
1073
- min-width: 40px;
1074
- min-height: 30px;
1075
-
1076
- .lux-button-icon mat-icon.mat-icon.lux-icon {
1077
- width: 24px !important;
1078
- height: 24px !important;
1079
- }
1080
- }
1081
- }
1082
- }
1083
- }
1084
-
1085
- .lux-file-upload-drop-container:not(.lux-file-upload-drop-container-disabled):not(.lux-file-upload-drop-container-readonly) {
1086
- &:hover {
1087
- font-weight: $fileUploadHoverBold;
1088
- }
1089
-
1090
- :not(:disabled) .lux-file-upload-drop-label-container {
1091
- &:hover {
1092
- font-weight: $fileUploadHoverBold;
1093
- }
1094
- }
1095
- }
1096
-
1097
- &.lux-file-highlight,
1098
- .lux-file-upload-loading {
1099
- .lux-file-upload-drop-container,
1100
- .lux-file-upload-drop-label-container {
1101
- font-weight: $fileUploadHoverBold;
1102
- }
1103
- }
1104
-
1105
- .lux-file-upload-container {
1106
- &.lux-file-upload-container-disabled {
1107
- .lux-file-upload-drop-container {
1108
- color: $fileUploadDisabledColor;
1109
- border: 1px solid $fileUploadDisabledColor;
1110
- }
1111
-
1112
- .lux-file-upload-view-item-container {
1113
- color: $fileUploadDisabledColor;
1114
- }
1115
-
1116
- .lux-file-upload-view-item-container {
1117
- border: 1px solid $fileUploadDisabledColor;
1118
- }
1119
-
1120
- .lux-hint {
1121
- color: $fileUploadDisabledColor;
1122
- }
1123
- }
1124
- }
1125
- }