TP022

Phin Sáng — Cà phê phin

Ra mắt sản phẩm cà phê: bộ phin 3D giữa chữ “PHIN” khổng lồ với giọt cà phê nhỏ xuống ly; cuộn để phin bung thành từng bộ phận kèm chú thích, đồng hồ pha tương tác và biểu đồ hương vị.

Điểm nổi bật
Trong gói tải về

Website ra mắt sản phẩm cà phê: bộ phin 3D giữa chữ “PHIN” khổng lồ với giọt cà phê rơi; cuộn để phin bung thành từng bộ phận kèm chú thích; đồng hồ pha tương tác, biểu đồ radar hương vị, cửa hàng.

Chạy thử

Cần Node.js 18+.

npm install
npm run dev       # mở http://localhost:5173
npm run build     # xuất bản tĩnh vào dist/ — upload lên hosting bất kỳ

Mặc định trang mở tiếng Việt; thêm ?lang=en để mở tiếng Anh.

Cấu trúc

index.html            Khung trang (mọi section)
src/phin-scene.js     Sản phẩm 3D, giọt cà phê, bung bộ phận theo cuộn
src/relief.js         Ảnh + độ sâu → bề mặt 3D có ánh sáng
src/locales.js        TOÀN BỘ nội dung chữ (vi + en) — sửa ở đây
src/main.js           Ghép trang: preloader, cuộn, tương tác, form
src/style.css         Giao diện: biến màu/font ở `:root`, bố cục, responsive
src/fx.js + fx.css    Bộ motion: preloader, tách chữ, con trỏ, nút từ tính, marquee, đếm số, parallax, mở ảnh
src/smooth-scroll.js  Cuộn mượt (Lenis)
src/i18n.js           Chuyển ngôn ngữ (data-i18n)
public/images/        Ảnh webp (+ `*-depth.webp` = bản đồ độ sâu)
asset-prompts.json    Prompt tạo lại từng ảnh bằng AI
PROMPT.md             Prompt dựng lại trang bằng AI builder
scripts/depth-map.mjs  Tạo bản đồ độ sâu cho ảnh mới (chạy local)

Tuỳ biến nhanh

Muốn đổiSửa ở
Chữ, giá, địa chỉsrc/locales.js
Màu nền / chữ / fontbiến :root trong src/style.css + link Google Fonts trong index.html
Bộ phận khi bungmảng PARTS (ảnh, chiều cao, vị trí) trong src/phin-scene.js
Vị trí giọt cà phêdòng d.position.set(...) trong src/phin-scene.js
Thời gian pha (demo nhanh)TOTAL và SPEED trong src/main.js
Hồ sơ hương vịmảng BEANS (5 trục 0–1) trong src/main.js

Ảnh & bản đồ độ sâu

npm i -D @huggingface/transformers sharp
node scripts/depth-map.mjs anh-moi.png public/images/anh-moi-depth.webp

(Depth Anything V2 — chạy offline sau lần tải model đầu tiên.)

Ghi chú