Replace the home hero with a spring carousel and default theme to light.
Adds Carousel under keep-alive-safe autoplay, peeks side cards past the container, and stops following the OS dark preference on first run. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# Home Carousel — spring physics cards
|
||||
|
||||
**Status:** approved
|
||||
**Date:** 2026-10-16
|
||||
**Scope:** `apps/user-app` home (`Carousel.vue` below `ShowcaseSlider`)
|
||||
|
||||
## Intent
|
||||
|
||||
A Framer-style spring carousel under the existing crossfade hero: center card large, side cards scaled down, infinite wrap, drag/flick with spring settle. Same admin slide images as `ShowcaseSlider`.
|
||||
|
||||
## Decisions
|
||||
|
||||
| Choice | Decision |
|
||||
|--------|----------|
|
||||
| Stack | Pure Vue SFC (no Swiper / Motion) |
|
||||
| Name / path | `components/home/Carousel.vue` |
|
||||
| Placement | Immediately below `ShowcaseSlider`, above `CategoryRail` |
|
||||
| Data | Same `slides` computed from admin home slider |
|
||||
| Props | `slides` (+ optional spring/layout knobs with defaults) |
|
||||
| Dots | Yes, pill style aligned with showcase |
|
||||
| Out of scope | Demo inspector panel, Prev/Next chrome, new admin API |
|
||||
|
||||
## Motion defaults
|
||||
|
||||
- `sideScale`: 0.60
|
||||
- `gap`: 14px
|
||||
- `borderRadius`: 22px (match ShowcaseSlider)
|
||||
- Frame `aspect-ratio`: `320 / 208` (match ShowcaseSlider); center card full-bleed
|
||||
|
||||
- `stiffness`: 180
|
||||
- `damping`: 22
|
||||
- Internal layout `direction: ltr` (gesture still screen-space)
|
||||
- Autoplay off by default; respect reduced-motion when enabled later
|
||||
|
||||
## Non-goals
|
||||
|
||||
Replacing `ShowcaseSlider`, inventing slide destinations, or adding external animation libraries.
|
||||
Reference in New Issue
Block a user