Aurum, set for iOS.
Frank Ruhl Libre · Inter · JetBrains Mono — the system’s three voices, in SwiftUI.
Jar’s design system, generated from the same Figma file as
Aurum for Android. Tokens, icons and components
stay 1:1 with what ships on main.
What shipped in v0.2.3
30 Jul 2026AurumSectionHeaderAction.linknow renders neutral-subtle, matching its Figma master (5442:462). The link action was styled identically to thetextaction —Title/XS-SemiBoldininteractive.textPrimaryNormal(brand purple) with a 20pticonPrimaryNormalchevron — so "View All / See More" links shouted as loudly as the section title and were indistinguishable from a brand text-button. The sheet'saction linklayer specifiesBody/S-Mediumininteractive.textNeutralSubtlewith a 12ptinteractive.iconNeutralSubtlechevron; the component now follows it.textis unchanged and remains the brand-emphasis option. Consumer impact: every existinglinkaction becomes grey and one step smaller — intended, but visible. Mirrors aurum-android 0.3.29.surface.textStaticBlackDisabled/surface.iconStaticBlackDisabledwere#121212; Figma and Android say#000000(same 32% alpha). The token-codegen carried a deliberate "normalize_global-colors/neutral/ black/100to paletteblack100for Android parity" mapping whose premise was false — verified against the live Figma file (alias chain walks to#000000@0.32) and Android's manifest (ships#000000). The mapping also silenced the codegen's own alias-integrity check. Removed: aliases into collections outside the primitives export now inline Figma's resolved value verbatim (andcolors/*misses still hard-fail). Surfaced by aurum-mcp's cross-platform token-parity check at merge time.- Portal redesigned as a specimen book (
tooling/gallery/): the presentation layer is now the locked Aurum-portal design system (tooling/gallery/design.md, shared with aurum-android; platform lens tokens are the only divergence). Newspaper masthead with the version as the issue line, live type specimens rendered from real tokens on the landing page, hairline plates instead of cards, tabular spec sheets on component pages, typographic Do/Don't columns, a build-facts colophon footer, full OKLCH tokenisation (tooling/gallery/tokens.css), in-place copy feedback, and a platform-lens colour drawn from the system's own palette (iOS = visual.blue.600). Verified at 320/375/768/1440 px with no horizontal scroll; light + dark.
How a change ships
Snapshots catch it
Any visual change fails its baseline test on the pinned simulator — iPhone 17 Pro, iOS 26.5. The diff is the review.
CI re-records
Approving means adding the record-baselines label. CI
re-records on the pinned simulator and commits the new baselines to the PR.
The portal follows
Every merge to main regenerates this site, the manifest and
the catalog app — nothing here is written by hand.
One Figma file
Every Figma-backed component carries a .figma.swift mapping —
27 component and 178 icon
mappings publish to Dev Mode from each release tag, with exact token references
like Aurum.colors.surface.bgPageBase.
Two platforms, one contract
The token layer is generated from the same Figma Variable exports as the
Compose library — same names, same values, same icon set. If it exists on
Android as Aurum.space.s16, it exists here too.
Agents read this portal as data: the full catalog ships as a manifest at
/data/manifest.json.
Install
Swift Package Manager, iOS 17 or later. Pin exact —
patch releases are the only channel while the library is pre-production.
.package(
url: "https://github.com/Changejarapp/aurum-ios.git",
exact: "0.2.3"
),
.product(name: "Aurum", package: "aurum-ios"),
.product(name: "AurumTokens", package: "aurum-ios") // extension-safe