I'm a big fan of micro-animations on the web. The quiet stuff: small actions, soft feedback, nothing trying to impress you. I see them everywhere, and I like them, so I put together something that works for me. Maybe it'll work for you, too.
Each mark draws itself. Looks written, not stamped.
Click or drag. Soft blooms where you touch.
A quiet pulse with a fading ring. Presence, not alarm.
Hover this phrase
Underline grows from the center, not left to right.
Same curve on every bar, different timings. They never march.
Noise settles left to right into a real line.
Hover me
Border highlight chase
Border highlight only while you hover.
Draft
Published
Press, then a wipe swaps the label.
Alpha
Beta
Gamma
Click to fan the cards open or closed.
Motion should explain state, not decorate it. Move your pointer to read.
Motion should explain state, not decorate it. Move your pointer to read.
A soft spotlight follows the cursor over the text.
Perfection is achieved not when there is nothing more to add, but when there is nothing left to take away. Antoine de Saint-Exupéry
Perfection is achieved not when there is nothing more to add, but when there is nothing left to take away. Antoine de Saint-Exupéry
Keeps scrolling until you hover, then it pauses.
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
Columns roll to the new digits on the same ease.
Departure-board reels, staggered tile by tile.
Lines fill, nodes pop. Hit Advance to step.
One stroke draws the path, then stops.
A light bar sweeps while you hover.
Letters come in one after another.
The chip drifts toward your pointer, then returns.
Blur clears into sharp type. No bounce.
Before
After
Two labels crossfade past each other.
Idle, spinner, then check + Saved. No page jump.
Toggle with a tiny overshoot so it feels settled.
Box scales in, check draws. Better than an instant flip.
Label turns into Copied when it works.
Label lifts on focus so it stays visible while you type.
Bad input shakes. Good input just gets a quieter border.
Project brief
Content fades up once the placeholder has done its job.
Shimmer holds the space, then content fades in.
Tooltip fades up on hover or focus.
Count bumps a little when it changes.
Chips shrink away when you remove them.
Fills and pops right away, before the server answers.
Saving… blinks, then Saved. Handy for autosave.
Shipping details
Height animates with 0fr → 1fr so related content can stay tucked away until needed.
Extra controls stay tucked away until you ask.
Delete item
Item removed
Undo
Short undo window after delete. Beats a confirm dialog most days.
Pill slides under the choice. Cleaner than radio dots here.
Clear only shows up once there is text.
Live count. Pulses when you get near the limit.
Pin twists into place when it sticks.
Border traces while it publishes, then a soft Published pulse.
Check slides in. Done, without a modal.
Draft: landing page
Edit
Share
Row actions wait for hover or focus.
Overview
Activity
Files
Project summary and recent notes.
Ink bar slides between tabs.
Hold to delete
Hold until the fill finishes, then delete. Soft red settle on success.
Brief: landing page
Notes: kickoff call
Assets: brand kit
Tasks: first sprint
List items come in one by one.
Timer drains so you know when the toast will leave.
Three dots bob. Busy, not a finished message.
Send request
Fail shakes and stays clickable. Success just settles.
Hover previews the rating. Click locks gold.
Soft pulse when online. Color shift when it drops.
Indeterminate bar for unknown wait times. No fake percent.
Value only shows while you drag.
Inbox-style badge, but the count drops in.
Step 1: Project name and goal.
Back
Next
Dots for each step. Makes long forms feel shorter.
Sound waves fade, X draws in. Click to hear a beep.
Alpha: homepage
Beta: pricing
Gamma: contact
Rows slide into the gap while you drag.
Misses collapse as you type. List stays still.
Bar + percent, then Done when it finishes.
Grows with your text and keeps it until Reset. Survives reload too.
Storage
12 / 100 GB
Approaching your plan limit.
Fills as you use quota. Tip fades in near the limit on a reserved line.
Main action is one click. Chevron hides the quieter ones.
Color + a short ping. No toast spam.
Unsaved draft from earlier. Restore it?
Restore
Dismiss
Banner offers restore. Better than losing the draft quietly.
Hit Enter and it becomes a chip right there.
No projects yet
Create one to get started.
North star: Q3 launch
Empty state gives way to the first real item.
Gets louder in color and copy as the deadline nears.
Soft fades hint that more content sits above or below: orientation without a permanent scrollbar chrome.
Scroll this pane to see the edge masks appear only when there’s overflow in that direction.
At the top, the upper fade rests; at the bottom, the lower one does the same.
Fade edges only when there is more to scroll.
Edit shows a save strip. Dirty, but no dialog in your face.
One check sent, two checks seen.
Empty required field does a quick buzz.
Deploy finished: production
Invite accepted: Maya
Comment on brief.pdf
Expand
Notices stack like toasts. Open them to fan out.
Delete
First click asks. Second click commits in red.
You’re offline. Changes will sync later
Go offline
Thin strip when you go offline. No modal.
Newest
Brief.pdf
Notes.md
Shot.png
Arrow flips with sort. List softens while it reorders.
Old price crosses out while the new one counts to $29.
Resend code
After send, the border traces while the cooldown runs.
Each step bumps the number a bit.
Reactions fan up. Pick one and it collapses onto the button.
Project brief for the spring launch. Scroll through the notes. When you near the end, the action bar rises so you don’t hunt for it.
Scope covers motion studies, copy polish, and a quiet handoff checklist. Keep feedback in one thread.
Ready when the last paragraph is in view.
Continue
CTA rises near the end of the scroll.
Slash draws over the eye as the field type flips.
Digits pop in and focus moves. Paste fills everything.
Rename opens a field under the title.
just now turns into 1m ago on its own.
Search icon opens into a field when you need it.
Valid field: soft border + a drawn check.
Design review : tomorrow 10:00
Invoice paid : Acme Co.
New comment : on Brief.pdf
Open a row and the unread dot becomes a check.
Spins while syncing, then says Synced.
Number eases up to the target.
Ship the spring launch brief
Tab
Ghost text ahead of the caret. Tab or click to take it.
Opens softly. Type, arrow, Enter.
Long paths hide the middle behind …
Rings pulse while you record.
14 function ship() {'{'}
16 {'}'}
New line grows into the diff instead of just flashing green.
9:00
10:30
14:00
15:30
17:00
18:30
Pick a slot and it fills from the bottom.
Thumb opens into the full preview from where it sat.
Select rows and a bulk bar shows up.
Pill slides. Staging is amber, production goes green.
maya@studio.co
Pending invite · Editor
Accept
Joined
Accept becomes Joined without leaving the page.
billing.v2
Off for all workspaces
Risky flag turns the row amber and gives it a nudge.
Stages light up along the wire. Replay flips success and failure.
A Acme Labs
N Northwind
S Studio ST
Highlight slides to the workspace you pick.
https://mighil.com/notes/ship
Ship notes · week 12
mighil.com
Paste a URL and a preview grows under it.
Empty seats fill in as people join.
Thin bar follows required fields as you complete them.
Can @maya take a look before we merge?
Mention warms for a moment when someone is tagged.