@odx/ui 1.0.0-rc.22 → 1.0.0-rc.24

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 (40) hide show
  1. package/README.md +2 -1
  2. package/ag-grid-theme.css +1 -0
  3. package/core-theme.css +1 -1
  4. package/package.json +4 -1
  5. package/scss/3rdparty/ag-grid/theme.scss +220 -0
  6. package/scss/abstract/_typography.scss +9 -5
  7. package/scss/abstract/_utils.scss +7 -0
  8. package/scss/assets/icons.css.hbs +23 -0
  9. package/scss/components/area-header.component.scss +6 -1
  10. package/scss/components/badge.component.scss +2 -2
  11. package/scss/components/bar.component.scss +8 -1
  12. package/scss/components/breadcrumbs.component.scss +4 -0
  13. package/scss/components/button-group.component.scss +1 -1
  14. package/scss/components/button.component.scss +1 -1
  15. package/scss/components/card.component.scss +2 -0
  16. package/scss/components/form-field.component.scss +1 -1
  17. package/scss/components/icon.component.scss +4 -8
  18. package/scss/components/link.component.scss +8 -0
  19. package/scss/components/loading-spinner.component.scss +12 -1
  20. package/scss/components/logo.component.scss +6 -1
  21. package/scss/components/main-menu-button.component.scss +4 -0
  22. package/scss/components/main-menu-item.component.scss +10 -1
  23. package/scss/components/main-menu.component.scss +7 -1
  24. package/scss/components/mainfilter-group.component.scss +61 -0
  25. package/scss/components/modal.component.scss +4 -2
  26. package/scss/components/navigation-back.component.scss +23 -0
  27. package/scss/components/select.component.scss +1 -1
  28. package/scss/components/toast.component.scss +1 -1
  29. package/scss/components/tooltip.component.scss +2 -1
  30. package/scss/core.scss +6 -0
  31. package/scss/skeleton/_skeleton.scss +49 -0
  32. package/scss/variables/_color-palettes-dark.scss +53 -0
  33. package/scss/variables/_color-palettes.scss +1 -1
  34. package/scss/variables/_colors-dark.scss +43 -0
  35. package/scss/variables/_colors.scss +3 -2
  36. package/scss/variables/_controls.scss +1 -1
  37. package/scss/variables/_index.scss +2 -0
  38. package/scss/variables/_visuals.scss +2 -1
  39. package/core-icons.css +0 -43
  40. package/core-icons.woff2 +0 -0
package/package.json CHANGED
@@ -1,8 +1,11 @@
1
1
  {
2
2
  "name": "@odx/ui",
3
- "version": "1.0.0-rc.22",
3
+ "version": "1.0.0-rc.24",
4
4
  "author": "Drägerwerk AG & Co.KGaA",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
+ "peerDependencies": {
7
+ "@odx/icons": "*"
8
+ },
6
9
  "files": [
7
10
  "*.css",
8
11
  "*.woff2",
@@ -0,0 +1,220 @@
1
+ @use '@odx/icons/core/core-utils' as icons;
2
+ @use '../../abstract/dimensions';
3
+ @use '../../abstract/typography';
4
+
5
+ .ag-theme-odx {
6
+ --ag-border-color: var(--odx-c-seperator);
7
+ --ag-foreground-color: var(--odx-c-text);
8
+ --ag-secondary-foreground-color: var(--odx-c-text);
9
+ --ag-disabled-foreground-color: vara(--odx-c-text-disabled);
10
+
11
+ --ag-background-color: var(--odx-c-background-content);
12
+
13
+ --ag-font-family: 'Pangea';
14
+ --ag-font-size: var(--odx-typography-base-size);
15
+
16
+ --ag-icon-size: #{typography.get-font-size(1)};
17
+ --ag-icon-font-family: #{icons.get-font-family()};
18
+ --ag-icon-font-code-aggregation: '#{icons.get-icon-glyph(placeholder)}';
19
+ --ag-icon-font-code-arrows: '#{icons.get-icon-glyph(placeholder)}';
20
+ --ag-icon-font-code-asc: '#{icons.get-icon-glyph(ascending)}';
21
+ --ag-icon-font-code-cancel: '#{icons.get-icon-glyph(close)}';
22
+ --ag-icon-font-code-chart: '#{icons.get-icon-glyph(placeholder)}';
23
+ --ag-icon-font-code-checkbox-checked: '#{icons.get-icon-glyph(placeholder)}';
24
+ --ag-icon-font-code-checkbox-indeterminate: '#{icons.get-icon-glyph(placeholder)}';
25
+ --ag-icon-font-code-checkbox-unchecked: '#{icons.get-icon-glyph(placeholder)}';
26
+ --ag-icon-font-code-color-picker: '#{icons.get-icon-glyph(placeholder)}';
27
+ --ag-icon-font-code-columns: '#{icons.get-icon-glyph(placeholder)}';
28
+ --ag-icon-font-code-contracted: '#{icons.get-icon-glyph(chevron-right)}';
29
+ --ag-icon-font-code-copy: '#{icons.get-icon-glyph(copy-content)}';
30
+ --ag-icon-font-code-cut: '#{icons.get-icon-glyph(cut)}';
31
+ --ag-icon-font-code-cross: '#{icons.get-icon-glyph(close)}';
32
+ --ag-icon-font-code-csv: '#{icons.get-icon-glyph(file)}';
33
+ --ag-icon-font-code-desc: '#{icons.get-icon-glyph(descending)}';
34
+ --ag-icon-font-code-excel: '#{icons.get-icon-glyph(file-excel)}';
35
+ --ag-icon-font-code-expanded: '#{icons.get-icon-glyph(chevron-left)}';
36
+ --ag-icon-font-code-eye-slash: '#{icons.get-icon-glyph(placeholder)}';
37
+ --ag-icon-font-code-eye: '#{icons.get-icon-glyph(placeholder)}';
38
+ --ag-icon-font-code-filter: '#{icons.get-icon-glyph(filter)}';
39
+ --ag-icon-font-code-first: '#{icons.get-icon-glyph(placeholder)}';
40
+ --ag-icon-font-code-grip: '#{icons.get-icon-glyph(placeholder)}';
41
+ --ag-icon-font-code-group: '#{icons.get-icon-glyph(placeholder)}';
42
+ --ag-icon-font-code-last: '#{icons.get-icon-glyph(placeholder)}';
43
+ --ag-icon-font-code-left: '#{icons.get-icon-glyph(arrow-left)}';
44
+ --ag-icon-font-code-linked: '#{icons.get-icon-glyph(placeholder)}';
45
+ --ag-icon-font-code-loading: '#{icons.get-icon-glyph(placeholder)}';
46
+ --ag-icon-font-code-maximize: '#{icons.get-icon-glyph(maximize)}';
47
+ --ag-icon-font-code-menu: '#{icons.get-icon-glyph(menu)}';
48
+ --ag-icon-font-code-minimize: '#{icons.get-icon-glyph(minimize)}';
49
+ --ag-icon-font-code-next: '#{icons.get-icon-glyph(chevron-right)}';
50
+ --ag-icon-font-code-none: '#{icons.get-icon-glyph(placeholder)}';
51
+ --ag-icon-font-code-not-allowed: '#{icons.get-icon-glyph(blocked)}';
52
+ --ag-icon-font-code-paste: '#{icons.get-icon-glyph(placeholder)}';
53
+ --ag-icon-font-code-pin: '#{icons.get-icon-glyph(pin)}';
54
+ --ag-icon-font-code-pivot: '#{icons.get-icon-glyph(placeholder)}';
55
+ --ag-icon-font-code-previous: '#{icons.get-icon-glyph(chevron-left)}';
56
+ --ag-icon-font-code-radio-button-off: '#{icons.get-icon-glyph(placeholder)}';
57
+ --ag-icon-font-code-radio-button-on: '#{icons.get-icon-glyph(placeholder)}';
58
+ --ag-icon-font-code-right: '#{icons.get-icon-glyph(arrow-right)}';
59
+ --ag-icon-font-code-save: '#{icons.get-icon-glyph(save)}';
60
+ --ag-icon-font-code-small-down: '#{icons.get-icon-glyph(chevron-down)}';
61
+ --ag-icon-font-code-small-left: '#{icons.get-icon-glyph(chevron-left)}';
62
+ --ag-icon-font-code-small-right: '#{icons.get-icon-glyph(chevron-right)}';
63
+ --ag-icon-font-code-small-up: '#{icons.get-icon-glyph(chevron-up)}';
64
+ --ag-icon-font-code-tick: '#{icons.get-icon-glyph(check)}';
65
+ --ag-icon-font-code-tree-closed: '#{icons.get-icon-glyph(chevron-right)}';
66
+ --ag-icon-font-code-tree-indeterminate: '#{icons.get-icon-glyph(minus)}';
67
+ --ag-icon-font-code-tree-open: '#{icons.get-icon-glyph(chevron-down)}';
68
+ --ag-icon-font-code-unlinked: '#{icons.get-icon-glyph(placeholder)}';
69
+
70
+ --ag-grid-size: #{dimensions.get-size(0.25)};
71
+ --ag-widget-vertical-spacing: #{dimensions.get-size(0.5)};
72
+
73
+ --ag-header-height: #{dimensions.get-size(2)};
74
+ --ag-row-height: #{dimensions.get-size(2)};
75
+ --ag-table-line-height: #{dimensions.get-size(1.5)};
76
+ --ag-list-item-height: #{dimensions.get-size(1.5)};
77
+
78
+ input[type='text'] {
79
+ background: var(--gray-100);
80
+ border: var(--ag-borders-critical) var(--gray100);
81
+ border-radius: var(--odx-v-border-radius-controls);
82
+ font-weight: var(--odx-typography-font-weight-normal);
83
+ letter-spacing: var(--odx-typography-font-weight-medium-letter-spacing);
84
+ line-height: var(--ag-table-line-height);
85
+ padding-left: calc(var(--odx-vertical-rythm-base-size) * 0.3334);
86
+ padding-right: calc(var(--odx-vertical-rythm-base-size) * 0.3334);
87
+ vertical-align: middle;
88
+
89
+ &::placeholder {
90
+ color: var(--odx-c-text);
91
+ opacity: 0.65;
92
+ }
93
+ }
94
+
95
+ .ag-standard-button {
96
+ background-color: var(--odx-c-primary);
97
+ border-radius: var(--odx-v-border-radius-controls);
98
+ color: var(--odx-c-primary-text);
99
+ height: calc(var(--odx-vertical-rythm-base-size) * 1.5);
100
+ min-width: calc(var(--odx-vertical-rythm-base-size) * 3);
101
+ outline-offset: calc(-1 * var(--odx-v-outline-width-bold));
102
+ outline-width: var(--odx-v-outline-width-bold);
103
+ transition: all var(--odx-v-transition-duration) 0ms var(--odx-v-transition-easing-fn);
104
+ transition-property: background-color, color, outline;
105
+ }
106
+
107
+ .ag-header {
108
+ border-bottom: var(--ag-borders-critical) var(--gray-700);
109
+
110
+ &-row:not(:first-child) {
111
+ .ag-header-cell,
112
+ .ag-header-group-cell.ag-header-group-cell-with-group {
113
+ border: none;
114
+ }
115
+ }
116
+
117
+ .ag-cell-label-container {
118
+ width: fit-content;
119
+ }
120
+
121
+ .ag-floating-filter {
122
+ .ag-filter-select {
123
+ .ag-picker-field-wrapper {
124
+ height: calc(var(--odx-vertical-rythm-base-size) * 1.5);
125
+ }
126
+ }
127
+
128
+ input[type='text']:disabled {
129
+ color: var(--odx-c-text);
130
+ font-weight: var(--odx-typography-font-weight-medium);
131
+ padding: 0;
132
+ }
133
+ }
134
+
135
+ .ag-header-cell-text {
136
+ font-weight: var(--odx-typography-font-weight-medium);
137
+ }
138
+
139
+ .ag-header-cell-label {
140
+ padding-right: calc(var(--odx-vertical-rythm-base-size) * 0.25);
141
+ }
142
+
143
+ .ag-header-icon {
144
+ &.ag-header-cell-menu-button {
145
+ height: calc(var(--odx-vertical-rythm-base-size) * 0.667);
146
+ width: calc(var(--odx-vertical-rythm-base-size) * 0.667);
147
+ }
148
+ }
149
+ }
150
+
151
+ &.ag-popup {
152
+ [type='text']:focus {
153
+ border-color: var(--ag-input-border-color);
154
+ border-radius: var(--odx-v-border-radius);
155
+ box-shadow: unset;
156
+ }
157
+ }
158
+
159
+ .ag-radio-button-input-wrapper {
160
+ align-items: center;
161
+ background-color: var(--odx-control-background-color);
162
+ border-radius: 50%;
163
+ display: flex;
164
+ flex: 0 0 auto;
165
+ height: calc(var(--odx-vertical-rythm-base-size) * 0.8334);
166
+ justify-content: center;
167
+ margin-bottom: calc(var(--odx-vertical-rythm-base-size) * 0.0834);
168
+ margin-top: calc(var(--odx-vertical-rythm-base-size) * 0.0834);
169
+ outline: var(--odx-v-outline-width) solid transparent;
170
+ outline-color: var(--odx-control-outline-color);
171
+ outline-offset: calc(-1 * var(--odx-v-outline-width));
172
+ padding: 1px;
173
+ transition: all var(--odx-v-transition-duration) 0ms var(--odx-v-transition-easing-fn);
174
+ transition-property: background-color, color, outline-color;
175
+ width: calc(var(--odx-vertical-rythm-base-size) * 0.8334);
176
+
177
+ &:hover {
178
+ background-color: var(--odx-control-background-color-hover);
179
+ outline-color: var(--odx-control-outline-color-hover);
180
+ }
181
+
182
+ &.ag-checked {
183
+ background-color: var(--odx-control-background-color-selected);
184
+ color: var(--odx-control-color-selected);
185
+ opacity: 1;
186
+ outline-color: var(--odx-control-outline-color-selected);
187
+
188
+ &::after {
189
+ background-color: var(--odx-control-color-selected);
190
+ border-radius: 50%;
191
+ content: '';
192
+ height: calc(var(--odx-vertical-rythm-base-size) * 0.1667);
193
+ left: unset;
194
+ margin-bottom: calc(var(--odx-vertical-rythm-base-size) * 0);
195
+ margin-top: calc(var(--odx-vertical-rythm-base-size) * 0);
196
+ top: unset;
197
+ transform: scale(1);
198
+ width: calc(var(--odx-vertical-rythm-base-size) * 0.1667);
199
+ }
200
+ }
201
+ }
202
+
203
+ .ag-root-wrapper {
204
+ border: none;
205
+ }
206
+
207
+ .ag-select {
208
+ .ag-picker-field-display {
209
+ color: var(--odx-c-text);
210
+ }
211
+
212
+ .ag-picker-field-icon {
213
+ padding-right: calc(var(--odx-vertical-rythm-base-size) * 0.5);
214
+ }
215
+ }
216
+
217
+ .ag-select-list {
218
+ color: var(--odx-c-text);
219
+ }
220
+ }
@@ -1,16 +1,20 @@
1
1
  @use 'sass:math';
2
2
  @use 'utils';
3
3
 
4
+ @function get-font-size($size: 1) {
5
+ @if $size < 0 {
6
+ @return calc(var(--odx-typography-base-size) * utils.css-pow(var(--odx-typography-negative-font-scaling-factor), $size));
7
+ } @else {
8
+ @return calc(var(--odx-typography-base-size) * utils.css-pow(var(--odx-typography-positive-font-scaling-factor), $size));
9
+ }
10
+ }
11
+
4
12
  @mixin font-size($size: 1) {
5
13
  @if math.round($size) != $size {
6
14
  @error '$size must me an integer';
7
15
  }
8
16
 
9
- @if $size < 0 {
10
- font-size: calc(var(--odx-typography-base-size) * utils.css-pow(var(--odx-typography-negative-font-scaling-factor), $size));
11
- } @else {
12
- font-size: calc(var(--odx-typography-base-size) * utils.css-pow(var(--odx-typography-positive-font-scaling-factor), $size));
13
- }
17
+ font-size: get-font-size($size);
14
18
  }
15
19
 
16
20
  @mixin font-weight($value: normal) {
@@ -122,3 +122,10 @@
122
122
  pointer-events: none;
123
123
  user-select: none;
124
124
  }
125
+
126
+ @mixin dark-theme-selector() {
127
+ &[odxTheme='dark'],
128
+ &.odx-theme-dark {
129
+ @content;
130
+ }
131
+ }
@@ -0,0 +1,23 @@
1
+ @font-face {
2
+ font-display: block;
3
+ font-family: "{{ name }}";
4
+ src: {{{ fontSrc }}};
5
+ }
6
+
7
+ .{{prefix}}::before,
8
+ [class^="{{prefix}}-"]::before,
9
+ [class*=" {{prefix}}-"]::before {
10
+ font-family: {{ name }} !important;
11
+ font-style: normal;
12
+ font-weight: normal !important;
13
+ font-variant: normal;
14
+ text-transform: none;
15
+ line-height: 1;
16
+ vertical-align: top;
17
+ -webkit-font-smoothing: antialiased;
18
+ -moz-osx-font-smoothing: grayscale;
19
+ }
20
+
21
+ {{# each codepoints }}
22
+ .{{ ../prefix }}-{{ @key }}::before { content: "\\{{ codepoint this }}"; }
23
+ {{/ each }}
@@ -6,7 +6,7 @@
6
6
  @use 'avatar.component';
7
7
  @use '../layout/typography' as *;
8
8
 
9
- :root {
9
+ body {
10
10
  --odx-area-header-title-color: var(--odx-c-headline);
11
11
  --odx-area-header-subtitle-color: var(--odx-c-headline);
12
12
  }
@@ -22,6 +22,11 @@
22
22
  &__container {
23
23
  column-gap: dimensions.get-size(math.div(20, 24));
24
24
  display: flex;
25
+
26
+ .odx-navigation-back {
27
+ @include dimensions.margin(-0.75, right);
28
+ @include dimensions.margin(math.div(5, 24), top);
29
+ }
25
30
  }
26
31
 
27
32
  * {
@@ -3,7 +3,7 @@
3
3
  @use '../abstract/utils';
4
4
  @use '../abstract/typography';
5
5
 
6
- :root {
6
+ body {
7
7
  --odx-badge-contrast-color: var(--odx-c-background-content);
8
8
  }
9
9
 
@@ -21,7 +21,7 @@
21
21
  min-width: $badge-size;
22
22
  outline: 1px solid transparent;
23
23
  vertical-align: middle;
24
- z-index: 9999;
24
+ z-index: var(--odx-v-layer-1);
25
25
 
26
26
  &,
27
27
  &--highlight {
@@ -5,12 +5,19 @@
5
5
  @use '../abstract/motion';
6
6
  @use './dropdown.component' as dropdown;
7
7
 
8
- :root {
8
+ body {
9
9
  --odx-bar-background-color: var(--cyan-500);
10
10
  --odx-bar-background-color-hover: var(--cyan-600);
11
11
  --odx-bar-background-color-active: var(--cyan-700);
12
12
  --odx-bar-text-color: var(--white);
13
13
  --odx-bar-text-color-disabled: var(--cyan-700);
14
+
15
+ @include utils.dark-theme-selector() {
16
+ --odx-bar-background-color-hover: var(--cyan-400);
17
+ --odx-bar-background-color-active: var(--cyan-300);
18
+ --odx-bar-text-color: var(--black);
19
+ --odx-bar-text-color-disabled: var(--cyan-200);
20
+ }
14
21
  }
15
22
 
16
23
  .odx-bar {
@@ -17,6 +17,10 @@
17
17
 
18
18
  color: var(--odx-c-text);
19
19
  }
20
+
21
+ &:visited {
22
+ color: var(--odx-c-link);
23
+ }
20
24
  }
21
25
 
22
26
  .odx-icon {
@@ -34,7 +34,7 @@
34
34
  }
35
35
  }
36
36
 
37
- &:not(:first-child, :last-child) {
37
+ &:not(:first-of-type, :last-of-type) {
38
38
  border-radius: 0;
39
39
  }
40
40
  }
@@ -66,7 +66,7 @@
66
66
  }
67
67
 
68
68
  &--highlight:focus-visible {
69
- outline-color: var(--blue-400);
69
+ outline-color: var(--odx-c-focus-outline-dark);
70
70
  }
71
71
 
72
72
  @each $variant in $variants {
@@ -134,6 +134,8 @@
134
134
  }
135
135
 
136
136
  &__footer {
137
+ @include dimensions.padding-x(0.5);
138
+
137
139
  display: flex;
138
140
  gap: dimensions.get-size(math.div(12, 24));
139
141
  justify-content: flex-end;
@@ -8,7 +8,7 @@ $form-field-label-height: math.div(20, 24);
8
8
  $form-field-hint-height: math.div(16, 24);
9
9
  $form-field-inner-padding: math.div(8, 24);
10
10
 
11
- :root {
11
+ body {
12
12
  --odx-form-field-hint-color: var(--gray-500);
13
13
  }
14
14
 
@@ -8,12 +8,8 @@ $icon-sizes: (small math.div(16, 24) 1, large math.div(32, 24) 2, xlarge math.di
8
8
  @include dimensions.container(1);
9
9
  @include utils.center-content(true);
10
10
 
11
- direction: ltr;
11
+ flex: 0 0 auto;
12
12
  font-size: dimensions.get-size(1);
13
- text-rendering: auto;
14
- text-transform: none;
15
- user-select: none;
16
- white-space: nowrap;
17
13
 
18
14
  @each $size, $size_factor, $factor in $icon-sizes {
19
15
  &--#{$size} {
@@ -27,9 +23,9 @@ $icon-sizes: (small math.div(16, 24) 1, large math.div(32, 24) 2, xlarge math.di
27
23
  @include dimensions.margin-y(0);
28
24
 
29
25
  font-size: inherit;
30
- height: auto;
26
+ height: 0.8em;
31
27
  line-height: inherit;
32
- vertical-align: -0.15em;
33
- width: auto;
28
+ vertical-align: super;
29
+ width: 0.8em;
34
30
  }
35
31
  }
@@ -1,6 +1,14 @@
1
1
  @use '../abstract/motion';
2
2
  @use '../abstract/utils';
3
3
 
4
+ body {
5
+ @include utils.dark-theme-selector() {
6
+ --odx-c-link: var(--cyan-700);
7
+ --odx-c-link-hover: var(--cyan-800);
8
+ --odx-c-link-active: var(--cyan-900);
9
+ }
10
+ }
11
+
4
12
  .odx-link {
5
13
  @include motion.transition(color background-color outline);
6
14
  @include utils.interactive();
@@ -2,6 +2,17 @@
2
2
  @use '../abstract/motion';
3
3
  @use '../abstract/utils';
4
4
 
5
+ body {
6
+ --odx-loading-spinner-track-stroke-color: var(--blue-700-15);
7
+
8
+ @include utils.dark-theme-selector() {
9
+ .odx-button {
10
+ --odx-loading-spinner-track-stroke-color: var(--blue-700-15);
11
+ }
12
+ --odx-loading-spinner-track-stroke-color: var(--gray-200);
13
+ }
14
+ }
15
+
5
16
  .odx-loading-spinner {
6
17
  $root: &;
7
18
 
@@ -35,7 +46,7 @@
35
46
  z-index: var(--odx-v-layer-3);
36
47
 
37
48
  &__track {
38
- stroke: var(--blue-700-15);
49
+ stroke: var(--odx-loading-spinner-track-stroke-color);
39
50
  }
40
51
  }
41
52
 
@@ -1,8 +1,13 @@
1
1
  @use '../abstract/dimensions';
2
+ @use '../abstract/utils';
2
3
 
3
- :root {
4
+ body {
4
5
  --odx-logo-color: var(--odx-c-primary);
5
6
  --odx-logo-color-inverse: var(--odx-c-text-inverse);
7
+
8
+ @include utils.dark-theme-selector() {
9
+ --odx-logo-color: var(--odx-c-text-inverse);
10
+ }
6
11
  }
7
12
 
8
13
  .odx-logo {
@@ -4,4 +4,8 @@
4
4
  @extend .odx-button--ghost;
5
5
 
6
6
  color: inherit;
7
+
8
+ &:hover {
9
+ color: inherit;
10
+ }
7
11
  }
@@ -4,12 +4,17 @@
4
4
  @use '../abstract/utils';
5
5
  @use '../abstract/typography';
6
6
 
7
- :root {
7
+ body {
8
8
  --odx-main-menu-item-background-color: transparent;
9
9
  --odx-main-menu-item-background-color-hover: var(--white-5);
10
10
  --odx-main-menu-item-background-color-active: var(--odx-c-focus);
11
11
  --odx-main-menu-item-text-color: inherit;
12
12
  --odx-main-menu-item-text-color-disabled: var(--odx-c-primary-text-disabled);
13
+
14
+ @include utils.dark-theme-selector() {
15
+ --odx-main-menu-item-background-color-active: var(--cyan-500-15);
16
+ --odx-main-menu-item-text-color-disabled: var(--blue-500);
17
+ }
13
18
  }
14
19
 
15
20
  .odx-main-menu-item {
@@ -44,4 +49,8 @@
44
49
  @include dimensions.margin(math.div(1, 3), right);
45
50
  @include dimensions.margin(math.div(-1, 3), left);
46
51
  }
52
+
53
+ &:focus-visible {
54
+ background-color: var(--odx-main-menu-item-background-color-active);
55
+ }
47
56
  }
@@ -7,12 +7,18 @@
7
7
  @use 'main-menu-button.component';
8
8
  @use 'main-menu-item.component';
9
9
 
10
- :root {
10
+ body {
11
11
  --odx-main-menu-max-width: 100dvw;
12
12
  --odx-main-menu-background-color: var(--odx-c-primary);
13
13
  --odx-main-menu-text-color: var(--odx-c-primary-text);
14
14
  --odx-main-menu-highlight-color: var(--odx-c-highlight);
15
15
 
16
+ @include utils.dark-theme-selector() {
17
+ --odx-main-menu-background-color: var(--blue-800);
18
+ --odx-main-menu-text-color: var(--black);
19
+ --odx-main-menu-highlight-color: var(--cyan-500);
20
+ }
21
+
16
22
  @include breakpoints.up(phone) {
17
23
  --odx-main-menu-max-width: min(100dvw, 384px);
18
24
  }
@@ -1,5 +1,20 @@
1
1
  @use 'sass:math';
2
2
  @use '../abstract/dimensions';
3
+ @use '../abstract/typography';
4
+ @use '../abstract/utils';
5
+
6
+ body {
7
+ @include utils.dark-theme-selector() {
8
+ .odx-mainfilter-group {
9
+ --odx-input-control-outline-color: var(--blue-900);
10
+ --odx-input-control-outline-color-hover: var(--blue-900);
11
+ --odx-c-highlight: var(--blue-900);
12
+ --odx-c-highlight-text: var(--white);
13
+ --odx-c-focus-outline: var(--cyan-800);
14
+ --odx-c-focus: var(--focus-bg);
15
+ }
16
+ }
17
+ }
3
18
 
4
19
  .odx-mainfilter-group {
5
20
  --odx-input-control-background-color: var(--gray-50);
@@ -15,8 +30,19 @@
15
30
  --odx-c-highlight-active: var(--odx-c-focus-outline);
16
31
 
17
32
  .odx-form-field {
33
+ flex: 0;
18
34
  position: relative;
19
35
 
36
+ &__control {
37
+ .odx-form-field-control {
38
+ min-width: dimensions.get-size(math.div(150, 24));
39
+
40
+ &.odx-spinbox {
41
+ min-width: dimensions.get-size(math.div(172, 24));
42
+ }
43
+ }
44
+ }
45
+
20
46
  &__label {
21
47
  margin-top: 0;
22
48
  position: absolute;
@@ -48,7 +74,11 @@
48
74
  }
49
75
 
50
76
  .odx-button {
77
+ margin-top: calc(var(--odx-vertical-rythm-base-size) * 0.8334);
78
+ outline-offset: -1px;
51
79
  outline-width: var(--odx-v-outline-width);
80
+ overflow: visible;
81
+ position: relative;
52
82
 
53
83
  &:not(:focus-visible) {
54
84
  outline-color: var(--odx-input-control-outline-color);
@@ -57,6 +87,37 @@
57
87
  &:focus-visible {
58
88
  background-color: var(--odx-c-focus);
59
89
  }
90
+
91
+ &::before {
92
+ @include dimensions.padding-x(math.div(3, 24));
93
+ @include dimensions.padding-y(math.div(2, 24));
94
+ @include typography.prevent-text-overflow();
95
+
96
+ background-color: var(--odx-input-control-background-color);
97
+ border-radius: var(--odx-v-border-radius-controls);
98
+ content: attr(label);
99
+ display: inline-block;
100
+ font-size: dimensions.get-size(math.div(10, 24));
101
+ font-weight: var(--odx-typography-font-weight-normal);
102
+ line-height: 1;
103
+ margin-top: 0;
104
+ position: absolute;
105
+ right: dimensions.get-size(math.div(8, 24));
106
+ top: dimensions.get-size(math.div(-7, 24));
107
+ z-index: 1;
108
+ }
109
+ }
110
+
111
+ .odx-spinbox {
112
+ .odx-spinbox__action {
113
+ &:hover {
114
+ border-color: var(--odx-input-control-outline-color);
115
+ }
116
+
117
+ &:active {
118
+ background-color: var(--odx-c-secondary-active);
119
+ }
120
+ }
60
121
  }
61
122
 
62
123
  .odx-toggle-button-group {
@@ -10,6 +10,7 @@ $modal-padding: math.div(12, 24);
10
10
  --odx-modal-margin-y: #{dimensions.get-size(2)};
11
11
  --odx-modal-margin-x: #{dimensions.get-size(math.div(8, 24))};
12
12
  --odx-modal-max-width: #{dimensions.get-size(20)};
13
+ --odx-modal-margin-bottom: #{dimensions.get-size(0.5)};
13
14
 
14
15
  $root: &;
15
16
 
@@ -27,6 +28,7 @@ $modal-padding: math.div(12, 24);
27
28
  @include breakpoints.up(phone) {
28
29
  --odx-modal-margin-y: #{dimensions.get-size(3)};
29
30
  --odx-modal-margin-x: #{dimensions.get-size(1)};
31
+ --odx-modal-margin-bottom: #{dimensions.get-size(1)};
30
32
  }
31
33
 
32
34
  &--sidesheet {
@@ -43,7 +45,7 @@ $modal-padding: math.div(12, 24);
43
45
  display: flex;
44
46
  flex-direction: column;
45
47
  margin: var(--odx-modal-margin-y) auto 0;
46
- max-height: calc(100% - var(--odx-modal-margin-y));
48
+ max-height: calc(100% - var(--odx-modal-margin-y) - var(--odx-modal-margin-bottom));
47
49
  min-height: dimensions.get-size(7);
48
50
  width: min(var(--odx-modal-max-width), calc(100% - 2 * var(--odx-modal-margin-x)));
49
51
 
@@ -62,7 +64,7 @@ $modal-padding: math.div(12, 24);
62
64
  #{$root}--sidesheet & {
63
65
  height: 100%;
64
66
  left: unset;
65
- max-height: calc(100% - var(--odx-modal-margin-y) - #{dimensions.get-size(0.5)});
67
+ max-height: calc(100% - var(--odx-modal-margin-y) - var(--odx-modal-margin-bottom));
66
68
  right: 0;
67
69
 
68
70
  @include breakpoints.up(phone) {