当前位置: 首页 > news >正文

羽球联盟 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 更可靠。

http://www.gsyq.cn/news/1641643.html

相关文章:

  • AgentKit 内存管理完全手册:持久化与状态共享最佳实践
  • Spray用户名生成器完全教程:从常见姓名到用户名格式转换
  • 探索MoveIt2三大规划器:如何为你的机器人选择最佳运动规划方案
  • YimMenu终极指南:5分钟掌握GTA5最强修改器的秘密武器
  • 如何用PyTorch-Segmentation-Detection快速训练你的第一个分割模型
  • Cascadia源码解析:从parser.go看CSS选择器的实现原理
  • ZheTian v1.x完整使用指南:从基础到高级的10个技巧
  • Team IDE与CI/CD集成:自动化部署与测试的最佳实践
  • TranslucentTB:Windows任务栏透明美化终极指南,打造个性化桌面体验
  • Python开发AI Agent:从环境配置到生产部署全指南
  • 西北工业大学复习资料:深度学习框架比较与应用指南
  • NVC与FPGA厂商库集成:Xilinx、Altera、Lattice仿真环境搭建终极指南
  • 串行数据可视化神器:Serial-Studio让嵌入式开发数据“活“起来
  • SAN 与传统 CNN 对比:自注意力如何提升图像识别精度与效率
  • TPH-YOLOv5高级应用:多模型集成与加权框融合(WBF)技术
  • Audacity免费音频编辑终极指南:从零到专业的完整解决方案
  • 终极GTA5修改器指南:如何使用YimMenu增强游戏体验
  • 从4小时到15分钟:OpCore Simplify如何彻底改变黑苹果配置体验
  • ProperTree:简单易用的跨平台plist编辑器,黑苹果配置的终极解决方案
  • FlagGems高级技巧:选择性加速让复杂工作流效率提升300%
  • 轻松编译ESP32-BLE2MQTT:基于ESP-IDF的详细步骤
  • nwpu-cram计算机网络实验:DNS配置与分析完整指南 [特殊字符]
  • 如何使用linux_kernel_cves快速查找Linux内核安全漏洞
  • Linky vs 传统个人主页:为什么动态构建工具是未来趋势
  • Swirl在Material Design中的应用:打造一致的用户体验终极指南
  • pysimdjson完整安装指南:支持多平台与Python版本
  • 揭秘如何打造你的智能桌面伙伴:一个颠覆性的开源桌宠框架
  • GHelper深度评测:华硕笔记本轻量级硬件控制工具的技术实现与应用分析
  • GRBL-Plotter完整指南:如何用免费开源软件掌控你的CNC雕刻机
  • TPH-YOLOv5与SOTA模型对比:在无人机检测任务中的竞争优势