// Three Meridian brand foundation directions // Each: wordmark, monogram, colors (light+dark), type, semantic, patterns, specimen const DIRECTIONS = { A: { name: 'A · Clinical White', subtitle: 'NEJM/JAMA modernized — authoritative, medical', paper: '#fbfaf7', paperDim: '#f3efe8', ink: '#14120f', text: '#2a2723', muted: '#6b655c', rule: '#e2ddd2', accent: '#8a1f2b', // oxblood accentDim: 'rgba(138,31,43,0.08)', serif: '"Source Serif 4", "Source Serif Pro", Georgia, serif', sans: '"Inter", -apple-system, system-ui, sans-serif', mono: '"JetBrains Mono", ui-monospace, monospace', semantic: { success: '#3f7a4f', warning: '#b27100', error: '#a33030', info: '#2a5b8f' }, darkBg: '#141210', darkSurface: '#1c1a17', darkRule: '#2a2623', darkText: '#ebe6dd', darkMuted: '#8a8378', }, B: { name: 'B · Instrument', subtitle: 'Lancet meets scientific catalog — precise, cartographic', paper: '#f4f1e8', paperDim: '#ebe7dc', ink: '#0e1522', text: '#1e2738', muted: '#5c6577', rule: '#d4cfc1', accent: '#1f3a68', // ink navy accentDim: 'rgba(31,58,104,0.08)', serif: '"Spectral", "Source Serif 4", Georgia, serif', sans: '"IBM Plex Sans", "Inter", system-ui, sans-serif', mono: '"IBM Plex Mono", "JetBrains Mono", monospace', semantic: { success: '#2f6a4d', warning: '#96640a', error: '#8e2a2a', info: '#1f3a68' }, darkBg: '#0e1522', darkSurface: '#161e2d', darkRule: '#24304a', darkText: '#e5e0d0', darkMuted: '#8995ac', }, C: { name: 'C · Editorial', subtitle: 'eLife × Works in Progress — warm, long-form, readable', paper: '#f7f3ea', paperDim: '#ede7d8', ink: '#1b1f1a', text: '#2d322c', muted: '#6a6d63', rule: '#dcd5c2', accent: '#2e4a33', // forest accentDim: 'rgba(46,74,51,0.08)', serif: '"Newsreader", "Source Serif 4", Georgia, serif', sans: '"Inter", -apple-system, system-ui, sans-serif', mono: '"JetBrains Mono", ui-monospace, monospace', semantic: { success: '#2e4a33', warning: '#a66a00', error: '#8c3020', info: '#385a7a' }, darkBg: '#141612', darkSurface: '#1d201a', darkRule: '#2c2f26', darkText: '#ece6d7', darkMuted: '#8a8b7c', }, }; // ───────────────────────────── Wordmark ───────────────────────────── function Wordmark({ d, size = 56, inverse = false }) { const ink = inverse ? d.darkText : d.ink; const accent = d.accent; return (
Meridian
); } function WordmarkWithMark({ d, size = 56, inverse = false, variant = 'arc' }) { const ink = inverse ? d.darkText : d.ink; const stroke = inverse ? d.darkText : d.ink; const m = size * 1.05; return (
{variant === 'arc' && ( )} {variant === 'tick' && ( )} {variant === 'leaf' && ( )} Meridian
); } // ───────────────────────────── Monogram ───────────────────────────── function Monogram({ d, size = 64, inverse = false, variant = 'arc' }) { const bg = inverse ? d.darkSurface : d.paper; const ink = inverse ? d.darkText : d.ink; return (
{variant === 'arc' && (<> )} {variant === 'tick' && (<> )} {variant === 'leaf' && (<> )}
); } // ───────────────────────────── Pattern ───────────────────────────── function Pattern({ d, kind, inverse = false }) { const bg = inverse ? d.darkBg : d.paperDim; const stroke = inverse ? d.darkMuted : d.muted; const style = { width: '100%', height: 120, background: bg, overflow: 'hidden', position: 'relative' }; if (kind === 'rules') { return (
{Array.from({ length: 12 }).map((_, i) => ( ))}
); } if (kind === 'grid') { return (
); } if (kind === 'ticks') { return (
{Array.from({ length: 40 }).map((_, i) => ( ))}
); } if (kind === 'meridian') { return (
{Array.from({ length: 7 }).map((_, i) => ( ))}
); } if (kind === 'columns') { return (
{Array.from({ length: 12 }).map((_, i) => (
))}
); } if (kind === 'data') { // small histogram-like data lines const bars = [0.3, 0.5, 0.7, 0.9, 0.8, 0.55, 0.4, 0.62, 0.78, 0.5, 0.35, 0.22, 0.45, 0.6, 0.75, 0.65, 0.5, 0.4, 0.3, 0.48]; return (
{bars.map((b, i) => ( ))} `${(i / bars.length) * 100 + 2.5}%,${100 - b * 80}`).join(' ')} fill="none" stroke={d.accent} strokeWidth="1.2" />
); } return
; } // ───────────────────────────── Panels ───────────────────────────── function Panel({ title, children, d, flex = 1, minWidth = 320 }) { return (
{title}
{children}
); } function Swatch({ label, hex, d, big = false, textColor }) { return (
{label}
{hex.toUpperCase()}
); } // ───────────────────────────── Direction board ───────────────────────────── function DirectionBoard({ k, d, markVariant }) { const width = 1440; return ( {/* Masthead */}
Meridian · Brand Foundation — Direction {k} ISSN 0000·0000 · Vol. 01
Meridian
{d.subtitle}. An open-access journal of biomedical and healthcare research. Transparent peer review, paid reviewers, fair access.
ESTABLISHED 2026
OPEN ACCESS · CC-BY 4.0
PEER REVIEWED · SIGNED
{/* Wordmark + Monogram row */}
PRIMARY
WITH MARK
INVERSE · ON DARK
88px
44px
24px
16px
Works at 16px favicon scale. Single accent dot fades before the stroke at small sizes.
{/* Color system */}
{[ ['Ink', d.darkBg], ['Surface', d.darkSurface], ['Rule', d.darkRule], ['Accent', d.accent], ['Text', d.darkText], ['Muted', d.darkMuted], ['Paper', d.paper], ['Ink inv', d.ink], ].map(([l, h]) => (
{l}
{h.toUpperCase()}
))}
{/* Semantic */}
{Object.entries(d.semantic).map(([k, v]) => (
{k}
{v.toUpperCase()}
{k === 'success' && 'PEER REVIEWED'} {k === 'warning' && 'PREPRINT'} {k === 'error' && 'RETRACTED'} {k === 'info' && 'DATA AVAILABLE'}
))}
{/* Type */}
EDITORIAL · {d.serif.split(',')[0].replace(/"/g, '')}
Display 56
Article title 32
Section header 22
Body serif at 16 px with generous leading for long-form reading. The transitional letterforms remain legible at text sizes while holding editorial weight at display.
UI · {d.sans.split(',')[0].replace(/"/g, '')}
UI heading 28
UI label 16
Body sans for product chrome and interface copy. Used for buttons, navigation, form labels, and any non-editorial surface.
MONO · {d.mono.split(',')[0].replace(/"/g, '')}
DOI · 10.xxxx/meridian.2026.0001
VOL 01 · ISS 01 · APR 2026
RECEIVED 14 Mar · ACCEPTED 02 Apr
{/* Patterns */}
{(k === 'A' ? ['rules', 'data', 'columns'] : k === 'B' ? ['meridian', 'ticks', 'grid'] : ['rules', 'meridian', 'columns']).map((p) => (
{p}
))}
{/* Specimen: article row */}
RESEARCH
14 Apr 2026
Vol 01 · 003
A cell-free assay for quantifying amyloid-β aggregation kinetics in pre-symptomatic Alzheimer cohorts
Sarah Chen¹ · Miguel Ortega¹ · Priya Raman² · Hannes Vogel³
We report a microfluidic cell-free assay that resolves amyloid-β aggregation within 42 minutes, enabling longitudinal monitoring in pre-symptomatic cohorts without tissue sampling…
{['PEER REVIEWED', 'OPEN DATA', 'SIGNED REVIEW'].map((t, i) => ( {t} ))}
1,284
reads
3
reviewers · signed
doi/10.xxxx/mer.0003 →
{/* Specimen: submission dashboard snippet (the rewire moment) */}
{/* topbar */}
Meridian
AUTHOR
MS-2026-003 · RCVD 14 APR
{/* pipeline */}
{[ ['01', 'Intake', 'pass', '42s'], ['02', 'Desk review', 'pass', '3h'], ['03', 'Peer review', 'active', '14d'], ['04', 'Revisions', 'pending', '—'], ['05', 'Decision', 'pending', '—'], ['06', 'Published', 'pending', '—'], ].map(([n, l, s, t], i) => { const color = s === 'pass' ? d.semantic.success : s === 'active' ? d.accent : d.muted; return (
{n}
{l}
{s.toUpperCase()} · {t}
); })}
{/* body split */}
MANUSCRIPT
A cell-free assay for quantifying amyloid-β aggregation kinetics in pre-symptomatic Alzheimer cohorts
Chen · Ortega · Raman · Vogel · 4 authors · 8,421 words · 6 figures
REVIEW 2 OF 3 COMPLETEETA 03 MAY
{[ ['Completeness', '10/10', d.semantic.success], ['References verified', '47/47', d.semantic.success], ['ORCID linked', '4/4', d.semantic.success], ['APC estimate', '$175', d.ink], ['Time to decision', '~21d', d.accent], ].map(([k, v, c]) => (
{k} {v}
))}
{/* Specimen: article card + email header */}
MERIDIAN · RESEARCH 01 · 003
Amyloid-β aggregation kinetics, resolved in 42 minutes
Chen, Ortega, Raman, Vogel · 14 Apr 2026
REVIEWED OPEN DATA
Meridian
WEEKLY DISPATCH
ISSUE 14 · APR 2026
IN THIS ISSUE
Three studies on early-stage neurodegenerative detection
Plus: new signed-review data, our April cohort of named reviewers.
); } Object.assign(window, { DIRECTIONS, DirectionBoard, Wordmark, Monogram, Pattern });