用途:这是 Sentry 前端 UI 开发规范,用于在实现界面组件、布局或排版时统一使用 @sentry/scraps 提供的核心组件,避免用 Emotion 自行创建 styled 组件,以保证样式一致、响应式与可维护性。
主要能力:提供布局基础组件 Container、Flex、Grid、Stack,以及排版组件 Text、Heading,并提供 InfoTip、InfoText 用于上下文帮助。Flex、Grid、Stack 均继承 Container 的全部属性,因此可同时使用定位、内边距、边框、圆角、溢出、背景等通用属性与各自的专用属性。
使用方式:从 @sentry/scraps/layout 引入布局组件,从 @sentry/scraps/text 引入文本组件,从 @sentry/scraps/info 引入信息组件。用属性替代样式代码,例如用 <Container padding="md" border="primary"> 代替 styled 组件;用 <Flex direction="column" gap="md"> 代替手写 flex 样式;用 <Stack> 处理默认纵向布局,并可用 Stack.Separator 添加分隔线;用 <Text as="p"> 与 <Heading as="h2"> 代替原生标签。属性支持响应式写法,裸键(如 {xs: …})基于最近的查询容器,screen: 前缀键基于视口;需要 JS 中获取断点时使用 useContainerBreakpoint(ref)。
适用场景:Sentry 前端界面开发中的布局、排版、提示信息等 UI 实现。
限制与注意:优先使用 gap 而非已废弃的 margin;布局与排版应拆分到不同基础组件;创建对基础组件的薄封装前必须先向用户确认并说明理由;完整属性列表需查阅实现文件(如 container.tsx、flex.tsx、grid.tsx、stack.tsx、text.tsx、heading.tsx)。