Redesign dashboard with editorialn aesthetic#4
Conversation
Replaces generic Bloomberg styling with a paper-on-ink editorial palette, italic serif display typography (Instrument Serif) paired with IBM Plex Mono for tabular data, numbered sections, and a hero balance treatment on the overview page. Tailwind tokens, globals.css, and the bloomberg primitives (Panel, StatCell, DataTable, SectionHeader, StatusDot) are rewritten so all downstream pages inherit the new look without further changes. No behavior, routing, or auth flow changes.
There was a problem hiding this comment.
Pull request overview
This PR refreshes the Next.js dashboard UI with an editorial “paper-on-ink” aesthetic by updating Tailwind tokens, global CSS, typography (Instrument Serif + IBM Plex), and the shared bloomberg/* UI primitives so the new styling propagates across dashboard pages without changing behavior.
Changes:
- Updated Tailwind theme tokens (colors, fonts, tracking) and global CSS to establish the new visual system.
- Refactored shared UI primitives (
Panel,SectionHeader,DataTable,StatusDot,StatCell) to support numbered sections, new header layouts, and updated table styling. - Restyled key overview components (masthead, hero stats, equity curve, trade feed, arb markets) and the login page to match the new design language.
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| dashboard/tailwind.config.ts | Introduces new bb palette, font families via CSS variables, and additional letter-spacing tokens. |
| dashboard/src/app/globals.css | Implements paper/ink background texture, new display font helpers, scrollbar styling, and animation utilities. |
| dashboard/src/app/layout.tsx | Loads additional Google fonts and exposes them as CSS variables for Tailwind. |
| dashboard/src/components/bloomberg/Panel.tsx | Redesigns panel container/header to support section indexing and editorial header styling. |
| dashboard/src/components/bloomberg/SectionHeader.tsx | Adds optional numeral and updates styling to match new header language. |
| dashboard/src/components/bloomberg/DataTable.tsx | Adds optional numbering column and updates table header/row styling. |
| dashboard/src/components/bloomberg/StatusDot.tsx | Adds optional pulse behavior and refreshes dot/label styling. |
| dashboard/src/components/bloomberg/StatCell.tsx | Expands size/color options and adds optional hint/numeral display. |
| dashboard/src/components/shared/EquityCurve.tsx | Switches to an area chart + adds peak/trough + editorial controls display. |
| dashboard/src/components/shared/TradeFeed.tsx | Restyles feed rows, adds numbering, and updates panel header/right-slot info. |
| dashboard/src/components/overview/StatsStrip.tsx | Reworks strip into hero balance row + secondary metrics row with roman numerals. |
| dashboard/src/components/overview/ArbMarketsTable.tsx | Updates labels/ellipsis style, adds header right-slot, and enables table numbering. |
| dashboard/src/app/(dashboard)/overview/page.tsx | Adds editorial masthead/footer, service count, and time display; updates layout spacing. |
| dashboard/src/app/(dashboard)/layout.tsx | Restyles sidebar navigation into numbered editorial navigation and adds safety copy. |
| dashboard/src/app/login/page.tsx | Applies new editorial login styling and adds demo-mode safety note. |
| )} | ||
| {children} | ||
| </div> | ||
| <div>{children}</div> |
There was a problem hiding this comment.
Panel now wraps children in an extra <div> (line 39). This breaks layouts where the immediate child relies on being a flex item of the panel (e.g., flex-1, min-h-0, scroll containers), because it’s no longer a direct child of the flex column. Consider rendering {children} directly (no wrapper) or making the wrapper display: contents / otherwise ensuring it doesn’t interfere with flex sizing.
| <div>{children}</div> | |
| {children} |
|
|
||
| import React, { useState, useMemo } from 'react'; | ||
| import { LineChart, Line, XAxis, YAxis, Tooltip, ResponsiveContainer, ReferenceLine } from 'recharts'; | ||
| import { LineChart, Line, XAxis, YAxis, Tooltip, ResponsiveContainer, ReferenceLine, Area, AreaChart } from 'recharts'; |
There was a problem hiding this comment.
The recharts import still includes LineChart and Line, but the component only renders AreaChart/Area. Removing unused imports avoids dead code and potential lint/typecheck failures if noUnusedLocals is enabled later.
| import { LineChart, Line, XAxis, YAxis, Tooltip, ResponsiveContainer, ReferenceLine, Area, AreaChart } from 'recharts'; | |
| import { XAxis, YAxis, Tooltip, ResponsiveContainer, ReferenceLine, Area, AreaChart } from 'recharts'; |
Summary
globals.css, and the sharedbloomberg/*primitives are rewritten so every downstream page (crypto, sports, positions, system) inherits the new look without further edits.Test Plan
Safety Impact
Notes
No config changes or migrations. Adds two new Google Fonts (Instrument Serif, IBM Plex Sans) via `next/font/google`; first build downloads them.