iOS Grouped
Inset grouped lists on a grey field, with separators that stop short of the edge.
Construction · Well
Content sits in a shallow well cut into the page: a slightly darker floor, a soft shade at the top of the cut, and a light line where it comes back up.
Every style renders this same screen, so the only thing changing between two of them is the style. The component above is the file below, running.
Prompt
Design this interface in the iOS Grouped style. Content sits in inset rounded groups on a light grey field. Separators are hairlines inset from the leading edge, and the accent is a single system blue used only for
The numbers in this prompt are printed from the tokens below, so it cannot drift from what the specimen renders.
What carries the look
- inset grouped lists
- grey field behind white cards
- system blue accent
- hairline separators
What this style refuses
- borders around cards
- drop shadows on list groups
- more than one accent color
- uppercase labels
The refusals are the half that keeps generated interfaces from converging — a prompt that only says what to add gets the default look.
Tokens
Palette
#f2f2f7#000000#ffffff#1c1c1e#d8d8dd#38383a#1c1c1e#f2f2f7#5b5b60#9d9da3#0a63c9#5aa9f8#ffffff#00142bShape and type
Measured contrast — body 15.25:1 light, 18.82:1 dark; secondary text 6.05:1 and 7.79:1. Every pair clears WCAG AA in both themes, checked on each build.
Specimen · Specimen.tsx
import type { CSSProperties } from "react";
/**
* Vibary · iOS Grouped
*
* Inset grouped lists on a grey field, with separators that stop short of the edge.
*
* One complete product screen, rendered from the token object below —