Disruptive Women · Component Library
Disruptive Women in Health Care

Component
Library

A complete catalog of every UI component, color, and motion pattern in the app. Covers all existing components plus forms, feedback states, AI transparency, and loading indicators.

24
Components
2
Themes
AA
Contrast standard
12
Spacing steps

Colors

Every color in the app is a named variable — change the value once and it updates everywhere. Toggle the theme button at top-right to see how each color adapts between dark and light mode. Each color also carries a purpose — success, warning, error — so swapping the palette for a new theme doesn't break meaning.

Brand Colors
Base hues. Plum anchors surfaces; rose drives accent and interaction. All values shift between dark and light mode — toggle the theme button above to see the palette adapt.
Responds to theme toggle
--rose
Accent · interactive · active state
--rose-soft
Softer rose · hover backgrounds
--plum-deep
Darkest layer · page background
--plum-1
Screen background · main layer
--plum-2
Elevated layer · above plum-1
--surface
Card · list item · input background
--surface-2
Raised card · hover surface
--act
Advocacy accent · action button
Color Meanings
Each named color carries a purpose. Swap the actual shade for a new theme or better contrast — the meaning stays intact.
Color → Purpose
Color Variable name Purpose Readability (on dark purple)
--rose Primary accent, interactive labels 4.8:1 — passes ✓
--text Body text, headings 12.4:1 — highest standard ✓
--muted Secondary text, descriptions 5.2:1 — passes ✓
--ok Success, verified, confirmed 4.5:1 — passes ✓
--warn Warning, unverified, pending 3.6:1 — icons & borders only *
--alert Error, critical, destructive 4.6:1 — passes ✓
--act Action accent, advocacy emphasis 3.1:1 — icons & borders only ✓

* This color passes the readability minimum for icons and borders, but avoid using it for text smaller than 18px.

The ratios above are measured in dark mode. In light mode, the palette shifts significantly — use the theme toggle at top-right and verify contrast directly in context before applying any color to text.

Dividers & Borders
Two border strengths: a soft one for background dividers, a stronger one for selected states and the keyboard-focus outline.
Border strengths
Soft border
Strong border
Keyboard-focus outline

Typography

Two fonts. Melodrama is the expressive headline font — used for big, editorial moments. Avenir Next handles everything else, from tiny status labels to screen headings.

Text Sizes
Sized for a standard iPhone screen. Ranges from 8px tiny labels to 38px welcome headings.
All sizes · Avenir Next
text-5xl
38px · welcome screen
Welcome
text-4xl
32px · main headline
Your Impact
text-3xl
26px · heading
Section Title
text-2xl
17px · section heading
Screen Heading
text-xl
14px · emphasized
Emphasized body copy
text-lg
13px · body
Standard body text for cards and descriptions
text-md
11px · secondary
Secondary text, timestamps, metadata
text-base
10px · button / caption
UI Labels · Captions
text-sm
9px · badge
BADGE · TAG · LABEL
text-xs
8px · tiny label
MICRO LABEL
Headline Typeface — Melodrama
A decorative serif font with a magazine-like quality. Use for welcome screens, hero headings, profile names, and pull quotes. Never for button labels or body text.
Melodrama · weights
Advocate
Healthcare Redesigned
From Capitol Hill to the examining room
Use for
  • Welcome screen hero text
  • Section titles on profile / impact pages
  • Pull quotes and feature callouts
  • Onboarding splash headings

Spacing

All padding, gaps, and margins in the app are chosen from this fixed set of sizes — not arbitrary numbers. This keeps layouts predictable and consistent.

Spacing Scale
Visual scale · where each step is used
--sp-1
4pxIcon gap · inline text nudge
--sp-2
8pxBadge padding · chip gap · tag gap
--sp-3
12pxTag horizontal padding · list item gap
--sp-4
14pxCard inner padding (compact) · form gap
--sp-5
16pxStandard card padding · input height
--sp-6
18pxList row padding · section element gap
--sp-7
20pxSidebar padding · topbar side padding
--sp-8
22pxButton horizontal padding (inner)
--sp-9
24pxCard padding (comfortable) · hero padding
--sp-10
28pxSection element gap · form group gap
--sp-11
32pxPreview panel padding · hero content
--sp-12
36pxLarge button padding · section lead-in
Corner Rounding
Corner options · where each is used
Small · 6px Badges · pills · input icons
Medium · 10px Tags · filter chips · form inputs
Large · 12px Content cards · screen headers · nav items
Extra large · 16px Preview panels · modals · floating surfaces
Fully rounded · pill Buttons · progress bars · avatars

Motion

Motion is purposeful — it confirms actions, guides attention, and signals state changes. All animations are automatically turned off for users who have enabled Reduce Motion in their device accessibility settings.

Animation Speeds
Click a row to preview
--dur-fast
0.18s — hover feedback, button fills
--dur-base
0.42s — screen transitions, overlays
--dur-slow
0.54s — entrance animations, reveals
Animation Speed Curves
Click a row to see how each curve feels — same duration, different shape.
Click a row to play
--ease-std
Natural deceleration · most transitions
--ease-in-out
Accelerates then lands smoothly · screen transitions
--ease-out
Snappy start, eases to a stop · hover feedback
Reduce Motion Support
When a user enables Reduce Motion in their device accessibility settings, all animations are either removed or collapsed to instant switches — no fades, no fills, no slide transitions.
How it works
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

/* For JS-triggered animations: */
const reduced = window.matchMedia(
  '(prefers-reduced-motion: reduce)'
).matches;
setTimeout(callback, reduced ? 0 : 2000);

Buttons

Three variants cover the full action hierarchy. All use a radial fill animation on hover that is hardware-accelerated and automatically turns off when the user has enabled Reduce Motion.

Variants
Primary for the dominant action per screen, Ghost for secondary or destructive-safe actions, Action for advocacy and campaign CTAs.
Hover to see fill animation
Primary
Ghost
Action
Block (full-width)
Do
  • One primary button per section
  • Lead with verb: "Save", "Join", "Submit"
  • Use ghost for cancel or low-risk actions
  • Use action btn for advocacy/campaign CTAs
Don't
  • Stack two primary buttons side by side
  • Use vague labels like "OK" or "Click here"
  • Use action variant for standard navigation
  • Make buttons narrower than 88px touch target
Primary — All States
Primary button · state matrix
Default
Hover
Loading
Disabled
Ghost — All States
Ghost button · state matrix
Default
Hover
Loading
Disabled
Accessibility
Passes contrast standards Touch target 44px Keyboard: Enter / Space Keyboard focus outline Respects Reduce Motion

Minimum tap height is 44px. The brief press-down shrink is a tactile detail felt more than seen. In loading state, text is hidden from screen readers while the spinner is visible. Keyboard focus shows a two-ring outline — a dark gap ring inside a rose outer ring — visible only when navigating by keyboard, never on touch or mouse.

Icon Buttons

Small tap targets for the header bar and screen navigation. Two shapes: circular for icon actions (32–36px), square-ish for the back button.

Icon Button — Circular
Used in the header bar for notifications, settings, and search. A small dot variant signals unread activity.
Icon button variants
Default
With notification dot
Hover
Focus
Disabled
Back Button — Square
Used in screen headers. Rounded square shape distinguishes it from topbar icons and signals directional navigation.
Back button
Default
Hover
GATHER
Event Details
In context

Floating Actions

Floating buttons that surface the primary action on a screen — always pinned bottom-right, just above the bottom navigation bar. Two color variants: pink-rose for composing, purple for advocacy actions.

Variants
Hover to see lift
Compose · Rose
Create Event · Act
In context
Do
  • One FAB per screen
  • Position bottom-right, 22px from edge
  • Sits above the bottom navigation bar (96px from bottom)
  • Hide during scroll if it obscures content
Don't
  • Use FAB for destructive or rare actions
  • Show more than one FAB at a time
  • Place over primary content areas
  • Use for navigation (use the bottom bar instead)

Topbar

The persistent header. Logo and app name on the left; notification, settings, and avatar on the right. Extra top padding reserves space for the phone's system status bar (time, battery).

Anatomy
Topbar · full width
DISRUPTIVE WOMEN
JK
① Brand mark (22px) ② Wordmark (10px, 0.22em tracking) ③ Notification icon (with unread dot) ④ Settings icon ⑤ Avatar (28px, initials)

Tabbar

Fixed bottom navigation bar. Five sections — Voice, Gather, Listen, Find, Move. Active tab is pink-rose; inactive is dimmed white. Extra bottom padding reserves space for phones with a home indicator bar at the bottom of the screen.

States — click to activate
Tabbar · click tabs to switch active state
Do
  • Keep to 4–5 destinations max
  • Label every tab with 1 word
  • Always show active state
Don't
  • Use the bottom bar for secondary navigation
  • Hide or fade the bottom bar during scroll
  • Use icons without labels

Screen Header

Two-line header for detail and secondary screens. A small section label sits above the larger screen title, with an optional back button on the left.

Variants
Screen header · with and without back button
GATHER
Event Details
With back button — secondary screens
FIND
Member Directory
Without back button — top-level tabs
RECENT POSTS
Section label — divides content groups
In context — Gather screen
Header + section label in feed context
DISRUPTIVE WOMEN
JK
GATHER
Event Details
UPCOMING
WEBINAR
Policy Roundtable on Reproductive Health
Thu, July 15 · 2:00 PM ET

Post Card

The primary content unit in the Voice feed. Header (avatar + author + timestamp), body copy, optional source link, and footer actions.

Variants
Standard · Sourced · Hover all
JK
Dr. Jane Keller
Policy Advocate · 2h ago
New Medicare drug pricing rules go into effect next month. Here's what it means for patients managing chronic conditions...
RS
Robin Strongin
Healthcare Economist · 4h ago
The FDA's new guidance on AI-assisted diagnostics is a significant step — but implementation gaps remain for underserved populations.
JAMA Internal Medicine

Event Card

Compact event unit with type badge, title, date/host, and RSVP avatar stack. The listen-enabled variant shows a live pulse indicator when ambient audio is available.

Standard + Live variants
Standard · Listen-enabled
WEBINAR
Policy Roundtable: Reproductive Health Access
Thu, July 15 · 2:00 PM ET
Hosted by Dr. Jane Keller
JK
AB
MR
+14 attending
MARCH
March for Maternal Health — DC
Sat, July 19 · 10:00 AM ET
Hosted by DW Collective
SL
TM
+312 attending
Live

Event Hero Card

Used at the top of event detail screens. Three visual layers — dark gradient, a soft purple glow, and a subtle film-grain texture — are composited to create depth. Always dark regardless of the app's current theme, with an explicit light-mode override to keep text readable.

Anatomy
Event hero · Gather detail screen
Friday · June 27 · 12:00 PM
Endometriosis Research: From Diagnosis Delay to Policy Action
Howard University Hospital · Washington, DC
18 attending
Surface recipe
Three-layer surface · bare
① Base — dark plum gradient
② Bloom — soft purple glow, top-left
③ Grain — subtle film-grain texture at 12% opacity
The three layers are stacked in CSS. The glow layer responds to the theme color; the dark base stays fixed to preserve the card's always-dark look.
Do
  • Always use Melodrama for the title
  • Keep eyebrow to date/time metadata only
  • Limit to one hero card per screen
Don't
  • Place on a light surface without the override
  • Use for compact feed cards (use Event Card instead)
  • Add background images — the noise layer is the texture

Member Card

Horizontal layout for directory listings. Avatar, name, role, focus areas — Connect button right-aligned. Used in Find directory and connection suggestions.

States
Default · Connected state
JK
Dr. Jane Keller
Policy Advocate
Healthcare Access · Reproductive Rights
AB
Dr. Anika Brown
Medical Researcher
Oncology · Health Equity
Do
  • Show initials when no photo is available
  • Truncate role title at one line with an ellipsis
  • Reflect connection state in the button label and style
  • Keep focus areas to 2–3 tags maximum
Don't
  • Show an empty avatar circle — always fall back to initials
  • Allow the name or role to wrap to two lines
  • Use this layout for non-member content (events, posts)

Campaign Card

Move-section card. Campaign type badge, title, description, progress bar with signature gradient fill, and an urgency deadline pill. Three campaign types: Petition, March, Testimony.

Campaign type variants
Petition · March · Testimony
PETITION
Protect Medicaid Coverage for Rural Women
Join advocates calling on Congress to maintain Medicaid expansion for the 4.7M rural women who rely on it.
2,340 / 3,500 signatures
12 days left
MARCH
March for Maternal Health — Washington, DC
National mobilization responding to the maternal mortality crisis. Converging on the National Mall July 19.
8,900 / 10,000 registered
3 days left
TESTIMONY
Senate Hearing: AI in Healthcare Diagnostics
Submit public comment ahead of the Senate HELP Committee hearing on algorithmic bias in diagnostic AI.
155 / 500 submissions
21 days left
Do
  • Show progress bar for all countable goals
  • Style the deadline label in a more urgent color when fewer than 7 days remain
  • Match badge color to campaign type
Don't
  • Show progress bar at 0% — use an empty state
  • Use march badge for petitions or testimony
  • Truncate the progress label

Tags & Chips

Three selection patterns — each for a different context. Use this guide to pick the right one: Tags for browsing and labeling within a feed. Focus chips for choosing multiple interests at once during setup. Filter pills for narrowing a list that's already on screen.

Which to use
Decision guide
Tag
Inline topic label or browsable category. Taps to filter or navigate. Can appear inside cards.
Focus Chip
Multi-select grid for onboarding or settings. Larger tap target. Never inside a card — only as a standalone group.
Filter Pill
Single-select row above a list. Controls which items are visible. Always at the top of the content it filters.
Tags — topic labels
Default · active · category variants
Reproductive Health Health Equity Mental Health Maternal Care Policy ONCOLOGY CARDIOLOGY
Do
  • Use for topic browsing and inline labeling on cards
  • Keep labels to 1–3 words
  • Show active state when the tag is a live filter
Don't
  • Use tags for multi-step selection flows (use focus chips)
  • Mix active and category variants in the same row
  • Use more than 4 tags on a single card
Focus Chips — interest selection
Larger rectangular tiles for selecting multiple interests at once. A checkmark appears in-place when selected. Used during onboarding and in settings — never inside a content card.
Unselected · selected states
POLICY
Health Legislation
EQUITY
Access & Disparities
CLINICAL
Women's Oncology
ADVOCACY
Maternal Mortality
RESEARCH
Clinical Trials
TECH
AI in Diagnostics
Do
  • Show in a 2–3 column grid so all options are visible at once
  • Allow multiple selections simultaneously
  • Pre-select inferred interests when context is available
Don't
  • Nest inside a content card or scrollable list
  • Use as a single-select — that's a filter pill
  • Show more than 9 chips without pagination
Filter Pills — feed controls
Sort and filter controls
Do
  • Place directly above the list being filtered
  • Always keep one pill active — never unselect all
  • Update the list immediately on selection, no confirm step
Don't
  • Allow multiple pills to be active at once
  • Use more than 5 filter options in a single row
  • Use filter pills for multi-step selection (use focus chips)

Badges & Pills

Non-interactive labels for status, type, and urgency. All share the same 8px uppercase pattern at minimum; colors carry semantic meaning.

Event & campaign type badges
All badge variants
WEBINAR WORKSHOP PANEL PETITION MARCH TESTIMONY 12 days left 3 days left Live

Avatars

Gradient-filled circles with initials. Four sizes cover every context from RSVP stacks (24px) to profile heroes (80px).

Size scale
24px · 32px · 48px · 80px
JK
24px · RSVP stack
JK
32px · Topbar / cards
JK
48px · Member card
JK
80px · Profile hero
JK
AB
MR
+8
RSVP stack

Inputs

Text inputs, textareas, and search fields. All states are designed to read clearly against the dark purple background — pink focus highlight on active, distinct red and green tints for error and success.

Text input — all states
Default · focus · error · success · disabled
Used for event notifications and member directory.
We'll never share this publicly.
Invalid format — use DW-##### (5 digits)
✓ Saved to your profile
Search input + Textarea
Search · long-form input
Maximum 280 characters
Passes contrast standards Error state flagged for screen readers Helper text linked to input for screen readers

Selects & Toggles

Dropdowns, radio groups, and on/off toggles. Planned for the next build phase.

This section is in progress. Dropdowns, radio buttons, and toggle switches will be documented here.

Alerts & Modals

Toast notifications, inline alerts, confirmation dialogs, and full overlays. Planned for the next build phase.

This section is in progress. Toasts, inline alerts, confirmation dialogs, and full-screen overlays will be documented here.

Loading States

Skeleton screens, spinners, and progress indicators for async content. Planned for the next build phase.

This section is in progress. Skeleton loaders, spinners, and empty states will be documented here.

AI Indicators

Every AI-generated element is labeled. Labels are small but always present — the system never lets users mistake AI output for human authorship. Three states: generated, pending review, human-verified.

Badge variants
AI states in context
AI
Listen Summary
Generated from Senate Hearing · July 19
AI
Senators debated proposed amendments to the Medicare drug pricing framework, with particular focus on the impact on biologics used in women's oncology...
AI generated ⚠ Unverified Human verified
Badges are right-aligned in headers; inline in body copy they appear immediately after the sentence they qualify.

Source Attribution

Every AI claim links directly to the source passage that backs it up. The panel is collapsed by default — users open it on demand. The highlighted excerpt shows exactly which words the AI used.

Collapsed + expanded
Click panels to expand/collapse
The FDA's 2024 guidance mandates that AI diagnostic tools used in women's oncology must undergo bias audits before clinical deployment.
FDA Guidance on AI/ML-Based Software FDA.gov · Jan 2024
"…manufacturers of Software as a Medical Device (SaMD) incorporating artificial intelligence or machine learning components are required to conduct pre-submission bias audits stratified by demographic subgroup, including sex, race, and age, prior to 510(k) clearance submission for oncology applications…"
Open full document
JAMA: Algorithmic Bias in Oncology Diagnostics JAMA Internal Medicine · 2023
"Across 14 FDA-cleared AI systems reviewed, 8 of 14 (57%) demonstrated statistically significant performance disparities between female and male patient cohorts, with female patients receiving lower confidence scores in malignancy prediction tasks…"
Open full document

Review Workflow

A human approval step before anything AI-generated can be published. The AI drafts a structured summary; the user checks each point against its source. The publish button stays locked until every point is verified. Click "Review source" to walk through the flow.

Interactive review demo
Click "Review source" on each point, then publish
Senate panel voted 6–4 to advance the Maternal Care Access and Reducing Emergencies (CARE) Act to full committee review.
⚠ Unverified AI generated
Reviewed
Dr. Renée Walker testified that Black women are 2.6× more likely to die from pregnancy-related causes than white women, citing 2023 CDC surveillance data.
⚠ Unverified AI generated
Reviewed
Sen. Collins proposed an amendment extending postpartum Medicaid coverage from 60 days to 12 months in rural counties. Amendment tabled pending CBO score.
⚠ Unverified AI generated
Reviewed
0 of 3 points reviewed