VOTD Comp Library
  • Color Guide
  • Splash
  • Sign Up
  • Vote Card
  • Feed Cards
  • Feed Screen
  • Insights
  • Share
  • Add Research
← Docs index
Color guide ↗
Color Guide
Insights

VOTD Insights — Breaker Comp

Chart styles: W6 Area Line (B1) · T3 Rank + % (B2) · "votd insights" eyebrow throughout

Colour system: Two purple themes form the core identity. Hero (Purple Dark + Amber / Amber Mid) — the signature VOTD Insights look; travels to export, third-party, social, yearbook. Companion (Mauve + Purple Dark) — same hue family at the opposite value, in-app light variant. Variants (Brown, Grey) — feed variety, in-app only, no export role.
════════════════════ HERO ════════════════════
Hero — export · social · yearbook
Purple Dark background · Amber or Amber Mid accent · the face of VOTD Insights in the world
B1 · When People Vote — W6 Area Line
① Hero
Purple Dark + Amber
Top Local · Closed
Should the city increase parking enforcement fines?
62% YES · 4,210 votes
votd insights
Tuesday evenings
Voting patterns
Sacramento is most civically active on Tuesday evenings. Least active on Saturday mornings.
M
T
W
T
F
S
S
2,847 verified votes analysed
Top State · Open · 3 days left
Should California mandate solar panels on new commercial buildings?
48% YES · 6,841 votes
② Hero Alt
Purple Dark + Amber Mid
Top Local · Closed
Should the city increase parking enforcement fines?
62% YES · 4,210 votes
votd insights
Tuesday evenings
Voting patterns
Sacramento is most civically active on Tuesday evenings. Least active on Saturday mornings.
M
T
W
T
F
S
S
2,847 verified votes analysed
Top State · Open · 3 days left
Should California mandate solar panels on new commercial buildings?
48% YES · 6,841 votes
B2 · Topic Trends — T3 Rank + %
Top National · Closed
Should Congress pass the Infrastructure Investment Act?
71% YES · 18,420 votes
votd insights
Housing
Topic engagement
Sacramento's most-voted issue this month — more than Environment and Infrastructure combined.
1
Housing
34%
2
Infrastructure
21%
3
Environment
18%
4
Public Health
14%
5
Education
11%
59 votes across 8 topics
Top Local · Open · 7 days left
Should Sacramento expand its bike lane network?
55% YES · 3,102 votes
Top National · Closed
Should Congress pass the Infrastructure Investment Act?
71% YES · 18,420 votes
votd insights
Housing
Topic engagement
Sacramento's most-voted issue this month — more than Environment and Infrastructure combined.
1
Housing
34%
2
Infrastructure
21%
3
Environment
18%
4
Public Health
14%
5
Education
11%
59 votes across 8 topics
Top Local · Open · 7 days left
Should Sacramento expand its bike lane network?
55% YES · 3,102 votes

════════════════════ COMPANION ════════════════════
Companion — in-app light variant
Mauve tint background · Purple Dark accent · same hue family as hero, opposite value · in-app only
B1 · When People Vote
⑥ Companion
Mauve + Purple Dark
Top Local · Closed
Should the city increase parking enforcement fines?
62% YES · 4,210 votes
votd insights
Tuesday evenings
Voting patterns
Sacramento is most civically active on Tuesday evenings. Least active on Saturday mornings.
M
T
W
T
F
S
S
2,847 verified votes analysed
Top State · Open · 3 days left
Should California mandate solar panels on new commercial buildings?
48% YES · 6,841 votes
B2 · Topic Trends
Top National · Closed
Should Congress pass the Infrastructure Investment Act?
71% YES · 18,420 votes
votd insights
Housing
Topic engagement
Sacramento's most-voted issue this month — more than Environment and Infrastructure combined.
1
Housing
34%
2
Infrastructure
21%
3
Environment
18%
4
Public Health
14%
5
Education
11%
59 votes across 8 topics
Top Local · Open · 7 days left
Should Sacramento expand its bike lane network?
55% YES · 3,102 votes

════════════════════ VARIANTS ════════════════════
Variants — in-app feed variety only
Brown + Amber · Warm Grey + Orange · support feed rhythm, no export role
B1 · When People Vote
③ Variant
Brown + Amber
Top Local · Closed
Should the city increase parking enforcement fines?
62% YES · 4,210 votes
votd insights
Tuesday evenings
Voting patterns
Sacramento is most civically active on Tuesday evenings. Least active on Saturday mornings.
M
T
W
T
F
S
S
2,847 verified votes analysed
Top State · Open · 3 days left
Should California mandate solar panels on new commercial buildings?
48% YES · 6,841 votes
⑤ Variant
Warm Grey + Orange
Top Local · Closed
Should the city increase parking enforcement fines?
62% YES · 4,210 votes
votd insights
Tuesday evenings
Voting patterns
Sacramento is most civically active on Tuesday evenings. Least active on Saturday mornings.
M
T
W
T
F
S
S
2,847 verified votes analysed
Top State · Open · 3 days left
Should California mandate solar panels on new commercial buildings?
48% YES · 6,841 votes
B2 · Topic Trends
Top National · Closed
Should Congress pass the Infrastructure Investment Act?
71% YES · 18,420 votes
votd insights
Housing
Topic engagement
Sacramento's most-voted issue this month — more than Environment and Infrastructure combined.
1
Housing
34%
2
Infrastructure
21%
3
Environment
18%
4
Public Health
14%
5
Education
11%
59 votes across 8 topics
Top Local · Open · 7 days left
Should Sacramento expand its bike lane network?
55% YES · 3,102 votes
Top National · Closed
Should Congress pass the Infrastructure Investment Act?
71% YES · 18,420 votes
votd insights
Housing
Topic engagement
Sacramento's most-voted issue this month — more than Environment and Infrastructure combined.
1
Housing
34%
2
Infrastructure
21%
3
Environment
18%
4
Public Health
14%
5
Education
11%
59 votes across 8 topics
Top Local · Open · 7 days left
Should Sacramento expand its bike lane network?
55% YES · 3,102 votes

VOTD Insights — Chart Styles

W6 Area Line · T3 Rank + % · Hero (Purple Dark + Amber) · Companion (Mauve + Purple Dark)

════════════════════════════════════════ SERIES REFERENCE ════════════════════════════════════════
Series
Eight named series. Badge stays constant — headline and caption carry the platform vs personal angle. P = platform · U = personal · B = both.
What Moves Us
P · B
Topic trends, geo trends, volume trends. What the community is paying attention to and why.
T3 W6
Fresh Tracks
B
Disparities, contrarian patterns, breaking from the crowd. Always framed as curiosity or discovery — never outlier-shaming.
T3 W6
Timing is Everything
P · B
Everything about when people vote — day of week, time of day, deadlines, momentum toward close.
W6 primary
Hot Streaks
B
Who's winning, momentum, consecutive activity. Could be a topic, a geo, a user, a yes/no side — personal or platform.
T3 W6
Close Calls
P
Tight races, near-misses, votes that could have gone either way. Margin as the story.
T3 primary
(Nearly) Unanimous
P
Landslides, strong consensus, issues where the community speaks with one voice. The flip side of Close Calls.
T3 primary
Not Obvious
P · B
Anomalies, surprises, counterintuitive trends. The insight that makes you stop and look twice. Requires data confidence — only runs when the signal is clear.
T3 W6
On the Record
U
Personal history, quarterly rollups, milestones, snapshots. Your participation, documented. Always personal — the one series that never runs as platform.
T3 W6
Personal Insights
U · v2+
Demographic context, cohort belonging, civic identity. Where you fit in the broader picture of who votes and how. Requires demographic data pipeline and earned user trust before shipping.
T3 W6
════════════════════════════════════════ CONTENT SPEC ════════════════════════════════════════
Headline
The takeaway / lead
One step beyond what you can read from the graphic. Not the data — the conclusion. Specific, glanceable. The thing worth knowing before you look at anything else.
Not: "Tuesday evenings" · "Up 18%"
Yes: "3× more active on Tuesdays" · "Highest week this quarter"
Badge
Series identity
What recurring lens this insight belongs to. Tells the user what kind of data they're reading and sets the frame for the stat. Not a description — a category.
Not: "Voting patterns"
Yes: "Timing" · "Topics" · "Your rank"
Caption
The so-what
Context, implication, or reason it's interesting. Not a restatement of the headline. Not a description of the graphic. The one or two sentences that make the number matter.
Not: "Most active Tuesdays, least active Saturdays"
Yes: "Turnout is building toward the deadline"
Graphic
The evidence
Supports the headline. Could be a chart, a ranking, a map, a distribution — whatever makes the data visible. The reader should look at it and say "yes, I can see that." Doesn't carry the insight alone — deepens it.
Rule: the insight should survive without the graphic. The graphic should deepen it, not carry it.
Foot
Provenance
Sample size, geography, time period. Not editorial. Not interesting. Load-bearing — without it the headline is just an assertion. As short as possible while being complete.
Format: n votes · geography · time period
personal vs platform note
Platform insights
Aggregate data — same for every user. Stat can be a sharp claim because you're writing one headline for everyone. Badge can carry a named identity (Option B) because you control the copy. Editorial voice is achievable.
Personal insights
Personalised data — different for every user. Stat is generated from data at runtime; you can't write around an unknown number. Wrapper must be stable and generic: "Your civic snapshot · Q4 Sacramento." Badge = container label, not editorial claim. Option A by necessity.
════════════════════════════════════════ SECTION 1 — BASELINE ════════════════════════════════════════
1 · Baseline
The two agreed chart styles in both colour themes. Jump-off point for all explorations below.
B1 · When People Vote — W6 Area Line
Hero
Purple Dark + Amber
Top Local · Closed
Should the city increase parking enforcement fines?
62% YES · 4,210 votes
votd insights
3× more active on Tuesdays
Timing
Tuesday turnout runs three times higher than Saturday. Weekday evenings are when Sacramento shows up.
M
T
W
T
F
S
S
2,847 verified votes analysed
Top State · Open · 3 days left
Should California mandate solar panels on new commercial buildings?
48% YES · 6,841 votes
Companion
Mauve + Purple Dark
Top Local · Closed
Should the city increase parking enforcement fines?
62% YES · 4,210 votes
votd insights
3× more active on Tuesdays
Timing
Tuesday turnout runs three times higher than Saturday. Weekday evenings are when Sacramento shows up.
M
T
W
T
F
S
S
2,847 verified votes analysed
Top State · Open · 3 days left
Should California mandate solar panels on new commercial buildings?
48% YES · 6,841 votes
Hero
Purple Dark + Amber
Top National · Closed
Should Congress pass the Infrastructure Investment Act?
71% YES · 18,420 votes
votd insights
Housing
Topic engagement
Sacramento's most-voted issue this month — more than Environment and Infrastructure combined.
1
Housing
34%
2
Infrastructure
21%
3
Environment
18%
4
Public Health
14%
5
Education
11%
59 votes across 8 topics
Top Local · Open · 7 days left
Should Sacramento expand its bike lane network?
55% YES · 3,102 votes
Companion
Mauve + Purple Dark
Top National · Closed
Should Congress pass the Infrastructure Investment Act?
71% YES · 18,420 votes
votd insights
Housing
Topic engagement
Sacramento's most-voted issue this month — more than Environment and Infrastructure combined.
1
Housing
34%
2
Infrastructure
21%
3
Environment
18%
4
Public Health
14%
5
Education
11%
59 votes across 8 topics
Top Local · Open · 7 days left
Should Sacramento expand its bike lane network?
55% YES · 3,102 votes
════════════════════════════════════════ SECTION 2 — OWNABLE + UNIVERSAL ════════════════════════════════════════
2 · Ownable + Universal
How the graphic holds up when it leaves the app — social share, local news, yearbook. Mark prominence, standalone legibility, export context.
Export treatments — Hero theme
E1 · Eyebrow only
in-app default
Top Local · Closed
Should the city increase parking enforcement fines?
62% YES · 4,210 votes
votd insights
3× more active on Tuesdays
Timing
Tuesday turnout runs three times higher than Saturday. Weekday evenings are when Sacramento shows up.
M
T
W
T
F
S
S
2,847 verified votes analysed
Top State · Open · 3 days left
Should California mandate solar panels on new commercial buildings?
48% YES · 6,841 votes
E2 · Attribution bar
source credit for export
Top Local · Closed
Should the city increase parking enforcement fines?
62% YES · 4,210 votes
votd insights
3× more active on Tuesdays
Timing
Tuesday turnout runs three times higher than Saturday. Weekday evenings are when Sacramento shows up.
M
T
W
T
F
S
S
votd insights votd.com · Sacramento 2024
Top State · Open · 3 days left
Should California mandate solar panels on new commercial buildings?
48% YES · 6,841 votes
E3 · Standalone card
no feed context · social
votd insights · Sacramento
3× more active on Tuesdays
Timing
Tuesday turnout runs three times higher than Saturday. Weekday evenings are when Sacramento shows up.
M
T
W
T
F
S
S
votd.com 2,847 votes · Q4 2024
E4 · Geo-tagged
city prominent · local news
votd insights
Sacramento, CA
3× more active on Tuesdays
Timing
Tuesday turnout runs three times higher than Saturday. Weekday evenings are when Sacramento shows up.
M
T
W
T
F
S
S
votd insights votd.com
════════════════════════════════════════ SECTION 3 — COMPLEX DATA STRESS TEST ════════════════════════════════════════
3 · Complex Data Stress Test
Stretching the chart geometry with richer data structures. Two-series comparison, geo split, distribution placement. Hero theme throughout.
D1 · Two-series W6
this week vs last week
Top Local · Closed
Should the city increase parking enforcement fines?
62% YES · 4,210 votes
votd insights
↑ 18% this week
Voting pace
Tuesday engagement up sharply vs last week. Sacramento is accelerating.
M
T
W
T
F
S
S
This week
Last week
2,847 votes this week · 2,415 last week
Top State · Open · 3 days left
Should California mandate solar panels on new commercial buildings?
48% YES · 6,841 votes
D2 · T3 geo split
your topics vs city avg
Top National · Closed
Should Congress pass the Infrastructure Investment Act?
71% YES · 18,420 votes
votd insights
You vs Sacramento
Topic comparison
Your voting mix differs from your city. You lean more Environment than most.
You
Sacramento
1
Housing
38%
1
city avg
34%
2
Environment
26%
2
city avg
18%
3
Infrastructure
18%
3
city avg
21%
Based on your 59 votes vs 18,420 Sacramento votes
Top Local · Open · 7 days left
Should Sacramento expand its bike lane network?
55% YES · 3,102 votes
D3 · Distribution dot
where you sit on the curve
Top Local · Closed
Should the city increase parking enforcement fines?
62% YES · 4,210 votes
votd insights
Top 14%
Civic engagement
You vote more than 86% of Sacramento users. Most people vote once a week or less.
← you
1×/mo 1×/wk daily
Engagement frequency · 18,420 Sacramento voters
Top State · Open · 3 days left
Should California mandate solar panels on new commercial buildings?
48% YES · 6,841 votes
D4 · Small multiples
three metrics · one breaker
Top Local · Closed
Should the city increase parking enforcement fines?
62% YES · 4,210 votes
votd insights
Your civic snapshot
Q4 · Sacramento
Three signals from your voting activity this quarter.
12
week
streak
4.2 votes/wk
city avg 2.8
voting
pace
🏠
top
topic
59 votes · Q4 2024 · Sacramento
Top State · Open · 3 days left
Should California mandate solar panels on new commercial buildings?
48% YES · 6,841 votes
════════════════════════════════════════ SECTION 4 — COMPLEX DATA · COMPANION (MAUVE) · TANGERINE SECONDARY ════════════════════════════════════════
4 · Complex Data Stress Test — Companion · the chill version
Mauve + Purple Dark as primary · #E87613 tangerine as secondary. Warm, resolved, still airy — enough contrast to carry complex data without competing with the primary.
D1 · Two-series W6
this week vs last week
Top Local · Closed
Should the city increase parking enforcement fines?
62% YES · 4,210 votes
votd insights
↑ 18% this week
Voting pace
Tuesday engagement up sharply vs last week. Sacramento is accelerating.
M
T
W
T
F
S
S
This week
Last week
2,847 votes this week · 2,415 last week
Top State · Open · 3 days left
Should California mandate solar panels on new commercial buildings?
48% YES · 6,841 votes
D2 · T3 geo split
your topics vs city avg
Top National · Closed
Should Congress pass the Infrastructure Investment Act?
71% YES · 18,420 votes
votd insights
You vs Sacramento
Topic comparison
Your voting mix differs from your city. You lean more Environment than most.
You
Sacramento
1
Housing
38%
1
city avg
34%
2
Environment
26%
2
city avg
18%
3
Infrastructure
18%
3
city avg
21%
Based on your 59 votes vs 18,420 Sacramento votes
Top Local · Open · 7 days left
Should Sacramento expand its bike lane network?
55% YES · 3,102 votes
D3 · Distribution dot
where you sit on the curve
Top Local · Closed
Should the city increase parking enforcement fines?
62% YES · 4,210 votes
votd insights
Top 14%
Civic engagement
You vote more than 86% of Sacramento users. Most people vote once a week or less.
← you
1×/mo 1×/wk daily
Engagement frequency · 18,420 Sacramento voters
Top State · Open · 3 days left
Should California mandate solar panels on new commercial buildings?
48% YES · 6,841 votes
D4 · Small multiples
three metrics · one breaker
Top Local · Closed
Should the city increase parking enforcement fines?
62% YES · 4,210 votes
votd insights
Your civic snapshot
Q4 · Sacramento
Three signals from your voting activity this quarter.
12
week
streak
4.2 votes/wk
city avg 2.8
voting
pace
🏠
top
topic
59 votes · Q4 2024 · Sacramento
Top State · Open · 3 days left
Should California mandate solar panels on new commercial buildings?
55% YES · 3,102 votes
════════════════════════════════════════ SECTION 5 — NAMING DIRECTIONS ════════════════════════════════════════
5 · Naming Directions
Two directions for how the badge — and the breaker overall — identifies itself. Option A: badge names the data dimension (what kind of data this is). Option B: badge names the graphic as a recurring editorial feature (a column with its own identity). Both played out across the full breaker: eyebrow, stat, badge, caption, foot. Hero theme used as test vehicle. Same underlying data, completely different voice.
W6 — When people vote (timing data)
Option A · Functional
badge = data dimension
Top Local · Closed
Should the city increase parking enforcement fines?
62% YES · 4,210 votes
votd insights
Up 18% this week
Timing
Vote activity is climbing. Sacramento is engaged — and turnout is building toward the deadline.
M
T
W
T
F
S
S
2,847 verified votes · this week vs last
Top State · Open · 3 days left
Should California mandate solar panels on new commercial buildings?
48% YES · 6,841 votes
Option B · Editorial
badge = named feature
Top Local · Closed
Should the city increase parking enforcement fines?
62% YES · 4,210 votes
votd insights · civic pulse
Up 18% this week
Civic Pulse
The city's heartbeat is quickening. Participation is climbing — and the trend line says it's not slowing down.
M
T
W
T
F
S
S
2,847 verified votes · Sacramento · this week
Top State · Open · 3 days left
Should California mandate solar panels on new commercial buildings?
48% YES · 6,841 votes
Option A · Functional
geo timing variant
Top Local · Open · 5 days left
Should Sacramento expand its light rail network north?
55% YES · 3,102 votes
votd insights
2× the national rate
Timing
Sacramento voters are showing up at twice the national pace this week. This city is paying attention.
national
M
T
W
T
F
S
S
3,102 votes · Sacramento vs US avg this week
Top National · Open
Should Congress fund high-speed rail between major cities?
67% YES · 22,410 votes
Option B · Editorial
named feature variant
Top Local · Open · 5 days left
Should Sacramento expand its light rail network north?
55% YES · 3,102 votes
votd insights · civic pulse
2× the national rate
Civic Pulse
Sacramento is punching above its weight. While the country hums along, this city has something to say.
national
M
T
W
T
F
S
S
3,102 votes · Sacramento vs US avg this week
Top National · Open
Should Congress fund high-speed rail between major cities?
67% YES · 22,410 votes
T3 — What people are voting on (topic data)
Option A · Functional
badge = data dimension
Top National · Closed
Should Congress pass the Infrastructure Investment Act?
71% YES · 18,420 votes
votd insights
Housing leads by 13 pts
Topics
No issue is close. Sacramento's civic attention is concentrated — Housing is pulling away from the field.
1
Housing
34%
2
Infrastructure
21%
3
Environment
18%
4
Public Health
14%
5
Education
11%
4,210 verified votes · Sacramento · this month
Top Local · Open · 7 days left
Should Sacramento expand its bike lane network?
55% YES · 3,102 votes
Option B · Editorial
badge = named feature
Top National · Closed
Should Congress pass the Infrastructure Investment Act?
71% YES · 18,420 votes
votd insights · what moves us
Housing leads by 13 pts
What Moves Us
Month after month, housing tops the chart. It's not a topic anymore — it's a defining concern for this city.
1
Housing
34%
2
Infrastructure
21%
3
Environment
18%
4
Public Health
14%
5
Education
11%
4,210 verified votes · Sacramento · this month
Top Local · Open · 7 days left
Should Sacramento expand its bike lane network?
55% YES · 3,102 votes
Option A · Functional
your rank variant
Top Local · Closed
Should the city increase parking enforcement fines?
62% YES · 4,210 votes
votd insights
Top 8% of voters
Your rank
You've voted more than 92% of Sacramento residents this month. Civic participation, ranked.
1
You
59 votes
—
Top 10%
46 votes
—
Median
14 votes
Compared to 8,410 Sacramento voters · this month
Top State · Open · 3 days left
Should California mandate solar panels on new commercial buildings?
48% YES · 6,841 votes
Option B · Editorial
named feature · rank
Top Local · Closed
Should the city increase parking enforcement fines?
62% YES · 4,210 votes
votd insights · standing
Top 8% of voters
Standing
You're not just here — you're showing up. More than almost anyone else in your city this month.
1
You
59 votes
—
Top 10%
46 votes
—
Median
14 votes
Compared to 8,410 Sacramento voters · this month
Top State · Open · 3 days left
Should California mandate solar panels on new commercial buildings?
48% YES · 6,841 votes
direction summary note
Direction notes
Option A — Functional. Badge = "Timing", "Topics", "Your rank". Eyebrow stays clean: votd insights. Works as an editorial taxonomy — users learn what kind of data they're reading. Every breaker is different. No single recurring identity. Scales to many insight types without needing new names.

Option B — Editorial. Badge = "Civic Pulse", "What Moves Us", "Standing". Eyebrow carries the sub-brand: votd insights · civic pulse. Works like a magazine column — the same feature, returning regularly. Creates expectation and recognition. The name does more than categorise — it frames the feeling. Different feature names could map to different graphic types.

Tension. Option A is versatile and honest; Option B has personality and recall. A hybrid is possible: feature names used selectively (only for the highest-trust, most recurring graphic types), functional labels used for one-offs and secondary data.
Feed Cards

VOTD Card System — Rationale Archive

Archived from design-system-proposal.html. The problem statement and proposal sections that led to the current feed design. Kept for reference only — the live prototype is in design-system-proposal.html.

VOTD Feed

The Problem
12 competing card stylesnow No contrast logic Shadow inconsistency

The Proposal
Two card tiersproposed Background logic Breakers unchanged

Audit
All styles → decisions Feed slot mapping

Decisions Log
White bg / off-white cards ✓ Section headers — quiet grey ✓ CTA buttons — rgba(200,80,20,0.09) ✓ Clock — all black; orange only <2hrs ✓ Clock — drop ms, show DD:HH:MM only ✓

Live Preview
Phone mockup →

Scroll the phone to see all 27 feed slots with proposed card styles applied.

Card System Proposal

The feed has 12 card shell styles with no consistent logic. Proposal: collapse to two tiers.

Problem 1 — 12 card shells

Most differ by only 2px of radius or a shadow tweak

Current: card · featureCard · closedCard · compactCard · heroCard · standBanner · topVoteCard · urgentCard · insightFeatureCard · insightCard (unused) · stubCard · + 3 breaker shells. Accumulated organically — no system behind when to use which.
StyleBGRadiusShadow→
heroCardWHITEr(16)0.07/12→ cardFeat
topVoteCardWHITEr(14)none→ cardFeat
urgentCardWHITEr(14)0.07/10→ cardFeat
insightFeatureCardWHITEr(14)0.08/10→ cardFeat
featureCardWHITEr(12)0.06/8→ cardFeat
standBannerWHITEr(12)0.06/8→ cardFeat
cardOFF_WHITEr(12)0.06/8→ cardStd
closedCardWHITEr(12)0.06/8→ cardStd
insightCardWHITEr(12)0.06/6remove — unused
stubCardWHITEr(12)nonekeep
compactCardWHITEr(12)0.06/6keep

Problem 2 — No contrast logic

Everything reads at the same visual weight

Current: WHITE feed + WHITE cards = near-zero contrast. The one exception (card using OFF_WHITE) is inconsistently applied — closedCard, featureCard etc. are still WHITE. No rule for when a card earns a white background.
Proposed rule: Standard cards (list rows, milestones, community, proposals) → OFF_WHITE #FAF9F8. Feature cards (countdown, top vote, urgency, insights) → WHITE #FFFFFF. Feed background → WHITE. Feature cards feel embedded in a clean field; standard cards read as surfaces.

Problem 3 — Shadow inconsistency

Five configs, no hierarchy logic

Current: topVoteCard has no shadow at all. heroCard has the strongest. insightFeatureCard differs subtly from urgentCard. None maps to a logical hierarchy — it just accumulated.
Proposed rule: Two levels only. Standard shadow (opacity 0.05, radius 6, offset 0,2) for cardStd. Feature shadow (opacity 0.08, radius 12, offset 0,3) for cardFeat. No bespoke configs.

Proposal — Two card tiers

cardStd and cardFeat replace all redundant shells

PropertycardStdcardFeat
BackgroundOFF_WHITE #FAF9F8WHITE #FFFFFF
Border1px rgba(200,80,20,0.12)1px rgba(200,80,20,0.18)
Radiusr(12)r(14)
Shadow opacity0.050.08
Shadow radius6px12px
Shadow offset0, 20, 3
Margin bottomr(4)r(8)

Background logic

Feed = WHITE · Standard card = OFF_WHITE · Feature card = WHITE

1
Feed → WHITE #FFFFFFClean field. Feature cards sit in it rather than floating above a grey base.
2
Standard cards → OFF_WHITE #FAF9F8Milestones, community, category lists, proposals. Surfaces, not moments.
3
Feature cards → WHITE #FFFFFFCountdown, top vote, urgency. White-on-white with shadow + border = lift without fight.
4
Breakers → mauve tint rgba(153,111,154,0.14)Full-width, no radius. Unchanged. Colour contrast vs white feed is the main differentiator.
Feed BG /
cardFeat
#FFFFFF
cardStd
#FAF9F8
Breaker
mauve 14%
BEIGE
border/divider
#EDEBE9
ORANGE
CTA
#C85014

Breakers — unchanged

brkComp / brkCompNoPad stay exactly as-is

No change needed. Breakers are full-width structural dividers — they don't compete with cards. The only cleanup: brkHero is defined but never used in the current feed and can be removed until a hero-theme insight slot is built.

Full audit — every style

12 shells → 6 styles

Current nameBecomesWhy
cardcardStdRename for clarity. OFF_WHITE bg stays.
closedCard→ cardStdIdentical shadow/border. BG → OFF_WHITE.
heroCard→ cardFeatr(16) radius not enough to justify own style.
topVoteCard→ cardFeatMissing shadow was accidental.
urgentCard→ cardFeatSame logic as topVoteCard.
featureCard→ cardFeatWas missing border. Merges cleanly.
standBanner→ cardFeatCTA card earns feature treatment.
insightFeatureCard→ cardFeatShadow diff was imperceptible.
insightCardremoveUnused legacy style.
stubCardkeepDashed border = intentionally distinct.
compactCardkeepFixed width + carousel context.
brkComp/NoPadkeepFull-width structural dividers.
brkHeroremove/reserveDefined but never rendered in feed.
Result: 12 shells → 7 styles. Every feed slot uses one of: cardStd · cardFeat · stubCard · compactCard · brkComp · brkCompNoPad · proposeCard

Feed slot → style mapping

All 27 slots assigned

#SlotStyle
1Closing SooncardFeat
2Top Votes · USA / State (couplet)cardFeat
3Your Side Is LosingcardFeat
4Neighbor ProposalscardStd
5VOTD Insights · TuesdaysbrkCompNoPad
6Top Votes · Local / Topic (couplet)cardFeat
7Your Community VotedcardStd
8Add ResearchcardFeat
9VOTD Insights · Housing leadsbrkComp
10+11Top Votes · State / Local (couplet)cardFeat
12Just ClosedcardStd
13Top Votes · USA / Topic (couplet)cardFeat
14Your MilestonescardStd
15Stand and Be CountedcardFeat
16Your BacklogcompactCard
17+18Top Votes · #2 USA / State (couplet)cardFeat
19Your Side Is WinningcardFeat
19Neighbors Want to Know #2cardStd
20VOTD Insights · 3 pts apartbrkComp
21Top Votes · #2 Local / Topic (couplet)cardFeat
22Add Research #2cardFeat
23Top Issues by TopiccardStd
24VOTD Insights · top 14%brkComp
25Top Votes · #2 State / Local (couplet)cardFeat
26You're up to date—
27Propose a VoteproposeCard
Sign Up
A — Sign Up (Full)
A1 · Phone entry
9:41●●●
✕
What's your
mobile number?
We'll send a one-time code to confirm it's you. No password needed.
🇺🇸 +1
(555) 000-0000
Your number is used only to confirm your identity. We never share it or use it for marketing. By continuing you agree to our Terms of Service and Privacy Policy.
Send code
Button dims until 10 digits entered.
›
A2 · Confirm code
9:41●●●
‹
Confirm your number
Enter the 6-digit code we sent to
+1 (555) 000-0000
Didn't get the text?
Confirm
Dims until all 6 digits entered. Sets phone_verified.
›
A3 · Set up profile (name)
9:41●●●
‹
One more step 👤
Add your name, email, and primary address so your votes can count once residency is confirmed. You're in control of whether each vote is public or private.
First Name
First name
Last Name
Last name
Email (optional)
you@example.com
Continue
Skip for now
Heading changes to "Finish signing up 👤" when returning from skip. Email optional. Skip overlay: "Make your vote count. See live results. Propose your own votes." / "Complete Sign Up".
›
A4 · Address entry
9:41●●●
‹
Your primary address
Your address tells us which votes to show you. We'll never share your address publicly.
Street address
1420 Rivera Drive
Apt / Unit (optional)
Apt, suite, unit…
City
Sacramento
State
CA
ZIP
95818
Confirm address
Skip for now
Sets address + verifying in ProfileContext on confirm.
›
A4b · USPS suggestion
9:41●●●
‹
Your primary address
Street address
1420 Rivera Drive
City
Sacramento
State
CA
ZIP
95818
Did you mean this address?
1420 RIVERA DR
SACRAMENTO, CA 95818
This is the USPS-standardized version of your address.
Yes, use this address
No, keep mine
Either path → saves address + sets verifying.
›
A5 · Add photo
9:41●●●
‹
Add a photo
A photo helps your community recognize you. You can always add or change it later.
Tap to add a photo
Add a photo
Remind me later
"Remind me later" → /(tabs). Photo optional — no gate.
›
A6 · Registration complete
9:41●●●
🎉
You're all set
Your residency is being verified, which takes 24–48 hours. In the meantime, you can still vote and your votes will be added to the tally once verified.
Continue
"Continue" routes to returnTo context — Vote of the Day, Propose a Vote, or Profile depending on entry point. No back control. Shown once on first sign-up completion.
B — Have an Account
B1 · Welcome back
9:41●●●
✕
Welcome back 👋
Enter your number and we'll send a code to confirm it's you. No password needed.
🇺🇸 +1
(555) 000-0000
Your number is used only to confirm your identity. We never share it or use it for marketing. By continuing you agree to our Terms of Service and Privacy Policy.
Send code
Entry from F1 "Already have an account?" or E1 "Sign in". ✕ dismisses back to entry point. "Welcome back" signals account recovery — not new registration.
›
B2 · Confirm code
9:41●●●
‹
Confirm your number
Enter the 6-digit code we sent to
+1 (555) 000-0000
Didn't get the text?
Confirm
Three exits: phone-auth account matched → B3a "We found you". Wrong code → B3b "Try again". No account or can't restore → B3c. OTP always sent — account existence never revealed before confirmation.
›
B3a · We found you
9:41●●●
👋
We found you!
Looks like you started signing up before. Why not finish? It only takes a minute.
Finish Sign Up
Skip for now
Phone-auth-only account matched. "Finish Sign Up" → A3 (name screen). "Skip for now" → Vote of the Day as phone-verified user.
B3b · Try again
9:41●●●
‹
Confirm your number
Enter the 6-digit code we sent to
+1 (555) 000-0000
4
2
8
0
0
1
That code didn't match. Try again.
Resend code
Confirm
Digits stay filled. Error in red. "Resend code" replaces hint. Loops back to retry or → B3c if can't get in.
B3c · Can't get in
9:41●●●
🤔
Hmm…
that didn't work.
Need an account?
Sign up
Need help?
Get support
Skip for now
Covers no-account and restore-failure without distinguishing. "Sign up" → A3. "Get support" → support contact. "Skip for now" → guest mode.
C — Phone Confirmation
A1 · Phone entry
9:41●●●
✕
What's your
mobile number?
We'll send a one-time code to confirm it's you. No password needed.
🇺🇸 +1
(555) 000-0000
Your number is used only to confirm your identity. We never share it or use it for marketing. By continuing you agree to our Terms of Service and Privacy Policy.
Send code
Shared with A — same screen. ✕ dismisses the flow entirely.
›
A2 · Confirm code
9:41●●●
‹
Confirm your number
Enter the 6-digit code we sent to
+1 (555) 000-0000
Didn't get the text?
Confirm
Shared with A — same screen. C1 documents the error state; C2 is the landing screen after confirmation.
›
C1 · Wrong code — error
9:41●●●
‹
Confirm your number
Enter the 6-digit code we sent to
+1 (555) 000-0000
4
2
8
0
0
1
That code didn't match. Try again.
Resend code
Confirm
Digits stay filled — not cleared. Error in red. "Resend code" replaces hint.
›
C2 · Profile setup — skip overlay
9:41●●●
‹
One more step 👤
Add your name, email, and primary address so your votes can count once residency is confirmed. You're in control of whether each vote is public or private.
First Name
First name
Last Name
Last name
Email (optional)
you@example.com
Continue
Skip for now
Make your vote count. See live results. Propose your own votes.
Complete Sign Up
Skip for now
Shown immediately on landing — showSkipOnEntry=true passed from verify-otp. "Complete Sign Up" dismisses overlay, stays on name screen. "Skip for now" → tabs (guest mode).
D — Finish Sign Up
D2 · Name — "Finish signing up"
9:41●●●
‹
Finish signing up 👤
Add your name and primary address so your votes can count once residency is confirmed.
First Name
First name
Last Name
Last name
Email (optional)
you@example.com
Continue
Skip for now
Heading is "Finish signing up 👤" — NOT "One more step". Entry is /profile-setup, phone screen skipped entirely.
›
A4 · Address entry
9:41●●●
‹
Your primary address
Your address tells us which votes to show you. We'll never share your address publicly.
Street address
1420 Rivera Drive
Apt / Unit (optional)
Apt, suite, unit…
City
Sacramento
State
CA
ZIP
95818
Confirm address
Skip for now
Shared with A — same screen. Sets address + verifying in ProfileContext on confirm.
›
A4b · USPS suggestion
9:41●●●
‹
Your primary address
Street address
1420 Rivera Drive
City
Sacramento
State
CA
ZIP
95818
Did you mean this address?
1420 RIVERA DR
SACRAMENTO, CA 95818
This is the USPS-standardized version of your address.
Yes, use this address
No, keep mine
Shared with A — same screen. Either path → saves address + sets verifying.
›
A5 · Add photo
9:41●●●
‹
Add a photo
A photo helps your community recognize you. You can always add or change it later.
Tap to add a photo
Add a photo
Remind me later
Shared with A — same screen. "Remind me later" → A6 (registration complete).
›
A6 · Registration complete
9:41●●●
🎉
You're all set
Your residency is being verified, which takes 24–48 hours. In the meantime, you can still vote and your votes will be added to the tally once verified.
Continue
Shared with A — same screen. "Continue" routes via returnTo context — Vote of the Day, Propose a Vote, or Profile.
E — My Profile · Account States
E1 · Guest — full screen
9:41●●●
My Profile
🗳️
Make your voice count
Vote on local issues, add research, and see live results from verified voters in your area.
Sign Up
Already have an account? Sign in
🗳
Index
📋
Feed
👤
Profile
No profile card. "Sign Up" → /signup. "Sign in" → /signin (B).
›
E2 · Phone Verified
9:41●●●
My Profile
+
JS
Jamie Sanchez
Phone Verified
Complete Registration →
✏️
🗳
Index
📋
Feed
👤
Profile
Blue badge. Orange "Complete Registration →" nudge. Taps → /address-setup.
›
E3 · Verifying
9:41●●●
My Profile
+
JS
Jamie Sanchez
Verifying
1420 Rivera Dr, Sacramento
Matching your voter registration — votes are queued
✏️
🗳
Index
📋
Feed
👤
Profile
Amber badge. Address shown. No CTA — user has nothing left to do.
›
E4 · Voter Verified
9:41●●●
My Profile
+
JS
Jamie Sanchez
Voter Verified
1420 Rivera Dr, Sacramento
✏️
🗳
Index
📋
Feed
👤
Profile
Orange badge. Clean — no prompts, no nudge.
F — App Flow · Skip/Sign Up Prompts
F1 · Onboarding → Sign Up
9:41●●●
VOTD
slide 5 of 5
Your community voice. A new daily habit.
Sign Up
Explore first
Already have an account?
"Sign Up" → /signup. "Explore first" → guest mode. "Already have an account?" → sign-in path.
›
F2 · Guest · 1st tap — Vote or Share
9:41●●●
Vote of the Day
+
Sacramento City Council · Housing
Should the city rezone downtown parking lots for mixed-use housing?
62% Yes38% No
1,284 votes
Vote Now
Confirm my number to continue
Add My Number
Skip for now
🗳
Index
📋
Feed
👤
Profile
"Add My Number" → /signup. "Skip for now" dismisses — no state change. Resets each session.
›
F3 · Guest · 2nd+ tap — red message
9:41●●●
Vote of the Day
+
Sacramento City Council · Housing
Should the city rezone downtown parking lots for mixed-use housing?
62% Yes38% No
1,284 votes
Vote Now
Requires phone number confirmation
Add My Number
Skip for now
🗳
Index
📋
Feed
👤
Profile
Message turns red on repeat dismiss. Same buttons as F2.
›
F4a · Propose a Vote — Guest
9:41●●●
‹
Sacramento City Council · Housing
Should the city rezone downtown parking lots for mixed-use housing?
Research
City planning report estimates 4,200 new units over 10 years on underused surface lots near the K Street corridor.
👍 Vote Yes
👎 Vote No
Proposing votes requires voter verification
Sign Up
Skip for now
🗳
Index
📋
Feed
👤
Profile
Guest — full sign-up required. "Sign Up" → /signup. "Skip for now" dismisses.
F4b · Propose a Vote — Phone Auth
9:41●●●
‹
Sacramento City Council · Housing
Should the city rezone downtown parking lots for mixed-use housing?
Research
City planning report estimates 4,200 new units over 10 years on underused surface lots near the K Street corridor.
👍 Vote Yes
👎 Vote No
Proposing votes requires voter verification
Finish Sign Up
Skip for now
🗳
Index
📋
Feed
👤
Profile
Phone-verified — already has number. "Finish Sign Up" → /profile-setup. "Skip for now" dismisses.
›
F5a · Add Research — Guest
9:41●●●
‹
Sacramento City Council · Housing
Should the city rezone downtown parking lots for mixed-use housing?
Research
City planning report estimates 4,200 new units over 10 years on underused surface lots near the K Street corridor.
👍 Vote Yes
👎 Vote No
Adding research requires voter verification
Sign Up
Skip for now
🗳
Index
📋
Feed
👤
Profile
Guest — full sign-up required. "Sign Up" → /signup. "Skip for now" dismisses.
F5b · Add Research — Phone Auth
9:41●●●
‹
Sacramento City Council · Housing
Should the city rezone downtown parking lots for mixed-use housing?
Research
City planning report estimates 4,200 new units over 10 years on underused surface lots near the K Street corridor.
👍 Vote Yes
👎 Vote No
Adding research requires voter verification
Finish Sign Up
Skip for now
🗳
Index
📋
Feed
👤
Profile
Phone-verified — already has number. "Finish Sign Up" → /profile-setup. "Skip for now" dismisses.
›
F6 · Phone Auth · Post-Vote nudge
9:41●●●
‹
Sacramento City Council · Housing
Should the city rezone downtown parking lots for mixed-use housing?
Research
City planning report estimates 4,200 new units over 10 years on underused surface lots near the K Street corridor.
👍 You voted Yes
👎 No
Want your votes to make a difference?
Finish Sign Up
🗳
Index
📋
Feed
👤
Profile
Inline — replaces tally bar. No skip. "Finish Sign Up" → /profile-setup.
Master Gate Entry Point Map — By Screen
Screen Gate Prompt Sequence Outcome Status Target Outcome
Onboarding (F1)
Onboarding Sign Up Sign Up A1–A6 verifying Vote of the Day All actions saved in account; votes counting, open tallies, proposed votes going live, research going live, and share vote how only available after verification
Onboarding Explore / Skip Explore first n/a guest Vote of the Day —
Onboarding Log In Already have an account? B1, B2, B3, (B3b), (B3c) any (depending on outcome) Vote of the Day if clear; A1 if sign up; support if need help; onboarding if skip —
Vote of the Day
Vote of the Day Vote / Yes/No Confirm your mobile number to continue
Add My Number · Skip for now
A1, A2, (C1), [C2, A3, (A4), (A4B), A5, A6] phone · [verifying] Vote of the Day — conf phone = have an account, votes save, but votes don't count and can't see open vote tallies unless verified
Vote of the Day Follow Confirm your mobile number to continue
Add My Number · Skip for now
A1, A2, (C1), [C2, A3, (A4), (A4B), A5, A6] phone · [verifying] Vote of the Day (with save selected) phone = have an account, follows save, but votes don't count and can't see open vote tallies unless verified
Vote of the Day Propose — guest Proposing votes requires verification
Sign Up · Skip for now
A1–A6 [verifying] Vote of the Day Proposed vote saved until voter is verified — then reviewed
Vote of the Day Propose — phone Proposing votes requires verification
Finish Sign Up · Skip for now
D2, A4, (A4B), A5, A6 [verifying] Vote of the Day Proposed vote saved until voter is verified — then reviewed
Vote of the Day Add Research — guest Adding Research requires verification
Sign Up · Skip for now
A1–A6 [verifying] Vote of the Day Research saved until voter is verified — then reviewed
Vote of the Day Add Research — phone Adding Research requires verification
Finish Sign Up · Skip for now
D2, A4, (A4B), A5, A6 [verifying] Vote of the Day Research saved until voter is verified — then reviewed
Vote of the Day — Confirmation
VOTD — conf Finish Want your votes to make a difference?
Finish Sign Up
D2, A4, (A4B), A5, A6 [verifying] Vote of the Day — conf All actions saved in account; votes counting, open tallies, proposed votes going live, research going live, and share vote how only available after verification
VOTD — conf Propose — guest Proposing votes requires verification
Sign Up · Skip for now
A1–A6 [verifying] Vote of the Day — conf Proposed vote saved until voter is verified — then reviewed
VOTD — conf Propose — phone Proposing votes requires verification
Finish Sign Up · Skip for now
D2, A4, (A4B), A5, A6 [verifying] Vote of the Day — conf Proposed vote saved until voter is verified — then reviewed
Votes — Open
Votes — Open Vote Now Confirm your mobile number to continue
Add My Number · Skip for now
A1, A2, (C1), [C2, A3, (A4), (A4B), A5, A6] phone · [verifying] Vote Item phone = have an account, votes save, but votes don't count and can't see open vote tallies unless verified
Votes — Open Follow Confirm your mobile number to continue
Add My Number · Skip for now
A1, A2, (C1), [C2, A3, (A4), (A4B), A5, A6] phone · [verifying] Votes — Open phone = have an account, follows save, but votes don't count and can't see open vote tallies unless verified
Votes — Open Share Confirm your mobile number to continue
Add My Number · Skip for now
A1, A2, (C1), [C2, A3, (A4), (A4B), A5, A6] phone · [verifying] Votes — Open phone = can share vote; verified = can share all including vote how
Votes — Open Sign up for tally — phone Faded CTA on voted card
Sign up for tally
D2, A4, (A4B), A5, A6 [verifying] Votes — Open phone = voted but can't see open vote tallies unless verified; card shows faded "Sign up for tally" CTA instead of tally bar
Vote Item
Vote Item Vote / Yes/No Confirm your mobile number to continue
Add My Number · Skip for now
A1, A2, (C1), [C2, A3, (A4), (A4B), A5, A6] phone · [verifying] Vote Item — conf phone = have an account, votes save, but votes don't count and can't see open vote tallies unless verified
Vote Item Follow Confirm your mobile number to continue
Add My Number · Skip for now
A1, A2, (C1), [C2, A3, (A4), (A4B), A5, A6] phone · [verifying] Vote Item (with save selected) phone = have an account, follows save, but votes don't count and can't see open vote tallies unless verified
Vote Item Propose — guest Proposing votes requires verification
Sign Up · Skip for now
A1–A6 [verifying] Vote Item Proposed vote saved until voter is verified — then reviewed
Vote Item Propose — phone Proposing votes requires verification
Finish Sign Up · Skip for now
D2, A4, (A4B), A5, A6 [verifying] Vote Item Proposed vote saved until voter is verified — then reviewed
Vote Item Add Research — guest Adding Research requires verification
Sign Up · Skip for now
A1–A6 [verifying] Vote Item Research saved until voter is verified — then reviewed
Vote Item Add Research — phone Adding Research requires verification
Finish Sign Up · Skip for now
D2, A4, (A4B), A5, A6 [verifying] Vote Item Research saved until voter is verified — then reviewed
Vote Item — Confirmation
Vote Item — conf Finish Want your votes to make a difference?
Finish Sign Up
D2, A4, (A4B), A5, A6 [verifying] Vote Item — conf All actions saved in account; votes counting, open tallies, proposed votes going live, research going live, and share vote how only available after verification
Vote Item — conf Propose — guest Proposing votes requires verification
Sign Up · Skip for now
A1–A6 [verifying] Vote Item — conf Proposed vote saved until voter is verified — then reviewed
Vote Item — conf Propose — phone Proposing votes requires verification
Finish Sign Up · Skip for now
D2, A4, (A4B), A5, A6 [verifying] Vote Item — conf Proposed vote saved until voter is verified — then reviewed
Feed
Feed Vote Now Confirm your mobile number to continue
Add My Number · Skip for now
A1, A2, (C1), [C2, A3, (A4), (A4B), A5, A6] phone · [verifying] Vote Item phone = have an account, votes save, but votes don't count and can't see open vote tallies unless verified
Feed Follow Confirm your mobile number to continue
Add My Number · Skip for now
A1, A2, (C1), [C2, A3, (A4), (A4B), A5, A6] phone · [verifying] Back on Feed — with follow selected phone = have an account, follows save, but votes don't count and can't see open vote tallies unless verified
Feed Propose — guest Proposing votes requires verification
Sign Up · Skip for now
A1–A6 [verifying] Back on Feed Proposed vote saved until voter is verified — then reviewed
Feed Propose — phone Proposing votes requires verification
Finish Sign Up · Skip for now
D2, A4, (A4B), A5, A6 [verifying] Back on Feed Proposed vote saved until voter is verified — then reviewed
Feed Add Research — guest Adding Research requires verification
Sign Up · Skip for now
A1–A6 [verifying] Back on Feed Research saved until voter is verified — then reviewed
Feed Add Research — phone Adding Research requires verification
Finish Sign Up · Skip for now
D2, A4, (A4B), A5, A6 [verifying] Back on Feed Research saved until voter is verified — then reviewed
Feed Share This Vote Confirm your mobile number to continue
Add My Number · Skip for now
A1, A2, (C1), [C2, A3, (A4), (A4B), A5, A6] phone · [verifying] Back on Feed phone = can share vote; verified = can share all including vote how
My Profile
My Profile Phone conf (E2) Finish Sign Up D2, A4, (A4B), A5, A6 [verifying] Back on My Profile —
My Profile Awaiting verification (E3) — — — — All actions saved in account; votes counting, open tallies, proposed votes going live, research going live, and share vote how only available after verification
My Profile Verified (E4) — — — — All actions saved in account, votes count, can see open tallies, propose votes go for review, research goes for review, and share all types including vote how
My Profile Propose — guest Proposing votes requires verification
Sign Up · Skip for now
A1–A6 [verifying] Back on My Profile Proposed vote saved until voter is verified — then reviewed
My Profile Propose — phone Proposing votes requires verification
Finish Sign Up · Skip for now
D2, A4, (A4B), A5, A6 [verifying] Back on My Profile Proposed vote saved until voter is verified — then reviewed
My Profile Sign up for tally — phone Faded CTA on voted card (Votes tab)
Sign up for tally
D2, A4, (A4B), A5, A6 [verifying] Back on My Profile phone = voted but can't see open vote tallies unless verified; card shows faded "Sign up for tally" CTA instead of tally bar. Closed items show tally normally.
Routing Rules
A — Sign Up (Full): A1 phone → A2 OTP → A3 "One more step" → A4 address → A5 photo → A6 complete. No skip overlay. Used for: onboarding, Propose (guest), Add Research (guest). sequence=A threaded through signup → verify-otp → profile-setup.
B — Account Recovery: B1 sign-in → B2 OTP → exits to B3a (found) / B3b (wrong code) / B3c (failed).
C — Phone Confirmation: Guest vote/follow/save/share gates → /signup → phone + OTP → profile-setup with showSkipOnEntry overlay on arrival. Heading: "One more step". Skip returns to caller via returnTo. "Complete Sign Up" dismisses overlay, user continues to A4–A6. sequence=C threaded through; verify-otp sets showSkipOnEntry=true only when sequence=C.
D — Finish Sign Up: Phone-verified user hits a verification-required gate (Propose, Research, Profile nudge, tally gate) → /profile-setup directly. Heading: "Finish signing up". No skip overlay. Skips A1–A2 since phone is already confirmed. sequence=D passed as param.
Key rule: Skip overlay shows ONLY for C sequence (phone/Add My Number gates). A sequence (propose, research, onboarding) and D sequence (finish signup) never show skip overlay. The sequence param determines behavior, not returnTo.
Add Research
Add Research Flow — AR1 → AR8
Full flow from trigger CTA through bottom sheet input to pending-approval state on the vote item.
AR1 · Trigger CTA
9:41●●●
✕
#1 in Sacramento
+
City planning estimates 4,200 new units over 10 years on underused surface lots near the K Street corridor.
Sources / Research
🔗
sacbee.com
Parking lot rezoning plan could add thousands of downtown units
+
Add Research
Share a link about this vote
👍 Vote Yes
👎 Vote No
🗳
Index
📋
Feed
👤
Profile
Inline row CTA. Tapping opens bottom sheet.
→
AR2 · Picker
9:41●●●
✕
#1 in Sacramento
+
City planning estimates 4,200 new units…
Swipe down to dismiss
Add Research
Share a perspective on this vote
🔗
Paste a link
📄
Upload a file
🗳
Index
📋
Feed
👤
Profile
Two-column picker. Grey background panel.
Same layout as Propose a Vote step 3.
→
AR3 · Fetching preview
9:41●●●
✕
#1 in Sacramento
+
City planning estimates 4,200 new units…
Swipe down to dismiss
Add Research
Share a perspective on this vote
Fetching preview…
🗳
Index
📋
Feed
👤
Profile
Automated fetch fires after URL is pasted.
Shows loading state in the preview card.
→
AR4 · Link preview
9:41●●●
✕
#1 in Sacramento
+
City planning estimates 4,200 new units…
Swipe down to dismiss
Add Research
Share a perspective on this vote
sacbee.com
Parking lot rezoning plan could add thousands of downtown units
Sacramento officials unveiled a draft plan to rezone 12 surface parking lots near K Street into mixed-use housing.
OG image
Revise
Add This
🗳
Index
📋
Feed
👤
Profile
OG preview populates. "Revise" clears link
to paste a different URL.
→
AR5 · Upload a file
9:41●●●
✕
#1 in Sacramento
+
City planning estimates 4,200 new units…
Swipe down to dismiss
Add Research
Share a perspective on this vote
+
Add an image or document
Photo, screenshot, or PDF
🗳
Index
📋
Feed
👤
Profile
Dashed upload card. Tapping opens iOS action sheet.
→
AR6 · iOS action sheet
9:41●●●
✕
#1 in Sacramento
+
City planning estimates 4,200 new units…
Swipe down to dismiss
Add Research
Take Photo
Photo Library
Browse Files
Cancel
🗳
Index
📋
Feed
👤
Profile
Native iOS action sheet.
Take Photo / Photo Library / Browse Files / Cancel.
→
AR7 · File uploaded
9:41●●●
✕
#1 in Sacramento
+
City planning estimates 4,200 new units…
Swipe down to dismiss
Add Research
Share a perspective on this vote
📄
Revise
Source (required)
Add This
🗳
Index
📋
Feed
👤
Profile
"Revise" returns to file picker. "Add This"
dimmed until source field is filled.
→
AR8 · Pending approval
9:41●●●
✕
#1 in Sacramento
+
City planning estimates 4,200 new units over 10 years on underused surface lots near the K Street corridor.
Sources / Research
🔗
sacbee.com
Parking lot rezoning plan could add thousands of downtown units
🔗
capradio.org
New downtown Sacramento housing plan faces community pushback
Pending approval
+
Add Research
Share a perspective on this vote
👍 Vote Yes
👎 Vote No
🗳
Index
📋
Feed
👤
Profile
New source card dimmed at 45% opacity
with "Pending approval" badge. CTA remains.
User Accounts
Permissions Reference
ActionGuestPhone VerifiedVerifyingVerified
View votes + tally✓✓✓✓
Share vote item (neutral)✓ Open✓✓✓
Vote (counted)⬆ Prompt⬆ Prompt⏳ Queued✓
Save / follow⬆ Prompt✓✓✓
Share that you votednatural gate¹✓✓✓
Share how you votednatural gate¹✓✓✓
Add research⬆ Prompt⬆ Prompt⬆ Prompt✓ only

¹ Natural gate — share-with-attribution only reachable after voting, which already requires phone verification.  ·  Research requires voter roll match (verified only) — public attribution demands confirmed identity.

Sequence A — Guest Taps Vote Now · First Time
SkipOverlay slides up — invitation framing. "Skip for now" dismisses, pure guest, nothing recorded.
A1 · Guest feed
9:41●●●
Vote of the Day
+
Sacramento City Council · Housing
Should the city rezone downtown parking lots for mixed-use housing?
62% Yes38% No
1,284 votes
Vote Now
🗳
Index
📋
Feed
👤
Profile
Tap Vote Now →
›
A2 · First tap overlay
9:41●●●
Vote of the Day
+
Sacramento City Council · Housing
Should the city rezone downtown parking lots for mixed-use housing?
62% Yes38% No
1,284 votes
Vote Now
Verify your number to continue
Verify
Skip for now
🗳
Index
📋
Feed
👤
Profile
"Verify" → /signup
"Skip for now" → dismiss, pure guest
Sequence B — Guest Taps Vote Now · Second Time Same Session
Identical card to A2 — only the top message changes. Same button, same skip link, same vote card. Tracked via useRef boolean, resets each session.
A2 · First tap (reference)
9:41●●●
Vote of the Day
+
Sacramento City Council · Housing
Should the city rezone downtown parking lots for mixed-use housing?
62% Yes38% No
1,284 votes
Vote Now
Verify your number to continue
Verify
Skip for now
🗳
Index
📋
Feed
👤
Profile
First tap message
›
B · Second tap — message only changes
9:41●●●
Vote of the Day
+
Sacramento City Council · Housing
Should the city rezone downtown parking lots for mixed-use housing?
62% Yes38% No
1,284 votes
Vote Now
Voting requires phone verification.
Verify
Skip for now
🗳
Index
📋
Feed
👤
Profile
Only this line changes ↑
Everything else identical.
Sequence C — Verification Sign-Up Flow (Full Step-Through)
Entry from "Verify" CTA. Five screens: phone entry → OTP → name → address (+USPS) → photo → app. Each screen has a skip path.
C1 · Phone entry
9:41●●●
‹
What's your
mobile number?
We'll send a one-time code to verify it's you. No password needed.
🇺🇸 +1
(555) 000-0000
Your number is used only to verify your identity. We never share it or use it for marketing. By continuing you agree to our Terms of Service and Privacy Policy.
Send verification code
Cancel
Button dims until 10 digits entered.
›
C2 · Verify code
9:41●●●
‹
Verify your number
Enter the 6-digit code we sent to
+1 (555) 000-0000
1
2
3
Didn't get the text?
Verify
Dims until all 6 digits entered. Sets phone_verified.
›
C3 · Set up profile (name)
9:41●●●
‹
Set up your profile 👤
Add your name and primary address so your votes can count once residency is confirmed. You're in control of whether each vote is public or private.
First Name
First name
Last Name
Last name
Continue
Skip for now
Sets name in ProfileContext. "Skip for now" shows SkipOverlay below.
›
C3b · Name skip overlay
9:41●●●
‹
Set up your profile 👤
Add your name and primary address so your votes can count once residency is confirmed.
First Name
First name
Last Name
Last name
Continue
Skip for now
Your votes won't count towards the results until your name and address are verified. You can complete this any time from your profile.
Complete now
Skip for now
Existing SkipOverlay. "Skip for now" → address-setup anyway (or photo-setup).
C4 · Address entry
9:41●●●
‹
Your primary address
Your address tells us which votes to show you. We'll never share it publicly.
Street address
1420 Rivera Drive
Apt / Unit (optional)
Apt, suite, unit…
City
Sacramento
State
CA
ZIP
95818
Confirm address
Skip for now
Sets address + verifying in ProfileContext on confirm.
›
C4b · USPS suggestion
9:41●●●
‹
Your primary address
Street address
1420 Rivera Drive
City
Sacramento
State
CA
ZIP
95818
Did you mean this address?
1420 RIVERA DR
SACRAMENTO, CA 95818
This is the USPS-standardized version of your address.
Yes, use this address
No, keep mine
Either path → saves address + sets verifying.
›
C5 · Add photo
9:41●●●
‹
Add a photo
A photo helps your community recognize you. You can always add or change it later from your profile.
Tap to add a photo
Add a photo
Remind me later
"Remind me later" → /(tabs). Photo optional — no gate.
›
C6 · Lands in app — Verifying
9:41●●●
My Profile
+
JS
Jamie Sanchez
Verifying
1420 Rivera Dr, Sacramento
Matching your voter registration — votes are queued
✏️
🗳
Index
📋
Feed
👤
Profile
Amber badge. No further action required from user.
Sequence D — Phone-Verified User Votes · Post-Vote Nudge
User taps Yes or No on the vote-item screen. The Yes/No button area is replaced by the registration prompt. Live results stay hidden until verified — so the tally is not shown. Button → /address-setup.
D-1 · After voting · overlay rises from bottom
9:41●●●
‹
Sacramento City Council · Housing
Should the city rezone downtown parking lots for mixed-use housing?
Research
City planning report estimates 4,200 new units over 10 years on underused surface lots near the K Street corridor.
Sacramento City Planning Dept · 2024
👍 Vote Yes
👎 Vote No
Complete Registration
for votes to count and
to see live results
Complete Registration
🗳
Index
📋
Feed
👤
Profile
SkipOverlay springs up from bottom. Tap scrim or back arrow to dismiss. Button → /address-setup.
Sequence E — My Profile · All States
E1 · Guest · full screen
9:41●●●
My Profile
🗳️
Make your voice count
Vote on local issues, add research, and see live results from verified voters in your area.
Sign Up
Already have an account? Sign in
🗳
Index
📋
Feed
👤
Profile
Full screen — no profile card. "Sign Up" → /signup.
E2 · Phone verified
9:41●●●
My Profile
+
JS
Jamie Sanchez
Phone # Verified
Complete Registration to have votes count and see live results
✏️
🗳
Index
📋
Feed
👤
Profile
"Complete Registration" → /address-setup
E3 · Verifying
9:41●●●
My Profile
+
JS
Jamie Sanchez
Verifying
1420 Rivera Dr, Sacramento
Matching your voter registration — votes are queued
✏️
🗳
Index
📋
Feed
👤
Profile
No CTA — user has nothing left to do.
E4 · Verified
9:41●●●
My Profile
+
JS
Jamie Sanchez
Voter Verified
1420 Rivera Dr, Sacramento
✏️
🗳
Index
📋
Feed
👤
Profile
Clean — no prompts.
Copy Inventory

This table has moved. The authoritative copy inventory covering all flows A–F is in the Sign-Up & Auth Flows section → Master Copy Inventory — All Flows A–F.

QA Flow Map — All Flows to Test
Each row is a distinct path through the account system. Test every row independently in Build 90.
Flow Entry Point Steps Expected End State Key Things to Verify
A · Guest 1st tap (VOTD) Index · Vote card · Vote Now Tap Vote Now → overlay slides up Overlay: "Verify your number to continue" + Verify + Skip Message wording correct. "Verify" → /signup. "Skip for now" dismisses with no state change.
A · Guest 1st tap (vote item) Vote Item · Yes or No button Open vote item as guest → tap Yes or No Overlay rises over dimmed Yes/No buttons Yes/No dims to 25% opacity behind overlay. "Verify" → /signup. Tap scrim dismisses.
B · Guest 2nd+ tap Index · Vote Now (after prior skip) Skip overlay → tap Vote Now again same session Overlay: message in orange-dark "Voting requires phone verification." Only the message changes vs. A — buttons and skip link identical. Resets each session.
C · Full sign-up flow Any overlay "Verify" CTA → /signup Phone → OTP → Name → Address → USPS → Photo → app Profile: amber "Verifying" badge, address shown, no CTA C1 Phone: Send dims until 10 digits. Cancel → prior screen.
C2 OTP: Verify dims until all 6 digits. Sets phone_verified.
C3 Name: "Skip for now" → skip overlay (C3b). Continue dims until name filled.
C3b Skip overlay: "Complete now" stays on name. "Skip for now" advances to address anyway.
C4 Address: "Confirm" triggers USPS suggestion. Either path sets verifying.
C4b USPS: "Yes, use this" or "No, keep mine" — both save and advance to photo.
C5 Photo: "Remind me later" and "Add a photo" both land in app. Photo is optional.
D · Phone-verified votes (vote item) Vote Item · phone_verified user · Yes/No Tap Yes or No → skip overlay rises from bottom Overlay: "Complete Registration for votes to count and to see live results" — no skip link No skip link (unlike guest). "Complete Registration" → /address-setup. Tap scrim or back arrow dismisses.
D · Phone-verified votes (VOTD) VOTD overlay card · phone_verified user · voted Cast vote on VOTD → tally locked → "Finish Sign Up" shown Locked tally (no bar), nudge pushed down, "Finish Sign Up" CTA "Finish Sign Up" → /profile-setup (name screen), NOT phone screen. Returning from profile-setup restores voted state + tally + share panel.
E1 · Guest profile Profile tab · guest Tap Profile tab Full-screen: ballot emoji, "Make your voice count", Sign Up + Sign in link "Sign Up" → /signup. No profile card, no back arrow.
E2 · Phone-verified profile Profile tab · phone_verified Tap Profile tab Profile card: blue "Phone # Verified" badge + orange "Complete Registration" prompt "Complete Registration" → /address-setup. No address shown yet.
E3 · Verifying profile Profile tab · after address submitted Tap Profile tab Profile card: amber "Verifying" badge + address + "Matching your voter registration — votes are queued" No CTA — user has nothing left to do. No "Complete Registration" prompt.
E4 · Verified profile Profile tab · fully verified Tap Profile tab Profile card: orange "Voter Verified" badge + address — clean, no prompts No nudge, no orange prompt text. About / Votes / Follows tabs all present.
Profile · About tab reset Profile tab · any verified state Go to Votes or Follows tab → navigate away → return to Profile Always opens on About tab on re-focus useFocusEffect resets to About. Never remembers last visited sub-tab.
Profile · Follows tab starring Index · vote card dot-stack → Save/Follow Star a vote from index → open Profile → Follows tab Starred item appears in Follows — including items already voted on Previously, items with a cast vote were excluded. Now all starred items show regardless of voted status.
Vote Card

Vote of the Day — Card Comp

Orange family spectrum — ORANGE_DARK → ORANGE_LIGHT
ORANGE_DARK #A5411E L38% ORANGE #C85014 L43% VOTD top #E0782D L53% PEACH_DARK #D3794A L56% share (old) #E8873A L57% PEACH #E6A586 L71% PEACH_LIGHT #F7D0B4 L84% PEACH_CREAM #FFE9D6 L92% ORANGE_LIGHT #FFF1EA L96% L38% L96% ← lightness →
VOTD Card — current
8:50
▪▪📶🔋
✕
Vote of the Day
+
#7 in California 40.0K votes
Should California establish a statewide rent stabilization program?
22 days left
☆
↑
Housing
V
VOTD
AB 1017 would establish a statewide rent stabilization framework capping annual rent increases at 3% or the rate of CPI inflation — whichever is lower — for residential tenants in multi-family... Read more
Swipe up for open votes
Vote Now
Gradient: #E0782D → #C85014 (loc 0.65)
+ Share panel — current
8:50
▪▪📶🔋
✕
Vote of the Day
+
#7 in California 40.0K votes
Should California establish a statewide rent stabilization program?
22 days left
☆
↑
Housing
Vote Now
Tap to dismiss
Share your Voice
Share how I voted
Share this vote
𝕏
in
f
📷
✉
Share Now
Share: #E8873A → #C85014 ← mismatched top
+ Share panel — matched
8:50
▪▪📶🔋
✕
Vote of the Day
+
#7 in California 40.0K votes
Should California establish a statewide rent stabilization program?
22 days left
☆
↑
Housing
Vote Now
Tap to dismiss
Share your Voice
Share how I voted
Share this vote
𝕏
in
f
📷
✉
Share Now
Share: #E0782D → #C85014 — same as card
Feed — no overlay
feed
Feed screen — no share panel
Feed buttons — current #F8EFEA
feed current
Vote/Share CTAs: #F8EFEA (H30° — drifted)
Feed buttons — H20° corrected #FFF1EA
feed new
Vote/Share CTAs: #FFF1EA (H20° — brand axis)
Feed + share — current
feed
Tap to dismiss
Share your Voice
Share how I voted
Share this vote
𝕏
in
f
📷
✉
Share Now
Current: #E8873A → #C85014
Feed + share — VOTD matched
feed
Tap to dismiss
Share your Voice
Share how I voted
Share this vote
𝕏
in
f
📷
✉
Share Now
VOTD matched: #E0782D → #C85014

Share panel gradient explorations — A · A1 · A2 · B · C · D

VOTD tally — orange bg
Feed
A — new sheet design · VOTD card bg & feed bg
VOTD card bg
8:50
▪▪📶🔋
✕
Vote of the Day
+
#7 in California 40.0K votes
Should California establish a statewide rent stabilization program?
22 days left
☆
↑
Housing
Vote Now
Share This Vote
Should California establish a statewide rent stabilization program?
What to share
Share how I voted
Share the vote
See post preview
Pick your platforms
X
Instagram
TikTok
Facebook
WhatsApp
More
Share Now 2
Swipe up for open votes
Feed bg
feed
Share This Vote
Should California establish a statewide rent stabilization program?
What to share
Share how I voted
Share the vote
See post preview
Pick your platforms
X
Instagram
TikTok
Facebook
More
Share Now 2
Swipe up for open votes
A1 — H20° corrected, same depth   #E07840 → #C85014
#7 in California · 40.0K votes
Should California establish a statewide rent stabilization program?
👍 62% You voted Yes 38% 👎
24.8K Yes15.2K No
Tap to dismiss
Share your Voice
Share how I voted
Share this vote
𝕏
in
f
📷
✉
Share Now
feed
Tap to dismiss
Share your Voice
Share how I voted
Share this vote
𝕏
in
f
📷
✉
Share Now
A2 — lifted bottom, softer range   #E08A60 → #CC6830
#7 in California · 40.0K votes
Should California establish a statewide rent stabilization program?
👍 62% You voted Yes 38% 👎
24.8K Yes15.2K No
Tap to dismiss
Share your Voice
Share how I voted
Share this vote
𝕏
in
f
📷
✉
Share Now
feed
Tap to dismiss
Share your Voice
Share how I voted
Share this vote
𝕏
in
f
📷
✉
Share Now
B — mid-dark   #DC8F68 → #D3794A
#7 in California · 40.0K votes
Should California establish a statewide rent stabilization program?
👍 62% You voted Yes 38% 👎
24.8K Yes15.2K No
Tap to dismiss
Share your Voice
Share how I voted
Share this vote
𝕏
in
f
📷
✉
Share Now
feed
Tap to dismiss
Share your Voice
Share how I voted
Share this vote
𝕏
in
f
📷
✉
Share Now
C — mid   #E6A586 → #D3794A
#7 in California · 40.0K votes
Should California establish a statewide rent stabilization program?
👍 62% You voted Yes 38% 👎
24.8K Yes15.2K No
Tap to dismiss
Share your Voice
Share how I voted
Share this vote
𝕏
in
f
📷
✉
Share Now
feed
Tap to dismiss
Share your Voice
Share how I voted
Share this vote
𝕏
in
f
📷
✉
Share Now
D — mid-light   #F7D0B4 → #E6A586
#7 in California · 40.0K votes
Should California establish a statewide rent stabilization program?
👍 62% You voted Yes 38% 👎
24.8K Yes15.2K No
Tap to dismiss
Share your Voice
Share how I voted
Share this vote
𝕏
in
f
📷
✉
Share Now
feed
Tap to dismiss
Share your Voice
Share how I voted
Share this vote
𝕏
in
f
📷
✉
Share Now
Feed Screen
Splash

Splash — Star Position Comp

★ VOTD ™
Sacramento County
© 2026 VOTD, LLC. All rights reserved.

✕ Bug — builds before 48
Star is white on white — invisible

★ VOTD ™
Sacramento County
© 2026 VOTD, LLC. All rights reserved.

✓ Build 48 target
Star orange, centered above the V

Share
Share Poster · Square 1200×1200
Bright Top · Deep Base — approved gradient
Build a healthy
civic habit.
One vote. Every day.
Verified voters. Real results.
★ VOTD
vote of the day · votd.io
1200×1200px · shown at 40% scale · gradient #E8873A→#A5411E
Share Poster #0 Alt · Brand Awareness
Lunge / crescent pose icon (mirrored)
Build another
healthy habit.
A vote a day.
Verified voters. Real results.
★VOTD
vote of the day · votd.io
1200×1200px · shown at 40% scale · gradient #E8873A→#A5411E
Share Poster #1 · Share a Vote
Pre-vote · invite others to weigh in · tower bridge bg
#2 in Your Jurisdiction 3 days left
"Should lorem ipsum dolor sit amet, consectetur adipiscing elit eros a dictum iaculis?"
★VOTD
vote of the day · votd.io
1200×1200px · shown at 40% scale
Share Poster #2 · Promote the Vote
Chosen copy: What's your take?
#2 in Your Jurisdiction 3 days left
What's
your take?
"Should lorem ipsum dolor sit amet, consectetur adipiscing elit eros a dictum iaculis?"
★VOTD
vote of the day · votd.io
1200×1200px · shown at 40% scale
Share Poster #3 · Promote How You Voted
Post-vote · first-person declaration · YES / NO variants
Voted YES
#2 in Your Jurisdiction 3 days left
I voted yes on...
"Should lorem ipsum dolor sit amet, consectetur adipiscing elit eros a dictum iaculis?"
★VOTD
vote of the day · votd.io
Voted NO
#2 in Your Jurisdiction 3 days left
I voted no on...
"Should lorem ipsum dolor sit amet, consectetur adipiscing elit eros a dictum iaculis?"
★VOTD
vote of the day · votd.io
Also: "Vote Yes / No on" headline variant (without "I Just")

Share · Panel
Share This Vote
Should Sacramento ban single-use plastics?
What to share
Share how I voted
Share the vote
Pick your platforms
X
Instagram
TikTok
Facebook
WhatsApp
Email
More
Sharing to X and TikTok
Verified · 2 platforms selected
Share This Vote
Should Sacramento ban single-use plastics?
What to share
Share how I voted
Share the vote
Pick your platforms
X
Instagram
TikTok
Facebook
WhatsApp
Email
More
Select at least one platform
Phone-verified · nothing selected
══════════════════════════════════════════════════ GRADIENT TRANSPARENCY EXPLORATION Orange spectrum: #E8873A → #C85014, varying opacity Typography & buttons matched to votd.tsx share overlay (ss.*) Date: March 31, 2026 ═══════════════════════════════════════════════════
Exploration
Gradient + Transparency Variants
Orange spectrum gradient with transparency. Typography, toggle, platform icons, and CTA button now match the React Native share overlay in votd.tsx (ss.*) exactly.
March 31, 2026 · Updated to match RN code
Orange Family Spectrum (reference)
#A5411E L38% #C85014 L43% #E8873A L57% #E6A586 L71% #FFF1EA L96%
A · 93% Opacity
Current — nearly opaque
Share This Vote
Should California establish a statewide rent stabilization program?
Share how I voted
Share the vote
Preview Poster
Pick your platforms
X
Instagram
TikTok
Facebook
WhatsApp
More
Swipe up to dismiss
B · 82% Opacity
Subtle feed bleed-through
Share This Vote
Should California establish a statewide rent stabilization program?
Share how I voted
Share the vote
Preview Poster
Pick your platforms
X
Instagram
TikTok
Facebook
WhatsApp
More
Swipe up to dismiss
C · 70% + Blur
Frosted orange glass
Share This Vote
Should California establish a statewide rent stabilization program?
Share how I voted
Share the vote
Preview Poster
Pick your platforms
X
Instagram
TikTok
Facebook
WhatsApp
More
Swipe up to dismiss
D · Deeper 85%
#C85014 → #A5411E · richer
Share This Vote
Should California establish a statewide rent stabilization program?
Share how I voted
Share the vote
Preview Poster
Pick your platforms
X
Instagram
TikTok
Facebook
WhatsApp
More
Swipe up to dismiss
Gradient Specs
Variant Top Stop Bottom Stop Opacity Blur
A (current) #E8873A #C85014 93% none
B #E8873A #C85014 82% none
C (frosted) #E8873A #C85014 70% blur(24px) saturate(1.4)
D (deeper) #C85014 #A5411E 85% none
Against White
How the gradient reads over a white/light feed — tests contrast and warmth bleed.
B · 82% on White
Share This Vote
Should California establish a statewide rent stabilization program?
Share how I voted
Share the vote
Preview Poster
Pick your platforms
X
Instagram
TikTok
Facebook
WhatsApp
More
Swipe up to dismiss
C · 70% Blur on White
Share This Vote
Should California establish a statewide rent stabilization program?
Share how I voted
Share the vote
Preview Poster
Pick your platforms
X
Instagram
TikTok
Facebook
WhatsApp
More
Swipe up to dismiss
Against Orange
Gradient over an orange-tinted feed — tests if transparency muddies or enriches the hue.
B · 82% on Orange
Share This Vote
Should California establish a statewide rent stabilization program?
Share how I voted
Share the vote
Preview Poster
Pick your platforms
X
Instagram
TikTok
Facebook
WhatsApp
More
Swipe up to dismiss
C · 70% Blur on Orange
Share This Vote
Should California establish a statewide rent stabilization program?
Share how I voted
Share the vote
Preview Poster
Pick your platforms
X
Instagram
TikTok
Facebook
WhatsApp
More
Swipe up to dismiss
Component
Share Now · Button States
Three states wired to platform selection in the phones above. Tap platform icons to cycle through states.
Off · 0 platforms selected
bg rgba(0,0,0,0.22) · text rgba(255,255,255,0.50)
No badge · non-interactive
Active · 1+ platforms selected
bg #FFF1EA · text #C85014
Count badge · tappable
Pressed · on tap/mousedown
bg #FFD9BC · text #A5411E · scale 0.97
/gradient transparency exploration

Share · Personas
← Documentation Library
VOTD
Share Personas

Three share contexts × three outputs. Each persona drives a distinct message, share sheet state, and OG link preview. Open votes never show tallies to non-voters — the tally is the reward for casting a vote.

1
Share a Vote
Pre-vote · any user · invite others to weigh in
1
In-App Share Sheet
Share This Vote
Should California establish a statewide rent stabilization program?
What to share
Share the vote
Share how I voted
Pick your platforms
Share Now · 2
FieldValue
Variant"Share the vote" (only option pre-vote)
AccessAny user — guest, phone-verified, verified
Entry point↑ icon in feed card / vote-item header
2
Message Text
iMessage · X · WhatsApp
Today's vote: "Should California establish a statewide rent stabilization program?" — 2,847 people have weighed in. Where do you stand? votd.io/v/abc123
FieldValue
Hook"Today's vote:" — establishes daily rhythm
QuestionFull poll question in quotes
Social proofVote count ✓ — no tally, no percentages
CTA"Where do you stand?"
Linkvotd.io/v/[id]
Tally rule: Vote count shown (social proof), but no Yes/No percentages. Recipient hasn't voted yet.
3
OG Link Preview
What the recipient sees in iMessage
Should California establish a statewide rent stabilization program?
Today's Vote of the Day
VOTD
votd.io
Should California establish a statewide rent stabilization program?
Today's vote on VOTD. 2,847 people have weighed in — cast your vote and see where everyone stands.
OG fieldValue
og:titlePoll question
og:descVote count + invitation — no tally
og:imageOrange gradient + question text + "Today's Vote of the Day"
og:urlvotd.io/v/[id]
No tally in OG image. Open vote — percentages hidden until recipient votes.

2
Promote a Vote
Post-vote · anonymous variant · build momentum without revealing stance
1
In-App Share Sheet
Share This Vote
Should California establish a statewide rent stabilization program?
What to share
Promote the vote
Share how I voted
Pick your platforms
Share Now · 2
FieldValue
Variant"Promote the vote" — post-vote, no stance revealed
AccessAny verified voter (post-vote)
Entry pointShare sheet after voting, "Promote" tab
2
Message Text
iMessage · X · TikTok
I just voted on today's VOTD — "Should California establish a statewide rent stabilization program?" — 2,847 votes and counting. Cast yours: votd.io/v/abc123
FieldValue
Hook"I just voted on today's VOTD" — personal but neutral
QuestionFull poll question in quotes
Social proofVote count + "and counting" — momentum signal
StanceNot revealed
CTA"Cast yours:"
Tally rule: Vote count only — no Yes/No split. Recipient hasn't voted yet and shouldn't be influenced.
3
OG Link Preview
What the recipient sees in iMessage
Should California establish a statewide rent stabilization program?
2,847 votes cast · Voting open
VOTD
votd.io
Should California establish a statewide rent stabilization program?
2,847 votes cast on today's VOTD. Cast your vote and see where everyone stands.
OG fieldValue
og:titlePoll question
og:descVote count + "Cast your vote and see where everyone stands"
og:imageOrange gradient + question + vote count + "Voting open"
No tally in OG image. Still an open vote — percentages withheld until recipient votes.

3
Promote How I Voted
Post-vote · verified users only · personal civic statement
1
In-App Share Sheet
Share This Vote
Should California establish a statewide rent stabilization program?
What to share
Promote the vote
Share how I voted
Pick your platforms
Share Now · 3
FieldValue
Variant"Share how I voted" — verified only, stance revealed
AccessVoter Verified only
Entry pointShare sheet after voting, default tab for verified users
2
Message Text
iMessage · X · Instagram
I voted YES on today's VOTD — "Should California establish a statewide rent stabilization program?" — I'm with the 64% who agree. Where do you stand? votd.io/v/abc123
FieldValue
Hook"I voted YES/NO on today's VOTD" — personal, clear stance
QuestionFull poll question in quotes
TallySharer's side percentage shown — "I'm with the X% who agree/disagree"
CTA"Where do you stand?"
Tally rule: Only the sharer's side percentage shown ("64% who agree") — not the full split. Recipient still gets the payoff when they vote.
3
OG Link Preview
What the recipient sees in iMessage
Should California establish a statewide rent stabilization program?
👍 64% agree · 2,847 votes cast
VOTD
votd.io
Should California establish a statewide rent stabilization program?
64% of voters agree. Cast your vote on today's VOTD and see the full results.
OG fieldValue
og:titlePoll question
og:descSharer's side % + "Cast your vote to see full results"
og:imageOrange gradient + question + partial tally bar + sharer's side %
Partial tally only. Shows sharer's side % as a hook — full Yes/No split revealed only after recipient votes. Tally bar gives visual weight without spoiling the split.

+
Closed Vote — Tally Rule Exception
All personas · vote closed · full results always shown
Once a vote closes, the tally restriction lifts. All three personas can show the full Yes/No split in the message and OG card — because there's no voting left to influence.

Closed OG description example: "Final results: 64% Yes · 36% No · 2,847 votes cast. See the full breakdown on VOTD."

Closed OG image: Orange gradient + question + full tally bar (Yes/No split) + "Final Results" label.

Share · All
VOTD ← Docs
Tier 0 — Default OG Poster
Share Personas
Share Panel
POSTER PANEL
← Docs Share Personas Share Panel
Square — 1200×1200 · Social / Instagram
Build a healthy
civic habit.
One vote. Every day.
Verified voters. Real results.
★ VOTD
vote of the day · votd.io
Share
Your Voice.
Daily votes. Verified voters.
Stand up and be counted.
★ VOTD
vote of the day · votd.io
Square format · 1200×1200px · shown at 40% scale
PERSONAS PANEL
← Documentation Library
VOTD
Share Personas

Three share contexts × three outputs. Each persona drives a distinct message, share sheet state, and OG link preview. Open votes never show tallies to non-voters — the tally is the reward for casting a vote.

1
Share a Vote
Pre-vote · any user · invite others to weigh in
1
In-App Share Sheet
Share This Vote
Should California establish a statewide rent stabilization program?
What to share
Share the vote
Share how I voted
Pick your platforms
Share Now · 2
FieldValue
Variant"Share the vote" (only option pre-vote)
AccessAny user — guest, phone-verified, verified
Entry point↑ icon in feed card / vote-item header
2
Message Text
iMessage · X · WhatsApp
Today's vote: "Should California establish a statewide rent stabilization program?" — 2,847 people have weighed in. Where do you stand? votd.io/v/abc123
FieldValue
Hook"Today's vote:" — establishes daily rhythm
QuestionFull poll question in quotes
Social proofVote count ✓ — no tally, no percentages
CTA"Where do you stand?"
Linkvotd.io/v/[id]
Tally rule: Vote count shown (social proof), but no Yes/No percentages. Recipient hasn't voted yet.
3
OG Link Preview
What the recipient sees in iMessage
Should California establish a statewide rent stabilization program?
Today's Vote of the Day
VOTD
votd.io
Should California establish a statewide rent stabilization program?
Today's vote on VOTD. 2,847 people have weighed in — cast your vote and see where everyone stands.
OG fieldValue
og:titlePoll question
og:descVote count + invitation — no tally
og:imageOrange gradient + question text + "Today's Vote of the Day"
og:urlvotd.io/v/[id]
No tally in OG image. Open vote — percentages hidden until recipient votes.

2
Promote a Vote
Post-vote · anonymous variant · build momentum without revealing stance
1
In-App Share Sheet
Share This Vote
Should California establish a statewide rent stabilization program?
What to share
Promote the vote
Share how I voted
Pick your platforms
Share Now · 2
FieldValue
Variant"Promote the vote" — post-vote, no stance revealed
AccessAny verified voter (post-vote)
Entry pointShare sheet after voting, "Promote" tab
2
Message Text
iMessage · X · TikTok
I just voted on today's VOTD — "Should California establish a statewide rent stabilization program?" — 2,847 votes and counting. Cast yours: votd.io/v/abc123
FieldValue
Hook"I just voted on today's VOTD" — personal but neutral
QuestionFull poll question in quotes
Social proofVote count + "and counting" — momentum signal
StanceNot revealed
CTA"Cast yours:"
Tally rule: Vote count only — no Yes/No split. Recipient hasn't voted yet and shouldn't be influenced.
3
OG Link Preview
What the recipient sees in iMessage
Should California establish a statewide rent stabilization program?
2,847 votes cast · Voting open
VOTD
votd.io
Should California establish a statewide rent stabilization program?
2,847 votes cast on today's VOTD. Cast your vote and see where everyone stands.
OG fieldValue
og:titlePoll question
og:descVote count + "Cast your vote and see where everyone stands"
og:imageOrange gradient + question + vote count + "Voting open"
No tally in OG image. Still an open vote — percentages withheld until recipient votes.

3
Promote How I Voted
Post-vote · verified users only · personal civic statement
1
In-App Share Sheet
Share This Vote
Should California establish a statewide rent stabilization program?
What to share
Promote the vote
Share how I voted
Pick your platforms
Share Now · 3
FieldValue
Variant"Share how I voted" — verified only, stance revealed
AccessVoter Verified only
Entry pointShare sheet after voting, default tab for verified users
2
Message Text
iMessage · X · Instagram
I voted YES on today's VOTD — "Should California establish a statewide rent stabilization program?" — I'm with the 64% who agree. Where do you stand? votd.io/v/abc123
FieldValue
Hook"I voted YES/NO on today's VOTD" — personal, clear stance
QuestionFull poll question in quotes
TallySharer's side percentage shown — "I'm with the X% who agree/disagree"
CTA"Where do you stand?"
Tally rule: Only the sharer's side percentage shown ("64% who agree") — not the full split. Recipient still gets the payoff when they vote.
3
OG Link Preview
What the recipient sees in iMessage
Should California establish a statewide rent stabilization program?
👍 64% agree · 2,847 votes cast
VOTD
votd.io
Should California establish a statewide rent stabilization program?
64% of voters agree. Cast your vote on today's VOTD and see the full results.
OG fieldValue
og:titlePoll question
og:descSharer's side % + "Cast your vote to see full results"
og:imageOrange gradient + question + partial tally bar + sharer's side %
Partial tally only. Shows sharer's side % as a hook — full Yes/No split revealed only after recipient votes. Tally bar gives visual weight without spoiling the split.

+
Closed Vote — Tally Rule Exception
All personas · vote closed · full results always shown
Once a vote closes, the tally restriction lifts. All three personas can show the full Yes/No split in the message and OG card — because there's no voting left to influence.

Closed OG description example: "Final results: 64% Yes · 36% No · 2,847 votes cast. See the full breakdown on VOTD."

Closed OG image: Orange gradient + question + full tally bar (Yes/No split) + "Final Results" label.
PANEL PANEL
Share This Vote
Should Sacramento ban single-use plastics?
What to share
Share how I voted
Share the vote
Pick your platforms
X
Instagram
TikTok
Facebook
WhatsApp
Email
More
Sharing to X and TikTok
Verified · 2 platforms selected
Share This Vote
Should Sacramento ban single-use plastics?
What to share
Share how I voted
Share the vote
Pick your platforms
X
Instagram
TikTok
Facebook
WhatsApp
Email
More
Select at least one platform
Phone-verified · nothing selected