Overlays & Modals
Overlays and modals should feel light and focused, presenting information or actions without overwhelming the user.
General Specifications
Container
- Background: white or very light Parchment variant
- Corner radius: 16–20 pt (slightly more rounded than cards for prominence)
- Shadow: Medium elevation, Ink Blue (
#233548) at 12% opacity - Max width: 400–500 pt on tablet/desktop (smaller on mobile)
Overlay Background
- Scrim: Dark overlay (black at 40–50% opacity)
- Dismissible: Tap outside to close (for non-critical modals)
Dialog Types
Information Dialog
Present information with optional action buttons
- Title:
AppTypography.heading(20pt, w600, sans-serif) - Body:
AppTypography.body(16pt, w400, sans-serif) - Padding: 24 pt all sides
- Button row: Right-aligned, 12 pt spacing between buttons
Action Sheet
Present multiple action options
- List of action buttons
- Each item: 44–48 pt height
- Clear visual separation between destructive and normal actions
- Destructive actions: Error color (
#C44545) - Normal actions: Ink Blue (
#233548)
Bottom Sheet
Slide up from bottom on mobile
- Full-width on mobile
- Corner radius: 16 pt on top corners only
- Handle bar: Optional, 4 pt height, 32 pt width, centered at top
- Max height: 90% of screen
Specific Overlays
Book Info Overlay
Displays detailed book information
- Large book cover at top
- Book title:
AppTypography.bookTitleLarge(22pt, w700, serif) - Author:
AppTypography.author(14pt, w400, serif) - Description and details in card typography
- Action buttons at bottom
Browser's Speech Bubble
When Browser the cat provides help
- Small card with rounded corners
- Dark background (Ink Blue
#233548) - Light text (Parchment
#FAF4E8) - Small arrow pointing to Browser illustration
- Clear, concise text (2–3 sentences max)
- Corner position, doesn't block main content
Wishlist Picker
For adding books to wishlists
- Simple list of user's wishlists
- Each item: 44 pt height
- Selected state: Teal Edge (
#4BB4C8) background - "Create new wishlist" option at bottom
Guidelines
- Keep overlays focused on a single task or piece of information
- Avoid nesting modals (modal on top of modal)
- Use clear dismiss mechanisms (X button, tap outside, or explicit Cancel button)
- Respect the spacing and typography rules from the main design system
- No emoji in overlay text
Flutter Component
Flutter should define:
- Reusable overlay/modal components following these specifications
- Consistent animation patterns (fade in scrim, slide or fade in content)