Skip to content

feat(brand): join the suite's shared silhouette - #33

Closed
ClaraVnk wants to merge 1 commit into
mainfrom
feat/suite-identity
Closed

ClaraVnk wants to merge 1 commit into
mainfrom
feat/suite-identity

Conversation

@ClaraVnk

Copy link
Copy Markdown
Contributor

Ce dépôt rejoint la silhouette commune

La suite Ghost partage désormais une seule silhouette, extraite du logo de ghostbit — un PNG qui n'avait aucune source vectorielle, ce qui est précisément pourquoi « dériver les autres à partir de lui » n'avait jamais été possible.

Masque des pixels opaques et colorés → amincissement de Zhang-Suen jusqu'au squelette d'un pixel → Ramer-Douglas-Peucker → lissage Catmull-Rom. Vérifié par superposition sur l'original.

Ce dépôt n'avait aucun fichier d'identité

Il reçoit la même silhouette, la même queue et les mêmes tirets que les sept autres. Seuls le glyphe intérieur et les trois teintes lui appartiennent.

Les teintes ont été choisies dans les vides de la roue laissés par les cinq premiers produits — deux teintes voisines deviennent le même produit dans une grille de lanceur, et c'est exactement là qu'on les voit tous à la fois.

Le favicon n'est pas le logo réduit

À 16 px, un trait de 22 unités sur 548 fait six dixièmes de pixel et disparaît. Le favicon est donc le chemin du logo, refermé et rempli, avec le glyphe creusé dedans — même créature, autre poids.

Reproductible

Généré par tools/brand/ghost_suite.py dans apollo-platform. Retoucher un PNG à la main le rend faux au passage suivant, et personne ne s'en aperçoit avant de le voir dans un onglet.

https://claude.ai/code/session_01VkjRtF2o4Xjht4pEjKesEg

The Ghost suite now shares one silhouette, extracted from ghostbit's logo — a
PNG that had no vector source, which is why "derive the others from it" had
never been possible. Mask the opaque coloured pixels, Zhang-Suen thinning to a
one-pixel skeleton, Ramer-Douglas-Peucker, Catmull-Rom smoothing, verified by
superimposition on the original.

This repository had no identity files at all. It gets the same silhouette,
tail and dashes as the other seven; only the interior glyph and the three hues
are its own. The hues were picked from the gaps left on the wheel by the first
five — two neighbouring hues become the same product in a launcher grid, which
is exactly where they are all seen at once.

The favicon is not the logo shrunk: at 16 px a 22-in-548 stroke is six tenths
of a pixel and vanishes. It is the logo's own path, closed and filled, with the
glyph carved out — same creature, other weight.

Generated by apollo-platform tools/brand/ghost_suite.py. Retouching a PNG by
hand makes it wrong at the next run, and nobody notices until they see it in a
tab.

Claude-Session: https://claude.ai/code/session_01VkjRtF2o4Xjht4pEjKesEg
@ClaraVnk ClaraVnk closed this Aug 25, 2026
@ClaraVnk
ClaraVnk deleted the feat/suite-identity branch August 25, 2026 13:45
ClaraVnk added a commit that referenced this pull request Aug 26, 2026
Le logo officiel existait, et il était sous la main : `assets/logo/` a été mis à jour sur
main par « feat(brand): join the suite's shared silhouette » (#33), après la création de
cette branche. `feat/ios-app` en portait donc une version périmée — le fantôme bleu au
trait — pendant que main avait déjà `favicon.svg`, `ghostpass.png` et `icon-512.png` aux
teintes de la suite.

GhostPass est **violet** : #B79CFF → #7B4DFF → #3E1DA8. Ni le bleu de la version périmée,
ni le cadenas de la web app. Les quatre fichiers sont repris de main tels quels.

L'icône dérive de `assets/logo/favicon.svg`, la variante remplie — celle que ghostboard
emploie comme icône, et la seule qui tienne aux petites tailles. `tools/ios/make-app-icon.sh`
la régénère et n'écarte de la source que sur deux points, tous deux justifiés dans le
script : le cadrage recentré sur le tracé, et le fond aplati en blanc faute de pouvoir
laisser une icône transparente.

Rien n'est redessiné : la reconstruction que j'avais faite à partir de ghostlink est
supprimée, elle n'a plus lieu d'être.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016AbzwMAWY2PEnXK4WvZq3h
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant