Skip to content

Commit 7c8f26d

Browse files
authored
fix: Increase input clear button target size to 24×24 pixels (#3253)
1 parent ded9233 commit 7c8f26d

File tree

5 files changed

+36
-9
lines changed

5 files changed

+36
-9
lines changed

src/button/constants.scss

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,20 @@ $variants: (
7878
'disabled-border-color': transparent,
7979
'disabled-color': awsui.$color-text-button-inline-icon-disabled,
8080
),
81+
'inline-icon-pointer-target': (
82+
'default-background': transparent,
83+
'default-border-color': transparent,
84+
'default-color': awsui.$color-text-button-inline-icon-default,
85+
'hover-background': transparent,
86+
'hover-border-color': transparent,
87+
'hover-color': awsui.$color-text-button-inline-icon-hover,
88+
'active-background': transparent,
89+
'active-border-color': transparent,
90+
'active-color': awsui.$color-text-button-inline-icon-default,
91+
'disabled-background': transparent,
92+
'disabled-border-color': transparent,
93+
'disabled-color': awsui.$color-text-button-inline-icon-disabled,
94+
),
8195
'inline-link': (
8296
'default-background': transparent,
8397
'default-border-color': transparent,

src/button/internal.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,13 @@ import styles from './styles.css.js';
4141
import testUtilStyles from './test-classes/styles.css.js';
4242

4343
export type InternalButtonProps = Omit<ButtonProps, 'variant'> & {
44-
variant?: ButtonProps['variant'] | 'flashbar-icon' | 'breadcrumb-group' | 'menu-trigger' | 'modal-dismiss';
44+
variant?:
45+
| ButtonProps['variant']
46+
| 'flashbar-icon'
47+
| 'breadcrumb-group'
48+
| 'menu-trigger'
49+
| 'modal-dismiss'
50+
| 'inline-icon-pointer-target';
4551
badge?: boolean;
4652
analyticsAction?: string;
4753
__nativeAttributes?:
@@ -105,7 +111,8 @@ export const InternalButton = React.forwardRef(
105111
const isDisabledWithReason = (variant === 'normal' || variant === 'primary') && !!disabledReason && disabled;
106112
const hasAriaDisabled = (loading && !disabled) || (disabled && __focusable) || isDisabledWithReason;
107113
const shouldHaveContent =
108-
children && ['icon', 'inline-icon', 'flashbar-icon', 'modal-dismiss'].indexOf(variant) === -1;
114+
children &&
115+
['icon', 'inline-icon', 'flashbar-icon', 'modal-dismiss', 'inline-icon-pointer-target'].indexOf(variant) === -1;
109116

110117
if ((iconName || iconUrl || iconSvg) && iconAlign === 'right' && external) {
111118
warnOnce('Button', 'A right-aligned icon should not be combined with an external icon.');

src/button/styles.scss

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,8 @@
8989
);
9090
}
9191

92-
&.variant-inline-icon {
92+
&.variant-inline-icon,
93+
&.variant-inline-icon-pointer-target {
9394
@include styles.focus-highlight(awsui.$space-button-inline-icon-focus-outline-gutter);
9495
}
9596
}
@@ -110,11 +111,11 @@
110111

111112
&.variant-icon,
112113
&.variant-inline-icon,
114+
&.variant-inline-icon-pointer-target,
113115
&.variant-flashbar-icon {
114116
// Icon has vertical padding, but no horizontal, we need to conpensate this
115117
// in order to have equal height and width
116-
padding-inline-start: awsui.$space-xxs;
117-
padding-inline-end: awsui.$space-xxs;
118+
padding-inline: awsui.$space-xxs;
118119
}
119120

120121
&.variant-modal-dismiss {
@@ -124,8 +125,13 @@
124125
}
125126

126127
&.variant-inline-icon {
127-
padding-block-start: 0;
128-
padding-block-end: 0;
128+
padding-block: 0;
129+
border-block: 0;
130+
border-inline: 0;
131+
}
132+
133+
&.variant-inline-icon-pointer-target {
134+
padding-block: awsui.$space-xxxs;
129135
border-block: 0;
130136
border-inline: 0;
131137
}

src/input/internal.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ function InternalInput(
203203
// Used for test utils
204204
// eslint-disable-next-line react/forbid-component-props
205205
className={styles['input-button-right']}
206-
variant="inline-icon"
206+
variant="inline-icon-pointer-target"
207207
formAction="none"
208208
iconName={__rightIcon}
209209
onClick={__onRightIconClick}

src/input/styles.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@
139139

140140
.input-icon-right {
141141
position: absolute;
142-
inset-block-start: styles.$control-icon-vertical-offset;
142+
inset-block-start: calc(#{styles.$control-icon-vertical-offset} - #{awsui.$space-xxxs});
143143
inset-inline-end: calc(#{styles.$control-icon-horizontal-offset} - #{awsui.$space-xxs});
144144
}
145145

0 commit comments

Comments
 (0)