1e41f4b71Sopenharmony_ci# @ohos.arkui.Theme(主题换肤)
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci支持自定义主题风格,实现App组件风格跟随Theme切换。
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci> **说明:**
6e41f4b71Sopenharmony_ci>
7e41f4b71Sopenharmony_ci> 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci## 导入模块
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci```ts
12e41f4b71Sopenharmony_ciimport { Theme, ThemeControl, CustomColors, Colors, CustomTheme } from '@kit.ArkUI';
13e41f4b71Sopenharmony_ci```
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci## Theme
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci当前生效的主题风格对象,可从[onWillApplyTheme](arkui-ts/ts-custom-component-lifecycle.md#onwillapplytheme12)中获取。
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci| 名称 | 类型                | 可读 | 可写 | 说明       |
24e41f4b71Sopenharmony_ci| ------ |-------------------|-----|-----|----------|
25e41f4b71Sopenharmony_ci| colors | [Colors](#colors) | 否   | 否   |  主题颜色资源。 |
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci## Colors
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci主题颜色资源。
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci| 名称                           | 类型                                                 | 可读 | 可写 | 说明               |
36e41f4b71Sopenharmony_ci|-------------------------------|-----------------------------------------------------|-----|-----|------------------|
37e41f4b71Sopenharmony_ci| brand                         | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 品牌色。             |
38e41f4b71Sopenharmony_ci| warning                       | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 一级警示色。           |
39e41f4b71Sopenharmony_ci| alert                         | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 二级提示色。           |
40e41f4b71Sopenharmony_ci| confirm                       | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 确认色。             |
41e41f4b71Sopenharmony_ci| fontPrimary                   | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 一级文本字体颜色。        |
42e41f4b71Sopenharmony_ci| fontSecondary                 | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 二级文本字体颜色。        |
43e41f4b71Sopenharmony_ci| fontTertiary                  | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 三级文本字体颜色。        |
44e41f4b71Sopenharmony_ci| fontFourth                    | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 四级文本字体颜色。        |
45e41f4b71Sopenharmony_ci| fontEmphasize                 | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 高亮字体颜色。          |
46e41f4b71Sopenharmony_ci| fontOnPrimary                 | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 一级文本反转颜色,用于彩色背景。 |
47e41f4b71Sopenharmony_ci| fontOnSecondary               | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 二级文本反转颜色,用于彩色背景。 |
48e41f4b71Sopenharmony_ci| fontOnTertiary                | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 三级文本反转颜色,用于彩色背景。 |
49e41f4b71Sopenharmony_ci| fontOnFourth                  | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 四级文本反转颜色,用于彩色背景。 |
50e41f4b71Sopenharmony_ci| iconPrimary                   | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 一级图标颜色。          |
51e41f4b71Sopenharmony_ci| iconSecondary                 | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 二级图标颜色。          |
52e41f4b71Sopenharmony_ci| iconTertiary                  | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 三级图标颜色。          |
53e41f4b71Sopenharmony_ci| iconFourth                    | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 四级图标颜色。          |
54e41f4b71Sopenharmony_ci| iconEmphasize                 | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 高亮图标颜色。          |
55e41f4b71Sopenharmony_ci| iconSubEmphasize              | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 高亮辅助图标颜色。        |
56e41f4b71Sopenharmony_ci| iconOnPrimary                 | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 一级图标反转颜色,用于彩色背景。 |
57e41f4b71Sopenharmony_ci| iconOnSecondary               | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 二级图标反转颜色,用于彩色背景。 |
58e41f4b71Sopenharmony_ci| iconOnTertiary                | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 三级图标反转颜色,用于彩色背景。 |
59e41f4b71Sopenharmony_ci| iconOnFourth                  | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 四级图标反转颜色,用于彩色背景。 |
60e41f4b71Sopenharmony_ci| backgroundPrimary             | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 一级背景颜色(实色,不透明)。  |
61e41f4b71Sopenharmony_ci| backgroundSecondary           | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 二级背景颜色(实色,不透明)。  |
62e41f4b71Sopenharmony_ci| backgroundTertiary            | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 三级背景颜色(实色,不透明)。  |
63e41f4b71Sopenharmony_ci| backgroundFourth              | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 四级背景颜色(实色,不透明)。  |
64e41f4b71Sopenharmony_ci| backgroundEmphasize           | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 高亮背景颜色(实色,不透明)。  |
65e41f4b71Sopenharmony_ci| compForegroundPrimary         | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 前背景。             |
66e41f4b71Sopenharmony_ci| compBackgroundPrimary         | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 白色背景。            |
67e41f4b71Sopenharmony_ci| compBackgroundPrimaryTran     | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 白色透明背景。          |
68e41f4b71Sopenharmony_ci| compBackgroundPrimaryContrary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 常亮背景。            |
69e41f4b71Sopenharmony_ci| compBackgroundGray            | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 灰色背景。            |
70e41f4b71Sopenharmony_ci| compBackgroundSecondary       | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 二级背景。            |
71e41f4b71Sopenharmony_ci| compBackgroundTertiary        | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 三级背景。            |
72e41f4b71Sopenharmony_ci| compBackgroundEmphasize       | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 高亮背景。            |
73e41f4b71Sopenharmony_ci| compBackgroundNeutral         | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 黑色中性高亮背景颜色。      |
74e41f4b71Sopenharmony_ci| compEmphasizeSecondary        | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 20%高亮背景颜色。       |
75e41f4b71Sopenharmony_ci| compEmphasizeTertiary         | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 10%高亮背景颜色。       |
76e41f4b71Sopenharmony_ci| compDivider                   | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 通用分割线颜色。         |
77e41f4b71Sopenharmony_ci| compCommonContrary            | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 通用反转颜色。          |
78e41f4b71Sopenharmony_ci| compBackgroundFocus           | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 获焦态背景颜色。         |
79e41f4b71Sopenharmony_ci| compFocusedPrimary            | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 获焦态一级反转颜色。       |
80e41f4b71Sopenharmony_ci| compFocusedSecondary          | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 获焦态二级反转颜色。       |
81e41f4b71Sopenharmony_ci| compFocusedTertiary           | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 获焦态三级反转颜色。       |
82e41f4b71Sopenharmony_ci| interactiveHover              | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 通用悬停交互式颜色。       |
83e41f4b71Sopenharmony_ci| interactivePressed            | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 通用按压交互式颜色。       |
84e41f4b71Sopenharmony_ci| interactiveFocus              | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 通用获焦交互式颜色。       |
85e41f4b71Sopenharmony_ci| interactiveActive             | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 通用激活交互式颜色。       |
86e41f4b71Sopenharmony_ci| interactiveSelect             | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 通用选择交互式颜色。       |
87e41f4b71Sopenharmony_ci| interactiveClick              | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否   | 否   | 通用点击交互式颜色。       |
88e41f4b71Sopenharmony_ci
89e41f4b71Sopenharmony_ci## CustomTheme
90e41f4b71Sopenharmony_ci
91e41f4b71Sopenharmony_ci自定义主题风格对象。
92e41f4b71Sopenharmony_ci
93e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
94e41f4b71Sopenharmony_ci
95e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
96e41f4b71Sopenharmony_ci
97e41f4b71Sopenharmony_ci| 名称                           | 类型                                                 | 只读  | 可选  | 说明         |
98e41f4b71Sopenharmony_ci|-------------------------------|-----------------------------------------------------|-----|-----|------------|
99e41f4b71Sopenharmony_ci| colors | [CustomColors](#customcolors) | 否   | 是   | 自定义主题颜色资源。 |
100e41f4b71Sopenharmony_ci
101e41f4b71Sopenharmony_ci## CustomColors
102e41f4b71Sopenharmony_ci
103e41f4b71Sopenharmony_citype CustomColors = Partial\<Colors>
104e41f4b71Sopenharmony_ci
105e41f4b71Sopenharmony_ci自定义主题颜色资源类型。
106e41f4b71Sopenharmony_ci
107e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
108e41f4b71Sopenharmony_ci
109e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
110e41f4b71Sopenharmony_ci
111e41f4b71Sopenharmony_ci| 类型  | 说明           |
112e41f4b71Sopenharmony_ci|-----|--------------|
113e41f4b71Sopenharmony_ci| Partial<[Colors](#colors)>   | 自定义主题颜色资源类型。 |
114e41f4b71Sopenharmony_ci
115e41f4b71Sopenharmony_ci## ThemeControl
116e41f4b71Sopenharmony_ci
117e41f4b71Sopenharmony_ciThemeControl将自定义Theme应用于App组件内,实现App组件风格跟随Theme切换。
118e41f4b71Sopenharmony_ci
119e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
120e41f4b71Sopenharmony_ci
121e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
122e41f4b71Sopenharmony_ci
123e41f4b71Sopenharmony_ci### setDefaultTheme
124e41f4b71Sopenharmony_ci
125e41f4b71Sopenharmony_cisetDefaultTheme(theme: [CustomTheme](#customtheme)): void
126e41f4b71Sopenharmony_ci
127e41f4b71Sopenharmony_ci将用户自定义Theme设置应用级默认主题,实现应用风格跟随Theme切换。
128e41f4b71Sopenharmony_ci
129e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
130e41f4b71Sopenharmony_ci
131e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
132e41f4b71Sopenharmony_ci
133e41f4b71Sopenharmony_ci| 参数名       | 类型                           | 必填 | 说明             |
134e41f4b71Sopenharmony_ci|--------------|------------------------------|------|----------------|
135e41f4b71Sopenharmony_ci| theme | [CustomTheme](#customtheme)  | 是    | 表示设置的自定义主题风格 |
136e41f4b71Sopenharmony_ci
137e41f4b71Sopenharmony_ci**示例**
138e41f4b71Sopenharmony_ci
139e41f4b71Sopenharmony_ci```ts
140e41f4b71Sopenharmony_ciimport { CustomTheme, CustomColors, ThemeControl } from '@kit.ArkUI';
141e41f4b71Sopenharmony_ci// 自定义主题颜色
142e41f4b71Sopenharmony_ciclass BlueColors implements CustomColors {
143e41f4b71Sopenharmony_ci  fontPrimary = Color.White;
144e41f4b71Sopenharmony_ci  backgroundPrimary = Color.Blue;
145e41f4b71Sopenharmony_ci  brand = Color.Blue; //品牌色
146e41f4b71Sopenharmony_ci}
147e41f4b71Sopenharmony_ci
148e41f4b71Sopenharmony_ciclass PageCustomTheme implements CustomTheme {
149e41f4b71Sopenharmony_ci  colors?: CustomColors;
150e41f4b71Sopenharmony_ci
151e41f4b71Sopenharmony_ci  constructor(colors: CustomColors) {
152e41f4b71Sopenharmony_ci    this.colors = colors;
153e41f4b71Sopenharmony_ci  }
154e41f4b71Sopenharmony_ci}
155e41f4b71Sopenharmony_ci// 创建实例
156e41f4b71Sopenharmony_ciconst BlueColorsTheme = new PageCustomTheme(new BlueColors());
157e41f4b71Sopenharmony_ci// 在页面build之前执行ThemeControl.setDefaultTheme,设置App默认样式风格为BlueColorsTheme。
158e41f4b71Sopenharmony_ciThemeControl.setDefaultTheme(BlueColorsTheme);
159e41f4b71Sopenharmony_ci```
160