<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/arqhpducm" -->

---
title: Plasma UI — liquid panels for React | daily.dev
description: Plasma UI is a React library that renders draggable, fusible UI panels as a single shared WebGL-rendered liquid material on canvas. Panels fuse on contact,...
canonical: https://daily.dev/posts/arqhpducm
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Plasma UI — liquid panels for React | daily.dev
og:description: Plasma UI is a React library that renders draggable, fusible UI panels as a single shared WebGL-rendered liquid material on canvas. Panels fuse on contact,...
og:url: https://daily.dev/posts/arqhpducm
og:image: https://api.daily.dev/og/posts/arQhpducm.png
og:image:alt: Post cover image
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Plasma UI — liquid panels for React

**[Dev World](https://daily.dev/sources/dev_world)** · [@hadilbenabdallah](https://daily.dev/hadilbenabdallah) · 242 upvotes · 21 comments

## Summary

Plasma UI is a React library that renders draggable, fusible UI panels as a single shared WebGL-rendered liquid material on canvas. Panels fuse on contact, refract the background, and snap to a grid, with an extensive API for controlling color, physics, lighting, and material appearance (plasma, crystal, metal, wood, stone, cloud). It ships as an npm package with a PlasmaProvider/Plasma component API, hooks for runtime control, and documented limitations such as no layer support within one canvas, no scroll clipping, no drag/resize handles, and rounded-rectangle-only shapes in the current 0.1 release.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://cruxgarden.github.io/plasma-ui>

## Community discussion

Top comments from developers on daily.dev.

**@arkmob** · 15 upvotes

> super cool but way too gimmicky for my needs

**@adarshks** · 11 upvotes

> I should try this...

**@captainlevi39** · 10 upvotes

> Will definitely try this!

**@ristotoldsep** · 6 upvotes

> This is wildly overqualified for a settings panel. I love it.

**@romeltech** · 4 upvotes

> What trickery is this?

## Similar posts on daily.dev

- [Canvas UI Ships 35 HTML-in-Canvas Components That Run WebGL and WebGPU Effects Over Live DOM](https://daily.dev/posts/canvas-ui-ships-35-html-in-canvas-components-that-run-webgl-and-webgpu-effects-over-live-dom-tfekmd60e) · InfoQ · 0 upvotes · 0 comments
- [Hologram UI](https://daily.dev/posts/hologram-ui-zyvgvepnt) · ElixirStatus · 23 upvotes · 3 comments
- [Jelly UI — Soft Web Components](https://daily.dev/posts/jelly-ui-soft-web-components-k8vno88yp) · Hacker News · 5 upvotes · 0 comments
- [Explore This Tactile UI Powered By Real-Time WebGL Shader](https://daily.dev/posts/explore-this-tactile-ui-powered-by-real-time-webgl-shader-unjsszd7a) · 80 LEVEL · 1 upvotes · 0 comments

---

Tags: [#react](https://daily.dev/tags/react), [#css](https://daily.dev/tags/css), [#webgl](https://daily.dev/tags/webgl)

[View this post on daily.dev](https://daily.dev/posts/arqhpducm)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"DiscussionForumPosting","mainEntityOfPage":"https://daily.dev/posts/arqhpducm","headline":"Plasma UI — liquid panels for React","text":"Shared: Plasma UI — liquid panels for React","url":"https://daily.dev/posts/arqhpducm","datePublished":"2026-09-23T09:43:58.474Z","dateModified":"2026-09-23T09:45:11.865Z","author":{"@type":"Person","name":"Hadil Ben Abdallah","url":"https://daily.dev/hadilbenabdallah","image":"https://media.daily.dev/image/upload/s--npVXQBAk--/f_auto/v1726134205/avatars/avatar_9pqnrpoJdg1CfgqIBuMCl","description":"An Amazing Software Engineer \u0026 Technical Writer","interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"EndorseAction"},"userInteractionCount":43880}},"image":"https://media.daily.dev/image/upload/s--2-1xRawN--/f_auto/v1722860399/public/Placeholder%2011","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":242},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":21}],"sharedContent":{"@type":"WebPage","url":"https://api.daily.dev/r/k1tMeALel"},"comment":[{"@type":"Comment","text":"super cool but way too gimmicky for my needs","datePublished":"2026-09-25T05:39:10.890Z","url":"https://daily.dev/posts/arQhpducm#c-MpgmkaHFD","author":{"@type":"Person","name":"Dan","url":"https://daily.dev/arkmob","image":"https://lh3.googleusercontent.com/a/ACg8ocKCo-HLknsFcRm2wKXOy7ipK4ngNWqTIL_4lc4lZqyt4uqOGww=s96-c"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":15}},{"@type":"Comment","text":"I should try this…","datePublished":"2026-09-25T04:04:47.837Z","url":"https://daily.dev/posts/arQhpducm#c-6xjcxKEUT","author":{"@type":"Person","name":"Adarsh KS","url":"https://daily.dev/adarshks","image":"https://media.daily.dev/image/upload/s--AOhSU9kx--/f_auto/v1785742065/avatars/avatar_gdco5dGLTOCNm55DPuark?_a=BAMAMicg0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":11}},{"@type":"Comment","text":"Will definitely try this!","datePublished":"2026-09-25T05:37:57.575Z","url":"https://daily.dev/posts/arQhpducm#c-aGlZ1vz6P","author":{"@type":"Person","name":"Captain Levi","url":"https://daily.dev/captainlevi39","image":"https://media.daily.dev/image/upload/s--h7oVP0Ce--/f_auto/v1790314852/avatars/avatar_u8IewOfnmNIYOr7gDYuii?_a=BAMAMicg0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":10}},{"@type":"Comment","text":"This is wildly overqualified for a settings panel. I love it.","datePublished":"2026-09-25T08:15:00.018Z","url":"https://daily.dev/posts/arQhpducm#c-OC25RZODm","author":{"@type":"Person","name":"Risto Tõldsep","url":"https://daily.dev/ristotoldsep","image":"https://lh3.googleusercontent.com/a/ACg8ocLDWc6mZn0JwNmXXw6WY0L_HJ6pegzRttooC5VgtXESHSj3MNYx=s96-c"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":6}},{"@type":"Comment","text":"What trickery is this?","datePublished":"2026-09-25T07:32:19.045Z","url":"https://daily.dev/posts/arQhpducm#c-myo22baHS","author":{"@type":"Person","name":"Romel","url":"https://daily.dev/romeltech","image":"https://lh3.googleusercontent.com/a/ACg8ocLXdVM7dm8jXeGczNpFrzBpySAvTP-5-3hA50WtCchAWgPZBvRQ=s96-c"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":4}}],"isPartOf":{"@type":"WebPage","url":"https://daily.dev/squads/dev_world","name":"Dev World"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Dev World","item":"https://daily.dev/squads/dev_world"},{"@type":"ListItem","position":3,"name":"Plasma UI — liquid panels for React"}]}
```

