pizza-online
36 строк · 768.0 Байт
1import {cn} from '@/lib/utils'
2import React from 'react'
3
4type TitleSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'
5
6interface Props extends React.HTMLAttributes<HTMLElement> {
7size?: TitleSize
8className?: string
9text: string
10}
11
12export const Title: React.FC<Props> = ({text, size = 'sm', className, ...rest}) => {
13const mapTagBySize = {
14xs: 'h5',
15sm: 'h4',
16md: 'h3',
17lg: 'h2',
18xl: 'h1',
19'2xl': 'h1',
20} as const
21
22const mapClassNameBySize = {
23xs: 'text-[16px]',
24sm: 'text-[22px]',
25md: 'text-[26px]',
26lg: 'text-[32px]',
27xl: 'text-[40px]',
28'2xl': 'text-[48px]',
29} as const
30
31return React.createElement(
32mapTagBySize[size],
33{className: cn(mapClassNameBySize[size], className), ...rest},
34text
35)
36}
37