77 lines
2.2 KiB
TypeScript
77 lines
2.2 KiB
TypeScript
|
import { forwardRef, HTMLAttributes } from 'react';
|
||
|
|
||
|
export const Typography = {
|
||
|
h1: forwardRef<HTMLHeadingElement, HTMLAttributes<HTMLHeadingElement>>(
|
||
|
(props, ref) => {
|
||
|
return (
|
||
|
<h1
|
||
|
className={`m3 m3-typography display-hero ${props.className}`}
|
||
|
ref={ref}
|
||
|
>
|
||
|
{props.children}
|
||
|
</h1>
|
||
|
);
|
||
|
},
|
||
|
),
|
||
|
h2: forwardRef<HTMLHeadingElement, HTMLAttributes<HTMLHeadingElement>>(
|
||
|
(props, ref) => {
|
||
|
return (
|
||
|
<h2
|
||
|
className={`m3 m3-typography display-large ${props.className}`}
|
||
|
ref={ref}
|
||
|
>
|
||
|
{props.children}
|
||
|
</h2>
|
||
|
);
|
||
|
},
|
||
|
),
|
||
|
h3: forwardRef<HTMLHeadingElement, HTMLAttributes<HTMLHeadingElement>>(
|
||
|
(props, ref) => {
|
||
|
return (
|
||
|
<h3
|
||
|
className={`m3 m3-typography headline-medium ${props.className}`}
|
||
|
ref={ref}
|
||
|
>
|
||
|
{props.children}
|
||
|
</h3>
|
||
|
);
|
||
|
},
|
||
|
),
|
||
|
h4: forwardRef<HTMLHeadingElement, HTMLAttributes<HTMLHeadingElement>>(
|
||
|
(props, ref) => {
|
||
|
return (
|
||
|
<h4
|
||
|
className={`m3 m3-typography headline-small ${props.className}`}
|
||
|
ref={ref}
|
||
|
>
|
||
|
{props.children}
|
||
|
</h4>
|
||
|
);
|
||
|
},
|
||
|
),
|
||
|
h5: forwardRef<HTMLHeadingElement, HTMLAttributes<HTMLHeadingElement>>(
|
||
|
(props, ref) => {
|
||
|
return (
|
||
|
<h5
|
||
|
className={`m3 m3-typography title-medium ${props.className}`}
|
||
|
ref={ref}
|
||
|
>
|
||
|
{props.children}
|
||
|
</h5>
|
||
|
);
|
||
|
},
|
||
|
),
|
||
|
h6: forwardRef<HTMLHeadingElement, HTMLAttributes<HTMLHeadingElement>>(
|
||
|
(props, ref) => {
|
||
|
return (
|
||
|
<h6
|
||
|
className={`m3 m3-typography title-small ${props.className}`}
|
||
|
ref={ref}
|
||
|
>
|
||
|
{props.children}
|
||
|
</h6>
|
||
|
);
|
||
|
},
|
||
|
),
|
||
|
};
|