diff --git a/landing/src/app/globals.css b/landing/src/app/globals.css index 219d81bd..122e224a 100644 --- a/landing/src/app/globals.css +++ b/landing/src/app/globals.css @@ -27,25 +27,26 @@ } .dark { - --background: 0 0% 0%; - --foreground: 0 0% 100%; - --card: 0 0% 0%; - --card-foreground: 0 0% 100%; - --popover: 0 0% 0%; - --popover-foreground: 0 0% 100%; - --primary: 0 0% 100%; - --primary-foreground: 0 0% 0%; - --secondary: 0 0% 10%; - --secondary-foreground: 0 0% 100%; - --muted: 0 0% 10%; + --background: 0 0% 3%; + --foreground: 0 0% 98%; + --card: 0 0% 8% / 0.6; + --card-foreground: 0 0% 98%; + --popover: 0 0% 8% / 0.8; + --popover-foreground: 0 0% 98%; + --primary: 0 0% 98%; + --primary-foreground: 0 0% 8%; + --secondary: 0 0% 12% / 0.5; + --secondary-foreground: 0 0% 98%; + --muted: 0 0% 12% / 0.4; --muted-foreground: 0 0% 65%; - --accent: 0 0% 10%; - --accent-foreground: 0 0% 100%; - --destructive: 0 0% 100%; - --destructive-foreground: 0 0% 0%; - --border: 0 0% 20%; - --input: 0 0% 20%; - --ring: 0 0% 100%; + --accent: 0 0% 15% / 0.5; + --accent-foreground: 0 0% 98%; + --destructive: 0 62% 50%; + --destructive-foreground: 0 0% 98%; + --border: 0 0% 15% / 0.5; + --input: 0 0% 15% / 0.5; + --ring: 0 0% 98% / 0.2; + --radius: 1rem; } } @@ -54,7 +55,10 @@ @apply border-border; } body { - @apply bg-background text-foreground; + @apply bg-background text-foreground antialiased; + background-image: + radial-gradient(at 0% 0%, rgba(255, 255, 255, 0.03) 0px, transparent 50%), + radial-gradient(at 100% 100%, rgba(255, 255, 255, 0.02) 0px, transparent 50%); } } diff --git a/landing/src/components/DownloadSection.tsx b/landing/src/components/DownloadSection.tsx index 321c8cc7..e3b4d4fe 100644 --- a/landing/src/components/DownloadSection.tsx +++ b/landing/src/components/DownloadSection.tsx @@ -35,10 +35,10 @@ export function DownloadSection() {
{downloads.map(({ platform, icon: Icon, link, description }) => ( - +
-
+
diff --git a/landing/src/components/Header.tsx b/landing/src/components/Header.tsx index 00a1ac6d..066c3ae3 100644 --- a/landing/src/components/Header.tsx +++ b/landing/src/components/Header.tsx @@ -7,11 +7,11 @@ import { GITHUB_REPO } from '@/lib/constants'; export function Header() { return ( -
+
{/* Logo */} - + voicebox diff --git a/landing/src/components/ui/button.tsx b/landing/src/components/ui/button.tsx index cb7e65f9..dcb9443b 100644 --- a/landing/src/components/ui/button.tsx +++ b/landing/src/components/ui/button.tsx @@ -4,25 +4,25 @@ import { cva, type VariantProps } from 'class-variance-authority'; import { cn } from '@/lib/utils'; const buttonVariants = cva( - 'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium 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', + 'inline-flex items-center justify-center whitespace-nowrap rounded-xl text-sm font-medium ring-offset-background transition-all duration-200 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: 'bg-primary text-primary-foreground hover:bg-primary/90', + default: 'bg-primary text-primary-foreground hover:bg-primary/90 shadow-lg shadow-black/20 active:scale-[0.98]', destructive: - 'bg-destructive text-destructive-foreground hover:bg-destructive/90', + 'bg-destructive text-destructive-foreground hover:bg-destructive/90 shadow-lg shadow-destructive/20 active:scale-[0.98]', outline: - 'border border-input bg-background hover:bg-accent hover:text-accent-foreground', + 'border border-border bg-background/50 backdrop-blur-sm hover:bg-accent/50 hover:border-border transition-all active:scale-[0.98]', secondary: - 'bg-secondary text-secondary-foreground hover:bg-secondary/80', - ghost: 'hover:bg-accent hover:text-accent-foreground', + 'bg-secondary text-secondary-foreground hover:bg-secondary/80 backdrop-blur-sm active:scale-[0.98]', + ghost: 'hover:bg-accent/50 hover:text-accent-foreground backdrop-blur-sm active:scale-[0.98]', link: 'text-primary underline-offset-4 hover:underline', }, size: { default: 'h-10 px-4 py-2', - sm: 'h-9 rounded-md px-3', - lg: 'h-11 rounded-md text-lg px-8', - icon: 'h-10 w-10', + sm: 'h-9 rounded-lg px-3', + lg: 'h-12 rounded-xl text-base px-8 font-semibold', + icon: 'h-10 w-10 rounded-xl', }, }, defaultVariants: { diff --git a/landing/src/components/ui/card.tsx b/landing/src/components/ui/card.tsx index 81bd82d7..d6000a6f 100644 --- a/landing/src/components/ui/card.tsx +++ b/landing/src/components/ui/card.tsx @@ -8,7 +8,7 @@ const Card = React.forwardRef<
(({ className, ...props }, ref) => (
)); @@ -59,7 +59,7 @@ const CardContent = React.forwardRef< HTMLDivElement, React.HTMLAttributes >(({ className, ...props }, ref) => ( -
+
)); CardContent.displayName = 'CardContent'; diff --git a/landing/src/components/ui/feature-card.tsx b/landing/src/components/ui/feature-card.tsx index 91801a65..4d7b6bfe 100644 --- a/landing/src/components/ui/feature-card.tsx +++ b/landing/src/components/ui/feature-card.tsx @@ -11,9 +11,15 @@ interface FeatureCardProps { export function FeatureCard({ title, description, icon, className }: FeatureCardProps) { return ( - + - {icon &&
{icon}
} + {icon && ( +
+
+ {icon} +
+
+ )} {title}
diff --git a/landing/src/components/ui/section.tsx b/landing/src/components/ui/section.tsx index c5a11481..e88040f0 100644 --- a/landing/src/components/ui/section.tsx +++ b/landing/src/components/ui/section.tsx @@ -9,7 +9,7 @@ interface SectionProps { export function Section({ children, className, id }: SectionProps) { return ( -
+
{children}
);