sozday-priglasitelnyy-bilet/index.html

396 lines
11 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Приглашение на День Рождения!</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Pacifico&family=Nunito:wght@400;600;700;800&display=swap" rel="stylesheet">
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Nunito', sans-serif;
background: linear-gradient(135deg, #ff6b6b 0%, #ff8e8e 50%, #ffb3b3 100%);
min-height: 100vh;
overflow-x: hidden;
}
.floating-elements {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
overflow: hidden;
z-index: 0;
}
.float-element {
position: absolute;
animation: float 6s infinite ease-in-out;
font-size: 40px;
}
.float-element:nth-child(1) { top: 10%; left: 10%; animation-delay: 0s; }
.float-element:nth-child(2) { top: 15%; right: 15%; animation-delay: 1s; }
.float-element:nth-child(3) { bottom: 20%; left: 15%; animation-delay: 2s; }
.float-element:nth-child(4) { bottom: 25%; right: 10%; animation-delay: 3s; }
.float-element:nth-child(5) { top: 40%; left: 5%; animation-delay: 4s; }
.float-element:nth-child(6) { top: 60%; right: 5%; animation-delay: 5s; }
.float-element:nth-child(7) { top: 30%; left: 50%; animation-delay: 2.5s; }
.float-element:nth-child(8) { bottom: 40%; right: 30%; animation-delay: 3.5s; }
@keyframes float {
0%, 100% { transform: translateY(0) rotate(0deg) scale(1); }
50% { transform: translateY(-30px) rotate(20deg) scale(1.1); }
}
.container {
position: relative;
z-index: 1;
max-width: 600px;
margin: 0 auto;
padding: 30px 20px;
}
.card {
background: linear-gradient(135deg, #fff5f5 0%, #ffffff 50%, #fff0f0 100%);
border-radius: 30px;
padding: 40px 30px;
box-shadow: 0 15px 50px rgba(255, 107, 107, 0.3);
position: relative;
overflow: hidden;
border: 5px solid #ff8e8e;
}
.content {
position: relative;
z-index: 1;
text-align: center;
}
.age-badge {
display: inline-block;
background: linear-gradient(135deg, #ff6b6b, #ff8e8e);
color: white;
font-size: 48px;
font-weight: 800;
padding: 15px 30px;
border-radius: 50px;
margin-bottom: 20px;
box-shadow: 0 8px 25px rgba(255, 107, 107, 0.4);
animation: bounce 2s infinite ease-in-out;
}
@keyframes bounce {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-10px); }
}
.title {
font-family: 'Pacifico', cursive;
font-size: clamp(32px, 7vw, 48px);
color: #ff6b6b;
margin-bottom: 15px;
text-shadow: 2px 2px 0px #ffb3b3;
}
.name {
font-size: clamp(28px, 6vw, 40px);
font-weight: 800;
color: #ff4757;
margin-bottom: 20px;
background: linear-gradient(135deg, #ff4757 0%, #ff6b6b 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.intro {
font-size: 18px;
color: #ff8e8e;
margin-bottom: 25px;
font-weight: 600;
}
.cake-icon {
font-size: 60px;
margin: 20px 0;
animation: wiggle 3s infinite ease-in-out;
}
@keyframes wiggle {
0%, 100% { transform: rotate(-5deg); }
50% { transform: rotate(5deg); }
}
.details {
margin: 30px 0;
}
.detail-item {
margin: 15px 0;
padding: 15px;
background: linear-gradient(135deg, #fff5f5 0%, #ffe0e0 100%);
border-radius: 15px;
border: 2px dashed #ff8e8e;
transition: transform 0.3s ease;
}
.detail-item:hover {
transform: scale(1.05);
}
.detail-icon {
font-size: 28px;
margin-bottom: 5px;
}
.detail-label {
font-size: 14px;
color: #ff8e8e;
font-weight: 600;
margin-bottom: 5px;
text-transform: uppercase;
letter-spacing: 1px;
}
.detail-value {
font-size: 18px;
color: #ff4757;
font-weight: 700;
line-height: 1.4;
}
.fun-note {
background: linear-gradient(135deg, #ffeaa7 0%, #ffd93d 100%);
border: 3px solid #ff6b6b;
padding: 20px;
border-radius: 20px;
margin: 25px 0;
position: relative;
}
.fun-note::before {
content: '🎉';
position: absolute;
top: -15px;
left: -10px;
font-size: 30px;
animation: spin 4s infinite linear;
}
.fun-note::after {
content: '🎈';
position: absolute;
bottom: -15px;
right: -10px;
font-size: 30px;
animation: spin 4s infinite linear reverse;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.fun-note-title {
font-size: 20px;
color: #ff4757;
font-weight: 800;
margin-bottom: 10px;
}
.fun-note-text {
font-size: 15px;
color: #6b4423;
line-height: 1.5;
}
.rsvp {
margin-top: 30px;
padding: 25px;
background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%);
border-radius: 20px;
border: 3px solid #66bb6a;
}
.rsvp-title {
font-family: 'Pacifico', cursive;
font-size: 28px;
color: #2e7d32;
margin-bottom: 10px;
}
.rsvp-text {
font-size: 14px;
color: #558b2f;
margin-bottom: 15px;
}
.rsvp-contact {
font-size: 20px;
color: #ff4757;
font-weight: 800;
}
.footer {
margin-top: 35px;
padding-top: 25px;
border-top: 3px dashed #ff8e8e;
}
.footer-text {
font-size: 16px;
color: #ff8e8e;
line-height: 1.6;
font-weight: 600;
}
.confetti {
position: absolute;
width: 10px;
height: 10px;
animation: confetti-fall 3s infinite linear;
opacity: 0;
}
@keyframes confetti-fall {
0% { opacity: 1; transform: translateY(0) rotate(0deg); }
100% { opacity: 0; transform: translateY(500px) rotate(720deg); }
}
@media (max-width: 600px) {
.card {
padding: 30px 20px;
}
.age-badge {
font-size: 36px;
padding: 12px 24px;
}
}
</style>
</head>
<body>
<div class="floating-elements">
<div class="float-element">🎈</div>
<div class="float-element">🎉</div>
<div class="float-element">🎂</div>
<div class="float-element">🎁</div>
<div class="float-element">⭐</div>
<div class="float-element">🦄</div>
<div class="float-element">🌈</div>
<div class="float-element">🍭</div>
</div>
<div class="container">
<div class="card">
<div class="content">
<div class="intro">Приглашаю тебя на мой</div>
<div class="age-badge" id="age-number">7</div>
<h1 class="title">День Рождения!</h1>
<div class="name" id="child-name">Имя</div>
<div class="cake-icon">🎂</div>
<div class="details">
<div class="detail-item">
<div class="detail-icon">📅</div>
<div class="detail-label">Когда</div>
<div class="detail-value" id="event-date">[Дата]</div>
</div>
<div class="detail-item">
<div class="detail-icon">🕐</div>
<div class="detail-label">Во сколько</div>
<div class="detail-value" id="event-time">[Время]</div>
</div>
<div class="detail-item">
<div class="detail-icon">📍</div>
<div class="detail-label">Где</div>
<div class="detail-value" id="event-location">[Место]</div>
</div>
</div>
<div class="fun-note">
<div class="fun-note-title">🎮 Будет весело!</div>
<div class="fun-note-text">
Игры, конкурсы, торт и много подарков! Не забудь своё отличное настроение!
</div>
</div>
<div class="rsvp">
<div class="rsvp-title">Подтверди приход!</div>
<p class="rsvp-text">
Пожалуйста, скажи родителям, чтобы они позвонили и подтвердили, что ты придёшь!
</p>
<div class="rsvp-contact" id="rsvp-contact">[Телефон]</div>
</div>
<div class="footer">
<p class="footer-text">
Жду тебя с нетерпением! 🎁<br>
Будет супер-праздник!
</p>
</div>
</div>
<div id="confetti-container"></div>
</div>
</div>
<script>
const eventData = {
name: "Сымбат",
age: 7,
date: "12 октября 2026 года",
time: "12:00",
location: "Детское кафе «Гранд Зодиак»",
rsvp: "+7 (777) 666-88-88"
};
function init() {
document.getElementById('child-name').textContent = eventData.name;
document.getElementById('age-number').textContent = eventData.age;
document.getElementById('event-date').textContent = eventData.date;
document.getElementById('event-time').textContent = eventData.time;
document.getElementById('event-location').textContent = eventData.location;
document.getElementById('rsvp-contact').textContent = eventData.rsvp;
document.title = `Приглашение на День Рождения ${eventData.name}!`;
createConfetti();
}
function createConfetti() {
const container = document.getElementById('confetti-container');
const colors = ['#ff6b6b', '#ff8e8e', '#ffd93d', '#66bb6a', '#4fc3f7'];
for (let i = 0; i < 40; i++) {
const confetti = document.createElement('div');
confetti.className = 'confetti';
confetti.style.left = Math.random() * 100 + '%';
confetti.style.top = -10 + 'px';
confetti.style.background = colors[Math.floor(Math.random() * colors.length)];
confetti.style.animationDelay = Math.random() * 3 + 's';
confetti.style.animationDuration = (2 + Math.random() * 2) + 's';
confetti.style.borderRadius = Math.random() > 0.5 ? '50%' : '0';
container.appendChild(confetti);
}
}
document.addEventListener('DOMContentLoaded', init);
</script>
</body>
</html>