at main 973 B view raw
1import { usePageTheme } from '@/components/Layout/Layout'; 2import { cn } from '@/lib/utils'; 3import React from 'react'; 4import { buttonBase, buttonVariants } from './Button.styles'; 5import { ButtonProps } from './Button.types'; 6 7export const Button: React.FC<ButtonProps> = ({ children, variant = 'primary', className = '', ...props }) => { 8 const pageTheme = usePageTheme(); 9 10 // Theme-based button colors: 11 // Accent: white border, semi-transparent white bg 12 // Default: blue border in light mode, white in dark, semi-transparent bg 13 const themeClasses = pageTheme === 'accent' 14 ? 'border-bones-white bg-bones-white-20 hover:bg-bones-white-30' 15 : 'border-bones-blue dark:border-bones-white bg-bones-blue-10 dark:bg-bones-white-10 hover:bg-bones-blue-20 dark:hover:bg-bones-white-20'; 16 17 return ( 18 <button className={cn(buttonBase, buttonVariants[variant], themeClasses, className)} {...props}> 19 {children} 20 </button> 21 ); 22}; 23 24export default Button;