
Solid Glass 的作用
Solid Glass 是一款面向工业 AI 面板、操作员控制台和仪表盘的 shadcn/ui 视觉主题。它为界面提供厚重、烟熏质感的面板,从远处看起来坚实,主要在边缘展现玻璃特性。
与液态玻璃效果不同,Solid Glass 不会让背景与文字争夺注意力。其表面采用中性灰色,不会弯曲、流动,也不会吸收背后内容的颜色。最终质感来自顶部的浅色线条、细边框和表面下方的阴影。

该项目包含 shadcn/ui 组件集,以及一组适用于 AI 代理执行任务时所用界面的组件。官方 Solid Glass 网站 展示了这种材质在各个可用组件中的效果,并提供了一个可调整视觉变量的 Create 页面。

主要特性和组件
- 单个样式表通过 shadcn/ui 组件现有的
data-slot属性和类名应用主题。 - 主题定义了 shadcn/ui 的变量名称,包括三种玻璃厚度、颜色、动效,以及唯一的视觉状态。
- 深色模式是主要材质设计,同时也提供浅色主题。
- Create 页面可调整厚度、色调、图表颜色、字体、圆角、边缘和模糊效果,然后复制生成的 CSS。
- 注册表通过 shadcn CLI 提供可安装的 Solid Glass 组件。
Solid Glass 自带的组件包括 status-glyph、panel、tag 和 dot-loader。面向代理的组件包括 turn-status、composer、tool-steps、diff-view、ask-card、context-ring、task-notice 和 reasoning。
安装主题
1. 从 shadcn/ui 项目开始
使用基于 React 19、Tailwind CSS 4 和 Base UI 组件的 shadcn/ui 项目。如果从零开始,请使用以下命令初始化:
npx shadcn@latest init
2. 添加 Solid Glass 样式表
你可以从托管注册表或直接从代码仓库安装样式表:
npx shadcn@latest add https://deeplethe.github.io/solid-glass/r/solid-glass.json
npx shadcn@latest add deeplethe/solid-glass/solid-glass3. 在现有样式之后导入
在 Tailwind 和 shadcn/ui 的样式表之后导入 Solid Glass。该主题使用与 shadcn init 创建的相同颜色变量名称,因此请在添加导入前移除生成的 :root 和 .dark 颜色变量代码块。
@import "tailwindcss";
@import "tw-animate-css";
@import "shadcn/tailwind.css";
@import "./solid-glass.css";完成导入后,现有的 shadcn/ui 组件无需修改即可使用该材质。如需完整安装指南,请参阅 Solid Glass 安装页面。

安装 Solid Glass 组件
Solid Glass 自带的组件使用相同的 shadcn 注册表工作流。例如,使用以下命令安装状态指示器:
npx shadcn@latest add https://deeplethe.github.io/solid-glass/r/status-glyph.json将注册表 URL 替换为其他组件的地址,即可重复执行该命令。可用的注册表条目涵盖状态显示、面板、标签、加载指示器、代理回合信息、编辑区域、工具步骤、差异、问题、上下文使用情况、任务通知和推理视图。

在本地运行项目
如需开发 Solid Glass 展示站点或查看其源代码,请克隆代码仓库、安装依赖并启动开发服务器:
npm install
npm run dev开发站点运行于 http://localhost:5191。生产构建和验证命令如下:
npm run build
npm run typecheck构建输出会写入 dist/。
探索开发工具
代码仓库包含仅用于开发的路由,帮助你检查主题和示例:
/dev/banner显示项目使用的开发横幅。/dev/examples挂载所有示例,并报告失败的示例。/dev/examples?q=button,card筛选要显示的示例。/dev/examples?theme=light以浅色主题预览示例。/dev/examples?hover=<selector>将匹配的元素显示为指针悬停状态。/dev/examples?click=<selector>按下匹配的元素,以便检查它打开的内容。
在代码仓库默认的 GitHub Pages 位置之外部署站点时,请将 SOLID_GLASS_ORIGIN 设置为站点的服务地址,并将 SOLID_GLASS_BASE 设置为其路径。Solid Glass 组件会在相互引用时使用 origin。
了解项目结构

最重要的文件和目录包括:
src/solid-glass.css包含完整的材质主题。registry.json描述 shadcn CLI 的安装内容。构建注册表时还会为网站生成public/r/。src/components/ui/包含页面展示的 shadcn/ui 和 Solid Glass 组件。src/create/和src/pages/create.tsx实现材质自定义页面。src/examples/为每个示例分别保存一个小型文件。content/存储组件和项目文档。scripts/build-docs.mjs将文档转换为src/docs/generated.json。
创建 Solid Glass 组件
要添加自定义组件,请遵循项目采用的相同组织方式:
- 创建
src/components/ui/<name>.tsx。按照 shadcn/ui 组件的方式编写,使用函数组件,为每个部分添加data-slot,并使用来自@/lib/utils的cn()。 - 添加
src/examples/<name>-demo.tsx,并为每个额外示例分别添加一个文件。 - 创建
content/solid/<name>.mdx。包含带有标题和描述的 front matter、组件预览、安装说明、使用说明,以及每个示例对应的标题。
确保材质符合四项设计规则:边缘决定饰面,表面应给人厚重而非轻盈的感觉,深度通过厚度来表达,界面采用单一状态。
使用 Create 页面进行高级自定义
打开创建页面,以交互方式调整材质。调整厚度、色调、图表颜色、类型、圆角、边缘和模糊效果,同时预览会实时更新。结果符合界面需求后,复制生成的少量 CSS,并在项目样式表中调整相关变量。
可用选项定义在 src/create/options.ts 中,预览卡片使用 shadcn/ui 组件。因此,该页面既可作为设计工具,也可用于了解主题变量如何影响材质。
结语
Solid Glass 为现有的 shadcn/ui 应用提供了一种低门槛的方式,使其拥有厚重、易读的玻璃质感。将其样式表置于常规主题文件之后,在需要时从注册表添加面向智能代理的组件,并使用本地示例或 Create 页面进一步完善效果。项目采用 MIT License 发布;源自 shadcn/ui 的组件和文档仍遵循其作者的 MIT License,详见 NOTICE.md。
