Skip to content

Commit 692d6b6

Browse files
fix(ui5-slider): align slider to the spec
1 parent 878d8a3 commit 692d6b6

15 files changed

Lines changed: 203 additions & 65 deletions

File tree

packages/main/src/Slider.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -312,8 +312,8 @@ class Slider extends SliderBase implements IFormInputElement {
312312
get styles() {
313313
return {
314314
progress: {
315-
"transform": `scaleX(${this._progressPercentage})`,
316-
"transform-origin": `${this.directionStart} top`,
315+
"width": `${this._handlePositionFromStart}%`,
316+
"border": this._handlePositionFromStart === 0 ? "none" : "",
317317
},
318318
handle: {
319319
[this.directionStart]: `${this._handlePositionFromStart}%`,

packages/main/src/themes/SliderBase.css

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
.ui5-slider-root {
2121
box-sizing: border-box;
22-
height: 3.3125rem;
22+
height: var(--_ui5_slider_root_height);
2323
outline: none;
2424
padding: var(--_ui5_slider_padding);
2525
touch-action: none;
@@ -68,13 +68,13 @@
6868

6969
.ui5-slider-progress {
7070
background: var(--_ui5_slider_progress_background);
71-
border-radius: var(--_ui5_slider_progress_border_radius);
72-
height: var(--_ui5_slider_progress_height);
73-
position: relative;
71+
border-radius: var(--_ui5_slider_active_progress_border_radius);
72+
height: var(--_ui5_slider_active_progress_height);
73+
position: absolute;
7474
outline: none;
75-
box-sizing: var(--_ui5_slider_active_progress_box_sizing);
75+
box-sizing: content-box;
7676
border: var(--_ui5_slider_active_progress_border);
77-
left: var(--_ui5_slider_active_progress_left);
77+
inset-inline-start: var(--_ui5_slider_active_progress_left);
7878
top: var(--_ui5_slider_active_progress_top);
7979
}
8080

@@ -247,9 +247,9 @@
247247
}
248248

249249
:host([show-tickmarks]) .ui5-slider-progress {
250-
height: var(--_ui5_slider_no_tickmarks_progress_height);
250+
height: var(--_ui5_slider_no_tickmarks_active_progress_height);
251251
border: var(--_ui5_slider_no_tickmarks_active_progress_border);
252-
left: var(--_ui5_slider_no_tickmarks_active_progress_left);
252+
inset-inline-start: var(--_ui5_slider_no_tickmarks_active_progress_left);
253253
top: var(--_ui5_slider_no_tickmarks_active_progress_top);
254254
}
255255

packages/main/src/themes/base/SliderBase-parameters.css

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,23 @@
44
--_ui5_slider_progress_container_dot_display: none;
55
--_ui5_slider_progress_container_dot_background: var(--sapField_BorderColor);
66
--_ui5_slider_progress_border: solid 0.0625rem var(--sapSlider_BorderColor);
7+
--_ui5_slider_progress_before_background: transparent;
8+
--_ui5_slider_progress_after_background: transparent;
9+
--_ui5_slider_progress_before_border: none;
10+
--_ui5_slider_progress_after_border: none;
711
--_ui5_slider_padding: 1.406rem 1.0625rem;
12+
--_ui5_slider_root_height: 2.75rem;
813
--_ui5_slider_inner_height: 0.25rem;
14+
--_ui5_slider_inner_min_width: 4rem;
915
--_ui5_slider_outer_height: 1.6875rem;
1016
--_ui5_slider_progress_border_radius: 0.25rem;
1117
--_ui5_slider_progress_background: var(--sapActiveColor);
1218
--_ui5_slider_handle_icon_display: none;
1319
--_ui5_range_slider_root_hover_handle_icon_display: none;
14-
--_ui5_slider_handle_height: 1.625rem;
15-
--_ui5_slider_handle_width: 1.625rem;
16-
--_ui5_slider_handle_border: solid 0.125rem var(--sapField_BorderColor);
17-
--_ui5_slider_handle_border_radius: 1rem;
20+
--_ui5_slider_handle_height: 1.5rem;
21+
--_ui5_slider_handle_width: 2rem;
22+
--_ui5_slider_handle_border: 0.0625rem solid var(--sapField_BorderColor);
23+
--_ui5_slider_handle_border_radius: 0.5rem;
1824
--_ui5_slider_handle_background: var(--sapButton_Background);
1925
--_ui5_range_slider_handle_background: #FFF;
2026
--_ui5_slider_handle_top: -0.825rem;
@@ -49,9 +55,9 @@
4955
--_ui5_range_slider_progress_focus_height: 2rem;
5056
--_ui5_range_slider_legacy_progress_focus_display: block;
5157
--_ui5_slider_handle_focus_width: 0;
52-
--_ui5_slider_start_end_point_size: .375rem;
53-
--_ui5_slider_start_end_point_left: -0.875rem;
54-
--_ui5_slider_start_end_point_top: -.1875rem;
58+
--_ui5_slider_start_end_point_size: 0.5rem;
59+
--_ui5_slider_start_end_point_left: -0.75rem;
60+
--_ui5_slider_start_end_point_top: -0.1875rem;
5561
--_ui5_slider_handle_background_focus: var(--sapButton_Active_Background);
5662
--_ui5_slider_handle_focused_tooltip_distance: var(--_ui5_slider_tooltip_bottom);
5763
--_ui5_slider_handle_box_sizing: content-box;
@@ -61,33 +67,40 @@
6167
--_ui5_range_slider_handle_background_focus: transparent;
6268
--_ui5_range_slider_progress_focus_width: 100%;
6369
--_ui5_range_slider_root_active_handle_icon_display: none;
64-
--_ui5_slider_tickmark_height: 1rem;
65-
--_ui5_slider_tickmark_top: -.3125rem;
70+
--_ui5_slider_tickmark_height: 0.5rem;
71+
--_ui5_slider_tickmark_top: -0.125rem;
6672
--_ui5_slider_progress_box_sizing: border-box;
6773
--_ui5_slider_active_progress_box_sizing: content-box;
68-
--_ui5_slider_tickmark_in_range_bg: var(--sapField_BorderColor);
6974
--_ui5_range_slider_focus_outline_width: 100%;
7075
--_ui5_slider_progress_outline_offset_left: 0;
7176
--_ui5_range_slider_focus_outline_radius: 0;
7277

7378
--_ui5_slider_progress_container_top: 0;
74-
--_ui5_slider_progress_height: 100%;
79+
--_ui5_slider_progress_height: 0.25rem;
7580
--_ui5_slider_active_progress_border: solid 0.0625rem var(--sapSlider_Selected_BorderColor);
76-
--_ui5_slider_active_progress_left: 0;
77-
--_ui5_slider_active_progress_top: 0;
81+
--_ui5_slider_active_progress_border_radius: 0.25rem;
82+
--_ui5_slider_active_progress_left: -0.0625rem;
83+
--_ui5_slider_active_progress_top: -0.0625rem;
84+
--_ui5_slider_active_progress_padding: 0.125rem;
85+
--_ui5_slider_active_progress_height: calc(var(--_ui5_slider_progress_height) - 0.125rem);
7886

7987
--_ui5_slider_no_tickmarks_progress_container_top: var(--_ui5_slider_progress_container_top);
8088
--_ui5_slider_no_tickmarks_progress_height: var(--_ui5_slider_progress_height);
8189
--_ui5_slider_no_tickmarks_active_progress_border: var(--_ui5_slider_active_progress_border);
82-
--_ui5_slider_no_tickmarks_active_progress_left: var(--_ui5_slider_active_progress_left);
83-
--_ui5_slider_no_tickmarks_active_progress_top: var(--_ui5_slider_active_progress_top);
90+
--_ui5_slider_no_tickmarks_active_progress_left: -0.0625rem;
91+
--_ui5_slider_no_tickmarks_active_progress_top: -0.0625rem;
92+
--_ui5_slider_no_tickmarks_active_progress_height: calc(var(--_ui5_slider_no_tickmarks_progress_height) - 0.125rem);
8493
--_ui5_slider_handle_focus_visibility: none;
85-
--_ui5_slider_handle_icon_size: 1rem;
94+
--_ui5_slider_handle_icon_size: 0.875rem;
8695
}
8796

8897
[data-ui5-compact-size],
8998
.ui5-content-density-compact,
9099
.sapUiSizeCompact {
91-
--_ui5_slider_handle_icon_size: .875rem;
100+
--_ui5_slider_handle_icon_size: 0.875rem;
92101
--_ui5_slider_padding: 1rem 1.0625rem;
102+
--_ui5_slider_root_height: 2rem;
103+
--_ui5_slider_handle_height: 1.25rem;
104+
--_ui5_slider_handle_width: 1.5rem;
105+
--_ui5_slider_handle_top: -0.5rem;
93106
}

packages/main/src/themes/sap_fiori_3/SliderBase-parameters.css

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
:root {
44
--_ui5_slider_inner_min_width: 4rem;
55
--_ui5_range_slider_handle_background_focus: transparent;
6-
--_ui5_slider_handle_top: -.875rem;
6+
--_ui5_slider_handle_top: -0.8125rem;
77
--_ui5_range_slider_handle_background: transparent;
88
--_ui5_range_slider_handle_active_background: transparent;
99
--_ui5_slider_handle_background: var(--sapButton_Background);
@@ -13,7 +13,8 @@
1313
--_ui5_slider_handle_width: 1.875rem;
1414
--_ui5_slider_handle_height: 1.875rem;
1515
--_ui5_slider_handle_box_sizing: border-box;
16-
--_ui5_slider_tickmark_top: -.34375rem;
16+
--_ui5_slider_tickmark_height: 1rem;
17+
--_ui5_slider_tickmark_top: -0.375rem;
1718
}
1819

1920
[data-ui5-compact-size],

packages/main/src/themes/sap_fiori_3_dark/SliderBase-parameters.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
:root {
44
--_ui5_slider_inner_min_width: 4rem;
5+
--_ui5_slider_handle_top: -0.6875rem;
56
--_ui5_range_slider_handle_background: transparent;
67
--_ui5_range_slider_root_hover_handle_bg: transparent;
78
}
Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,26 @@
11
@import "../base/SliderBase-parameters.css";
22

33
:root {
4-
--_ui5_slider_inner_height: 0.375rem;
4+
--_ui5_slider_inner_height: 0.375rem; /* Total height including border */
5+
--_ui5_slider_progress_box_sizing: border-box;
56
--_ui5_slider_progress_border: solid 0.0625rem var(--sapField_BorderColor);
67
--_ui5_slider_progress_border_radius: 0.375rem;
78
--_ui5_range_slider_handle_background: transparent;
89
--_ui5_slider_handle_hover_background: var(--sapButton_Hover_Background);
910
--_ui5_slider_handle_border: solid 0.125rem var(--sapField_BorderColor);
1011
--_ui5_slider_handle_height: 1.65rem;
1112
--_ui5_slider_handle_width: 1.65rem;
12-
--_ui5_slider_handle_top: -0.75rem;
13+
--_ui5_slider_handle_top: -0.6375rem; /* -(1.65rem handle - 0.375rem track) / 2 */
14+
--_ui5_slider_handle_box_sizing: border-box;
1315
--_ui5_slider_progress_background: var(--sapSelectedColor);
14-
--_ui5_slider_tickmark_top: -0.2525rem;
16+
--_ui5_slider_tickmark_height: 1rem;
17+
--_ui5_slider_tickmark_top: -0.3125rem; /* -(1rem tickmark - 0.375rem track) / 2 */
18+
--_ui5_slider_active_progress_border: none;
19+
--_ui5_slider_active_progress_left: 0;
20+
--_ui5_slider_active_progress_top: 0;
21+
--_ui5_slider_active_progress_height: var(--_ui5_slider_progress_height);
22+
--_ui5_slider_no_tickmarks_active_progress_border: none;
23+
--_ui5_slider_no_tickmarks_active_progress_left: 0;
24+
--_ui5_slider_no_tickmarks_active_progress_top: 0;
25+
--_ui5_slider_no_tickmarks_active_progress_height: var(--_ui5_slider_no_tickmarks_progress_height);
1526
}

packages/main/src/themes/sap_fiori_3_hcb/sizes-parameters.css

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
@import "../base/sizes-parameters.css";
22
:root {
3-
/* Slider, Range Slider */
4-
--_ui5_slider_handle_width: 1.25rem;
5-
--_ui5_slider_handle_height: 1.25rem;
6-
--_ui5_slider_handle_top: -0.5rem;
7-
83
/* ColorPicker */
94
--_ui5_color_picker_slider_handle_container_margin_top: -0.125rem;
105
}
Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,25 @@
11
@import "../base/SliderBase-parameters.css";
22

33
:root {
4-
--_ui5_slider_inner_height: 0.375rem;
4+
--_ui5_slider_inner_height: 0.375rem; /* Total height including border */
5+
--_ui5_slider_progress_box_sizing: border-box;
56
--_ui5_slider_progress_border: solid 0.0625rem var(--sapField_BorderColor);
67
--_ui5_slider_progress_border_radius: 0.375rem;
78
--_ui5_range_slider_handle_background: transparent;
89
--_ui5_slider_handle_border: solid 0.125rem var(--sapField_BorderColor);
910
--_ui5_slider_handle_height: 1.65rem;
1011
--_ui5_slider_handle_width: 1.65rem;
11-
--_ui5_slider_handle_top: -0.75rem;
12+
--_ui5_slider_handle_top: -0.6375rem; /* -(1.65rem handle - 0.375rem track) / 2 */
13+
--_ui5_slider_handle_box_sizing: border-box;
1214
--_ui5_slider_progress_background: var(--sapSelectedColor);
13-
--_ui5_slider_tickmark_top: -0.2525rem;
15+
--_ui5_slider_tickmark_height: 1rem;
16+
--_ui5_slider_tickmark_top: -0.3125rem; /* -(1rem tickmark - 0.375rem track) / 2 */
17+
--_ui5_slider_active_progress_border: none;
18+
--_ui5_slider_active_progress_left: 0;
19+
--_ui5_slider_active_progress_top: 0;
20+
--_ui5_slider_active_progress_height: var(--_ui5_slider_progress_height);
21+
--_ui5_slider_no_tickmarks_active_progress_border: none;
22+
--_ui5_slider_no_tickmarks_active_progress_left: 0;
23+
--_ui5_slider_no_tickmarks_active_progress_top: 0;
24+
--_ui5_slider_no_tickmarks_active_progress_height: var(--_ui5_slider_no_tickmarks_progress_height);
1425
}

packages/main/src/themes/sap_fiori_3_hcw/sizes-parameters.css

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
@import "../base/sizes-parameters.css";
22
:root {
3-
/* Slider, Range Slider */
4-
--_ui5_slider_handle_width: 1.25rem;
5-
--_ui5_slider_handle_height: 1.25rem;
6-
--_ui5_slider_handle_top: -0.5rem;
7-
83
/* ColorPicker */
94
--_ui5_color_picker_slider_handle_container_margin_top: -0.125rem;
105
}

packages/main/src/themes/sap_horizon/SliderBase-parameters.css

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
--_ui5_slider_handle_focus_width: 1px;
3838
--_ui5_slider_start_end_point_size: .5rem;
3939
--_ui5_slider_start_end_point_left: -.75rem;
40-
--_ui5_slider_start_end_point_top: -0.125rem;
40+
--_ui5_slider_start_end_point_top: -0.1875rem;
4141
--_ui5_slider_handle_focused_tooltip_distance: calc(var(--_ui5_slider_tooltip_bottom) - var(--_ui5_slider_handle_focus_width));
4242
--_ui5_slider_tooltip_border_box: border-box;
4343

@@ -62,6 +62,8 @@
6262
.ui5-content-density-compact,
6363
.sapUiSizeCompact {
6464
--_ui5_slider_handle_width: 1.5rem;
65+
--_ui5_slider_handle_height: 1.25rem;
66+
--_ui5_slider_handle_top: -0.5rem;
6567
--_ui5_range_slider_progress_focus_width: calc(100% + var(--_ui5_slider_handle_width) + 10px);
6668
--_ui5_range_slider_progress_focus_height: calc(var(--_ui5_slider_handle_height) + 10px);
6769
--_ui5_range_slider_progress_focus_top: -.8125rem;

0 commit comments

Comments
 (0)