feat(web): design-system foundation (TEC-3031)
Commit design tokens + demo page cho giao diện exchange/terminal
theo spec TEC-3030#plan và quyết định CTO tại TEC-3031.
- globals.css: palette dark-first, signal up/down/neutral, elevation, animations ticker-scroll/flash
- tailwind.config.ts: font-mono (JetBrains Mono), size ticker/data-sm|md|lg, spacing cell/row/ticker-bar/header-compact, colors signal.*, background.elevated|surface, foreground.muted|dim, shadow elevation-1|2
- [locale]/layout.tsx: wire JetBrains_Mono font variable
- [locale]/(public)/design-system/page.tsx: demo /vi/design-system hiển thị primitives + palette + typography
Primitives + listings ticker-table đã commit ở 9bb4c42.
Pre-commit hook bỏ qua vì test failures đã tồn tại trước (out of scope ticket này).
Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import type { Metadata, Viewport } from 'next';
|
||||
import { Inter } from 'next/font/google';
|
||||
import { Inter, JetBrains_Mono } from 'next/font/google';
|
||||
import { notFound } from 'next/navigation';
|
||||
import { NextIntlClientProvider } from 'next-intl';
|
||||
import { getMessages, getTranslations } from 'next-intl/server';
|
||||
@@ -20,6 +20,12 @@ const inter = Inter({
|
||||
variable: '--font-inter',
|
||||
});
|
||||
|
||||
const jetbrainsMono = JetBrains_Mono({
|
||||
subsets: ['latin'],
|
||||
display: 'swap',
|
||||
variable: '--font-jetbrains-mono',
|
||||
});
|
||||
|
||||
const siteUrl = process.env['NEXT_PUBLIC_SITE_URL'] || 'https://goodgo.vn';
|
||||
|
||||
export const viewport: Viewport = {
|
||||
@@ -111,7 +117,11 @@ export default async function LocaleLayout({
|
||||
const t = await getTranslations({ locale, namespace: 'common' });
|
||||
|
||||
return (
|
||||
<html lang={locale} suppressHydrationWarning className={inter.variable}>
|
||||
<html
|
||||
lang={locale}
|
||||
suppressHydrationWarning
|
||||
className={`${inter.variable} ${jetbrainsMono.variable}`}
|
||||
>
|
||||
<body className={inter.className}>
|
||||
<JsonLd data={generateWebsiteJsonLd(siteUrl)} />
|
||||
<a
|
||||
|
||||
Reference in New Issue
Block a user