dh_demo

DreamHanks demo project
git clone git://git.lair.cx/dh_demo
Log | Files | Refs | README

Title.tsx (603B)


      1 import classNames from '@/lib/classnames'
      2 import { ReactNode } from 'react'
      3 import styles from './Title.module.css'
      4 
      5 export interface TitleProps {
      6   size?: 'small' | 'medium' | 'large'
      7   kind?: 'title' | 'headline' | 'display'
      8   hasNoMargin?: boolean
      9   children: ReactNode
     10 }
     11 
     12 export default function Title (props: TitleProps) {
     13   const { size, kind, children } = props
     14 
     15   return (
     16     <h1 {...classNames(
     17       styles[`is-${size == null ? 'large' : size}`],
     18       styles[`is-${kind == null ? 'title' : kind}`],
     19       props.hasNoMargin && styles['has-no-margin']
     20     )}>
     21       {children}
     22     </h1>
     23   )
     24 }