Adopt the Hangman Lab visual language (adapted from the Gitea STYLE.md, Gitea-only mechanics excluded): - New acid SVG mark as favicon (?v cache-bust) and navbar logo. - Single acid accent (#d8ff3e); retune globals.css tokens to the ink/panel/line/text/dim/danger palette; drop the cyan/violet pair (secondary -> same acid so existing components stay on-brand). - Fonts: IBM Plex Mono for body/UI/mono, Major Mono Display for the lowercase brand lockup; Tailwind fontFamily + content fonts updated. - Site-wide fixed 48px blueprint-grid backdrop + one acid sheen. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
70 lines
2.7 KiB
JavaScript
70 lines
2.7 KiB
JavaScript
/** @type {import('tailwindcss').Config} */
|
|
module.exports = {
|
|
darkMode: "class",
|
|
content: ["./src/**/*.{js,jsx}", "./public/index.html"],
|
|
theme: {
|
|
extend: {
|
|
colors: {
|
|
border: "hsl(var(--border))",
|
|
input: "hsl(var(--input))",
|
|
ring: "hsl(var(--ring))",
|
|
background: "hsl(var(--background))",
|
|
foreground: "hsl(var(--foreground))",
|
|
surface: "hsl(var(--surface))",
|
|
primary: {
|
|
DEFAULT: "hsl(var(--primary))",
|
|
foreground: "hsl(var(--primary-foreground))",
|
|
},
|
|
secondary: {
|
|
DEFAULT: "hsl(var(--secondary))",
|
|
foreground: "hsl(var(--secondary-foreground))",
|
|
},
|
|
muted: {
|
|
DEFAULT: "hsl(var(--muted))",
|
|
foreground: "hsl(var(--muted-foreground))",
|
|
},
|
|
accent: {
|
|
DEFAULT: "hsl(var(--accent))",
|
|
foreground: "hsl(var(--accent-foreground))",
|
|
},
|
|
destructive: {
|
|
DEFAULT: "hsl(var(--destructive))",
|
|
foreground: "hsl(var(--destructive-foreground))",
|
|
},
|
|
card: {
|
|
DEFAULT: "hsl(var(--card))",
|
|
foreground: "hsl(var(--card-foreground))",
|
|
},
|
|
},
|
|
borderRadius: {
|
|
lg: "var(--radius)",
|
|
md: "calc(var(--radius) - 2px)",
|
|
sm: "calc(var(--radius) - 4px)",
|
|
},
|
|
fontFamily: {
|
|
// Lab-terminal: IBM Plex Mono is the body/UI/mono face.
|
|
sans: ["IBM Plex Mono", "ui-monospace", "SFMono-Regular", "monospace"],
|
|
mono: ["IBM Plex Mono", "ui-monospace", "SFMono-Regular", "monospace"],
|
|
display: ["Major Mono Display", "IBM Plex Mono", "monospace"],
|
|
},
|
|
boxShadow: {
|
|
glow: "0 0 0 1px hsl(var(--primary) / 0.25), 0 0 24px -6px hsl(var(--primary) / 0.45)",
|
|
"glow-violet":
|
|
"0 0 0 1px hsl(var(--secondary) / 0.25), 0 0 24px -6px hsl(var(--secondary) / 0.45)",
|
|
},
|
|
keyframes: {
|
|
"fade-in": {
|
|
from: { opacity: 0, transform: "translateY(4px)" },
|
|
to: { opacity: 1, transform: "translateY(0)" },
|
|
},
|
|
"overlay-in": { from: { opacity: 0 }, to: { opacity: 1 } },
|
|
},
|
|
animation: {
|
|
"fade-in": "fade-in 0.18s ease-out",
|
|
"overlay-in": "overlay-in 0.15s ease-out",
|
|
},
|
|
},
|
|
},
|
|
plugins: [],
|
|
};
|