@odx/ui 5.2.2 → 5.2.4

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 (79) hide show
  1. package/CHANGELOG.md +13 -1
  2. package/ag-grid-theme.css +1 -1
  3. package/core-theme.css +1 -1
  4. package/package.json +1 -1
  5. package/scss/3rdparty/ag-grid/theme.scss +4 -4
  6. package/scss/_colors-dark.scss +1 -1
  7. package/scss/_colors.scss +2 -1
  8. package/scss/_utils.scss +18 -21
  9. package/scss/_visuals.scss +1 -0
  10. package/scss/abstract/_utils.scss +18 -21
  11. package/scss/accordion-item.component.scss +2 -2
  12. package/scss/action-group.component.scss +0 -4
  13. package/scss/ag-grid/theme.scss +4 -4
  14. package/scss/anchor-navigation.component.scss +3 -11
  15. package/scss/bar.component.scss +2 -10
  16. package/scss/button.component.scss +2 -7
  17. package/scss/calendar.component.scss +3 -7
  18. package/scss/card.component.scss +3 -3
  19. package/scss/checkbox.component.scss +18 -10
  20. package/scss/chip.component.scss +10 -1
  21. package/scss/components/accordion-item.component.scss +2 -2
  22. package/scss/components/action-group.component.scss +0 -4
  23. package/scss/components/anchor-navigation.component.scss +3 -11
  24. package/scss/components/bar.component.scss +2 -10
  25. package/scss/components/button.component.scss +2 -7
  26. package/scss/components/calendar.component.scss +3 -7
  27. package/scss/components/card.component.scss +3 -3
  28. package/scss/components/checkbox.component.scss +18 -10
  29. package/scss/components/chip.component.scss +10 -1
  30. package/scss/components/form-field.component.scss +6 -5
  31. package/scss/components/link.component.scss +3 -3
  32. package/scss/components/list-item.component.scss +4 -3
  33. package/scss/components/main-menu-item.component.scss +2 -2
  34. package/scss/components/main-menu.component.scss +8 -3
  35. package/scss/components/mainfilter-group.component.scss +4 -4
  36. package/scss/components/menu.component.scss +2 -0
  37. package/scss/components/navigation-back.component.scss +2 -2
  38. package/scss/components/option.component.scss +1 -1
  39. package/scss/components/radio-button.component.scss +20 -11
  40. package/scss/components/rail-navigation-item.component.scss +2 -2
  41. package/scss/components/rail-navigation.component.scss +2 -0
  42. package/scss/components/search-bar.component.scss +4 -3
  43. package/scss/components/slider.component.scss +21 -8
  44. package/scss/components/spinbox.component.scss +8 -4
  45. package/scss/components/switch.component.scss +14 -8
  46. package/scss/components/tab-bar-item.component.scss +1 -1
  47. package/scss/components/tab-bar.component.scss +1 -2
  48. package/scss/components/toast-item.component.scss +0 -8
  49. package/scss/components/toggle-button-group.component.scss +5 -6
  50. package/scss/components/toggle-button.component.scss +2 -4
  51. package/scss/components/wizard-step.component.scss +5 -5
  52. package/scss/form-field.component.scss +6 -5
  53. package/scss/link.component.scss +3 -3
  54. package/scss/list-item.component.scss +4 -3
  55. package/scss/main-menu-item.component.scss +2 -2
  56. package/scss/main-menu.component.scss +8 -3
  57. package/scss/mainfilter-group.component.scss +4 -4
  58. package/scss/menu.component.scss +2 -0
  59. package/scss/navigation-back.component.scss +2 -2
  60. package/scss/option.component.scss +1 -1
  61. package/scss/radio-button.component.scss +20 -11
  62. package/scss/rail-navigation-item.component.scss +2 -2
  63. package/scss/rail-navigation.component.scss +2 -0
  64. package/scss/search-bar.component.scss +4 -3
  65. package/scss/slider.component.scss +21 -8
  66. package/scss/spinbox.component.scss +8 -4
  67. package/scss/switch.component.scss +14 -8
  68. package/scss/tab-bar-item.component.scss +1 -1
  69. package/scss/tab-bar.component.scss +1 -2
  70. package/scss/theme.scss +4 -4
  71. package/scss/toast-item.component.scss +0 -8
  72. package/scss/toggle-button-group.component.scss +5 -6
  73. package/scss/toggle-button.component.scss +2 -4
  74. package/scss/variables/_colors-dark.scss +1 -1
  75. package/scss/variables/_colors.scss +2 -1
  76. package/scss/variables/_visuals.scss +1 -0
  77. package/scss/wizard-step.component.scss +5 -5
  78. package/scss/components/launch-tile.component.scss +0 -119
  79. package/scss/launch-tile.component.scss +0 -119
@@ -17,7 +17,7 @@
17
17
  }
18
18
 
19
19
  &-header {
20
- @include motion.transition(background-color outline-color color border-radius);
20
+ @include motion.transition(background-color color border-radius);
21
21
  @include utils.vertical-center-content();
22
22
  @include typography.font-weight(normal);
23
23
 
@@ -38,14 +38,12 @@
38
38
 
39
39
  &-cell {
40
40
  @include dimensions.container(1.5);
41
- @include motion.transition(background-color outline-color color border-radius);
42
- @include utils.interactive(false);
43
- @include utils.with-outline-bold();
41
+ @include motion.transition(background-color color border-radius box-shadow);
42
+ @include utils.interactive();
44
43
  @include typography.font-weight(normal);
45
44
 
46
45
  border-radius: var(--odx-v-border-radius-controls);
47
46
  cursor: pointer;
48
- outline-color: transparent;
49
47
  position: relative;
50
48
  text-align: center;
51
49
  vertical-align: middle;
@@ -104,8 +102,6 @@
104
102
  }
105
103
 
106
104
  #{$root}-cell {
107
- border-radius: 0;
108
-
109
105
  &--is-current::after {
110
106
  @include dimensions.container(1);
111
107
  @include dimensions.margin(0.25);
@@ -24,12 +24,12 @@
24
24
 
25
25
  $main-padding: var(--odx-card-main-padding);
26
26
 
27
- @include motion.transition(box-shadow outline-color color);
28
- @include utils.interactive(false);
29
- @include utils.with-outline-bold();
27
+ @include motion.transition(box-shadow color border-color);
28
+ @include utils.interactive();
30
29
 
31
30
  background-color: var(--odx-c-background-content);
32
31
  behavior: button;
32
+ border: var(--odx-v-outline-width-bold) solid transparent;
33
33
  border-radius: var(--odx-v-border-radius);
34
34
  display: block;
35
35
  padding: $main-padding;
@@ -22,9 +22,8 @@
22
22
 
23
23
  &__label {
24
24
  @include dimensions.line-height(1);
25
- @include motion.transition(background-color color outline-color);
25
+ @include motion.transition(background-color color);
26
26
  @include typography.font-size(0);
27
- @include utils.interactive($focus-within: true);
28
27
 
29
28
  border-radius: var(--odx-v-border-radius-controls);
30
29
  color: inherit;
@@ -49,15 +48,19 @@
49
48
 
50
49
  &__indicator {
51
50
  @include dimensions.container(1, math.div(20, 24));
52
- @include motion.transition(background-color color outline-color);
51
+ @include motion.transition(background-color color);
53
52
  @include utils.center-content(true);
54
- @include utils.with-outline();
53
+
54
+ @include utils.with-outline() {
55
+ outline-offset: var(--odx-v-outline-width-bold);
56
+ }
55
57
 
56
58
  background-color: var(--odx-control-background-color);
59
+ border: var(--odx-v-outline-width) solid var(--odx-control-outline-color);
57
60
  border-radius: var(--odx-v-border-radius-controls);
61
+ box-shadow: 0 0 0 var(--odx-v-outline-width-bold) transparent;
58
62
  color: var(--odx-control-color-selected);
59
63
  flex: 0 0 auto;
60
- outline-color: var(--odx-control-outline-color);
61
64
  padding: 1px;
62
65
 
63
66
  > .odx-icon {
@@ -72,14 +75,14 @@
72
75
 
73
76
  #{$root}:hover & {
74
77
  background-color: var(--odx-control-background-color-hover);
75
- outline-color: var(--odx-control-outline-color-hover);
78
+ border-color: var(--odx-control-outline-color-hover);
76
79
  }
77
80
 
78
81
  #{$root}.is-active &,
79
82
  #{$root}__input:indeterminate ~ &,
80
83
  #{$root}__input:checked ~ & {
81
84
  background-color: var(--odx-control-background-color-selected);
82
- outline-color: var(--odx-control-outline-color-selected);
85
+ border-color: var(--odx-control-outline-color-selected);
83
86
 
84
87
  > .odx-icon {
85
88
  opacity: 1;
@@ -98,19 +101,24 @@
98
101
  }
99
102
 
100
103
  #{$root}.has-error:hover & {
101
- outline-color: var(--odx-control-outline-color-error-hover);
104
+ border-color: var(--odx-control-outline-color-error-hover);
102
105
  }
103
106
 
104
107
  #{$root}.is-disabled & {
105
108
  background-color: var(--odx-control-background-color-disabled);
109
+ border-color: var(--odx-control-outline-color-disabled);
106
110
  color: var(--odx-control-color-disabled);
107
- outline-color: var(--odx-control-outline-color-disabled);
108
111
  }
109
112
 
110
113
  #{$root}.is-readonly & {
111
114
  background-color: var(--odx-control-background-color-readonly);
115
+ border-color: var(--odx-control-outline-color-readonly);
112
116
  color: var(--odx-control-color-readonly);
113
- outline-color: var(--odx-control-outline-color-readonly);
117
+ }
118
+
119
+ #{$root}:focus-within:has(:focus-visible) & {
120
+ outline-color: var(--odx-c-focus-outline);
121
+ outline-offset: var(--odx-v-outline-box-shadow-width);
114
122
  }
115
123
  }
116
124
 
@@ -18,17 +18,26 @@ $variants: secondary, highlight, success, danger, warning, confirmation;
18
18
  min-width: dimensions.get-size(math.div(32, 24));
19
19
  user-select: none;
20
20
 
21
+ &:not(#{$root}--secondary) {
22
+ --odx-c-focus-inner: transparent;
23
+ }
24
+
21
25
  &__content {
22
26
  @include typography.prevent-text-overflow();
23
27
  }
24
28
 
25
29
  &__action {
26
30
  @include utils.center-content();
27
- @include motion.transition(background-color color outline);
31
+ @include motion.transition(background-color color);
28
32
 
29
33
  border-radius: 50%;
30
34
  margin: 0;
31
35
 
36
+ &:focus-visible {
37
+ box-shadow: 0 0 0 var(--odx-v-outline-box-shadow-width) var(--odx-c-focus-inner);
38
+ outline-offset: var(--odx-v-outline-box-shadow-width);
39
+ }
40
+
32
41
  #{$root}--warning & {
33
42
  background-color: var(--odx-c-warning);
34
43
  color: var(--odx-c-warning-text);
@@ -91,16 +91,17 @@ $form-field-inner-padding: math.div(8, 24);
91
91
 
92
92
  &__control {
93
93
  @include dimensions.min-height(1.5);
94
- @include motion.transition(background-color color outline-color);
95
- @include utils.with-outline();
96
- @include utils.focus-state(true, true, 'input');
97
- @include utils.focus-state(true, true, 'textarea');
98
- @include utils.focus-state(true, true, '.odx-select');
94
+ @include motion.transition(background-color color);
95
+ @include utils.focus-state($focus-within: true, $focus-within-selector: 'input');
96
+ @include utils.focus-state($focus-within: true, $focus-within-selector: 'textarea');
97
+ @include utils.focus-state($focus-within: true, $focus-within-selector: '.odx-select');
99
98
 
100
99
  background-color: var(--odx-input-control-background-color);
101
100
  border-radius: var(--odx-v-border-radius-controls);
102
101
  display: flex;
103
102
  outline-color: var(--odx-input-control-outline-color);
103
+ outline-offset: calc(-1 * var(--odx-v-outline-width));
104
+ outline-width: var(--odx-v-outline-width);
104
105
  overflow: hidden;
105
106
  position: relative;
106
107
 
@@ -2,12 +2,12 @@
2
2
  @use '../abstract/utils';
3
3
 
4
4
  .odx-link {
5
- @include motion.transition(color background-color outline);
6
- @include utils.interactive();
5
+ @include motion.transition(color background-color);
6
+ @include utils.interactive($with-box-shadow: false);
7
7
 
8
8
  border-radius: var(--odx-v-border-radius-controls);
9
9
  color: var(--odx-c-link);
10
- padding: 0 2px;
10
+ padding: 0 calc(var(--odx-v-outline-width-bold) + var(--odx-v-outline-box-shadow-width));
11
11
  position: relative;
12
12
  user-select: auto;
13
13
 
@@ -13,9 +13,8 @@
13
13
 
14
14
  @include dimensions.padding-x(math.div(8, 24));
15
15
  @include dimensions.line-height(2, 1);
16
- @include motion.transition(border-bottom-color background-color outline-color color);
17
- @include utils.interactive(false);
18
- @include utils.with-outline-bold();
16
+ @include motion.transition(border-bottom-color background-color color box-shadow);
17
+ @include utils.interactive();
19
18
  @include utils.vertical-center-content();
20
19
 
21
20
  background-color: transparent;
@@ -43,10 +42,12 @@
43
42
  right: dimensions.get-size(math.div(8, 24));
44
43
  top: 0;
45
44
  width: calc(100% - #{dimensions.get-size(math.div(16, 24))});
45
+ z-index: -1;
46
46
  }
47
47
 
48
48
  &:hover,
49
49
  &:focus-visible {
50
+ z-index: 1;
50
51
  &:not(#{$muted-selector}) {
51
52
  --separator-color: transparent !important;
52
53
  }
@@ -19,8 +19,8 @@
19
19
 
20
20
  .odx-main-menu-item {
21
21
  @include dimensions.padding(math.div(2, 3));
22
- @include motion.transition(color background-color outline);
23
- @include utils.interactive(false);
22
+ @include motion.transition(color background-color);
23
+ @include utils.interactive();
24
24
  @include typography.font-weight(medium);
25
25
  @include typography.prevent-text-overflow();
26
26
 
@@ -12,7 +12,6 @@
12
12
  --odx-main-menu-max-width: 100dvw;
13
13
  --odx-main-menu-background-color: var(--odx-c-primary);
14
14
  --odx-main-menu-text-color: var(--odx-c-primary-text);
15
- --odx-main-menu-highlight-color: var(--odx-c-highlight);
16
15
 
17
16
  @include breakpoints.up(phone) {
18
17
  --odx-main-menu-max-width: min(100dvw, 384px);
@@ -20,12 +19,17 @@
20
19
  }
21
20
 
22
21
  @include utils.theme-selector(dark) {
23
- --odx-main-menu-background-color: var(--blue-800);
22
+ --odx-main-menu-background-color: var(--cyan-50);
24
23
  --odx-main-menu-text-color: var(--black);
25
- --odx-main-menu-highlight-color: var(--cyan-500);
24
+
25
+ .odx-main-menu {
26
+ --odx-c-focus-inner: var(--cyan-50);
27
+ }
26
28
  }
27
29
 
28
30
  .odx-main-menu {
31
+ --odx-c-focus-inner: var(--blue-700);
32
+
29
33
  --odx-area-header-title-color: var(--odx-main-menu-text-color);
30
34
  --odx-area-header-subtitle-color: var(--odx-main-menu-text-color);
31
35
 
@@ -83,6 +87,7 @@
83
87
  --odx-v-scrollbar-thumb-color-hover: var(--blue-500);
84
88
 
85
89
  @include dimensions.padding-x(0.5);
90
+ @include dimensions.padding-y(math.div(2, 24));
86
91
  @include dimensions.margin(1, top);
87
92
 
88
93
  display: flex;
@@ -2,6 +2,7 @@
2
2
  @use '../abstract/dimensions';
3
3
  @use '../abstract/typography';
4
4
  @use '../abstract/utils';
5
+ @use '../abstract/motion';
5
6
 
6
7
  @include utils.theme-selector(dark) {
7
8
  .odx-mainfilter-group {
@@ -74,16 +75,15 @@
74
75
  }
75
76
 
76
77
  .odx-button {
78
+ @include utils.interactive();
79
+ @include motion.transition(box-shadow);
80
+
77
81
  margin-top: calc(var(--odx-vertical-rythm-base-size) * 0.8334);
78
82
  outline-offset: -1px;
79
83
  outline-width: var(--odx-v-outline-width);
80
84
  overflow: visible;
81
85
  position: relative;
82
86
 
83
- &:focus-visible {
84
- background-color: var(--odx-c-focus);
85
- }
86
-
87
87
  &::before {
88
88
  @include dimensions.padding-x(math.div(3, 24));
89
89
  @include dimensions.padding-y(math.div(2, 24));
@@ -5,6 +5,8 @@
5
5
  display: block;
6
6
 
7
7
  > .odx-action-group {
8
+ @include dimensions.padding-y(math.div(2, 24));
9
+
8
10
  display: flex;
9
11
  flex-direction: column;
10
12
  height: auto;
@@ -8,9 +8,9 @@
8
8
  height: dimensions.get-size(1.5);
9
9
  width: dimensions.get-size(1.5);
10
10
 
11
- @include motion.transition(background-color outline);
11
+ @include motion.transition(background-color);
12
12
  @include utils.center-content(true);
13
- @include utils.interactive($with-background: true);
13
+ @include utils.interactive();
14
14
 
15
15
  &:hover {
16
16
  background-color: var(--blue-700-5);
@@ -7,7 +7,7 @@
7
7
  @include dimensions.line-height(1.5, 1);
8
8
  @include dimensions.margin(math.div(4, 24), bottom);
9
9
  @include dimensions.padding-x(0.5);
10
- @include motion.transition(background-color color outline-color);
10
+ @include motion.transition(background-color color);
11
11
  @include typography.font-weight(normal);
12
12
 
13
13
  border-radius: var(--odx-v-border-radius-controls);
@@ -21,9 +21,8 @@
21
21
 
22
22
  &__label {
23
23
  @include dimensions.line-height(1);
24
- @include motion.transition(background-color color outline);
24
+ @include motion.transition(background-color color);
25
25
  @include typography.font-size(0);
26
- @include utils.interactive($focus-within: true);
27
26
 
28
27
  border-radius: dimensions.get-size(1);
29
28
  color: inherit;
@@ -41,6 +40,15 @@
41
40
  #{$root}.is-disabled & {
42
41
  cursor: default;
43
42
  }
43
+
44
+ &:focus-within:has(:focus-visible) {
45
+ #{$root}__indicator {
46
+ border-color: transparent;
47
+ outline-color: var(--odx-c-focus-outline);
48
+ outline-offset: var(--odx-v-outline-box-shadow-width);
49
+ outline-width: var(--odx-v-outline-width-bold);
50
+ }
51
+ }
44
52
  }
45
53
 
46
54
  &__subtitle {
@@ -53,15 +61,16 @@
53
61
 
54
62
  &__indicator {
55
63
  @include dimensions.container(1, math.div(20, 24));
56
- @include motion.transition(background-color color outline-color);
64
+ @include motion.transition(background-color color border-color);
57
65
  @include utils.center-content();
58
- @include utils.with-outline();
59
66
 
60
67
  background-color: var(--odx-control-background-color);
68
+ border: transparent solid var(--odx-v-outline-width);
61
69
  border-radius: 50%;
70
+ box-shadow: inset 0 0 0 0 var(--odx-c-focus-inner);
62
71
  color: var(--odx-control-color-selected);
63
72
  flex: 0 0 auto;
64
- outline-color: var(--odx-control-outline-color);
73
+ outline: var(--odx-v-outline-width-bold) solid transparent;
65
74
  padding: 1px;
66
75
 
67
76
  &::before {
@@ -76,13 +85,13 @@
76
85
 
77
86
  #{$root}:hover & {
78
87
  background-color: var(--odx-control-background-color-hover);
79
- outline-color: var(--odx-control-outline-color-hover);
88
+ border-color: var(--odx-control-outline-color-hover);
80
89
  }
81
90
 
82
91
  #{$root}.is-active &,
83
92
  #{$root}__input:checked ~ & {
84
93
  background-color: var(--odx-control-background-color-selected);
85
- outline-color: var(--odx-control-outline-color-selected);
94
+ border-color: var(--odx-control-outline-color-selected);
86
95
 
87
96
  &::before {
88
97
  transform: scale(1);
@@ -91,12 +100,12 @@
91
100
 
92
101
  #{$root}.has-error & {
93
102
  background-color: var(--odx-control-background-color-error);
103
+ border-color: var(--odx-control-outline-color-error);
94
104
  color: var(--odx-control-color-error);
95
- outline-color: var(--odx-control-outline-color-error);
96
105
  }
97
106
 
98
107
  #{$root}.has-error:hover & {
99
- outline-color: var(--odx-control-outline-color-error-hover);
108
+ border-color: var(--odx-control-outline-color-error-hover);
100
109
  }
101
110
 
102
111
  #{$root}.is-disabled.is-active & {
@@ -106,14 +115,14 @@
106
115
 
107
116
  #{$root}.is-disabled & {
108
117
  background-color: var(--odx-control-background-color-disabled);
118
+ border-color: var(--odx-control-outline-color-disabled);
109
119
  color: var(--odx-control-color-disabled);
110
- outline-color: var(--odx-control-outline-color-disabled);
111
120
  }
112
121
 
113
122
  #{$root}.is-readonly & {
114
123
  background-color: var(--odx-control-background-color-readonly);
124
+ border-color: var(--odx-control-outline-color);
115
125
  color: var(--odx-control-color-readonly);
116
- outline-color: var(--odx-control-outline-color-readonly);
117
126
  }
118
127
  }
119
128
 
@@ -9,9 +9,9 @@
9
9
  .odx-rail-navigation-item {
10
10
  $root: &;
11
11
 
12
- @include motion.transition(outline-color background-color color);
12
+ @include motion.transition(background-color color);
13
13
  @include dimensions.padding(math.div(8, 24));
14
- @include utils.interactive(false);
14
+ @include utils.interactive();
15
15
 
16
16
  align-items: center;
17
17
  background-color: unset;
@@ -18,6 +18,8 @@
18
18
  @include dimensions.padding-y(1);
19
19
 
20
20
  &__content {
21
+ @include dimensions.padding(math.div(2, 24));
22
+
21
23
  display: flex;
22
24
  flex-direction: column;
23
25
  gap: dimensions.get-size(math.div(12, 24));
@@ -6,14 +6,15 @@
6
6
 
7
7
  .odx-search-bar {
8
8
  @include dimensions.min-height(1.5);
9
- @include motion.transition(background-color color outline-color);
10
- @include utils.with-outline();
11
- @include utils.focus-state(true, true, 'input');
9
+ @include motion.transition(background-color color);
10
+ @include utils.focus-state($focus-within: true, $focus-within-selector: 'input');
12
11
 
13
12
  background-color: var(--odx-input-control-background-color);
14
13
  border-radius: var(--odx-v-border-radius-controls);
15
14
  display: flex;
16
15
  outline-color: var(--odx-input-control-outline-color);
16
+ outline-offset: calc(-1 * var(--odx-v-outline-width));
17
+ outline-width: var(--odx-v-outline-width);
17
18
  overflow: hidden;
18
19
  position: relative;
19
20
 
@@ -1,6 +1,7 @@
1
1
  @use 'sass:math';
2
2
  @use '../abstract/dimensions';
3
3
  @use '../abstract/motion';
4
+ @use '../abstract/utils';
4
5
 
5
6
  .odx-slider {
6
7
  --odx-control-outline-color: var(--gray-200);
@@ -18,10 +19,12 @@
18
19
  width: 100%;
19
20
 
20
21
  @mixin track-container() {
22
+ @include utils.with-outline() {
23
+ outline-color: var(--odx-control-outline-color);
24
+ }
25
+
21
26
  background-color: var(--odx-control-background-color);
22
27
  border-radius: 2px;
23
- outline: 1px solid var(--odx-control-outline-color);
24
- outline-offset: -1px;
25
28
  }
26
29
 
27
30
  @mixin track-progress() {
@@ -31,17 +34,27 @@
31
34
  }
32
35
 
33
36
  @mixin thumb() {
34
- @include motion.transition(background-color outline-color);
37
+ @include motion.transition(background-color);
38
+
39
+ @include utils.with-outline() {
40
+ outline-color: var(--white);
41
+ }
35
42
 
36
43
  appearance: none;
37
44
  background-color: var(--odx-control-background-color-selected);
38
45
  border-radius: 50%;
39
46
  height: $thumb-size;
40
47
  margin-top: calc(#{$thumb-size} / -2 + #{$track-height} / 2);
41
- outline: 1px solid var(--white);
42
48
  width: $thumb-size;
43
49
  }
44
50
 
51
+ @mixin thumb-focus() {
52
+ border: solid 2px var(--odx-c-focus-inner);
53
+ outline-color: var(--odx-c-focus-outline);
54
+ outline-offset: 0;
55
+ outline-width: var(--odx-v-outline-width-bold);
56
+ }
57
+
45
58
  &::-webkit-slider-container {
46
59
  @include track-container();
47
60
 
@@ -57,8 +70,8 @@
57
70
  &::-webkit-slider-runnable-track {
58
71
  @include track-progress();
59
72
 
60
- background: linear-gradient(var(--odx-control-background-color-selected), var(--odx-control-background-color-selected)) 0 / var(--odx-slider-filled) 100%
61
- no-repeat,
73
+ background:
74
+ linear-gradient(var(--odx-control-background-color-selected), var(--odx-control-background-color-selected)) 0 / var(--odx-slider-filled) 100% no-repeat,
62
75
  transparent;
63
76
  }
64
77
 
@@ -112,11 +125,11 @@
112
125
 
113
126
  &:focus-visible {
114
127
  &::-webkit-slider-thumb {
115
- outline: 2px solid var(--odx-c-highlight-active);
128
+ @include thumb-focus();
116
129
  }
117
130
 
118
131
  &::-moz-range-thumb {
119
- outline: 2px solid var(--odx-c-highlight-active);
132
+ @include thumb-focus();
120
133
  }
121
134
  }
122
135
 
@@ -10,7 +10,7 @@
10
10
  outline-color: transparent !important;
11
11
 
12
12
  .odx-form-field-control {
13
- padding: 0;
13
+ @include dimensions.padding(math.div(2, 24));
14
14
  }
15
15
 
16
16
  &::after {
@@ -58,9 +58,11 @@
58
58
  &__input,
59
59
  &__action {
60
60
  @include motion.transition(background-color border-color color);
61
+ @include utils.with-outline();
61
62
 
62
63
  background-color: var(--odx-input-control-background-color);
63
64
  border: 1px solid var(--odx-input-control-outline-color);
65
+ position: relative;
64
66
 
65
67
  #{$root}.has-error & {
66
68
  background-color: var(--odx-input-control-background-color-error);
@@ -83,8 +85,11 @@
83
85
  }
84
86
 
85
87
  #{$root} &:focus-visible {
86
- background-color: var(--odx-c-focus);
87
- border-color: var(--odx-c-focus-outline) !important;
88
+ border-radius: var(--odx-v-border-radius-controls);
89
+ border-width: 0;
90
+ box-shadow: inset 0 0 0 calc(var(--odx-v-outline-width-bold) + var(--odx-v-outline-box-shadow-width)) var(--odx-c-focus-inner);
91
+ outline-color: var(--odx-c-focus-outline);
92
+ z-index: 1;
88
93
  }
89
94
 
90
95
  #{$root}.is-disabled & {
@@ -101,7 +106,6 @@
101
106
  flex: 0 0 dimensions.get-size(math.div(36, 24));
102
107
  height: 100%;
103
108
  margin: 0;
104
- outline: none;
105
109
 
106
110
  &::before {
107
111
  position: static;
@@ -31,9 +31,8 @@
31
31
 
32
32
  &__label {
33
33
  @include dimensions.line-height(1);
34
- @include motion.transition(background-color color outline-color);
34
+ @include motion.transition(background-color color);
35
35
  @include typography.font-size(0);
36
- @include utils.interactive($focus-within: true);
37
36
 
38
37
  align-items: center;
39
38
  border-radius: dimensions.get-size(0.5);
@@ -60,8 +59,11 @@
60
59
 
61
60
  &:focus-visible {
62
61
  ~ #{$root}__indicator:before {
63
- box-shadow: 0 0 0 1px var(--odx-c-background-content);
64
- outline-color: var(--odx-c-focus);
62
+ border-width: 0;
63
+ box-shadow: inset 0 0 0 calc(var(--odx-v-outline-box-shadow-width)) var(--odx-c-focus-inner);
64
+ outline-color: var(--odx-c-focus-outline);
65
+ outline-offset: 0;
66
+ outline-width: var(--odx-v-outline-width-bold);
65
67
  }
66
68
  }
67
69
  }
@@ -72,18 +74,21 @@
72
74
  $track-size: dimensions.get-size(math.div(20, 24));
73
75
  $border: 1px solid var(--odx-control-outline-color);
74
76
 
75
- @include motion.transition(background-color color outline-color);
77
+ @include motion.transition(background-color color);
76
78
 
77
79
  background-color: var(--odx-control-background-color);
78
80
  border: $border;
79
81
  border-radius: calc(#{$indicator-height} / 2);
80
- color: var(--odx-control-color-selected);
81
82
  height: $indicator-height;
82
83
  position: relative;
83
84
  width: $indicator-width;
84
85
 
85
86
  &::before {
86
- @include motion.transition(background-color transform border-color outline-color);
87
+ @include motion.transition(background-color transform border-color);
88
+
89
+ @include utils.with-outline() {
90
+ outline-color: var(--odx-c-background-content);
91
+ }
87
92
 
88
93
  align-items: center;
89
94
  background-color: var(--odx-control-background-color);
@@ -94,7 +99,7 @@
94
99
  font-size: dimensions.get-size(math.div(12, 24));
95
100
  height: $track-size;
96
101
  justify-content: center;
97
- outline: 1px solid var(--odx-c-background-content);
102
+ position: absolute;
98
103
  top: calc(#{$track-size} / -2 + 50%);
99
104
  transform: translateX(-1px);
100
105
  width: $track-size;
@@ -116,6 +121,7 @@
116
121
  &::before {
117
122
  @include indicator-color(var(--odx-control-background-color-selected));
118
123
 
124
+ color: var(--odx-control-color-selected);
119
125
  transform: translateX(calc((#{$indicator-width} - #{$track-size}) - 1px));
120
126
  }
121
127
  }
@@ -8,8 +8,8 @@
8
8
  @include dimensions.height(2, math.div(32, 24));
9
9
  @include dimensions.padding-x(math.div(4, 24));
10
10
  @include utils.vertical-center-content();
11
+ @include motion.transition(background-color);
11
12
  @include utils.with-outline();
12
- @include motion.transition(background-color outline-color);
13
13
 
14
14
  align-items: center;
15
15
  background-color: transparent;