登录 注册
其他 layoutui
18,409
Stars
748
Forks
102
Watchers
287
Open Issues
Zlib
许可证
C
语言
2024-07-21
创建时间
2026-05-20
最近更新

项目能做什么

基于 C 语言编写的高性能 UI 布局库。
来源:AI 基于仓库事实生成 · 内容以仓库实际 README 为准

使用说明 查看原始 README 原仓库文档

中文使用说明暂未生成。下面保留原仓库 README 摘录,命令与配置均以原文为准。
原始 README 摘录(英文原文,节选前 3000 字符)
# Clay, A UI Layout Library
**_Clay_** (short for **C Layout**) is a high performance 2D UI layout library.

### Major Features
- Microsecond layout performance
- Flex-box like layout model for complex, responsive layouts including text wrapping, scrolling containers and aspect ratio scaling
- Transition API for easy layout animations
- Single 4.8k LOC **clay.h** file with **zero** dependencies (including no standard library linking)
- Wasm support: compile with clang to a 15kb uncompressed **.wasm** file for use in the browser
- Static arena based memory use with no malloc / free, and low total memory overhead (e.g. ~3.5mb for 8192 layout elements).
- React-like nested declarative syntax
- Renderer agnostic: outputs a sorted list of rendering primitives that can be easily composited in any 3D engine, and even compiled to HTML (examples provided)

Take a look at the [clay website](https://nicbarker.com/clay) for an example of clay compiled to wasm and running in the browser, or others in the [examples directory](https://github.com/nicbarker/clay/tree/main/examples).

You can also watch the [introduction video](https://youtu.be/DYWTw19_8r4) for an overview of the motivation behind Clay's development and a short demo of its usage.

<img width="1394" alt="A screenshot of a code IDE with lots of visual and textual elements" src="https://github.com/user-attachments/assets/9986149a-ee0f-449a-a83e-64a392267e3d">

_An example GUI application built with clay_

## Quick Start

Download or clone clay.h and include it after defining `CLAY_IMPLEMENTATION` in one file.

```C
// Must be defined in one file, _before_ #include "clay.h"
#define CLAY_IMPLEMENTATION
#include "../../clay.h"

const Clay_Color COLOR_LIGHT = (Clay_Color) {224, 215, 210, 255};
const Clay_Color COLOR_RED = (Clay_Color) {168, 66, 28, 255};
const Clay_Color COLOR_ORANGE = (Clay_Color) {225, 138, 50, 255};

void HandleClayErrors(Clay_ErrorData errorData) {
    // See the Clay_ErrorData struct for more information
    printf("%s", errorData.errorText.chars);
    switch(errorData.errorType) {
        // etc
    }
}

// Example measure text function
static inline Clay_Dimensions MeasureText(Clay_StringSlice text, Clay_TextElementConfig *config, uintptr_t userData) {
    // Clay_TextElementConfig contains members such as fontId, fontSize, letterSpacing etc
    // Note: Clay_String->chars is not guaranteed to be null terminated
    return (Clay_Dimensions) {
            .width = text.length * config->fontSize, // <- this will only work for monospace fonts, see the renderers/ directory for more advanced text measurement
            .height = config->fontSize
    };
}

// Layout config is just a struct that can be declared statically, or inline
Clay_ElementDeclaration sidebarItemConfig = (Clay_ElementDeclaration) {
    .layout = {
        .sizing = { .width = CLAY_SIZING_GROW(0), .height = CLAY_SIZING_FIXED(50) }
    },
    .backgroundColor = COLOR_ORANGE
};

// Re-useable components are just norma
阅读完整原文

项目深度分析 AI 生成

可视化 UI 布局编辑器与代码生成器(SaaS / 桌面端)

产品构想基于 Clay 的 Wasm 特性,开发一个浏览器内运行的所见即所得(WYSIWYG)UI 布局编辑器,支持拖拽生成 Clay 的嵌套声明式 C 代码,并实时预览不同屏幕尺寸下的响应式效果。
核心功能拖拽式 Flexbox 布局编辑、实时 Wasm 预览、一键导出 clay.h 兼容的 C 代码、主题与组件库模板。
目标用户使用 Clay 的 C/C++ 开发者、独立游戏开发者、需要快速原型设计的嵌入式团队。
难度/周期中 · 1-3个月 · 成本:低(主要为个人开发时间与轻量静态托管成本)
收费模式免费基础版 + 付费专业版(支持自定义组件库、团队协作、多语言绑定导出如 Zig/Rust)。
竞争风险受众相对垂直(C/C++ UI 开发者),付费意愿需验证;开发者可能更习惯手写代码。
依据 数据支持的判断

多引擎/多框架官方级渲染器适配包与商业组件库

产品构想Clay 本身渲染器无关,开发者需要自行对接渲染后端。提供开箱即用的高质量商业组件库(如数据表格、图表、代码编辑器、节点编辑器)及主流引擎(SDL3, Raylib, Sokol, WebGPU, Vulkan)的深度优化渲染后端。
核心功能预置复杂 UI 控件(表格、树形控件、颜色选择器等)、高性能文本渲染与字体图集集成、开箱即用的多平台渲染后端。
目标用户希望快速上线商业软件或游戏 UI 的中小型工作室、独立开发者。
难度/周期中 · 2-4个月 · 成本:低
收费模式一次性买断授权(按席位或按项目)或年度更新订阅。
竞争风险开源社区可能会自发贡献免费渲染器,需在复杂组件和工程化完善度上建立壁垒。
依据 AI推测

嵌入式与游戏行业技术咨询及定制集成服务

产品构想针对需要将 Clay 集成到特定自研引擎、嵌入式硬件(如工业控制屏、车载仪表盘)或有严苛内存/性能要求的商业团队,提供付费的架构集成、性能调优和定制开发服务。
核心功能定制内存分配策略适配、特定硬件渲染管线对接、旧有 UI 系统向 Clay 迁移。
目标用户嵌入式设备厂商、自研引擎的游戏公司、工业软件团队。
难度/周期高(需深厚 C 语言及图形学经验) · 持续服务 · 成本:极低(时间成本)
收费模式按小时/按项目收取高额技术咨询费或企业级 SLA 年费。
竞争风险难以规模化,高度依赖个人时间与项目口碑。
依据 尚需验证的假设

跨语言绑定与生态工具链(Rust / Zig / Go)

产品构想利用 Clay 单文件零依赖的特性,打造高质量、符合目标语言习惯的绑定库及配套开发工具(如热重载工具、调试器插件),并围绕生态提供企业支持或赞助。
核心功能安全的 FFI 封装、宏/语法糖支持、UI 状态热重载调试器。
目标用户使用 Zig、Rust、Go 等现代系统语言但需要轻量级 UI 布局的开发者。
难度/周期中 · 1-2个月 · 成本:极低
收费模式GitHub Sponsors、企业赞助、配套调试工具收费。
竞争风险纯开源绑定本身较难直接变现,通常作为引流或赞助手段。
依据 AI推测
AI 基于仓库公开数据分析生成,含推测成分,不构成收益承诺。
报告会保存到 个人中心

竞品与相似项目 GitHub Search 真实检索

项目中文简介Stars语言
golang-standards/project-layout 中文介绍暂未生成
Standard Go Project Layout
56,744 Makefile
op7418/guizang-ppt-skill 中文介绍暂未生成
AI-agent Skill for generating polished HTML slide decks: edi
29,733 HTML
scwang90/SmartRefreshLayout 中文介绍暂未生成
🔥下拉刷新、上拉加载、二级刷新、淘宝二楼、RefreshLayout、OverScroll,Android智能下拉刷新框
25,084 Java
以上为通过 GitHub 官方 Search API 检索的相似项目,功能差异与优劣势需进一步人工确认,配置 AI 后可生成对比分析。

项目优势与风险

技术成熟度创建于 2024-07-21,最近推送 2026-05-20,发布过 5 个 Release
社区活跃Star 18,409 / Fork 748 / Issue 287(数据支持,可自行核实)
许可证Zlib
主要风险上游项目方向可能变化;同赛道竞争者较多(见竞品表);热度与需求不完全等价

安装与使用

此项目未提供 Docker 镜像,安装步骤以原仓库 README 为准(涉及依赖安装与环境配置,对新手门槛较高)。