The asChild prop
twc offers a flexible way to reuse your classes on another component using the asChild prop. This prop allows you to replace the default component with a custom child element while keeping the defined classes.
Usage
A good example is an Anchor component that you may want to reuse but with a next/link component. Let's see how you can achieve this using asChild:
Take an Anchor component:
components/anchor.ts
import { twc } from "react-twc";
export const Anchor = twc.a`underline text-blue-800 hover:text-blue-900`;You can reuse the style for a next/link using asChild prop:
import NextLink from "next/link";
import { Anchor } from "./components/anchor";
export default () => (
<Anchor asChild>
<NextLink href="/">Go home</NextLink>
</Anchor>,
);To learn more about asChild, read Radix documentation (opens in a new tab). twc uses Slot component (opens in a new tab) internally to implement asChild prop.