Doop
Doop is an open-source multiplayer design canvas and design MCP for Claude Code, Codex, and any AI agent. Design side by side with agents — free in beta.
Liquid Glass UI — 遵循 Apple 设计语言的 React 组件系统与文档站
Translation pending
DesignTypeScript · CSSGitHub @TsdsjOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
复刻 Apple Liquid Glass 质感的 React 组件库:真实边缘折射、动态高光与优雅毛玻璃降级。|React component library recreating Apple Liquid Glass with real edge refraction, dynamic highlights & graceful frosted fallback.
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
按 Apple 的设计语言做的一套 React 组件库:会折射背景的玻璃材质、完整的语义色与文字体系、可以拖动的原生控件。 独立项目,不是 Apple 官方产品,也不包含 Apple 的字体或图标素材。 需要 React 19。除此之外没有其它运行时依赖。 这个包名在 2026 年 7 月发过 0.1.0 / 0.2.0,那是另一套实现,现已从 registry 整包下架。本项目是完整重写,版本号从 0.0.1 重开。如果你的锁文件里还写着 ^0.2.0,它现在解析不到任何东西,改成 ^0.0.1。 样式表在应用入口引一次就够了。 玻璃只用在浮起来的那一层。正文、列表、卡片保持不透明——如果满屏都是半透明的,就没有东西真的浮起来了。 默认是磨砂——模糊、提色、高光、边线,四个引擎上一样。边缘折射要自己打开: 打开之后,Chromium 系(Chrome、Edge)走 SVG 位移拿到真的折射;Safari 和 Firefox 拿不到,退回磨砂。**布局、Read the full README ↗
按 Apple 的设计语言做的一套 React 组件库:会折射背景的玻璃材质、完整的语义色与文字体系、可以拖动的原生控件。
文档站:https://tsdsj.github.io/liquid-glass-react/
独立项目,不是 Apple 官方产品,也不包含 Apple 的字体或图标素材。
pnpm add @ttqtt/liquid-glass-react
需要 React 19。除此之外没有其它运行时依赖。
这个包名在 2026 年 7 月发过 0.1.0 / 0.2.0,那是另一套实现,现已从 registry 整包下架。本项目是完整重写,版本号从 0.0.1 重开。如果你的锁文件里还写着
^0.2.0,它现在解析不到任何东西,改成^0.0.1。
import {
GlassProvider, ToastProvider,
GlassToolbar, ToolbarGroup, ToolbarSpacer, GlassButton,
} from '@ttqtt/liquid-glass-react';
import '@ttqtt/liquid-glass-react/style.css';
export function App() {
return (
<GlassProvider theme="system">
<ToastProvider>
<GlassToolbar aria-label="图片操作">
<ToolbarGroup>
<GlassButton>查看原图</GlassButton>
</ToolbarGroup>
<ToolbarSpacer variant="flexible" />
<ToolbarGroup prominent>
<GlassButton variant="glassProminent">导出</GlassButton>
</ToolbarGroup>
</GlassToolbar>
</ToastProvider>
</GlassProvider>
);
}
样式表在应用入口引一次就够了。
66 个组件,分成两层——这个分层本身就是这套设计的核心:
| 层 | 组件 |
|---|---|
| 内容(实色,不透明) | Text、Card、Concentric、GroupBox、List、OutlineView、MaterialView、Divider、Kbd、DisclosureGroup |
| 控件 | GlassButton、GlassSegmentedControl、GlassSwitch、GlassCheckbox、RadioGroup、GlassSlider、GlassStepper、GlassProgress、GlassBadge、Picker、ColorWell |
| 输入 | TextField、SearchField |
| 导航 | GlassToolbar、MenuBar、PathBar、TabBar、Sidebar、NavigationBar、GlassTabs、ScrollEdge、PageControl |
| 布局(骨架) | Screen、NavigationStack、SplitView、Inspector、Grid、Form |
| 浮层 | GlassPopover、GlassMenu、GlassMenuButton、ContextMenu、CommandPalette、Tooltip、GlassSheet、GlassAlert、GlassActionSheet、GlassDialog、Panel、ToastProvider、Banner |
玻璃只用在浮起来的那一层。正文、列表、卡片保持不透明——如果满屏都是半透明的,就没有东西真的浮起来了。
GlassBackdrop 告诉它背后是深是浅,库不会去读取页面像素。id、style、data-*、aria-*。开发模式下还会对几条最容易踩的设计错误出声——玻璃套玻璃、一屏两个主操作、clear 用在没声明色调的地方——生产构建里这些完全不存在。默认是磨砂——模糊、提色、高光、边线,四个引擎上一样。边缘折射要自己打开:
<GlassProvider enableSvgAuto>
打开之后,Chromium 系(Chrome、Edge)走 SVG 位移拿到真的折射;Safari 和 Firefox 拿不到,退回磨砂。布局、语义、键盘路径都不依赖这条分支,有 16 项 WebKit / Firefox 用例守着这一点。
模糊是 CSS 链里的第一个函数,滤镜只管位移——所以哪家引擎丢掉了 url(),剩下的仍然是真的磨砂,而不是一块透明的洞。
:root, [data-lg-theme="light"] { --lg-accent: #6d28d9; }
[data-lg-theme="dark"] { --lg-accent: #8b5cf6; }
更多在主题指南里。
服务端先出磨砂效果,到浏览器再升级成折射,中间不会闪。Next.js App Router 只需在根布局里引一次样式表;整个包已经标成客户端组件。
pnpm install
pnpm dev # 文档站 http://127.0.0.1:5173
pnpm check # 类型检查 → 构建 → 单元 → SSR → 站点 → 真实 Chrome → WebKit/Firefox
src/
tokens/ 颜色、文字、间距、形状、动效的取值
core/ 不依赖浏览器的几何计算、弹簧、缓存
react/ 组件,按 内容 / 控件 / 输入 / 导航 / 浮层 分目录
styles/ tokens.css + components.css
site/ 文档站
tests/ core 单元测试、SSR 测试、Playwright 浏览器测试
docs/ 设计系统、API、无障碍、迁移、架构、测试口径
82 单元 · 7 SSR · 462 真实 Google Chrome · 15 开发模式 · 18 WebKit + Firefox
SSR 那三项跑的是 dist/,也就是真正发出去的那份。玻璃压在真实场景上的文字对比度是从合成后的像素上量的——把两个色值填进计算器不算数,因为玻璃的最终颜色取决于它背后是什么。三个引擎上最差的一块 7.83:1。
还没做完的:
详细清单见 docs/known-limitations.md。0.x 阶段仍可能有破坏性改动,每次都给改名对照表。
MIT,见 LICENSE 与 THIRD_PARTY_NOTICES.md。