TARGETED.ARMY / FRONT-END SYSTEMCanonical

Style Guide

One searchable reference for the public site. Panel CSS, panel examples, recovery rules, and the live joined War Room page-frame standard are at /styles/panels; use this page for every other component.

86 Component References

Style Guide Section

Foundations 01 — Visual Language

Complete themes, exact palettes, spacing, icons, borders, and shadow recipes that everything else inherits. A theme controls the entire interface—not only its accent color.

8a17b3e1-0100-4d24-9a71-000000000001
Component Reference

Theme 01 — Operations Room

A disciplined, high-contrast operations-room theme: near-black canvas, graphite working surfaces, thin metallic rules, the selected theme color for action and emphasis, and signal colors used only when they carry meaning. Geometry stays mostly square with restrained corner rounding.

Near-Black Canvas
Graphite Surface
Theme Color Marks ActionGreen Carries Status
Friendly Name
Theme 01 — Operations Room
GUID
8a17b3e1-0101-4d24-9a71-000000000101
Use in
Every Public Route
Show Class & CSS
Class / Reference
Theme tokens on :root
Canonical CSS
--ta-canvas: #0d0e10; --ta-panel: #151618; --ta-panel-raised: #1b1c1f; --theme-accent: current theme color;

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Color 01 — Core Palette

These are the approved foundation colors. The selected theme color marks action and emphasis; green means online or successful only. Normal titles and prose use the documented light-gray hierarchy, with white reserved for inverse or selected states.

Theme Colorvar(--theme-accent)
Theme Hovervar(--theme-accent)
Signal Green#61bf7d
Canvas#0d0e10
Panel#151618
Raised#1b1c1f
Rule#45474d
Title Gray#d7d9dd
Primary Copy#c6c8cd
Secondary Copy#b5b7bc
Muted Copy#92949a
Friendly Name
Color 01 — Core Palette
GUID
8a17b3e1-0102-4d24-9a71-000000000102
Use in
Every Public Route
Show Class & CSS
Class / Reference
CSS custom properties beginning --ta-
Canonical CSS
--theme-accent: current theme color; --ta-signal-green: #61bf7d; --ta-canvas: #0d0e10; --ta-panel: #151618; --ta-title: #d7d9dd; --ta-copy-primary: #c6c8cd; --ta-copy-secondary: #b5b7bc; --ta-copy-muted: #92949a;

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Theme 02 — Black & Purple

The default palette uses a nearly black canvas, purple-black panels, violet rules, soft lavender copy, and electric purple actions. It is intentionally a complete environment—not one accent pasted onto another theme.

Near-Black Canvas
Purple-Black Surface
Electric Purple Marks ActionLavender Carries Copy
Friendly Name
Theme 02 — Black & Purple
GUID
8a17b3e1-0110-4d24-9a71-000000000110
Use in
Every Public, War Room, and Administration Route
Show Class & CSS
Class / Reference
html[data-theme="purple"]
Canonical CSS
--theme-canvas: #030305; --theme-surface: #100e16; --theme-surface-raised: #171320; --theme-rule: #3a2b4a; --theme-accent: #8f4bd6; --theme-text: #f5f2fa;

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Theme 03 — Field Green

A forest-black operations palette with deep green panels, mineral-green rules, clean pale copy, and tactical green actions.

Forest-Black Canvas
Deep Green Surface
Tactical Green Marks ActionMint Carries Copy
Friendly Name
Theme 03 — Field Green
GUID
8a17b3e1-0112-4d24-9a71-000000000112
Use in
Every Public, War Room, and Administration Route
Show Class & CSS
Class / Reference
html[data-theme="green"]
Canonical CSS
--theme-canvas: #040907; --theme-surface: #0d1713; --theme-surface-raised: #14241c; --theme-rule: #28493b; --theme-accent: #168a55; --theme-text: #f0f7f3;

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Theme 04 — Signal Pink

A black-rose interface with restrained berry panels, muted rose rules, soft pale copy, and vivid pink actions.

Black-Rose Canvas
Berry Surface
Signal Pink Marks ActionRose Carries Copy
Friendly Name
Theme 04 — Signal Pink
GUID
8a17b3e1-0113-4d24-9a71-000000000113
Use in
Every Public, War Room, and Administration Route
Show Class & CSS
Class / Reference
html[data-theme="pink"]
Canonical CSS
--theme-canvas: #090407; --theme-surface: #180e14; --theme-surface-raised: #25151f; --theme-rule: #4a2b3b; --theme-accent: #d13f82; --theme-text: #faf1f6;

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Theme 05 — Midnight Blue

A deep navy intelligence palette with blue-black panels, steel-blue rules, cool pale copy, and electric blue actions.

Midnight Canvas
Deep Navy Surface
Electric Blue Marks ActionIce Blue Carries Copy
Friendly Name
Theme 05 — Midnight Blue
GUID
8a17b3e1-0114-4d24-9a71-000000000114
Use in
Every Public, War Room, and Administration Route
Show Class & CSS
Class / Reference
html[data-theme="blue"]
Canonical CSS
--theme-canvas: #03070c; --theme-surface: #0b141e; --theme-surface-raised: #122030; --theme-rule: #29445f; --theme-accent: #2d7fca; --theme-text: #f1f6fb;

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Control 01 — Theme Switcher

The shared toolbar picker changes the complete interface immediately, stores the choice for future visits, and applies it before the page is shown so the previous theme does not flash.

Friendly Name
Control 01 — Theme Switcher
GUID
8a17b3e1-0111-4d24-9a71-000000000111
Use in
Public Header, Mobile Menu, Administration Toolbar
Show Class & CSS
Class / Reference
ThemeControl; theme-control
Canonical CSS
<ThemeControl /> /* data-theme is set on the html element and persisted as targetedarmy_theme. */

Source: app/ui/theme-control.tsx; app/globals.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Space 01 — Eight-Point Rhythm

Spacing follows a four-pixel base with an eight-point working rhythm. Prefer the named tokens instead of new one-off values.

4px
8px
12px
16px
24px
32px
48px
64px
Friendly Name
Space 01 — Eight-Point Rhythm
GUID
8a17b3e1-0107-4d24-9a71-000000000107
Use in
Every Layout and Component
Show Class & CSS
Class / Reference
--ta-space-1 through --ta-space-16
Canonical CSS
--ta-space-1: 4px; --ta-space-2: 8px; --ta-space-3: 12px; --ta-space-4: 16px; --ta-space-6: 24px; --ta-space-8: 32px; --ta-space-12: 48px; --ta-space-16: 64px;

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Shadow 01 — Hard Offset

Primary containers use a crisp down-right offset shadow, not a soft floating card shadow. Theme-accent echo shadows are subtle and optional. Overlays use a soft deep shadow because they must separate from the page.

Hard Offset8px 9px 0
Theme Echo-3px -3px 0
Overlay0 24px 75px
Friendly Name
Shadow 01 — Hard Offset
GUID
8a17b3e1-0108-4d24-9a71-000000000108
Use in
Panels, Cards, Menus, Modals
Show Class & CSS
Class / Reference
--ta-shadow-offset; ta-box--raised
Canonical CSS
--ta-shadow-offset: 8px 9px 0 rgba(0,0,0,.28); /* optional theme echo */ box-shadow: 8px 9px 0 rgba(0,0,0,.28), -3px -3px 0 rgb(from var(--theme-accent) r g b / .1); /* overlay */ box-shadow: 0 24px 75px rgba(0,0,0,.58);

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Icon 01 — Standard Line

Use the shared 24×24 line icon family. Standard stroke is 1.55–1.8, with round joins. Icons support labels; they do not replace clear text for unfamiliar actions.

ToolsEvidenceFOIAEmailCommunitySettings
Friendly Name
Icon 01 — Standard Line
GUID
8a17b3e1-0109-4d24-9a71-000000000109
Use in
Headers, Tool Cards, Navigation, Action Rows
Show Class & CSS
Class / Reference
PageIcon from app/ui/icons.tsx
Canonical CSS
svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Style Guide Section

Typography 01 — Type System

The approved public type families, sizes, weights, line heights, casing, and text colors. Author every title and short standalone interface phrase of one to four words in Title Case. Paragraphs and longer sentences remain sentence case; titles use light gray—not white—as their normal color.

8a17b3e1-1300-4d24-9a71-000000000013
Component Reference

System 01 — Approved Type Scale

Use these roles instead of inventing one-off sizes. Normal titles and prose use the gray hierarchy; reserve white for selected controls, inverse button text, and exceptional contrast.

RoleFamilySizeLineWeightCaseColor
Display TitleGeist Sans40–72px.98800Title Case#d7d9dd
Page HeadingGeist Sans30–46px1.05700Title Case#d7d9dd
Section HeadingGeist Sans20px1.2600Title Case#d7d9dd
Control TitleGeist Sans14px1.35400Title Case#d7d9dd
Lead CopyGeist Sans17px1.7400Sentence#c6c8cd
Body CopyGeist Sans14px1.7400Sentence#b5b7bc
Supporting TextGeist Sans12px1.55400Sentence#92949a
Control ValueGeist Sans12px1.45400Title Case ≤4#c6c8cd
Helper TextGeist Sans11px1.45400Sentence#92949a
MetadataGeist Mono10px1.45400Title Case → Uppercase#92949a
Button LabelGeist Mono10px1.2400Title Case → Uppercase#d7d9dd
Eyebrow / TechnicalGeist Mono10px1.35400Title Case → Uppercasevar(--theme-accent)
Metric ValueGeist Sans30px1700Numeric#d7d9dd
Friendly Name
System 01 — Approved Type Scale
GUID
8a17b3e1-1301-4d24-9a71-000000001301
Use in
Every Public Route and Component
Show Class & CSS
Class / Reference
ta-display; ta-heading; ta-subheading; ta-control-title; ta-lead; ta-body; ta-supporting; ta-helper; ta-meta
Canonical CSS
--ta-title:#d7d9dd; --ta-copy-primary:#c6c8cd; --ta-copy-secondary:#b5b7bc; --ta-copy-muted:#92949a; /* Core text sizes: 10, 11, 12, 14, 17, 20, 30, plus responsive headings. Icon glyph dimensions are component-specific. */
Legacy Equivalents to Consolidate

Existing public route CSS still contains one-off sizes and direct white text. Future migration work should map those rules to this scale and gray hierarchy rather than add new values.

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Font 01 — Geist Sans

The primary reading and interface family. Use it for titles, body copy, form values, navigation, and normal public UI text. Compact button labels remain Geist Mono and are authored in Title Case even when their established treatment renders uppercase.

Geist Sans

Clear Public Information and Dependable Interface Text

ABCDEFGHIJKLMNOPQRSTUVWXYZ · abcdefghijklmnopqrstuvwxyz · 0123456789
Friendly Name
Font 01 — Geist Sans
GUID
8a17b3e1-1302-4d24-9a71-000000001302
Use in
Titles, Reading Copy, Controls, Navigation, Cards
Show Class & CSS
Class / Reference
ta-font-sans; var(--font-geist-sans)
Canonical CSS
.ta-font-sans { font-family:var(--font-geist-sans),Arial,sans-serif; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Font 02 — Geist Mono

The technical accent family. Restrict it to eyebrows, metadata, GUIDs, compact statuses, compact button labels, and short technical labels; do not use it for paragraphs.

Geist Mono

TECHNICAL LABEL · STATUS · GUID · 10:30 AM

8a17b3e1…1303 · /styles#GUID
Friendly Name
Font 02 — Geist Mono
GUID
8a17b3e1-1303-4d24-9a71-000000001303
Use in
Eyebrows, Metadata, Identifiers, Compact Technical Labels
Show Class & CSS
Class / Reference
ta-font-mono; var(--font-geist-mono)
Canonical CSS
.ta-font-mono { font-family:var(--font-geist-mono),monospace; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Title 01 — Display Title

The main message on a landing page or major directory. Keep it short, author it in Title Case, and do not force it to uppercase with CSS.

Take Action.
Create Change.

Friendly Name
Title 01 — Display Title
GUID
8a17b3e1-0103-4d24-9a71-000000000103
Use in
Home, Content Directory, Major Campaign Pages
Show Class & CSS
Class / Reference
ta-display
Canonical CSS
.ta-display { color:#d7d9dd; font-size:clamp(40px,6vw,72px); font-weight:800; line-height:.98; letter-spacing:-.055em; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Title 02 — Page Heading

The standard large page or major section heading. Author the words in Title Case and use the shared light-gray title token.

Build a Record That Can Endure Scrutiny

Friendly Name
Title 02 — Page Heading
GUID
8a17b3e1-0104-4d24-9a71-000000000104
Use in
Directories, Tools, Account Pages, Community
Show Class & CSS
Class / Reference
ta-heading
Canonical CSS
.ta-heading { color:#d7d9dd; font-size:clamp(30px,4vw,46px); font-weight:700; line-height:1.05; letter-spacing:-.04em; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Title 03 — Section Heading

The standard heading inside a panel, card group, or page section. Always author visible title text in Title Case.

Organize Supporting Evidence

Friendly Name
Title 03 — Section Heading
GUID
8a17b3e1-1304-4d24-9a71-000000001304
Use in
Panels, Cards, Tool Sections, Modal Headings
Show Class & CSS
Class / Reference
ta-subheading
Canonical CSS
.ta-subheading { color:#d7d9dd; font-size:20px; font-weight:600; line-height:1.2; letter-spacing:-.025em; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Title 04 — Control Title

A compact title inside a control or component, such as Local Time. It uses authored Title Case, regular weight, and the same light-gray title color.

TimeLocal Time
Friendly Name
Title 04 — Control Title
GUID
8a17b3e1-1305-4d24-9a71-000000001305
Use in
Date-Time Controls, Compact Panel Headings, Field Groups
Show Class & CSS
Class / Reference
ta-control-title
Canonical CSS
.ta-control-title { color:#d7d9dd; font-size:14px; font-weight:400; line-height:1.35; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Copy 01 — Lead & Body Copy

Lead copy is 17px light gray; normal body copy is 14px secondary light gray. Both use comfortable 1.7 leading and sentence case.

This lead introduces the purpose of a section without overpowering its title.

Reading copy uses a comfortable line height and a restrained width so longer instructions remain clear.

Friendly Name
Copy 01 — Lead & Body Copy
GUID
8a17b3e1-0105-4d24-9a71-000000000105
Use in
Every Public Route
Show Class & CSS
Class / Reference
ta-lead; ta-body
Canonical CSS
.ta-lead { color:#c6c8cd; font-size:17px; font-weight:400; line-height:1.7; } .ta-body { color:#b5b7bc; font-size:14px; line-height:1.7; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Copy 02 — Supporting Text

Short secondary copy at 12px. Use muted gray and never reduce important instructions to this size.

Supporting text adds useful context without competing with the primary instruction.

Friendly Name
Copy 02 — Supporting Text
GUID
8a17b3e1-1307-4d24-9a71-000000001307
Use in
Compact Descriptions and Secondary Context
Show Class & CSS
Class / Reference
ta-supporting
Canonical CSS
.ta-supporting { color:#92949a; font-size:12px; font-weight:400; line-height:1.55; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Copy 03 — Helper Text

Field guidance and compact context use one 11px helper role. Keep it short, sentence case, and adjacent to the control it explains.

Use 8–24 characters. Letters, numbers, and hyphens are allowed.

Friendly Name
Copy 03 — Helper Text
GUID
8a17b3e1-1308-4d24-9a71-000000001308
Use in
Form Guidance, Constraints, Character Counts, Compact Context
Show Class & CSS
Class / Reference
ta-helper; ta-field small
Canonical CSS
.ta-helper, .ta-field small { color:#92949a; font-size:11px; font-weight:400; line-height:1.45; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Label 01 — Theme Accent Eyebrow

The one canonical eyebrow treatment. Author its source text in Title Case; the established technical treatment renders it uppercase, mono, in the selected theme color, and non-bold. It sits above a title and should never compete with it.

Choose Your Next Step

A Quiet Label Above a Strong Title

Friendly Name
Label 01 — Theme Accent Eyebrow
GUID
8a17b3e1-0106-4d24-9a71-000000000106
Use in
Home, Content, Tools, Panels, Community, Account, Evidence Center
Show Class & CSS
Class / Reference
ta-eyebrow
Canonical CSS
.ta-eyebrow { color:var(--theme-accent); font:400 10px/1.35 var(--font-geist-mono),monospace; letter-spacing:.16em; text-transform:uppercase; }
Legacy Equivalents to Consolidate

.eyebrow, .tiny-label, .tool-category, .content-library-kicker, .community-eyebrow, .evidence-kicker, .foia-kicker

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Meta 01 — Technical Metadata

Compact muted metadata for dates, categories, authors, counts, routes, and identifiers. Author normal words in Title Case; this short technical role may render them uppercase.

Research · Updated July 17, 2026 · 8 Min Read

Friendly Name
Meta 01 — Technical Metadata
GUID
8a17b3e1-0902-4d24-9a71-000000000902
Use in
Articles, Resources, Records, Cards
Show Class & CSS
Class / Reference
ta-meta
Canonical CSS
.ta-meta { color:#92949a; font:400 10px/1.45 var(--font-geist-mono),monospace; letter-spacing:.07em; text-transform:uppercase; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Code 01 — Inline Reference

Use for class names, routes, GUIDs, and small technical values inside prose. It stays light gray rather than white.

Use ta-button ta-button--primary for Accent 01.

Friendly Name
Code 01 — Inline Reference
GUID
8a17b3e1-0903-4d24-9a71-000000000903
Use in
Style Guide and Technical Instructions
Show Class & CSS
Class / Reference
ta-inline-code
Canonical CSS
.ta-inline-code { color:#d7d9dd; padding:3px 6px; border:1px solid #3e4147; background:#111214; font:400 12px/1.4 var(--font-geist-mono),monospace; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Rule 01 — Title Case for Headers, Links & Buttons

Author headers, standalone links, buttons, and every other short interface phrase in Title Case. This includes headings, field labels, tabs, menu items, badges, dropdown headings, summaries and options, short statuses, and words following numbers such as 2 Selected. Keep paragraphs, instructions, validation messages, helper sentences, and longer descriptions in sentence case. Preserve acronyms, brand casing, and intentionally uppercase technical roles. Write casing in the source; never use CSS text-transform: capitalize.

Header

Download the Evidence Package

Authored Title Case
LinkPackage ManifestAuthored Title Case
ButtonAuthored Title Case
Friendly Name
Rule 01 — Title Case for Headers, Links & Buttons
GUID
8a17b3e1-1306-4d24-9a71-000000001306
Use in
All Headers, Standalone Links, Buttons, Labels, Menus, Options, Badges, and Short UI Phrases
Show Class & CSS
Class / Reference
Editorial rule; no transformation class
Canonical CSS
/* Header: Download the Evidence Package; Link: Package Manifest; Button: Complete ZIP Package. Author the words correctly; never use text-transform:capitalize to repair copy. */

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Style Guide Section

Actions 01 — Buttons

One button system with semantic variants. Author every button label in Title Case. All labels are non-bold, controls share the same height within a row, and new page-level copies are not permitted.

8a17b3e1-0200-4d24-9a71-000000000002
Component Reference

Accent 01 — Primary Action

The single highest-priority action in a region. Avoid placing two Accent 01 buttons beside each other.

Friendly Name
Accent 01 — Primary Action
GUID
8a17b3e1-0201-4d24-9a71-000000000201
Use in
Submit, Save, Create, Publish, Continue
Show Class & CSS
Class / Reference
ta-button ta-button--primary
Canonical CSS
.ta-button--primary { border-color: var(--theme-accent); background: var(--theme-accent); color: #fff; box-shadow: 4px 4px 0 rgb(from var(--theme-accent) r g b / .36); }
Legacy Equivalents to Consolidate

.button.button-primary, .account-button.primary, .foia-button-primary, .outreach-launch

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Dark 01 — Secondary Action

A normal supporting action on a dark surface. Pair with Accent 01 when both actions are necessary.

Friendly Name
Dark 01 — Secondary Action
GUID
8a17b3e1-0202-4d24-9a71-000000000202
Use in
Cancel Alternatives, Utility Actions, Secondary Navigation
Show Class & CSS
Class / Reference
ta-button ta-button--secondary
Canonical CSS
.ta-button--secondary { border-color:#4d5056; background:#1b1c1f; color:#d7d9dd; }
Legacy Equivalents to Consolidate

.foia-button-dark, .outreach-dark-button, dark .account-button.secondary

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Outline 01 — Bordered Action

An action that needs visibility without taking priority from Accent 01.

Friendly Name
Outline 01 — Bordered Action
GUID
8a17b3e1-0203-4d24-9a71-000000000203
Use in
Download Alternatives, Start-Over, Add Supporting Item
Show Class & CSS
Class / Reference
ta-button ta-button--outline
Canonical CSS
.ta-button--outline { border-color: var(--theme-accent); background: transparent; color: var(--theme-accent-copy); }
Legacy Equivalents to Consolidate

.button-outline, .evidence-light-button, outlined record actions

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Ghost 01 — Quiet Action

A low-emphasis action such as dismiss, clear, or return. It should not look like the primary path.

Friendly Name
Ghost 01 — Quiet Action
GUID
8a17b3e1-0204-4d24-9a71-000000000204
Use in
Clear, Dismiss, Back, Close
Show Class & CSS
Class / Reference
ta-button ta-button--ghost
Canonical CSS
.ta-button--ghost { border-color: transparent; background: transparent; color: #b5b7bc; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Danger 01 — Destructive Action

Reserved for deletion, deactivation, or irreversible actions. Pair with plain-language confirmation.

Friendly Name
Danger 01 — Destructive Action
GUID
8a17b3e1-0205-4d24-9a71-000000000205
Use in
Delete, Deactivate, Revoke
Show Class & CSS
Class / Reference
ta-button ta-button--danger
Canonical CSS
.ta-button--danger { border-color: var(--theme-accent-border); background: var(--theme-accent-surface); color: var(--theme-accent-copy); }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Icon 02 — Compact Action

A square control for an obvious icon action. Always include an aria-label and title.

Friendly Name
Icon 02 — Compact Action
GUID
8a17b3e1-0206-4d24-9a71-000000000206
Use in
Calendar Navigation, Close, Copy, Small Toolbars
Show Class & CSS
Class / Reference
ta-button ta-button--secondary ta-button--icon
Canonical CSS
.ta-button--icon { width: 44px; min-height: 44px; padding: 0; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

State 01 — Disabled

Disabled controls remain recognizable but clearly unavailable. Do not rely on opacity alone to explain why.

Friendly Name
State 01 — Disabled
GUID
8a17b3e1-0207-4d24-9a71-000000000207
Use in
Unavailable or Incomplete Actions
Show Class & CSS
Class / Reference
ta-button disabled
Canonical CSS
.ta-button:disabled { opacity: .5; cursor: not-allowed; transform: none; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

State 02 — Processing

Keep the action label understandable while work is in progress. Disable the control and show the shared spinner.

Friendly Name
State 02 — Processing
GUID
8a17b3e1-0208-4d24-9a71-000000000208
Use in
Saving, Sending, Uploading, Transcribing
Show Class & CSS
Class / Reference
ta-button ta-button--primary; ta-button__spinner
Canonical CSS
.ta-button__spinner { width: 15px; height: 15px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: ta-spin .75s linear infinite; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Group 01 — Action Row

Align related actions in one flexible row. Every button in the row uses the same size modifier.

Friendly Name
Group 01 — Action Row
GUID
8a17b3e1-0209-4d24-9a71-000000000209
Use in
Form Footers, Modal Footers, Record Actions
Show Class & CSS
Class / Reference
ta-button-row
Canonical CSS
.ta-button-row { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Style Guide Section

Selection 01 — Tabs & Filters

Controls for changing panels, categories, views, or query scope. The default selected state is a solid theme-color surface with white text and the toolbox offset shadow.

8a17b3e1-0300-4d24-9a71-000000000003
Component Reference

Tabs 01 — Toolbox Tabs

The default selector style for tabs, route navigation, and single- or multi-select filters. Buttons, links, and checkbox-backed labels share one rounded shape and solid theme-color selected state.

Friendly Name
Tabs 01 — Toolbox Tabs
GUID
8a17b3e1-0301-4d24-9a71-000000000301
Use in
Home Toolbox, Tools Library, Evidence Tracker, File Explorer, Community, Member Access, Compact Category Selection
Show Class & CSS
Class / Reference
ta-tabs; ta-tabs--two/three/four/five/stacked; ta-tab; ta-tab-choice
Canonical CSS
.ta-tabs { display:grid; gap:6px; } .ta-tabs > :is(button,a,.ta-tab-choice), .ta-tab { min-height:44px; border:1px solid #3d3e43; border-radius:5px; background:#1c1d20; } [aria-selected=true], [aria-pressed=true], [aria-current=page], .ta-tab-choice:has(input:checked) { background:var(--theme-accent); color:#fff; box-shadow:3px 4px 0 rgb(from var(--theme-accent) r g b / .42); }
Legacy Equivalents to Consolidate

.preview-category-tabs, .evidence-center-tabs, .social-type-filters, .quick-categories, .community-categories

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Tabs 02 — Segmented Panel

Use the toolbox tabs inside an enclosed card when switching between two to four mutually exclusive panels. Selection remains the solid theme color; the surrounding rail only groups the choices.

Friendly Name
Tabs 02 — Segmented Panel
GUID
8a17b3e1-0302-4d24-9a71-000000000302
Use in
Member Access Methods, Editor Modes, View Modes
Show Class & CSS
Class / Reference
ta-tabs ta-tabs--two ta-segmented-tabs
Canonical CSS
.ta-segmented-tabs { gap:4px; padding:4px; border:1px solid #3d3f44; background:#111214; }
Legacy Equivalents to Consolidate

.member-login-tabs, .outreach-mode-tabs

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Filter 01 — Toggle Chips

Use for optional compact filters that can be combined. Chips wrap, use aria-pressed, and fill with the solid theme color when selected.

Friendly Name
Filter 01 — Toggle Chips
GUID
8a17b3e1-0303-4d24-9a71-000000000303
Use in
Search Filters, Tags, Optional Scopes
Show Class & CSS
Class / Reference
ta-chip-row; ta-chip
Canonical CSS
.ta-chip { min-height:34px; border:1px solid #484b51; border-radius:999px; background:#1b1c1f; } .ta-chip[aria-pressed=true] { border-color:var(--theme-accent); background:var(--theme-accent); color:#fff; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Paging 01 — Results Navigation

Previous and next stay at the outer edges while the current page remains centered.

Page 2 of 8
Friendly Name
Paging 01 — Results Navigation
GUID
8a17b3e1-0304-4d24-9a71-000000000304
Use in
Content Library and Long Result Sets
Show Class & CSS
Class / Reference
ta-pagination
Canonical CSS
.ta-pagination { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:14px; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Steps 01 — Workflow Progress

Use for a short, ordered process. Current, complete, and upcoming states must remain distinct.

Agency02Details03Review04Finish
Friendly Name
Steps 01 — Workflow Progress
GUID
8a17b3e1-0305-4d24-9a71-000000000305
Use in
FOIA, Email Outreach, Import and Setup Workflows
Show Class & CSS
Class / Reference
ta-stepper; is-current; is-complete
Canonical CSS
.ta-stepper { display:grid; grid-template-columns:repeat(auto-fit,minmax(110px,1fr)); border:1px solid #3b3d42; }
Legacy Equivalents to Consolidate

.foia-progress, .outreach-wizard-top ol, .evidence-import-steps

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Style Guide Section

Inputs 01 — Forms

The complete public form-control family. Fields use persistent labels, clear focus states, adequate internal padding, and shared heights.

8a17b3e1-0400-4d24-9a71-000000000004
Component Reference

Field 01 — Text Input

The default one-line input with a visible label and optional helper text.

Friendly Name
Field 01 — Text Input
GUID
8a17b3e1-0401-4d24-9a71-000000000401
Use in
Account, Community, Tools, Contact
Show Class & CSS
Class / Reference
ta-field
Canonical CSS
.ta-field input { min-height:44px; padding:0 13px; border:1px solid #4a4d53; background:#111214; color:#c6c8cd; }
Legacy Equivalents to Consolidate

.account-field, .outreach-field, .foia-field, .record-form-grid label

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Search 01 — Search Control

A continuous 52px surface with icon, input, and optional clear action. Focus selects the complete outer control; the inner text input never draws its own border, ring, or glow.

Friendly Name
Search 01 — Search Control
GUID
8a17b3e1-0402-4d24-9a71-000000000402
Use in
Tools, Content, File Explorer, Community, Evidence Center
Show Class & CSS
Class / Reference
ta-search-control
Canonical CSS
.ta-search-control { min-height:52px; display:grid; grid-template-columns:22px minmax(0,1fr) auto; gap:10px; padding:0 14px; border:1px solid #4a4d53; } .ta-search-control:focus-within { border-color:var(--ta-focus-ring); box-shadow:0 0 0 3px rgb(from var(--theme-accent) r g b / .16), 0 0 18px rgb(from var(--theme-accent) r g b / .16); } .ta-search-control > input:focus, .ta-search-control > input:focus-visible { border:0; outline:0; box-shadow:none; }
Legacy Equivalents to Consolidate

.search-box, .community-searchbar, .explorer-search

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Field 02 — Text Area

Multi-line text with at least 13px internal padding and a comfortable 1.6 line height.

Friendly Name
Field 02 — Text Area
GUID
8a17b3e1-0403-4d24-9a71-000000000403
Use in
Descriptions, Posts, Replies, Messages, Notes
Show Class & CSS
Class / Reference
ta-field
Canonical CSS
.ta-field textarea { min-height:118px; padding:13px; resize:vertical; line-height:1.6; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Field 03 — Native Select Fallback

Use only when a browser-owned native menu is specifically required. It keeps the canonical trigger colors and 15px chevron inset, but its opened option panel cannot match the boxed site dropdown across browsers.

Friendly Name
Field 03 — Native Select Fallback
GUID
8a17b3e1-0404-4d24-9a71-000000000404
Use in
Native Fallback Only; Use Dropdown 02 for Normal Public Single-Choice Menus
Show Class & CSS
Class / Reference
ta-field
Canonical CSS
.ta-field select { min-height:44px; border:1px solid #4a4d53; background:#111214; color:#c6c8cd; } main:not(.admin-main):not(.admin-page) select:not([multiple]) { appearance:none; padding-right:42px; background-position:right 15px center; background-size:10px 6px; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Dropdown 01 — Boxed Multi-Select

The canonical dropdown for choosing any number of values. It is the live Evidence Tracker pattern: a dark floating panel, individually boxed rows, visible theme-color checkboxes, and a fixed SVG chevron exactly 15px from the right edge and vertically centered.

Friendly Name
Dropdown 01 — Boxed Multi-Select
GUID
8a17b3e1-0412-4d24-9a71-000000000412
Use in
Evidence Category Filters and Every Public Multi-Select Dropdown
Show Class & CSS
Class / Reference
BoxedMultiSelect from app/ui/boxed-dropdown.tsx; ta-dropdown ta-dropdown--multi
Canonical JSX
<BoxedMultiSelect
  value={selected}
  onChange={setSelected}
  options={options}
  summary={selected.length ? `${selected.length} Selected` : "All Categories"}
  eyebrow="Filter the Timeline"
  title="Choose Categories"
/>
Canonical CSS
--ta-dropdown-chevron-inset:15px; .ta-dropdown__trigger { position:relative; padding:0 42px 0 14px; } .ta-dropdown__chevron { width:10px; height:6px; position:absolute; right:var(--ta-dropdown-chevron-inset); top:50%; transform:translateY(-50%); } .ta-dropdown__option--multi > input:checked + .ta-dropdown__option-surface .ta-dropdown__check { background:var(--theme-accent); color:#fff; }
Legacy Equivalents to Consolidate

.evidence-filter-trigger, .evidence-category-menu, .evidence-category-choice

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Dropdown 02 — Boxed Single-Select

The default public dropdown when only one value may be selected. It uses the same trigger, floating panel, boxed rows, and 15px centered chevron as Dropdown 01, but deliberately omits checkboxes and closes after selection. Every long list, including State and Committee, keeps the panel at a usable height and scrolls only the options region.

Choose OneCategory
Friendly Name
Dropdown 02 — Boxed Single-Select
GUID
8a17b3e1-0413-4d24-9a71-000000000413
Use in
Congress State, Committee and Page Size Filters; Categories, Sorting, Country, Time Zone, Severity, Units, Formats
Show Class & CSS
Class / Reference
BoxedSingleSelect from app/ui/boxed-dropdown.tsx; ta-dropdown ta-dropdown--single
Canonical JSX
<BoxedSingleSelect
  value={category}
  onChange={setCategory}
  options={options}
  summary={category || "Choose a Category"}
  eyebrow="Choose One"
  title="Category"
/>
Canonical CSS
.ta-dropdown--single .ta-dropdown__option-surface { grid-template-columns:38px minmax(0,1fr); } .ta-dropdown__option--single[aria-selected=true] .ta-dropdown__option-surface { border-color:var(--theme-accent); background:var(--theme-accent); color:#fff; } .ta-dropdown__menu { max-height:min(460px,calc(100dvh - 110px)); display:flex; flex-direction:column; } .ta-dropdown__options { min-height:0; max-height:360px; overflow-y:auto; overscroll-behavior:contain; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Choice 01 — Checkbox

Use when multiple choices may be active or for a clear yes/no confirmation.

Friendly Name
Choice 01 — Checkbox
GUID
8a17b3e1-0405-4d24-9a71-000000000405
Use in
Filters, Consent, Record Flags, Notifications
Show Class & CSS
Class / Reference
ta-choice
Canonical CSS
.ta-choice { display:inline-flex; align-items:center; gap:9px; } .ta-choice input { width:18px; height:18px; accent-color:var(--theme-accent); }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Choice 02 — Radio

Use for one choice from a short visible set. Do not use tabs when the choice submits form data rather than changing a view.

Friendly Name
Choice 02 — Radio
GUID
8a17b3e1-0406-4d24-9a71-000000000406
Use in
Format, Method, Scope, Preference
Show Class & CSS
Class / Reference
ta-choice; ta-choice-group
Canonical CSS
.ta-choice-group { display:flex; flex-wrap:wrap; gap:14px 22px; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Switch 01 — Immediate Toggle

Use only for a setting that takes effect immediately, not for a value that waits for form submission.

Friendly Name
Switch 01 — Immediate Toggle
GUID
8a17b3e1-0407-4d24-9a71-000000000407
Use in
Notifications, Motion Effects, Live Preferences
Show Class & CSS
Class / Reference
ta-switch
Canonical CSS
.ta-switch input:checked + i { border-color:var(--theme-accent); background:var(--theme-accent); }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Upload 01 — File Drop

A large upload target with click and drag-and-drop support. Always state accepted types and limits.

Friendly Name
Upload 01 — File Drop
GUID
8a17b3e1-0408-4d24-9a71-000000000408
Use in
Evidence Import, Attachments, Member Key File, Profile Picture
Show Class & CSS
Class / Reference
ta-file-drop
Canonical CSS
.ta-file-drop { min-height:180px; display:grid; place-content:center; padding:24px; border:1px dashed #62656b; background:#111214; }
Legacy Equivalents to Consolidate

.evidence-import-drop, .license-drop, .quick-file-picker

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

State 03 — Field Error

Keep the label and entered value visible, outline the field, and place a specific recovery message directly below it.

Friendly Name
State 03 — Field Error
GUID
8a17b3e1-0409-4d24-9a71-000000000409
Use in
Any Validation Failure
Show Class & CSS
Class / Reference
ta-field ta-field--error
Canonical CSS
.ta-field--error input { border-color:var(--theme-accent); } .ta-field--error small { color:var(--theme-accent-copy); }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

State 04 — Disabled Field

Disabled fields remain legible but visually inactive. Use helper text when the reason is not obvious.

Friendly Name
State 04 — Disabled Field
GUID
8a17b3e1-0410-4d24-9a71-000000000410
Use in
Unavailable Options and Locked Generated Values
Show Class & CSS
Class / Reference
ta-field; disabled attribute
Canonical CSS
.ta-field input:disabled { background:#191a1d; color:#6f7278; cursor:not-allowed; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Layout 01 — Form Grid

Two columns on wide screens, one column on small screens. Long inputs and text areas use the wide modifier.

Friendly Name
Layout 01 — Form Grid
GUID
8a17b3e1-0411-4d24-9a71-000000000411
Use in
Account, Tools, Record Editor
Show Class & CSS
Class / Reference
ta-form-grid; ta-field--wide
Canonical CSS
.ta-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; } .ta-field--wide { grid-column:1/-1; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Style Guide Section

Date 01 — Calendar Controls

Date inputs, themed calendar and date-time pickers, and paired date-range controls.

8a17b3e1-0500-4d24-9a71-000000000005
Component Reference

Date 01 — Native Date Field

Use the native date input when a full custom calendar is unnecessary. It inherits the Field 01 surface.

Friendly Name
Date 01 — Native Date Field
GUID
8a17b3e1-0501-4d24-9a71-000000000501
Use in
Community Filters, Evidence Exports, Simple Forms
Show Class & CSS
Class / Reference
ta-field; input[type=date]
Canonical CSS
.ta-field input[type=date] { min-height:44px; color-scheme:dark; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Calendar 01 — Themed Popover

The canonical custom month picker. Today has an outline; the selected day uses the theme color; adjacent-month dates are muted.

Select DateJuly 2026
SMTWTFS
Friendly Name
Calendar 01 — Themed Popover
GUID
8a17b3e1-0502-4d24-9a71-000000000502
Use in
Evidence Center Date Filters and Future Advanced Date Selection
Show Class & CSS
Class / Reference
ta-calendar; ta-calendar__weekdays; ta-calendar__grid
Canonical CSS
.ta-calendar { width:330px; padding:15px; border:1px solid #4a4d53; background:#151618; box-shadow:8px 10px 0 rgba(0,0,0,.34); }
Legacy Equivalents to Consolidate

.themed-date-popover is the current Evidence Center implementation

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Date Time 01 — Calendar & Time Picker

The canonical date-time control. Hour, Minute, and AM/PM share the same 44px outer height; the compact Local Time title follows the light-gray Title Case rule.

Select Date & TimeJuly 2026
SMTWTFS
TimeLocal Time
Local

SelectedJul 17, 2026 · 10:30 AM

Friendly Name
Date Time 01 — Calendar & Time Picker
GUID
8a17b3e1-0504-4d24-9a71-000000000504
Use in
Evidence Records, Scheduled Actions, Event Forms, and Any Precise Local Timestamp
Show Class & CSS
Class / Reference
ta-calendar ta-datetime-picker; ta-datetime-picker__time; ta-datetime-picker__actions
Canonical CSS
.ta-datetime-picker__field select, .ta-datetime-picker__period { min-height:44px; } .ta-datetime-picker__time-heading .ta-control-title { margin:0; } .ta-control-title { color:#d7d9dd; font-size:14px; font-weight:400; } .ta-datetime-picker__period { height:var(--ta-control-md); align-items:stretch; padding:3px; overflow:hidden; } .ta-datetime-picker__period > button { height:auto; min-height:0; align-self:stretch; display:inline-flex; align-items:center; justify-content:center; } .ta-datetime-picker__period button[aria-pressed=true] { background:var(--theme-accent); color:#fff; }
Legacy Equivalents to Consolidate

input[type=datetime-local] remains the native fallback; quick-record, record-editor, and importer fields are future migration targets

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Date 02 — Range Pair

Place From and To fields beside each other on wide screens and stack them on mobile. Never reverse their order.

Friendly Name
Date 02 — Range Pair
GUID
8a17b3e1-0503-4d24-9a71-000000000503
Use in
Evidence Filters, Exports, Report Ranges
Show Class & CSS
Class / Reference
ta-form-grid; ta-field
Canonical CSS
.ta-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Style Guide Section

Status 01 — Tags & Badges

Compact status labels with strict semantic color use. Badges are non-bold and uppercase.

8a17b3e1-0600-4d24-9a71-000000000006
Component Reference

Green 01 — Online

The only sitewide online indicator. It says Online and never includes a separate green dot.

Online
Friendly Name
Green 01 — Online
GUID
8a17b3e1-0601-4d24-9a71-000000000601
Use in
Page and Tool Availability
Show Class & CSS
Class / Reference
ta-badge ta-badge--online
Canonical CSS
.ta-badge--online { border-color:#2f6647; background:rgba(47,102,71,.22); color:#75d491; }
Legacy Equivalents to Consolidate

.panel-page-status

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Accent 02 — Live

Use for live content or an actively running feature, not as a duplicate online label.

Live
Friendly Name
Accent 02 — Live
GUID
8a17b3e1-0602-4d24-9a71-000000000602
Use in
Live Tools, Active Sessions, Live Rooms
Show Class & CSS
Class / Reference
ta-badge ta-badge--live
Canonical CSS
.ta-badge--live { border-color:var(--theme-accent-border); background:rgb(from var(--theme-accent) r g b / .15); color:var(--theme-accent-copy); }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Amber 01 — Member

Marks member-only access. It describes access, not health or readiness.

Members
Friendly Name
Amber 01 — Member
GUID
8a17b3e1-0603-4d24-9a71-000000000603
Use in
Member Tools and Protected Workspaces
Show Class & CSS
Class / Reference
ta-badge ta-badge--member
Canonical CSS
.ta-badge--member { border-color:#86501f; background:rgba(194,107,37,.15); color:#f0a45d; }
Legacy Equivalents to Consolidate

.tool-access.is-member

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Blue 01 — Public

Marks public access or neutral information.

Public
Friendly Name
Blue 01 — Public
GUID
8a17b3e1-0604-4d24-9a71-000000000604
Use in
Public Tools, Neutral Information
Show Class & CSS
Class / Reference
ta-badge ta-badge--info
Canonical CSS
.ta-badge--info { border-color:#365d82; background:rgba(46,112,170,.14); color:#91c5ed; }
Legacy Equivalents to Consolidate

.tool-access.is-public

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Count 01 — Numeric Badge

A compact numeric count. Keep the same semantic tone as the item it counts.

12
Friendly Name
Count 01 — Numeric Badge
GUID
8a17b3e1-0605-4d24-9a71-000000000605
Use in
Notifications, Replies, Results, Selected Items
Show Class & CSS
Class / Reference
ta-badge ta-badge--count
Canonical CSS
.ta-badge--count { min-width:28px; padding-inline:7px; border-radius:999px; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Gold 01 — Warning

Use for a state that needs attention but is not a failure.

Review Needed
Friendly Name
Gold 01 — Warning
GUID
8a17b3e1-0606-4d24-9a71-000000000606
Use in
Incomplete Setup, Review Needed, Planned Availability
Show Class & CSS
Class / Reference
ta-badge ta-badge--warning
Canonical CSS
.ta-badge--warning { border-color:#7b5b24; background:rgba(159,107,27,.16); color:#e0b563; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Rose 01 — Error

Use for failed, blocked, or invalid status. Pair with nearby recovery text.

Failed
Friendly Name
Rose 01 — Error
GUID
8a17b3e1-0607-4d24-9a71-000000000607
Use in
Failure States and Invalid Records
Show Class & CSS
Class / Reference
ta-badge ta-badge--danger
Canonical CSS
.ta-badge--danger { border-color:var(--theme-accent-border); background:var(--theme-accent-surface); color:var(--theme-accent-copy); }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Style Guide Section

Feedback 01 — Messages & Overlays

Semantic messages, focused overlays, and empty states. Panel surfaces and the required joined War Room page frame live in the dedicated Panels reference.

8a17b3e1-0700-4d24-9a71-000000000007
Component Reference

Message 01 — Semantic Alert

One structure covers informational, success, warning, and error messages. Change the semantic modifier, not the layout.

i
Information

This explains an important detail.

Saved

Your changes are available.

!
Review Needed

One item needs your attention.

×
Could Not Save

Correct the highlighted field and try again.

Friendly Name
Message 01 — Semantic Alert
GUID
8a17b3e1-0706-4d24-9a71-000000000706
Use in
Forms, Tools, Imports, Account and Community Feedback
Show Class & CSS
Class / Reference
ta-alert with --info, --success, --warning, or --danger
Canonical CSS
.ta-alert { display:grid; grid-template-columns:auto minmax(0,1fr); border-left-width:4px; }
Legacy Equivalents to Consolidate

.account-error, .outreach-error, .foia-suggestion, .quick-error, .evidence-error

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Overlay 01 — Modal

A focused decision surface. Use a deep soft shadow because the modal must visually detach from the page.

Confirmation

Delete This Record?

This cannot be undone. The original files will also be removed.

Friendly Name
Overlay 01 — Modal
GUID
8a17b3e1-0707-4d24-9a71-000000000707
Use in
Confirmation, Focused Create/Edit Flows
Show Class & CSS
Class / Reference
ta-modal-demo
Canonical CSS
.ta-modal-demo { max-width:560px; padding:24px; border:1px solid #55585e; background:#17181b; box-shadow:0 24px 75px rgba(0,0,0,.58); }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

State 05 — Empty Container

Explain what is absent and give one clear next action when appropriate.

0

No Records Yet

Create the first record or adjust the current filters.

Friendly Name
State 05 — Empty Container
GUID
8a17b3e1-0708-4d24-9a71-000000000708
Use in
No Results, No Records, No Attachments
Show Class & CSS
Class / Reference
ta-empty-state
Canonical CSS
.ta-empty-state { min-height:190px; display:grid; place-content:center; border:1px dashed #484b51; background:#131416; }
Legacy Equivalents to Consolidate

.no-results, .community-empty, .evidence-empty, .outreach-empty-list

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Style Guide Section

Wayfinding 01 — Navigation

Location, page framing, side navigation, and compact movement through the site.

8a17b3e1-0800-4d24-9a71-000000000008
Component Reference

Trail 01 — Breadcrumbs

Use on nested detail pages. The last item is plain text and carries aria-current.

Friendly Name
Trail 01 — Breadcrumbs
GUID
8a17b3e1-0801-4d24-9a71-000000000801
Use in
Article, Resource, Record, and Thread Detail Pages
Show Class & CSS
Class / Reference
ta-breadcrumbs
Canonical CSS
.ta-breadcrumbs { display:flex; flex-wrap:wrap; gap:7px; font:400 10px var(--font-geist-mono),monospace; text-transform:uppercase; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Menu 01 — Boxed Left Rail

The canonical persistent section menu for the Member Center and other multi-part workspaces. It borrows the improved dropdown and header-flyout language without behaving like a form control: rounded icon-led rows, neutral borders, short Title Case descriptions, a dark lift on hover, and a solid theme-color current row. Use buttons for same-page sections and links for routes; never add checkboxes or an active underline.

Friendly Name
Menu 01 — Boxed Left Rail
GUID
8a17b3e1-0802-4d24-9a71-000000000802
Use in
Member Center, Style Guide, Evidence, and Future Admin Guide
Show Class & CSS
Class / Reference
ta-menu-list ta-side-nav; ta-menu-item ta-menu-item--section; ta-menu-item__icon--boxed; ta-menu-item__copy; ta-menu-item__arrow
Canonical JSX
<nav className="ta-menu-list ta-side-nav" aria-label="Member Center Sections">
  <button className="ta-menu-item ta-menu-item--section" aria-current="location" aria-pressed="true">
    <span className="ta-menu-item__icon ta-menu-item__icon--boxed"><PageIcon name="member" /></span>
    <span className="ta-menu-item__copy"><strong>Profile</strong><small>Public Identity</small></span>
    <span className="ta-menu-item__arrow" aria-hidden="true">→</span>
  </button>
</nav>
Canonical CSS
.ta-side-nav { display:grid; gap:7px; padding:8px; border:1px solid var(--ta-rule); border-radius:var(--ta-radius-lg); background:linear-gradient(145deg,#1b1b1e,#111113); box-shadow:var(--ta-shadow-offset); } .ta-menu-item { min-height:57px; border:1px solid #393a3f; border-radius:var(--ta-radius-md); background:linear-gradient(100deg,#202125,#151618 72%); } .ta-menu-item[aria-current=location] { border-color:var(--theme-accent); background:var(--theme-accent); box-shadow:3px 4px 0 rgb(from var(--theme-accent) r g b / .42); color:#fff; }

Source: app/settings/settings-panel.tsx; app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Menu 02 — Boxed Header Flyout

The shared header navigation for Content, Tools, Community, War Room, and About. Desktop uses boxed flyouts; mobile uses a full-height, two-level menu with section layers, Back and Close controls, route highlighting, focus containment, scroll locking, and the same icon-led destination rows. Both render from site-navigation.json through buildSiteNavigation, so destinations, labels, descriptions, active-route rules, and War Room tool order cannot drift between screen sizes. Use these navigation components for destinations; do not substitute a form-control dropdown.

Friendly Name
Menu 02 — Boxed Header Flyout
GUID
8a17b3e1-0804-4d24-9a71-000000000804
Use in
Desktop and Mobile Header: Content, Tools, Community, War Room, and About
Show Class & CSS
Class / Reference
DesktopNavigation; MobileNavigation; NavigationFlyout; desktop-nav-menu; mobile-navigation-panel; navigation-flyout
Canonical JSX
<button
  type="button"
  data-flyout="tools"
  aria-expanded={open}
  aria-controls="desktop-nav-tools"
>
  <span>Tools</span><i aria-hidden="true">{open ? "−" : "+"}</i>
</button>
{open ? (
  <NavigationFlyout
    id="desktop-nav-tools"
    eyebrow="Document / Research / Act"
    title="Tools Library"
    items={items}
    onNavigate={closeMenu}
  />
) : null}
Canonical CSS
.desktop-nav-menu > button { height:44px; border:1px solid #55575c; border-radius:4px; } .desktop-nav-menu > button[aria-expanded=true] { border-color:var(--theme-accent); background:var(--theme-accent); color:#fff; box-shadow:3px 4px 0 rgb(from var(--theme-accent) r g b / .42); } .navigation-flyout { width:390px; padding:18px; border:1px solid #4d4d51; border-radius:7px; background:linear-gradient(145deg,#1b1b1e,#111113); box-shadow:18px 20px 0 rgba(0,0,0,.3),-4px -4px 0 rgb(from var(--theme-accent) r g b / .1); }

Source: app/ui/site-navigation.json; app/ui/site-navigation.ts; app/ui/desktop-navigation.tsx; app/ui/mobile-navigation.tsx; app/ui/navigation-flyout.tsx; app/styles/canonical.css; app/globals.css. Existing shared components are identified when they remain the live implementation.

Style Guide Section

Editorial 01 — Content

Links, article text, and directory cards for content-heavy pages. Metadata and inline-code typography now live in the dedicated Typography section.

8a17b3e1-0900-4d24-9a71-000000000009
Component Reference

Link 01 — Inline Link

Inline links are theme-tinted and underlined. Author short standalone and action links in Title Case; sentence fragments inside prose follow the surrounding sentence casing. Do not rely on color alone.

Read the complete source guide before continuing.

Friendly Name
Link 01 — Inline Link
GUID
8a17b3e1-0901-4d24-9a71-000000000901
Use in
Articles, Legal Pages, Helper Copy
Show Class & CSS
Class / Reference
ta-text-link
Canonical CSS
.ta-text-link { color:var(--theme-accent-copy); text-decoration:underline; text-underline-offset:3px; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Link 02 — View All Link

The compact theme-color action used at the top right of a panel or section. It carries the V2 homepage View All treatment into the shared public style system.

Friendly Name
Link 02 — View All Link
GUID
8a17b3e1-0905-4d24-9a71-000000000905
Use in
Panel Headers, Section Headers, Home Topics
Show Class & CSS
Class / Reference
ta-view-all-link
Canonical CSS
.ta-view-all-link { padding:2px 0 6px 6px; color:var(--theme-accent); font:600 10px/1.2 var(--font-geist-mono),monospace; letter-spacing:.04em; text-transform:uppercase; text-decoration:none; }
Legacy Equivalents to Consolidate

.panel-header > a

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Style Guide Section

Display 01 — Data & Feedback

Tables, statistics, rows, progress, loading, skeleton, and toast patterns.

8a17b3e1-1000-4d24-9a71-000000000010
Component Reference

Table 01 — Data Table

Use for exact row-and-column comparison. The wrapper scrolls horizontally rather than crushing columns.

RecordCategoryStatusUpdated
TA-0042DocumentationSavedJul 17
TA-0041ResearchReviewJul 16
Friendly Name
Table 01 — Data Table
GUID
8a17b3e1-1001-4d24-9a71-000000001001
Use in
Exports, Admin Later, Structured Summaries
Show Class & CSS
Class / Reference
ta-table-wrap; ta-table
Canonical CSS
.ta-table { width:100%; border-collapse:collapse; } .ta-table th { background:#111214; color:var(--theme-accent); }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Stat 01 — Metric Card

A compact label, value, and context. Do not use a metric card for ordinary prose.

Total Records423 Added This Week
Files Preserved1182.4 GB Stored
Reports7Last Export Jul 16
Friendly Name
Stat 01 — Metric Card
GUID
8a17b3e1-1002-4d24-9a71-000000001002
Use in
Evidence Summaries, Usage, Progress Dashboards
Show Class & CSS
Class / Reference
ta-stat-grid; ta-stat
Canonical CSS
.ta-stat { min-height:116px; display:grid; align-content:center; gap:7px; padding:18px; border:1px solid #414349; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Row 01 — Structured List

A dense repeated record with identifier, primary text, supporting text, and trailing status.

01
Original Recording.mp3Audio · 4.8 MB
Stored
02
Written Account.pdfDocument · 1.2 MB
Public
Friendly Name
Row 01 — Structured List
GUID
8a17b3e1-1003-4d24-9a71-000000001003
Use in
Evidence, Files, Recipients, Activity
Show Class & CSS
Class / Reference
ta-list-row
Canonical CSS
.ta-list-row { min-height:62px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; border-left:3px solid var(--theme-accent); }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Progress 01 — Linear Progress

Use for determinate work. Include a nearby text value for screen readers and precision.

Uploading Files · 68%

Friendly Name
Progress 01 — Linear Progress
GUID
8a17b3e1-1004-4d24-9a71-000000001004
Use in
Uploads, Imports, Saves, Transmission
Show Class & CSS
Class / Reference
ta-progress
Canonical CSS
.ta-progress { height:6px; overflow:hidden; background:#2a2c30; } .ta-progress > span { background:var(--theme-accent); }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Loading 01 — Spinner

Use for indeterminate work and pair it with specific status text.

Loading Your Records…
Friendly Name
Loading 01 — Spinner
GUID
8a17b3e1-1005-4d24-9a71-000000001005
Use in
Page and Panel Loading
Show Class & CSS
Class / Reference
ta-spinner
Canonical CSS
.ta-spinner { width:34px; height:34px; border:3px solid #3d4046; border-top-color:var(--theme-accent); border-radius:50%; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Loading 02 — Skeleton

Use when the final layout is known and preserving its shape reduces page movement.

Friendly Name
Loading 02 — Skeleton
GUID
8a17b3e1-1006-4d24-9a71-000000001006
Use in
Cards, List Rows, Profile Summaries
Show Class & CSS
Class / Reference
ta-skeleton
Canonical CSS
.ta-skeleton { overflow:hidden; position:relative; background:#24262a; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Toast 01 — Temporary Notice

A brief non-blocking result. It should not carry information the user cannot recover later.

Link CopiedThe component URL is ready to paste.
Friendly Name
Toast 01 — Temporary Notice
GUID
8a17b3e1-1007-4d24-9a71-000000001007
Use in
Copy, Save, Upload and Background Action Confirmation
Show Class & CSS
Class / Reference
ta-toast
Canonical CSS
.ta-toast { display:grid; grid-template-columns:auto minmax(0,1fr) auto; border-left:4px solid var(--theme-accent); box-shadow:0 18px 45px rgba(0,0,0,.38); }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Style Guide Section

Architecture 01 — Page Patterns

Approved composition patterns and the public routes each pattern covers.

8a17b3e1-1100-4d24-9a71-000000000011
Component Reference

Page 01 — Landing

A campaign-led first viewport followed by focused proof, tools, or action sections.

Site HeaderCampaign HeroProof / Tools / Action SectionsSite Footer
Friendly Name
Page 01 — Landing
GUID
8a17b3e1-1101-4d24-9a71-000000001101
Use in
/
Show Class & CSS
Class / Reference
SiteHeader + hero + ordered sections + SiteFooter
Canonical CSS
.shell { width:min(1180px,calc(100% - (var(--ta-page-gutter) * 2))); margin-inline:auto; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Page 02 — Directory

A clear directory hero, search or filters when needed, a card grid, and an empty state.

Directory HeaderSearch + FiltersResponsive Card GridEmpty / Loading State
Friendly Name
Page 02 — Directory
GUID
8a17b3e1-1102-4d24-9a71-000000001102
Use in
/content, /tools, /tools/explorer, /war/intelligence
Show Class & CSS
Class / Reference
PanelPageHeader or directory hero + toolbar + cards
Canonical CSS
.ta-directory-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Page 03 — Tool Workspace

Shared page header, a single dominant working container, visible progress for multi-step work, and a consistent action footer.

Tool Subheader + OnlineProgress or ContextPrimary Working PanelConsistent Action Footer
Friendly Name
Page 03 — Tool Workspace
GUID
8a17b3e1-1103-4d24-9a71-000000001103
Use in
/war/foia, /war/email, /war/story and Children
Show Class & CSS
Class / Reference
ToolSubheader + ta-box--large + canonical controls
Canonical CSS
.ta-tool-layout { padding-block:32px 72px; background:#0f1012; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Page 04 — Article or Detail

Breadcrumb, eyebrow, title, lead, metadata, a readable text column, optional media and sources, then related actions.

Breadcrumb + EyebrowTitle + Lead + Metadata780px Reading ColumnSources + Downloads
Friendly Name
Page 04 — Article or Detail
GUID
8a17b3e1-1104-4d24-9a71-000000001104
Use in
/content/*, /tools/explorer/*, /war/intelligence, Evidence Record Detail
Show Class & CSS
Class / Reference
ta-standard-article family
Canonical CSS
.ta-article-body { width:min(100%,780px); } .ta-article-section p { font-size:17px; line-height:1.82; }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Page 05 — Account or Static

Shared panel header plus contained reading or form content. Account pages may add a left rail; legal pages keep one readable column.

Panel Page HeaderOptional Left RailContained Form or Reading ColumnClear Final Action
Friendly Name
Page 05 — Account or Static
GUID
8a17b3e1-1105-4d24-9a71-000000001105
Use in
/login, /register, /war/settings, /about, /contact, /privacy, /terms, /accessibility, /community/guidelines
Show Class & CSS
Class / Reference
PanelPageHeader + ta-box or panel-article
Canonical CSS
.ta-reading-column { width:min(100%,780px); }

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Style Guide Section

Maintenance 01 — Consolidation

The canonicalization rules and the clear duplicate families found during the front-end inventory.

8a17b3e1-1200-4d24-9a71-000000000012
Component Reference

Rule 01 — Reuse Before Adding

Before adding CSS, search this page by friendly name, GUID, class, and purpose. Use the canonical class unchanged when it already fits.

1
Search → Reference → Reuse

Friendly names support conversation. GUIDs support exact links. Classes support implementation.

Friendly Name
Rule 01 — Reuse Before Adding
GUID
8a17b3e1-1201-4d24-9a71-000000001201
Use in
Every Future Front-End Task
Show Class & CSS
Class / Reference
No new class
Canonical CSS
/* Search /styles first. Add a variant only when behavior or meaning is materially different. */

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Map 01 — Button Families

Several route-level button names currently describe the same visual jobs. The guide intentionally exposes one button per job; these legacy selectors are migration aliases, not separate components.

.button-primary.account-button.primary.foia-button-primary.outreach-launch
Accent 01
Friendly Name
Map 01 — Button Families
GUID
8a17b3e1-1202-4d24-9a71-000000001202
Use in
Sitewide Migration After Guide Approval
Show Class & CSS
Class / Reference
ta-button variants
Canonical CSS
Accent 01 ← .button-primary, .account-button.primary, .foia-button-primary, .outreach-launch; Dark 01 ← .foia-button-dark, .outreach-dark-button; Outline 01 ← .button-outline, .evidence-light-button;

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Map 02 — Field Families

Account, FOIA, outreach, community, and evidence fields share one geometry and focus behavior in the canonical guide.

.account-field.foia-field.outreach-field.record-form-grid label
Field 01
Friendly Name
Map 02 — Field Families
GUID
8a17b3e1-1203-4d24-9a71-000000001203
Use in
Sitewide Migration After Guide Approval
Show Class & CSS
Class / Reference
ta-field
Canonical CSS
Field 01 ← .account-field, .foia-field, .outreach-field, .record-form-grid label, .quick-more-grid label;

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.

Component Reference

Map 03 — Message Families

Errors, warnings, success notices, and information strips use one layout with semantic modifiers.

.account-error.outreach-error.quick-error.evidence-error
Message 01
Friendly Name
Map 03 — Message Families
GUID
8a17b3e1-1204-4d24-9a71-000000001204
Use in
Sitewide Migration After Guide Approval
Show Class & CSS
Class / Reference
ta-alert variants
Canonical CSS
Message 01 ← .account-error, .outreach-error, .foia-suggestion, .quick-error, .evidence-error, .community-form-warning;

Source: app/styles/canonical.css. Existing shared components are identified when they remain the live implementation.