mirror of
https://github.com/luxfi/explore.git
synced 2026-09-24 00:28:18 +00:00
37 lines
1003 B
TypeScript
37 lines
1003 B
TypeScript
import type { HeadingProps as ChakraHeadingProps } from '@chakra-ui/react';
|
|
import { Heading as ChakraHeading } from '@chakra-ui/react';
|
|
import React from 'react';
|
|
|
|
export interface HeadingProps extends ChakraHeadingProps {
|
|
level?: '1' | '2' | '3';
|
|
}
|
|
|
|
export const Heading = React.forwardRef<HTMLHeadingElement, HeadingProps>(
|
|
function Heading(props, ref) {
|
|
const { level, ...rest } = props;
|
|
|
|
const textStyle = (() => {
|
|
switch (level) {
|
|
case '1':
|
|
return { base: 'heading.md', lg: 'heading.xl' };
|
|
case '2':
|
|
return { base: 'heading.sm', lg: 'heading.lg' };
|
|
case '3':
|
|
return { base: 'heading.xs', lg: 'heading.md' };
|
|
}
|
|
})();
|
|
|
|
const as = (() => {
|
|
switch (level) {
|
|
case '1':
|
|
return 'h1';
|
|
case '2':
|
|
return 'h2';
|
|
case '3':
|
|
return 'h3';
|
|
}
|
|
})();
|
|
|
|
return <ChakraHeading ref={ ref } color="heading" textStyle={ textStyle } as={ as } { ...rest }/>;
|
|
});
|