• Docs
  • Blog
    • 0.24.0

    • Switch to dark mode
    Get Started
    Components
    Styling
    Theming

    Concepts

    OverviewCompositionTesting

    Layout

    Aspect RatioBleedBoxCenterContainerDividerFlexFloatGridLink OverlayScrollableStackWrap

    Components

    AccordionAdmonitionAvatarButtonCarouselCheckboxClipboardCollapsibleComboboxConfirm ModalCTAModalDate PickerDialogFieldFieldsetFile UploaderIcon ButtonInputLoading StatesMenuNotificationsNumber InputPin InputProgressPrompt ModalRadioRatingSelectSplit ButtonSwitchTableTabsTagTextTextareaToggleTooltip

    Utilities

    Feature FlagsForLocal StoragePortalShowsplitPropsTheme

    Composition

    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>

    Warning

    This is only available for the Text component which is a wrapper around our text-related patterns.

    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

    • Edit this page on Github
    Cerberus Design System | Docs