01 Typography
All text uses var(--fr-font) (Sora). Seven scale levels from display to caption.
Display Heading
Heading 1 — 24px 700
Heading 2 — 20px 700
Body text paragraph with enough words to show line-height and weight. The quick brown fox jumps over the lazy dog. This demonstrates the default reading experience.
Small text — 13px 500
Caption text — 12px 400
Eyebrow Label — 11px 600 uppercase
02 Colors & Tokens
Every color is a --fr-* CSS variable. Toggle dark mode to see overrides.
Core Brand (Green / Red / Dark)
Semantic (Signal / Status)
Surfaces
Text
SEC Filing Badges — Temperature Coding
03 Spacing Scale
Six-step scale from 4px to 48px. All layout spacing references these tokens.
04 Cards
Three variants: default (hover + green bar), static (no hover), compact (reduced padding).
Default Card
Hover for effect
Green top bar + lift on hover
Static Card
No hover effect
For forms, content, settings
Compact Card
Reduced padding
For dense data layouts
05 Buttons
Six button types. Primary (CTA), secondary (outline), pill (toggle), danger (destructive), outline-danger, full-width modifier.
06 Tabs
Click tabs to switch content. Default and compact variants. Scrollable on mobile via .fr-scroll-x.
This is the Overview panel. Tab content switches without page reload.
This is the Details panel. Each tab maps to a panel via data-panel.
This is the Chart panel. In production, this would contain a Chart.js canvas.
This is the Settings panel. Used for configuration options.
07 Table
Standard data table with hover rows. Wrap in .fr-scroll-x for mobile overflow.
08 Tags & Tokens
All inline labeling: signal badges, stat pills, filter chips, small badges, and selectable pills.
Signal Badges
Stat Badges
Filter Chips
Small Badges
Selectable Pills
Click to toggle active state. .fr-pill
09 Progress Bar
Animated shimmer gradient bar. Set width via inline style.
25%
60%
90%
10 Forms
Text input, select, compact variants, form groups, form rows, textarea, checkboxes, accent links.
Form Groups & Rows
Checkboxes & Links
Read our terms of service and privacy policy.
Input Nesting Rule (Mandatory)
Inputs inside rounded containers MUST have matching border-radius. Formula: inner-radius = container-radius − container-padding (min 4px). The CSS enforces this automatically for .fr-input and .fr-select inside .fr-filter-bar, .fr-card, .fr-card--static, and .fr-modal-content.
11 Page Layouts
Three canonical page wrappers. Every page uses exactly one.
insiders, screener, signals, sectors, news, SEC
login, register, forgot-password, contact
account
12 Page Headers
Standard data page header (title + actions in flex row) and centered header.
Insider Tracker
Track insider buying and selling activity across all exchanges
Sign In
Welcome back. Enter your credentials to continue.
13 Filters
Filter bar with green left accent, grid rows of label+input pairs. Stacks on mobile.
14 Feedback & Alerts
Info bars, inline messages (error, success, muted), and toast notifications.
Info Bar
Inline Messages
Loading transactions...
Toast Notification
15 Modals
Modal overlay with backdrop blur. Actions stack on mobile.
17 Mobile Patterns
Three mobile strategies: horizontal-scrolling tables (sectors pattern), horizontal pill scrolling, and card view replacing table rows.
Scrollable Data Table (Sectors Pattern)
Wrap .fr-table inside .fr-scroll-x. On mobile, columns scroll horizontally while the first column stays readable. This is the primary mobile table pattern used on sectors, screener, and insiders pages.
Scrollable Pills
Mobile Card View (Table Replacement)
18 Charts
Standard chart containers at three height presets. Responsive height on mobile.
200px / 160px mobile
300px / 240px mobile
400px / 300px mobile
19 Loading States
Spinner loading indicator and skeleton content placeholders.
21 FAQ
Accordion-style FAQ with toggle animation. Click to expand.
22 Shadows
Four-tier shadow system. Glow uses green accent for hover states.
23 Animations
Built-in animation utilities. Shimmer visible on progress bars and skeletons above.
cardReveal
Slide Up + Fade
.fr-animate-card-reveal
contentFade
Subtle Fade
.fr-animate-content-fade
meshFloat
24 Utilities
Visual separators and in-card section headings.
Account Details
Email: user@example.com
Subscription
Plan: Pro (Monthly)
25 Breakpoint Reference
Canonical breakpoints. No other values permitted.
FinRadar Design System v2.0 · Phase 20 · 60 Components · 5 Canonical Breakpoints
