Case Study: lynnandtonic.com 2025 refresh

A stretchy website sparks joy, rage, and 90s nostalgia

TLDR: Lynn Fisher’s new portfolio turns window resizing into a squishy, elastic gag that snaps back when you stop. Fans call it joyful web art and retro fun, while critics worry about readability and accessibility, sparking a lively debate over where playful experiments end and good user experience begins.

Designer Lynn Fisher refreshed her portfolio by turning the browser window into a squishy toy: when you resize, the whole site stretches like elastic and snaps back when you stop. It’s a cheeky nod to old fixed‑width pages, powered by a little JavaScript and a lot of playful bravado. The line “the grain of this website is polyester” became an instant meme, with commenters dubbing it the “Silly Putty site.”

But the community? Split. Fans are obsessed, calling it web art and a much‑needed break from cookie‑cutter design. Nostalgia heads cheered the 90s throwback vibes and deadpan humor. Critics fired back that squishing text into unreadable shapes—even briefly—feels like “anti‑usability,” with accessibility advocates urging a toggle, a motion‑reduction setting, or clearer guardrails. One pointed out the irony: after Lynn’s tough year health‑wise (she’s written about motion‑related dizziness), some say playful motion needs extra care.

Meanwhile, devs argued semantics: is it “responsive” if it fights you while resizing? Supporters countered that it literally responds—just mischievously. Threads spiraled into debates over blurry scaled text, screen‑reader friendliness, and whether creative experiments belong on personal sites. The vibe: equal parts delight, debate, and delightful drama—the internet’s favorite cocktail.

Key Points

  • The refresh explores a fixed-width site that elastically stretches or squishes during browser resizing, then snaps back.
  • JavaScript is used to manage text scaling because text reflows with container changes, making CSS width adjustments unsuitable.
  • A ResizeObserver monitors window resizing, feeding values to dynamically update `transform: scale(x,1)`.
  • The horizontal scale factor `scaleX` is computed as `((newWidth - windowWidth) / appWidth + 1)` with a fixed container width of 436px.
  • A clamp (e.g., `Math.max`) is applied to prevent negative `scaleX` values that would flip the content horizontally when shrinking.

Hottest takes

"It’s web art, not an airline booking form—let it be weird" — retroDad
"Scaling text until it’s unreadable is not cute; it’s inaccessible" — a11yNerd
"Call it ‘anti‑responsive’—and I’m here for it" — cssWitch
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.