Skip to content

Feat/rain animation polishfeat(theme): 优化青笺主题动效与跨页转场 - #14

Merged
yororoA merged 3 commits into
mainfrom
feat/rain-animation-polish
Oct 17, 2026
Merged

yororoA merged 3 commits into
mainfrom
feat/rain-animation-polish

Conversation

@yororoA

@yororoA yororoA commented Oct 17, 2026 •

Copy link
Copy Markdown
Owner

概述

完善「青笺 / Qingjian」主题的动效表现,加入纸笺式跨页转场、分层内容入场、浮层纸条揭示与首页景深效果。

主要改动

  • 新增 12 段不透明纸条跨页转场
    • 完全遮住页面后才执行路由跳转
    • 目标内容就绪后依次落纸揭幕
    • 支持 Esc、页面隐藏、导航取消和超时兜底
    • 深色模式使用蓝黑纸面,避免白闪或黑闪
  • 优化章节门帘
    • 移除缩放动画,改用 clip-path 揭示
    • 修复月历切片 9px 错位失效
    • 遮挡条改为硬边盖入与揭开
  • 增加标题与列表错峰入场
    • 竖排标题由上至下揭示
    • 横排标题由左至右揭示
    • 列表内容按阅读顺序错峰出现
  • 为弹窗、选择浮层、移动菜单和登录面板增加纸条入场
  • 为首页雨幕增加多层景深视差
  • 移动菜单在跨页遮场完成后关闭
  • prefers-reduced-motion 下关闭全部新增动画
  • 保持现有青笺登录伞形转场和 P3R 主题行为不变

验证

  • 青笺动效回归:20/20
  • P3R 动效回归:16/16
  • 转场语义回归:5/5
  • 登录流程回归:10/10
  • 接口集成回归:19/19
  • 通过 TypeScript、ESLint、生产构建与 git diff --check
  • 检查 1440 / 390 / 320px 浅色与深色模式,无横向溢出

Summary by Sourcery

Polish the Qingjian theme with paper-inspired transitions, layered entrances, and homepage depth effects while preserving existing login and P3R behavior.

New Features:

  • Add a paper-slat page transition for Qingjian navigation, covering the current page before routing and revealing the destination after it is ready.
  • Add layered depth parallax to the Qingjian homepage rain scene.

Bug Fixes:

  • Fix Qingjian curtain positioning and calendar-slat offsets, and replace blurred strip wipes with crisp cover-and-reveal behavior.
  • Ensure mobile navigation remains open until the page transition has covered the screen.

Enhancements:

  • Polish Qingjian motion with clip-path reveals for headings and lists, staggered paper-slat entrances for overlays and panels, and coordinated reduced-motion behavior.

Documentation:

  • Document the fourth-round Qingjian animation polish, behavior requirements, and validation results.

Tests:

  • Validate Qingjian, P3R, transition semantics, login flows, and interface integration across responsive light and dark-mode scenarios.

Pathname changes in the rain theme now hand off beneath opaque paper slats
that fall away once the destination is ready; the mobile menu closes under
the cover instead of at the click.
Headings and lists uncover once without sliding, panels drop in as paper
slats, the curtain no longer scales and the home umbrellas gain depth.
Fixes the calendar slat offset that the entrance fill used to override.
@sourcery-ai

sourcery-ai Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Reviewer's Guide

This PR polishes the Qingjian theme with a lifecycle-aware 12-slat page transition, clip-path-based content and overlay reveals, layered homepage parallax, delayed mobile-menu closure, and comprehensive reduced-motion and fallback handling while leaving P3R and the existing Qingjian login transition unchanged.

Sequence diagram for the Qingjian 12-slat page transition

sequenceDiagram
    participant User
    participant NavLink as NavigationLink
    participant RainEffects
    participant Router
    participant Page as TargetPage

    User->>NavLink: click pathname link
    NavLink->>RainEffects: P3R_WIPE_EVENT
    RainEffects->>RainEffects: setPhase(expanding)
    RainEffects->>RainEffects: drop 12 opaque slats
    RainEffects->>RainEffects: setPhase(covered)
    RainEffects->>Router: handOffUnderP3RWipe(navigate)
    Router-->>Page: mount target content
    Page-->>RainEffects: pathname change
    RainEffects->>RainEffects: setPhase(revealing)
    RainEffects->>RainEffects: reveal slats
    RainEffects->>RainEffects: setPhase(idle)

    alt Esc, hidden page, reduced motion, or cancellation
        User->>RainEffects: Escape or navigation cancellation
        RainEffects->>RainEffects: skip()
        RainEffects->>Router: navigate()
    end
Loading

File-Level Changes

Change Details Files
Implemented Qingjian’s covered-route paper-slat transition with lifecycle coordination and fallback handling.
  • Added a 12-slat opaque wipe that commits navigation only after coverage and reveals after route readiness.
  • Handled reduced motion, Escape, hidden pages, cancellation, replacement targets, loading grace periods, and timeout fallback.
  • Mounted the renderer globally while preserving P3R and existing Qingjian login transition behavior.
src/components/appearance/rain-effects.tsx
src/components/appearance/rain-effects.module.scss
src/app/layout.tsx
Reworked Qingjian scene and content reveals to use occlusion-based paper motion rather than scaling or sliding.
  • Changed curtain and strip effects to clip-path reveals and fixed calendar slat offsets.
  • Added shared staggered paper-slat entrances for headings, lists, dialogs, popups, menus, and login panels.
  • Paused page entrances beneath the transition cover and disabled the new effects for reduced-motion users.
src/components/appearance/rain-planes.module.scss
src/styles/_rain-motion.scss
src/components/blog/_rain-ui.scss
src/app/login/components/components.module.scss
Added layered depth movement to the Qingjian homepage rain artwork.
  • Applied independent translate-based depth factors to background, umbrella columns, ripples, and fragments.
  • Preserved the existing umbrella-rise transform and disabled parallax under reduced motion.
src/components/blog/rain-artwork.module.scss
Aligned navigation and project documentation with the new Qingjian motion behavior.
  • Delayed mobile-menu closure until navigation handoff via onNavigate.
  • Documented visual baselines, transition semantics, implementation details, accessibility behavior, and regression results.
  • Updated UI guidance to define the 12-slat navigation contract and theme-specific motion constraints.
src/components/blog/blog-shell.tsx
docs/rain-theme.md
.uicraft.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@vercel

vercel Bot commented Oct 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
ark Ready Ready Preview Oct 17, 2026 6:19pm UTC

@yororoA
yororoA merged commit e00a7ea into main Oct 17, 2026
5 checks passed
@yororoA
yororoA deleted the feat/rain-animation-polish branch October 17, 2026 18:19

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've reviewed your changes and they look great!

Sourcery assessment

Approved.


Sourcery is free for open source - if you like our reviews please consider sharing them ✨

This branch was successfully deployed

1 active deployment
Preview — b7ab4311 Deployed Oct 17, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant