feat: the apps' icons as one family, drawn by one tool (ADR 0031)

tool/app_icons.py at the root replaces Learn's and Todo's scripts: each
app's Lucide glyph (lucide-static 1.50.0) drawn by librsvg, fading from
cobalt through the colours ADR 0031 names, then every platform's
launcher icon through flutter_launcher_icons, Windows' .ico with every
size, and Learn's snap icon.

Learn's icon becomes the graduation cap, its window's on Linux too, with
Lucide's notice in its licence list; the kingfisher stays the emblem on
the rail and the launch screen. Todo's becomes list-todo, Train's bike.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-28 10:42:47 +01:00
commit ece9ce9697
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -18,6 +18,6 @@ against an instance with `flutter run --dart-define=SERVER_URL=https://…/` in
and `dart run melos run test:flutter --scope=halkyon_train_flutter` at the repository's
root, or `dart run tool/check.dart` for everything.
The app's icon is to be [Lucide](https://lucide.dev)'s `bike` (ISC licence, ADR 0031);
until it is drawn, Train carries Todo's. Licences: the server under the SSPL, the client
The app's icon is [Lucide](https://lucide.dev)'s `bike` (ISC licence, ADR 0031), drawn
by the repository's `tool/app_icons.py`. Licences: the server under the SSPL, the client
and the app under the AGPL ([`LICENSE.md`](../../LICENSE.md)).