Components: Fix placeholder color inconsistency across `SearchControl`, `TextControl`, `Inputcontrol`
Closes: https://github.com/WordPress/gutenberg/issues/64666
What?
This PR ensures a consistent placeholder color across the InputControl, SearchControl, and TextControl components by defining the color explicitly.
Why?
To address the issue where placeholder color varied depending on the applied styles.
How?
The placeholder color has been defined at the component level to avoid inconsistencies and improve accessibility.
Testing Instructions
- Test the
InputControl,SearchControl, andTextControlcomponents in the storybook - Ensure the placeholder color is consistent and meets the contrast ratio requirements.
| Component | Foreground Color | Background Color |
|---|---|---|
| InputControl | #1e1e1e9e (dark gray 62% opacity) |
#ffffff (white) |
| SearchControl | #1e1e1e9e (dark gray 62% opacity) |
#f0f0f0 (light gray) |
| TextControl | #1e1e1e9e (dark gray 62% opacity) |
#ffffff (white) |
Screenshots
SearchControl
- Their are talks around removing the background color to make the input box consistent with other input boxes https://github.com/WordPress/gutenberg/issues/56388#issuecomment-2300138008
| Before | After |
|---|---|
TextControl
| Before | After |
|---|---|
InputControl
| Before | After |
|---|---|
-
This PR aims to standardize the placeholder colors for the three components mentioned above. There has been an ongoing discussion about potentially removing the light gray color from the
SearchControl, as noted in this issue comment. -
I am happy to take on the task of working on removing the color, if needed.
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.
If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.
Co-authored-by: im3dabasia <[email protected]>
Co-authored-by: Mamaduka <[email protected]>
Co-authored-by: afercia <[email protected]>
Co-authored-by: t-hamano <[email protected]>
To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.
Hey @Mamaduka,
Whenever you have a moment, could you please review my PR? I’d really appreciate it.
Thanks for working on this, @im3dabasia!
Do you mind adding before/after screenshots? You can find examples here - #64586.
There's now a smaller PR https://github.com/WordPress/gutenberg/pull/69334 for the InputControl. My fault, I missed this PR and the associated issue https://github.com/WordPress/gutenberg/issues/64666. I'd suggest to merge https://github.com/WordPress/gutenberg/pull/69334 first, if no objections. The use this existing PR for a small improvement:
- Move the CSS-in-JS placeholder CSS rules to a new file in https://github.com/WordPress/gutenberg/blob/5c38661db385abdfbc0093a38fb01849d6793e6b/packages/components/src/utils/style-mixins.js and then reuse it in InputControl and TextareControl.
- Having this styling in a centralized place would help future adjustments and maintenance.
- The
opacityfor Firefox should be removed, see https://github.com/WordPress/gutenberg/issues/69311 - For the scss part, I'm already adding a mixin in https://github.com/WordPress/gutenberg/pull/69333 and I will take care to reuse it for the text control once this PR is merged.