Major update for v1 and tests
64
public/stickers/README.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# Stickers
|
||||
|
||||
Drop sticker images into this folder. They'll be picked up automatically by the editor's Stickers tab on the next page load — there's no manifest to update and no constants file to edit.
|
||||
|
||||
## Filename convention
|
||||
|
||||
```
|
||||
<category>__<sticker_name>.<ext>
|
||||
```
|
||||
|
||||
The **category** comes before the double underscore. The **sticker name** comes after, with single underscores separating words.
|
||||
|
||||
A few examples:
|
||||
|
||||
| Filename | Category | Display name |
|
||||
| -------------------------------- | -------- | ----------------- |
|
||||
| `hearts__pink_heart.png` | Hearts | Pink Heart |
|
||||
| `hearts__beating_heart.png` | Hearts | Beating Heart |
|
||||
| `paws__small_paw_print.png` | Paws | Small Paw Print |
|
||||
| `bones__dog_bone.png` | Bones | Dog Bone |
|
||||
| `pets__golden_retriever.png` | Pets | Golden Retriever |
|
||||
| `stars__sparkle.png` | Stars | Sparkle |
|
||||
|
||||
The category and each word in the sticker name are title-cased when displayed (`pink_heart` → `Pink Heart`). Lowercase your filenames; capitalization is added automatically.
|
||||
|
||||
## Supported formats
|
||||
|
||||
- `.png` (recommended — transparency supported)
|
||||
- `.webp` (transparency supported)
|
||||
- `.jpg` / `.jpeg`
|
||||
- `.svg`
|
||||
|
||||
PNG with transparency is the best choice for print-quality stickers. JPEG is fine for opaque art but doesn't blend onto colored shirts as cleanly.
|
||||
|
||||
## Sizing
|
||||
|
||||
There's no fixed size requirement. The editor places each sticker at 80×80 design units on add (the user can resize from there), and the print export renders the canvas at 4500×4500 pixels — so the sticker is scaled to roughly 1200×1200 px in the final print.
|
||||
|
||||
That math has consequences for source image size:
|
||||
|
||||
- **Small sources (under ~100px)** scale up heavily for print. A 47×47 PNG, for example, is upscaled ~25× to reach print resolution, which produces visible pixel-art / bitmap artifacts. If you *want* that look (deliberate retro / pixel sprites), it's fine. If you want crisp print output, source images should be larger.
|
||||
- **For crisp print output**, aim for at least **600×600 px** sources (matches the print-scale target with room to spare). 1024×1024 is comfortable headroom; beyond ~2048×2048 you're wasting bandwidth without any visible gain.
|
||||
- **Vector (SVG) sources** sidestep the issue entirely — they scale cleanly to any size. Recommended where the artwork allows it.
|
||||
|
||||
The editor preserves aspect ratio on add (the sticker scales to fit an 80×80 box, not stretched to fill it).
|
||||
|
||||
## Categories
|
||||
|
||||
Categories are derived from filenames — there's no fixed list. Adding a file with a new category prefix automatically adds the category pill to the Stickers tab. Removing the last file in a category removes the pill.
|
||||
|
||||
If you want a specific display order for categories, prefix them with a digit (e.g. `1-hearts__pink.png`, `2-stars__sparkle.png`); the leading digit + dash is stripped from the display name but used for sorting. Without prefixes, categories are listed alphabetically.
|
||||
|
||||
## A note on file size
|
||||
|
||||
Images here are bundled into the Vite `public/` directory and served as static assets. They are NOT processed by the build, so file size translates 1:1 to network cost. If your source images are heavy, run them through `pngquant` or `cwebp` before dropping them in:
|
||||
|
||||
```sh
|
||||
pngquant --quality 75-90 --strip --output optimized.png input.png
|
||||
cwebp -q 85 input.png -o output.webp
|
||||
```
|
||||
|
||||
## Lazy loading
|
||||
|
||||
Sticker thumbnails use `<img loading="lazy">`, so only the stickers visible (or near-visible) in the panel are fetched. A library of 200+ stickers won't block the initial page load.
|
||||
BIN
public/stickers/ball__tennis2_001.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
public/stickers/ball__tennis_001.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
public/stickers/balloon__pink_heart2_001.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
public/stickers/balloon__pink_heart_001.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
public/stickers/balloon__pink_paw_001.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
public/stickers/balloon__pink_simple_001.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
public/stickers/balloon__purple_heart_001.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
public/stickers/balloon__purple_paw_001.png
Normal file
|
After Width: | Height: | Size: 77 KiB |
BIN
public/stickers/bed__pet_green_001.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
public/stickers/bed__teal_paw_001.png
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
public/stickers/bird__cockatiel_branch_001.png
Normal file
|
After Width: | Height: | Size: 96 KiB |
BIN
public/stickers/bird__cockatiel_face2_001.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
public/stickers/bird__cockatiel_face_001.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
BIN
public/stickers/bird__cockatiel_full2_001.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
BIN
public/stickers/bird__cockatiel_full_001.png
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
public/stickers/bird__cockatiel_heart_001.png
Normal file
|
After Width: | Height: | Size: 99 KiB |
BIN
public/stickers/bird__cockatiel_seed_001.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
public/stickers/bird__cockatiel_sitting_001.png
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
public/stickers/bird__cockatiel_yellow2_001.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
public/stickers/bird__cockatiel_yellow3_001.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
public/stickers/bird__cockatiel_yellow_001.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
public/stickers/bird__cockatoo_white_001.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
public/stickers/bird__conure_yellow_green_001.png
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
public/stickers/bird__lovebird_001.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
BIN
public/stickers/bird__macaw_blue_yellow_001.png
Normal file
|
After Width: | Height: | Size: 84 KiB |
BIN
public/stickers/bird__parakeet_blue_001.png
Normal file
|
After Width: | Height: | Size: 75 KiB |
BIN
public/stickers/bird__parakeet_blue_perch_001.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
public/stickers/bird__parakeet_blue_seed_001.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
public/stickers/bird__parakeet_green2_001.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
public/stickers/bird__parakeet_green3_001.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
public/stickers/bird__parakeet_green_001.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
public/stickers/bird__parakeet_yellow_001.png
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
public/stickers/bird__parrot_001.png
Normal file
|
After Width: | Height: | Size: 85 KiB |
BIN
public/stickers/bird__parrot_branch_001.png
Normal file
|
After Width: | Height: | Size: 87 KiB |
BIN
public/stickers/bird__parrot_face_001.png
Normal file
|
After Width: | Height: | Size: 99 KiB |
BIN
public/stickers/bird__parrot_macaw2_001.png
Normal file
|
After Width: | Height: | Size: 78 KiB |
BIN
public/stickers/bird__parrot_macaw3_001.png
Normal file
|
After Width: | Height: | Size: 107 KiB |
BIN
public/stickers/bird__parrot_macaw4_001.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
public/stickers/bird__parrot_macaw5_001.png
Normal file
|
After Width: | Height: | Size: 86 KiB |
BIN
public/stickers/bird__parrot_macaw6_001.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
public/stickers/bird__parrot_macaw_001.png
Normal file
|
After Width: | Height: | Size: 75 KiB |
BIN
public/stickers/bird__parrot_macaw_face_001.png
Normal file
|
After Width: | Height: | Size: 74 KiB |
BIN
public/stickers/bird__parrot_perched2_001.png
Normal file
|
After Width: | Height: | Size: 77 KiB |
BIN
public/stickers/bird__parrot_perched_001.png
Normal file
|
After Width: | Height: | Size: 77 KiB |
BIN
public/stickers/bone__beige10_001.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
public/stickers/bone__beige11_001.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
public/stickers/bone__beige12_001.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
public/stickers/bone__beige13_001.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
public/stickers/bone__beige14_001.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
public/stickers/bone__beige15_001.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
public/stickers/bone__beige16_001.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
public/stickers/bone__beige17_001.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
public/stickers/bone__beige18_001.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
public/stickers/bone__beige19_001.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
public/stickers/bone__beige20_001.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
public/stickers/bone__beige21_001.png
Normal file
|
After Width: | Height: | Size: 67 KiB |
BIN
public/stickers/bone__beige22_001.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
public/stickers/bone__beige23_001.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
public/stickers/bone__beige24_001.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
public/stickers/bone__beige25_001.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
public/stickers/bone__beige26_001.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
public/stickers/bone__beige27_001.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
public/stickers/bone__beige28_001.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
public/stickers/bone__beige29_001.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
public/stickers/bone__beige2_001.png
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
public/stickers/bone__beige30_001.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
public/stickers/bone__beige31_001.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
public/stickers/bone__beige32_001.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
public/stickers/bone__beige3_001.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
public/stickers/bone__beige4_001.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
public/stickers/bone__beige5_001.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
public/stickers/bone__beige6_001.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
public/stickers/bone__beige7_001.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
public/stickers/bone__beige8_001.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
public/stickers/bone__beige9_001.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
public/stickers/bone__beige_001.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
public/stickers/bone__beige_pink_heart2_001.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
public/stickers/bone__beige_pink_heart_001.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
public/stickers/bone__beige_stitched_001.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
public/stickers/bone__bow_pink_001.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
public/stickers/bone__cream_pink_heart_001.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
public/stickers/bone__dog_bone_001.png
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
public/stickers/bone__heart_treat_001.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
public/stickers/bone__pink_bow_001.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
public/stickers/bone__pink_heart_001.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
public/stickers/bone__pink_outline_001.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
public/stickers/bone__pink_polka_001.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
public/stickers/bone__plain_001.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
public/stickers/bone__purple_001.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
public/stickers/bone__purple_dotted_001.png
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
public/stickers/bone__purple_polka_001.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
public/stickers/bone__yellow_simple2_001.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
public/stickers/bone__yellow_simple_001.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
public/stickers/bow__black_pink_heart_001.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
public/stickers/bow__black_polka2_001.png
Normal file
|
After Width: | Height: | Size: 73 KiB |
BIN
public/stickers/bow__black_polka3_001.png
Normal file
|
After Width: | Height: | Size: 104 KiB |
BIN
public/stickers/bow__black_polka4_001.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
public/stickers/bow__black_polka_001.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
public/stickers/bow__blue_001.png
Normal file
|
After Width: | Height: | Size: 63 KiB |