Switch the customer app to IRANSans, restyle home featured/newest and cart note sheet, refresh brand icons across apps, and add the PWA install prompt. Co-authored-by: Cursor <cursoragent@cursor.com>
34 lines
1.2 KiB
Markdown
34 lines
1.2 KiB
Markdown
# Showcase slider — luxury crossfade
|
|
|
|
**Status:** approved
|
|
**Date:** 2026-10-15
|
|
**Scope:** `apps/user-app` home hero (`ShowcaseSlider.vue`)
|
|
|
|
## Intent
|
|
|
|
Calm, luxury gold-vitrine motion. Special feeling lives in the **slide change**, not idle fidgeting.
|
|
|
|
## Decisions
|
|
|
|
| Choice | Decision |
|
|
|--------|----------|
|
|
| Vibe | Luxury / soft (not cinematic parallax, not brand wipe) |
|
|
| Transition | Soft crossfade + subtle settle zoom |
|
|
| Swipe | Kept; commit settles with the same crossfade (no hard horizontal slide) |
|
|
| Autoplay | 6s; off under reduced motion |
|
|
| Dots | Unchanged pill indicator |
|
|
| Out of scope | Multi-layer parallax, brand-color curtain, home layout changes |
|
|
|
|
## Motion spec
|
|
|
|
- Stack slides absolutely inside the rounded frame.
|
|
- Active: `opacity: 1`, art `scale(1)`.
|
|
- Incoming settle: art eases from `scale(1.03)` → `1`.
|
|
- Duration ≈ `1.15s`, easing `cubic-bezier(0.22, 0.61, 0.36, 1)` (softer, less snap).
|
|
- While dragging, preview fade toward next/prev by drag ratio; on release past ~18% width, change index.
|
|
- `prefers-reduced-motion` / appearance reduced-motion: instant opacity swap, no scale animation, no autoplay.
|
|
|
|
## Non-goals
|
|
|
|
Invented product prices, extra copy overlays on slides, new dependencies (Swiper, etc.).
|