react icon indicating copy to clipboard operation
react copied to clipboard

Deprecate and remove the input `contrast` prop

Open iansan5653 opened this issue 1 year ago • 6 comments

The contrast prop, when applied to Select, TextInput, or Textarea (one would also expect it on TextInputWithTokens but it's not available there) renders an input with a subtle background, somewhere between the default and disabled styling:

screenshot of TextInput with normal, contrast, and disabled stylings

In dark theme it has no effect:

the same screenshot in dark mode. All three inputs look the same

The documentation says this prop:

Changes background color to a higher contrast color

But ironically it actually reduces the contrast between the text and background.

This prop is problematic because, as shown above, it can make active inputs look disabled. This can and has caused confusion for users, and so the recommendation and effort has been to avoid using it in GitHub UI (including in PVC components). We've been considering getting rid of it for a while, so let's get it done.

iansan5653 avatar Mar 05 '24 15:03 iansan5653

I agree that we should get rid of the contrast prop. It's purpose was so you could have an input on a "secondary" background color (#f6f8fa) match the contrast of an input on a "primary" background color (#ffffff). However, it's often misused.

Here's an image for demonstration purposes: 2 sets of inputs on primary and secondary background colors

mperrotti avatar Mar 05 '24 15:03 mperrotti

I agree that we should get rid of the contrast prop. It's purpose was so you could have an input on a "secondary" background color (#f6f8fa) match the contrast of an input on a "primary" background color (#ffffff). However, it's often misused.

If this is important, could we just change the input to have a transparent background by default?

iansan5653 avatar Mar 05 '24 15:03 iansan5653

I'm worried about a default transparent background breaking designs where we're only able to reach the 3:1 contrast minimum because of the white input background.

I think this use-case is pretty rare and can be safely handled with style overrides.

mperrotti avatar Mar 05 '24 17:03 mperrotti

Hi! This issue has been marked as stale because it has been open with no activity for 180 days. You can comment on the issue or remove the stale label to keep it open. If you do nothing, this issue will be closed in 7 days.

github-actions[bot] avatar Sep 07 '24 23:09 github-actions[bot]