Repository navigation
design(achievements): add artwork (game cartridge) - #247
Merged
Merged
Conversation
JumpLink
marked this pull request as ready for review
October 15, 2026 15:25
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this is
Draft artwork for app achievements — five pieces, each as an earned and a locked SVG, under
packages/app-gnome/data/achievements/next to the app icon. Nothing is wired into the app's logic:there is no achievement engine, no storage, no unlock condition. This PR is here to look at.
The first round used one seal for all three apps, only recoloured. That was rejected for good
reason, so this is a different approach: every app gets its own object world, and only the frame
is shared.
The object: a game cartridge
A cartridge shell with an edge connector and its pins on the left, grip ridges on the right, and a
framed label in the middle. What changes per achievement is only the motif on the label — the same
way a cartridge collection looks on a shelf.
open-sourcesupporterfirst-chapterfirst-programgame-playedThe three marked optional are a proposal, not a commitment — they need app-side state that does
not exist yet.
open-sourceandsupporterneed nothing butpurchased().The shared frame (this is the reusable part, gjsify#2233)
Every piece is a 192 × 96 SVG (2:1 landscape) on a 2 px grid, drawn for raster heights 48 and 96
logical px, and exists twice: earned, plus a locked state that keeps the same geometry as a muted
silhouette in a rest of the app's own hue, so a locked row still reads as this app.
Titles and descriptions are not in the SVG — they come from gettext and are drawn by the widget
in the text column next to the artwork, which is also why the frame is landscape: the piece sits
left, the text right. No raster images, no filters, no baked shadows, no
<text>; gradients andclip paths only.
How "Supporter" stands out
It is meant to be the piece you want: a gold shell instead of the blue one, a holographic foil
stripe running across the label, and two sparkles on the shell.
open-sourceis deliberately theplain, friendly starter piece — same cartridge, brand colours, no foil.
What I would like reviewed