Company
The Polis ProjectCompany name is safe to show as workplace context.
The Polis Project / Design Systems Design
The Polis Project needs a system that can hold difficult work without making it feel distant. This page lays out the foundations, components and patterns I would use to support reporting, research, archives and careful review.
A compact view of the pieces that need to work together before this becomes a usable system.
Design system foundations
The system should make hard material easier to read, check and publish. It should help a small team move quickly without losing the discipline that public-interest work depends on.
Company
The Polis ProjectCompany name is safe to show as workplace context.
My role
Product designerDefined the use case, workflow, information architecture and product narrative.
Timeline
6 weeksFrom problem framing through design systems design and output structure.
Outcome
10 hours saved weeklyReduced web design time by 6 hours and digital asset design time by 4 hours each week.
The visual direction should feel serious, direct and global. It needs urgency, but not panic; solidarity, but not saviorism; clarity, without flattening the people and places behind the work.
The type system gives the project a clear editorial voice: strong headlines, readable body copy and quiet metadata for citations, captions and source context.
| Role | Typeface | Purpose |
|---|---|---|
| Display | Akhand 800 | Strong editorial presence |
| Body | Anek 400/500 | Readable product and article text |
| Metadata | Noto Serif Thin | Citations, captions and source context |
Token architecture
Tokens keep the system honest. Instead of repeating one-off colors or spacing, each value earns a role: surface, warning, citation, evidence, focus, chart or component state.
Raw color, type, spacing, border, radius, motion and opacity values.
Role-based tokens for surfaces, text, evidence, warnings, focus and chart states.
Button, field, card, table, chart, citation and source drawer mappings.
Light, dark, high-contrast, brand and enterprise modes override semantics.
CSS variables, Tailwind preset, React packages and Style Dictionary output.
Variables, component properties, documentation frames and QA playgrounds.
The token system turns editorial values into reusable roles for evidence, source credibility, disclosure, investigative visualization and accessible product surfaces.
Token reference
| Token name | Role | Value | Swatch |
|---|---|---|---|
--pds-yellow | Brand accent | #ffd700 | |
--pds-black | Base text | #000000 | |
--pds-white | Base surface | #ffffff | |
--pds-gray | Secondary text | #666666 | |
--pds-danger | Destructive action | #d4183d |
| Token name | Role | Value | Swatch |
|---|---|---|---|
--cds-background | Page surface | #ffffff | |
--cds-background-inverse | Dark surface | #161616 | |
--cds-layer-01 | Card surface | #ffffff | |
--cds-layer-02 | Inset/gray surface | #f4f4f4 | |
--cds-layer-03 | Nested surface | #e0e0e0 | |
--cds-text-primary | Primary text | #161616 | |
--cds-text-secondary | Secondary/metadata | #525252 | |
--cds-text-on-color | Text on dark/color | #ffffff | |
--cds-border-subtle | Dividers, card borders | #e0e0e0 | |
--cds-border-strong | Input borders | #8d8d8d | |
--cds-interactive | Links, active states | #0f62fe | |
--cds-support-error | Error states | #da1e28 | |
--cds-support-warning | Warning states | #f1c21b | |
--cds-support-success | Success states | #198038 |
| Token | Value | Space | Typical use |
|---|---|---|---|
--space-01 | 2px | 02px | Micro gaps, hairlines |
--space-02 | 4px | 04px | Tight internal spacing |
--space-03 | 8px | 08px | Component internal padding |
--space-04 | 12px | 012px | Dense layout gaps |
--space-05 | 16px | 016px | Default padding |
--space-06 | 24px | 024px | Card padding |
--space-07 | 32px | 032px | Section internal gap |
--space-08 | 40px | 040px | Large gap |
--space-09 | 48px | 048px | Section padding top/bottom |
--space-10 | 64px | 064px | XL gap |
--space-11 | 80px | 080px | Page section padding |
| Token | Stack | Role |
|---|---|---|
--type-display | Akhand, Big Shoulders Display | Headlines, hero text |
--type-sans | Anek Latin, Helvetica Neue | UI, body, product text |
--type-serif | Noto Serif, Georgia | Citations, metadata, quotes |
--type-mono | ui-monospace, SFMono | Token names, code, captions |
Component library
These families are entry points. Each card links to a guide below, so the inventory does not stop at naming parts; it explains how the parts should behave.
Component guide
Inputs should feel calm and precise. The person using them may be entering sensitive source details, field notes or publication metadata, so the form has to be clear before it is clever.
Text input
Component guide
Navigation should help people keep their place across long reports, archives and workspaces. It should not ask them to remember where evidence lives.
Component guide
Feedback should say what happened, what changed and what to do next. It should avoid drama, especially around errors and sensitive material.
Info: Source metadata saved.
Warning: Two claims need citation review.
Error: Private data cannot be exported.
Component guide
Data display components should make evidence easier to compare. They need strong scanning behavior without hiding source context.
Component guide
Editorial components carry trust. They show who made the work, where claims come from and what has changed since publication.
Claims stay close to their sources.
Component guide
Assisted review components can help a team move through research, but they should never sound like an unquestioned authority. They need source links, confidence cues and human approval.
Component guide
Visualizations should clarify relationships, time, geography and scale. Decoration is secondary to accountability.
Component guide
Templates turn the system into real work. They show how pages behave when content is long, evidence is dense and review is ongoing.
Editorial system
I am treating research foundations as a first-class layer in The Polis Project Design System. Citations, source quality, verification states and editorial transparency are not ornamental details.
| Pattern | Interface responsibility | Evidence behavior | Status cue |
|---|---|---|---|
| Source card | Show origin, date, author, excerpt and credibility notes. | Connect claims to inspectable sources. | Verified |
| Citation | Make provenance visible inside articles, assisted summaries and reports. | Expose metadata without disrupting reading. | Cited |
| Fact check | Flag weak support, missing context and unresolved claims. | Require human review before publication. | Needs review |
| Investigation flow | Represent collection, synthesis, verification and publication. | Preserve the path from raw material to final claim. | In progress |
Assisted review and data systems
When machine assistance is part of the workflow, the interface should keep people in control: show sources, name uncertainty, protect private context and require human review before publication.
Research requests, reviewed responses, approval flows, source drawers, memory controls and feedback states.
Human reviewChart taxonomy, accessible encodings, uncertainty styling, geospatial maps, timelines, networks and source-linked insight cards.
Accessible chartsResearch workflows, data exploration, collaboration, review, loading, empty, error and dashboard workspace patterns.
Governed workflowVisual language
A complete system needs more than components. It needs color behavior, typography, spacing, iconography and editorial rules that can survive reports, workspaces, dashboards and public archives.
Polis Yellow is the activist signal. Neutral ramps carry the work. Risk ramps support harm, evidence gaps and destructive states.
Foundation specimens
This section visualizes the foundations I need for The Polis Project: color, typography, spacing, iconography, motion, accessibility and editorial voice.
Production type roles separate display, headings, body and metadata.
Spacing follows predictable increments for dense dashboards, longform articles, review panels and chart surfaces.
The initial icon inventory favors research actions and trust states over generic decoration.
Product motion is fast and quiet. Editorial motion is slower but still utilitarian. Assisted review states must be inspectable and pause-safe.
Hover, focus, active, menu and disclosure transitions.
Section reveal, drawer entry and data exploration transitions.
Non-color cues, visible focus, keyboard paths, table semantics, chart alternatives and machine-assistance labels are required.
Copy should be direct, factual and accountable. It should not inflate certainty, hide evidence gaps or let machine assistance sound like final judgment.
Disclosure: This summary includes machine-assisted synthesis and requires human source review before publication.
Component states
The component board shows representative states for buttons, fields, notifications, data tables, assisted review messages, editorial source cards, overlays and workflow approvals.
Info: Source metadata has been attached.
Warning: Two claims need citation review.
Error: Private data cannot be exported.
Interview transcript
Author, location, date, consent status, excerpt and verification history appear together.
Human approval controls are explicit for machine-assisted outputs.
Skeletons, inline loading and empty states must explain next action without implying the system knows more than it does.
Extended component specimens
Interview — Human rights lawyer, Lagos, March 2024
Three separate sources confirmed the detention order was signed by a regional official without judicial oversight.
The report connects the detention order to a broader pattern of administrative removals.[1]
The records had been sealed, but the pattern was already visible to anyone who knew where to look.
— Field report, March 2024
An earlier version of this article incorrectly stated the order was signed on March 8. The correct date is March 10.
Original: The order was signed on March 8.
Checkbox
Radio
Toggle
Select
Tabs
Breadcrumbs
Rendered as a static illustration.
This source will be moved to the archive. Active citations will remain but the source will be marked as archived.
Article
Source card
Table
A Polis-specific component for assisted review outputs.
Confidence indicators must always link to the underlying source evidence. Never display a score without a path to inspect the sources.
Data visualization
I am defining chart foundations for public-interest reporting: non-color encodings, source-visible insights, uncertainty styling, map patterns, timelines and relationship networks.
Bar charts use yellow sparingly to highlight selected evidence, with neutral comparison values.
Timeline marks pair visual sequence with dates, sources and confidence states.
Network views are for explainable relationships, never decorative complexity.
Templates
A complete design system includes templates that combine components into real product and editorial surfaces: front pages, research reports, workspaces, review tools, archives and admin settings.
Implementation
I am pairing the visual system with React packages, Tailwind presets, CSS variables, Style Dictionary-compatible JSON, Storybook documentation and Figma Variables.
{
"color": {
"semantic": {
"background": "{color.primitive.white}",
"text.primary": "{color.primitive.black}",
"accent.research": "{color.primitive.yellow.50}",
"status.error": "{color.primitive.red.60}"
}
}
}:root {
--pds-background: #ffffff;
--pds-text-primary: #000000;
--pds-accent-research: #ffd700;
--pds-layer-01: #f4f4f4;
}export {
Button,
TextInput,
SourceCard,
Citation,
ReviewMessage,
ConfidenceIndicator,
DataTable
} from "@polis/react";stories/ foundations/ tokens/ components/ editorial/ ai/ visualization/ templates/ qa/
Build roadmap
The sequence moves from setup through research, foundations, tokens, components, editorial systems, assisted review, visualization, patterns, templates, assets, governance and final release materials.
Repository, Figma page architecture, decisions, dashboard, naming and design-to-code contract.
Competitive analysis, Polis differentiation thesis, principles, color, typography, layout, motion, interaction, accessibility and editorial voice.
Primitive, semantic, component and theme tokens followed by product UI components and documentation shells.
Domain systems for journalism, assisted-review governance, investigative visualization, workflows and page-level compositions.
Icons, media guidelines, themes, documentation site, contribution templates, QA strategy and portfolio case-study materials.
QA and governance
I am designing the system to be inspectable through decision logs, changelogs, token checks, component audits, accessibility hardening and release notes.
WCAG 2.1 AA is the minimum target, with AAA support for high-contrast mode when feasible. Data visualization, citations, machine-assistance disclosures and keyboard behavior are explicit audit areas.
Contribution templates require rationale, impact, token and component implications, accessibility implications and review requirements. Assisted-review safety is part of governance, not an afterthought.