Three.js threw its first conference. The best thing on stage was a button.

TL;DR

  • 🎪 The 3D web got its own conference. Three.js is the library behind most of the 3D you see in a browser. Its first ever conference ran in Paris on 10 and 11 September, two days, 20-plus speakers, after party on a boat.
  • đź”® The big one is HTML in Canvas. Chrome can now put real, live HTML onto a 3D surface. A real button, a real form, real text you can select and translate, wrapped around an object. I think this is the next design trend, and I will explain why.
  • ⚙️ The engine underneath got swapped. The browser has a new, faster way to talk to the graphics card, called WebGPU, and three.js now treats it as the default. In practice that means a million particles on a phone and photoreal scanned objects in a tab.
  • 🎨 The work proves it. A WebGL comic, a tiny planet you can walk around, a portfolio you drive a truck through. All linked and playable below.
  • 🛠️ There is something to try whoever you are. A fifteen-minute tour if you do not code, copy-paste prompts if you build with AI, snippets if you write three.js.

Most design conferences are a lanyard, a tote bag, and forty minutes on “the power of story”.

This one had a man driving a toy truck around his portfolio with a game controller, and a room full of people taking notes.

The first Three.js Conf ran on 10 and 11 September at Maison de la Chimie in Paris. If you have never touched three.js, that is fine, you have still used it. It is the free JavaScript library behind most 3D on the web: the sneaker you spin on a product page, the award-site hero that reacts to your cursor. When a website has depth, it is usually three.js underneath.

So this piece skips the changelog voice. For each thing that came out of Paris, here is what it is, what it lets you design that you could not before, and a live example to poke at.

Speakers and organisers on stage under the Three.js Conf logo at the close of the event
The close of day two at Maison de la Chimie. Image: Codrops

Sixty seconds of vocabulary

You will see these words below. Here is all you need.

  • three.js. The library. You describe a scene, a camera and some lights in JavaScript, and it draws 3D in the browser.
  • r186. Just a version number. Three.js ships a release about every month and numbers them r184, r185, r186. The newest, r186, came out on 8 September, two days before the conference.
  • WebGL and WebGPU. Two ways a browser talks to your graphics card. WebGL is the old one. WebGPU is the new one. Same road, newer engine: more on screen, less battery.
  • Shader. A tiny program that decides the colour of every pixel. Every liquid gradient, glass blur and ripple-on-hover you have admired is a shader.
  • TSL. Three.js Shading Language. A way to write those shaders in plain JavaScript instead of a cryptic graphics language.
  • Gaussian splat. A 3D photo. You film an object with a phone, software turns the footage into a cloud of soft coloured dots, and it looks photographic from any angle.

That is the whole glossary.

đź”® HTML in Canvas: the one I would bet on

Chrome origin trial since version 148 · extended through Chrome 160 on 7 September · three.js support since April

Here is a problem you have hit even if you never named it.

A web page is made of two worlds. There is the normal page, the DOM, where text is text. You can select it, translate it, zoom it, tab through it, and Google can read it. Then there is the canvas, the rectangle where 3D and fancy effects live. Anything inside the canvas is a picture. That gorgeous 3D laptop on a landing page with the app on its screen? The “app” is a flat image or a video. You cannot click its buttons. A screen reader sees nothing. Autofill does not work. Change the copy and someone has to re-export a texture.

For twenty years designers picked a side. Rich and dead, or plain and alive.

HTML in Canvas ends that. Thomas Nattestad and Natalia Markoborodova from the Chrome team showed it on day one. You mark ordinary HTML elements, and the browser paints them, live, into the canvas, onto any 3D surface or through any effect. And per Chrome’s own write-up, they stay real: text selection, copy and paste, right-click, screen readers, find-in-page, translation, autofill, dark mode, browser zoom, even DevTools.

Here it is running. This is the official three.js example. That cube is wrapped in a real HTML block: bold text, an emoji, right-to-left Persian, vertical Chinese, an animated image, an SVG. And a text field and a button. Type in the field. Click the button. It is a form, on a cube.

Live demo. Drag to rotate, type in the field. Browsers without the new API get a polyfill, so it works everywhere. Open full screen. Demo: three.js

What this unlocks for designers

This is the part I think people are sleeping on. Forget “3D websites”. Think about what you can now do to ordinary UI:

  • The product screen that is the product. That laptop or phone mockup in your hero can run the real app. Real hover states, real scrolling, real sign-up form. One source of truth, and the marketing page can never drift out of date.
  • Effects on real text, with SEO intact. Liquid distortion, glass refraction, rain on the window, pixelation. Until now that meant turning your headline into an image. Now the headline stays an <h1> and the effect is a layer on top.
  • Page transitions that were never worth the pain. A page that curls like paper. A login card that folds away. A checkout that flips over to show the receipt. All of it on live, clickable content.
  • Micro-interactions with physics. An input whose text dissolves into particles when you hit enter. A slider made of jelly. Small, delightful, and still a real <input>.
  • Interfaces inside 3D and XR. Menus in a web game, a configurator panel floating beside the car, a form in a headset. Laid out with normal CSS, not hand-placed pixel by pixel.
  • Better text in the tools you already use. Chrome names Google Docs, Miro and Figma as the other big audience, since canvas-based apps have always had to fake their own text rendering.

Vittorio Retrivi, a design engineer at basement.studio, built a set of demos for Codrops that make the point better than I can. His line: “HTML-in-Canvas feels like one of those ideas that makes you wonder why it didn’t exist before.”

Chrome demo: an interactive 3D billboard in three.js showing a live HTML card with a button and an SVG animation
Chrome’s billboard demo. The sign is a live HTML card, button included, lit and shadowed by the 3D scene. Image: Chrome for Developers

Go play with these. They need Chrome with the flag on, which takes thirty seconds and is explained further down.

Chrome demo: a 3D book whose cover and pages are live selectable HTML text
The book demo. Every page is selectable text, bent by a shader. Image: Chrome for Developers

The honest status

It is not shipped. It is a Chrome origin trial, which means real sites can switch it on for real Chrome users while the spec is still moving. The trial started in Chrome 148. On 7 September, three days before the conference, the Chrome team filed to extend it through Chrome 160, because feedback from other browser makers means some breaking changes to the API. Mozilla’s recorded position is no objection. WebKit has given no signal, so Safari is the open question.

That is exactly the stage where a design trend starts. Good enough to ship to Chrome with a fallback for everyone else, new enough that almost nobody has. Three.js added support in April. The award-site studios were in that room in Paris. I give it a few months before “live UI on a 3D object” is the hero pattern everyone is copying.

What else changed, and what it buys you

⚙️ WebGPU is now the default, not the experiment

Every serious talk assumed it · three.js falls back to WebGL on its own

You do not have to care how WebGPU works. Care about the budgets it moved.

Renaud Rohlinger of Utsubo showed the installation his studio built for Expo 2025 Osaka: a body of digital water made of around one million particles, in real time, in a browser. Anderson Mancini shipped a full WebGPU experience, forest included, in about 6MB. That is smaller than a lot of hero videos.

What it unlocks: the ambitious idea you cut from the brief because “it will not run on a phone” deserves a second look. Crowds, fluids, weather, thousands of products on one shelf. And three.js picks WebGPU or WebGL per device by itself, so nobody gets a blank page.

⚙️ TSL: effects become reusable parts

Three.js Shading Language · shaders in JavaScript · one source, runs everywhere

Shaders used to be the wall between designers and the good stuff. They were written in a separate, unforgiving language, pasted in as strings, and only the one person on the team who understood them could change them.

TSL, built by sunag (Jean Carlo Deconto), who gave the talk on it, turns a shader into ordinary JavaScript you compose from small named pieces. This is a complete material that tiles a fine detail texture over a base colour:

import { texture, uv } from 'three/tsl';

const detail = texture( detailMap, uv().mul( 10 ) );
const material = new THREE.MeshStandardNodeMaterial();
material.colorNode = texture( colorMap ).mul( detail );

You can more or less read that aloud. Which is the point.

What it unlocks: effects become components. A “frosted glass” or “holographic foil” material can live in your design system like a button does, get reused across projects, and be tweaked by changing a number. And because it is plain JavaScript, AI assistants write it far more reliably than the old shader languages. For a designer who prompts, that is the difference between “ask a specialist” and “try it this afternoon”.

This galaxy is one of the official examples. Every star’s position and colour is computed in TSL.

Live demo. Drag to orbit, open the panel to change the colours. Open full screen. Demo: three.js

Robin Payot rebuilt a Zelda scene in TSL for his talk. Bruno Simon rebuilt his whole course around it: the new WebGPU and TSL edition of Three.js Journey is 21 lessons and 24 hours, $45 alone or $120 bundled with the original. When the person who taught most of the industry re-records the shader chapters, the transition is over.

⚙️ Gaussian splats: a 3D photo in a web page

New in r186 · loader and renderer built into three.js

A 3D model is a sculpture someone had to build. A splat is closer to a photograph someone took. You walk around an object with a phone, software does the rest, and the result holds up from any angle, fur and reflections included.

As of r186, three.js loads and renders them out of the box. This lioness is the official example.

Live demo. Drag to look around her. It is a scan, not a model. Open full screen. Demo: three.js. Splat by Renaud Rohlinger via superspl.at

What it unlocks: real things, online, without a 3D artist. A ceramicist’s actual vase. A hotel room. A vintage jacket with every crease. Marcus McLean of Miris pushed it further in his talk: stream the scan like video, sending only what the camera is looking at. Their site claims under a second to first interaction, with a three.js kit and a free tier. The 3D asset is turning from a file you download into a stream you watch.

⚙️ SunLight: believable daylight in one line

New in r186 · sharp shadows near the camera, soft ones far away, automatically

Outdoor scenes on the web have the same tell: shadows that are crisp where you stand and mush ten metres away. Fixing it took an add-on and an afternoon of fiddling. r186 adds SunLight, which handles it for you.

What you get: architecture walkthroughs, car configurators on a road, anything with a horizon, looking right on the first try. Open the SunLight example and drag the elevation slider from noon to sunset.

đź§© The tools around it moved in the same week

Cassie Evans got ten minutes and used them to announce GSAP 4. Springs as a first-class easing, tighter three.js integration, and tooling for DOM and WebGL moving together. Codrops reported GSAP is on 13 million-plus sites, which is why this matters more than a version number. As of today the gsap.com blog still tops out at 3.15 from April, so treat the details as what was said on stage until the post lands.

For designers: one animation timeline for the page and the 3D scene, so the headline and the object behind it move as one piece.

Dennis Smolek and Kris Baumgartner showed React Three Fiber v10, the version of three.js that React teams use. It is in alpha, with WebGPU and TSL built in. If your product is a React app, all of the above arrives as components rather than a rewrite.

The work, playable

The best argument for any of this is the sites themselves. Open them on a laptop, sound on.

Ponpon Mania artwork: a sheep, a wolf and a dinosaur celebrating in a cartoon city
Ponpon Mania by Patrick Heng and Justine Soulié. Image: Ponpon Mania

Ponpon Mania. A comic you scroll through, where every panel is alive. Patrick Heng and Justine SouliĂ© opened day two with it. The lesson for design teams was the process: they built a custom editor so the illustrator and the developer worked in the same tool. Their line: “A sketch can inspire an interaction, and an interaction can inspire a new visual idea.”

Messenger by Abeto: a tiny hand-drawn planet covered in houses and trees
Messenger by Abeto. Image: Abeto

Messenger. A tiny planet you walk around. Vicente Lucendo of Abeto, a two-time Site of the Year winner, opened the conference with how it was made, and talked about composition and sound before he mentioned code.

Bruno Simon's portfolio: a red low-poly truck on a wooden bridge at dusk
Bruno Simon’s portfolio. You drive it. Image: Bruno Simon

Bruno Simon’s portfolio. You drive a truck through his CV. He closed the conference by playing it live with a controller, then gave his rules for memorable web experiences. Animate everything. Keep it smooth. Find the one original feature. Iterate fast. Entertain. Treat sound as a feature. Collect inspiration before production, not during.

threejs.paris. The conference site, by David Ronai and Hervé Studio. Every visitor becomes a bouncing character sphere. Hervé Studio spent seven months on the identity, down to electronic speaker badges that react when two are placed together.

Two studio talks were about restraint. Antoine MĂ©nard of Merci Michel argued that “real-time 3D doesn’t have to look like 3D”. Edan Kwan of Lusion, whose sites look expensive, gave a list of cheap tricks combined well.

What the room argued about

Portfolios. In Roast My Folio, Bruno Simon, Cassie Evans and Nicolas Barradeau tore through real portfolios on stage. The red flags they named: fluid simulations, slow loading, too many effects, dense blocks of text. If your home page opens on a fluid sim, they were talking about you, and they were right.

AI. mrdoob, who created three.js, compared coding with AI to anti-aliasing in the nineties. Purists sneered, then everyone used it, then nobody mentioned it. His line, as Codrops reported it: “We’ve moved one level of abstraction higher.” The design panel on day two added the limit. AI shortens the distance from an idea to a prototype. It does not shorten the distance from a prototype to a good one.

Taste. The best line of the event came from a two-minute lightning talk by Dario Sanchez. “Rendering isn’t always the bottleneck. Perception is. Technical accuracy alone doesn’t make something beautiful. Taste does.” The most reassuring thing a designer could hear at a graphics conference.

Try it this week

🛠️ If you do not write code: the fifteen-minute tour

  1. Open Chrome and go to chrome://flags/#canvas-draw-element. Set it to Enabled and relaunch.
  2. Open the 3D book. Drag a page. Then select a sentence with your cursor. That second part is the revolution.
  3. Open the UI on a 3D computer. Click around the interface on the screen.
  4. Now open your current project and ask one question. Where do we show a picture of our product that could be the product? Hero mockups, onboarding, the pricing page. Write down three.
  5. Take one to your developer with the three.js example linked above. The whole thing is a single short file.

🛠️ If you build with AI tools

These work in Claude, Cursor, v0 or whatever you use. Each one names the version, because models default to older three.js habits.

A live product screen in a 3D hero:

Build a landing page hero with three.js r186.
A 3D laptop sits centre stage and turns slightly with the cursor.
Its screen must be LIVE HTML, not an image: render a real
<form> (email input + button) onto the screen mesh using
THREE.HTMLTexture, following the official example
webgpu_materials_texture_html, including its polyfill fallback.
The form must stay focusable, typeable and screen-reader visible.
Use WebGPURenderer. Keep the headline as a normal <h1> outside
the canvas.

An effect on real text:

Using three.js r186 and THREE.HTMLTexture, take the existing
<section class="hero"> and draw it into a full-screen canvas.
Add a TSL shader that gives a subtle liquid-glass distortion
following the cursor, fading to zero when the cursor is still.
The original text must remain selectable and in the DOM.
Respect prefers-reduced-motion by disabling the effect.

A material for your design system:

Write a reusable three.js r186 material in TSL (three/tsl),
as a function holographicFoil({ hueShift, grain, intensity }).
It returns a MeshPhysicalNodeMaterial whose colour shifts with
view angle, like foil on a trading card. No GLSL strings,
no onBeforeCompile. Expose the three parameters as uniform()
nodes so GSAP can animate them. Add a demo on a rounded card.

Paste the result into the TSL editor if something looks off. It shows what your code turns into, which is the quickest way to catch a model inventing functions.

🛠️ If you already write three.js

  • Put HTML on a mesh. It is one line once you have an element: material.map = new THREE.HTMLTexture( element ). Add InteractionManager from the addons for clicks, as the example does. Expect API changes while the trial runs.
  • Port your smallest shader to TSL. Take one ShaderMaterial and rewrite it as nodes. It will then run on WebGPU and WebGL from one source.
  • Swap your sun. Replace the DirectionalLight and its hand-tuned shadow camera with SunLight and delete the tuning.
  • Try React Three Fiber v10 on a branch. npm install @react-three/fiber@alpha, rename state.gl to state.renderer, and add Anderson Mancini’s r3f-webgpu-perf to watch draw calls while you do it.
  • Scan something. Film an object, clean the splat up in SuperSplat, and load it with the r186 splat loader.

Worth bookmarking

đź”® HTML in Canvas

⚙️ The engine

đź§© The tools

🎪 The event

The landing

Strip away the version numbers and Paris said one thing. The wall between the page and the canvas is coming down. WebGPU made the canvas fast enough. TSL made its effects writable by normal people, and by their AI tools. And HTML in Canvas lets the two worlds share the same pixels.

Watch that last one. Every other announcement makes 3D prettier or faster. HTML in Canvas makes it useful, because a button on a 3D surface finally stays a button. The open question is Safari. If WebKit moves, the 3D site and the normal site stop being different projects.

So do not wait for the talk recordings. Flip the Chrome flag, open the book demo, and select a line of text on a curling page. Then look at your own hero section and ask what it would do if it were alive.

In a few months somebody’s live-UI-on-an-object landing page will be on every inspiration feed. You have about that long to make it yours.


Sources: Codrops, Inside the First Three.js Conference in Paris, Codrops speaker interviews, Codrops, Exploring the HTML-in-Canvas Proposal, Chrome for Developers, blink-dev, Intent to Extend Experiment, Three.js Conf schedule, three.js releases, pmndrs, Miris. Images: three.js, Chrome for Developers, Ponpon Mania, Abeto, Bruno Simon, Codrops.

From Design to Code Without Losing Context: An MCP-First Workflow

Looking for a seamless way to turn AI-generated code into real design assets? Continue with our follow-up guide, Claude Code to Figma: How the New “Code to Canvas” Integration Works, and see how the MCP-first workflow evolves into a fully visual pipeline.


A practical example of preserving design context across AI and development tools

AI tools are now involved in every stage of product development, but most workflows still break at the handoff points. This article presents a practical example of an MCP-first design to development workflow, showing how design, AI, and development tools can work together as one continuous system.

The process described here is one example among many. Its purpose is not to define a single correct workflow, but to demonstrate how shared context and clean handoffs can turn disconnected tools into a coherent product process.


Why this matters now

Over the past year, AI has quietly entered almost every part of the product lifecycle.

Design teams experiment with AI inside design tools.
Developers rely on AI-assisted coding environments.
Product teams look for ways to speed things up across the board.

And yet, the biggest problem has not been capability.

It has been fragmentation.

Design intent gets lost between tools.
AI reinterprets decisions instead of continuing them.
Development often starts with partial context and missing assumptions.

This is where an MCP-first approach becomes useful.


MCP as a connective principle

MCP, Model Context Protocol, is not a specific product or platform.

It is a way of thinking about how context moves between tools.

Instead of each tool starting from scratch, MCP enables tools to share structured context such as:

  • component structure
  • naming conventions
  • design rules
  • system constraints
  • decisions already made

The goal is not more automation.
The goal is continuity.

Each step should continue the previous one, not reinterpret it.


Starting point: a finalized design in Figma

This workflow begins after exploration and discovery.

At this stage, there is a finalized Figma file that represents real product decisions:

  • defined components
  • a connected design system
  • design tokens
  • a clear hierarchy
  • states and behaviors

Figma acts here as a source of intent.

Not only how the interface looks, but how it is meant to behave, scale, and remain consistent.

For an MCP-based workflow to work well, the design needs to be reasonably structured and system-aware.
AI does not fix messy foundations. It amplifies them.


Connecting Figma to a language model via MCP

The next step is creating an MCP connection between Figma and a language model.

The model does not receive screenshots or flattened exports.
It receives structured design context:

  • component names
  • hierarchy
  • relationships
  • tokens
  • references to the design system

Claude is used here as an example, but it is not a requirement.
The same approach can be applied with other language models, including internal or open-source ones.

What matters is the model’s ability to read structured context, reason about design decisions, and produce precise, execution-oriented output.


The language model as a design interpreter

In this workflow, the language model is not acting as a designer.

Its role is to interpret the existing design and translate it into explicit instructions.

Using a dedicated skill or structured process, the model produces a specification that describes:

  • component structure
  • rules and constraints
  • token usage
  • interactions and states

This is not a creative prompt.
It is a specification.

This step is the core of the workflow.
It turns visual intent into something downstream tools can execute reliably.


Creating a prototype in Figma Make using the specification

Figma Make is used next, but not in isolation.

It is already connected to:

  • the design system
  • the token setup
  • the same naming conventions used in the design

The specification produced by the language model is provided as input.

This means the prototype is not generated directly from the design file itself, but from a clear interpretation of it.

The result is a prototype that is consistent, aligned with prior decisions, and suitable as a foundation for further development.


Moving the result into GitHub

Once the prototype is created, it needs to become part of the broader product workflow.

With a single push, the output of Figma Make is moved into GitHub as part of the existing project.

The key idea here is the transition itself.

What was created in a design-driven environment becomes a shared technical baseline that development tools can work with and build upon.

GitHub serves as the meeting point between design, AI, and development, and allows the work to continue without losing context.


Continuing development in Cursor

From GitHub, the workflow continues in Cursor.

Cursor does not start from a blank state.
It works with an existing structure that already reflects:

  • design intent
  • system rules
  • previous decisions

At this stage, teams can add logic, connect data, refine interactions, and move closer to a production-ready product.

AI here is not inventing the product.
It is continuing it.

MCP setup between GitHub and Cursor

Pulling a project from GitHub into Cursor


The workflow at a glance

At a high level, this MCP-first design to development workflow looks like this:

  • Figma defines intent
  • a language model interprets that intent
  • a structured specification bridges design and execution
  • Figma Make generates a prototype
  • GitHub becomes the shared baseline
  • Cursor continues development

MCP is what keeps this chain intact.


Why this approach works in real teams

The value of this workflow is not speed.

It is alignment.

Design decisions are preserved instead of reinterpreted.
AI works with context rather than guessing.
Development continues from a shared understanding instead of reconstructing intent.

Each step hands over context, not just output.

The tools can change.
The order can evolve.
The models can be replaced.

What should remain is the principle that tools should continue each other, not reinterpret each other.

That is the difference between experimenting with AI and actually building products with it.

……

đź’ˇ Stay inspired every day with Muzli!

Follow us for a daily stream of design, creativity, and innovation.
Linkedin | Instagram | Twitter

Best Free Variable Fonts for UI and Web Design (2026)

Looking for free variable fonts that actually work in UI? A practical list of the best variable fonts for product, web, and interface design in 2026.


Variable fonts didn’t arrive with much noise.
They didn’t replace anything overnight. They just slowly became useful.

Instead of loading multiple font files for different weights and styles, a variable font gives you continuous control inside a single file. Less payload, fewer compromises, and more consistency across real interfaces.

If you design products, dashboards, SaaS tools, or web interfaces, this matters more than it sounds. Typography decisions show up everywhere in UI, especially at small sizes and across breakpoints.

This list focuses on free variable fonts that actually hold up in production UI, not display typefaces and not typographic experiments. Every font here was chosen because it behaves well in real interfaces.


What actually makes a font “variable”?

Most designers are used to fonts with fixed weights:
Regular, Medium, Bold.

A variable font works differently.

A simple example

You’re designing a button label.

With a regular font:

  • 400 feels slightly too light
  • 500 feels slightly too heavy
  • You have to pick one

With a variable font:

  • You can use 450
  • Or 480
  • Exactly where it feels right

Same font. Same layout.
A very different level of control.

That’s the difference between having many weights and having a continuous typographic range.


Why variable fonts work so well for UI

Variable fonts aren’t about visual tricks.
They’re about stability.

They become especially useful when:

  • You design responsive layouts
  • You need several weights without loading several files
  • You work with design systems or shared components
  • Performance and consistency matter

In good UI, typography doesn’t draw attention to itself. It just stays out of the way.


Inter

Inter

Best for: Product UI, dashboards, SaaS platforms

Inter is one of the most widely used UI fonts today, and for good reason. It was designed specifically for screens, with strong readability at small sizes and very predictable behavior across weights.

Why it works well:

  • Clear, readable letterforms in dense UI
  • Designed from the start for interfaces
  • Broad language and symbol support

Good to know:
It’s very common. If visual differentiation matters, it often works best as a neutral base paired with a more expressive secondary font.

Official website: https://rsms.me/inter
License: SIL Open Font License


Source Sans 3

Source Sans 3

Best for: Content-heavy interfaces, text-driven products

Source Sans 3 is a refined evolution of a familiar typeface. The variable version feels calm, balanced, and easy to read over long sessions.

Why it works well:

  • Professional, unobtrusive tone
  • Excellent readability for long text
  • Handles responsive layouts gracefully

Official website: https://adobe-fonts.github.io/source-sans/
License: SIL Open Font License


Roboto Flex

Roboto Flex

Best for: Advanced design systems, deep typographic control

Roboto Flex was built as a variable font from day one. It includes a wide range of axes and allows precise control over weight, width, and optical size.

Why it works well:

  • Extremely flexible
  • Ideal for token-based typography systems
  • One file can replace an entire font family

Good to know:
It’s powerful, and easy to overuse. Best suited for teams that know how to define clear constraints.

Official website: https://fonts.google.com/specimen/Roboto+Flex
License: Apache License 2.0


Manrope

Manrope

Best for: Modern interfaces, marketing sites

Manrope sits between functional and expressive. It feels contemporary and friendly without becoming distracting in UI contexts.

Why it works well:

  • Clean, modern character
  • Good contrast across weights
  • Works well for approachable, product-led design

Official website: https://manropefont.com
License: SIL Open Font License


Space Grotesk

Best for: Creative products, brand-forward interfaces

Space Grotesk brings personality without sacrificing usability. It’s often used in products that want a distinctive feel without drifting into decoration.

Why it works well:

  • Clear typographic voice
  • Still readable in interface contexts
  • Strong for headings and key UI elements

Official website: https://floriankarsten.github.io/space-grotesk/
License: SIL Open Font License


IBM Plex Sans Variable

IBM Plex Sans Variable

Best for: Complex products, enterprise tools

IBM Plex Sans was designed for information-heavy systems. It feels structured, reliable, and very clear even in crowded layouts.

Why it works well:

  • Strong hierarchy across weights
  • High readability in dense interfaces
  • Excellent multilingual support

Official website: https://www.ibm.com/plex/
License: SIL Open Font License


How to choose the right variable font

A practical rule of thumb:

  • Dashboards and SaaS: Inter, IBM Plex Sans
  • Content-heavy products: Source Sans 3
  • Creative interfaces: Space Grotesk, Manrope
  • Advanced design systems: Roboto Flex

The goal isn’t variety.
It’s consistency you don’t have to think about.


Variable fonts won’t fix bad design.
But they remove friction from good design.

They simplify typography, reduce compromises, and give you control where UI work actually lives: in small decisions repeated hundreds of times.

By 2026, variable fonts aren’t a trend anymore.
They’re just part of doing UI work properly.

……

đź’ˇ Stay inspired every day with Muzli!

Follow us for a daily stream of design, creativity, and innovation.
Linkedin | Instagram | Twitter

Case Study: Merging Design and Technology to Create Immersive Digital Experiences

Visual Identity Studio
Web Design & Branding Agency


Introduction

The boundaries between art, design, and technology are becoming increasingly blurred. This case study delves into the creation of The Skull Crusher website — an experimental extended reality (XR) project that uses hand-tracking technology to immerse users in a digital art experience. Through this, we’ll explore the process of merging creativity with technology and provide actionable insights for designers and developers in the art and design industry.

The Concept: Blurring Lines Between Art and Interaction

The Skull Crusher website wasn’t just a project — it was a vision to merge art with cutting-edge technology. By combining hand-tracking mechanics with a story-driven environment, the goal was to create an engaging and artistic digital product. The key takeaway? Digital products in the art and design industry must evoke an emotional connection while maintaining functionality.

Actionable Insight: Always start with a compelling narrative or artistic vision. This becomes the foundation for both the design and technical approach.

Challenges: Turning Vision Into Reality

  1. Achieving Seamless Hand Tracking: Designing intuitive hand controls in a browser-based XR environment required technical precision.
  2. Maintaining Aesthetic Appeal: Balancing performance optimization with high-quality visuals posed significant challenges.
  3. Creating a Cohesive Experience: Integrating storytelling, sound, and interaction into a single, seamless experience demanded a holistic approach.

Actionable Insight: When tackling technical challenges, prioritize the user experience above all. Technology is a means to an end, not the end itself.

The Process: Designing for Immersion

The Process: Designing for Immersion

  1. Ideation and Storyboarding
  • The project started with brainstorming sessions to conceptualize the storyline and interactions. A simple narrative — a battle against a dark magician — formed the core.

2. Building With Three.js

  • The 3D environment was created using Three.js, allowing for realistic lighting and interactive objects.
  • Hand-tracking mechanics were developed using Google Mediapipe to recognize gestures like aiming, shooting, and stopping.

3. Iterative Testing

  • User feedback was crucial to refining the controls and ensuring they felt natural.
  • Multiple rounds of testing helped optimize performance without compromising visual quality.

Actionable Insight: Iteration is your best friend. Build, test, refine — and repeat until you strike the right balance.

Results: Impact Beyond the Screen

Results: Impact Beyond the Screen

The Skull Crusher website demonstrated how art and technology could merge to deliver:

  • Emotional Engagement: Users felt a deep connection to the story and interactions.
  • Technical Innovation: A seamless hand-tracking interface showcased the potential of XR on the web.
  • Creative Inspiration: The project has inspired other designers and developers to explore similar intersections of art and technology.

Actionable Insight: Measure success not just by metrics but by the emotional and creative impact your product leaves on users.

Takeaways for Designers and Developers

  1. Embrace Emerging Technologies: Stay curious and experiment with tools like hand tracking and XR to push boundaries.
  2. Collaborate Across Disciplines: Work closely with storytellers, sound designers, and developers to create holistic experiences.
  3. Focus on User-Centric Design: Always prioritize the end-user’s experience, ensuring technology serves a purpose.

Conclusion

Designing and building digital products in the art and design industry is about more than aesthetics — it’s about crafting experiences that resonate. The Skull Crusher project showcases how creativity and technology can converge to create something truly immersive. By focusing on storytelling, iterative design, and user-centric innovation, we can continue to push the boundaries of what digital products can achieve.

What’s Next? If you’re inspired by this case study, consider how you can integrate emerging technologies into your projects. Start with a bold idea and let creativity and technology guide you to something extraordinary.

……

Want even more inspiration?
Follow us on social media for your daily dose of design, innovation, and creativity right in your feed!
Linkedin | Instagram | Twitter