v1.3.5 โ€” May 2026
๐Ÿ“‹ Overview

Ovia Health Rebrand Design System

A single reference for designers, developers, QA, and marketing. Tool-agnostic. Covers primitives, components, content blocks, and screens โ€” organized from smallest to largest.

28
Color Tokens
Stable โ€” no additions this iteration
23
Type Styles
App ramp + Em variants
35+
Components
Across 7 groups
2
Platforms
iOS + Android
Key Principles

Source of truth rule: Nothing enters this system without a confirmed source โ€” Figma node extraction, direct observation, or explicit statement from Ovia product design. No inferences. Anything marked TBD is confirmed to exist but not yet documented. TBD does not mean open to interpretation.

Friday Sync: Any decision not covered by this documentation requires Friday Sync approval before implementation. This includes new color combinations, new component states, and anything outside the documented palette.

Glom legacy colors: The app was built as a merge of multiple products (Glom) with yellow/gold for fertility and teal for pregnancy. All Glom theme colors are being replaced by rebrand tokens. Check for Glom colors on every component you touch.

๐Ÿ—‚๏ธ Figma

Figma File Structure

The working file is the single source of truth. File: OVIA - Rebrand Q1 2026. Six top-level sections, each serving a specific audience.

SectionPagesPrimary Audience
1 โ€” Document InformationCover, Info + Change LogAll
2 โ€” App SectionsRegistration, Homepage, More + Profile, Ovia+, Calendar + DLP, Global Elements, WebDevelopers, QA, PMs
3 โ€” Design SystemComponents (v0.6), Master Rebrand Color ListDesigners, Developers, QA
4 โ€” Design UtilitiesAssets, Documentation Components, Legacy Tokens, NotesDesigners
5 โ€” Design ArchiveMirrors App Sections structureDesigners, QA, Branding
6 โ€” Jira TicketsClosed tickets (reference only)Archive
โ„น๏ธVersion numbers on page names (e.g. v0.6) reflect when that page was last formally updated. A โœ… emoji indicates brand + dev approval. Friday versions are the official sanctioned reference โ€” devs and QA should always work from the Friday version, not mid-week WIP.
๐ŸŽจ Primitives

Color Tokens

All colors are extracted from the Figma paint styles export. The palette is stable โ€” no new colors will be added this iteration. Apply by Figma style name only, never by hex value directly.

โš ๏ธKnown Issue โ€” Royal 60 = Royal 80: Both resolve to #212AAE. Likely a Figma data entry error. Do not use Royal 80 in design. Use Royal 60 only.
โš ๏ธKnown Issue โ€” Royal 30 = Midnight 10: Both resolve to #B6BAF1. Known artifact of extracting a print palette for digital. Use whichever name is already in the component you're working on.
Core Neutrals
Charcoal
#231F20
Text on surfaces; status bar; home indicator; modal body text; data category item labels; bottom nav label text (all states)
White
#FFFFFF
CTA button text; form field backgrounds; modal card backgrounds (Side-by-Side, Stacked Buttons); bottom nav bar background; calendar date pill background
Form White
#FAFAFC
Registration form screen backgrounds
Seashell
#FFFCFC
Calendar Tertiary button bg (Conditional/Disabled); Bulk Edit gradient endpoint; bottom nav bar base on Ovia+ variant
Gray Scale
Gray 10
#F4F4F4
Disabled field fill; button Conditional/Disabled fill; Data Category Icon container (no data = off state); platform tab selector background
Gray 20
#E0E0E0
Button Disabled border; calendar day top bar (no data logged); More List Item divider; bottom nav separator line; iOS Glass tab bar icon container; data section row separator
Gray 30
#C6C6C6
Button Disabled label text; modal card border (Side-by-Side, Stacked Buttons); modal dividers (stacked buttons); bottom nav inactive icon (free app); bottom nav background image border
Gray 40
#929292
Disabled field border; disabled label color; bottom nav inactive icon + label (Ovia+ and iOS Glass variants); iOS Glass tab bar inactive color
Gray 50
#787878
Form field placeholder text; calendar day top bar text (off state); legacy data icon color (off/no-data state); calendar date number (future dates: Royal 50 preferred โ€” Gray 50 as fallback); data category label text (off state)
Gray 60
#5E5E5E
Button Conditional label (Default theme); data category label text (category name โ€” always Gray 60); More List subtext
Gray 70
#444444
Button Conditional border (Registration CTA)
Royal (Blue Scale)
Royal
#1A2188
CTA button fill; carousel dots; iOS focus border; Calendar selected day border (3px solid); Android tab active underline; modal Cancel/primary button text; Bulk Edit button border; legend action button border
Royal 00
#EEECF2
Button hover background
Royal 10
#ECEDF9
Android radio button selected card background; design system sidebar active link background
Royal 20
#DBDDF8
Radio button fill (selected)
Royal 30 / Midnight 10
#B6BAF1
โš ๏ธ Duplicate hex
Royal 40
#9298EA
Rebrand calendar day icon color variant; iOS Glass accent (exploratory)
Royal 50
#4953DC
Button Pressed/Down (Registration theme); calendar date number โ€” future dates color
Royal 60
#212AAE
โš ๏ธ Duplicate of Royal 80 โ€” use Royal 60 only. Not yet actively used in documented components.
Royal 70
#5A5E9A
Design system sidebar section label color; nav group header text
Midnight (Dark Blue)
Midnight
#131967
iOS field border (idle); Default CTA fill; Android label; radio selected border; modal headline text; modal No Buttons header bar background; Bulk Edit CTA button fill (CTA variant)
Midnight 10
#B6BAF1
Button Pressed/Down (Default theme)
Midnight 30
#5B64E1
Calendar pill labels; design system sidebar section labels
Pink Family
Fuchsia
#E33E69
Calendar Tertiary button border (Available); Calendar Month Nav Bar background; Fuchsia-state icon color (all legacy data icons when on=true); fertile window dashed border (Legacy/Pregnancy theme); active tab icon color (bottom nav); legend action button border; data category icon container (Fuchsia icon color when on=true)
Fuchsia 80
#E7577D
Android FAB button background
Fuchsia 90
#F62467
Ovia logo mark (SVG); Calendar day top bar (data recorded state); fertile window dashed border (Rebrand theme); Bulk Edit button border (Tertiary variant)
Fuchsia 100
#BF1B47
Form cursor; required asterisk โญ‘; legacy period icon color (Fuchsia 100); legacy data icon period/ovulation fills; Preg - Weeks Pregnant text color
Blush
#F8A4B2
Carousel image circle bg; Calendar Tertiary hover; FAB menu icon circles (Android)
Blush 20
#FEF4F5
Splash Screen background; Calendar Tertiary Available fill; fertile window day cell background; Calendar Legend action button fill; Data Category Icon container (on=true state = data entered); iOS Glass tab bar active tab pill background; Bulk Edit Blush 20 proposal background
Rose
#F7758C
Calendar Tertiary Pressed/Down fill; Ring Progress Chart arc; Ovia+ Small Card background
Rose 30
#FCCBD4
Calendar Tertiary Conditional border
Feedback
Error
#D0021B
Error field border; error icon + text; destructive modal action button text color (e.g. "Reset my pregnancy checklist"). Only defined feedback color โ€” no Warning, Success, or Info yet.
โœ๏ธ Primitives

Typography

The type ramp is locked to iOS implementation constraints. Do not introduce new sizes, weights, or typefaces. Line height values are fixed and must not be overridden.

โ„น๏ธEm styles: Emphasis styles are semi-bold weight, not bold. Cmd+B produces bold โ€” that is wrong. Always apply by selecting the named Em style from the Figma text styles panel. Developers must implement Em styles as distinct tokens, not as a bold modifier.
Typefaces
TypefaceDomain
Source Serif ProDisplay and headline text (confirmed: Registration splash screen title)
Source Sans ProUI text โ€” body, labels, buttons, captions
Ubuntu Sans MonoDesign documentation only. Does not appear in product UI.
App Type Ramp โ€” Standard Styles
Large TitleNo Em variant
Large Title
34 / 41
Title 1Source Serif Pro โ€” Bold on splash
What's your first name?
28 / 34
Title 2
Title 2
22 / 28
Title 3 Em
Title 3
20 / 25
Headline
Headline (17pt โ€” same size as Body, distinct style)
17 / 22
Body Em
Body text โ€” user input, primary content
17 / 22
Callout Em
Splash subtitle; contextual text; form labels (iOS)
16 / 21
Subhead Em
Subhead โ€” Action Sheet option titles (iOS)
15 / 20
Footnote Em
Option descriptions; button labels (Medium 32)
13 / 18
Caption 1 Em
Helper text; Android label (active/small)
12 / 16
Caption 2
Caption 2
11 / 13
Menu Label Em
Menu Label
10 / 12
Button Label Style

Button labels use Source Sans Pro SemiBold (weight 600) at 17pt. Maps to Headline size/line height but at SemiBold weight.

Create account
SemiBold ยท 17 / 22 ยท Registration 48
๐Ÿงฉ Component

Form Input โ€” Text

Text input fields for registration forms. Two platform-specific implementations with different structural patterns. Both use Form White as the screen background.

iOS โ€” All States
Default / Idle
Form label
Placeholder text
Focused
Form label
Value (Blurred)
Form label
Linda
Required + Helper
Form label โญ‘(required)
Placeholder text
Helper text
Error
Form label
Linda
Error text
Disabled
Form label
StateField BGBorderLabel ColorNotes
Default / Idle#FFFFFFMidnight 1pxMidnightโ€”
Focused#FFFFFFRoyal 3px bottom / 1px otherMidnightCursor: Fuchsia 100 #BF1B47, 1px
Blurred (value)#FFFFFFMidnight 1pxMidnightValue text: Charcoal
Error#FFFFFFError 1pxMidnightError text + icon below field
DisabledGray 10Gray 40 1pxGray 40No content shown
Android โ€” All States (Floating Label Pattern)
Default / Idle
Form label
Focused
Form label
Value (Blurred)
Form label
Linda
Error
Form label
Error text
Disabled
Form label
โ„น๏ธAndroid uses a floating label pattern โ€” the label lives inside the field and compresses to Caption 1 (12pt) when focused or filled. iOS keeps the label above the field at full size throughout. Both use the same cursor color (Fuchsia 100) and same focus border treatment (3px bottom, 1px sides).
iOS vs. Android โ€” Key Differences
PropertyiOSAndroid
Width396px375px
Field height (no helper)75px56px (fixed)
Label positionAbove field (always)Inside field, floats on focus
Label idle styleEm Callout SemiBold 16ptEm Body SemiBold 17pt
Label active styleUnchangedEm Caption 1 SemiBold 12pt
Border (idle)MidnightRoyal
Border (focused)Royal 3px bottomRoyal 3px bottom
CursorFuchsia 100 ยท 1pxFuchsia 100 ยท 1.5px
Disabled bgGray 10 ยท Gray 40 borderGray 10 ยท Gray 40 border
Border radius12px12px
Padding (H / V)16px / 14px16px / 8px
๐Ÿงฉ Component

Buttons

Three themes โ€” Registration (pill), Default (rounded rect), Calendar (rounded rect, pink family). Five states per variant. All button labels use Source Sans Pro SemiBold.

Registration Theme โ€” Pill (28px radius)
Used on splash screen and registration forms

The defining visual of registration buttons. Full pill shape distinguishes them from all other app buttons. Two sizes: Registration 48 (primary) and Registration 40 (compact).

CTA โ€” Registration 48
Available
Hover
Pressed
Conditional
Disabled
Secondary (Outline) โ€” Registration 48
Available
Hover
Disabled
โ„น๏ธThe Conditional state (CTA: gray fill, gray border) is used in the registration nav "Next" button when required fields are incomplete. It is not Disabled โ€” interaction behavior should be confirmed with the dev team.
Default Theme โ€” Rounded Rect (6px radius)
Used throughout general app; "Next" button in registration nav
CTA โ€” Large 50
Available
Hover
Pressed
Conditional
Disabled
SizeHeightRadiusLabel Style
Large 5050px6pxSemiBold 16pt / 21
Medium-Large (44)44px6pxSemiBold 16pt / 21 โ€” iOS min tap target
Medium-Plus 4040px6pxSemiBold 16pt / 21
Medium 3232px6pxSemiBold 13pt / 18
๐Ÿงฉ Component

Goal Selection

Platform-specific selection patterns for the registration goal screen. iOS uses the Action Sheet; Android uses Radio Buttons. Same content, different interaction affordances.

iOS โ€” Action Sheet
โ„น๏ธiOS does not natively support radio buttons. The Action Sheet is used as an alternative. Developer decision driven by platform constraints.
You can change this at any time.
Tracking my cycle and health
Better understand your body by tracking your period, birth control, and health symptoms
Trying to conceive
Track your fertility and ovulation, with daily health tips and advice.
Tracking my pregnancy
Watch your baby's weekly growth and learn what to expect throughout your pregnancy.
Navigating postpartum
Track your recovery after birth and learn what to expect in the first year.
Managing peri/menopause
Track your symptoms and get personalized feedback.
ElementTokenNotes
Row backgroundWhiteBoth selected and unselected
Row dividerCharcoal0.333px bottom (hairline)
Option titleCharcoalEm Subhead SemiBold 15pt / 20
Option descriptionCharcoalFootnote Regular 13pt / 18
Selected indicatorโ€”ic_checkmark_thick 16px ยท placeholder pending icon system
Container radiusโ€”14px
Android โ€” Radio Button Cards
Primary goal โญ‘(required)
You can change this anytime
Tracking my cycle and health
Better understand your body by tracking your period, birth control, and health symptoms.
Trying to conceive
Track your fertility and ovulation, with daily health tips and advice.
Tracking my pregnancy
Watch your baby's weekly growth and learn what to expect throughout your pregnancy.
Navigating postpartum
Track your recovery after birth and learn what to expect in the first year.
Managing peri/menopause
Track your symptoms and get personalized feedback.
StateCard BGCard BorderRadio Icon
UnselectedWhiteNoneic_bc_circle โ€” placeholder
SelectedRoyal 10Midnight 1pxic_radio_filled โ€” placeholder
โš ๏ธBoth radio icons (ic_bc_circle for unselected, ic_radio_filled for selected) are repurposed placeholder icons pending the final rebrand icon set.
๐Ÿ“ฑ Screen

Registration โ€” Splash Screen

First screen a new user sees. Introduces the brand, shows a carousel of content slides, and presents two primary actions. iOS and Android variants โ€” layout identical, platform chrome differs.

โ†ฉ๏ธLegacy swap: Background was Peach 30 #FFD2C5. Now Blush 20 #FEF4F5. CTA button was Blueberry 100 #0B3B60. Now Royal #1A2188.
Color Summary
ElementTokenHex
Screen backgroundBlush 20#FEF4F5
Logo markFuchsia 90#F62467
Logo wordmarkWhite#FFFFFF
Slide titleCharcoal#231F20
Carousel image circleBlush#F8A4B2
Carousel dot โ€” activeRoyal#1A2188
CTA button fillRoyal#1A2188
CTA button textWhite#FFFFFF
Secondary button stroke + textRoyal#1A2188
Platform lower controlCharcoal#231F20
๐Ÿ“ฑ Screens

Registration โ€” Form Screens

These screens have been designed but have not yet gone through the formal documentation process. Extraction and documentation pending.

Pending formal extraction

  • iOS Birthday Selection (4883:75339)
  • Android Birthday (4883:76445)
  • iOS Multiday Calendar / Period (4881:75001)
  • Android Multiday Calendar (4883:76453)
  • iOS Terms & Conditions (4897:99915)
  • Android Terms & Conditions (4897:100006)
  • iOS Email Verification (4907:23316)
  • Android Email Verification (4907:23832)
  • iOS Goal Selection (4897:99403)
  • Android Goal Selection (4897:99509)
  • iOS + Android Tooltip (4907:23971)
โ™ฟ Reference

Contrast Pairings

WCAG 2.1 verified pairings. Normal text AA: 4.5:1 minimum. Large text AA: 3:1 minimum. When a combination is not listed, do not assume it is approved โ€” bring to Friday Sync.

Approved Pairings โ€” Pass AA Normal + Large
BackgroundTextRatioAAAAA
MidnightBlush8.03:1โœ“โœ“
MidnightGray 309.56:1โœ“โœ“
WhiteRoyal12.99:1โœ“โœ“
WhiteCharcoal15.12:1โœ“โœ“
Blush 20Charcoal16.3:1โœ“โœ“
Blush 20Royal12.06:1โœ“โœ“
Form WhiteRoyal12.46:1โœ“โœ“
Form WhiteMidnight14.78:1โœ“โœ“
Form WhiteCharcoal15.64:1โœ“โœ“
Restricted Pairings โ€” Fail AA Normal Text
BackgroundTextRatioNormal AALarge AA
WhiteFuchsia4.07:1โœ—โœ“
WhiteGray 403.11:1โœ—โœ“
WhiteRose2.67:1โœ—โœ—
WhiteFuchsia 803.47:1โœ—โœ“
WhiteFuchsia 1006.06:1โœ“โœ“
โ†ฉ๏ธ Reference

Legacy Swap Map

Old Glom-era and pre-rebrand color names mapped to their rebrand replacements. Developers working on the Android codebase (~13 years old) and iOS should reference this for all token replacements.

โš ๏ธDeprecated token flag: Any legacy color not listed here, including Gray 8 #F3F1F0 (old input form fill), is deprecated and should not appear in any current implementation. Flag any unlisted legacy color to the senior designer.
Registration โ€” Splash Screen
ElementLegacy NameLegacy HexRebrand TokenRebrand Hex
Screen backgroundPeach 30#FFD2C5โ†’Blush 20#FEF4F5
Carousel image circlePeach 60#EB897Aโ†’Blush#F8A4B2
CTA button fillBlueberry 100#0B3B60โ†’Royal#1A2188
Secondary button stroke + textNeutral White 100#FFFFFFโ†’Royal#1A2188
Most text on surfacesBlueberry 100#0B3B60โ†’Charcoal#231F20
Registration โ€” Form Screen Background
Legacy NameLegacy HexRebrand TokenRebrand Hex
Peach 10#FEF1ECโ†’Form White#FAFAFC
๐Ÿงฉ Component

Profile Picture

Displays the user's profile avatar with an add/edit affordance. Used at the top of the Profile screen within the More section. Background is always Blush 20.

Default State
[Add/Edit] photo
Background
Blush 20 โ€” #FEF4F5
Avatar size
88 ร— 88px
Avatar fill
Midnight โ€” #131967
Label style
Em Callout โ€” Source Sans Pro SemiBold 16/21
Label color
Charcoal โ€” #231F20
Container padding
20px top/bottom
Gap (avatar โ†’ label)
12px
Width
Full width (375px on iOS)
โ„น๏ธ This component always sits directly below the App Header on the Profile screen. It is not reused on other screens in the current design scope.
๐Ÿงฉ Component

Category Label

A full-width section divider that separates content groups on list-style screens. Uses Blush as background. Can optionally include an info icon (โ“˜) for contextual tooltips.

Variants
Label Only
GOAL MANAGEMENT
Label + Info Icon
MY CYCLE & HEALTH
โ“˜
Height
36px
Background
Blush โ€” #F8A4B2
Text style
Em Caption 1 โ€” Source Sans Pro SemiBold 12/16
Text color
Charcoal โ€” #231F20
Padding
8px top/bottom, 12px left/right
Info icon color
Midnight โ€” #131967
Info icon size
16px
Width
Full width (375px on iOS)
Usage in Profile Screen

Five Category Labels appear in the Profile screen, each marking a new data section:

GOAL MANAGEMENT
Top of goal section
MY CYCLE & HEALTH
Cycle settings
PERSONAL INFO
Name, email, DOB etc.
MY HEALTHCARE INFO
Doctor, hospital
MY PARTNER
Partner details
๐Ÿงฉ Component

More List Item

The primary row component for the More section. Supports two layouts (label only vs. label + subtext) and four right-side controls: None, Directional Arrow, Toggle Off, and Toggle On. Three interaction states: Available, Hover, and Pressed/Down.

Layout: Label Only
None โ€” Available
More list item
โ“˜
Arrow โ€” Available
More list item
โ“˜
โ€น
Toggle Off โ€” Available
More list item
โ“˜
Toggle On โ€” Available
More list item
โ“˜
Arrow โ€” Hover
More list item
โ€น
Arrow โ€” Pressed
More list item
โ€น
Layout: Label + Subtext
Arrow โ€” Available
Birth control method
Combination Pill
โ€น
Arrow + Crown โ€” Available
My Ovia+ benefits
Ovia+ member โ™›
โ€น
No Control โ€” Available
Health conditions
3 selected
Specs
Height โ€” Label Only
49px
Height โ€” Label + Subtext
79px (padding: 4px top / 9px bottom)
Background โ€” Available
White โ€” #FFFFFF
Background โ€” Hover
Gray 10 โ€” #F4F4F4
Background โ€” Pressed
Rose 30 โ€” #FCCBD4
Border (bottom)
1px Gray 20 โ€” #E0E0E0 (hover/pressed: Gray 10)
Left padding
12px
Label style
Em Body โ€” Source Sans Pro SemiBold 17/22
Label color
Charcoal โ€” #231F20
Subtext style
Callout โ€” Source Sans Pro Regular 16/21
Subtext color
Gray 60 โ€” #5E5E5E
Info icon color
Royal โ€” #1A2188
Chevron color
Gray 50 โ€” #787878
Toggle Off color
Gray 50 โ€” #787878
Toggle On color
Royal โ€” #1A2188
Toggle size
51 ร— 31px, radius 48px
Knob size
27 ร— 27px
Width
Full width (375px on iOS)
๐Ÿงฉ Component

More List Group Button

A paired action element used alongside grouped list rows. Appears as a narrow right-side column that acts as a single tap target for an entire group. Three types: Settings Button (full width), Group Button (48px wide, white), and Group Ovia+ (48px wide, Fuchsia โ€” Ovia+ subscribers only).

Type: Settings Button (Full Width)
โš™ Settings
โ€น
Width
Full (375px)
Height
50px
Background
Blush 20 โ€” #FEF4F5
Text + icon
Callout Regular 16/21 โ€” Charcoal
Icon
Settings glyph (Ovuline font)
Type: Group Button + Group Ovia+

These are 48px-wide columns that sit to the right of a grouped list, spanning its full height. The chevron indicates all rows in the group navigate together. Ovia+ variant uses Fuchsia fill to signal premium status.

Group Button
โ€น
Group Ovia+
โ€น
Width
48px
Height
Matches grouped list height (spans all rows)
Group Button bg
White โ€” #FFFFFF
Ovia+ bg
Fuchsia โ€” #E33E69
Border
1px Gray 20 โ€” #E0E0E0 (bottom + left)
Chevron color
Gray 50 / White (Ovia+)
๐Ÿ“ฑ Screen

More โ€” Profile

The Profile screen is accessed via More โ†’ Profile. It is a long scrollable screen organized into five data sections. It was the first screen designed within the legacy app context. Components used here are reused throughout other More screens.

๐Ÿ“ First Legacy App Screen: This was the first rebranded screen designed within the existing Ovia app shell. Many of the components documented in this section were originated here and will be reused across other More screens.
9:41
โ€น Back
Name's Profile
Log out
[Add/Edit] photo
GOAL MANAGEMENT
I amโ€ฆ
โœ“
tracking my cycle
trying to conceive
tracking my pregnancy
postpartum
managing peri/menopause
Show fertility content
โ“˜
Birth control method
Combination Pill
โ€น
MY CYCLE & HEALTH
Cycle type
Regular
Full cycle length
28 days
Period length
5 days
โ€น
Health conditions
3 selected
โ€น
Report a loss
โ€น
I'm pregnant
PERSONAL INFO
First name
Sarah
Last name
Marcus
Email
Sarah.Marcus@gmail.com
Date of birth
January 25, 1980
Postal code
(optional)
โ€น
MY HEALTHCARE INFO
My Ovia+ benefits
Ovia+ member โ™›
โ€น
Doctor/healthcare provider
Dr. Alan Van Kessel M.D.
Hospital
Bakersfield Memorial Hospital
โ€น
MY PARTNER
Partner's first name
Barnaby
Partner's email
BarnabyJones@gmail.com
โ€น
โš™ Settings
โ€น
Screen Structure
#SectionComponents
1Status Bar + App HeaderiOS Status Bar, App Header
2Profile PictureProfile Picture Component
3Goal ManagementCategory Label, Goal Selection buttons
4Fertility toggleMore List Item โ€” Toggle
5Birth controlMore List Item โ€” Arrow + Subtext
6My Cycle & HealthCategory Label, Grouped List + Group Button
7Health conditionsMore List Item โ€” Arrow + Subtext
8Report a lossMore List Item โ€” Arrow
9I'm pregnant CTAPrimary button (Midnight fill)
10Personal InfoCategory Label, Grouped List + Group Button
11My Healthcare InfoCategory Label, Ovia+ benefits row, Grouped List + Ovia+ Group Button
12My PartnerCategory Label, Grouped List + Group Button
13SettingsMore List Group Button โ€” Settings type
14LegalPrivacy Policy + Terms of Use links
15FooterOvia apps CTA, social icons, Labcorp attribution
Screen Background
Page bg
Blush 20 โ€” #FEF4F5
List item bg
White โ€” #FFFFFF
Category labels
Blush โ€” #F8A4B2
Goal section bg
Blush 20 โ€” #FEF4F5
Footer bg
Blush 20 โ€” #FEF4F5
Ovia+ Indicators

Two Ovia+ touchpoints appear on this screen:

My Ovia+ benefits row โ€” subtext includes crown icon (โ™›) in Fuchsia to indicate active membership
Healthcare info group action โ€” Group Ovia+ button (Fuchsia fill) signals this section requires Ovia+ to edit
๐Ÿ”— Figma reference: Node 183-29121 โ€” More Layout (Full Profile screen). Components: Profile Picture 183-509, Category Label 183-27332, More List Item 183-27466, More List Group Button 183-28616.
๐Ÿงฉ Component

Ovia+ Small Card

A compact content card used in horizontal carousels throughout the Ovia+ section. Combines a cropped photo header with a short text label. Used in both the Care Team services carousel and the My Benefits carousel.

Default
๐Ÿคฑ
Finding the right Breast Pump
๐ŸŒฟ
Alternative therapy benefits
๐Ÿง 
Autism spectrum
Width ร— Height
120 ร— 135px
Border radius
10px (all corners); image top corners only
Background
Rose 30 โ€” #FCCBD4
Image area height
75px (56% of card)
Label style
Footnote โ€” Source Sans Pro Regular 13/18
Label color
Charcoal โ€” #231F20
Label padding
4px left/right, 12px bottom
Label alignment
Center
Image fit
Cover (cropped, fills container)
Usage: Horizontal Carousel

Cards are arranged in a horizontally scrollable carousel with 16px gap. On 375px screens, ~3 cards are visible at a time. The carousel overflows the 12px page padding on both carousels in the Ovia+ screen.

๐Ÿ“ Used in two places on the Ovia+ screen: Care Team Services (care coaching topics) and My Benefits (Labcorp-linked benefits).
๐Ÿงฉ Component

Health Profile Question Card

A white card that represents a single health profile question or screener. The left side shows the question title and a retake link. If the question has been completed, the right side shows a Midnight checkmark bullet and a timestamp. Incomplete questions omit the right side entirely.

Completed State (with timestamp)
Mental health screener
Last taken Jan 1, 2026
Health assessment
Last taken Jan 1, 2026
Incomplete State (no timestamp)
Health conditions
Specs
Width
Full width (346px within 12px page padding)
Padding
8px top/bottom, 16px left/right
Background
White โ€” #FFFFFF
Border radius
10px
Title style
Em Subhead โ€” Source Sans Pro SemiBold 15/20
Title color
Charcoal โ€” #231F20
Link style
Em Subhead โ€” 600 weight, underlined
Link color
Royal โ€” #1A2188
Gap (title โ†’ link)
2px
Checkmark bullet
14 ร— 14px, Midnight fill, 7px radius
Checkmark icon
โœ“ white, 8px
Timestamp style
Caption 1 โ€” Source Sans Pro Regular 12/16
Timestamp color
Charcoal โ€” #231F20
Right column width
130px, right-aligned
๐Ÿงฉ Component

Ring Progress Chart

A circular progress indicator showing checklist completion percentage. The track is Rose 30 and the fill arc is Fuchsia. A large number and percent sign are centered inside. Used in the My Health Profile section of Ovia+.

Variants
50%
50% complete
75%
75% complete
100%
100% complete
Ring outer size
80 ร— 80px
Ring radius
32px (stroke center)
Stroke width
8px
Track color
Rose 30 โ€” #FCCBD4
Fill color
Fuchsia โ€” #E33E69
Stroke linecap
round
Number style
Title 1 โ€” Source Serif Pro Regular 28/34
% symbol style
Footnote โ€” Source Sans Pro Regular 13/18
Number color
Charcoal โ€” #231F20
Caption below
Em Caption 1 โ€” SemiBold 12/16 โ€” "Completion progress"
โ„น๏ธ The ring uses SVG stroke-dasharray / stroke-dashoffset to animate progress. Full circumference = 2ฯ€ ร— 32 โ‰ˆ 201.06px. To render N%, set dashoffset to 201.06 ร— (1 โˆ’ N/100).
๐Ÿ“ฑ Screen

Ovia+ Hub

The Ovia+ Hub is a premium members-only section accessible via the center tab in the app's bottom navigation. It is only shown to users with an active Ovia+ membership. The screen is organized into four content blocks: welcome + sponsor, care team, my health profile, and my benefits.

โ™› Premium access only. The Ovia+ tab in the bottom navigation is only visible to users with an active Ovia+ membership. Non-members do not see this tab or this screen. The tab is positioned center in the 5-tab nav bar.
9:41
My Ovia+
๐Ÿ‘ฉ
welcome, Vivian!
โ™› Ovia+ member since Jan 1, 2023
My Ovia+ benefit hub in partnership with
my care team
My Ovia Care Advocate
A dedicated guide to provide support and resources throughout your Ovia journey.
๐Ÿ‘ฉ
๐Ÿ‘ฉโ€โš•๏ธ
๐Ÿง‘โ€โš•๏ธ
Message
Your guide is available to help:
Navigate your Ovia benefits
Find a healthcare provider
Connect with the right Ovia Health Coach
Care team services
Talk to a healthcare professional in real time. Ovia health coaches are available 7 days a week to answer all your questions!
View all services โ†’
my health profile
Help us build your health profile
Personalize your Ovia experience by completing the items below.
Mental health screener
Last taken Jan 1, 2026
Health conditions
Health assessment
Last taken Jan 1, 2026
My Ovia checklist
We complete important to-dos throughout your journey.
Keep going
50%
Completion progress
My enrolled health programs
Receive customized content when you enroll in our various health programs.
View all programs โ†’
my benefits
My Labcorp benefits
Learn about the benefits available to you through your health plan or employer.
View all benefits โ†’
About Ovia Health
Screen Structure
#SectionBackgroundComponents
1Status Bar + HeaderWhiteiOS Status Bar, App Header ("My Ovia+")
2WelcomeBlush 20Member photo (100px), name, Ovia+ membership date + crown
3SponsorWhitePartnership text, Labcorp + partner logo
4My Care TeamWhiteSection title, care advocate description, care team portraits + Message CTA, benefit bullets, services carousel, View all link
5My Health ProfileBlush 20Section title, Health Profile Question Cards (ร—3), checklist ring chart + Keep going CTA, enrolled programs link
6My BenefitsWhiteSection title, Labcorp benefits copy, Ovia+ Small Card carousel, View all link
7About CTABlush 20About Ovia Health button (Royal fill)
Section Title Typography

All four section headers use the same style โ€” lowercase, centered, Source Serif Pro Bold:

my care team
my health profile
my benefits
Font
Source Serif Pro Bold 700
Size / Line-height
22px / 28px
Color
Charcoal โ€” #231F20
Alignment
Center
Case
Lowercase (intentional brand voice)
Navigation Context

The Ovia+ tab appears in the center position of the app's 5-tab bottom nav bar. It replaces what would normally be a standard home or feed tab. The crown icon (โ™›) and Fuchsia color distinguish it from the standard nav items.

๐Ÿ 
Home
๐Ÿ“Š
Insights
โ™›
Ovia+
๐Ÿ“š
Learn
โ‹ฏ
More
๐Ÿ”— Figma references: Full screen 279-30935 โ€” Ovia Plus. Components: Ovia+ Small Card 272-1513, Health Profile Question Card 273-1620, Ring Progress Chart 276-30213.
๐Ÿงฉ Component

Checklist Progress Bar

A persistent header widget shown at the top of the My Ovia Checklist screen. Left side contains a prompt, three care team portrait thumbnails, and a Message team CTA. Right side contains the Ring Progress Chart with percentage and caption label. Background is Blush 20.

Preview
Have questions?
Chat with your Ovia Care Team
๐Ÿ‘ฉ
๐Ÿ‘ฉโ€โš•๏ธ
๐Ÿง‘โ€โš•๏ธ
Message team
15%
Completion progress
Specs
Background
Blush 20 โ€” #FEF4F5
Padding
16px top/bottom, 24px left/right
Question title
Em Body โ€” Source Sans Pro SemiBold 17/22
Sub caption
Caption 1 โ€” Regular 12/16
Portrait size
32 ร— 32px (vs 54px on Ovia+ hub)
Portrait gap
6px
Button
Royal fill, Em Footnote SemiBold 13/18, 32px height
Ring width
140px column, centered vertically
Caption below ring
Em Caption 1 โ€” SemiBold 12/16 โ€” "Completion progress"
๐Ÿงฉ Component

Trimester Selector

A three-button segmented control used at the top of the checklist list to filter to-dos by trimester. One button is always selected. Used exclusively within the My Ovia Checklist screen context.

All States
In-context (1st selected)
1st Trimester
2nd Trimester
3rd Trimester
Selected
1st Trimester
Available
2nd Trimester
Hover
3rd Trimester
Pressed
1st Trimester
Specs
Height
32px
Border radius
6px
Gap between buttons
10px
Label style
Em Footnote โ€” Source Sans Pro SemiBold 13/18
Selected bg
Rose 30 โ€” #FCCBD4 / text: Charcoal
Available bg
Transparent / border: Rose 30 1px / text: Midnight
Hover bg
Blush 20 / border: Rose 30 1px / text: Charcoal
Pressed bg
Blush / text: Charcoal
Container padding
24px top, 12px bottom, 12px left/right
๐Ÿงฉ Component

Expanding List

A Blush-background accordion row that groups related checklist to-dos under a category name. Tapping expands to reveal the Checkbox List beneath. A "+" icon indicates collapsed; "โˆ’" indicates expanded. Can show a status label with optional Ovia+ checkmark bullet when complete.

Variants
Complete + Checkmark
Choose a Provider
Complete
+
In Progress โ€” Expanded (minus icon)
My OBGYN provider to-dos
In progress
โˆ’
Not Started โ€” Collapsed (plus icon)
My primary care provider to-dos
Not started
+
No Status
Learn & ask aboutโ€ฆ
+
Action Icons

Two icon states, both 14ร—14px, Midnight color:

+
Plus โ€” Collapsed
Minus โ€” Expanded
Specs
Background
Blush โ€” #F8A4B2
Border radius
6px
Padding
12px all sides
Name style
Em Callout โ€” Source Sans Pro SemiBold 16/21
Status style
Footnote โ€” Regular 13/18
Colors
All text: Charcoal; checkmark bullet: Midnight
Action icon
14ร—14px; Plus or Minus; Midnight color
Container padding
0 12px 12px (first item: 24px top)
Width
Full width of 375px minus 24px padding = 351px
๐Ÿงฉ Component

Checkbox List

The expanded content beneath an Expanding List row. Each item is a Checkbox + Text row: a 24ร—24 Midnight checkbox (checked or unchecked) followed by body text that may contain Royal-colored inline links. Items are indented 32px from the edge to visually nest under their parent Expanding List header.

Checkbox States
โœ“
Checked
Unchecked
Checkbox + Text Rows
โœ“
Attend my preconception visit with my provider.
โœ“
Talk to my doctor about starting a prenatal vitamin.
Talk about cycle tracking and how to identify ovulation with endometriosis.
Talk to my provider about when to receive a fertility evaluation and related testing, and about what medications I'm currently taking.
Specs
Checkbox size
24 ร— 24px, border radius 3px
Checked fill
Midnight โ€” #131967
Unchecked fill
White / border: 1px Midnight
Check icon
White โœ“, ~11px
Row padding
0 32px 12px (indent from screen edge)
Text style
Subhead โ€” Source Sans Pro Regular 15/20
Text color
Charcoal โ€” #231F20
Link color
Royal โ€” #1A2188 / underlined / SemiBold
Row gap (checkbox โ†’ text)
8px
๐Ÿงฉ Component

Article Action Button

A low-profile navigation row pairing a "Read More" icon with a text label. Used to surface related articles or actions within an expanded checklist section. The icon is Gray 40; the label is Charcoal Subhead Regular.

Variants
No top padding (default)
Understanding Endometriosis
With top padding (12px)
Nutrition during pregnancy
Action Icons

Two icon types, both 24ร—24px container, Gray 40 (#929292) color:

โ†’โ‰ก
Read More
โœ•
Close All
Specs
Width
253px
Padding
0 12px 12px (top: 0 or 12px)
Icon size
24 ร— 24px container
Icon color
Gray 40 โ€” #929292
Text style
Subhead โ€” Source Sans Pro Regular 15/20
Text color
Charcoal โ€” #231F20
Gap
8px
๐Ÿงฉ Component

Article Topic Button

A Blush 20 tile used to surface article topic shortcuts. Displayed in pairs (or singles) within the Article Topic Pair container. 88px tall, 206px wide when standalone, flexible when in a pair. Label is Em Subhead SemiBold centered.

Standalone
Prenatal nutrition
Managing PCOS
Article Topic Pair (2-up and 1-up)
Prenatal nutrition
Managing PCOS
Fertility evaluation
Specs
Width
206px standalone; flex-1 in pair (equal split)
Height
88px
Background
Blush 20 โ€” #FEF4F5
Border radius
6px
Padding
12px
Label style
Em Subhead โ€” Source Sans Pro SemiBold 15/20
Label color
Charcoal โ€” #231F20
Pair gap
8px
Pair padding
0 12px 8px
Single in pair
Second button is opacity:0 (invisible placeholder) to maintain grid
๐Ÿงฉ Component

Floating Content Block

A self-contained card used to surface benefit or program descriptions within the checklist's "Learn & ask about" sections and Health Screeners. Combines a title, body copy, and optional link, button, and/or logo graphic. Three background options: Blush 20, White, or None (no padding).

Variants
Blush 20 โ€” Link only
My IBX Registered Nurse health Coach
Access care management specialists and more at no cost to you. See below for more information.
View Details โ†’
Blush 20 โ€” Link + Button + Logo
My IBX Registered Nurse health Coach
Access care management specialists and more at no cost to you.
View Details โ†’
Schedule now
White โ€” Button only
My IBX Registered Nurse health Coach
Access care management specialists and more at no cost to you.
Learn More
Specs
Width
408px (designed); scales to full content width in practice
Border radius
12px
Padding
16px (None variant: 16px top/bottom, no horizontal)
Gap (logo โ†’ content)
16px
Gap (content items)
16px
Gap (title โ†’ body)
8px
Title style
Em Callout โ€” SemiBold 16/21
Body style
Subhead โ€” Regular 15/20
Both colors
Charcoal โ€” #231F20
Link style
Em Subhead โ€” SemiBold 15/20 โ€” Royal
Button
32px height, 6px radius, 180px max-width, Em Footnote 13/18
Button bg (Blush 20 context)
Royal โ€” #1A2188
Button bg (White/None context)
Midnight โ€” #131967
Logo graphic
76 ร— 76px, 40px border radius, Rose fill (#F7758C)
๐Ÿ“ฑ Screen

My Ovia Checklist

A deep-link screen within Ovia+ that lists personalized to-do categories organized by care context. Each category is an Expanding List that reveals a Checkbox List and optional Article Action Buttons and Floating Content Blocks when opened. Three sub-views exist: the main checklist, a second PHP list, and the Health & Medical Screeners view.

โ™› Ovia+ only. This screen is only accessible to Ovia+ members. Reached via the My Ovia+ hub โ†’ "Keep going" or direct navigation from the Health Profile section.
9:41
โ€น Back
My Ovia checklist
โ“˜
Have questions?
Chat with your Ovia Care Team
๐Ÿ‘ฉ
๐Ÿ‘ฉโ€โš•๏ธ
๐Ÿง‘โ€โš•๏ธ
Message team
15%
Completion progress
1st Trimester
2nd Trimester
3rd Trimester
Choose a Provider
Complete
+
My OBGYN provider to-dos
In progress
โˆ’
โœ“
Attend my preconception visit with my provider.
โœ“
Complete relevant lab tests & STI screening based on my age, risk factors and family history.
โœ“
Talk to my provider about my menopause symptoms and discuss whether lab work should be performed.
โœ“
Talk to my doctor about starting a prenatal vitamin.
Talk about cycle tracking and how to identify ovulation with endometriosis.
Discuss endometriosis and whether lab work should be performed to learn more about my menopause timeline.
Talk to my provider about when to receive a fertility evaluation and related testing.
โœ“
Talk to my provider about PCOS treatment options and nutrition recommendations.
Talk to my provider about my menopause symptoms and discuss lab work.
My primary care provider to-dos
Not started
+
My personal to-dos
Not started
+
Learn & ask aboutโ€ฆ
Not started
+
Connect with my Ovia care team
Not started
+
Screen Structure
#SectionComponents
1Status Bar + App HeaderiOS Status Bar, App Header ("My Ovia checklist") + info icon
2Checklist Progress BarChecklist Progress component (care team portraits + ring chart)
3Trimester Selector3-button segmented control
4โ€“NExpanding ListsOne per category. Collapsed = plus icon + status. Expanded = minus icon + Checkbox List rows
InlineArticle ActionsInside expanded categories โ€” Read More / Close All icon + text label
InlineArticle Topic PairsInside "Learn & ask aboutโ€ฆ" โ€” 2-up Blush 20 topic tiles
InlineFloating Content BlocksInside "Learn & ask aboutโ€ฆ" and Health Screeners โ€” title + body + link/button
Checklist Categories (TTC example)
Choose a Provider
My OBGYN provider to-dos
My primary care provider to-dos
My personal to-dos
Learn & ask aboutโ€ฆ
Connect with my Ovia care team

Category content is personalized based on user goal (TTC, pregnancy, postpartum, etc.) and trimester selection.

Related Sub-screens

Two additional screens use the same component set:

PHP List (2257-11444)
A second checklist list screen with the same structure, used for a different goal-state or program-specific checklist.
Health & Medical Screeners (2257-16343)
Uses Checkbox List items and Floating Content Blocks to present health screener cards (mental health, health conditions, health assessment) โ€” the same cards shown on the Ovia+ hub health profile section.
๐Ÿ”— Figma references: Main checklist 2121-44595. Components: Checklist Progress 2100-44357, Trimester Selector composite 2117-44482, Trimester Button 2117-44492, Expanding List 2206-16284, Action Icon 2206-16260, Checkbox List 2206-24088, Checkbox 2206-24056, Checkbox+Text 2206-24365, Article Action 2257-11636, Article Topic Pair 2250-11284, Floating Content Block 3334-70837.
๐Ÿ“… Calendar

Calendar โ€” Month Nav Bar

The top bar of the calendar. Controls month navigation via back/forward chevrons with a center month label pill. Two size variants: legacy (36px tall) and updated accessibility-compliant (44px tall, iOS minimum tap target).

โ„น๏ธFigma node: 2622-159939 โ€” Component name: Calendar Month Nav Bar. Two variants: Default Legacy Size (36px h) and Updated (44h). The 44px version was created to meet iOS HIG minimum tap target (44px). An Android variant at 48px should be documented when created.
Month Nav Bar โ€” Both Size Variants
Default Legacy Size โ€” 36px height
<
January 2026
>
Updated (44h) โ€” iOS Accessibility Compliant
<
January 2026
>
Anatomy
ElementTokenValueNotes
Bar backgroundFuchsia#E33E69Full-width, edge-to-edge
Month label pill bgWhite#FFFFFFborder-radius: 6px; padding: 3px 10px
Month label textCharcoal#231F20Em Subhead โ€” Source Sans Pro SemiBold 15/20
Chevron iconsWhite#FFFFFF16px; Ovuline icon font glyphs; 20px tap width
Height โ€” Legacyโ€”36pxOriginal legacy size; pb: 12px pt: 11px
Height โ€” Updatedโ€”44pxiOS HIG compliant; py: 12px; use for new builds
Widthโ€”375pxFull device width, edge to edge
โš ๏ธAccessibility note: The 36px legacy variant does not meet iOS HIG 44px minimum tap target. Use the 44px variant for all new implementations. An Android variant at 48px (Material Design minimum) should be created when Android calendar work resumes.
๐Ÿ”—Figma: 2622-159939. Variants: size=Default Legacy Size (node 2622:159938), size=Updated (44h) (node 2622:159940).
๐Ÿ“… Calendar

Calendar โ€” Weekday Labels

The row of abbreviated day-of-week labels (SUNโ€“SAT) below the month nav bar. Goal-agnostic โ€” identical across all calendar modes.

โ„น๏ธFigma node: 2649-159961. No variants. Fixed 7-column layout spanning 375px. Padding: 12px horizontal, 6px top, 12px bottom.
Weekday Labels
SUN
MON
TUE
WED
THU
FRI
SAT
Anatomy
ElementTokenValueNotes
Label textBlack#000000Em Caption 1 โ€” Source Sans Pro SemiBold 12/16. Uses pure black, not Charcoal.
Container paddingโ€”6px top, 12px bottom, 12px horizontalTight โ€” calendar is a dense component
Layoutโ€”justify-between, 7 equal columnsAligns with 7-column calendar day grid below
๐Ÿ”—Figma: 2649-159961. Single variant โ€” no goal-specific differences.
๐Ÿ“… Calendar

Calendar โ€” Date Number

The date numeral in the center of each calendar day cell. Four states: dateType (Current/Past vs Future) ร— today (true/false). Today flag and future state affect typography weight and color.

โ„น๏ธFigma node: 3714-16434. Component name: calendar date (number). Fixed container: 18ร—16px. Text absolutely positioned, center-aligned.
All Four States
Current/Past
today=false
15
Current/Past
today=true
15
Future
today=false
25
Future
today=true
25
State Matrix
dateTypetodayColorWeightStyle
Current/PastfalseCharcoal #231F20Regular (400)Caption 1
Current/PasttrueCharcoal #231F20SemiBold (600)Em Caption 1
FuturefalseRoyal 50 #4953DCRegular (400)Caption 1
FuturetrueRoyal 50 #4953DCSemiBold (600)Em Caption 1

Font: 12px. Line-height: 16px. Container: 18ร—16px. Future dates render in Royal 50 to visually de-emphasize. Today's date is always SemiBold regardless of past/future context.

๐Ÿ”—Figma: 3714-16434. Nodes: Current/Past+false 3714:16433, Future+false 3714:16435, Current/Past+today 3773:9332, Future+today 3773:9334.
๐Ÿ“… Calendar

Calendar โ€” Day Icons (Legacy + Rebrand)

12ร—12px icons inside calendar day cells indicating logged or predicted events. Two separate component sets: Legacy (icon font-based) and Rebrand (SVG image-based). Both cover the same semantic events. The calendar must support both simultaneously during the transition period.

โš ๏ธDual icon system: Legacy icons use the Ovuline icon font and Font Awesome 5 Pro. Rebrand icons are SVG image files. Both must be accounted for in implementation. Developers must be clear about which set applies to each view context.
Legacy Calendar Day Icon โ€” Full Variant Set
Figma: 3455-47167

Legacy icons use the Ovuline icon font for period, ovulation, intercourse, and projected states. Pregnancy icons use Font Awesome 5 Pro Solid. No-icon state uses a transparent placeholder. Size: 12ร—12px.

iconSubjectFontColor TokenHexNotes
PeriodOvuline (glyph B)Fuchsia 100#BF1B47Filled drop shape
OvulationOvuline (U+E607)Royal#1A2188Star/burst shape
IntercourseOvuline (glyph H)Fuchsia#E33E69Heart-like shape
Intercourse OutlineOvuline (glyph H)Fuchsia#E33E69Outline variant
SpottingOvuline (glyph B)transparentโ€”Outline only
Projected PeriodOvuline (glyph B)Gray 50#787878Gray fill โ€” predicted, not confirmed
Projected Outline - DashedSVG Vectorโ€”โ€”Dashed outline SVG
Projected PatternOvulineโ€”โ€”Pattern fill variant
Projected Period OutlineOvuline (glyph B)transparentโ€”Outline only
Preg - Doctor Appt.Font Awesome 5 Pro Solid (U+F0FE)Fuchsia 100#BF1B47Plus-in-circle icon; pb: 1px
Preg - MilestoneOvuline (U+E941)Fuchsia#E33E69Star shape
Preg - NotesFont Awesome 5 Pro Solid (U+F111)Royal#1A2188Circle dot; pb: 1px
Preg - Weeks PregnantSource Sans Pro SemiBold 10pxFuchsia 100#BF1B47Numeric week text (e.g. "8"); Em Menu Label
No IconSource Sans Pro SemiBold 10pxtransparentโ€”Invisible 12ร—12 space-holder
Legend - Data RecordedSource Sans Pro SemiBold 10pxCharcoal#231F20Shows "31"; bg: white; border-top: 2px Fuchsia 90. Legend context only.
Legend - Fertile Windowโ€”โ€”โ€”12ร—12 container: bg Blush 20, border 1px Fuchsia 90 dashed, radius 2px. No text.
Rebrand Calendar Day Icon โ€” Full Variant Set
Figma: 3465-47267

Rebrand icons are SVG image files โ€” no icon font dependency. Each variant is a distinct SVG asset. Richer visual style than legacy font glyphs. Size: 12ร—12px (some have slight non-square natural dimensions).

iconSubjectTypeDimensionsNotes
PeriodSVG image10ร—12pxFilled drop; replaces Ovuline "B" glyph
IntercourseSVG image12ร—10pxReplaces Ovuline "H" glyph
Intercourse 2SVG image12ร—9pxAlternate variant
Intercourse OutlineSVG image12ร—10pxOutline variant
Ovulation 1SVG image12ร—12pxPrimary ovulation indicator
Ovulation 2SVG image12ร—11pxSecondary variant
SpottingSVG image10ร—12pxLighter drop for spotting
Projected PeriodSVG image10ร—12pxMuted drop for predictions
Projected OutlineSVG image10ร—12pxOutline only โ€” predicted state
Projected PatternSVG image10ร—12pxPatterned fill
No IconSVG image (transparent)10ร—12pxInvisible placeholder
Preg - Doctor Appt. 1SVG image12ร—12pxDoctor/appointment icon
Preg - Milestone 1SVG image12ร—12pxStar/milestone icon
Preg - Milestone 2SVG image12ร—12pxAlternate milestone
Preg - Notes 1โ€“5SVG image8โ€“12px variesFive visual variants of the notes icon
Preg - Weeks PregnantText SemiBold 10px12ร—12pxFuchsia 100 text โ€” same as legacy variant
Data AddedText SemiBold 10px12ร—12pxShows "31"; bg: white; border-top: 2px Fuchsia 90. Legend context only.
Fertility WindowContainer only12ร—12pxbg: Blush 20; border: 1px Fuchsia 90 dashed; radius: 2px. No content.
๐Ÿ”—Figma: Legacy icons 3455-47167. Rebrand icons 3465-47267.
๐Ÿ“… Calendar

Calendar โ€” Calendar Day Cell

The individual day tile. The most complex component in the calendar โ€” a 46ร—40px cell with a colored top bar, date number, and up to five icon slots in two rows. Three properties drive all visual permutations: theme (Legacy / Pregnancy / Rebrand), goal (Fertility / Pregnancy), plus state flags dataRecorded, fertileWindow, and selectedDay.

โš ๏ธImpossible state disclosure: The Figma component set contains logically impossible states (e.g. Pregnancy theme + Fertility goal combinations that never co-occur in the live app). These exist to prevent Figma component errors. Developers: ignore impossible combinations and reference only the states documented here.
Cell Anatomy
RegionHeightContent
Top Bar4pxColor bar: Gray 20 (no data) or Fuchsia 90 (data recorded). Full width. No radius unless selected.
Cell Bodyflex 1 (~36px)Two rows of 3 icon slots + date number in top row center. py: 4px, px: 2px.
Top Bar + Container Style Rules
StateTop Bar ColorContainer Style
Default (no data, not selected, not fertile)Gray 20 #E0E0E0No bg, no border
Data recorded, not selectedFuchsia 90 #F62467No bg, no border
Fertile window, not selected (Legacy/Rebrand)Gray 20bg: Blush 20; dashed border Fuchsia B/L/R; radius: 4px bottom
Fertile window, not selected (Pregnancy theme)Gray 20Same as above + opacity: 0.10
Selected, not fertileFuchsia 90 (if data) / Gray 20 (no data); radius 3px TL/TRBorder: 3px Royal solid; radius: 4px all
Selected, fertile windowFuchsia 90 or Gray 20; radius 3โ€“4px TL/TRbg: Blush 20; border: 3px Royal solid; radius: 4px all

Dashed border color: Fuchsia #E33E69 (Legacy/Pregnancy theme). Fuchsia 90 #F62467 (Rebrand theme). Applied bottom + sides only โ€” not top (top is the bar).

Icon Slot Layout
RowLeftCenterRight
Top rowIcon slot (context-dependent)Date Number 18ร—16pxIcon slot (context-dependent)
Bottom rowIcon 1Icon 2Icon 3

Fertility icon mapping: Top-left = empty (No Icon). Bottom: icon 1 = period/projected, icon 2 = intercourse, icon 3 = ovulation.

Pregnancy icon mapping: Top-left = weeks pregnant. Bottom: icon 1 = milestone, icon 2 = doctor appt, icon 3 = notes.

Legacy vs Rebrand: Same slot positions โ€” only the icon set swaps. Legacy = font glyphs; Rebrand = SVG images.

Visual State Previews
Default
(no data)
15
Data
Recorded
8
โ—
โ™ฅ
โ˜…
Fertile
Window
12
Selected
Day
19
Future
Date
28
๐Ÿ”—Figma: Calendar Day component set 3520-56731. Key variant nodes: Legacy/Fertility/no data/not selected/not fertile 2740:10493; data recorded 3611:20680; Rebrand/Fertility/data/selected/fertile 3626:27746.
๐Ÿ“… Calendar

Calendar โ€” Week Row

A horizontal row of 7 Calendar Day cells spanning 375px. The composite unit that stacks 5โ€“6 times to form the full calendar grid. Template examples show how different data states appear across a week.

โ„น๏ธFigma node: 3626-28337. Five templateExample variants: Blank, Fert - Period + Prediction, Fert - Intercourse, Fertile Window, Fertile Window 2. These are reference examples โ€” in the live component, day cells vary independently.
Week Row โ€” Template Examples
Blank (no data)
29
30
31
1
2
3
4
Fert โ€” Period + Prediction
29
30
โ—
31
โ—
1
โ—
2
โ—
3
4
Fertile Window (Blush 20 bg + dashed Fuchsia border + Royal selected border on day 2)
29
30
31
1
2
3
4
๐Ÿ”—Figma: 3626-28337. Variants: Blank 3626:28336, Fert-Period+Prediction 3626:28654, Fert-Intercourse 3626:28956, Fertile Window 3626:28338, Fertile Window 2 3626:29505.
๐Ÿ“… Calendar

Calendar โ€” Base Calendar

The full calendar grid โ€” five week rows stacked for a complete month. Five Presentation variants show the calendar in different goal and data contexts. These reference examples are used throughout the screen compositions.

โ„น๏ธFigma node: 3626-30671 (frame). Five sub-variants. Width: 375px; ~224px tall (5 rows ร— 40px + 6px gaps).
Presentation Variants
VariantNodeDescription
Blank3626:30670No data. All cells show Gray 20 top bars. Future dates in Royal 50. Empty-state starting point.
TTC (Trying to Conceive)3626:30672Fertility goal, active data. Period days (Fuchsia 90 top bar + icon), fertile window highlighted, ovulation indicator, predicted days in gray.
CT (Cycle Tracking)3626:32033Cycle tracking goal. Similar to TTC + intercourse and additional logged data types.
Preg - Mostly Blank3626:33582Pregnancy goal, minimal data. Weeks pregnant in top-left icon slot. Most cells without activity.
Preg - Activity3626:34721Pregnancy goal with activity. Milestones, doctor appointments, and notes icons distributed across cells.
Base Calendar โ€” Blank Variant Preview
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2

Current month in Charcoal Regular; future dates in Royal 50 Regular. Row gap: 6px.

๐Ÿ”—Figma: Frame 3626-30671. Variants: Blank 3626:30670, TTC 3626:30672, CT 3626:32033, Preg-Mostly Blank 3626:33582, Preg-Activity 3626:34721.
๐Ÿ“… Calendar

Calendar โ€” Bulk Edit Section

An experimental component for the bulk period editing feature โ€” currently being developed for legacy with rebrand-ready design in parallel. Appears below the calendar grid when applicable. Provides quick-action buttons for logging period data in bulk.

โš ๏ธExperimental / In Progress: Layout not finalized. Multiple background and button configurations exist as proposals. Do not treat any single variant as canonical until confirmed at Friday Sync.
Variant Overview
VariantLayoutBackgroundButton Style
WhiteSingle 240px centeredWhiteRoyal outline, 32px h
Gradient 1 - ProposalSingle buttonWhiteโ†’Seashell gradientRoyal outline
Blush 20 - ProposalSingle buttonBlush 20 #FEF4F5Royal outline
SeashellSingle buttonSeashell #FFFCFCRoyal outline
CTA - White BGSingle buttonWhiteMidnight fill #131967, white text
Tirtiary white BGSingle buttonWhiteFuchsia tertiary outline + Blush 20 bg
2 Buttons - 1Two equal-width buttonsWhiteBoth Royal outline
2 Buttons - SeashellTwo equal-width buttonsSeashellBoth Royal outline
2 Buttons - GradientsTwo equal-width buttonsSeashellโ†’White gradientBoth Royal outline

Shared: container padding 24px; button height 32px; radius 6px; label Em Footnote SemiBold 13/18; single button width 240px centered; two-button: full width, 10px gap.

Key Button Variant Previews
Royal Outline (White bg)
Log period
CTA โ€” Midnight Fill
Log period
2 Buttons
Log period
Log period
๐Ÿ”—Figma: 3676-19341. Note: "Tirtiary" spelling preserved from source component name.
๐Ÿ“… Calendar

Calendar โ€” Legend

A dynamic key below the calendar grid explaining what the cell icons mean. Content changes based on goal, data logged (including birth control type), and icon theme (legacy vs rebrand). An optional action button may appear โ€” its inclusion is still being determined for the rebrand.

โš ๏ธIn-flux: The legend button (legacy: present; rebrand: TBD) and final per-goal layout are pending Friday Sync decision. Full variant set is a menu of options until locked.
Legend Column Component (atom)
Figma: 3679-19461

The legend is built from LegendCollumn (spelling preserved from source) atoms that stack icon+text rows. Key properties: iconTheme (Legacy / Rebrand) and number (item count + button).

number propContentWidth
33 icon+label rows103px (Legacy) / full (Rebrand)
22 icon+label rows103px (Legacy) / 86px (Rebrand)
11 icon+label rowauto
ButtonAction button only ("Add Ovulation")100px
1 + Button1 row + action button103px (Legacy) / 120px (Rebrand)
Legend Item Anatomy
ElementTokenValueNotes
Icon containerโ€”20ร—20pxEnlarged for readability; icon inside is 12ร—12px
Label textCharcoal#231F20Caption 1 โ€” Regular 12/16
Row gapโ€”4pxBetween icon+text; between rows
Action buttonFuchsia / Blush 20bg: #FEF4F5; border: 1px #E33E69Em Footnote SemiBold 13/18; 32px h; 6px radius
Legend Composition + Sub-component Nodes
ComponentFigma NodeRole
Legend Column (atom)3679-19461Stacked icon+label rows with optional button
Legend Icon + Description (sub-atom)3679-19500Single icon+label pair; Legacy and Rebrand icon variants
Full Calendar Legend (composite)3679-20073Outer container; manages column layout, spacing, and dynamic content

Birth control type affects legend content โ€” different BC types surface different legend items. The component accommodates this via variant swapping, not hard-coded content.

๐Ÿ”—Figma: Legend column 3679-19461. Sub-atom 3679-19500. Composite legend 3679-20073.
๐Ÿ“… Calendar

Calendar โ€” Time Callout

Three related components forming the date-contextualized callout area beneath the legend. Used to anchor notes and data entry to a specific day. Atomic โ†’ molecular โ†’ composite hierarchy.

Component Hierarchy
ComponentFigma NodeRole
Time Callout text label3712-19626Atom โ€” displays the date string (e.g. "Tuesday, January 14")
Time Callout Pill3712-19721Molecule โ€” pill-shaped badge wrapping the time label. Visual treatment varies by goal and contextual state.
Time Callout (composite)3712-19730Organism โ€” full assembled callout combining the pill with contextual elements for the notes/data section

Full variant documentation pending full screen extraction. These components are best understood in the context of the calendar screen comps โ€” see Calendar Screen section when available.

๐Ÿ”—Figma: Text label 3712-19626. Pill 3712-19721. Composite 3712-19730.
๐Ÿ“… Calendar

Calendar โ€” Pregnancy Data Selector

Platform-specific tab/segment control for selecting which pregnancy data type to view in the notes area. iOS uses a Segment Buttons Group. Android uses a Data Selector Tab. Pregnancy goal only โ€” not present in fertility mode.

iOS โ€” Segment Buttons Group
Figma: 4164-95820 (group) ยท 4146-95735 (atom) ยท 4232-96722 (nested selectable)

iOS native segment control pattern. Group assembles multiple segment button atoms horizontally. Full nested selectable container at 4232-96722.

Baby
Health
Symptoms
โ„น๏ธSelected: white pill bg, SemiBold, Charcoal. Unselected: no bg, Regular, Gray 50. iOS native-style โ€” not a custom button component.
Android โ€” Data Selector Tab Group
Figma: 4170-96540 (group) ยท 4165-96366 (atom)

Material Design tab pattern. Full-width tabs with underline indicator. Tab atom: 4165-96366.

Baby
Health
Symptoms
โ„น๏ธActive: Royal underline + Royal text, SemiBold. Inactive: Gray 50, Regular. Full-width tab row spans content area.
๐Ÿ”—Figma: Selectable nested group 4232-96722. iOS Segment Group 4164-95820. iOS Segment Atom 4146-95735. Android Tab Group 4170-96540. Android Tab Atom 4165-96366.
๐Ÿ“… Calendar

Calendar โ€” Android Floating Action Button (FAB)

Android-exclusive. A floating action button fixed to the bottom-right of the calendar screen. Tapping expands it to reveal goal-specific quick-log action items. Not present on iOS.

โ„น๏ธiOS equivalent: iOS uses other mechanisms for data entry (tapping a day cell, controls in the notes section). The FAB is Android-specific per Material Design conventions.
FAB Button โ€” Collapsed State
Figma: 4336-31714
+
PropertyValue
BackgroundFuchsia 80 #E7577D
Container size~77.8ร—77.8px; inner padding: 20px
Border radius30px
Shadow0 4px 8.3px 1px rgba(0,0,0,0.20)
IconPlus SVG 15px. Rotates โ€“45ยฐ when expanded (becomes ร—)
FAB Full Menu โ€” Expanded State
Figma: 4339-31870
Health tracking
+
Update goal
๐Ÿ‘ค
View pregnancy data
๐ŸŒฟ
+

Figma source uses Spanish placeholder copy โ€” English labels will be localized.

FAB Menu Item Anatomy
ElementTokenValueNotes
Text chip bgWhite#FFFFFFborder-radius: 6px; px: 16px; py: 8px
Text chip labelCharcoal#231F20Subhead Regular 15/20; right-aligned
Icon circle bgBlush#F8A4B240ร—40px; border-radius: 20px; padding: 8px
Iconโ€”24px SVGIcons: plus, person-round, ovia-leaf (swapped per action)
Row heightโ€”40pxMatches icon circle
Item gapโ€”16pxBetween menu rows
Alignmentโ€”flex-endRight-aligned stack above FAB
Sub-component Reference
ComponentFigma NodeRole
Android FAB (button only)4336-31714Circle button, collapsed
FAB icon placeholders (calendar)4339-31786Calendar-specific icon swap set
Icons FAB Menu Buttons4339-31781Menu icon variants (plus, ovia-leaf, person-round)
FAB Menu Item4339-31821Single row: text chip + circle icon
FAB Menu Button Text4339-31816White chip with label text
Graphic FAB Menu Icon4339-31802Icon within the Blush circle
FAB Full Menu4339-31870Complete expanded FAB + menu
๐Ÿ”—Figma: FAB button 4336-31714. Full menu 4339-31870. Note: some component names misspell "Intercourse" as "Intercrouse" โ€” preserved from source.
๐Ÿ“… Calendar โ€” Data

Calendar Data Icons โ€” Legacy (18ร—18)

The 18ร—18px icon set used in the data entry section beneath the calendar. Each icon represents a data category (period, mood, sleep, etc). Two states per icon: Off (Gray 50 โ€” no data entered) and On (Fuchsia โ€” data has been entered). All icons except Blood Sugar use the Ovuline icon font. Blood Sugar uses an SVG fill image.

โ„น๏ธFigma node: 3793-8764. Component name: Icons - Calendar - Legacy Data (18x18). Two props: legacyCalendarData (22 variants) and on (boolean). Icon size: 18ร—18px fixed container. All Ovuline glyphs center-aligned, absolutely positioned.
โš ๏ธIcon font dependency: All icons except Blood Sugar require the Ovuline icon font to render. Blood Sugar uses an SVG image asset. In environments where Ovuline is unavailable, these will render as unstyled characters or be invisible.
Full Icon Reference โ€” Both States
CategoryOvuline GlyphOff ColorOn ColorNotes
alcohol-on8Gray 50 #787878Fuchsia #E33E69Wine glass shape
activity-onEGray 50FuchsiaRunning figure
bbt-onMGray 50FuchsiaBBT thermometer
bloodpressure-onFGray 50FuchsiaBlood pressure cuff
caffeine-on7Gray 50FuchsiaCoffee cup
cervix-onGGray 50FuchsiaCervical fluid/anatomy
doctor-onโ€ข (U+2022)Gray 50FuchsiaDoctor/medical
fetalmovement-onรฎ (U+00EE)Gray 50FuchsiaBaby movement โ€” pregnancy only
intercourse-onHGray 50FuchsiaHeart-like intercourse glyph
medications-onOGray 50FuchsiaPill/medication
milestone-onฦ’ (U+0192)Gray 50FuchsiaMilestone/achievement โ€” pregnancy only
note-fert-onNGray 50FuchsiaNote/notebook โ€” fertility context
nutrition-onDGray 50FuchsiaFork/food/nutrition
opk-onKGray 50FuchsiaOvulation predictor kit test strip
period-onBGray 50FuchsiaDrop/period
preg-test-onLGray 50FuchsiaPregnancy test stick
relationship-onnGray 50FuchsiaCouple/relationship
mood-onIGray 50FuchsiaFace/mood expression
sleep-onCGray 50FuchsiaMoon/zzz/sleep
symptoms-onJGray 50FuchsiaThermometer/symptom indicator
weight-on?Gray 50FuchsiaScale/weight
blood sugarSVG image (Fill 1)Gray SVGFuchsia SVGBlood glucose drop icon โ€” SVG asset, not a glyph

All icons: 18ร—18px container, font-size 18px, center/top-aligned via absolute positioning. Off state = Gray 50 (#787878). On state = Fuchsia (#E33E69).

Off vs On State Comparison
Off (no data entered) โ€” Gray 50
๐Ÿƒ
act
๐Ÿ˜ถ
mood
๐Ÿ’Š
meds
๐ŸŒ™
sleep
๐Ÿด
nutr
On (data entered) โ€” Fuchsia
๐Ÿƒ
act
๐Ÿ˜ถ
mood
๐Ÿ’Š
meds
๐ŸŒ™
sleep
๐Ÿด
nutr

Preview uses equivalent Unicode symbols โ€” actual rendering requires the Ovuline icon font. Icon containers use 32px rounded circles (from the Data Category Icon component) to show the full presentation context.

๐Ÿ”—Figma: 3793-8764. Off-state root node: 3792:11835. On-state root: 3860:92103.
๐Ÿ“… Calendar โ€” Data

Calendar Icons (12ร—12) โ€” Theme Variants + Birth Control

The 12ร—12px icon set used on calendar day cells and in the legend. This set covers all period/intercourse/ovulation/spotting variants across app themes (Ovia Classic, Cosmos, FA, Sweet, Nautical), plus all birth control method indicators. Distinct from the rebrand SVG icon set documented separately.

โ„น๏ธFigma node: 3793-8781. Component name: Icons - Calendar (12). 32 variants total. All icons 12ร—12px. Ovuline and Font Awesome 5 Pro fonts used for event icons; SVG images and custom shapes for BC method icons.
Period, Spotting, Intercourse, Ovulation โ€” All Theme Variants

Each event type has up to 5 color theme variants corresponding to Ovia app themes. The F- prefix indicates Fertility calendar context.

VariantFontGlyphColorHex
F-PeriodOvulineBโ€”#A52241
F-Period-CosmosOvulineBCosmos Purple#7F30DA
F-Period-FAOvulineBFA Pink#F04E6E
F-Period-SweetOvulineBSweet Lilac#C364C5
F-SpottingOvulineQโ€”#A52241
F-Spotting-CosmosOvulineQCosmos Purple#7F30DA
F-Spotting-FAOvulineQFA Pink#F04E6E
F-Spotting-SweetOvulineQSweet Lilac#C364C5
F-IntercourseOvulineHโ€”#EB6B58
F-Intercourse-CosmosOvulineHCosmos Black#000000
F-Intercourse-FAOvulineHFA Pastel#FF82D5
F-Intercourse-OviaClassicOvulineHOviaClassic Pink#EC4A86
F-ovulationOvulineU+E607Ovia Blue#0060A9
F-ovulation-CosmosOvulineU+E607Cosmos Violet#BD0FE1
F-ovulation-NauticalOvulineU+E607Nautical Red#CE3E28
F-ovulation-OviaClassicOvulineU+E607OviaClassic Orange#F49136
F-ovulation-SweetOvulineU+E607Sweet Blue#3FA4EF
Birth Control Method Icons

BC icons appear on calendar days when the user has logged a birth control method. Some are SVG image-based; others use custom CSS shapes or overlay techniques.

VariantRenderingColorNotes
F-BC-IUD-INSVG imageTeal #00778EIUD device shape
F-BC-Implant-INRotated line SVG + containerTeal #00778ERod/implant shape, rotated ~5.45ยฐ
F-BC-Patch-ONFilled rounded rectangleTeal #00778E8.33% inset, radius 1px, solid fill
F-BC-Patch-OFFDashed rounded rectangleTeal #00778ESame shape as Patch-ON, dashed border
F-BC-Pill-takenSVG image (group)Teal/Teal+WhitePill blister pack โ€” taken state
F-BC-Pill-startSVG image + "1" text overlayWhite text on Teal pillFirst pill in pack, shows "1"
F-BC-Pill-lateSVG image + mask overlayTeal + color splitSplit-color pill indicating late pill
F-BC-Pill-missedSVG imageโ€”Missed pill indicator
F-BC-Ring-INRotated oval SVGTeal ringRing inserted โ€” oval at ~20ยฐ rotation
F-BC-Ring-OUTRotated oval SVGTeal ringRing out โ€” slightly different oval
F-BC-ShotFont Awesome 5 Pro Solid (U+F48E)Teal #00778ESyringe/injection icon

All BC icons use Teal (#00778E) as their primary color โ€” a distinct color that differentiates BC entries from other calendar event types.

Pregnancy Icons (used in legend + calendar cells)
VariantFontGlyphColorNotes
dr-apptFont Awesome 5 Pro SolidU+F0FE#EA6551Plus-in-circle โ€” doctor appointment
milestoneOvulineU+E941#F5B200Star/trophy โ€” yellow/gold milestone color
noteFont Awesome 5 Pro SolidU+F111#0060A9Filled circle โ€” note indicator; 12ร—13px (slightly taller)

Note: dr-appt uses Salmon/Coral (#EA6551), milestone uses Gold (#F5B200), and note uses Ovia Blue (#0060A9) โ€” these are distinct from fertility event colors and from the rebrand colors.

๐Ÿ”—Figma: 3793-8781. Note: Calendar 12x1232 is an additional variant (intercourse/EB6B58 color โ€” likely a duplicate or alias). Node IDs per variant available in Figma.
๐Ÿ“… Calendar โ€” Data

Data Category Icon

A 32ร—32px circular container that wraps a single 18ร—18px data icon. The container background changes based on whether data has been entered for that category โ€” two states: no data (neutral gray) and data entered (Blush 20). This is the visual affordance in the data section that communicates at a glance whether a category has been filled.

โ„น๏ธFigma node: 3860-92156. Component name: Data Category Icon. Single boolean prop: on. Container: 32ร—32px, border-radius 16px (fully circular), padding 7px.
Both States
on=false
(no data)
๐Ÿƒ
on=true
(data entered)
๐Ÿƒ
State Anatomy
StateContainer bgIcon colorSemantic meaning
on=falseGray 10 #F4F4F4Gray 50 #787878No data logged for this category today
on=trueBlush 20 #FEF4F5Fuchsia #E33E69Data has been entered for this category

Container: 32ร—32px, border-radius 16px (fully rounded), padding 7px. The icon inside is 18ร—18px from the Legacy Data icon set. Icon color change is handled by the parent icon component's on prop.

๐Ÿ”—Figma: 3860-92156. Off: 3860:92155. On: 3860:92160.
๐Ÿ“… Calendar โ€” Data

Data Category Item

The individual data entry unit โ€” an icon + text pair showing one category's label and any entered data. Three props control its presentation: data (whether data exists), subCategory (whether a subcategory heading is shown), and image (whether a photo attachment is shown). This is the building block of all the data rows below the calendar.

โ„น๏ธFigma node: 3864-92174. Component name: Data Category. Width: 122px (fixed). Icon slot: 32ร—32px circle. Text area: flex-1, min-width 0. Gap between icon and text: 8px.
โš ๏ธImpossible state note: Some image+subCategory combinations exist in Figma for component completeness but would never appear in the live app โ€” for example, a pregnancy photo note attached to a fertility-only data type. Low-opacity variants in the component set are Figma's way of marking these as placeholder/disabled states.
Variant Matrix
datasubCategoryimagePresentationFigma Node
falsefalsefalseIcon (gray) + category label only. No data text.3864:92173
truefalsefalseIcon (fuchsia) + category label + data value (SemiBold)3864:92175
truetruefalseIcon (fuchsia) + category label + Subcategory (SemiBold) + data value (Regular)4103:92773
truetruetrueFull: label + subcategory + data + photo thumbnail (44โ€“100px)4103:92814
falsefalsetrue20% opacity โ€” impossible/placeholder state4103:92878
falsetruetrue20% opacity โ€” impossible/placeholder state4103:92892
Text Layer Anatomy
LayerTypographyColorCondition
Category label (e.g. "DATA CATEGORY")Caption 1 Regular 12/16Gray 60 #5E5E5EAlways shown โ€” uppercase
Subcategory (e.g. "Subcategory")Em Caption 1 SemiBold 12/16Charcoal #231F20Only when subCategory=true
Data value (e.g. "Lorem Ipsum")Caption 1 Regular or SemiBold 12/16Charcoal #231F20Only when data=true. Regular when subCategory present, SemiBold when alone.
Photo thumbnailโ€”โ€”Only when image=true. Square, min 44px, max 100px. Masked circular crop.

The component uses a border-bottom separator (Gray 20 #E0E0E0, 1px) on the text area when data=true and pb-8px, to separate entries within a row when stacked in the single-entry layout.

Visual Preview
No data โ€” empty state
๐Ÿƒ
DATA CATEGORY
Data entered, no subcategory
๐Ÿƒ
DATA CATEGORY
Lorem Ipsum
Data entered with subcategory
๐Ÿƒ
DATA CATEGORY
Subcategory
Lorem Ipsum
๐Ÿ”—Figma: 3864-92174. Variants: no-data 3864:92173, data+no-sub 3864:92175, data+sub 4103:92773, data+sub+image 4103:92814.
๐Ÿ“… Calendar โ€” Data

Data Category Row โ€” Double

Two Data Category items side by side in a horizontal row โ€” the standard data display layout. Width: 375px (full screen width), with 12px horizontal padding and 16px gap between items. This is the primary layout for displaying entered data beneath the calendar in fertility mode.

โ„น๏ธFigma node: 3864-92370. Component: Data Category Row - Double. Width 339px inner (375px with 12px side padding). Each item is flex-1. Gap: 16px.
Double Row Preview
๐Ÿƒ
DATA CATEGORY
๐Ÿƒ
DATA CATEGORY
Lorem Ipsum

Left item: no data (gray). Right item: data entered (fuchsia). Each item is flex-1 within the row.

๐Ÿ”—Figma: 3864-92370.
๐Ÿ“… Calendar โ€” Data

Data Category Row โ€” Single

A full-width single Data Category item โ€” used when a data entry is complex enough (subcategory + data + optional photo) that it needs the full row width. Also used as the structural container for the pregnancy notes section where vertical expansion is needed. The position prop controls whether a bottom separator is shown (First or Middle) or not (Last).

โ„น๏ธFigma node: 4103-92942. Component: Data Category Row - Single. Width 320px inner. position prop: First or Middle (pb-8px separator) or Last (no separator). data prop controls content display.
Position Prop Behavior
positiondataVisual behavior
First or MiddlefalseIcon (gray) + category label. No separator โ€” no data to separate.
First or MiddletrueFull data display + pb-8px + bottom border separator (Gray 20). Indicates more items follow.
LastfalseIcon (gray) + category label. No separator.
LasttrueFull data display, no bottom separator. Last item in a stacked group.

The separator is a 1px Gray 20 bottom border used to visually divide consecutive filled entries in a vertical stack. Empty entries never show separators.

๐Ÿ”—Figma: 4103-92942. Nodes: no-data+First 4103:92941, data+First 4103:92983, no-data+Last 4103:92951, data+Last 4103:93012.
๐Ÿ“… Calendar โ€” Data

Data Categories Single โ€” Pregnancy Notes

The pregnancy-specific single-column data layout, used when the "Notes" tab is selected in the Pregnancy Data Selector. These entries can include subcategory labels and photo attachments (unlike the double-column layout). Two states: No Data and Filled.

โ„น๏ธFigma node: 4232-102804. Component: Data Catagrories - Single (note: source typo "Catagrories"). Props: entries โ€” No Data or Filled. Shows 3 pregnancy data categories stacked vertically: Doctor Appointment, Note (with photo), Milestone (with photo).
Filled State โ€” Example Data
๐Ÿฅ
DOCTOR APPOINTMENT
10:00 AM Obstetrician/Gynecologist
๐Ÿ“
NOTE
Photo
A hot fudge sundae teeming with cholesterol, saturated fats, artificial preservatives. Gee, thanks.
๐Ÿฆ
๐Ÿ†
MILESTONE
Learned Baby's Sex
It's a boy!
๐Ÿ‘ถ

Photo thumbnails: min 44px, max 100px, square with circular mask crop. Photos use an image + mask system from Figma assets.

No Data State
๐Ÿฅ
DOCTOR APPOINTMENT
๐Ÿ“
NOTE
๐Ÿ†
MILESTONE
๐Ÿ”—Figma: 4232-102804. Note: component name has typo "Catagrories" โ€” preserved from source. No-data: 4232:102803. Filled: 4232:102805.
๐Ÿ“… Calendar โ€” Data

Data Categories โ€” Double (Full Data Set)

The complete data section beneath the calendar โ€” all data categories displayed in a double-column grid. Four variant presentations: CT (Cycle Tracking) with no data; CT with data entered; Pregnancy with no data; Pregnancy with data. The CT and Pregnancy sets show different category sets because the goals have different trackable data types.

โ„น๏ธFigma node: 4107-93171. Component: Data Categories - Double. Props: property1 โ€” CT - No Data, CT - Data Entered, Preg - No Data, Preg - Data. Width 381px; py: 16px top, 12px bottom; px: 12px. Row gap: 12px.
CT (Cycle Tracking) โ€” Data Categories

The CT variant shows fertility-relevant tracking categories in the double-column grid. Sample data values shown in the Filled variant:

CT Categories (6 rows ร— 2 = 12 items)
Col 1Filled Value (sample)Col 2Filled Value
PERIODno periodINTERCOURSEI had sex
MOODanxious, focused, frustratedSYMPTOMSneck aches, fatigue
OVULATION TESThighCERVICAL FLUIDegg whites
PREGNANCY TESTnegativeBASAL BODY TEMPERATURE97.7ยฐF
MEDICATIONSTylenol (acetaminophen)NOTESice cream sandwich / double scoop / waffle cone + photo
BLOOD PRESSURE10:45 AM - 120/80 mmHg, 9:45 AM - 100/80 mmHgRELATIONSHIPgood

Plus: BLOOD SUGAR row (bottom). Notes entry supports multi-line text + photo attachment.

Pregnancy โ€” Data Categories

The Pregnancy variant replaces CT-specific categories with pregnancy-relevant ones:

Col 1Filled Value (sample)Col 2Filled Value
MOODexcited, supported, impatientSYMPTOMSbackaches, vivid dreams
SLEEP10:35 PM - 6:00 AM, 7 hrs 25 minsWEIGHT158 lbs
NUTRITION3 servings protein, grains, fruits & veggiesACTIVITYyoga 45 mins
MEDICATIONPrenatal vitaminsFETAL MOVEMENTfluttering, average movement
BLOOD PRESSURE120/80 mmHg (multiple entries)KEGELS10 kegels, 10 kegels, 10 kegels
REALTIONSHIP (sic)goodTEMPERATURE97.7ยฐF
BLOOD SUGAR2:15 PM - 126 mg/dl, 7:45 AM - 125 mg/dlโ€”โ€” (last row has only 1 item)

Note: "REALTIONSHIP" is a spelling error in the Figma source โ€” preserved as-is in documentation. The last row has one empty slot (opacity: 0 placeholder) to maintain the 2-column grid.

โš ๏ธDynamic height: When data is entered, entries with multi-line values or photo attachments expand the row height and push subsequent rows down. This is why single-column and double-column layouts are separate โ€” the double-column layout is optimized for short values; complex entries use the single-column layout instead.
๐Ÿ”—Figma: 4107-93171. CT No Data 4107:93170, CT Data Entered 4107:93272, Preg No Data 4118:94233, Preg Data 4118:95031.
๐Ÿ“บ Screens

Calendar โ€” Full Screens

Eight complete screen compositions covering all goal and state combinations for the Calendar feature. All screens are 375px wide, variable height (depends on data content below calendar). All share the same structural stack โ€” only the calendar presentation, data section, and platform-specific controls change.

โ„น๏ธCommon screen structure: Status bar โ†’ App Header โ†’ Month Nav Bar โ†’ Calendar grid (weekday labels + base calendar) โ†’ [Bulk Edit โ€” fertility only] โ†’ Calendar Legend โ†’ Time Callout โ†’ [Pregnancy Tab Selector โ€” pregnancy only] โ†’ Data section (double or single column). The data section height is dynamic โ€” it expands as entries are filled in.
Screen Inventory
#ScreenFigma NodeHeightKey differentiators
1Fertility โ€” CT No Data (legacy)3635:36619956pxBulk edit section present; Ovulation button in legend; CT data grid empty
2Fertility โ€” TTC with Bulk Edit Data4232:978381188px2-button bulk edit; TTC calendar (period + fertile window visible); Ovulation removed from legend; data filled in (taller)
3Pregnancy โ€” Data tab, No Data4232:96792896pxNo bulk edit; pregnancy legend; Data tab selected via Preg selector; data grid empty (shorter)
4Pregnancy โ€” Data tab, Data Filled4232:994211056pxSame as #3 but data section is filled โ€” taller due to expanded entries
5Pregnancy โ€” Notes tab, No Notes (iOS)4232:101744720pxNotes tab selected; single-column notes layout (3 items: doctor, note, milestone) all empty
6Pregnancy โ€” Notes tab, Notes Filled (iOS)4232:102909992pxSame as #5 but notes filled โ€” photo attachments expand height significantly
7Pregnancy โ€” Notes tab, No Notes (Android)4437:68202694pxAndroid layout: 24px status bar (vs 54px iOS); Android tab selector; slightly shorter total
8Pregnancy โ€” Notes tab, Notes Filled (Android)4437:68213966pxAndroid notes filled โ€” same content as #6, Android chrome
Screen 1 โ€” Fertility CT, No Data (Legacy)
Node: 3635-36619 ยท 375ร—956px
<
January 2026
>
SUNMONTUEWEDTHUFRISAT
29
30
31
1
2
3
4
5
6
25
26
27
28
29
Log period
๐Ÿฉธ Period๐Ÿ’ง Spottingโญ• Ovulation๐Ÿ“… Fertile Window
Add Ovulation
Tuesday, January 14
๐Ÿƒ
ACTIVITY
๐Ÿ˜ถ
MOOD

Abbreviated preview โ€” full screen is 956px tall with all 12 data categories.

Screen Stack Breakdown
LayerHeightNotes
Status bar54pxiOS status bar
App Header48pxBack nav + "Calendar" title
Month Nav Bar44pxUpdated 44h variant
Calendar grid270pxWeekday labels (34px) + 5 rows (224px)
Bulk Edit Section80pxSingle "Log period" button; Royal outline
Calendar Legend92pxIncludes "Add Ovulation" button
Time Callout44pxSelected date label
Data Categories324pxCT no-data grid (6 rows)
Screen 2 โ€” Fertility TTC, Bulk Edit + Data Filled
Node: 4232-97838 ยท 375ร—1188px
LayerHeightKey difference vs Screen 1
Status bar54pxโ€”
App Header48pxโ€”
Month Nav Bar44pxโ€”
Calendar grid270pxTTC data: period logged (Fuchsia bars + icons), fertile window highlighted, predictions shown
Bulk Edit Section80px2-button variant โ€” "Log period" + second action; ovulation removed from legend
Calendar Legend92pxNo "Add Ovulation" button; legend shows period + fertile window + intercourse
Time Callout44pxโ€”
Data Categories556pxData filled โ€” expanded rows with multi-line entries + photo attachment; much taller than empty state (324px)

The 232px height difference from Screen 1 (956px vs 1188px) comes entirely from the data section expanding when entries are filled in. This demonstrates the dynamic height behavior you described โ€” filled data pushes elements down.

Screens 3 & 4 โ€” Pregnancy, Data Tab
Nodes: 4232-96792 (896px) ยท 4232-99421 (1056px)
LayerHeightNotes
Status bar โ†’ Month Nav Bar146pxSame iOS chrome stack
Calendar grid (Preg)270pxPregnancy calendar โ€” weeks pregnant in top-left slot; activity icons (milestone, doctor, notes)
No Bulk Editโ€”Bulk edit section absent in pregnancy mode
Calendar Legend68pxShorter than fertility legend (no action button); pregnancy icon set
Time Callout44pxโ€”
Pregnancy - Notes selector44pxiOS Segment Buttons Group โ€” "Data" tab selected
Data Categories (empty)324pxScreen 3: all empty โ†’ 896px total
Data Categories (filled)484pxScreen 4: entries filled โ†’ 1056px total (+160px from expanded entries)
Screens 5 & 6 โ€” Pregnancy, Notes Tab (iOS)
Nodes: 4232-101744 (720px) ยท 4232-102909 (992px)
LayerHeightNotes
Status bar โ†’ Month Nav Bar146pxSame iOS chrome
Calendar grid (Preg)270pxSame pregnancy calendar
Calendar Legend68pxSame pregnancy legend
Time Callout44pxโ€”
Pregnancy - Notes selector44pxiOS Segment Buttons Group โ€” Notes tab selected
Notes empty (3 items)148pxScreen 5: Doctor Appt + Note + Milestone, all empty โ†’ 720px total
Notes filled (3 items)420pxScreen 6: All 3 filled with text + 2 photo attachments โ†’ 992px total (+272px)

Notes tab uses the single-column layout (Data Catagrories - Single) which supports photo attachments that expand significantly when filled.

Screens 7 & 8 โ€” Pregnancy, Notes Tab (Android)
Nodes: 4437-68202 (694px) ยท 4437-68213 (966px)

Android versions of Screens 5 & 6. Key structural differences from iOS:

DifferenceiOSAndroid
Status bar height54px24px
Calendar top offset146px (54+48+44)116px (24+48+44)
Total height (empty notes)720px694px (โ€“26px = shorter status bar)
Total height (filled notes)992px966px (โ€“26px)
Tab selectoriOS Segment Buttons GroupAndroid Data Selector Tab (underline style, 48px height)
FABNot shown (iOS uses other patterns)Would appear in bottom-right โ€” not visible in this comp as it floats above content
๐Ÿ”—Figma nodes: Screen 1 3635:36619 ยท Screen 2 4232:97838 ยท Screen 3 4232:96792 ยท Screen 4 4232:99421 ยท Screen 5 4232:101744 ยท Screen 6 4232:102909 ยท Screen 7 4437:68202 ยท Screen 8 4437:68213.
๐ŸŒ Global

Modals

Modal dialogs used throughout the app for confirmations, explanations, and contextual actions. Three variants currently designed from the rebrand sprint. Legacy codebase contains many additional modal patterns (Alert_No-button, Alert_1-button, Alert_Picker-field, Alert_with-img, Alert_Fun-style, and others documented in the Figma debug menu) โ€” these are being documented progressively as they surface in active Jira tickets.

โ„น๏ธCoverage note: The screenshot above shows approximately the full scope of legacy modal variants (Alert_No-button, Alert_1-button, Alert_Picker-field, Alert_Text-box_Destructive, Alert_2buttons_Long-button-text, Alert_No-title, Alert_longer-title_3-buttons, Alert_with-img, Alert_Fun-style). These are legacy debug names. New rebrand versions are designed on a per-ticket basis. Three are documented here. All will consolidate into this section over time.
Modal Pop-Up โ€” Side by Side Buttons
Figma: 2395-75623

iOS-style action sheet modal. White card with rounded corners (radius: 14px), Midnight-colored headline, Body text, and two equal-width side-by-side action buttons. Used during registration to offer Login vs Create Account. Gray 30 border.

Already signed up for Ovia Pregnancy or Ovia Parenting?
Log in using your email and password and we'll help you set up your Ovia app.
Log in
Create Account
ElementTokenValue
Card bgWhite#FFFFFF
Card borderGray 30#C6C6C6
Card radiusโ€”14px
HeadlineMidnight#131967 ยท Headline SemiBold 17/22
Body textCharcoal#231F20 ยท Body Regular 17/22
Button 1 (neutral)Charcoal#231F20 ยท Headline SemiBold 17/22
Button 2 (primary)Royal#1A2188 ยท Headline SemiBold 17/22
Button area heightโ€”62px
Content paddingโ€”24px all sides
Modal โ€” No Buttons (Titled Information Sheet)
Figma: 2395-76531

Full-bleed modal with a Midnight header bar containing the title and a close (ร—) button, and a white body with rich text content including an inline hyperlink. No action buttons โ€” informational only. Used for explaining features like the Ovia checklist.

Your Ovia checklist
ร—

Your Ovia checklist is a list of actions designed to guide you and help you self-manage your journey. It is driven by clinical guidelines and delivered to you based on the clinical programs you are enrolled in, which you can manage here.

ElementTokenValue
Header bar bgMidnight#131967
Title textWhite#FFFFFF ยท Title 3 (Source Serif Pro Regular 20/25)
Close buttonWhiteOvuline glyph U+E627; 49px tap width
Header heightโ€”48px; pt: 12px, pb: 10px
Body bgWhite#FFFFFF
Body textCharcoal#231F20 ยท Body Regular 17/22
Inline linkRoyal#1A2188 SemiBold + underline
Body paddingโ€”16px all sides
Container radiusโ€”6px
Modal Pop-Up โ€” Stacked Buttons (Destructive Action)
Figma: 2395-76532

iOS-style confirmation modal for destructive actions. White card (radius: 14px), Midnight headline, Body text, then two full-width stacked buttons separated by Gray 30 dividers. Destructive action in Error red, cancel in Royal. Used for the pregnancy checklist reset action.

Reset pregnancy checklist
Resetting will clear checked items for your entire pregnancy checklist, not just one trimester.
Reset my pregnancy checklist
Cancel
ElementTokenValue
Card bg/border/radiusWhite / Gray 30Same as Side-by-Side variant
HeadlineMidnight#131967 ยท Headline SemiBold 17/22
DividersGray 30#C6C6C6 ยท 1px height
Destructive buttonError#D0021B ยท Headline SemiBold 17/22
Cancel buttonRoyal#1A2188 ยท Headline SemiBold 17/22
Button row heightโ€”54px each
โš ๏ธThe destructive button uses Error red (#D0021B) โ€” not Fuchsia. This is intentional: Error red signals an irreversible action. Never substitute Fuchsia here.
Legacy Modal Inventory (Undocumented)

The following legacy modal patterns exist in the codebase and have been visually inventoried but not yet fully documented for the rebrand design system. They surface in the debug menu and are being addressed ticket by ticket.

Legacy NameDescriptionStatus
Alert_No-buttonTitle + message, no action โ€” informational onlyLegacy only
Alert_1-buttonTitle + message + single button (e.g. "Single button")Legacy only
Alert_Text-box_DestructiveText input inside an alert (e.g. time picker)Legacy only
Alert_Picker-fieldPicker/selector field embedded in modal (e.g. Yoga / 0 hr 0 min)Legacy only
Alert_2buttons_Long-button-textTitle + body + two stacked full-width buttons with longer textLegacy only
Alert_No-titleBody text only + Cancel + action button โ€” no headlineLegacy only
Alert_longer-title_3-buttonsTitle + 3 stacked button options (e.g. Right/Left/Both sides)Legacy only
Alert_with-imgIllustration/image + body text + button โ€” used for onboarding momentsLegacy only
Alert_Fun-styleLarge illustration, informational scroll, CTA button โ€” rich modalLegacy only
Frame 4044 ("Add pregnancy details")Celebration illustration modal โ€” onboarding pregnancy mode. Has Midnight CTA + Cancel button.In design
๐Ÿ”—Figma: Side-by-Side Buttons 2395:75623 ยท No Buttons (Titled) 2395:76531 ยท Stacked Buttons (Destructive) 2395:76532.
๐Ÿšง Navigation & Chrome

Bottom Navigation ๐Ÿšง

The primary navigation bar at the bottom of the app. Three variants exist: the current Free App bar (5 tabs: Home, Calendar, Health, Coaching, More), the Ovia+ Premium bar (Ovia+ tab replaces Health/Coaching with a prominent crown icon), and an experimental iOS Glass variant exploring the iOS 26 glass aesthetic. All are work in progress โ€” designed but not yet fully implemented.

๐ŸšงWork in progress: All three bottom navigation variants are designed but implementation status varies. The iOS Glass version was fast-tracked due to a lead developer initiative to ensure iOS 26 Glass readiness before the team expected. Treat as a design exploration until implementation is confirmed.
Free App โ€” Bottom Bar (Fert/Calendar/Enterprise)
Figma: 334-52524

5-tab bottom bar for the standard free app. Calendar tab is the active/selected tab in this example. Uses Font Awesome 5 Pro Solid icons with Source Sans Pro labels.

โŒ‚
Home
๐Ÿ“…
Calendar
๐Ÿฉบ
Health
๐Ÿ’ช
Coaching
โ˜ฐ
More
ElementValueNotes
Bar height84px totalIncludes iPhone home indicator area (34px)
Tab widthEqual flex columns (5 tabs)~75px each at 375px width
Icon size22pxFont Awesome 5 Pro Solid
Label size12pxCaption 1; SemiBold when active
Active icon colorFuchsia #E33E69Active tab icon only
Inactive icon colorGray 30 #C6C6C6โ€”
Label color (all)Charcoal #231F20Active label is SemiBold; inactive is Regular
Tab orderHome, Calendar, Health, Coaching, MoreCalendar active in this variant
Ovia+ Premium โ€” Bottom Bar
Figma: 126-21126

Premium app bottom bar where Ovia+ replaces the Health/Coaching slots. The Ovia+ tab uses a custom crown icon (SVG image) with a circular badge treatment. Tab order: Home, Calendar, Ovia+, Coaching, More. Calendar remains the active tab in this example.

โŒ‚
Home
๐Ÿ“…
Calendar
โ™›
Ovia+
๐Ÿ’ช
Coaching
โ˜ฐ
More
Difference from Free AppValue
Inactive icon/label colorGray 40 #929292 (slightly lighter than Free App's Gray 30)
Ovia+ tab iconSVG crown image in circular container โ€” not a font glyph
Label for middle tab"Ovia+" โ€” text only (icon is the crown image)
Home indicator colorCharcoal #231F20 (vs black in free app)
iOS Glass Tab Bar โ€” Experimental ๐Ÿšง
Figma: 334-52497

An exploratory iOS 26 Glass-style tab bar. Uses SF Pro fonts (not Source Sans Pro), Apple's native tab bar glyphs (SFSymbols), glass blur + fill background treatment, and a Blush 20 pill for the selected tab. This was designed ahead of schedule at the request of the development lead and is not yet in the implementation queue.

โ—†
Home
โ–ฒ
Calendar
โŠ•
Ovia+
โœฆ
Coaching
โ–ช
More

Note: Icon shapes above are approximations โ€” actual Figma uses SFSymbols glyphs only available via SF Pro font.

ElementValueNotes
ContainerGlass blur + fill pill, radius ~296pxBackdrop-blur: 20px + hard-light mix-blend; bg: #F7F7F7 ~67% opacity
FontSF Pro (Regular/Medium/Semibold)Not Source Sans Pro โ€” Apple native font
Icon size17px SFSymbols glyphsfontVariationSettings: 'wdth' 100; featureSettings: 'ss16'
Label size10px, 12px line-heightActive: SF Pro Semibold 590 weight
Active selection bgBlush 20 #FEF4F5Rounded pill behind active tab
Active colorFuchsia #E33E69Icon + label both Fuchsia
Inactive colorGray 40 #929292โ€”
Paddingpt: 16px, pb: 25px, px: 25pxOuter container accounts for safe area
โš ๏ธThis variant requires SF Pro font and SFSymbols โ€” it cannot be replicated in the browser with web fonts. The visual here is an approximation. Refer to the Figma source for the actual glyph designs. HIG reference: developer.apple.com/design/human-interface-guidelines/tab-bars
๐Ÿ”—Figma: Free App bottom bar 334:52524 ยท Ovia+ bottom bar 126:21126 ยท iOS Glass tab bar 334:52497.
๐Ÿšง Primitives

Iconography ๐Ÿšง

A planned reference library for all icons used across Ovia โ€” legacy Ovuline font glyphs, Font Awesome 5 Pro usage, and the new rebrand SVG icon set. This section will grow into a downloadable asset index covering both legacy and rebrand icon systems, a persistent request from the development team.

๐ŸšงWork in progress: This section is a placeholder. The full iconography library โ€” including a searchable, downloadable index of all legacy and rebrand icons โ€” is planned. Partial icon coverage exists in the Calendar component sections (Day Icons Legacy, Day Icons Rebrand, Data Icons Legacy 18ร—18, Calendar Icons Themes + BC).
Icon Systems Overview
SystemFormatWhere UsedCoverage
Ovuline icon fontCustom icon font (Ovuline)Calendar day icons, bottom nav, modal close button, data section icons (18px)Partial โ€” see Calendar sections for glyph reference
Font Awesome 5 Pro SolidFA5 Pro fontBottom nav tabs, pregnancy calendar icons (doctor, notes)Partial โ€” glyph codes in Calendar docs
SFSymbols (iOS native)SF Pro font glyphsiOS Glass tab bar onlyGlyphs not reproducible in web context
Rebrand SVG iconsIndividual SVG image filesCalendar day icons (12ร—12), Data icons futurePartial โ€” see Cal โ€” Day Icons (Rebrand)
Planned: Downloadable Icon Index

The goal for this section is a web-viewable, searchable table where:

  • Each legacy icon is shown alongside its Ovuline glyph code and semantic name
  • Each rebrand icon is shown as an SVG preview with download link
  • Legacy โ†’ rebrand pairings are shown side-by-side where applicable
  • Developers can filter by context (calendar, data, navigation, etc.)
  • SVG assets can be downloaded individually or as a batch

This addresses the standing developer request for a self-service icon resource. Timeline: to be built once the rebrand SVG icon set is finalized and exported from Figma.