diff --git a/apps/web/components/chain/ChainAdjudication.tsx b/apps/web/components/chain/ChainAdjudication.tsx
index 4de70df..abed663 100644
--- a/apps/web/components/chain/ChainAdjudication.tsx
+++ b/apps/web/components/chain/ChainAdjudication.tsx
@@ -4,6 +4,7 @@ import { useCallback, useEffect, useState } from "react";
import { ConflictCard } from "@/components/review/ConflictCard";
import { useToast } from "@/components/Toast";
+import { Button } from "@/components/ui/Button";
import { api } from "@/lib/api/client";
import { buildResumeRequest } from "@/lib/chain/chain";
import { friendlyFromApiError } from "@/lib/errors/messages";
@@ -159,14 +160,14 @@ export function ChainAdjudication({
)}
-
+
{pending.length > 0 ? (
还有 {pending.length} 条冲突未裁决。
diff --git a/apps/web/components/chain/ChainProgress.tsx b/apps/web/components/chain/ChainProgress.tsx
index b8b68e5..480db14 100644
--- a/apps/web/components/chain/ChainProgress.tsx
+++ b/apps/web/components/chain/ChainProgress.tsx
@@ -1,5 +1,6 @@
"use client";
+import { Card } from "@/components/ui/Card";
import type { ChainPhase, ChainResultView } from "@/lib/chain/chain";
interface ChainProgressProps {
@@ -18,8 +19,9 @@ const PHASE_LABEL: Record = {
// 链进度视图:相位徽标 + 进度条 + 已写章号清单(token/正文绝不展示,result 只含元数据)。
export function ChainProgress({ phase, progress, result }: ChainProgressProps) {
return (
-
@@ -58,6 +60,6 @@ export function ChainProgress({ phase, progress, result }: ChainProgressProps) {
第 {result.awaitingChapter} 章存在未决冲突,请在下方逐条裁决后续跑。
) : null}
-
+
);
}
diff --git a/apps/web/components/foreshadow/ForeshadowBoard.tsx b/apps/web/components/foreshadow/ForeshadowBoard.tsx
index 21a73a6..8818295 100644
--- a/apps/web/components/foreshadow/ForeshadowBoard.tsx
+++ b/apps/web/components/foreshadow/ForeshadowBoard.tsx
@@ -6,6 +6,7 @@ import { Flag, Plus } from "lucide-react";
import { AppShell } from "@/components/AppShell";
import { Badge } from "@/components/ui/Badge";
import { Button } from "@/components/ui/Button";
+import { Card } from "@/components/ui/Card";
import { EmptyState } from "@/components/ui/EmptyState";
import { PageHeader } from "@/components/ui/PageHeader";
import type { ForeshadowView, ProjectResponse } from "@/lib/api/types";
@@ -137,10 +138,7 @@ function ForeshadowBoardSummary({
className="mb-3 grid grid-cols-2 gap-2 sm:grid-cols-4"
>
{LANES.map((status) => (
-
+
{LANE_LABELS[status]}
@@ -152,7 +150,7 @@ function ForeshadowBoardSummary({
{" · "}
{total > 0 ? `${Math.round((counts[status] / total) * 100)}%` : "0%"}
-
+
))}
);
diff --git a/apps/web/components/foreshadow/RegisterForm.tsx b/apps/web/components/foreshadow/RegisterForm.tsx
index e9728eb..99c00db 100644
--- a/apps/web/components/foreshadow/RegisterForm.tsx
+++ b/apps/web/components/foreshadow/RegisterForm.tsx
@@ -5,6 +5,7 @@ import { Plus } from "lucide-react";
import { Button } from "@/components/ui/Button";
import { TextInput } from "@/components/ui/TextInput";
+import { cardClass } from "@/lib/ui/variants";
import type { RegisterInput } from "@/lib/foreshadow/board";
interface RegisterFormProps {
@@ -79,7 +80,7 @@ export function RegisterForm({
e.preventDefault();
void submit();
}}
- className="rounded border border-line bg-panel p-4"
+ className={cardClass("p-4")}
>
diff --git a/apps/web/components/generation/ConflictAdjudication.tsx b/apps/web/components/generation/ConflictAdjudication.tsx
index b3cb3e8..908fab5 100644
--- a/apps/web/components/generation/ConflictAdjudication.tsx
+++ b/apps/web/components/generation/ConflictAdjudication.tsx
@@ -1,5 +1,6 @@
"use client";
+import { Button } from "@/components/ui/Button";
import type { IngestConflicts } from "@/lib/generation/cards";
interface ConflictAdjudicationProps {
@@ -56,22 +57,22 @@ export function ConflictAdjudication({
))}
-
-
);
diff --git a/apps/web/components/projects/ProjectLibrary.tsx b/apps/web/components/projects/ProjectLibrary.tsx
index e9252e8..6d61727 100644
--- a/apps/web/components/projects/ProjectLibrary.tsx
+++ b/apps/web/components/projects/ProjectLibrary.tsx
@@ -16,7 +16,7 @@ import {
type ProjectSort,
type ProjectViewMode,
} from "@/lib/projects/projects";
-import { buttonClass, cn } from "@/lib/ui/variants";
+import { buttonClass, cardClass, cn } from "@/lib/ui/variants";
interface ProjectLibraryProps {
projects: ProjectResponse[];
@@ -47,7 +47,11 @@ export function ProjectLibrary({ projects }: ProjectLibraryProps) {
return (
-
+