一键导入
ui-design
Design-quality reference for financial-research visual output: typography, color, composition, and avoiding generic AI aesthetics
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Design-quality reference for financial-research visual output: typography, color, composition, and avoiding generic AI aesthetics
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Workspace and research management — dispatch analyses, monitor running agents, manage workspaces and threads.
Draw price lines, trendlines, zones, and event markers directly on a stock's price chart — reach for it whenever you'd otherwise describe a level, pattern, or event in prose. Renders live on MarketView and as a clickable preview card in any other chat.
Event tracker: earnings dates, economic releases, conferences, regulatory events
Financial model audit: structural checks, formula validation, integrity testing
Comparable company analysis: operating metrics, valuation multiples, peer benchmarking
DCF valuation: free cash flow projections, WACC, terminal value, sensitivity analysis
| name | ui-design |
| description | Design-quality reference for financial-research visual output: typography, color, composition, and avoiding generic AI aesthetics |
A design-quality reference for any visual output you produce. It exists to make that output look like it came from a research desk, not a marketing landing page or a generic AI template.
Read this before producing any styled output — it covers design taste: typography, color, composition, and restraint. The examples below are HTML/CSS (the most common surface), but the principles apply to any visual you render — charts and images, PDFs, on-screen layouts — not just HTML.
This skill exists to help you match the user's personal frontend style and UI preferences — those always win over the defaults below. If the user has stated a taste — in this conversation, in your long-term memory, or in their saved preferences — it outranks every rule here. They want a specific brand color, a chosen font, a different accent, dark-only, no serif? Do that. The directions below are strong defaults for when the user hasn't expressed a preference; they are never a license to overrule the user's explicit style.
These are reference defaults, not a cage. They anchor quality and steer you off generic, lazy output — they don't replace your own judgment. When you have a clearly better, coherent choice for the specific content, take it. The only non-negotiables are the hard constraints: WCAG AA contrast, green/red reserved for profit/loss, and the theme-variable + print mechanics. The specific palette, font pairings, and exact scale below are strong starting points you are free to improve on.
The audience is a portfolio manager, analyst, or sophisticated investor reading a research note. They want dense, scannable, credible information design — the visual language of a sell-side note, a Bloomberg terminal, or a quality print newspaper's business section. Not a SaaS hero page.
This means:
These are the tells of generic AI-generated UI. Each one has a concrete replacement — use the "instead" column.
| Anti-pattern | Why it reads as slop | Instead |
|---|---|---|
| Inter everywhere (or system-font-only) for headings and body | The default AI font; signals zero typographic intent | Commit to a real pairing (see Typography). A serif or a distinctive grotesque for headings; a clean readable face for body. |
| Purple/violet gradients on white, or any gradient hero | The single most overused AI aesthetic | One flat accent color used sparingly. Backgrounds are paper (light) or ink (dark), not gradients. |
Uniform rounded card grids — everything is a border-radius: 16px card with a drop shadow | Marketing-template look; wastes vertical space; flattens hierarchy | Use tables for tabular data, rules (hairline borders) to separate sections, and reserve cards for genuine KPI callouts. Small radius (4–8px) or none. |
| Emoji as icons (📈 💰 🚀 in headings/labels) | Looks unserious; breaks in print; inconsistent rendering | Use a real icon set sparingly (inline SVG, e.g. lucide), or just clean typographic labels. Most research UIs need no icons at all. |
| Rainbow categorical charts — 8 saturated hues with no logic | Looks like a default Chart.js palette; hard to read; no semantic meaning | A restrained sequential or single-hue-with-tints palette; reserve green/red strictly for profit/loss. Max 3-4 categorical colors, muted. |
| Centered everything with huge top margins | Landing-page composition; poor for scanning data | Left-aligned reading column, tables flush, consistent baseline grid. |
| Generic stock-photo-style placeholder vibes — giant empty cards, "Lorem"-feeling filler | Signals the content wasn't really designed | Fill with real numbers and real findings; size containers to the actual content. |
Commit to an intentional pairing — a real headline voice plus a clean body face, loaded from the Google Fonts CDN (allowlisted). The three below are proven starting points: pick one, use the user's brand font, or choose your own with the same level of intent. What matters is the commitment — don't fall back to Inter-everywhere or the bare system stack.
"Source Serif 4", Georgia, serif; body "Inter", -apple-system, sans-serif. Serif headings give a print-research feel; body stays clean and readable. (The only acceptable use of Inter: as the body of a serif-headed document — never as the headline voice.)"IBM Plex Sans", system-ui, sans-serif; figures/tables "IBM Plex Mono", monospace. Plex reads as engineered and precise; the mono companion makes numeric tables align beautifully."Newsreader", Georgia, serif (a true reading serif) or "Libre Franklin", sans-serif; body "Libre Franklin", sans-serif. Franklin is a workhorse news face with more character than Inter.<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,400;8..60,600&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
A real, restrained scale (ratio ~1.25) keeps sizing coherent. The values below are a sensible default — whatever scale you use, keep it consistent rather than sizing ad-hoc.
--text-xs: 0.75rem; /* 12px — captions, source lines, table headers */
--text-sm: 0.875rem; /* 14px — secondary text, dense table cells */
--text-base: 1rem; /* 16px — body */
--text-lg: 1.25rem; /* 20px — section headings (h2/h3) */
--text-xl: 1.75rem; /* 28px — KPI figures */
--text-2xl: 2.25rem; /* 36px — page title (h1); typically one per document */
Financial figures must use tabular (monospaced) digits so columns align and numbers don't jitter when they update:
.figure, td.num, .kpi-value {
font-variant-numeric: tabular-nums;
font-feature-settings: "tnum" 1;
}
Right-align numeric table columns. Keep decimal precision consistent within a column (e.g. all prices to 2dp). Label units once in the header, not on every cell.
A restrained, committed palette: ink on paper with a single accent, plus the two semantic financial colors. One accent is the disciplined default — add a second hue only when it genuinely earns its place (a deliberate two-tone scheme), never as rainbow filler. The table below is a reference palette that meets AA on its paired backgrounds; use it, or derive your own that holds the same constraints.
| Role | Light value | Dark value | Notes |
|---|---|---|---|
| Paper (page bg) | #fbfaf8 / #ffffff | #0f1117 | Warm off-white reads as print; pure white is harsher |
| Ink (primary text) | #1a1a1a | #e8e8e8 | Near-black, not pure #000 |
| Muted ink (secondary) | #5a5a5a | #9aa0aa | Labels, captions, source lines |
| Accent | #1f5fb4 (steel blue) | #5b9bff | Links, active states, single-series charts |
| Profit / positive | #1a7f4f | #3fb37a | Green — gains only |
| Loss / negative | #b42318 | #f0685a | Red — losses only |
| Hairline border | #e4e1dc | #262a33 | Rules between sections, table row lines; use at 1px or 0.5px |
Rules:
var(--color-role, #literalFallback) so the output themes with the app yet still renders standalone and in print.min(100%, 1100px) for reading-heavy layouts (wider for dense, data-heavy views). Center the column on the page, not the text within it.display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: .... Consistent gaps; aligned baselines.Motion is the exception, not the rule, in a research document.
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
@media print {
*, *::before, *::after { animation: none !important; transition: none !important; opacity: 1 !important; }
}
(The opacity: 1 !important in the @media print block above is what keeps entrance-animated elements from exporting blank — keep it.)
Spend effort on precision, number formatting, alignment, and sourcing — not decoration. Add visual complexity only when the content genuinely calls for it; a clean, dense research note beats an over-animated one.
Before delivering any styled output:
font-variant-numeric: tabular-nums; numeric columns right-aligned, consistent precisionvar(--color-role, #fallback); WCAG AA verified for body textprefers-reduced-motion and is forced off / opacity-restored in @media print