// Copyright 2026 Arctel.net // SPDX-License-Identifier: Apache-2.0 'use client'; import * as React from 'react'; import { Code } from 'lucide-react'; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from '@/components/ui/card'; import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'; // 引入模块化拆分后的 Tab 子组件 import { DashboardTab } from './tabs/dashboard-tab'; import { TableTab } from './tabs/table-tab'; import { ControlsTab } from './tabs/controls-tab'; export default function HeaderDemoPage() { const [activeTab, setActiveTab] = React.useState('dashboard'); return (
flex items-center gap-2
{' '}
作为标题行基础容器(不含下边框),外层统一使用{' '}
py-6 px-1
{' '}
(或{' '}
py-6
) 进行上边距的视觉对齐,确保切换菜单时顶部高度感一致。
size-5 text-primary
{' '}
样式。禁止为图标包裹任何背景色小卡片、圆角或装饰性边框。
{'h1 className="text-2xl font-semibold tracking-tight"'}
,禁用字重加粗(如{' '}
font-bold
)或任何渐变色,保证全站字体一致性。
tabs/events-tab.tsx
{' '}
或就近放在{' '}
components/
{' '}
下),主页面文件只负责维护当前 Tab 的激活状态及外层骨架布局。
app/(main)/admin/database/components/
),只有真正跨页面复用的组件才进入全局{' '}
components/common/
。典型标杆案例参考“数据管理” (
/admin/database
) 的{' '}
table-browser.tsx
、
cache-manager.tsx
{' '}
与{' '}
sql-console.tsx
。