Heading.styled.tsx 529 B

1234567891011121314151617181920
  1. import React from 'react';
  2. import styled from 'styled-components';
  3. type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
  4. interface HeadingBaseProps {
  5. $level: HeadingLevel;
  6. }
  7. const HeadingBase = styled.h1<HeadingBaseProps>`
  8. ${({ theme }) => theme.heading?.base}
  9. ${({ theme, $level }) => theme.heading?.variants[$level]}
  10. `;
  11. export interface Props {
  12. level?: HeadingLevel;
  13. }
  14. const Heading: React.FC<Props> = ({ level = 1, ...rest }) => {
  15. return <HeadingBase as={`h${level}`} $level={level} {...rest} />;
  16. };
  17. export default Heading;