设计系统
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 布局组件(
Box、Row、Column、LazyList、Scroll、Spacer等),统一常用的填充、间距和对齐方式。它们只提供默认参数,不会引入新的业务组件;如果需要真正的 UI 控件,请放到core/ui或对应 Feature 中。
官方组件的轻量封装
component 目录提供的是“更好用的默认值”:
AppBox/CenterBox/FullScreenBox等将对齐方式、fillMaxSize、常用PaddingValues集成在一起。AppRow/AppColumn/AppLazyColumn/AppLazyRow基于Size.kt的间距常量,统一排版节奏。AppScrollColumn、AppSpacer、VerticalScrollbar等则复用相同的尺寸和样式,避免页面内散落的魔法数。
这些封装不会改写 Compose 的行为,仅仅是便捷组合。
遵循 MD3,并覆盖为本地规范
虽然我们沿用 MD3 的结构(MaterialTheme、暗/亮色、Typography 等),但所有颜色、字号、圆角尺寸都根据设计稿进行了重新定义。主题系统章节会详细展示四张规范图(色彩、文字、按钮、布局),并说明对应的代码来源。本章只强调一点:designsystem 的存在是为了把这些规范落地到 Compose 中。
若想进一步了解 MD3 的原则,可参考官方站点:https://m3.material.io/
如何使用
- 编写布局时,优先复用
component中的封装,保持页面间的间距和对齐一致。 - 需要新增颜色、字体或间距时,在
theme目录定义常量,再通过MaterialTheme暴露。 - 自定义业务组件(按钮、导航栏、弹窗等)放到
core/ui或 Feature 目录,再按需复用theme的常量。
依靠这种分层,脚手架能快速调整视觉样式,同时保持所有页面的体验一致。