diff --git a/src/app/folders/[folder_id]/TextPairCard.tsx b/src/app/folders/[folder_id]/TextPairCard.tsx
index ea2cf77..355eb74 100644
--- a/src/app/folders/[folder_id]/TextPairCard.tsx
+++ b/src/app/folders/[folder_id]/TextPairCard.tsx
@@ -1,5 +1,6 @@
import { Edit, Trash2 } from "lucide-react";
import { useState } from "react";
+import { CircleButton } from "@/components/ui/buttons";
import { UpdateTextPairModal } from "./UpdateTextPairModal";
import { useTranslations } from "next-intl";
import { TSharedPair } from "@/shared/folder-type";
@@ -39,20 +40,20 @@ export function TextPairCard({
{!isReadOnly && (
<>
-
-
+
>
)}
diff --git a/src/components/ui/Button.tsx b/src/components/ui/Button.tsx
index 921a5c5..79d5ade 100644
--- a/src/components/ui/Button.tsx
+++ b/src/components/ui/Button.tsx
@@ -3,9 +3,8 @@
import React from "react";
import Link from "next/link";
import Image from "next/image";
-import { COLORS } from "@/lib/theme/colors";
-export type ButtonVariant = "primary" | "secondary" | "ghost" | "icon";
+export type ButtonVariant = "primary" | "secondary" | "ghost" | "icon" | "circle" | "dashed" | "link";
export type ButtonSize = "sm" | "md" | "lg";
export interface ButtonProps {
@@ -70,6 +69,24 @@ export function Button({
icon: `
p-2 bg-gray-200 rounded-full
hover:bg-gray-300
+ `,
+ circle: `
+ p-2 rounded-full
+ hover:bg-gray-200
+ `,
+ dashed: `
+ border-2 border-dashed border-gray-300
+ text-gray-500
+ hover:border-gray-400
+ hover:text-gray-600
+ bg-transparent
+ shadow-none
+ `,
+ link: `
+ text-[#35786f]
+ hover:underline
+ p-0
+ shadow-none
`
};
diff --git a/src/components/ui/buttons/index.tsx b/src/components/ui/buttons/index.tsx
index ad8e61c..6a3d60c 100644
--- a/src/components/ui/buttons/index.tsx
+++ b/src/components/ui/buttons/index.tsx
@@ -54,3 +54,32 @@ export const IconClick = (props: any) => {
// PlainButton: 基础小按钮
export const PlainButton = (props: any) =>
;
+
+// CircleButton: 圆形导航按钮
+export const CircleButton = (props: any) => {
+ const { icon, className, ...rest } = props;
+ return
;
+};
+
+// DashedButton: 虚线边框按钮
+export const DashedButton = (props: any) =>
;
+
+// LinkButton: 链接样式按钮
+export const LinkButton = (props: any) =>
;
+
+// CircleToggleButton: 圆形切换按钮(支持 selected 状态)
+export const CircleToggleButton = (props: any) => {
+ const { selected, className, children, ...rest } = props;
+ const selectedClass = selected
+ ? "bg-[#35786f] text-white"
+ : "bg-gray-200 text-gray-600 hover:bg-gray-300";
+ return (
+
+ );
+};