JedWatson / JedWatson/react-select
Better styling control for native <input> in Creatable + Multi mode
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 28k
- Forks
- 4.1k
- PR merge metrics
- No merged PRs in 30d
Description
We've been using react-select@5 with Creatable and isMulti, and are trying to style the native <input> used for entering new tags.
Problem
The native <input> element:
<input class="select__input" ... />
is styled via inline styles and cannot be fully targeted or overridden using:
classNames.input(applies to a parent div)components.Input(wraps the input, doesn’t pass props to it)styles.input
This limits full integration into modern utility-based styling systems like Tailwind.
✅ What we tried
opacity-0- full
styles.inputoverride classNames.inputandcomponents.Input— do not reach native input
Suggestion
Could we expose a way to:
- Pass a
classNameorrefdirectly to the native<input> - OR provide a
getInputProps()helper likedownshiftthat lets us spread custom props on it
This would let developers:
- Apply custom focus styles using
ring-*classes - Control caret/text/placeholder rendering
- Integrate seamlessly with CSS frameworks
Thanks again for this powerful and flexible component! Happy to recreate the issue in an isolated code sandbox if needed.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing how the native input is exposed through classNames.input, components.Input, and styles.input in a minimal Creatable + isMulti reproduction. Compare the proposed className/ref or getInputProps approaches and define which native props must be supported. Done means consumers can directly customize the native input without breaking tag creation or multi-value entry.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react, typescript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100