Registry / web-framework / react-input-autosize

react-input-autosize

JSON →
library3.0.0jsnpmunverified

React-Input-Autosize is a React component designed to provide an `<input>` field that automatically adjusts its width to fit its content. The current stable version is 3.0.0, supporting React versions 16.3.0 and 17.0.0. While there's no explicit release cadence, the package has maintained stability across major React versions. Its key differentiator lies in abstracting away the complexities of dynamic input sizing, typically achieved by wrapping the native input element within a `div` to accurately measure content width. It aims to replicate the behavior of a standard React input while handling resizing automatically, including managing custom font sizes and injecting necessary styles for cross-browser compatibility (e.g., hiding IE/Edge's clear indicator), although this style injection can be disabled for CSP-restricted environments. It functions exclusively as a controlled component.

npm install react-input-autosize
INSTALL
IMPORT
SIG · REACT-INPUT-AUTOSI
R
react-input-autosize
web-frameworkjavascriptv3.0.0
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18226 runs
build_error
glibc
node 18226 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

AutosizeInput
import AutosizeInput from 'react-input-autosize';
import { AutosizeInput } from 'react-input-autosize';
The component is exported as a default export.
AutosizeInput (CommonJS)
const AutosizeInput = require('react-input-autosize');
For CommonJS environments, ensure `react-input-autosize` is installed and resolved correctly by your bundler.

Demonstrates basic usage of `AutosizeInput` as a controlled component, showing how to manage its value and apply inline styles for proper sizing.

import React, { useState, useEffect } from 'react'; import AutosizeInput from 'react-input-autosize'; function MyForm() { const [inputValue, setInputValue] = useState('Hello World'); useEffect(() => { // This effect is just to show the value in console for demonstration // console.log('Current input value:', inputValue); }, [inputValue]); const handleChange = (event) => { setInputValue(event.target.value); }; return ( <div> <label> Auto-resizing Input: <AutosizeInput name="form-field-name" value={inputValue} onChange={handleChange} inputStyle={{ border: '1px solid #ccc', borderRadius: 4, padding: '5px 8px', fontSize: 16 }} placeholder="Type something here..." /> </label> <p>The input above resizes automatically as you type.</p> </div> ); } // Example of how to render this component in a typical React application: // import { createRoot } from 'react-dom/client'; // const container = document.getElementById('root'); // if (container) { // const root = createRoot(container); // root.render(<MyForm />); // }
Debug
Known issues
gotchaStyles applied to the input are only copied when the component mounts. Subsequent changes to stylesheets may cause size to be detected incorrectly.
fix
Re-mount the input (e.g., by providing a different `key` prop) or call the `copyInputStyles()` method on the component instance after styles change.
affects: >=3.0.0
gotchaThe component automatically injects a stylesheet to hide IE/Edge's 'clear' indicator, which can be incompatible with strict Content Security Policy (CSP) rules.
fix
Pass the `injectStyles={false}` prop to `AutosizeInput`. If you do this, you must manually add `input::-ms-clear {display: none;}` to your own stylesheet to prevent UI issues.
affects: >=3.0.0
gotcha`AutosizeInput` is a controlled input component and requires the `value` prop to function correctly. It does not support being used as an uncontrolled input.
fix
Always provide both `value` and `onChange` props to `AutosizeInput` to manage its state explicitly.
affects: >=3.0.0
gotchaIf your input uses custom font sizes not inherited from the default stylesheet, `AutosizeInput` might not calculate the correct width.
fix
Provide the custom font size directly to the component via the `inputStyle` prop, e.g., `<AutosizeInput inputStyle={{ fontSize: 36 }} />`.
affects: >=3.0.0
Errors
Common errors & fixes
Warning: A component is changing an uncontrolled input to be controlled.
Attempting to use `AutosizeInput` without providing a `value` prop, or initializing it without `value` then later supplying it.
fix
Ensure `AutosizeInput` always receives both a `value` prop and an `onChange` handler, as it is designed to be a controlled component.
AutosizeInput width calculation is incorrect after global stylesheet changes.
CSS styles (e.g., font-size, padding) affecting the input element were modified in a global stylesheet after the `AutosizeInput` component mounted.
fix
To force a re-evaluation of styles, either re-mount the component (by giving it a new `key` prop) or manually call `copyInputStyles()` on the `AutosizeInput` instance if you have a ref to it.
Upgrade
Version history
3.0.0latest on npm
Audit
Dependencies
reactrequiredRequired as a peer dependency for React component functionality.
Agent activity
2 hits · last 30 days
node
2
Resources
react-input-autosize — npm install react-input-autosize · libregistry