Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 2761048

Browse files
fix(colorinput): indicate focus on ColorInput
1 parent 86bf15f commit 2761048

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

‎src/components/ColorInput/ColorInput.js‎

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@ import React from 'react';
22
import propTypes from 'prop-types';
33

44
import styled, { css } from 'styled-components';
5+
import { focusOutline } from '../common';
56
import useControlledOrUncontrolled from '../common/hooks/useControlledOrUncontrolled';
67
import Button from '../Button/Button';
78
import Bar from '../Bar/Bar';
89

910
const StyledBar = styled(Bar)`
1011
height: 23px;
1112
position: relative;
12-
top: -1px;
13+
top: 0;
1314
`;
1415

1516
export const StyledColorInput = styled.input`
@@ -20,6 +21,7 @@ export const StyledColorInput = styled.input`
2021
left: 0;
2122
top: 0;
2223
opacity: 0;
24+
z-index: 1;
2325
`;
2426

2527
// TODO replace with SVG icon
@@ -28,7 +30,7 @@ const ColorPreview = styled.div`
2830
height: 21px;
2931
display: inline-block;
3032
width: 35px;
31-
margin-right: 0.5rem;
33+
margin-right: 7px;
3234
3335
background: ${({ color }) => color};
3436
@@ -46,13 +48,12 @@ const ColorPreview = styled.div`
4648
`;
4749

4850
const ChevronIcon = styled.span`
49-
position: relative;
5051
width: 0px;
5152
height: 0px;
5253
border-left: 6px solid transparent;
5354
border-right: 6px solid transparent;
5455
display: inline-block;
55-
margin-left: 0.5rem;
56+
margin-left: 6px;
5657
5758
${({ isDisabled }) =>
5859
isDisabled
@@ -65,6 +66,18 @@ const ChevronIcon = styled.span`
6566
: css`
6667
border-top: 6px solid ${({ theme }) => theme.text};
6768
`}
69+
&:after {
70+
content: '';
71+
box-sizing: border-box;
72+
position: absolute;
73+
top: ${({ variant }) => (variant === 'flat' ? '6px' : '8px')};
74+
right: 8px;
75+
width: 16px;
76+
height: 19px;
77+
}
78+
${StyledColorInput}:focus + &:after {
79+
${focusOutline}
80+
}
6881
`;
6982

7083
// TODO make sure all aria and role attributes are in place
@@ -109,7 +122,7 @@ const ColorInput = React.forwardRef(function ColorInput(props, ref) {
109122
ref={ref}
110123
{...otherProps}
111124
/>
112-
<ChevronIcon isDisabled={disabled} />
125+
<ChevronIcon isDisabled={disabled} variant={variant}/>
113126
</Button>
114127
);
115128
});

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /