Skip to content

feat: preset visual thumbnails — show aspect ratio preview in the preset dropdown #672

Description

@magic-peach

The preset selector currently shows text labels like "Vertical 9:16" and "Square 1:1". Adding small visual aspect ratio thumbnails next to each label would make the options much easier to scan and understand at a glance.

What to build

Add a small SVG or CSS rectangle thumbnail next to each preset label in the PresetSelector component. The thumbnail should:

  • Show the correct aspect ratio (e.g. a tall narrow box for 9:16, a wide box for 16:9)
  • Use the design system colours (var(--border) fill, var(--accent) border)
  • Scale consistently (fit within a ~24x24 px bounding box)

Preset aspect ratios to cover (from src/lib/presets.ts):

  • 9:16 (vertical), 16:9 (horizontal), 1:1 (square), 4:5, 4:3, 3:4, 21:9, 9:21, 2:3, 3:2

Files to modify

  • src/components/PresetSelector.tsx — add thumbnail next to each option label

Acceptance criteria

  • Each preset option shows a visual aspect ratio thumbnail
  • Thumbnails are correctly proportioned (9:16 is visibly taller than 16:9)
  • Thumbnails use theme tokens (work in light and dark mode)
  • No new package dependencies (pure SVG/CSS)
  • Dropdown still works correctly on mobile

Screen Recording Required

Your PR for this issue must include a screen recording showing the feature working on your local machine (bun run devhttp://localhost:3000). PRs without a recording will not be merged.

See CONTRIBUTING.md for how to record.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    duplicateThis issue or pull request already existsgood first issueGood for newcomers and beginnersgssoc'26GirlScript Summer of Code 2026level:beginnerBeginner level - 20 ptstype:designUI/UX designtype:featureNew feature

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions