用途:在 GPUI 应用中构建界面,并提供必须遵守的设计与编码指南。改动 UI、交互、布局、样式、组件或架构前,应先阅读对应指南;指南是要求而非参考。
主要能力:提供输入与表单(Input、Select、Combobox、Checkbox、DatePicker 等)、展示与反馈(Button、Icon、Badge、Alert、Progress 等)、浮层与弹窗(Dialog、Sheet、Notification、Popover、Menu)、导航与布局(Tabs、Sidebar、TitleBar、Resizable)、数据展示(DataTable、VirtualList、Tree、List)以及图表(AreaChart、BarChart、LineChart、PieChart、RadarChart)。
使用方式:初始化必须最先执行 gpui_component::init(cx);,每个窗口首层视图用 Root::new(view, window, cx)。无状态组件直接在 render 中使用,如 Button::new("id").primary().label("OK").on_click(|_, _, _| {});有状态组件需在 struct 中持有 Entity<State>,render 时传引用,如 Input::new(&self.input)。尺寸用 .xsmall()/.small()/.medium()/.large(),主题用 cx.theme() 语义令牌。
限制与要求:不得臆造 API,需查当前源码真实签名;桌面优先于 Web 约定;应用内命令用 Button,仅外部 URL 和邮箱用 Link;禁止在应用 UI 中使用原始 hex 或 rgb(...),间距用 rem 辅助函数;状态需可见且一致;重复元素用领域派生的 ElementId;Escape 关闭最上层浮层并归还焦点;文案需指明对象与动作。完整参考可获取 https://gpui-kit.com/llms-full.txt,单组件 API 获取 https://gpui-kit.com/docs/components/{name}.md。