diff --git a/apps/web/src/components/settings/SettingsNav.jsx b/apps/web/src/components/settings/SettingsNav.jsx index 7f4b9da..535fef1 100644 --- a/apps/web/src/components/settings/SettingsNav.jsx +++ b/apps/web/src/components/settings/SettingsNav.jsx @@ -26,7 +26,7 @@ export function SettingsNav({ value, onChange }) { key={id} type="button" onClick={() => onChange(id)} - className={`flex w-full items-center rounded-lg px-3 py-2.5 text-left text-sm font-medium transition-colors ${value === id ? 'bg-accent text-accent-foreground' : 'text-muted-foreground hover:bg-muted hover:text-foreground'}`} + className={`flex w-full items-center rounded-lg px-3 py-2.5 text-left text-sm font-medium transition-colors ${value === id ? 'bg-accent text-accent-foreground shadow-[inset_3px_0_0_var(--ui-primary)]' : 'text-muted-foreground hover:bg-muted/80 hover:text-foreground'}`} > {label} diff --git a/apps/web/src/components/ui/alert.jsx b/apps/web/src/components/ui/alert.jsx index 2032861..388d80a 100644 --- a/apps/web/src/components/ui/alert.jsx +++ b/apps/web/src/components/ui/alert.jsx @@ -4,9 +4,9 @@ import { cn } from '@/lib/utils'; const alertVariants = cva('relative w-full rounded-md border p-3.5 text-sm', { variants: { variant: { - default: 'bg-card text-card-foreground', - destructive: 'border-destructive/25 bg-destructive/5 text-destructive', - success: 'border-[#badfce] bg-[#eff8f4] text-[#125a42]' + default: 'border-border bg-card text-card-foreground shadow-[0_1px_1px_rgba(23,33,30,0.03)]', + destructive: 'border-[var(--ui-danger-border)] bg-[var(--ui-danger-soft)] text-destructive', + success: 'border-[var(--ui-success-border)] bg-[var(--ui-success-soft)] text-[var(--ui-success)]' } }, defaultVariants: { variant: 'default' } @@ -19,6 +19,6 @@ function AlertTitle({ className, ...props }) { return
; } function AlertDescription({ className, ...props }) { - return ; + return ; } export { Alert, AlertTitle, AlertDescription }; diff --git a/apps/web/src/components/ui/badge.jsx b/apps/web/src/components/ui/badge.jsx index 617091c..d9acfa9 100644 --- a/apps/web/src/components/ui/badge.jsx +++ b/apps/web/src/components/ui/badge.jsx @@ -3,15 +3,15 @@ import { cva } from 'class-variance-authority'; import { cn } from '@/lib/utils'; const badgeVariants = cva( - 'inline-flex w-fit items-center gap-1 rounded-md border px-2 py-0.5 text-[11px] font-semibold leading-5', + 'inline-flex w-fit items-center gap-1 rounded-md border px-2 py-0.5 text-[11px] font-semibold leading-5 shadow-[0_1px_0_rgba(23,33,30,0.03)]', { variants: { variant: { - default: 'border-transparent bg-primary text-primary-foreground', - secondary: 'border-transparent bg-secondary text-secondary-foreground', - outline: 'bg-card text-foreground', - destructive: 'border-transparent bg-destructive/10 text-destructive', - success: 'border-transparent bg-[#e6f4ee] text-[#126044]' + default: 'border-primary bg-primary text-primary-foreground', + secondary: 'border-border bg-secondary text-secondary-foreground', + outline: 'border-border bg-card text-foreground', + destructive: 'border-[var(--ui-danger-border)] bg-[var(--ui-danger-soft)] text-destructive', + success: 'border-[var(--ui-success-border)] bg-[var(--ui-success-soft)] text-[var(--ui-success)]' } }, defaultVariants: { variant: 'secondary' } diff --git a/apps/web/src/components/ui/button.jsx b/apps/web/src/components/ui/button.jsx index 0a23940..6e29473 100644 --- a/apps/web/src/components/ui/button.jsx +++ b/apps/web/src/components/ui/button.jsx @@ -8,10 +8,10 @@ const buttonVariants = cva( { variants: { variant: { - default: 'bg-primary px-4 text-primary-foreground hover:bg-primary/92', - secondary: 'bg-secondary px-4 text-secondary-foreground hover:bg-secondary/75', - outline: 'border bg-card px-4 text-foreground hover:bg-muted', - ghost: 'px-3 text-foreground hover:bg-muted', + default: 'bg-primary px-4 text-primary-foreground shadow-[0_1px_1px_rgba(23,33,30,0.12)] hover:bg-primary/92', + secondary: 'border border-transparent bg-secondary px-4 text-secondary-foreground hover:border-border hover:bg-secondary/80', + outline: 'border border-input bg-card px-4 text-foreground shadow-[0_1px_1px_rgba(23,33,30,0.03)] hover:border-ring/70 hover:bg-muted', + ghost: 'px-3 text-foreground hover:bg-accent hover:text-accent-foreground', destructive: 'bg-destructive px-4 text-white hover:bg-destructive/90', link: 'px-1 text-primary underline-offset-4 hover:underline' }, diff --git a/apps/web/src/components/ui/card.jsx b/apps/web/src/components/ui/card.jsx index 763ac28..f25b0c9 100644 --- a/apps/web/src/components/ui/card.jsx +++ b/apps/web/src/components/ui/card.jsx @@ -2,7 +2,7 @@ import * as React from 'react'; import { cn } from '@/lib/utils'; function Card({ className, ...props }) { - return ; + return ; } function CardHeader({ className, ...props }) { return ; diff --git a/apps/web/src/components/ui/input-group.jsx b/apps/web/src/components/ui/input-group.jsx index eaaabb8..b8155ef 100644 --- a/apps/web/src/components/ui/input-group.jsx +++ b/apps/web/src/components/ui/input-group.jsx @@ -15,7 +15,7 @@ function InputGroup({ data-slot="input-group" role="group" className={cn( - "group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5", + "group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input bg-card shadow-[0_1px_1px_rgba(23,33,30,0.03)] transition-[border-color,box-shadow,background-color] outline-none hover:border-ring/70 in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/25 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5", className )} {...props} diff --git a/apps/web/src/components/ui/input.jsx b/apps/web/src/components/ui/input.jsx index c4f020a..c150751 100644 --- a/apps/web/src/components/ui/input.jsx +++ b/apps/web/src/components/ui/input.jsx @@ -7,7 +7,7 @@ const Input = React.forwardRef(function Input({ className, type = 'text', ...pro ref={ref} type={type} className={cn( - 'flex h-10 w-full rounded-md border border-input bg-card px-3 py-2 text-sm text-foreground outline-none transition-shadow placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/15 disabled:cursor-not-allowed disabled:bg-muted disabled:opacity-70', + 'flex h-10 w-full rounded-md border border-input bg-card px-3 py-2 text-sm text-foreground shadow-[0_1px_1px_rgba(23,33,30,0.03)] outline-none transition-[border-color,box-shadow,background-color] placeholder:text-muted-foreground hover:border-ring/70 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/20 disabled:cursor-not-allowed disabled:bg-muted disabled:text-muted-foreground disabled:opacity-80', className )} {...props} diff --git a/apps/web/src/components/ui/select.jsx b/apps/web/src/components/ui/select.jsx index ff2691b..fe37584 100644 --- a/apps/web/src/components/ui/select.jsx +++ b/apps/web/src/components/ui/select.jsx @@ -39,7 +39,7 @@ function SelectTrigger({ data-slot="select-trigger" data-size={size} className={cn( - "flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", + "flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-card py-2 pr-2 pl-2.5 text-sm whitespace-nowrap shadow-[0_1px_1px_rgba(23,33,30,0.03)] transition-[border-color,box-shadow,background-color] outline-none select-none hover:border-ring/70 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/25 disabled:cursor-not-allowed disabled:bg-muted disabled:opacity-80 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className )} {...props} @@ -107,7 +107,7 @@ function SelectItem({