羽球联盟 HarmonyOS NEXT 实战系列 (06/20):主题Token、Resource颜色与深色模式准备

发布时间:2026/7/10 4:06:21

羽球联盟 HarmonyOS NEXT 实战系列 (06/20):主题Token、Resource颜色与深色模式准备
文章导读颜色、字号、间距、圆角集中在 主题定义页面只引用语义 token。Resource 颜色通过 base 与 dark 资源自动适配深浅色。少量字符串色保留给 badge/tag 等数据模型字段。页面效果个人中心、首页卡片和底部导航应使用同一套主色、背景色、文字层级和圆角节奏切换深浅色后仍保持可读。实战拆解一个资讯应用页面很多如果每个页面都直接写 #0F7B5F、16、8视觉会很快失控。羽球联盟把主题拆成 AppColors 和 AppSizes页面只关心语义主色、正文色、页面背景、卡片背景、分割线、常用字号和间距。这里最值得写清楚的是 Resource 颜色和字符串色的边界。会跟随深色模式变化的页面背景、文本、主色使用 $r 引用资源作为数据标签传入的 tagColor 仍保留 string因为 Tag 组件可能需要拼接或从模型读取字符串色。关键代码export class AppColors { static readonly primary: Resource $r(app.color.primary); static readonly textPrimary: Resource $r(app.color.text_primary); static readonly bgPage: Resource $r(app.color.bg_page); } export class AppSizes { static readonly s16: number 16; static readonly r8: number 8; }主题 token 把视觉值收束到语义层页面代码读到的是“主色”和“页面背景”不是一堆散落数字。取舍分析这里的取舍可以从两个方向看一边要让当前页面足够直观用户打开后能马上理解入口、状态和反馈另一边要给后续迭代留下余量避免把数据处理、视觉样式和跳转逻辑全部写死在同一个地方。颜色、字号、间距和圆角应先有语义再进入页面。 会随系统外观变化的颜色用资源承载标签色等数据色保持字符串更灵活。设计落点颜色、字号、间距和圆角应先有语义再进入页面。会随系统外观变化的颜色用资源承载标签色等数据色保持字符串更灵活。深色模式不是最后补丁而是页面持续使用 token 后自然生效。易踩坑不要把 Resource 和 string 颜色混用到难以追踪先定义语义边界。不要在卡片内部再发明局部颜色体系除非它是可复用组件的明确变体。验证方式切换系统深浅色检查背景、正文和分割线可读性。观察首页、详情页、个人中心是否使用一致间距。修改主色后确认底部导航和按钮同步变化。小结主题Token、Resource颜色与深色模式准备 的价值在于把页面现象和工程边界放在一起看用户看到的是流畅的入口、列表、详情和反馈开发者真正维护的是状态、模型和组件之间的关系。这个思路迁移到其他 ArkTS 项目时比单独记某个 API 更可靠。

相关新闻

Traduccion项目完全指南:如何参与You Don‘t Know JS西班牙语翻译

Traduccion项目完全指南:如何参与You Don‘t Know JS西班牙语翻译

2026/7/7 9:24:39

Traduccion项目完全指南:如何参与You Dont Know JS西班牙语翻译 【免费下载链接】Traduccion Traduccin de la serie de JavaScript. YDKJS 项目地址: https://gitcode.com/gh_mirrors/tr/Traduccion Traduccion项目是GitHub加速计划中的重要组成部分&#x…

cn2an核心功能详解:从基础转化到日期、分数的完整支持

cn2an核心功能详解:从基础转化到日期、分数的完整支持

2026/7/9 3:34:15

cn2an核心功能详解:从基础转化到日期、分数的完整支持 【免费下载链接】cn2an 📦 快速转化「中文数字」和「阿拉伯数字」~ (最新特性:分数,日期、温度等转化) 项目地址: https://gitcode.com/gh_mirrors/…

MATHC快速开始教程:5步搭建你的第一个3D数学运算环境

MATHC快速开始教程:5步搭建你的第一个3D数学运算环境

2026/7/8 5:59:53

MATHC快速开始教程:5步搭建你的第一个3D数学运算环境 【免费下载链接】mathc Pure C math library for 2D and 3D programming 项目地址: https://gitcode.com/gh_mirrors/ma/mathc MATHC是一个轻量级纯C语言数学库,专为2D和3D编程设计。它提供了…

Excel转Web应用的四条实战路径:无代码、在线库、AI生成与协作表格

Excel转Web应用的四条实战路径:无代码、在线库、AI生成与协作表格

2026/7/10 4:00:56

1. 项目概述:为什么“Excel转Web应用”成了高频刚需你有没有经历过这样的场景?销售团队用Excel记录客户线索,每天手动复制粘贴到CRM里;项目组用三张表分别管需求、排期和Bug,每次同步都要花半小时核对;财务…

STM32F103C8T6 PS2手柄SPI通信:时钟周期从50us调至9us解决串口无信号

STM32F103C8T6 PS2手柄SPI通信:时钟周期从50us调至9us解决串口无信号

2026/7/10 4:00:56

STM32F103C8T6与PS2手柄SPI通信的时序优化实战从串口无信号到稳定通信的调试历程最近在调试STM32F103C8T6与PS2手柄的SPI通信时,遇到了一个典型问题——串口完全接收不到任何信号。经过一系列排查,最终发现问题的根源在于SPI时钟周期设置不当。本文将详细…

滤波器阻抗失配3大常见误区解析:从50Ω测试系统到实际应用的性能偏差

滤波器阻抗失配3大常见误区解析:从50Ω测试系统到实际应用的性能偏差

2026/7/10 4:00:56

滤波器阻抗失配3大常见误区解析:从50Ω测试系统到实际应用的性能偏差在电磁兼容(EMC)设计与整改中,滤波器作为抑制干扰的关键器件,其性能参数常基于标准50Ω测试系统给出。然而,当这些滤波器部署到实际电路…

基于Multisim的压控振荡器仿真设计:运放电路实现与频率特性分析

基于Multisim的压控振荡器仿真设计:运放电路实现与频率特性分析

2026/7/10 4:00:56

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 这次我们来深入探讨压控振荡器(VCO)的Multisim仿真实现,重点是基于运算放大器的电路设计方案。对于…

Logstash 8.12.2 CentOS 7 手动安装实战:从卡死到首个 stdin→stdout 管道

Logstash 8.12.2 CentOS 7 手动安装实战:从卡死到首个 stdin→stdout 管道

2026/7/10 4:00:56

1. 这不是又一篇“点开就关”的Logstash安装教程——它解决的是你真正卡住的那5分钟你搜“Logstash安装”,页面刷出二十个标题雷同的教程:下载、解压、改配置、启动。可当你真在CentOS 7上敲下./logstash -f test.conf,终端卡住不动&#xff…

MATLAB R2024a 文本与注释实战:5种高级标注技巧提升图表可读性

MATLAB R2024a 文本与注释实战:5种高级标注技巧提升图表可读性

2026/7/10 3:50:55

MATLAB R2024a 文本与注释实战:5种高级标注技巧提升图表可读性在科研论文和工程报告中,数据可视化是传达复杂信息的核心手段。然而,许多研究人员常陷入"数据丰富但信息贫乏"的困境——精心绘制的图表因缺乏有效标注而难以理解。MAT…

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

2026/7/9 19:40:56

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gi…

6个月转型AI工程师:实战路径与核心技能

6个月转型AI工程师:实战路径与核心技能

2026/7/9 18:28:30

1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公…

YOLOv5模型剪枝与量化实战:边缘设备部署优化

YOLOv5模型剪枝与量化实战:边缘设备部署优化

2026/7/8 14:04:34

1. 项目背景与核心价值在计算机视觉领域,YOLOv5因其出色的实时检测性能成为工业界宠儿。但当我们尝试将其部署到边缘设备(如树莓派、Jetson Nano或手机终端)时,立刻会遇到两个致命问题:模型体积庞大(原始YO…

终极原神FPS解锁器完整指南:轻松突破60帧限制

终极原神FPS解锁器完整指南:轻松突破60帧限制

2026/7/10 0:00:42

终极原神FPS解锁器完整指南:轻松突破60帧限制 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 原神FPS解锁器是一款专为《原神》玩家设计的开源工具,通过先进的Wri…

YesPlayMusic:如何用高颜值播放器重塑你的网易云音乐体验?[特殊字符]

YesPlayMusic:如何用高颜值播放器重塑你的网易云音乐体验?[特殊字符]

2026/7/10 0:00:42

YesPlayMusic:如何用高颜值播放器重塑你的网易云音乐体验?🎵 【免费下载链接】YesPlayMusic 高颜值的第三方网易云播放器,支持 Windows / macOS / Linux :electron: 项目地址: https://gitcode.com/gh_mirrors/ye/YesPlayMusic…

从零实现红黑树:手写C++的set与map容器

从零实现红黑树:手写C++的set与map容器

2026/7/10 0:00:42

1. 项目概述:从STL容器到自研轮子在C的日常开发中,std::set和std::map是我们再熟悉不过的伙伴了。它们一个负责管理不重复的集合,一个负责维护键值对映射,底层都依赖一颗高效的红黑树来保证数据的有序性和操作的性能。但你是否曾想…