Midnight Comet
by nova_rider
Every shared piece of the Bonkverse sites. Switch the theme in the header to check each one in Bonkverse, Light and Dark.
The same search card in each theme. These panels set data-bv-theme on themselves, so they don't follow the picker.
The current theme's tokens. Components use these names, never raw colors. node scripts/contrast.mjs checks every text and border pair in all three themes on each release.
Jost 400, 500, 600 and 700. Titles and names wrap instead of cutting off.
Leaderboards
Copper Planet
Midnight Comet
Search more than a million skins by name or creator, then wear one on bonk.io in a tap.
Skin details · Copy link · Wear
by nova_rider · uploaded 3 days ago · 1,204 views
Every button is at least 44 px tall. Brown is the one main action on a screen or card. Hover, press (Tab to see focus) and the states below.
Search is for fast decisions: artwork, name and creator together, Favorite and Wear one tap away. One column on phones, then 2, 3 and 4 at 600, 900 and 1,200 px. Tap the stars and Wear to see the states.
by ringmaker
by gambit
by pixelpusher
Cards: ready, favorited, signed out with a long name, missing artwork, loading.
Details is for deeper actions. The art sits on the page with no box behind it, votes sit next to Wear, and sharing and tools go in a compact second row. Splits into two columns from 900 px.
Labels sit above fields, hints under the label, errors under the field. Inputs use 16 px text so phones don't zoom in.
Tabs move between the skin pages (from nav.json's skinTabs). Chips filter what's on the page. Pills label things and can't be pressed.
Numbers line up on the right. The table scrolls inside its box on small screens instead of the page.
| # | Skin | Creator | Upvotes | Favorites |
|---|---|---|---|---|
| 1 | Checkmate | gambit | 4,812 | 1,207 |
| 2 | Midnight Comet | nova_rider | 3,990 | 944 |
| 3 | Copper Planet | ringmaker | 2,105 | 388 |
Put feedback next to the action that caused it. Toasts are for things with no place on the page; errors stay until dismissed.
Native <dialog>: focus stays inside, Escape or the backdrop closes it, and focus goes back to the button that opened it.
Say what happened and what to do next. "No results" and "couldn't load" are different messages.
Something went wrong on our side. Your search is still in the box.
curl https://bonkverse.io/api/v1/players/nova_rider/ \ -H "Authorization: Bearer $BONKVERSE_API_KEY"
const res = await fetch("https://bonkverse.io/api/v1/players/nova_rider/", {
headers: { Authorization: `Bearer ${process.env.BONKVERSE_API_KEY}` },
});
console.log(await res.json());