whiskers.git / crates / whiskers-icons

whiskers-icons

The pixel icons Whiskers may draw for what it remembers, and how to read them. A child who cannot read needs a picture on every card; these are the pictures.

The icons are shuqikhor/pixel-icons by shuqikhor, vendored unchanged in third-party/pixel-icons. Not all of them are for a young child. The decision is data, in allowlist.txt, and it is the file to read when reviewing: one line per icon of the pack, + admitted or - excluded with the reason. The only reason to exclude one is that it does not suit a young child.

What is admitted and what is not (357 icons in the pack)

Category of the packAdmittedExcludedWhy those are out
Animals540
Dinosaurs40
Fruits, Vegetables and other Ingredients210
Food and Drinks472beer, wine: alcohol
Objects832credit-card, dollar: money
Logos391paypal: money and payments
Games70
Pokemons180
Memes54stonks, take-my-money: money; sad-pepe: not for a young child; this-is-fine: a room on fire could frighten
UI4426text-editor, file and mail buttons; warning signs (alert-*); scissors, wrench: not pictures of anything a child would tell Whiskers about
Total32235

The UI icons admitted (arrows, speaker, battery, star, thumbs, user, bell, ...) are for the app's own menu; a fact is given a picture of a thing (IconId::depicts_a_thing), never one of those. The pack has no check mark, so the green check is drawn by the app.

What is here

FileWhat
allowlist.txtThe curated list. Data, reviewed by the owner.
src/lib.rsIconId: the name of an admitted icon. The only way to make one is to name an admitted entry, so a fact cannot point at an icon that was not admitted.
src/allowlist.rsThe reader of allowlist.txt.
src/raster.rsReads the pack's SVG files into pixels, and refuses anything it cannot draw faithfully.
src/kotlin.rs, src/bin/gen-kotlin.rsWrites the admitted icons as Kotlin data for the app (tools/build-core.sh runs it).
examples/show.rscargo run -p whiskers-icons --example show -- cat bin prints icons as text, to look at.
tests/pack.rsHolds the allowlist to the pack: every file decided once, every name a file, what does not suit a young child stays out, and what she loves is in.