Skip to content

Photos & People

Lyra is the app the other three are not: content rather than figures. A feed of pictures from people you follow, a grid of everything else, a composer that argues back, and the profiles behind all of it — built entirely from AWC UI components.

Open the applicationSwitch framework, theme, density, direction and language from inside the app.

All five are live, and the control bar switches between them without losing your place. Every person, caption, comment, timestamp and picture comes from @awc-ui/showcase-kit, so the only thing that differs between them is the view layer — which is what makes two screenshots comparable evidence.

BuildOpenHow it rendersWhere the language lives
HTML/html/Static pages, written at build time — no framework at allIn the URL — a page per locale
React/react/Single-page app — Vite, no meta-frameworkClient state — switches in place
Vue/vue/Single-page app — Vite, no meta-frameworkClient state — switches in place
Angular/angular/Single-page app — client-rendered onlyClient state — switches in place
Svelte/svelte/Single-page app — Vite, no meta-frameworkClient state — switches in place
ScreenWhat it showsWhere it leads
FeedThe story rail, then posts from the people you follow — newest first, twelve at a time, each with its pictures, its actions, its caption and the first commentsA post, or a person
ExploreEverything on Lyra as a square-cropped grid, one tile in seven spanning two columns, behind ten topic facets and a search over peopleA post
CreateA four-step composer — pick a picture, write a caption, choose an audience, check it — with the preview live beside it the whole wayNothing: nothing is ever posted
ActivityTwenty notifications grouped by age, unread ones marked, each naming who did what to which postA post, or a person
ProfileYour own: the header, four counts, and three tabs over posts, saved and taggedA post
PostOne picture at full ratio with its thread beside it — comments in reading order, replies indented under what they answer, and a box to add oneA person
PersonSomebody else’s profile — the same header and grid, plus a follow button, minus the tabs that are yours rather than theirsA post

A social app was chosen because it asks for the things the three consoles do not: content instead of figures, pictures instead of tables, and a timeline measured in “3h ago” rather than in dates.

  • Relative time, against an instant rather than a clock. Every timestamp is rendered through formatRelativeTime(at, REPORTING_INSTANT), so the feed says the same thing today as it will next year — and the <time datetime> keeps the real ISO instant, because “3h ago” is useless to anything parsing the page.
  • A carousel that must not navigate. The pager buttons sit inside a card whose picture is a link to the post. Wrapping the frame put the buttons inside the anchor, so paging to the next picture opened the post instead — a control inside a link is broken twice over, and it is invisible to every check that does not press it.
  • Layout that cannot reflow. Each image’s aspect ratio travels on the record and is applied before the picture decodes, because a feed that lets images size themselves reflows every post below the one that just arrived.
  • A stepper that refuses. The composer vetoes its own step change on mdBeforeChange — the cancelable one — so an empty step says why at the step that is actually invalid, rather than at the end of four clicks.
  • Overlays that carry their own contrast. A duration badge or a pinned mark sits on a picture, not on a surface, so it cannot borrow the page’s colours. Every one of them pairs inverse-surface with inverse-on-surface, and the browser test asserts the pairing rather than a hex value.
  • Three languages including a right-to-left one, and the CONTENT is translated — which is the claim this vertical makes and the three consoles do not. Captions, bios and comments are dictionary entries, not fixture strings, so an Arabic reader gets an Arabic feed rather than Arabic chrome around English prose.

Lyra, its twenty-four people, their captions, bios and comments are invented, and this is the vertical where that warning is load-bearing: the three consoles invent a bank, this one invents PEOPLE, with faces and opinions. That is why the disclaimer sits in the app bar on every screen rather than at the bottom of one. No real person, place or account is represented, and none of the artwork depicts anyone.

The fixture holds 42 posts over 66 pictures, 115 comments, 20 notifications and 10 topics, all generated from one seed and internally consistent — a reply always answers a comment on the same post, every comment’s author exists, and the counts on a profile reconcile with the posts under it.

Every timestamp is measured from a fixed reporting instant of 30 September 2026, 18:20 UTC, not from the clock.