Text
Base 被动文本内容与可复用排版输入。
base-text-root 是 draft 可复用 Text 原子。Base 拥有规范化的呈现输入和一个被动内容槽,保持视觉中立。排版选择经由 Shadcn 或 Brutalist 投射形成可见效果,不向 Base 引入默认设计语言。
示例使用真实包原型。外层 stack 只提供演示布局,每个 Text 实例拥有自己的内容与适用呈现;示例没有添加点击处理或编辑状态。
使用 Text
Section titled “使用 Text”import * as React from 'react';import { createReactAdapter } from '@proto.ui/adapter-react';import { textRoot } from '@proto.ui/prototypes-base/text';
const Text = createReactAdapter(React)(textRoot, { rootTag: 'span' });
export function SectionTitle() { return ( <h1> <Text size="4xl" font="heading" weight="semibold" leading="tight" tracking="tight"> Account settings </Text> </h1> );}这个 Base 示例保留原生标题并规范化输入;要将输入投射成家族排版,应选择带风格的 Text 导出。同一 subpath 和包根也导出 asTextRoot、TextRootProps、TextRootExposes。
rootTag: 'span' 是 Web Adapter 配置,不是 Text prop。外层原生 h1、p、label 或 a 继续拥有文档或交互语义;标签的 htmlFor/for 留在原生 label,链接的 href、target、download 留在原生 anchor。Text 不创建第二个焦点停靠点,也不合成激活事件。
| Prop | Values | Default |
|---|---|---|
size | xs, sm, base, lg, xl, 2xl, 3xl, 4xl, 5xl | base |
tone | default, muted, inherit | default |
weight | normal, medium, semibold, bold | normal |
font | body, heading, mono | body |
leading | tight, snug, normal, relaxed | normal |
tracking | normal, tight | normal |
emphasis | normal, italic | normal |
decoration | none, underline, line-through | none |
tone="inherit" 保留外层语义 owner 或 Surface 的前景色,适合 solid/accent 表面的对比关系。移除 prop 后恢复默认值。单一匿名槽保留作者提供的文本和子内容,没有暴露的 state、method 或 event。页面角色、文案、标题层级、asChild、tag、href、for、内容解析器、编辑器及自动响应式断点都不属于此 API。
Adapter 与 Compiler 边界
Section titled “Adapter 与 Compiler 边界”已实现的 Web profile 通过 Web Components、React、Vue 3、Vue 2 验证,包括属性变化/移除、内容保留与原生 owner 组合。Web compiler 的 source-closure 和生成 facade 检查与 Adapter 证据分开,不代表任意 Prototype AOT 或原生平台等价。
CLI 拒绝不支持的 GPUI target。原生 GPUI 排版映射仍缺少 font-style、letter-spacing、text-decoration-line;这些是明确诊断的限制,不是等价画面。GPUI 当前对 tone="inherit" 报告 UnsupportedValue(color, inherit)。未知样式 token 报告 Unsupported Proto UI style tokens,不会静默成功。真实浏览器视觉验收及各目标执行证据,应与源码、DOM 测试分别陈述。
P-BASE-TEXT、T-TEXT-0001治理此 slice。源码为 packages/prototypes/base/src/text/,编目生命周期仍为 draft。