LumoraSaaS Landing
Trang đích một trang cho sản phẩm SaaS, với bầu trời cực quang chuyển động và một cửa sổ ứng dụng tự chạy thử nghiệm
Chưa mở bán
Sản phẩm này sắp mua được. Để lại email, tiệm báo bạn ngay khi mở bán.
- Trả một lần, dùng trọn đời
- Cập nhật miễn phí trọn đời
- Đủ mã nguồn: HTML / CSS / JS + React
Đang chạy trực tiếp
Giới thiệu
Trang đích cho một sản phẩm phần mềm muốn trông chỉn chu như chính sản phẩm của mình. Aurora mở ra với một bầu trời chuyển động thật — những đốm sáng trôi chậm, các dải tia cực quang, một lưới mờ phía sau — và ngay dưới tiêu đề là một cửa sổ ứng dụng bằng kính tự làm việc của nó: biểu đồ kích hoạt vẽ dần lên, các thử nghiệm hiện ra, con trỏ bấm "Ship winner" và một thông báo xác nhận bật lên.
- Chữ hiển thị lớn, khít, phủ dải màu cực quang lên đúng những chữ quan trọng — tất cả từ font có sẵn của hệ thống
- Lưới bento mà ô nào cũng có một cảnh nhỏ riêng: tín hiệu chảy về một trung tâm, cuộc đua A/B, bản tóm tắt tự viết, thẻ roadmap nhảy cột
- Đường "cách hoạt động" tự vẽ khi cuộn, các con số đếm lên, và công tắc bảng giá làm các con số chạy về mức giá theo năm
- Kính mờ ở khắp nơi — thanh điều hướng, thẻ, các gói giá — tinh chỉnh cho cả nền sáng lẫn tối
- Nội dung mẫu chân thật cho một công ty phân tích sản phẩm giả định, Lumora, có logo riêng và tám logo khách hàng tự thiết kế, sẵn sàng thay bằng của bạn
Có hai bản. Bản HTML là một trang mở và sửa được bằng trình soạn thảo bất kỳ, đưa lên hosting nào
cũng chạy. Bản React là dự án Vite + TypeScript hoàn chỉnh: mọi chữ nằm trong một file
content.ts, chạy bằng npm install && npm run dev.
Tính năng · 15
- Trọn một trang: thanh điều hướng kính mờ, hero cực quang kèm cửa sổ sản phẩm chuyển động, dải logo khách hàng, lưới tính năng kiểu bento, ba bước sử dụng, số liệu đếm lên, băng chuyền nhận xét, bảng giá kèm bảng so sánh, FAQ, lời kêu gọi cuối trang, footer có ô đăng ký bản tin
- Hai bản: HTML/CSS/JS tĩnh sửa trực tiếp, và một dự án Vite + React + TypeScript chạy được ngay
- Cửa sổ sản phẩm ở hero tự vẽ biểu đồ, hiện từng dòng dữ liệu, rồi con trỏ bấm "Ship winner" — hoàn toàn bằng CSS, lặp liên tục
- Bảy ô tính năng, mỗi ô một chuyển động nhỏ riêng, cùng một đường tiến trình tự vẽ khi cuộn qua các bước
- Công tắc tháng / năm: giá chạy số tới mức mới, có nhãn "Save 20%", gói nổi bật và bảng so sánh các gói
- Băng chuyền nhận xét có nút, chấm trang, phím mũi tên và vuốt — không tự chạy
- Thanh điều hướng mờ dần khi cuộn và sáng lên đúng mục đang đọc
- Giao diện sáng và tối: theo hệ thống, nhớ lựa chọn của người xem
- Ô đăng ký bản tin báo lỗi rõ ràng, cụ thể; nối với dịch vụ gửi bản tin chỉ bằng một thuộc tính
- Ở bản React, mọi chữ, mọi mức giá và câu trả lời nằm trong một file content.ts có kiểu
- Không ảnh, không web font, không gọi ra ngoài: thương hiệu, logo và hình minh hoạ đều là CSS và SVG nội tuyến
- Mọi màu, font, bo góc và thời gian chuyển động đều là CSS custom property
- Responsive từ điện thoại 320 px tới màn hình rộng
- Script và stylesheet cộng lại dưới 18 KB sau gzip
- Không phụ thuộc thư viện nào ngoài React ở bản React
Cách dùng
Mở index.html bằng trình soạn thảo: mọi chữ trên trang đều viết trực tiếp ở đây, nên công cụ tìm
kiếm đọc được. File này gắn hai file nằm cạnh nó:
<link rel="stylesheet" href="saas-landing.css" />
<script src="saas-landing.js" defer></script>- Giá: mỗi
<span data-price data-monthly="29" data-yearly="23">29</span>là giá mỗi chỗ ngồi mỗi tháng; giữ giá theo tháng làm nội dung chữ. Câu thông báo khi đổi kỳ thanh toán làdata-status-monthly/data-status-yearlytrên phần tử[data-pricing]. - Tính năng: chép thêm một
<li class="sl-tile">.sl-tile--large,--widehoặc--smallquyết định kích thước; cảnh bên trong làsl-visual--signals,experiments,copilot,realtime,roadmap,privacyhoặcintegrations. - Logo: mỗi công ty một
<li class="sl-wordmark sl-wordmark--a">; từatớihlà tám kiểu logo khác nhau. Thay bằng thẻ<img>nếu có logo thật. - Số liệu:
<span data-countup="99.99" data-decimals="2" data-suffix="%">99.99%</span>đếm lên tớidata-countup(có thêmdata-prefix). Giữ giá trị cuối cùng làm nội dung chữ. - FAQ: mỗi câu hỏi một
<details name="faq">. Cùng mộtnamenên mỗi lúc chỉ mở một câu. - Nhận xét: mỗi lời nhận xét một
[data-carousel-slide]; các chấm trang được vẽ tự động.
Script tự gắn mọi hành vi theo data attribute khi trang tải xong. Với phần HTML thêm vào sau, gọi
SaasLanding.init(container); hàm này trả về một hàm để gỡ ra. Mã nguồn dễ đọc nằm trong src/
(src/core/ gồm mỗi hành vi một module nhỏ) nếu bạn muốn build lại.
Bản tải về là một dự án Vite + React 19 + TypeScript hoàn chỉnh:
npm install
npm run dev # http://localhost:5173
npm run build # file tĩnh trong dist/src/app/content.ts— mọi chữ, mức giá, lời nhận xét và câu trả lời, có kiểu đầy đủ. Sửa ở đây là trang đổi theo.src/app/sections/— mỗi phần của trang một component;src/app/ui/— các atom và molecule dùng chung.src/core/— phần hành vi (giao diện, menu, scroll-spy, bảng giá, băng chuyền, đếm số…), đúng đoạn mã bản HTML đang chạy, gắn vào qua hookuseBehaviour.src/saas-landing.css— stylesheet duy nhất, dùng chung cho cả hai bản.
Chạy được với React 18 và 19.
App.tsx mở đầu bằng "use client", nên App Router dùng được ngay. Chép src/app, src/core và
src/saas-landing.css vào dự án (ví dụ vào components/lumora/, giữ ba thứ nằm cạnh nhau), rồi:
// app/page.tsx
import { App } from "@/components/lumora/app/App";
export default function Page() {
return <App />;
}Đặt id top cho <body> trong app/layout.tsx (logo và nút "Back to top" trỏ về đó). Muốn áp giao
diện đã lưu trước lần vẽ đầu tiên, chép đoạn script nhỏ trong index.html vào <head> của layout
và thêm suppressHydrationWarning vào <html>.
Khi không có action, form chỉ kiểm tra địa chỉ email rồi hiện lời cảm ơn, nên bản demo chạy được
cả khi offline. Để nhận người đăng ký thật, điền địa chỉ dịch vụ bản tin hoặc dịch vụ form —
Buttondown, ConvertKit, Formspree, hay endpoint của riêng bạn nhận form POST và trả về mã 2xx:
<form class="sl-newsletter__form" action="https://formspree.io/f/your-form-id" method="post" novalidate …>Ở bản React, đặt action trong NEWSLETTER của content.ts. Dữ liệu được gửi dạng form data kèm
Accept: application/json; nếu dịch vụ báo lỗi, người xem được nhắc thử lại. Ô ẩn _gotcha chặn
các bot spam đơn giản. Câu báo lỗi nằm ngay trên ô nhập: data-error-required và data-error-email.
Mọi thứ là custom property trên :root, ở đầu file saas-landing.css. Màu viết dạng
light-dark(sáng, tối), nên một dòng áp cho cả hai giao diện.
| Property | Thay đổi gì |
|---|---|
--sl-bg, --sl-bg-raised, --sl-bg-sunken, --sl-text, --sl-muted |
Màu nền trang, nền thẻ và màu chữ |
--sl-line, --sl-line-strong, --sl-glass, --sl-glass-strong, --sl-glass-edge, --sl-shadow |
Đường kẻ mảnh, kính mờ và bóng đổ |
--sl-violet, --sl-pink, --sl-cyan, --sl-green |
Các màu cực quang, dùng cho bầu trời, dải màu và điểm nhấn |
--sl-gradient, --sl-gradient-text |
Dải màu thương hiệu, và bản tương phản cao hơn dùng cho chữ |
--sl-aurora-strength |
Độ đậm của cực quang (đặt riêng cho từng giao diện) |
--sl-cta, --sl-on-cta, --sl-cta-glow |
Nút chính, chữ trên nút và quầng sáng của nút |
--sl-focus, --sl-danger, --sl-success |
Viền focus, lỗi form, trạng thái thành công |
--sl-font-display, --sl-font-body, --sl-font-mono, --sl-display-weight |
Chữ |
--sl-radius-xl, --sl-radius-lg, --sl-radius, --sl-radius-sm, --sl-max, --sl-gutter, --sl-section-space |
Hình khối và bố cục |
--sl-ease, --sl-reveal-duration, --sl-aurora-duration, --sl-mock-loop, --sl-feature-loop, --sl-marquee-duration |
Chuyển động |
Font: trang chỉ dùng font hệ thống nên không tải gì thêm. Muốn dùng font riêng, thêm @font-face
(hoặc stylesheet của dịch vụ font) rồi đặt, chẳng hạn, --sl-font-display: "Your Display", sans-serif;.
Giao diện: data-theme="light" hoặc "dark" trên <html> cố định giao diện lúc mở trang; nếu
không có, trang theo cài đặt hệ thống của người xem. Nút chuyển giao diện nhớ lựa chọn trong
localStorage (saas-landing-theme).
Cả hai bản đều là file tĩnh: tải thư mục HTML, hoặc thư mục dist/ của dự án React sau khi
npm run build, lên Netlify, Vercel, Cloudflare Pages, GitHub Pages hay hosting bất kỳ.
Hỏi về sản phẩm này
Chưa chắc có hợp dự án của bạn? Cứ hỏi — câu trả lời lấy từ chính trang này.
Lịch sử phiên bản
1.0.0First releaseMới nhất
One-page SaaS landing in two builds: static HTML/CSS/JS and a Vite + React + TypeScript project. Living aurora hero with an animated product window, bento features, scroll-drawn steps, count-up metrics, testimonial carousel, monthly/yearly pricing with a comparison table, FAQ, newsletter sign-up, light and dark themes.
- Bản sửa lỗi và tính năng mới đều có ngay ở nút tải này — file tải về luôn là bản mới nhất.
Có thể bạn sẽ thích
- TemplateTrang đích
Tidelock — Launch Waitlist
Trang “sắp ra mắt” với các hành tinh quay quanh quỹ đạo, đồng hồ đếm ngược kiểu bảng lật và danh sách chờ trao cho mỗi người đăng ký một link giới thiệu
9.000đ
- TemplateTrang đích
Tidelock — Launch Waitlist
Trang “sắp ra mắt” với các hành tinh quay quanh quỹ đạo, đồng hồ đếm ngược kiểu bảng lật và danh sách chờ trao cho mỗi người đăng ký một link giới thiệu
$4.90


