Saga Experiments
Saga · Profile → Experiments

Every switch, off and on

The nine switches from PRs #22 and #24, each shown as a live demo with the switch off on the left and on on the right. Everything here is interactive: drag the cards, scroll the page, tap the tabs. Decide which ship on, which ship off, and which get deleted, then comment on #35.

Recreated in the browser from the app's own rune paths, colours, timings and logic; not screenshots. Haptics can't be felt on the web, so they're drawn as beats (and buzz on Android if your browser allows it).

Rune tab icons

runeTabsDefault onPR #22

The tab bar uses the Saga runes instead of system symbols: Raidho (the journey) for Explore, Ansuz (the mark) for Swipe, and today Jera for Library. The label always stays, so nobody has to learn the runes.

Off falls back to SF Symbols on iOS and Material Symbols on Android and web. The Library rune is still open in #36; Jera reads like the banned Sowilo at this size.

Off
Tap a tab
On
Tap a tab

Stave rail

staveRailDefault onPR #22

Long pages (movie and TV detail today) get a thin stave on the right edge with one branch per section. The current section's branch lights ochre, its name appears while you scroll, and tapping a branch jumps there.

It's a scroll position indicator and a section index in one, drawn like the mark's stave and branches.

Off
Scroll inside the page
On
Scroll, or tap a branch

Deck tally

deckTallyDefault onPR #22

Twelve small staves under the swipe card count through the current batch. The card you're on is the tall ochre stave; ones you've swiped are bone.

A batch of 12 is a "chapter" of the deck; finishing one is what triggers the three-cut haptic below.

Off
On

Carve haptics

carveHapticsDefault onPR #24

Saga's haptic signature. While dragging, a light cut fires the moment the card crosses a threshold (and a softer tick if you pull it back). When the swipe lands: one cut for pass or seen, two for watchlist, three when it completes a batch of 12. Beats are 70 ms apart.

Off keeps today's single light tap when a swipe lands and nothing during the drag. Drag slowly past the edge to feel the threshold cut.

Off
On

Swipes leave a trace

swipeTraceDefault onPR #24

Things land somewhere. A swiped card's stave pops into the tally, and a watchlisted card (swipe up) makes the Library tab rune jump and re-carve, so you see where it went.

Off: the card just leaves. Try "Watchlist" on both sides and watch the tab bar.

Off
On

Carved runes

carveMotionDefault onPR #24

Runes are carved, never faded in: they draw stroke by stroke, the stave first, then the branches. The loading indicator becomes the mark carving itself on a loop, and a tab's rune re-carves when you select it.

Off: the system spinner and static tab icons. With Reduce Motion on, carved runes simply appear.

Off
Loading · tap a tab
On
Loading · tap a tab

Tilt sheen

tiltSheenDefault onPR #24

The swipe card's glass sheen slides across it as you tilt your phone (the device's rotation sensor) and as you drag. On the web it follows the drag only.

It's what makes the card feel like a physical pane of glass. Here, move your pointer or finger across the card.

Off
Move across the card
On
Move across the card

Poster colours

posterTintDefault onPR #24

During sync the server extracts two colours from each poster: a vibrant glow tone and a muted deep tone. Swipe cards fade into the muted tone instead of basalt, and title pages get a soft glow in the vibrant one. Ochre stays the only interactive colour.

These colours are computed live in your browser with the same algorithm as poster-colors.ts, run on the sample poster art. Needs the server half of #24 deployed to work in the app.

Off
On

Personal rune

runeSigilDefault onPR #24

A user without a profile photo gets a bind-rune generated from their user id: one stave plus branches, always the same for that person. The generator can never produce the Saga mark or any banned rune (Tiwaz, Algiz, Yr, Sowilo, Othala).

These are the real outputs for user ids 1–8, from the same algorithm as sigil.ts.

Off
On