PrimeUI PRO for React is now available 🚀View Demos

IconField

An unstyled compound component that wraps an input together with an icon.

Build inputs with embedded leading or trailing icons with complete control over layout and styling.

Features#

  • Compound component API with two sub-components: Root, Inset
  • Inset positions an icon inside the input boundary
  • Icons inside Inset can be interactive with event handlers like onClick
  • Compatible with the size setting of the input field

Usage#

import { IconField } from 'primereact/iconfield';
import { InputText } from 'primereact/inputtext';
<IconField.Root>
    <InputText />
    <IconField.Inset>
        <SearchIcon />
    </IconField.Inset>
</IconField.Root>

API#

IconFieldRoot#

NameTypeDefault
refRef<unknown>—
The reference to the component instance.
pIfbooleantrue
Whether the component should be rendered.
styleCSSProperties | ((instance?: IconFieldRootInstance) => undefined | CSSProperties)—
The style to apply to the component.
classNamestring | ((instance?: IconFieldRootInstance) => undefined | string)—
The class name to apply to the component.
asnull | string | number | bigint | boolean | ComponentClass<any, any> | FunctionComponent<any> | ReactElement<unknown, string | JSXElementConstructor<any>> | Iterable<ReactNode, any, any> | ReactPortal | Promise<AwaitedReactNode>—
The component type to render.
asChildbooleanfalse
Whether the component should be rendered as a child component.
instanceIconFieldRootInstance—
The instance to pass to the component.
ptSafeRecord<IconFieldRootPassThrough>—
The pass-through props to pass to the component.
ptOptionsPassThroughOptions—
The pass-through options to pass to the component.
unstyledboolean—
Whether the component should be rendered without classes.
dtunknown—
The design token to use for the component.
stylesStylesOptions<ComponentInstance>—
The styles to use for the component.
render(instance: IconFieldRootInstance) => ReactNode—
The render function to render the component with instance access.
childrenany—
The children to render. Accepts `React.ReactNode` for static content or a render function `(instance: I) => React.ReactNode` for instance access. Typed as `any` to avoid JSX type errors when used directly in templates.
[key: string]any—
pt-{optionName}-*-—
Pass through attributes for customizing component. For more info, see Pass Through tab.
AttributeValue
data-scope"iconfield"
data-part"root"

IconFieldInset#

NameTypeDefault
refRef<unknown>—
The reference to the component instance.
pIfbooleantrue
Whether the component should be rendered.
styleCSSProperties | ((instance?: IconFieldInsetInstance) => undefined | CSSProperties)—
The style to apply to the component.
classNamestring | ((instance?: IconFieldInsetInstance) => undefined | string)—
The class name to apply to the component.
asnull | string | number | bigint | boolean | ComponentClass<any, any> | FunctionComponent<any> | ReactElement<unknown, string | JSXElementConstructor<any>> | Iterable<ReactNode, any, any> | ReactPortal | Promise<AwaitedReactNode>—
The component type to render.
asChildbooleanfalse
Whether the component should be rendered as a child component.
instanceIconFieldInsetInstance—
The instance to pass to the component.
ptSafeRecord<IconFieldInsetPassThrough>—
The pass-through props to pass to the component.
ptOptionsPassThroughOptions—
The pass-through options to pass to the component.
unstyledboolean—
Whether the component should be rendered without classes.
dtunknown—
The design token to use for the component.
stylesStylesOptions<ComponentInstance>—
The styles to use for the component.
render(instance: IconFieldInsetInstance) => ReactNode—
The render function to render the component with instance access.
childrenany—
The children to render. Accepts `React.ReactNode` for static content or a render function `(instance: I) => React.ReactNode` for instance access. Typed as `any` to avoid JSX type errors when used directly in templates.
[key: string]any—
pt-{optionName}-*-—
Pass through attributes for customizing component. For more info, see Pass Through tab.

Accessibility#

Screen Reader#

IconField.Root and IconField.Inset do not require any roles and attributes.

Keyboard Support#

Component does not include any interactive elements.