# Widget 模板定制边界

模板卡片由固定外壳、标题栏、内容区和操作区组成。回答“能否这样配”时，以当前 [props.md](props.md) 的公开 props 为准，不根据相近卡型或历史实现猜测字段。

## 判断顺序

1. 先按 [overview.md](overview.md) 的选型决策选择当前卡型。
2. 检查该卡型是否已有对应的 props、列表项字段或事件回调。
3. 现有 Props 无法表达内容时，按模板能力或新设计需求确认；不要在新代码中使用为兼容旧项目保留的废弃 `children`。
4. 需要新增外壳结构、标题栏区域或底部操作区能力时，视为模板边界外需求，先确认新模板或设计方案。

## 允许的定制

- 通过 `header` 配置标题栏及右侧操作。
- 通过 `footer` 配置一个主按钮和一个次按钮；只传一个按钮时占据整行。
- 通过 `className`、`style` 和现有回调补充根节点或列表项的业务行为。
- 使用模板已有的列表项类型表达重复数据，并传稳定 `key`。

## 不应绕过的边界

- 不要在模板外再包一层 `view` 或 `scroll-view` 来重建卡片外壳。
- 不要把底部操作区扩展为第三个按钮，或用绝对定位伪造额外区域。
- 不要通过未公开的类名、历史 props 或其他卡型字段改变模板结构。
- 不要为了展示更多内容自行假设模板会折叠、截断或重排行数；以对应 props 的行为说明为准。

## 处理结果

| 诉求 | 处理方式 |
|------|----------|
| 当前 props 可直接表达 | 直接使用对应字段，并遵循其类型和事件语义 |
| 旧代码正在使用已废弃的 `children` | 保持兼容，并逐步迁移到当前模板公开字段 |
| 当前 Props 无法表达内容 | 不额外包裹节点，按模板能力或新设计需求确认 |
| 需要不同的卡片意图 | 回到选型决策，选择更匹配的现有模板 |
| 需要新的结构或操作区 | 明确说明当前模板不支持，作为新模板或设计需求确认 |
