The repository is all of Halkyon's apps', so its icon stays Halkyon's emblem (ADR 0031, D3), kept in tool/release/fdroid/ now that the snap's icon is Learn's graduation cap. Learn's listing keeps the snap's. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
58 lines
3.6 KiB
Markdown
58 lines
3.6 KiB
Markdown
# ADR 0031: The apps' icons, one family
|
||
|
||
- **Status:** decided 28 Oct 2026, by the developer (D1–D4 below). Built the same day for
|
||
Learn, Todo and Train by one tool, `tool/app_icons.py` (as *What follows* proposed, the
|
||
developer agreeing); Meditate's comes 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, and as the icon of the F-Droid repository, which is all of
|
||
Halkyon's apps' (the developer's, 28 Oct: `tool/release/fdroid/halkyon.png`). 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.
|