Skip to content

Commit e3f7edc

Browse files
janhasselabbeyhrttay1orjoneskodiakhq[bot]
authored
feat(progress-bar): add alignment variants (#10769)
Co-authored-by: Abbey Hart <abbeyhrt@gmail.com> Co-authored-by: Taylor Jones <tay1orjones@users.noreply.github.com> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
1 parent ee251fd commit e3f7edc

File tree

5 files changed

+66
-0
lines changed

5 files changed

+66
-0
lines changed

packages/components/src/components/progress-bar/_progress-bar.scss

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,27 @@
8484
background-position-x: -105%;
8585
}
8686
}
87+
88+
.#{$prefix}--progress-bar--inline {
89+
display: flex;
90+
align-items: center;
91+
}
92+
93+
.#{$prefix}--progress-bar--inline .#{$prefix}--progress-bar__label {
94+
flex-shrink: 0;
95+
margin-right: $spacing-05;
96+
margin-bottom: 0;
97+
}
98+
99+
.#{$prefix}--progress-bar--inline .#{$prefix}--progress-bar__helper-text {
100+
@include hidden;
101+
}
102+
103+
.#{$prefix}--progress-bar--indented .#{$prefix}--progress-bar__label,
104+
.#{$prefix}--progress-bar--indented .#{$prefix}--progress-bar__helper-text {
105+
padding-right: $spacing-05;
106+
padding-left: $spacing-05;
107+
}
87108
}
88109

89110
@include exports('progress-bar') {

packages/react/__tests__/__snapshots__/PublicAPI-test.js.snap

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8718,6 +8718,16 @@ Map {
87188718
],
87198719
"type": "oneOf",
87208720
},
8721+
"type": Object {
8722+
"args": Array [
8723+
Array [
8724+
"default",
8725+
"inline",
8726+
"indented",
8727+
],
8728+
],
8729+
"type": "oneOf",
8730+
},
87218731
"value": Object {
87228732
"type": "number",
87238733
},

packages/react/src/components/ProgressBar/ProgressBar-story.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,19 @@ const sizes = {
2121
'Big (big) - default': 'big',
2222
};
2323

24+
const types = {
25+
'Default (default)': 'default',
26+
'Inline (inline)': 'inline',
27+
'indented (indented)': 'indented',
28+
};
29+
2430
const props = () => ({
2531
helperText: text('Helper text (helperText)', 'Optional helper text'),
2632
hideLabel: boolean('Hide the label (hideLabel)', false),
2733
label: text('Label text (label)', 'Progress bar label'),
2834
max: number('Maximum value (max)', 100),
2935
size: select('Size (size)', sizes, 'big'),
36+
type: select('Type (type)', types, 'default'),
3037
value: number('Current value (value)', 75),
3138
});
3239

packages/react/src/components/ProgressBar/ProgressBar.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ function ProgressBar({
2020
label,
2121
max = 100,
2222
size = 'big',
23+
type = 'default',
2324
value,
2425
}) {
2526
const labelId = useId('progress-bar');
@@ -40,6 +41,7 @@ function ProgressBar({
4041
const wrapperClasses = classNames(
4142
`${prefix}--progress-bar`,
4243
`${prefix}--progress-bar--${size}`,
44+
`${prefix}--progress-bar--${type}`,
4345
{
4446
[`${prefix}--progress-bar--indeterminate`]: indeterminate,
4547
},
@@ -108,6 +110,11 @@ ProgressBar.propTypes = {
108110
*/
109111
size: PropTypes.oneOf(['small', 'big']),
110112

113+
/**
114+
* Defines the alignment variant of the progress bar.
115+
*/
116+
type: PropTypes.oneOf(['default', 'inline', 'indented']),
117+
111118
/**
112119
* The current value.
113120
*/

packages/styles/scss/components/progress-bar/_progress-bar.scss

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
@use '../../theme' as *;
1212
@use '../../type' as *;
1313
@use '../../utilities/convert' as *;
14+
@use '../../utilities/visually-hidden' as *;
1415

1516
/// Progress Bar styles
1617
/// @access public
@@ -87,4 +88,24 @@
8788
background-position-x: -105%;
8889
}
8990
}
91+
92+
.#{$prefix}--progress-bar--inline {
93+
display: flex;
94+
align-items: center;
95+
}
96+
97+
.#{$prefix}--progress-bar--inline .#{$prefix}--progress-bar__label {
98+
flex-shrink: 0;
99+
margin-bottom: 0;
100+
margin-inline-end: $spacing-05;
101+
}
102+
103+
.#{$prefix}--progress-bar--inline .#{$prefix}--progress-bar__helper-text {
104+
@include visually-hidden;
105+
}
106+
107+
.#{$prefix}--progress-bar--indented .#{$prefix}--progress-bar__label,
108+
.#{$prefix}--progress-bar--indented .#{$prefix}--progress-bar__helper-text {
109+
padding-inline: $spacing-05;
110+
}
90111
}

0 commit comments

Comments
 (0)