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>
This commit is contained in:
@@ -6,14 +6,46 @@ export default {
|
||||
theme: {
|
||||
extend: {
|
||||
fontFamily: {
|
||||
sans: ['Inter', 'system-ui', 'sans-serif'],
|
||||
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.05)',
|
||||
hover: 'rgba(255, 255, 255, 0.08)',
|
||||
active: 'rgba(255, 255, 255, 0.12)',
|
||||
border: 'rgba(255, 255, 255, 0.08)',
|
||||
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: {
|
||||
@@ -23,6 +55,7 @@ export default {
|
||||
'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': {
|
||||
@@ -37,6 +70,10 @@ export default {
|
||||
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)' },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user