Status: Design System Specification for Engineering & Figma
Room’s interface must feel:
- Native to iOS
- Gesture-first
- Clean and trust-forward
- Emotionally safe
- Modern but restrained
- Familiar without copying Tinder directly
Primary inspirations:
- Tinder (card mechanics)
- Instagram (profile layout + messaging)
- Apple Human Interface Guidelines (HIG)
Room is not flashy or chaotic.
It is confident, structured, and serious.
- Minimum tappable area: 44pt x 44pt
- Primary CTA buttons: 48–56pt height
- Floating icons must include invisible padding if visually smaller
No tappable control may violate 44pt minimum.
- Respect top notch + bottom home indicator
- No interactive element within 16pt of screen edge
- Swipe gestures must not conflict with system gestures
Use San Francisco (System Font).
Type Scale:
- Large Title: 34pt
- Title 1: 28pt
- Title 2: 22pt
- Headline: 17pt (Semibold)
- Body: 17pt
- Subheadline: 15pt
- Caption: 13pt
Avoid custom fonts at launch.
Use an 8pt grid system only.
Spacing increments:
- 8pt
- 16pt
- 24pt
- 32pt
- 40pt
- 48pt
No arbitrary spacing values.
One primary accent color (to be defined in design system).
Used for:
- Primary CTAs
- Like icon
- Verification badge
- Active states
- Segmented controls (selected)
- Background: #FFFFFF (Light Mode)
- Primary text: #111111
- Secondary text: #6B6B6B
- Divider: #E5E5E5
Use iOS System Red for:
- Block
- Report
- Delete account
Must meet WCAG AA contrast.
Bottom Tab Bar (iOS native style):
- Discovery
- Explore
- Likes
- Messages
- Profile
Icons must:
- Use SF Symbols where possible
- Have active/inactive states
- Respect safe area insets
- Full-screen swipe card stack
- Card occupies ~92% of screen height
- 8pt margin left/right
- 16pt top margin
- 24pt corner radius
Top section:
- Full image photo carousel
Overlay bottom 30%:
- Gradient fade for readability
- Name (Title 2)
- Age
- School capsule tag
- Year (Subheadline)
Lower card area:
- Bio snippet (2–3 lines)
- Compatibility highlights (icons or tags)
Swipe Left:
- Dismiss
- 300ms animation
- Slight tilt rotation
- Subtle haptic feedback
Swipe Right:
- Like
- Subtle haptic feedback
- Confirmation animation
Swipe Up:
- Open message composer (modal slide-up)
Tap Left/Right:
- Navigate photos
- No lag or animation stutter
- Velocity-based threshold
- Elastic drag behavior
- Smooth snap-back animation
- 250–300ms ease-in-out transitions
- Spring damping for swipe return
Header:
- Profile photo (40pt)
- Name
- 3-dot menu (Block / Report)
Chat body:
- Sent messages right-aligned
- Received messages left-aligned
- 16pt horizontal padding
- 8pt vertical spacing between bubbles
Composer:
- Fixed to bottom
- Minimum height 44pt
- Rounded input field
- Attachment icon
- Send button
- 18pt corner radius
- Sent: Primary brand color
- Received: Light gray background
- Timestamps grouped (not on every message)
- Vertical scroll feed
- Card-based layout
- Same visual language as Discovery
Top-right:
- Filter icon (minimum 44pt touch target)
No search bar at launch.
Top:
- Segmented control toggle:
- My Likes
- Liked Me
Grid layout:
- 3-column layout
- 8pt spacing between cards
- 16pt screen margin
Free users:
- Blurred grid
- Clear "Upgrade to See Who Liked You" label
Paid users:
- Full visibility
Blur must clearly indicate locked state without deception.
Top:
- Full-width hero image
- Name + age
- School
- Verification badge
Below:
- Bio
- Prompts
- Mode toggle (segmented control)
Scrollable section:
- “Nitty Gritty” details
- Organized into sections
Edit button in top-right.
- Segmented control style
- Clear visual differentiation
- Smooth animation when switching
- Immediate state feedback
Ads must:
- Be visually distinct
- Include “Sponsored” label
- Never mimic user cards
Allowed placements:
- Approx every 10 cards in Discovery
- Between Explore sections
- Likes footer
Never allowed:
- During swipe decision moment
- Inside message composer
- Between card and action buttons
Principles:
- Fast but smooth
- Natural physics
- Never jarring
Standard durations:
- 200–300ms for transitions
- Spring animation for swipe physics
- Slide-up modal presentation
- Swipe-down modal dismissal
Subtle haptic feedback for:
- Like action
- Message sent
- Verification completion
Avoid excessive vibration.
- Minimum 44pt touch targets
- Dynamic Type support
- VoiceOver labels for:
- Swipe actions
- Mode toggle
- Verification badge
- Block / Report
- WCAG AA color contrast compliance
Must be:
- Calm
- Clear
- Trust-forward
Examples:
- “No more profiles right now.”
- “You’re all caught up.”
No sarcasm or meme humor.
- Inline validation messages
- Toast confirmations for minor actions
- Full-screen state for account restriction
- Clear messaging for enforcement states
Room must communicate:
- Safety
- Structure
- Intent
- Seriousness
Not:
- Over-gamified
- Chaotic
- Meme-driven
- Flippant
If a UI decision conflicts with:
- Apple Human Interface Guidelines
- Accessibility standards
- Trust & safety principles
The compliant and safer option must be chosen.
Room prioritizes trust over virality.