UI/UX case study · iOS · Figma-ready

Lumé: taking an AI-generated beauty and fashion app to production quality

A common starting point: a design generated by an AI tool that looks plausible at a glance but falls apart in spacing, type, contrast, tap targets and consistency. Below, four screens of a beauty and fashion shopping app, before and after a refinement pass, with the reasoning behind each decision and the tokens a developer needs to build it.

iPhone only · 390 × 8448-pt gridWCAG AA contrast44 pt tap targetsLight and dark ready tokens

This is a design concept with fictional products and data. It is not a client's app and not any real brand. The “before” screens recreate typical defects of an unrefined AI-generated design; they are not taken from anyone's product.

Design system the screens are built on

Every value on the “after” screens comes from this set. Nothing is hand-nudged, so developers can map it one-to-one to SwiftUI or UIKit.

Colour

bg#FBF8F5 surface#FFFFFF ink#1D1A1F muted#625B67 accent#5B2A4E soft#F3E6EF success#1F7A4D warning#B4541A

Muted text on bg: about 5.9:1. Accent button label: about 11:1. Before: muted text was about 2:1.

Type scale (SF Pro / system)

RoleSize / lineWeight
Title28 / 32700
Heading20 / 26650
Body16 / 24400
Secondary14 / 20400 / 550
Caption12 / 16500

Five steps instead of eleven. Dynamic Type supported: all sizes scale relative to Body.

Spacing, radius, targets

TokenValue
Space4 · 8 · 12 · 16 · 24 · 32
Screen margin16
Radius12 · 16 · pill
Button height52
Min tap target44 × 44
Icons24 · 1.75 stroke · round caps

What the developer receives

A refinement pass is judged by how little a developer has to guess.

Figma file

  • Auto layout on every frame, no loose absolute positions
  • Variables for colour, spacing, radius; text styles for the five roles
  • Components with variants: button (primary, ghost, disabled, loading), chip, card, tab item
  • Light and dark modes mapped to the same variables

States that were missing

  • Loading skeletons, empty bag, offline
  • Out-of-stock size, low-stock hint
  • Error under the field, not a toast
  • Pressed, focused, disabled for every control

Delivery notes

  • Safe areas: status bar 54 pt, home indicator 34 pt
  • Spec for iPhone SE to Pro Max widths
  • Haptics, motion durations (200 and 350 ms), reduce-motion fallback
  • Asset export: SF Symbols mapping, 1x/2x/3x images