Skip to content

设计系统

app/src/main/java/com/joker/kit/core/designsystem 负责沉淀统一的 UI 语言:颜色、形状、排版以及常用 Compose 组件的轻量封装。这样一来,业务页面只需关注状态与交互,视觉规范集中由 Core 维护。本模块建立在 Material Design 3 能力之上,但数值(颜色、字号、圆角、间距等)全部取自自定义的四份设计规范,而非直接沿用 MD3 默认值。

模块职责

  • theme/:管理 MaterialTheme 相关的颜色(Color.kt)、字体(Type.kt)、圆角(Shape.kt)与尺寸(Size.kt)。这一层是全局的视觉基线。
  • component/:封装官方 Compose 布局组件(BoxRowColumnLazyListScrollSpacer 等),统一常用的填充、间距和对齐方式。它们只提供默认参数,不会引入新的业务组件;如果需要真正的 UI 控件,请放到 core/ui 或对应 Feature 中。

官方组件的轻量封装

component 目录提供的是“更好用的默认值”:

  • AppBox/CenterBox/FullScreenBox 等将对齐方式、fillMaxSize、常用 PaddingValues 集成在一起。
  • AppRow/AppColumn/AppLazyColumn/AppLazyRow 基于 Size.kt 的间距常量,统一排版节奏。
  • AppScrollColumnAppSpacerVerticalScrollbar 等则复用相同的尺寸和样式,避免页面内散落的魔法数。

这些封装不会改写 Compose 的行为,仅仅是便捷组合。

遵循 MD3,并覆盖为本地规范

虽然我们沿用 MD3 的结构(MaterialTheme、暗/亮色、Typography 等),但所有颜色、字号、圆角尺寸都根据设计稿进行了重新定义。主题系统章节会详细展示四张规范图(色彩、文字、按钮、布局),并说明对应的代码来源。本章只强调一点:designsystem 的存在是为了把这些规范落地到 Compose 中

若想进一步了解 MD3 的原则,可参考官方站点:https://m3.material.io/

如何使用

  • 编写布局时,优先复用 component 中的封装,保持页面间的间距和对齐一致。
  • 需要新增颜色、字体或间距时,在 theme 目录定义常量,再通过 MaterialTheme 暴露。
  • 自定义业务组件(按钮、导航栏、弹窗等)放到 core/ui 或 Feature 目录,再按需复用 theme 的常量。

依靠这种分层,脚手架能快速调整视觉样式,同时保持所有页面的体验一致。