HarmonyOs应用《重要日》开发第25篇 - 像素风格 UI 设计在鸿蒙中的实践
本文从 UI 设计的角度分析 ImportantDays 项目的视觉设计语言包括色彩体系、排版规范、卡片设计、阴影与圆角、图标使用、空状态设计以及如何在 ArkUI 声明式 UI 中实现一致的设计风格。一、设计语言概述ImportantDays 采用简约现代的 UI 设计风格整体特点柔和色调避免高饱和度使用偏柔和的颜色圆角设计统一的圆角风格卡片布局信息以卡片形式组织轻量阴影轻微的阴影增强层次感留白充足合理的间距让信息呼吸二、色彩体系主题色constPRIMARY_COLOR#FF6B6B;// 珊瑚红#FF6B6B是一种柔和的红色比纯红#FF0000更舒适适合长时间观看。辅助色颜色十六进制用途珊瑚红#FF6B6B主题色、强调青色#4ECDC4次要强调黄色#F7DC6F特别提示浅红背景#FFF0F0倒数标签背景浅青背景#E8FAF8正数标签背景文字色阶颜色十六进制用途深灰#333333主标题中灰#666666副文本浅灰#999999辅助文本更浅灰#BBBBBB备注文本最浅灰#CCCCCC占位/非当月背景色阶颜色十六进制用途白色#FFFFFF主背景极浅灰#FAFAFA卡片背景浅灰#F5F5F5输入框背景更浅灰#F0F0F0分割线最浅灰#EEEEEE分割线色阶设计原则文字色阶: #333333 → #666666 → #999999 → #BBBBBB → #CCCCCC 背景色阶: #FFFFFF → #FAFAFA → #F5F5F5 → #F0F0F0 → #EEEEEE每级色阶有足够的对比度差异确保视觉层次清晰。三、排版规范字体大小大小用途28vp统计卡片大数字24vp页面主标题22vp卡片天数数字20vp日历标题、统计数字16vp卡片标题、选中 Tab15vp表单文字14vp正文、设置项13vp辅助文本、按钮文字12vp日期文本、标签11vp操作按钮、统计标签10vp年视图星期、小日历8vp日历标题预览字体粗细粗细用途FontWeight.Bold页面标题、统计数字FontWeight.Medium卡片标题、弹窗标题FontWeight.Normal正文字体大小递进8 → 10 → 11 → 12 → 13 → 14 → 15 → 16 → 20 → 22 → 24 → 28每级递进 1-4vp确保层次分明。四、间距系统统一间距exportconstCOMMON_PADDING12;exportconstCOMMON_PADDING_SMALL8;exportconstCOMMON_PADDING_LARGE16;实际使用的间距间距用途4vp小间距按钮内边距8vp中间距元素间距12vp标准间距左右边距16vp大间距页面边距20vp统计卡片上下间距32vp头部上下间距页面边距所有页面统一使用 16vp 作为左右边距.padding({left:16,right:16})五、圆角系统圆角值圆角用途4vp小标签倒数/正数8vp卡片、输入框、日期格12vp设置项、统计卡片22vp添加按钮胶囊形圆角设计原则小元素 → 4vp 中元素 → 8vp 大元素 → 12vp 按钮 → 高度/2胶囊形圆角值与元素大小成正比视觉协调。六、阴影设计卡片阴影.shadow({radius:2,color:#10000000,offsetX:0,offsetY:1})参数值说明radius2模糊半径color#100000006% 透明度黑色offsetX0水平偏移offsetY1垂直偏移 1vp统计卡片阴影.shadow({radius:4,color:#10000000,offsetX:0,offsetY:2})比列表卡片阴影稍大增强浮起感。阴影设计原则轻量#100000006% 透明度非常微妙向下offsetY为正模拟自然光照无水平偏移offsetX: 0对称阴影七、卡片设计列表页卡片┌──────┬──────────────────────────┬──────────┐ │ │ 标题 │ 置顶 │ │ 天数 │ 日期 │ 编辑 │ │ 标签 │ 显示文本 │ 删除 │ │ │ 备注 │ │ └──────┴──────────────────────────┴──────────┘ 背景: #FAFAFA 圆角: 8vp 阴影: 轻微日历页卡片┌─┬───────────────────────────────┬──────┐ │ │ 标题 │ 标签 │ │ │ 日期 · 显示文本 │ │ └─┴───────────────────────────────┴──────┘ 背景: #FAFAFA 圆角: 8vp统计卡片┌────────────────────────────────────┐ │ 12 5 1 6 │ │ 全部 即将 今天 已过 │ └────────────────────────────────────┘ 背景: #FFFFFF 圆角: 12vp 阴影: 中等八、按钮设计浮动添加按钮Button(){Row(){Text().fontSize(28).fontColor(#FFFFFF)Text(添加).fontSize(14).fontColor(#FFFFFF).margin({left:4})}}.width(100).height(44).borderRadius(22)// 胶囊形.backgroundColor(#FF6B6B)倒数/正数切换按钮Button(倒数 (还有X天)).height(40).borderRadius(8).backgroundColor(this.isCountdown?this.selectedColor:#F5F5F5)设置项Row(){Text(通知提醒)...Toggle({type:ToggleType.Switch,isOn:this.notificationEnabled}).selectedColor(#FF6B6B)}.height(52).backgroundColor(#FFFFFF).borderRadius(12)九、空状态设计Column(){Text().fontSize(60).margin({bottom:16})Text(还没有重要日).fontSize(16).fontColor(#999999)Text(点击右下角添加你的第一个重要日).fontSize(13).fontColor(#CCCCCC).margin({top:4})}空状态设计原则视觉元素emoji 作为图标无需图片资源主文本说明当前状态引导文本指导用户下一步操作居中布局占据剩余空间视觉平衡十、日历日期项设计月视图日期项┌────────┐ │ 15 │ ← 16vp 数字 │ ● ● │ ← 5vp 圆点 │ 妈妈生日│ ← 8vp 标题预览 └────────┘ 高度: 52vp年视图日期项┌─────┐ │ •15 │ ← 11vp 数字 4vp 圆点 └─────┘ 高度: 22vp日期项的视觉层次选中背景圆36vp ↓ 今天边框圆36vp ↓ 日期数字 ↓ 重要日圆点 ↓ 标题预览多层视觉元素通过Stack叠加每一层条件渲染。十一、Toggle 开关设计Toggle({type:ToggleType.Switch,isOn:this.notificationEnabled}).selectedColor(#FF6B6B)Toggle 设计开关类型Switch滑动开关选中颜色主题色#FF6B6B与设置项在同一行右对齐十二、设计一致性检查颜色使用一致性元素颜色一致性主题按钮#FF6B6B✓选中 Tab#FF6B6B✓Toggle 选中#FF6B6B✓今天日期#FF6B6B✓添加按钮#FF6B6B✓圆角使用一致性元素圆角一致性列表卡片8vp✓日历卡片8vp✓输入框8vp✓设置项12vp✓更大元素更大圆角统计卡片12vp✓间距使用一致性场景间距一致性页面左右边距16vp✓卡片间距8vp✓按钮内边距4vp✓十三、总结ImportantDays 的 UI 设计体现了以下原则色彩柔和所有颜色偏柔和不刺眼层次分明文字和背景都有 5 级色阶圆角统一按元素大小递进的圆角系统阴影轻量6% 透明度的微妙阴影间距规律4/8/12/16/32vp 的间距系统空状态友好emoji 引导文字设计一致同类元素在所有页面保持一致这套设计语言在 ArkUI 声明式 UI 中得到了完整的实现每个设计决策都有对应的代码支撑。

相关新闻

BlenderGIS三维地理可视化插件:7大常见问题终极排查指南

BlenderGIS三维地理可视化插件:7大常见问题终极排查指南

BlenderGIS三维地理可视化插件:7大常见问题终极排查指南 【免费下载链接】BlenderGIS Blender addons to make the bridge between Blender and geographic data 项目地址: https://gitcode.com/gh_mirrors/bl/BlenderGIS BlenderGIS作为连接Blender与地理数…

2026/10/17 12:52:45 阅读更多 →
3分钟快速上手DeepL Chrome翻译插件:告别复制粘贴的终极解决方案

3分钟快速上手DeepL Chrome翻译插件:告别复制粘贴的终极解决方案

3分钟快速上手DeepL Chrome翻译插件:告别复制粘贴的终极解决方案 【免费下载链接】deepl-chrome-extension A DeepL Translator Chrome extension 项目地址: https://gitcode.com/gh_mirrors/de/deepl-chrome-extension 还在为阅读外文网页而烦恼吗&#xff…

2026/10/5 21:38:49 阅读更多 →
用AI做项目风险热力图:从多维度动态风险评估到自动化预警的工程化方案

用AI做项目风险热力图:从多维度动态风险评估到自动化预警的工程化方案

用AI做项目风险热力图:从多维度动态风险评估到自动化预警的工程化方案 一、风险热力图不是画图工具,而是一套数据采集→量化→可视化的闭环系统 传统项目管理中,风险评估依赖项目经理的经验和Excel表格。每周一次的"风险评审会"上&…

2026/10/14 20:30:03 阅读更多 →

最新新闻

Java后端网络面试题:从TCP握手到云原生调试的全链路解析

Java后端网络面试题:从TCP握手到云原生调试的全链路解析

1. 这不是一份“背了就能过”的题库,而是一张网络协议世界的导航图你手头这份标着“2021Java后端面试题整理”的文档,标题里那个“计算机网络相关面试题解”,表面看是求职路上的应试材料,但实际它是一把钥匙——一把打开后端系统底…

2026/10/18 3:00:06 阅读更多 →
10天三千万的AI编程神话拆解:工具链、开源运营与商业化

10天三千万的AI编程神话拆解:工具链、开源运营与商业化

拿到这个标题的时候,我第一反应是朋友圈最近疯转的那条“AI代写代码焦虑帖”。大学生、GitHub全球第一、AI辅助编程、10天、三千万,这几个词组合在一起,怎么看都像一条博眼球的营销稿。但把公开能看到的材料认真捋过一遍之后,我改…

2026/10/18 3:00:06 阅读更多 →
没有感情的人是不可能成为神的

没有感情的人是不可能成为神的

很多地方都说这样一个错误认识:神仙是不能有感情的。其实我认为这是完全错误的:作者本来是想要说:我这么优秀的人,为了事业不能有感情。但是其实他错了:一个没有感情的人就会:视人命如草芥,杀人…

2026/10/18 3:00:06 阅读更多 →
SpringBoot+Thymeleaf后台管理CRUD实战:从数据流转到表单校验

SpringBoot+Thymeleaf后台管理CRUD实战:从数据流转到表单校验

1. 动手前先想清楚的事:这套方案到底解决什么问题“增删改查”这四个字,在简历上出现频率很高,但真正能用SpringBootThymeleaf把它做成一个可交付、可扩展、页面好看的后台管理模块,很多人其实是卡住的。问题往往不在“会不会写代…

2026/10/18 3:00:06 阅读更多 →
浏览器输入URL后发生了什么?全链路技术拆解与面试指南

浏览器输入URL后发生了什么?全链路技术拆解与面试指南

后端岗位的面试题里,有一道题目出现的频率高得出奇,基本可以算作“必考题”:在浏览器地址栏输入一个网址,按下回车到网页完整显示出来,中间到底发生了什么。做了十几年后端,我自己被问过,也面试…

2026/10/18 3:00:06 阅读更多 →
C#+OpenCV二维码识别:图像预处理与透视矫正实战解析

C#+OpenCV二维码识别:图像预处理与透视矫正实战解析

这个项目看起来很直接,但实际落地时坑不少。标题是“C#OpenCV识别图片二维码”,拆开看就是三件事:C#做宿主程序、OpenCV做图像处理、二维码识别作为最终目标。很多人一上来就找OpenCV的二维码识别模块,结果发现识别率惨不忍睹&…

2026/10/18 2:59:06 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →