From 68fc35c111fe900de391b2ad8c74662159b7a5e0 Mon Sep 17 00:00:00 2001 From: Tryanks Date: Fri, 2 Oct 2026 00:58:52 +0800 Subject: [PATCH] docs: gpui-base is the infrastructure (Principle 7) Tcode uses every gpui-base primitive as it is, defaults included, before writing its own, and reimplements or overrides one only where gpui-base demonstrably cannot meet the need, naming the gap at the site. --- CONTRIBUTING.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e860efd4f..26b94dd60 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -55,9 +55,16 @@ is derived from it. **Process** is how to build, check and submit work. Orchestrate as its first plugin; the plugin API is designed first, and until it exists nothing is restructured toward plugins. -7. **No house UI principles.** Tcode follows the recommendations and defaults of - gpui-base and gpui-kit. There is no separate design contract to keep in sync - with the code. +7. **gpui-base is the infrastructure; no house UI principles.** Tcode follows + the recommendations and defaults of gpui-base and gpui-kit, and keeps no + separate design contract in sync with the code. Everything gpui-base + provides on top of GPUI — selection, scrolling, positioning, dismissal, + focus, theme tokens, motion, virtual lists, form controls — is used as it + is, defaults included, before anything of the kind is written in Tcode. + Tcode's own components are styled compositions of those primitives; they + never re-derive a primitive's rules locally. A primitive is reimplemented, + or a default overridden, only where gpui-base demonstrably cannot meet the + need; the site names that gap, and it is removed once gpui-base closes it. 8. **Code and tests are the only source of truth.** This section is the only maintainer-authored text; comments, issues and other documents are derived