(feat): Init concept of coming soon landing page
This commit is contained in:
77
static/css/styles.css
Normal file
77
static/css/styles.css
Normal file
@@ -0,0 +1,77 @@
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: Arial, sans-serif;
|
||||
background: linear-gradient(135deg, #1e90ff, #00bfff);
|
||||
color: #fff;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
.coming-soon {
|
||||
text-align: center;
|
||||
max-width: 600px;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.logo img {
|
||||
width: 150px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2.5rem;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 1.2rem;
|
||||
margin: 10px 0 20px;
|
||||
}
|
||||
|
||||
.countdown {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
margin: 20px 0;
|
||||
}
|
||||
|
||||
.countdown div {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.countdown span {
|
||||
display: block;
|
||||
font-size: 2rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.subscription {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.subscription input {
|
||||
padding: 10px;
|
||||
font-size: 1rem;
|
||||
width: calc(100% - 110px);
|
||||
border: none;
|
||||
border-radius: 10px;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.subscription button {
|
||||
padding: 10px 20px;
|
||||
font-size: 1rem;
|
||||
background: #ff4500;
|
||||
border: none;
|
||||
border-radius: 10px;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
outline: none;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.subscription button:hover {
|
||||
background: #e03e00;
|
||||
}
|
||||
24
static/js/countdown.js
Normal file
24
static/js/countdown.js
Normal file
@@ -0,0 +1,24 @@
|
||||
// Countdown timer
|
||||
const targetDate = new Date("2025-01-31T00:00:00Z"); // Set your launch date
|
||||
|
||||
function updateCountdown() {
|
||||
const now = new Date();
|
||||
const difference = targetDate - now;
|
||||
|
||||
if (difference < 0) {
|
||||
document.getElementById("countdown").innerHTML = "<p>We're Live!</p>";
|
||||
return;
|
||||
}
|
||||
|
||||
const days = Math.floor(difference / (1000 * 60 * 60 * 24));
|
||||
const hours = Math.floor((difference / (1000 * 60 * 60)) % 24);
|
||||
const minutes = Math.floor((difference / (1000 * 60)) % 60);
|
||||
const seconds = Math.floor((difference / 1000) % 60);
|
||||
|
||||
document.getElementById("days").textContent = days.toString().padStart(2, "0");
|
||||
document.getElementById("hours").textContent = hours.toString().padStart(2, "0");
|
||||
document.getElementById("minutes").textContent = minutes.toString().padStart(2, "0");
|
||||
document.getElementById("seconds").textContent = seconds.toString().padStart(2, "0");
|
||||
}
|
||||
|
||||
setInterval(updateCountdown, 1000);
|
||||
18
static/js/main.js
Normal file
18
static/js/main.js
Normal file
@@ -0,0 +1,18 @@
|
||||
document.getElementById("notify-button").addEventListener("click", async () => {
|
||||
const emailInput = document.getElementById("email-input");
|
||||
const email = emailInput.value;
|
||||
|
||||
if (email) {
|
||||
const response = await fetch("/subscribe", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({ email }),
|
||||
});
|
||||
|
||||
const result = await response.json();
|
||||
alert(result.message || result.error);
|
||||
emailInput.value = ""; // Clear input field
|
||||
} else {
|
||||
alert("Please enter a valid email.");
|
||||
}
|
||||
});
|
||||
@@ -1,52 +0,0 @@
|
||||
body {
|
||||
background: linear-gradient(135deg, #2E3A59, #4A6FA5); /* Deep blue and soft gray-blue */
|
||||
color: white;
|
||||
font-family: 'Arial', sans-serif;
|
||||
height: 100vh; /* Ensure the body takes full viewport height */
|
||||
margin: 0;
|
||||
display: flex; /* Use flexbox to center the content */
|
||||
justify-content: center; /* Horizontally center */
|
||||
align-items: center; /* Vertically center */
|
||||
}
|
||||
|
||||
.container {
|
||||
text-align: center; /* Center-align the text */
|
||||
max-width: 600px; /* Limit the width for better readability */
|
||||
}
|
||||
|
||||
.logo {
|
||||
width: 150px;
|
||||
height: auto;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
h1, .lead {
|
||||
color: #F0F0F0; /* Softer white for contrast */
|
||||
}
|
||||
|
||||
.form-control {
|
||||
max-width: 300px;
|
||||
border: 1px solid #6FA8DC; /* Light blue border */
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
.btn {
|
||||
background-color: #4A6FA5; /* Soft blue */
|
||||
border: none;
|
||||
color: white;
|
||||
padding: 0.5rem 1.5rem;
|
||||
font-size: 1rem;
|
||||
font-weight: bold;
|
||||
border-radius: 0.25rem;
|
||||
transition: background-color 0.3s ease;
|
||||
}
|
||||
|
||||
.btn:hover {
|
||||
background-color: #3B5998; /* Darker blue on hover */
|
||||
}
|
||||
|
||||
footer {
|
||||
margin-top: 2rem;
|
||||
font-size: 0.9rem;
|
||||
color: #D0D0D0; /* Light gray for footer text */
|
||||
}
|
||||
Reference in New Issue
Block a user