summaryrefslogtreecommitdiff
path: root/apps/web/src/app
diff options
context:
space:
mode:
authorMaze Winther <mazewinther@gmail.com>2025-07-31 13:39:47 +0200
committerMaze Winther <mazewinther@gmail.com>2025-07-31 13:39:47 +0200
commit6899450df9f460c8088527f3a06f49116f04a310 (patch)
treebc0aa6ce1a0e9afc02535661092e5167790488ef /apps/web/src/app
parent10afbda9ddd3c4a7160a9ec381ee9ae5ebcf6a94 (diff)
parentcd5642161b117fd5cb707cf9d405176459d9f37c (diff)
downloadopencut-6899450df9f460c8088527f3a06f49116f04a310.tar.gz
Merge branch 'feat/tailwindcss-v4' into staging
Diffstat (limited to 'apps/web/src/app')
-rw-r--r--apps/web/src/app/blog/[slug]/page.tsx4
-rw-r--r--apps/web/src/app/blog/page.tsx4
-rw-r--r--apps/web/src/app/contributors/page.tsx10
-rw-r--r--apps/web/src/app/globals.css288
-rw-r--r--apps/web/src/app/privacy/page.tsx6
-rw-r--r--apps/web/src/app/projects/page.tsx18
-rw-r--r--apps/web/src/app/roadmap/page.tsx14
-rw-r--r--apps/web/src/app/terms/page.tsx6
-rw-r--r--apps/web/src/app/why-not-capcut/page.tsx4
9 files changed, 246 insertions, 108 deletions
diff --git a/apps/web/src/app/blog/[slug]/page.tsx b/apps/web/src/app/blog/[slug]/page.tsx
index 0de1e0a8..d759050b 100644
--- a/apps/web/src/app/blog/[slug]/page.tsx
+++ b/apps/web/src/app/blog/[slug]/page.tsx
@@ -87,8 +87,8 @@ async function Page({ params }: PageProps) {
<main className="relative">
<div className="absolute inset-0 overflow-hidden pointer-events-none">
- <div className="absolute -top-40 -right-40 w-96 h-96 bg-gradient-to-br from-muted/20 to-transparent rounded-full blur-3xl" />
- <div className="absolute top-1/2 -left-40 w-80 h-80 bg-gradient-to-tr from-muted/10 to-transparent rounded-full blur-3xl" />
+ <div className="absolute -top-40 -right-40 w-96 h-96 bg-linear-to-br from-muted/20 to-transparent rounded-full blur-3xl" />
+ <div className="absolute top-1/2 -left-40 w-80 h-80 bg-linear-to-tr from-muted/10 to-transparent rounded-full blur-3xl" />
</div>
<div className="relative container max-w-3xl mx-auto px-4 py-16">
diff --git a/apps/web/src/app/blog/page.tsx b/apps/web/src/app/blog/page.tsx
index ca553a67..08da9fd7 100644
--- a/apps/web/src/app/blog/page.tsx
+++ b/apps/web/src/app/blog/page.tsx
@@ -28,8 +28,8 @@ export default async function BlogPage() {
<main className="relative">
<div className="absolute inset-0 overflow-hidden pointer-events-none">
- <div className="absolute -top-40 -right-40 w-96 h-96 bg-gradient-to-br from-muted/20 to-transparent rounded-full blur-3xl" />
- <div className="absolute top-1/2 -left-40 w-80 h-80 bg-gradient-to-tr from-muted/10 to-transparent rounded-full blur-3xl" />
+ <div className="absolute -top-40 -right-40 w-96 h-96 bg-linear-to-br from-muted/20 to-transparent rounded-full blur-3xl" />
+ <div className="absolute top-1/2 -left-40 w-80 h-80 bg-linear-to-tr from-muted/10 to-transparent rounded-full blur-3xl" />
</div>
<div className="relative container max-w-3xl mx-auto px-4 py-16">
diff --git a/apps/web/src/app/contributors/page.tsx b/apps/web/src/app/contributors/page.tsx
index 29151bd8..3ad99023 100644
--- a/apps/web/src/app/contributors/page.tsx
+++ b/apps/web/src/app/contributors/page.tsx
@@ -77,8 +77,8 @@ export default async function ContributorsPage() {
<main className="relative">
<div className="absolute inset-0 overflow-hidden pointer-events-none">
- <div className="absolute -top-40 -right-40 w-96 h-96 bg-gradient-to-br from-muted/20 to-transparent rounded-full blur-3xl" />
- <div className="absolute top-1/2 -left-40 w-80 h-80 bg-gradient-to-tr from-muted/10 to-transparent rounded-full blur-3xl" />
+ <div className="absolute -top-40 -right-40 w-96 h-96 bg-linear-to-br from-muted/20 to-transparent rounded-full blur-3xl" />
+ <div className="absolute top-1/2 -left-40 w-80 h-80 bg-linear-to-tr from-muted/10 to-transparent rounded-full blur-3xl" />
</div>
<div className="relative container mx-auto px-4 py-16">
@@ -138,8 +138,8 @@ export default async function ContributorsPage() {
className="group block flex-1"
>
<div className="relative mx-auto max-w-md">
- <div className="absolute inset-0 bg-gradient-to-r from-muted/50 to-muted/30 rounded-2xl blur group-hover:blur-md transition-all duration-300" />
- <Card className="relative bg-background/80 backdrop-blur-sm border-2 group-hover:border-muted-foreground/20 transition-all duration-300 group-hover:shadow-xl">
+ <div className="absolute inset-0 bg-linear-to-r from-muted/50 to-muted/30 rounded-2xl blur-sm group-hover:blur-md transition-all duration-300" />
+ <Card className="relative bg-background/80 backdrop-blur-xs border-2 group-hover:border-muted-foreground/20 transition-all duration-300 group-hover:shadow-xl">
<CardContent className="p-8 text-center">
<div className="relative mb-6">
<Avatar className="h-24 w-24 mx-auto ring-4 ring-background shadow-2xl">
@@ -268,7 +268,7 @@ export default async function ContributorsPage() {
animationDelay: `${index * 100}ms`,
}}
>
- <Card className="h-full bg-background/80 backdrop-blur-sm border-2 group-hover:border-muted-foreground/20 transition-all duration-300 group-hover:shadow-xl">
+ <Card className="h-full bg-background/80 backdrop-blur-xs border-2 group-hover:border-muted-foreground/20 transition-all duration-300 group-hover:shadow-xl">
<CardContent className="p-6 text-center h-full flex flex-col">
<div className="mb-4">
<div className="w-12 h-12 mx-auto rounded-full bg-muted/50 flex items-center justify-center group-hover:bg-muted/70 transition-colors">
diff --git a/apps/web/src/app/globals.css b/apps/web/src/app/globals.css
index 2f7158cc..ac14f007 100644
--- a/apps/web/src/app/globals.css
+++ b/apps/web/src/app/globals.css
@@ -1,82 +1,105 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
+@import "tailwindcss";
-@layer base {
- :root {
- --background: 0 0% 100%;
- --foreground: 0 0% 3.9%;
- --card: 0 0% 100%;
- --card-foreground: 0 0% 3.9%;
- --popover: 0 0% 100%;
- --popover-foreground: 0 0% 3.9%;
- --primary: 0 0% 9%;
- --primary-foreground: 0 0% 98%;
- --secondary: 0 0% 96.1%;
- --secondary-foreground: 0 0% 9%;
- --muted: 0 0% 96.1%;
- --muted-foreground: 0 0% 45.1%;
- --accent: 0 0% 96.1%;
- --accent-foreground: 0 0% 9%;
- --destructive: 0 84.2% 60.2%;
- --destructive-foreground: 0 0% 98%;
- --border: 0 0% 89.8%;
- --input: 0 0% 89.8%;
- --ring: 0 0% 3.9%;
- --chart-1: 12 76% 61%;
- --chart-2: 173 58% 39%;
- --chart-3: 197 37% 24%;
- --chart-4: 43 74% 66%;
- --chart-5: 27 87% 67%;
- --radius: 1rem;
- --sidebar-background: 0 0% 100%;
- --sidebar-foreground: 0 0% 3.9%;
- --sidebar-primary: 0 0% 9%;
- --sidebar-primary-foreground: 0 0% 98%;
- --sidebar-accent: 0 0% 96.1%;
- --sidebar-accent-foreground: 0 0% 9%;
- --sidebar-border: 0 0% 89.8%;
- --sidebar-ring: 0 0% 3.9%;
- }
- .dark {
- --background: 0 0% 4%;
- --foreground: 0 0% 89%;
- --card: 0 0% 14.9%;
- --card-foreground: 0 0% 98%;
- --popover: 0 0% 14.9%;
- --popover-foreground: 0 0% 98%;
- --primary: 180 95% 40%;
- --primary-foreground: 0 0% 9%;
- --secondary: 0 0% 14.9%;
- --secondary-foreground: 0 0% 98%;
- --muted: 0 0% 14.9%;
- --muted-foreground: 0 0% 63.9%;
- --accent: 0 0% 14.9%;
- --accent-foreground: 0 0% 98%;
- --destructive: 0 100% 60%;
- --destructive-foreground: 0 0% 98%;
- --border: 0 0% 17%;
- --input: 0 0% 14.9%;
- --ring: 0 0% 83.1%;
- --chart-1: 220 70% 50%;
- --chart-2: 160 60% 45%;
- --chart-3: 30 80% 55%;
- --chart-4: 280 65% 60%;
- --chart-5: 340 75% 55%;
- --sidebar-background: 0 0% 3.9%;
- --sidebar-foreground: 0 0% 98%;
- --sidebar-primary: 0 0% 98%;
- --sidebar-primary-foreground: 0 0% 9%;
- --sidebar-accent: 0 0% 14.9%;
- --sidebar-accent-foreground: 0 0% 98%;
- --sidebar-border: 0 0% 14.9%;
- --sidebar-ring: 0 0% 83.1%;
- --panel-background: 0 0% 11%;
- --panel-accent: 0 0% 15%;
- }
+/* Custom variant for dark mode */
+@custom-variant dark (&:where(.dark, .dark *));
+
+/* Plugins */
+@plugin "@tailwindcss/typography";
+@plugin "tailwindcss-animate";
+
+:root {
+ /* Custom colors - light mode (default) */
+ --background: hsl(0 0% 100%);
+ --foreground: hsl(0 0% 3.9%);
+ --card: hsl(0 0% 100%);
+ --card-foreground: hsl(0 0% 3.9%);
+ --popover: hsl(0 0% 100%);
+ --popover-foreground: hsl(0 0% 3.9%);
+ --primary: hsl(0 0% 9%);
+ --primary-foreground: hsl(0 0% 98%);
+ --secondary: hsl(0 0% 96.1%);
+ --secondary-foreground: hsl(0 0% 9%);
+ --muted: hsl(0 0% 96.1%);
+ --muted-foreground: hsl(0 0% 45.1%);
+ --accent: hsl(0 0% 96.1%);
+ --accent-foreground: hsl(0 0% 9%);
+ --destructive: hsl(0 84.2% 60.2%);
+ --destructive-foreground: hsl(0 0% 98%);
+ --border: hsl(0 0% 89.8%);
+ --input: hsl(0 0% 89.8%);
+ --ring: hsl(0 0% 3.9%);
+ --chart-1: hsl(12 76% 61%);
+ --chart-2: hsl(173 58% 39%);
+ --chart-3: hsl(197 37% 24%);
+ --chart-4: hsl(43 74% 66%);
+ --chart-5: hsl(27 87% 67%);
+ --sidebar-background: hsl(0 0% 100%);
+ --sidebar-foreground: hsl(0 0% 3.9%);
+ --sidebar-primary: hsl(0 0% 9%);
+ --sidebar-primary-foreground: hsl(0 0% 98%);
+ --sidebar-accent: hsl(0 0% 96.1%);
+ --sidebar-accent-foreground: hsl(0 0% 9%);
+ --sidebar-border: hsl(0 0% 89.8%);
+ --sidebar-ring: hsl(0 0% 3.9%);
+
+ /* Radius base */
+ --radius: 1rem;
+}
+.dark {
+ /* Custom colors - dark mode */
+ --background: hsl(0 0% 4%);
+ --foreground: hsl(0 0% 89%);
+ --card: hsl(0 0% 14.9%);
+ --card-foreground: hsl(0 0% 98%);
+ --popover: hsl(0 0% 14.9%);
+ --popover-foreground: hsl(0 0% 98%);
+ --primary: hsl(180 95% 40%);
+ --primary-foreground: hsl(0 0% 9%);
+ --secondary: hsl(0 0% 14.9%);
+ --secondary-foreground: hsl(0 0% 98%);
+ --muted: hsl(0 0% 14.9%);
+ --muted-foreground: hsl(0 0% 63.9%);
+ --accent: hsl(0 0% 14.9%);
+ --accent-foreground: hsl(0 0% 98%);
+ --destructive: hsl(0 100% 60%);
+ --destructive-foreground: hsl(0 0% 98%);
+ --border: hsl(0 0% 17%);
+ --input: hsl(0 0% 14.9%);
+ --ring: hsl(0 0% 83.1%);
+ --chart-1: hsl(220 70% 50%);
+ --chart-2: hsl(160 60% 45%);
+ --chart-3: hsl(30 80% 55%);
+ --chart-4: hsl(280 65% 60%);
+ --chart-5: hsl(340 75% 55%);
+ --sidebar-background: hsl(0 0% 3.9%);
+ --sidebar-foreground: hsl(0 0% 98%);
+ --sidebar-primary: hsl(0 0% 98%);
+ --sidebar-primary-foreground: hsl(0 0% 9%);
+ --sidebar-accent: hsl(0 0% 14.9%);
+ --sidebar-accent-foreground: hsl(0 0% 98%);
+ --sidebar-border: hsl(0 0% 14.9%);
+ --sidebar-ring: hsl(0 0% 83.1%);
+ --panel-background: hsl(0 0% 11%);
+ --panel-accent: hsl(0 0% 15%);
}
@layer base {
+ /*
+ The default border color has changed to `currentcolor` in Tailwind CSS v4,
+ so we've added these compatibility styles to make sure everything still
+ looks the same as it did with Tailwind CSS v3.
+
+ If we ever want to remove these styles, we need to add an explicit border
+ color utility to any element that depends on these defaults.
+ */
+ *,
+ ::after,
+ ::before,
+ ::backdrop,
+ ::file-selector-button {
+ border-color: var(--color-gray-200, currentcolor);
+ }
+ /* Other default base styles */
* {
@apply border-border;
}
@@ -86,3 +109,118 @@
overscroll-behavior-x: contain;
}
}
+
+@theme inline {
+ /* Responsive breakpoints */
+ --breakpoint-xs: 30rem;
+
+ /* Typography */
+ --font-sans: var(--font-inter), sans-serif;
+
+ /* Font sizes */
+ --text-base: 0.95rem;
+ --text-base--line-height: calc(1.5 / 0.95);
+ --text-xs: 0.8rem;
+ --text-xs--line-height: calc(1 / 0.8);
+
+ /* Border radius */
+ --radius-lg: var(--radius);
+ --radius-md: calc(var(--radius) - 2px);
+ --radius-sm: calc(var(--radius) - 8px);
+
+ /* Palette mapped to root design tokens */
+ --color-background: var(--background);
+ --color-foreground: var(--foreground);
+
+ --color-card: var(--card);
+ --color-card-foreground: var(--card-foreground);
+
+ --color-popover: var(--popover);
+ --color-popover-foreground: var(--popover-foreground);
+
+ --color-primary: var(--primary);
+ --color-primary-foreground: var(--primary-foreground);
+
+ --color-secondary: var(--secondary);
+ --color-secondary-foreground: var(--secondary-foreground);
+
+ --color-muted: var(--muted);
+ --color-muted-foreground: var(--muted-foreground);
+
+ --color-accent: var(--accent);
+ --color-accent-foreground: var(--accent-foreground);
+
+ --color-destructive: var(--destructive);
+ --color-destructive-foreground: var(--destructive-foreground);
+
+ --color-border: var(--border);
+ --color-input: var(--input);
+ --color-ring: var(--ring);
+
+ /* Chart colors */
+ --color-chart-1: var(--chart-1);
+ --color-chart-2: var(--chart-2);
+ --color-chart-3: var(--chart-3);
+ --color-chart-4: var(--chart-4);
+ --color-chart-5: var(--chart-5);
+
+ /* Sidebar */
+ --color-sidebar: var(--sidebar-background);
+ --color-sidebar-foreground: var(--sidebar-foreground);
+ --color-sidebar-primary: var(--sidebar-primary);
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
+ --color-sidebar-accent: var(--sidebar-accent);
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
+ --color-sidebar-border: var(--sidebar-border);
+ --color-sidebar-ring: var(--sidebar-ring);
+
+ /* Panel */
+ --color-panel: var(--panel-background);
+ --color-panel-accent: var(--panel-accent);
+
+ /* Animations */
+ --animate-accordion-down: accordion-down 0.2s ease-out;
+ --animate-accordion-up: accordion-up 0.2s ease-out;
+
+ @keyframes accordion-down {
+ from {
+ height: 0;
+ }
+ to {
+ height: var(--radix-accordion-content-height);
+ }
+ }
+
+ @keyframes accordion-up {
+ from {
+ height: var(--radix-accordion-content-height);
+ }
+ to {
+ height: 0;
+ }
+ }
+}
+
+@utility scrollbar-hidden {
+ -ms-overflow-style: none;
+ scrollbar-width: none;
+ &::-webkit-scrollbar {
+ display: none;
+ }
+}
+
+@utility scrollbar-x-hidden {
+ -ms-overflow-style: none;
+ scrollbar-width: none;
+ &::-webkit-scrollbar:horizontal {
+ display: none;
+ }
+}
+
+@utility scrollbar-y-hidden {
+ -ms-overflow-style: none;
+ scrollbar-width: none;
+ &::-webkit-scrollbar:vertical {
+ display: none;
+ }
+}
diff --git a/apps/web/src/app/privacy/page.tsx b/apps/web/src/app/privacy/page.tsx
index b7d700b5..4bb1e023 100644
--- a/apps/web/src/app/privacy/page.tsx
+++ b/apps/web/src/app/privacy/page.tsx
@@ -24,8 +24,8 @@ export default function PrivacyPage() {
<Header />
<main className="relative">
<div className="absolute inset-0 overflow-hidden pointer-events-none">
- <div className="absolute -top-40 -right-40 w-96 h-96 bg-gradient-to-br from-muted/20 to-transparent rounded-full blur-3xl" />
- <div className="absolute top-1/2 -left-40 w-80 h-80 bg-gradient-to-tr from-muted/10 to-transparent rounded-full blur-3xl" />
+ <div className="absolute -top-40 -right-40 w-96 h-96 bg-linear-to-br from-muted/20 to-transparent rounded-full blur-3xl" />
+ <div className="absolute top-1/2 -left-40 w-80 h-80 bg-linear-to-tr from-muted/10 to-transparent rounded-full blur-3xl" />
</div>
<div className="relative container mx-auto px-4 py-16">
<div className="max-w-4xl mx-auto">
@@ -47,7 +47,7 @@ export default function PrivacyPage() {
have any questions.
</p>
</div>
- <Card className="bg-background/80 backdrop-blur-sm border-2 border-muted/30">
+ <Card className="bg-background/80 backdrop-blur-xs border-2 border-muted/30">
<CardContent className="p-8 text-base leading-relaxed space-y-8">
<section>
<h2 className="text-2xl font-semibold mb-4">
diff --git a/apps/web/src/app/projects/page.tsx b/apps/web/src/app/projects/page.tsx
index 289bf9c1..797cb544 100644
--- a/apps/web/src/app/projects/page.tsx
+++ b/apps/web/src/app/projects/page.tsx
@@ -142,7 +142,7 @@ export default function ProjectsPage() {
href="/"
className="flex items-center gap-1 hover:text-muted-foreground transition-colors"
>
- <ChevronLeft className="!size-5 shrink-0" />
+ <ChevronLeft className="size-5! shrink-0" />
<span className="text-sm font-medium">Back</span>
</Link>
<div className="block md:hidden">
@@ -153,7 +153,7 @@ export default function ProjectsPage() {
size="sm"
onClick={handleCancelSelection}
>
- <X className="!size-4" />
+ <X className="size-4!" />
Cancel
</Button>
{selectedProjects.size > 0 && (
@@ -162,7 +162,7 @@ export default function ProjectsPage() {
size="sm"
onClick={() => setIsBulkDeleteDialogOpen(true)}
>
- <Trash2 className="!size-4" />
+ <Trash2 className="size-4!" />
Delete ({selectedProjects.size})
</Button>
)}
@@ -192,7 +192,7 @@ export default function ProjectsPage() {
{isSelectionMode ? (
<div className="flex items-center gap-2">
<Button variant="outline" onClick={handleCancelSelection}>
- <X className="!size-4" />
+ <X className="size-4!" />
Cancel
</Button>
{selectedProjects.size > 0 && (
@@ -200,7 +200,7 @@ export default function ProjectsPage() {
variant="destructive"
onClick={() => setIsBulkDeleteDialogOpen(true)}
>
- <Trash2 className="!size-4" />
+ <Trash2 className="size-4!" />
Delete Selected ({selectedProjects.size})
</Button>
)}
@@ -399,7 +399,7 @@ function ProjectCard({
>
{isSelectionMode && (
<div className="absolute top-3 left-3 z-10">
- <div className="w-5 h-5 rounded bg-background/80 backdrop-blur-sm border flex items-center justify-center">
+ <div className="w-5 h-5 rounded bg-background/80 backdrop-blur-xs border flex items-center justify-center">
<Checkbox
checked={isSelected}
onCheckedChange={(checked) =>
@@ -426,7 +426,7 @@ function ProjectCard({
/>
) : (
<div className="w-full h-full bg-muted/50 flex items-center justify-center">
- <Video className="h-12 w-12 flex-shrink-0 text-muted-foreground" />
+ <Video className="h-12 w-12 shrink-0 text-muted-foreground" />
</div>
)}
</div>
@@ -501,7 +501,7 @@ function ProjectCard({
<div className="space-y-1">
<div className="flex items-center gap-1.5 text-sm text-muted-foreground">
- <Calendar className="!size-4" />
+ <Calendar className="size-4!" />
<span>Created {formatDate(project.createdAt)}</span>
</div>
</div>
@@ -543,7 +543,7 @@ function ProjectCard({
function CreateButton({ onClick }: { onClick?: () => void }) {
return (
<Button className="flex" onClick={onClick}>
- <Plus className="!size-4" />
+ <Plus className="size-4!" />
<span className="text-sm font-medium">New project</span>
</Button>
);
diff --git a/apps/web/src/app/roadmap/page.tsx b/apps/web/src/app/roadmap/page.tsx
index 5c003cf0..b26da5aa 100644
--- a/apps/web/src/app/roadmap/page.tsx
+++ b/apps/web/src/app/roadmap/page.tsx
@@ -122,8 +122,8 @@ export default function RoadmapPage() {
<Header />
<main className="relative">
<div className="absolute inset-0 overflow-hidden pointer-events-none">
- <div className="absolute -top-40 -right-40 w-96 h-96 bg-gradient-to-br from-muted/20 to-transparent rounded-full blur-3xl" />
- <div className="absolute top-1/2 -left-40 w-80 h-80 bg-gradient-to-tr from-muted/10 to-transparent rounded-full blur-3xl" />
+ <div className="absolute -top-40 -right-40 w-96 h-96 bg-linear-to-br from-muted/20 to-transparent rounded-full blur-3xl" />
+ <div className="absolute top-1/2 -left-40 w-80 h-80 bg-linear-to-tr from-muted/10 to-transparent rounded-full blur-3xl" />
</div>
<div className="relative container mx-auto px-4 py-16">
<div className="max-w-4xl mx-auto">
@@ -148,7 +148,7 @@ export default function RoadmapPage() {
{roadmapItems.map((item, index) => (
<div key={index} className="relative">
<div className="flex items-start gap-2">
- <span className="text-lg font-medium text-muted-foreground select-none leading-[1.5]">
+ <span className="text-lg font-medium text-muted-foreground select-none leading-normal">
{index + 1}.
</span>
<div className="flex-1 pt-[2px]">
@@ -156,13 +156,13 @@ export default function RoadmapPage() {
<h3 className="font-medium text-lg">{item.title}</h3>
<Badge
className={cn("shadow-none", {
- "!bg-green-500 text-white":
+ "bg-green-500! text-white":
item.status.type === "complete",
- "!bg-yellow-500 text-white":
+ "bg-yellow-500! text-white":
item.status.type === "pending",
- "!bg-blue-500 text-white":
+ "bg-blue-500! text-white":
item.status.type === "info",
- "!bg-foreground/10 text-accent-foreground":
+ "bg-foreground/10! text-accent-foreground":
item.status.type === "default",
})}
>
diff --git a/apps/web/src/app/terms/page.tsx b/apps/web/src/app/terms/page.tsx
index 7d1fda7f..ee202d8b 100644
--- a/apps/web/src/app/terms/page.tsx
+++ b/apps/web/src/app/terms/page.tsx
@@ -24,8 +24,8 @@ export default function TermsPage() {
<Header />
<main className="relative">
<div className="absolute inset-0 overflow-hidden pointer-events-none">
- <div className="absolute -top-40 -right-40 w-96 h-96 bg-gradient-to-br from-muted/20 to-transparent rounded-full blur-3xl" />
- <div className="absolute top-1/2 -left-40 w-80 h-80 bg-gradient-to-tr from-muted/10 to-transparent rounded-full blur-3xl" />
+ <div className="absolute -top-40 -right-40 w-96 h-96 bg-linear-to-br from-muted/20 to-transparent rounded-full blur-3xl" />
+ <div className="absolute top-1/2 -left-40 w-80 h-80 bg-linear-to-tr from-muted/10 to-transparent rounded-full blur-3xl" />
</div>
<div className="relative container mx-auto px-4 py-16">
<div className="max-w-4xl mx-auto">
@@ -47,7 +47,7 @@ export default function TermsPage() {
editor.
</p>
</div>
- <Card className="bg-background/80 backdrop-blur-sm border-2 border-muted/30">
+ <Card className="bg-background/80 backdrop-blur-xs border-2 border-muted/30">
<CardContent className="p-8 text-base leading-relaxed space-y-8">
<section>
<h2 className="text-2xl font-semibold mb-4">
diff --git a/apps/web/src/app/why-not-capcut/page.tsx b/apps/web/src/app/why-not-capcut/page.tsx
index 7fe6df66..b05860a6 100644
--- a/apps/web/src/app/why-not-capcut/page.tsx
+++ b/apps/web/src/app/why-not-capcut/page.tsx
@@ -7,8 +7,8 @@ export default function WhyNotCapcut() {
<main className="relative mt-12">
<div className="absolute inset-0 overflow-hidden pointer-events-none">
- <div className="absolute -top-40 -right-40 w-96 h-96 bg-gradient-to-br from-muted/20 to-transparent rounded-full blur-3xl" />
- <div className="absolute top-1/2 -left-40 w-80 h-80 bg-gradient-to-tr from-muted/10 to-transparent rounded-full blur-3xl" />
+ <div className="absolute -top-40 -right-40 w-96 h-96 bg-linear-to-br from-muted/20 to-transparent rounded-full blur-3xl" />
+ <div className="absolute top-1/2 -left-40 w-80 h-80 bg-linear-to-tr from-muted/10 to-transparent rounded-full blur-3xl" />
</div>
<div className="relative container mx-auto px-4 py-16">