Mascot LabFellow 2026 · v2
Mode
Palette
Motion
Two little fellows

Not a face. A pair.

The trick that stops it reading as a skull: it isn’t one head with two eyes — it’s two characters, each with one. Plain dark pupils that move — glance around, squash to blink, widen when happy. Now they can lean on each other, look at each other, take turns. Charm, not menace.

01 · The eyes, fixed

From socket to soul

Two things made it creepy: red glowing pupils, and a fast jittery blink. Both gone. The eye is now just a plain black disc, and it carries expression by moving and resizing itself — a slow glance, a squash-to-blink, a widen for surprise. No white catchlight dots, no eyelids: just the dark eye, alive.

Before

Red eyes, jittery flutter

Glowing red pupils + a fast asymmetric blink. Reads as something staring back.

After

Dark eyes that move, not stare

Same mark: plain black pupils that glance around, and one slow blink where the eye just squashes shut.

Soft blink

One gentle close every ~6s, both eyes together.

move cursor

Follow the cursor

The pair leans toward the pointer with a soft spring.

Thinking

Pupils breathe out of phase — the loading heartbeat.

Look at each other

Pupils turn inward — the two acknowledge one another.

02 · Skin

Colour, gradient, grain — and a window

Beyond flat ember. Each of these borrows straight from the system: the glow stops (edge→core→deep→abyss), the feTurbulence film grain from the Glow & Grain lab, the support ramp. The last one is the interesting one — the mark as a cut-out revealing the live, breathing glow behind it.

Ember two-tone

The baseline. Ember + ember-muted.

Duotone

Ember leads, support ramp behind. Swaps per palette.

Outline

Bodies as strokes. For faint watermarks & dividers.

Glow gradient

Silhouette filled with the assembled glow ramp.

Film grain

Ember + turbulence overlay. Printed, tactile.

Riso

Support-ramp fill, grain on multiply. Screenprint feel.

Live glow window ★

The mark is a hole onto the moving glow. The signature move.

Mesh drift

Conic warm blend, slow hue sway. Playful, still warm.

Halftone

Ember under a dot screen. Comic / print texture.

Image fill

Any picture, masked to the shape. Here: a warm field.

How the textured ones work. They’re not SVG fills — they’re a CSS background (gradient / grain / the live glow) masked to the mascot silhouette, with the eyes drawn as a separate overlay on top. That means any treatment from the Glow & Grain lab drops straight in: mesh gradients, animated grain, even a photo. The flat/duotone/outline marks stay as inline SVG because they need the true two-tone split.

02 · Skin — mesh studio

The real mesh gradient, inside the mark

Not the CSS fake — this is the actual WebGL engine from the Glow & Grain lab, same Style + Warp-shape controls, rendered straight into the silhouette. Play with it here. (Opens on your Simple + Columns; try Soft Bézier + Circular, or Domain Warping for something liquid.)

Gradient

Colours

Why bother. A flat mark is the workhorse, but a hero splash, a loading screen, or an app-store icon wants depth. This gives the mark a living surface without ever leaving the warm palette — the colours are your glow ramp, so it can’t go off-brand. Freeze a frame and export it, or let it drift.

03 · Motion, beyond blinking

The motion kit

Eyes are only the start. Because it’s two figures, the richest ideas play them off each other. Everything is cheap CSS transforms and halts under Motion Off + prefers-reduced-motion.

Whole mark

Idle

Breathe + soft blink + a slow glance. The everywhere-default.

Sway

A gentle pendulum from the feet. Cheerful, calm.

Pop in

Squash-and-stretch arrival. Splash / success.

Assemble

The two slide together from the sides. Page load.

Perk up

A little double-hop. Notifications, "got it!".

Glow emanate

Idle on the abyss with the glow pulsing behind.

Two-figure interplay — the fun part

Conversation

They blink in turn — call and response, like they’re chatting.

Lean together

The pair tips toward each other and back. A little huddle.

Mutual gaze

Pupils turn inward. Quiet, companionable.

Peek-a-boo

The little one ducks out of frame and pops back up.

Nudge & wake

The tall one bumps its partner, who startles. Playful.

Wave hello

One figure wiggles a greeting. Onboarding, first run.

Celebrate

Both hop and tip. Milestones, plan upgrades, done!

04 · A character, not a logo

Reactions to real events

The payoff of a mascot: it can respond. Wire these to product moments — a save succeeds, a form errors, a job finishes, the app idles. Click to trigger. (Loops like Thinking / Sleepy stay until you switch.)

z
Interactive

Success hops with bright voltage eyes · Error shakes & droops · Notify perks with an ember badge · Sleepy half-closes with a floating “z”

Same mark, five moods — nothing but transforms and an eye-colour swap.

05 · Locked up small

Icon & favicon set

The real test of a mark: legibility at 16px. The thin gaps close up as it shrinks — the silhouette and the two dark eyes carry it. App tile, monochrome favicon, round avatar, maskable safe-area.

16
24
32
48
App tile
Favicon
Avatar
Maskable
Iconography

Static — an icon shouldn’t twitch

Ember tile + dark-ink mark; eyes hold down to ~24px, silhouette still reads at 16.

06 · Where it lives

In place

The rule holds: animate only where a wait, a greeting, or an empty moment earns it. Never twitching on a working screen.

Navigation

Nav — ink, blinks on hover

Still at rest, one blink on hover. Never louder than the ember CTA.

Loading…
Loading

Thinking eyes

Indeterminate wait with a pulse. No spinner.

Nothing here yet

Your first project shows up here.

Empty state

It looks around

Dimmed and curious — follows your cursor over the panel.

A tiny pair on the primary action, quietly chatting. One per screen, max.

Call to action

On the CTA

Dark-ink mark on ember fill — contrast-safe, with ember eyes.