> ## Documentation Index
> Fetch the complete documentation index at: https://mochi.yumeyuka.moe/llms.txt
> Use this file to discover all available pages before exploring further.

# 主题配置

下面两种写法分别对应默认主题与自定义品牌色，通常只在应用根部调用一次

<CodeGroup>
  ```kotlin title="默认" theme={null}
  MochiTheme {
      AppContent()
  }
  ```

  ```kotlin title="自定义" theme={null}
  val dark = false
  MochiTheme(
      dark = dark,
      colors = lightColors(brand = Color(0xFF006C4C)),
      extraColors = defaultExtraColors(dark),
  ) {
      AppContent()
  }
  ```
</CodeGroup>

## 参数说明

所有参数都有默认值，你可以按 token 组单独覆盖，`colors` 与 `extraColors` 应保持同一明暗模式

<ParamField path="dark" type="Boolean" default="isSystemInDarkTheme()">
  标记传入颜色是否为深色模式
</ParamField>

<ParamField path="colors" type="Colors" default="platformColors(dark)">
  基础语义色
</ParamField>

<ParamField path="extraColors" type="ExtraColors" default="defaultExtraColors(dark)">
  状态与轻量表面语义色
</ParamField>

<ParamField path="iconSize" type="IconSizes" default="DefaultIconSizes">
  图标尺寸 token
</ParamField>

<ParamField path="radius" type="Radius" default="DefaultRadius">
  连续圆角 token
</ParamField>

<ParamField path="spacing" type="Spacing" default="DefaultSpacing">
  布局间距 token
</ParamField>

<ParamField path="scale" type="Scale" default="DefaultScale">
  派生比例 token
</ParamField>

<ParamField path="textStyles" type="TextStyles" default="defaultTextStyles(scale)">
  文字样式 token
</ParamField>

<ParamField path="content" type="@Composable () -> Unit" required={true}>
  接收主题的内容树
</ParamField>

**注意：** 自定义 `colors` 时，同时传入匹配 `dark` 的 `extraColors`，<u>不要混用不同明暗模式的基础色与状态色</u>
