'use client'; import { notFound } from 'next/navigation'; import { Surface, SurfaceElevated, Divider, DensityProvider, useDensity, DENSITY_ROW_HEIGHT, Numeric, Signal, } from '@/components/design-system'; // Dev-only: block in production if (process.env.NODE_ENV === 'production') { // Will 404 at build time for static generation } const COLOR_TOKENS = [ { name: '--background', tw: 'bg-background' }, { name: '--background-elevated', tw: 'bg-background-elevated' }, { name: '--background-surface', tw: 'bg-background-surface' }, { name: '--primary', tw: 'bg-primary' }, { name: '--primary-hover', tw: 'bg-primary-hover' }, { name: '--destructive', tw: 'bg-destructive' }, { name: '--warning', tw: 'bg-warning' }, { name: '--success', tw: 'bg-success' }, { name: '--accent-blue', tw: 'bg-accent-blue' }, { name: '--accent-purple', tw: 'bg-accent-purple' }, { name: '--signal-up', tw: 'bg-signal-up' }, { name: '--signal-down', tw: 'bg-signal-down' }, { name: '--signal-neutral', tw: 'bg-signal-neutral' }, ]; const CHART_TOKENS = [ { name: '--chart-1', tw: 'bg-chart-1' }, { name: '--chart-2', tw: 'bg-chart-2' }, { name: '--chart-3', tw: 'bg-chart-3' }, { name: '--chart-4', tw: 'bg-chart-4' }, { name: '--chart-5', tw: 'bg-chart-5' }, { name: '--chart-6', tw: 'bg-chart-6' }, ]; function DensityDemo() { const { density, setDensity } = useDensity(); return (
{(['compact', 'regular', 'roomy'] as const).map((d) => ( ))}
Mẫu hàng — {density}
{[1, 2, 3].map((i) => (
Dòng {i}
))}
); } export default function DevTokensPage() { if (process.env.NODE_ENV === 'production') { notFound(); } return (

Design Tokens Showcase

Dev-only route — không hiển thị trên production.

{/* Colors */}

Màu sắc

{COLOR_TOKENS.map((t) => (

{t.name}

))}
{/* Chart palette */}

Chart Palette

{CHART_TOKENS.map((t) => (

{t.name}

))}
{/* Typography */}

Typography

heading-xl (1.875rem)

heading-lg (1.5rem)

heading-md (1.125rem)

heading-sm (0.875rem)

heading-xs (0.75rem uppercase tracking)

data-lg: 1.250.000.000 ₫

data-md: 850.000.000 ₫

data-sm: 450.000.000 ₫

ticker: Q1 +2.4%

{/* Shadows */}

Elevation (Shadow)

{['elevation-0', 'elevation-1', 'elevation-2', 'elevation-3'].map((s) => (
{s}
))}
{/* Signals */}

Signal

{/* Glow shadows */}

Glow Shadows

glow-up
glow-down
{/* Surfaces */}

Surface

Surface (flat)

SurfaceElevated

{/* Numeric */}

Numeric

VND:
Percent:
Compact:
{/* Density */}

Density

{/* Tick flash animations */}

Tick Flash

Flash Up
Flash Down

Refresh page to replay animation. Disabled with prefers-reduced-motion.

); }