Files
signal-platform/frontend/tailwind.config.ts
T
dennisthiessen 9c6a0a72fa
Deploy / lint (push) Successful in 6s
Deploy / test (push) Successful in 31s
Deploy / deploy (push) Successful in 22s
Redesign: phosphor-terminal identity and simplified 4-page structure
Information architecture (6 nav destinations -> 4):
- New Overview home: metric strip (live setups, high confidence,
  hit rate, expectancy), top-5 setups, watchlist pulse
- Market = Watchlist + Rankings merged as tabs; scoring weights
  moved into a collapsible disclosure
- Signals = Scanner + Performance merged as tabs (Setups | Track
  Record) with actions inside the panels
- Legacy routes redirect (/watchlist, /rankings, /scanner,
  /performance)

Visual identity:
- Warm ash-green dark palette replaces cold navy; citron lime
  accent replaces blue (Tailwind gray/blue remapped at config
  level so all components reskin)
- Primary buttons: lime with ink text; long/short stays
  emerald/red
- Typography: Bricolage Grotesque display, Instrument Sans body,
  IBM Plex Mono for all numerals incl. chart canvas labels
- Atmosphere: graph-paper grid + citron glow + film grain;
  pulsing brand dot; mono-numbered nav

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 14:42:05 +02:00

82 lines
2.4 KiB
TypeScript

import type { Config } from 'tailwindcss';
export default {
content: ['./index.html', './src/**/*.{ts,tsx}'],
darkMode: 'class',
theme: {
extend: {
fontFamily: {
sans: ['"Instrument Sans"', 'system-ui', 'sans-serif'],
display: ['"Bricolage Grotesque"', 'system-ui', 'sans-serif'],
mono: ['"IBM Plex Mono"', 'ui-monospace', 'monospace'],
},
colors: {
// Warm ash neutrals (green-tinted) — replaces Tailwind's cool gray
// throughout the app, since components reference gray-* directly.
gray: {
50: '#f7f8f4',
100: '#eef0e9',
200: '#dde1d4',
300: '#bfc5b2',
400: '#959d87',
500: '#6e7562',
600: '#4d5344',
700: '#373c30',
800: '#22261d',
900: '#151911',
950: '#0e120f',
},
// Citron signal accent — replaces blue so every accent reference
// (text-blue-*, bg-blue-*, ring-blue-*) lights up in the brand color.
blue: {
50: '#fafee8',
100: '#f2fcc6',
200: '#e6f996',
300: '#d6f25c',
400: '#c3e82e',
500: '#a4cd14',
600: '#82a40b',
700: '#627c0e',
800: '#4e6212',
900: '#425314',
950: '#222e05',
},
surface: {
DEFAULT: 'rgba(255, 255, 255, 0.04)',
hover: 'rgba(255, 255, 255, 0.07)',
active: 'rgba(255, 255, 255, 0.1)',
border: 'rgba(223, 242, 178, 0.09)',
},
},
backdropBlur: {
glass: '16px',
},
animation: {
'glow-pulse': 'glow-pulse 3s ease-in-out infinite',
'fade-in': 'fade-in 0.3s ease-out',
'slide-up': 'slide-up 0.4s ease-out',
'signal-pulse': 'signal-pulse 2.4s ease-in-out infinite',
},
keyframes: {
'glow-pulse': {
'0%, 100%': { opacity: '0.4' },
'50%': { opacity: '0.8' },
},
'fade-in': {
from: { opacity: '0' },
to: { opacity: '1' },
},
'slide-up': {
from: { opacity: '0', transform: 'translateY(12px)' },
to: { opacity: '1', transform: 'translateY(0)' },
},
'signal-pulse': {
'0%, 100%': { opacity: '1', transform: 'scale(1)' },
'50%': { opacity: '0.35', transform: 'scale(0.8)' },
},
},
},
},
plugins: [],
} satisfies Config;