Add marketing website for SatsPrice
Static, dark-themed landing page showcasing the app's capabilities with real screenshots for Android, iOS, iPad, and macOS, plus download links for all supported distribution channels. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AejmWBrdE3DbJWbXoaE3aX
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
// Mobile nav toggle
|
||||
const navToggle = document.querySelector(".nav-toggle");
|
||||
const mobileNav = document.querySelector(".mobile-nav");
|
||||
|
||||
if (navToggle && mobileNav) {
|
||||
navToggle.addEventListener("click", () => {
|
||||
mobileNav.classList.toggle("open");
|
||||
});
|
||||
|
||||
mobileNav.querySelectorAll("a").forEach((link) => {
|
||||
link.addEventListener("click", () => mobileNav.classList.remove("open"));
|
||||
});
|
||||
}
|
||||
|
||||
// Platform showcase tabs
|
||||
const tabButtons = document.querySelectorAll(".tab-btn");
|
||||
const tabPanels = document.querySelectorAll(".tab-panel");
|
||||
|
||||
tabButtons.forEach((btn) => {
|
||||
btn.addEventListener("click", () => {
|
||||
const target = btn.getAttribute("data-tab");
|
||||
|
||||
tabButtons.forEach((b) => b.classList.remove("active"));
|
||||
tabPanels.forEach((p) => p.classList.remove("active"));
|
||||
|
||||
btn.classList.add("active");
|
||||
document.getElementById(target).classList.add("active");
|
||||
});
|
||||
});
|
||||
|
||||
// Simulated live BTC price ticker (cosmetic only, not a real feed)
|
||||
(function priceTicker() {
|
||||
const valueEl = document.querySelector(".ticker .tk-value");
|
||||
const subEl = document.querySelector(".ticker .tk-sub");
|
||||
if (!valueEl) return;
|
||||
|
||||
let price = 77300;
|
||||
|
||||
function format(n) {
|
||||
return n.toLocaleString("en-US", { maximumFractionDigits: 0 });
|
||||
}
|
||||
|
||||
function tick() {
|
||||
price += (Math.random() - 0.5) * 60;
|
||||
valueEl.textContent = "$" + format(price);
|
||||
const sats = Math.round(100000000 / price);
|
||||
subEl.textContent = "1 USD ≈ " + sats.toLocaleString("en-US") + " sats";
|
||||
}
|
||||
|
||||
tick();
|
||||
setInterval(tick, 2200);
|
||||
})();
|
||||
|
||||
// Footer year
|
||||
const yearEl = document.getElementById("year");
|
||||
if (yearEl) yearEl.textContent = new Date().getFullYear();
|
||||
Reference in New Issue
Block a user