favycon/components/button/index.tsx
Rui Saraiva 265c65168a
feat(favycon): add about us modal (#49)
* feat(about-us): add about us modal

* fix(dark-mode): fix dark mode white flash

* improvement(seo): improved seo meta tags

* improvement(copy-code): add code copied label

* improvement(dark-mode): improve dark mode white flash
2020-04-23 09:16:33 +01:00

40 lines
899 B
TypeScript

import React from 'react'
import PropTypes from 'prop-types'
import classNames from 'classnames'
import styles from './index.module.scss'
type ButtonProps = {
children: PropTypes.ReactNodeLike
variant: 'primary' | 'transparent' | 'regularTransparent'
weight: 'regular' | 'medium' | 'semiBold' | 'bold'
color: 'black' | 'gray' | 'white' | 'link'
background: 'bgLink' | 'bgGreen'
}
const Button = ({
children,
variant,
weight,
color,
background,
...props
}: ButtonProps & React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>) => {
const className = classNames(styles[variant], styles[weight], styles[color], styles[background], props.className)
return (
<button {...props} className={className}>
{children}
</button>
)
}
Button.defaultProps = {
variant: 'primary',
weight: 'bold',
color: 'black',
background: '',
}
export { Button }