TP019

LAM — Website ca sĩ, nhạc sĩ

Website cá nhân cho nghệ sĩ: chân dung dựng từ 95.000 hạt sáng trong không gian 3D, tan thành bụi rồi kết lại thành từng bìa album khi cuộn; trình phát nhạc ngũ cung khiến hạt nhịp theo từng nốt.

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

Website cá nhân cho ca sĩ, nhạc sĩ, DJ: chân dung dựng từ 95.000 hạt sáng 3D, tan thành bụi rồi kết lại thành từng bìa album khi cuộn; trình phát nhạc ngũ cung Web Audio làm hạt nhịp theo nốt.

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/cloud.js          Đám mây hạt từ ảnh + độ sâu, biến hình qua bụi
src/player.js         Nhạc ngũ cung tạo bằng Web Audio (không cần file nhạc)
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
Ảnh chân dung / bìa albummảng SHAPES trong src/main.js (mỗi ảnh cần -depth.webp)
Số hạt / cỡ hạtCOUNT và uSize trong src/cloud.js
Màu nền theo albummảng TINTS trong src/main.js
Dùng bài hát thậtthay createPlayer bằng thẻ <audio>; gọi cloud.pulse() theo AnalyserNode
Lịch diễndanh sách .dates trong index.html

Ả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ú