diff --git a/src/components/ui/button/Button.vue b/src/components/ui/button/Button.vue new file mode 100644 index 0000000..ef04935 --- /dev/null +++ b/src/components/ui/button/Button.vue @@ -0,0 +1,26 @@ + + + diff --git a/src/components/ui/button/index.ts b/src/components/ui/button/index.ts new file mode 100644 index 0000000..b97260b --- /dev/null +++ b/src/components/ui/button/index.ts @@ -0,0 +1,34 @@ +import { cva, type VariantProps } from 'class-variance-authority' + +export { default as Button } from './Button.vue' + +export const buttonVariants = cva( + 'inline-flex items-center justify-center whitespace-nowrap font-display uppercase tracking-[0.2em] ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50', + { + variants: { + variant: { + default: 'rounded-full bg-primary text-primary-foreground hover:opacity-90', + outline: + 'rounded-full border border-accent/50 bg-transparent text-accent hover:bg-accent/10', + ghost: 'rounded-full text-accent hover:bg-accent/10', + link: 'text-accent underline-offset-4 hover:underline', + secondary: + 'rounded-full bg-secondary text-secondary-foreground hover:bg-secondary/80', + destructive: + 'rounded-full bg-destructive text-destructive-foreground hover:bg-destructive/90', + }, + size: { + default: 'h-12 px-6 py-3 text-xs', + sm: 'h-9 px-4 text-[10px]', + lg: 'h-14 px-8 text-sm', + icon: 'h-10 w-10 rounded-full', + }, + }, + defaultVariants: { + variant: 'default', + size: 'default', + }, + }, +) + +export type ButtonVariants = VariantProps diff --git a/src/views/AccommodationView.vue b/src/views/AccommodationView.vue index 1cfeb41..73f1b8f 100644 --- a/src/views/AccommodationView.vue +++ b/src/views/AccommodationView.vue @@ -1,6 +1,7 @@