Shadow 阴影体系:多层级阴影提升视觉层次

前言

阴影是 UI 设计中提升视觉层次感的重要手段。"海风日记"在 Color.ets 中定义了完整的阴影颜色令牌体系,并在多个组件中使用了不同层级的阴影效果。

本文将从源码出发,深入讲解阴影属性配置、颜色令牌设计以及多层级阴影的最佳实践。


一、阴影属性

1.1 基本语法

typescript 复制代码
.shadow({
  radius: 12,                              // 模糊半径
  color: 'rgba(160,120,60,0.10)',          // 阴影颜色
  offsetX: 0,                              // 水平偏移
  offsetY: 2                               // 垂直偏移
})

1.2 参数说明

参数 类型 说明 默认值
radius number 模糊半径,值越大阴影越模糊 0
color string 阴影颜色,支持透明度 黑色
offsetX number 水平偏移,正数向右 0
offsetY number 垂直偏移,正数向下 0

二、阴影颜色令牌

2.1 颜色常量

typescript 复制代码
// 卡片阴影颜色
export const COLOR_CARD_SHADOW = '#19A0783C'

// 阴影颜色 - 不同透明度
export const COLOR_SHADOW_PRIMARY_LIGHT = 'rgba(245,166,35,0.25)'
export const COLOR_SHADOW_PRIMARY_MID = 'rgba(245,166,35,0.30)'
export const COLOR_SHADOW_PRIMARY_DEEP = 'rgba(245,166,35,0.40)'
export const COLOR_SHADOW_AMBER = 'rgba(160,120,60,0.08)'
export const COLOR_SHADOW_LIGHT = 'rgba(160,120,60,0.06)'

2.2 阴影层级

层级 颜色常量 效果 使用场景
COLOR_SHADOW_LIGHT 极淡阴影 设置菜单卡片
COLOR_SHADOW_AMBER 柔和阴影 正文卡片
中高 COLOR_CARD_SHADOW 标准阴影 日记卡片
COLOR_SHADOW_PRIMARY_MID 橙色高亮阴影 按钮、浮动按钮

三、不同场景的阴影配置

3.1 日记卡片

typescript 复制代码
.shadow({ radius: 12, color: 'rgba(160,120,60,0.10)', offsetY: 2 })

3.2 浮动按钮

typescript 复制代码
.shadow({ radius: 16, color: 'rgba(245,166,35,0.40)', offsetX: 0, offsetY: 4 })

3.3 渐变卡片

typescript 复制代码
.shadow({ radius: 20, color: 'rgba(245,166,35,0.30)', offsetY: 6 })

3.4 登录按钮

typescript 复制代码
.shadow({ radius: 16, color: 'rgba(245,166,35,0.35)', offsetY: 4 })

3.5 设置菜单卡片

typescript 复制代码
.shadow({ radius: 8, color: 'rgba(160,120,60,0.06)', offsetY: 2 })

四、阴影对比

场景 radius color offsetY 视觉强度
设置卡片 8 极淡 2 最弱
日记卡片 12 2
正文卡片 12 柔和 2
渐变卡片 20 橙色 6
浮动按钮 16 亮橙 4 最强

五、常见问题

5.1 阴影不显示

问题:设置了 shadow 属性但阴影不显示。

原因 :shadow 需要配合 background 使用,且背景不能是透明。

解决方案:确保组件有非透明的背景色。


总结

本文通过"海风日记"的阴影体系,深入讲解了 shadow 属性的配置:

  1. shadow 属性:radius、color、offsetX、offsetY
  2. 颜色令牌:5 个阴影颜色常量
  3. 多层级阴影:从浅到强的 5 个层级
  4. 场景配置:不同组件的阴影参数

下一篇文章将深入讲解 aboutToAppear 生命周期,敬请期待。

如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!


相关资源:

相关推荐
mldong6 小时前
工作流引擎的灵魂:状态机与 submitType
后端
朦胧之9 小时前
Go 基础
后端·go
lun9 小时前
Agent 工具调用成长史:理清楚 Function Calling、MCP、CLI 的关系
后端
Python私教9 小时前
Codex 自动写 Commit 够安全吗?一套证据化 Git 提交流程
人工智能·git·后端
Python私教9 小时前
AI Agent 上生产要不要开写权限?我把执行链拆成 4 道闸门
人工智能·后端·python
lun9 小时前
Claude Code 多 Agent 实现:subAgent & Agent Teams
后端
SomeB1oody11 小时前
【RustyML入门】2.9. MeanShift
开发语言·后端·机器学习·rust·教程
2401_8949155312 小时前
GEO 源码部署如何实现精准地域分发?核心配置参数深度讲解
java·运维·服务器·后端·开源
IT_陈寒12 小时前
为什么我的Java Stream流操作会吃掉内存?
前端·人工智能·后端