Signature
The research note
Every AI output is typeset as a note from a research desk. The anatomy is fixed; only the copy changes per feature via its i18nPrefix. Reuse it for any surface that presents a generated or curated analysis.
◆ AI research note Beta
Gamma exposure briefing
Dealer positioning, key strikes and what they imply for the next session.
Positioning
Net dealer gamma is negative below 5,400. The largest open interest sits at the 5,500 call and the 5,200 put.
The tape is not going to be kind to late entries.
AI-generated. Not investment advice.
- 1Eyebrow. Diamond U+25C6 as a text node in ink, then the feature eyebrow from
ai.eyebrow, then a mono square stamp for Beta. - 2Serif title. Playfair 600, 1.55rem in the sheet, balanced wrap.
- 3Subtitle. 0.88rem secondary, line-height 1.5.
- 4Ledger strip. Surface-2 band, 42px, hairlines above and below. Usage badge left, live dot right.
- 5Prose. One scale for every analyzer. h2 carries a faint diamond. Blockquote in italic serif behind a 2px ink bar. Stream deltas render as they arrive, with a blinking caret on the last block.
- 6Sources. Collapsible, count in mono, zero-padded index, host in ink, path in tertiary, truncated at 34 characters.
- 7Actions. One ink button plus square icon buttons. Regenerate always confirms through the dialog.
- 8Disclaimer. 0.74rem tertiary above a hairline. Scrolls with the note; there is no fixed footer.
Frame
Page shell
Banner, masthead, main, footer, then the floating layers. Main is a flex column so the footer is pushed to the bottom on short pages.
Homepage: 1440px, two columns 1fr 310px, gap 56px
<template>
<div class="app">
<AnnouncementBanner />
<Navbar />
<main class="main-content"><slot /></main>
<Footer />
<ToastNotifications />
</div>
</template>
<style scoped>
.app { min-height: 100vh; display: flex; flex-direction: column; }
.main-content { flex: 1; width: 100%; max-width: 1600px; margin: 0 auto; padding: 20px; }
</style>
Footer
- Opens with the folio rule: 3px ink, then 1px hairline 3px below.
- Masthead row: wordmark at
clamp(26px, 2.6vw, 40px)and a 52ch tagline, aligned to the baseline, padding 44px top and 32px bottom, hairline under. - Sitemap: six columns, gap 32px. Column headings are 10.5px uppercase 0.14em in ink over a hairline. Links 13.5px secondary.
- Colophon: divided segmented controls for language and theme, bylines at 12.5px tertiary with 16px round avatars, a 30px outline back-to-top.
- Under 768px the sitemap becomes an accordion with 52px toggles and the colophon reverses.
Rhythm
Section head
Every block on a page opens the same way: an eyebrow, a serif title, an optional "see all" link on the right, then a hairline. The heads on this site follow the pattern with a folio number added.
Markets
Earnings this week
◆ Pro tools
Options gamma
.section-head {
display: flex; align-items: flex-end; justify-content: space-between; gap: 16px;
padding-bottom: 12px; border-bottom: 1px solid var(--border-color); margin-bottom: 24px;
}
.section-eyebrow { font-size: 0.62rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-tertiary); }
.section-title { font-family: var(--font-serif); font-size: 1.35rem; font-weight: 600; letter-spacing: -0.01em; margin-top: 6px; }
Composition
Data page
The portfolio page is the reference for anything ledger-like. Top to bottom:
- Masthead row. Eyebrow with a live dot, serif page title, sector pills, and one ink button (Import) on the right.
- Statement hero. Three or four borderless figures on a subgrid. The primary figure is 3rem serif; secondary figures are 1.75rem.
- Ledger. Two bordered columns of label and value pairs, hairline above and below.
- Controls row. Search box on the left, drawn radios and the view toggle on the right.
- Rows. Position cards or a dense table. Rows separate with
--border-lighter, hover tints with 6% accent. - AI rebalance. A research-note sheet toggle, never inline.
Gain and loss are bare coloured text at weight 600. Short positions carry a small red stamp and a red figure. Thresholds use amber for upcoming earnings and tertiary for past.
Set every numeric column right-aligned with tabular numerals. Put the sort state in accent on the header only.
Wrap KPIs in four rounded cards with icons. Put a pill around every percentage.
Composition
Commerce page
- Head. Eyebrow, serif title, the sliding billing toggle centred beneath.
- Plan grid. Four cells in a 1px-gap grid. Plan ink in a 2px cap; featured gets 4px plus a 4.5% tint and a square tag. Prices in 2.6rem serif with a raised half-size currency mark. Coffee line in italic serif.
- Comparison table. Sticky first column, tier columns with a 2px ink top rule, category rows on surface-2 with 0.6rem 0.15em labels. Under 768px a segmented picker shows one tier at a time.
- FAQ. Hairline accordion, serif questions.
- Sticky mobile CTA. Fixed bottom bar with a hairline top, safe-area padding, slides up.
Small screens
Folding to mobile
Design the phone layout on purpose. The rules that carry across pages:
| Element | Desktop | ≤ 960 / ≤ 768 |
|---|---|---|
| Masthead | 64px, links, search box, toggles, login | 56px, burger + icon search; right drawer min(100% - 44px, 400px) with a numbered serif table of contents |
| Navigation | Top links with ink underline | Bottom tab bar, 58px, icon + 0.58rem uppercase label, 32×2px ink bar on the active tab |
| Hero figures | 3 or 4 across on a subgrid | 2 across, primary spans both; 2.5rem then 2.125rem |
| Ledger | Two bordered columns | One column, hairline between |
| Tables | Full width, sticky header | Horizontal scroll inside the frame, 32px edge fades, no card collapse |
| Plan grid | 4 columns | 2 at 1100, 1 at 768, mobile order Pro · Max · Plus · Free, sticky CTA |
| Right sheet | 640px right panel | Full-width right panel, no border, buttons full width |
| Dialog | 440px, actions right | Actions column-reverse, full-width buttons |
| Inputs | 15px | 16px so iOS does not zoom |
| Tooltips | Hover with dotted underline | Removed |
| Footer sitemap | 6 columns | 3 at 1180, accordion at 768 |
Judgement
Do and don't
Open a block with an eyebrow and a serif title. Close it with a rule.
Open a block with an icon in a coloured circle and a bold sans heading.
Colour a number because it is a gain, a loss, or a warning.
Colour a heading, a border, or a background to make it "pop".
Write border-radius: 0 on every control.
Reach for 8px, 12px or 16px. Those belong to the legacy idiom.
Float a panel, sheet or dialog with one long negative-spread shadow.
Put a shadow on a card that sits on the page plane, or lift it on hover.
Use the house easing and a reduced-motion block.
Bounce, spring, or shimmer a title.
Keep Vietnamese as the default copy and keep labels short enough to survive uppercase tracking.
Hardcode English strings or hex colours that have a token.
