Concepts
OverviewCompositionTestingLayout
Aspect RatioBleedBoxCenterContainerDividerFlexFloatGridLink OverlayScrollableStackWrapComponents
AccordionAdmonitionAvatarButtonCarouselCheckboxClipboardCollapsibleComboboxConfirm ModalCTAModalDate PickerDialogFieldFieldsetFile UploaderIcon ButtonInputLoading StatesMenuNotificationsNumber InputPin InputProgressPrompt ModalRadioRatingSelectSplit ButtonSwitchTableTabsTagTextTextareaToggleTooltipUtilities
Feature FlagsForLocal StoragePortalShowsplitPropsThemeComposition
Learn how to compose components in Cerberus.The as Prop
Used to change the underlying HTML element that a React component renders. It provides a straightforward way to change the underlying element while retaining the component's functionality.
<Text as="h3">Hello, world!</Text>The asChild Prop
Used to compose a component's functionality onto its child element. This approach, inspired by Radix UI, offers maximum flexibility.
<Button asChild> <Link href="/some-page">Open</Link></Button>In this example, the asChild prop allows the link to be used as the
button (e.g., a button-styled link).
Best Practices
To avoid common pitfalls when using the as and asChild props, there are a
few best practices to consider:
- Forward Refs: Ensure that the underlying component forwards the ref passed to it properly.
- Spread Props: Ensure that the underlying component spreads the props passed to it.
Advanced Usage Example
const MyComponent = forwardRef((props, ref) => { return <Box ref={ref} {...props} />})
<Button asChild> <MyComponent> Click me </MyComponent></Button>On this page