docs(adr): ADR 0030 (Halkyon Train) and ADR 0031 (the apps' icons)
ADR 0030 records what Train does and where its data comes from: running, cycling and rowing, in the order recording, intervals, routes, music; the Polar Loop taken over through Polar's BLE SDK; music from Jellyfin; devices on phones through flutter_reactive_ble; Health Connect both ways through the health package; every row sealed; the WP 5000 an FTMS rower, as scanned; no WaterRower USB driver for now; the Loop's firmware from Polar directly or through the instance; flutter_map, the instance's map source, BRouter as a sidecar, offline use and working with CoMaps; and Train's shell after Todo's. ADR 0031 gives the apps' icons one family: Lucide glyphs fading from cobalt through a colour between into each app's own, Learn's graduation cap, Todo's list, Train's bike, Meditate's circle-dot. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
a0f2ea8de5
commit
2fd39352fc
1 changed files with 294 additions and 0 deletions
57
docs/adr/0031-the-apps-icons.md
Normal file
57
docs/adr/0031-the-apps-icons.md
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
# ADR 0031: The apps' icons, one family
|
||||
|
||||
- **Status:** decided 28 Oct 2026, by the developer (D1–D4 below). Not built yet: Train's
|
||||
icon comes with its shell (ADR 0030, D12), Learn's and Todo's follow, Meditate's with
|
||||
Meditate.
|
||||
- **Builds on:** ADR 0030, D12 (Train's icon is Lucide's `bike`).
|
||||
|
||||
## Context
|
||||
|
||||
Halkyon's apps had no family. Learn's icon is the kingfisher, Halkyon's emblem (a
|
||||
picture, `halkyon_learn_flutter/assets/icon/halkyon_icon.png`); Todo's is Lucide's
|
||||
`list-checks`, its strokes drawn with Pillow in cobalt fading into sky
|
||||
(`apps/todo/tool/app_icons.py`). On 28 Oct, choosing Train's, the developer asked for
|
||||
"a fading of the colors, like in the icons of Proton's services", whose blog post
|
||||
(proton.me/blog/new-visual-universe) says: "Every icon starts with the Proton purple
|
||||
and then fades into the service color", so that the icons read as one family.
|
||||
|
||||
Drawn and compared on 28 Oct (the previews in the session's scratchpad): fading from
|
||||
cobalt straight into one other colour looks, in the developer's words, "bland and odd",
|
||||
cobalt into sky "like everything is completely blue", and cobalt straight into an orange
|
||||
turns grey-brown halfway, as blue and orange are opposite colours. A gradient passing
|
||||
through a colour between them (violet or sky) stays bright.
|
||||
|
||||
## Decisions (28 Oct 2026, the developer's)
|
||||
|
||||
- **D1 Every app's icon is a Lucide glyph on white, fading from cobalt through a colour
|
||||
between into the app's own**, top left to bottom right across Lucide's 24-unit box, at
|
||||
Lucide's stroke width (2), the white tile's corners rounded by the platforms as today.
|
||||
Cobalt is what the family shares, as Proton's purple; the end colours lie apart on the
|
||||
colour wheel, so the icons are told apart small, the shapes doing the rest (Learn's and
|
||||
Train's are related, as are Todo's and Meditate's; the developer kept them so).
|
||||
- **D2 The four**:
|
||||
|
||||
| App | Glyph | Gradient |
|
||||
|---|---|---|
|
||||
| Learn | `graduation-cap` | cobalt `#3C57E5` → violet `#8E4FD6` → strawberry `#EC3E7C` |
|
||||
| Todo | `list-todo` | cobalt `#3C57E5` → pacific `#179FD9` → fern `#3CBB3A` |
|
||||
| Train | `bike` | cobalt `#3C57E5` → violet `#8E4FD6` → strawberry `#EC3E7C` → carrot `#F78400` |
|
||||
| Meditate | `circle-dot` | cobalt `#3C57E5` → pacific `#179FD9` → reef `#1DA583` |
|
||||
|
||||
The stops are evenly spaced. Cobalt is the icon's brighter cobalt Todo's icon uses, not
|
||||
the palette's (`#273EB2`); violet is no palette colour (between cobalt and strawberry);
|
||||
the others are halkyon_ui's palette's.
|
||||
- **D3 Learn's icon becomes the graduation cap; the kingfisher stays Halkyon's emblem**,
|
||||
in the logo and the wordmark. Installed Learn apps change their icon once, when the new
|
||||
one is built, as do F-Droid's listing and the snap's.
|
||||
- **D4 Meditate's glyph is `circle-dot`** (the developer's, over `flower-2`, recommended,
|
||||
`wind`, `sprout`, `leaf` and `flower`): a point to rest the eyes on.
|
||||
|
||||
## What follows (the agent's proposals, to be put to the developer when built)
|
||||
|
||||
- One icon tool for every app at the repository's root, each app naming its glyph and
|
||||
stops, instead of a script per app: Lucide's glyphs have arcs and curves (`bike`'s
|
||||
wheels, `graduation-cap`), which Todo's tool, drawing straight strokes with Pillow,
|
||||
can't draw. librsvg through PyGObject and pycairo (Ubuntu's `python3-gi`,
|
||||
`gir1.2-rsvg-2.0`, `python3-cairo`) renders them exactly; the previews were drawn so.
|
||||
- Lucide's licence (ISC) beside each icon and in each app's licence list, as Todo's is.
|
||||
Loading…
Reference in a new issue