diff --git a/frontend/app/globals.css b/frontend/app/globals.css
index 33d51423..eba809e2 100644
--- a/frontend/app/globals.css
+++ b/frontend/app/globals.css
@@ -25,6 +25,7 @@
--color-ring: var(--ring);
--color-input: var(--input);
--color-border: var(--border);
+ --color-destructive-foreground: var(--destructive-foreground);
--color-destructive: var(--destructive);
--color-accent-foreground: var(--accent-foreground);
--color-accent: var(--accent);
@@ -61,6 +62,7 @@
--accent: oklch(0.967 0.001 286.375);
--accent-foreground: oklch(0.21 0.006 285.885);
--destructive: oklch(0.577 0.245 27.325);
+ --destructive-foreground: oklch(98.5% 0% 0);
--border: oklch(0.92 0.004 286.32);
--input: oklch(0.92 0.004 286.32);
--ring: oklch(0.705 0.015 286.067);
@@ -95,6 +97,7 @@
--accent: oklch(0.274 0.006 286.033);
--accent-foreground: oklch(0.985 0 0);
--destructive: oklch(0.704 0.191 22.216);
+ --destructive-foreground: oklch(98.5% 0% 0);
--border: oklch(1 0 0 / 10%);
--input: oklch(1 0 0 / 15%);
--ring: oklch(0.552 0.016 285.938);
@@ -193,4 +196,4 @@
80% { transform: rotate(-1deg); }
100% { transform: rotate(0deg); }
}
-}
\ No newline at end of file
+}
diff --git a/frontend/components/home/footer-section.tsx b/frontend/components/home/footer-section.tsx
index 7f4630d3..7fe36d74 100644
--- a/frontend/components/home/footer-section.tsx
+++ b/frontend/components/home/footer-section.tsx
@@ -1,7 +1,7 @@
import * as React from "react";
import {cn} from "@/lib/utils";
import Link from "next/link";
-import {Github, LucideIcon} from "lucide-react";
+import {Github, LucideIcon, WavesIcon} from "lucide-react";
export interface FooterSectionProps {
className?: string;
@@ -19,10 +19,10 @@ export const FooterSection = React.memo(function FooterSection({ className }: Fo
-
- MP
-
-
Modern Platform
+
+
+
+
Wavelet
通用的、现代化的后台管理系统脚手架。基于 Go + React 构建,开箱即用、完整基建、极易扩展。
diff --git a/frontend/components/home/hero-section.tsx b/frontend/components/home/hero-section.tsx
index 0174b89b..2598c3d5 100644
--- a/frontend/components/home/hero-section.tsx
+++ b/frontend/components/home/hero-section.tsx
@@ -1,9 +1,9 @@
import * as React from "react";
import Link from "next/link";
-import { motion } from "motion/react";
-import { ArrowRight, Zap, Shield, Globe, CreditCard } from "lucide-react";
-import { cn } from "@/lib/utils";
-import { Button } from "@/components/ui/button";
+import {motion} from "motion/react";
+import {ArrowRight, CreditCard, Globe, Shield, Zap} from "lucide-react";
+import {cn} from "@/lib/utils";
+import {Button} from "@/components/ui/button";
export interface HeroSectionProps {
className?: string;
@@ -37,9 +37,9 @@ export const HeroSection = React.memo(function HeroSection({ className }: HeroSe
transition={{ duration: 0.6, delay: 0.1, ease: [0.16, 1, 0.3, 1] }}
className="text-4xl md:text-5xl lg:text-6xl font-extrabold tracking-tight leading-[1.1] mb-6 text-foreground"
>
- Modern Platform
+ Wavelet
- 为二次开发而生
+ Modern Platform
@@ -52,7 +52,7 @@ export const HeroSection = React.memo(function HeroSection({ className }: HeroSe
>
通用的、现代化的后台管理系统脚手架
- 开箱即用、完整基建、极易扩展,助您快速构建企业级应用。
+ 开箱即用、完整基建、极易扩展,助您快速构建应用。
) {
}
const sidebarMenuButtonVariants = cva(
- "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-bold data-[active=true]:text-[#6366F1] data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
+ "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-bold data-[active=true]:text-sidebar-primary data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
{
variants: {
variant: {
diff --git a/frontend/lib/theme/themes.json b/frontend/lib/theme/themes.json
index 150daa7e..9818de0f 100644
--- a/frontend/lib/theme/themes.json
+++ b/frontend/lib/theme/themes.json
@@ -20,6 +20,7 @@
"accent": "oklch(0.967 0.001 286.375)",
"accent-foreground": "oklch(0.21 0.006 285.885)",
"destructive": "oklch(0.577 0.245 27.325)",
+ "destructive-foreground": "oklch(98.5% 0% 0)",
"border": "oklch(0.92 0.004 286.32)",
"input": "oklch(0.92 0.004 286.32)",
"ring": "oklch(0.705 0.015 286.067)",
@@ -53,6 +54,7 @@
"accent": "oklch(0.274 0.006 286.033)",
"accent-foreground": "oklch(0.985 0 0)",
"destructive": "oklch(0.704 0.191 22.216)",
+ "destructive-foreground": "oklch(98.5% 0% 0)",
"border": "oklch(1 0 0 / 10%)",
"input": "oklch(1 0 0 / 15%)",
"ring": "oklch(0.552 0.016 285.938)",
diff --git a/frontend/public/style/default.css b/frontend/public/style/default.css
index badcf6e4..94980532 100644
--- a/frontend/public/style/default.css
+++ b/frontend/public/style/default.css
@@ -25,6 +25,7 @@
--color-ring: var(--ring);
--color-input: var(--input);
--color-border: var(--border);
+ --color-destructive-foreground: var(--destructive-foreground);
--color-destructive: var(--destructive);
--color-accent-foreground: var(--accent-foreground);
--color-accent: var(--accent);
@@ -61,6 +62,7 @@
--accent: oklch(0.967 0.001 286.375);
--accent-foreground: oklch(0.21 0.006 285.885);
--destructive: oklch(0.577 0.245 27.325);
+ --destructive-foreground: oklch(98.5% 0% 0);
--border: oklch(0.92 0.004 286.32);
--input: oklch(0.92 0.004 286.32);
--ring: oklch(0.705 0.015 286.067);
@@ -95,6 +97,7 @@
--accent: oklch(0.274 0.006 286.033);
--accent-foreground: oklch(0.985 0 0);
--destructive: oklch(0.704 0.191 22.216);
+ --destructive-foreground: oklch(98.5% 0% 0);
--border: oklch(1 0 0 / 10%);
--input: oklch(1 0 0 / 15%);
--ring: oklch(0.552 0.016 285.938);
@@ -133,7 +136,7 @@
}
@theme inline {
- /*
+ /*
* Aurora 动画配置
*/
--animate-aurora: aurora 120s linear infinite;
@@ -151,4 +154,4 @@
350% 50%;
}
}
-}
\ No newline at end of file
+}