Button.jsx 801 B

12345678910111213141516171819
  1. import Link from 'next/link'
  2. import clsx from 'clsx'
  3. const styles = {
  4. primary:
  5. 'rounded-full bg-sky-300 py-2 px-4 text-sm font-semibold text-slate-900 hover:bg-sky-200 focus:outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-300/50 active:bg-sky-500',
  6. secondary:
  7. 'rounded-full bg-slate-800 py-2 px-4 text-sm font-medium text-white hover:bg-slate-700 focus:outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white/50 active:text-slate-400',
  8. }
  9. export function Button({ variant = 'primary', className, href, ...props }) {
  10. className = clsx(styles[variant], className)
  11. return href ? (
  12. <Link href={href} className={className} {...props} />
  13. ) : (
  14. <button className={className} {...props} />
  15. )
  16. }