Skip to content

Commit e6ee42a

Browse files
Merge release/1.33.0 into main branch (#709)
* change Select option color to $ux-gray-900 (#707) * text-decoration none on DropdownItem hover (#706) * add unstyled variant to DropdownToggle (#704)
1 parent 03efd6f commit e6ee42a

File tree

8 files changed

+146
-6
lines changed

8 files changed

+146
-6
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@user-interviews/ui-design-system",
3-
"version": "1.32.5",
3+
"version": "1.33.0",
44
"dependencies": {
55
"react-bootstrap": "^2.0.2",
66
"react-router-dom": "^5.2.0",

spec/__snapshots__/Storyshots.test.js.snap

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5149,6 +5149,92 @@ exports[`Storyshots Components/Dropdown Sizes 1`] = `
51495149
</div>
51505150
`;
51515151

5152+
exports[`Storyshots Components/Dropdown Unstyled Toggle 1`] = `
5153+
<div
5154+
style={
5155+
Object {
5156+
"padding": "1rem",
5157+
}
5158+
}
5159+
>
5160+
<div
5161+
className="Dropdown dropdown"
5162+
>
5163+
<button
5164+
aria-expanded={false}
5165+
aria-label="dropdown-toggle"
5166+
className="DropdownToggle DropdownToggle--unstyled DropdownToggle--no-caret btn btn-primary"
5167+
disabled={false}
5168+
onClick={[Function]}
5169+
type="button"
5170+
>
5171+
<div
5172+
style={
5173+
Object {
5174+
"alignItems": "center",
5175+
"backgroundColor": "#444444",
5176+
"display": "flex",
5177+
"flexDirection": "row",
5178+
"justifyContent": "space-between",
5179+
"padding": "12px",
5180+
"width": "200px",
5181+
}
5182+
}
5183+
>
5184+
<div>
5185+
<div
5186+
style={
5187+
Object {
5188+
"fontSize": "18px",
5189+
"fontWeight": "700",
5190+
}
5191+
}
5192+
>
5193+
Team A
5194+
</div>
5195+
<div
5196+
style={
5197+
Object {
5198+
"backgroundColor": "#444444",
5199+
"fontSize": "12px",
5200+
"fontWeight": "400",
5201+
}
5202+
}
5203+
>
5204+
Organization
5205+
</div>
5206+
</div>
5207+
<div
5208+
style={
5209+
Object {
5210+
"marginRight": "4px",
5211+
}
5212+
}
5213+
>
5214+
<svg
5215+
aria-hidden="true"
5216+
className="svg-inline--fa fa-chevron-down fa-w-14 "
5217+
data-icon="chevron-down"
5218+
data-prefix="fas"
5219+
focusable="false"
5220+
role="img"
5221+
style={Object {}}
5222+
viewBox="0 0 448 512"
5223+
xmlns="http://www.w3.org/2000/svg"
5224+
>
5225+
<path
5226+
d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"
5227+
fill="currentColor"
5228+
style={Object {}}
5229+
/>
5230+
</svg>
5231+
</div>
5232+
</div>
5233+
</button>
5234+
</div>
5235+
</div>
5236+
`;
5237+
51525238
exports[`Storyshots Components/Form Default 1`] = `
51535239
<div
51545240
style={

src/Dropdown/Dropdown.mdx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,13 @@ Avoid the Dropdown component if:
5757
<Story id="components-dropdown--icon-swap" />
5858
</Canvas>
5959

60+
### Unstyled Toggle
61+
- Use the `unstyled` and `removeCaret` prop on `DropdownToggle` to remove default styling.
62+
63+
<Canvas>
64+
<Story id="components-dropdown--unstyled-toggle" />
65+
</Canvas>
66+
6067

6168
## Formatting
6269

@@ -66,6 +73,7 @@ Avoid the Dropdown component if:
6673

6774
## Best practices
6875

76+
6977
### General
7078
The Dropdown component should:
7179

src/Dropdown/Dropdown.stories.jsx

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ import React from 'react';
33
import {
44
Dropdown, DropdownToggle, DropdownItem, DropdownMenu,
55
} from 'src/Dropdown';
6-
import { faEllipsisV, faFileAlt } from '@fortawesome/pro-solid-svg-icons';
6+
7+
import { faEllipsisV, faFileAlt, faChevronDown } from '@fortawesome/pro-solid-svg-icons';
78

89
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
910
import mdx from './Dropdown.mdx';
@@ -101,3 +102,33 @@ export const IconSwap = () => (
101102
</Dropdown>
102103
</>
103104
);
105+
106+
export const UnstyledToggle = () => (
107+
<Dropdown>
108+
<DropdownToggle removeCaret unstyled>
109+
<div style={{
110+
padding: '12px',
111+
backgroundColor: '#444444',
112+
width: '200px',
113+
display: 'flex',
114+
flexDirection: 'row',
115+
alignItems: 'center',
116+
justifyContent: 'space-between',
117+
}}
118+
>
119+
<div>
120+
<div style={{ fontSize: '18px', fontWeight: '700' }}>Team A</div>
121+
<div style={{ fontSize: '12px', fontWeight: '400', backgroundColor: '#444444' }}>Organization</div>
122+
</div>
123+
<div style={{ marginRight: '4px' }}>
124+
<FontAwesomeIcon icon={faChevronDown} />
125+
</div>
126+
</div>
127+
</DropdownToggle>
128+
<DropdownMenu>
129+
<DropdownItem href="#">Team A</DropdownItem>
130+
<DropdownItem href="#">Team B</DropdownItem>
131+
<DropdownItem href="#">Team C</DropdownItem>
132+
</DropdownMenu>
133+
</Dropdown>
134+
);

src/Dropdown/DropdownItem.scss

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
color: $ux-gray-900;
66

77
&:hover {
8-
background-color: $ux-blue-100;
8+
background-color: $ux-blue-200;
9+
text-decoration: none;
910
}
1011

1112
&:focus {

src/Dropdown/DropdownToggle.jsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,26 @@ const DropdownToggle = ({
1818
id,
1919
leadingIcon,
2020
removeCaret,
21+
unstyled,
2122
...props
2223
}) => (
2324
<RBDropdown.Toggle
2425
aria-label={ariaLabel}
2526
as={as}
2627
bsPrefix={removeCaret ? 'DropdownToggle--no-caret' : bsPrefix}
2728
childBsPrefix={childBsPrefix}
28-
className={classNames('DropdownToggle', className)}
29+
className={classNames(
30+
'DropdownToggle',
31+
className,
32+
{ 'DropdownToggle--unstyled': unstyled },
33+
)}
2934
id={id}
3035
{...props}
3136
>
3237
{ leadingIcon && (<FontAwesomeIcon className="icon-left" icon={leadingIcon} />)}
3338
{ children }
3439
</RBDropdown.Toggle>
35-
);
40+
);
3641

3742
DropdownToggle.propTypes = {
3843
/**
@@ -64,6 +69,10 @@ DropdownToggle.propTypes = {
6469
This allows you to use a different icon of your choice.
6570
*/
6671
removeCaret: PropTypes.bool,
72+
/**
73+
If true, it removes all styling from toggle button. Use for full custom DropdownToggle styling.
74+
*/
75+
unstyled: PropTypes.bool,
6776
};
6877

6978
DropdownToggle.defaultProps = {
@@ -75,6 +84,7 @@ DropdownToggle.defaultProps = {
7584
id: undefined,
7685
leadingIcon: undefined,
7786
removeCaret: undefined,
87+
unstyled: undefined,
7888
};
7989

8090
export default DropdownToggle;

src/Dropdown/DropdownToggle.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ $warning: $ux-yellow-400;
77
.DropdownToggle {
88
@include font-type-30--bold;
99

10+
&--unstyled {
11+
all: unset;
12+
}
13+
1014
i, svg {
1115
&.icon-left {
1216
margin-right: $ux-spacing-20;

src/Select/styles.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ const defaultStyles = ({ size }) => ({
9191
}) => ({
9292
...styles,
9393
backgroundColor: isSelected ? systemColors.UX_BLUE_200 : styles.backgroundColor,
94-
color: systemColors.UX_BLACK,
94+
color: systemColors.UX_GRAY_900,
9595
fontWeight: fontWeights.light,
9696
fontSize: '0.875rem',
9797
cursor: 'pointer',

0 commit comments

Comments
 (0)