Ariakit
/

DisclosureContent

Renders an element that can be shown or hidden by a Disclosure component.

Code examples

Optional Props


alwaysVisible

boolean | undefined = false

Determines whether the content element should remain visible even when the open state is false. If this prop is set to true, the hidden prop and the display: none style will not be applied, unless explicitly set otherwise.

This prop is particularly useful when using third-party animation libraries such as Motion or React Spring, where the element needs to be visible for exit animations to work.

Live examples


render

RenderProp<React.HTMLAttributes<any> & { ref?: React.Ref<any> | undefined; }> | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | undefined

Allows the component to be rendered as a different HTML element or React component. The value can be a React element or a function that takes in the original component props and gives back a React element with the props merged.

Some Ariakit components detect the type of the underlying element when they mount. If the render element's type may change while the component is mounted, pass a key prop that changes with the element type so React remounts the component with the new element. Remounting resets uncontrolled state, so keep the relevant state controlled:

key={custom ? "custom" : "native"}
checked={checked}
onChange={() => setChecked(!checked)}
render={custom ? <div /> : <input />}
/>

Check out the Composition guide for more details.


store

DisclosureStore | undefined

Object returned by the useDisclosureStore hook. If not provided, the closest DisclosureProvider component's context will be used.


unmountOnHide

boolean | undefined = false

When set to true, the content element will be unmounted and removed from the DOM when it's hidden.

Live examples

Stay tuned

Join 1,000+ subscribers and receive monthly tips & updates on new Ariakit content.

No spam. Unsubscribe anytime. Read latest issue