DiaryDetail2Page 卡片式详情:琥珀渐变 + 引号装饰

前言

"海风日记"提供了两种日记详情页样式:DiaryDetailPage 的纸张风格,和 DiaryDetail2Page 的卡片风格。本文介绍第二种风格------卡片式详情页,以琥珀渐变卡片展示日期,配以白色正文卡片,整体风格更现代、更精致。


一、卡片式详情布局

1.1 整体结构

typescript 复制代码
Column() {
  // 顶部导航栏
  Row() { ... }

  Scroll() {
    Column({ space: 16 }) {
      // 顶部日期卡片(琥珀渐变)
      Stack({ alignContent: Alignment.BottomEnd }) {
        Column()
          .width('100%').height(180)
          .borderRadius(CARD_RADIUS)
          .linearGradient({
            angle: 135,
            colors: [[COLOR_HEADER_TOP, 0.0], ['#FFCC70', 0.6], ['#F5A623', 1.0]]
          })
          .shadow({ radius: 20, color: 'rgba(245,166,35,0.30)', offsetY: 6 })

        Text('"').fontSize(120).fontColor('rgba(255,255,255,0.12)')
          .position({ x: 8, y: -20 })

        // 日期内容
        Column({ space: 12 }) {
          Row({ space: 12 }) {
            Text(this.diary.dayNum.toString())
              .fontSize(72).fontColor('#FFFFFF').fontWeight(FontWeight.Bold)
            Column({ space: 6 }) {
              Text(weekday).fontSize(14).fontColor('rgba(255,255,255,0.90)')
              Text(yearMonth).fontSize(12).fontColor('rgba(255,255,255,0.75)')
              Row({ space: 8 }) {
                Text(getWeatherEmoji(this.diary.weather)).fontSize(16)
                Text(getMoodEmoji(this.diary.mood)).fontSize(16)
              }
            }
          }
        }
      }

      // 标签行
      if (this.diary.tags.length > 0) { ... }

      // 正文卡片
      Column({ space: 16 }) {
        Text(this.diary.content)
          .fontSize(16).fontColor(COLOR_TEXT_MAIN).lineHeight(30)
      }
      .padding(PAGE_PADDING)
      .backgroundColor(COLOR_CARD_BG)
      .borderRadius(CARD_RADIUS)
      .shadow({ radius: 12, color: 'rgba(160,120,60,0.08)', offsetY: 2 })

      // 底部签名
      Column() {
        Divider()
        Row() {
          Text('--- 海风日记').fontSize(12).fontColor(COLOR_AMBER)
          Text(this.diary.date).fontSize(11).fontColor(COLOR_TEXT_HINT)
        }
      }
    }
  }
}

二、两种详情页的对比

对比维度 DiaryDetailPage DiaryDetail2Page
头部风格 暖橙渐变 琥珀渐变
日期展示 80vp 大数字 72vp 白色数字
正文背景 象牙色纸张 白色卡片
装饰元素 波浪分隔 引号装饰
卡片效果 圆角 + 阴影

三、引号装饰

typescript 复制代码
Text('"')
  .fontSize(120)
  .fontColor('rgba(255,255,255,0.12)')
  .fontWeight(FontWeight.Bold)
  .position({ x: 8, y: -20 })

四、shadow 阴影体系

typescript 复制代码
// 顶部卡片阴影
.shadow({ radius: 20, color: 'rgba(245,166,35,0.30)', offsetY: 6 })

// 正文卡片阴影
.shadow({ radius: 12, color: 'rgba(160,120,60,0.08)', offsetY: 2 })

五、总结

本文通过 DiaryDetail2Page,深入讲解了卡片式详情页的设计:

  1. 琥珀渐变卡片:品牌色渐变
  2. 引号装饰:120vp 超大引号
  3. 白色正文卡片:圆角 + 阴影
  4. 两种风格对比:纸张 vs 卡片

下一篇文章将深入讲解 shadow 阴影体系,敬请期待。

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


相关资源:

相关推荐
高级程序源13 分钟前
django招聘网站信息爬取与分析系统79704-计算机课程设计、毕业设计
后端·python·mysql·小程序·django·flask·课程设计
伊信18 分钟前
Spring AI 基础学习与应用
java·后端
步行cgn36 分钟前
Spring 通过 factory-method 实例化 Bean 详解与常见错误排查
java·后端
lv__pf37 分钟前
seata【实战 msb】
java·开发语言·后端
Ricon组态薄荷糖38 分钟前
Ricon组态系统:工业组件开发指南与实践
前端·后端·物联网
旺仔不是程序员39 分钟前
相关子查询与性能优化:PostgreSQL 逐行执行的代价与 JOIN 重写
数据库·后端·sql
右耳朵猫AI44 分钟前
PHP周刊2026W38 | Laravel AI可观测、Symfony三版本、Webhook零信任、事件溯源架构
后端·php·laravel
沙蒿同学1 小时前
我把架构约定编译成了会变红的测试:Wails v2 + Go + Vue3 桌面脚手架实战
前端·后端·github
量化分析码农1 小时前
【Python量化数据工程实战 #01】拉下来的行情全是"脏数据"?停牌、跳空、异常值一站式清洗
后端
专业程序开发源1 小时前
springboot篮球联赛管理系统13635-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·php·课程设计