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 生命周期,敬请期待。

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


相关资源:

相关推荐
程序员阿鹏1 小时前
双亲委派机制
java·jvm·数据结构·后端
65岁退休Coder1 小时前
把 Agent 框架拆开:PI 开发生产级 Harness
后端·node.js·agent
步行cgn1 小时前
Spring Bean 的生命周期详解
java·后端·spring
爱勇宝2 小时前
用了一个月 WorkBuddy,聊聊我的真实感受
前端·后端·程序员
行百里er2 小时前
Spring Insight 里如何把 Span 画成瀑布时间线
spring boot·后端·监控
卷无止境2 小时前
从终端里长出来的 IDE,oh-my-pi 到底是个什么东西
人工智能·后端
万物智能2 小时前
PWM散热风扇设置—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
前端·后端·算法
用户8181870627462 小时前
第29章 死信队列与延迟消息实战
java·后端
专业程序开发源2 小时前
springboot旅游推荐系统82074-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·php·课程设计·旅游