callstack / callstack/react-native-paper

Surface: first-class semantic container color API independent of elevation

未关闭
#5,119 0 条评论 0 个 reaction 已指派 1 人 已被 @hristototov 认领 在 GitHub 查看
feature request v6
主要语言
TypeScript
星标
14.5k
派生
2.2k
平均合并
5 天 23 小时
30 天内合并 PR
12

描述

**Is your feature request related to a problem? Please describe.**

`Surface` derives its background color directly from the numeric `elevation` prop (`theme.colors.elevation.levelN`), including in `mode="flat"` and during animated elevation changes. A component cannot express "this container is `surfaceContainerLow`, and elevation only controls the shadow". The only escape hatch is passing a raw color via `backgroundColor`, which loses the semantic intent and doesn't track the theme role. As components are modernized to MD3 (e.g. Menu in #5037, which the spec fills with `surfaceContainer`), each one has to invent its own workaround.

**Describe the solution you'd like**

A `container` prop on `Surface` accepting a semantic surface-family color role (`surface`, `surfaceDim`, `surfaceBright`, `surfaceVariant`, `surfaceContainerLowest`–`surfaceContainerHighest`, `inverseSurface`), resolved from the theme:

```tsx

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。