0

Working on my first Next.js 14 project and quickly found out the theme I'd authored in Chakra UI will not work with server components (reference: Support for NextJS 14) until Chakra UI version 3 is released and as I'm not wanting to use the use client for every component I'm going to learn TailwindCSS and re-write everything.

That said I have a component in Chakra UI:

interface DefStyles { fontFamily: string fontWeight: string textAlign: string mb: string mx: string maxWidth: string } const defStyles: DefStyles = { fontFamily: 'heading', fontWeight: 'semibold', textAlign: 'center', mb: '4', mx: '5', maxWidth: 'lg', } interface Props { foo: string bar: string } // stripped component export default function ChakraComponent({ foo, bar }: Props) { return ( <Flex justify="center" w="full" direction="column" align="center" > <Text as="h3" color="primary.500" fontSize="xs" {...defStyles}> {foo} </Text> <Text color="white" {...defStyles}> {bar} </Text> </Flex> ) } 

that I'm spreading some default styles:

const defStyles: DefStyles = { fontFamily: 'heading', fontWeight: 'semibold', textAlign: 'center', mb: '4', mx: '5', maxWidth: 'lg', } 

when I create this in TailwindCSS:

export default function TailwindComponent({ foo, bar }: Props) { return ( <div className="p-6 w-full flex justify-center flex-col items-center"> <h3 className='text-sm text-primary'>{foo}</h3> <p className="text-white">{bar}</p> </div> ) } 

I'm stuck trying to figure out how to re-use some common styles. I've read about:

Research:

what is the correct way I can re-use this on a component level in the same component file?

1 Answer 1

0

Create a variant of the Text component. So a new component called <MyNewText> which has those styles in the className via tailwind

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.