modified: main_dc/stubSite/index.html
new file: main_dc/stubSite/style.css renew stub site
This commit is contained in:
+125
-27
@@ -1,36 +1,134 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="ru">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>Технические работы</title>
|
<title>Технические работы | ValitovGaziz</title>
|
||||||
<style>
|
<link rel="stylesheet" href="style.css" />
|
||||||
body {
|
|
||||||
font-family: Arial, sans-serif;
|
|
||||||
text-align: center;
|
|
||||||
padding: 50px;
|
|
||||||
color: #333;
|
|
||||||
}
|
|
||||||
h1 {
|
|
||||||
font-size: 2.5em;
|
|
||||||
}
|
|
||||||
p {
|
|
||||||
font-size: 1.2em;
|
|
||||||
}
|
|
||||||
.container {
|
|
||||||
max-width: 600px;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="container">
|
<div class="maintenance-container">
|
||||||
<h1>Идут технические работы</h1>
|
<div class="logo">
|
||||||
<p>Сайт временно недоступен. Мы работаем над улучшением сервиса.</p>
|
<h1>ValitovGaziz</h1>
|
||||||
<p>Попробуйте зайти позже.</p>
|
<div class="subtitle">Технологический предприниматель & Fullstack-разработчик</div>
|
||||||
<p>С уважением, команда ValitovGaziz</p>
|
</div>
|
||||||
<p>telegram: @valitovgaziz</p>
|
|
||||||
<p>email: valitovgaziz@yandex.ru</p>
|
<div class="status-icon">🔧</div>
|
||||||
|
|
||||||
|
<h2>Идут плановые технические работы</h2>
|
||||||
|
|
||||||
|
<div class="status-message">
|
||||||
|
Сайт временно недоступен. Мы работаем над улучшением сервиса и скоро вернемся!
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="countdown">
|
||||||
|
Примерное время восстановления: <span id="countdown-timer">60:00</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="progress-container">
|
||||||
|
<div>Прогресс обновлений:</div>
|
||||||
|
<div class="progress-bar">
|
||||||
|
<div class="progress"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="info-box">
|
||||||
|
<h3>Что происходит сейчас?</h3>
|
||||||
|
<p>Мы обновляем инфраструктуру, улучшаем производительность и добавляем новые функции для лучшего пользовательского опыта.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="project-highlight">
|
||||||
|
<h3>Мой главный проект: Yalarba.ru</h3>
|
||||||
|
<p>Платформа для планирования путешествий нового поколения, которая меняет подход к путешествиям по Башкортостану.</p>
|
||||||
|
<p><strong>Технологии:</strong> Nuxt.js 4, Vue3.js, Golang, PostgreSQL, Docker</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="skills-grid">
|
||||||
|
<div class="skill-tag">Golang</div>
|
||||||
|
<div class="skill-tag">Vue3.js</div>
|
||||||
|
<div class="skill-tag">Nuxt.js</div>
|
||||||
|
<div class="skill-tag">PostgreSQL</div>
|
||||||
|
<div class="skill-tag">Docker</div>
|
||||||
|
<div class="skill-tag">JavaScript</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="contact-info">
|
||||||
|
<div class="contact-card">
|
||||||
|
<h4>📱 Telegram</h4>
|
||||||
|
<p><a href="https://t.me/valitovgaziz" style="color: #667eea; text-decoration: none;">@valitovgaziz</a></p>
|
||||||
|
</div>
|
||||||
|
<div class="contact-card">
|
||||||
|
<h4>📧 Email</h4>
|
||||||
|
<p><a href="mailto:valitovgaziz@yandex.ru" style="color: #667eea; text-decoration: none;">valitovgaziz@yandex.ru</a></p>
|
||||||
|
</div>
|
||||||
|
<div class="contact-card">
|
||||||
|
<h4>🌐 Сайт</h4>
|
||||||
|
<p><a href="https://valitovgaziz.ru" style="color: #667eea; text-decoration: none;">valitovgaziz.ru</a></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="social-links">
|
||||||
|
<a href="https://t.me/valitovgaziz" class="social-link" target="_blank">
|
||||||
|
<span>💬 Написать в Telegram</span>
|
||||||
|
</a>
|
||||||
|
<a href="https://github.com/valitovgaziz" class="social-link" target="_blank">
|
||||||
|
<span>👨💻 GitHub профиль</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="info-box">
|
||||||
|
<h3>Ищем талантливых людей!</h3>
|
||||||
|
<p>В данный момент формируем команду для развития проектов. Нужны программисты, дизайнеры и аналитики.</p>
|
||||||
|
<a href="https://t.me/valitovgaziz" class="btn">Присоединиться к команде</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="footer-note">
|
||||||
|
<p>🚀 Создаю цифровые продукты с 2017 года. Специализируюсь на разработке веб-приложений под ключ — от идеи до масштабируемого продукта.</p>
|
||||||
|
<p style="margin-top: 15px; font-style: italic;">"Технологии как инструмент для решения реальных проблем"</p>
|
||||||
|
<p style="margin-top: 20px; color: #999;">© 2025 Valitov Gaziz. Уфа Ufa Өфө</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// Таймер обратного отсчета
|
||||||
|
let timeLeft = 60 * 60; // 60 минут в секундах
|
||||||
|
const timerElement = document.getElementById('countdown-timer');
|
||||||
|
|
||||||
|
function updateTimer() {
|
||||||
|
const minutes = Math.floor(timeLeft / 60);
|
||||||
|
const seconds = timeLeft % 60;
|
||||||
|
timerElement.textContent = `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
|
||||||
|
|
||||||
|
if (timeLeft > 0) {
|
||||||
|
timeLeft--;
|
||||||
|
setTimeout(updateTimer, 1000);
|
||||||
|
} else {
|
||||||
|
timerElement.textContent = "Скоро!";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
updateTimer();
|
||||||
|
|
||||||
|
// Анимация случайного изменения прогресса
|
||||||
|
setInterval(() => {
|
||||||
|
const progress = document.querySelector('.progress');
|
||||||
|
const randomWidth = 70 + Math.random() * 15;
|
||||||
|
progress.style.width = `${randomWidth}%`;
|
||||||
|
}, 3000);
|
||||||
|
|
||||||
|
// Плавное появление элементов
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
const elements = document.querySelectorAll('.maintenance-container > *');
|
||||||
|
elements.forEach((el, index) => {
|
||||||
|
el.style.opacity = '0';
|
||||||
|
el.style.transform = 'translateY(20px)';
|
||||||
|
setTimeout(() => {
|
||||||
|
el.style.transition = 'opacity 0.5s, transform 0.5s';
|
||||||
|
el.style.opacity = '1';
|
||||||
|
el.style.transform = 'translateY(0)';
|
||||||
|
}, index * 100);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -0,0 +1,292 @@
|
|||||||
|
* {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||||
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||||
|
color: #333;
|
||||||
|
min-height: 100vh;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
padding: 20px;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.maintenance-container {
|
||||||
|
background: rgba(255, 255, 255, 0.95);
|
||||||
|
border-radius: 20px;
|
||||||
|
padding: 40px;
|
||||||
|
max-width: 800px;
|
||||||
|
width: 100%;
|
||||||
|
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
|
||||||
|
text-align: center;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.maintenance-container::before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
height: 5px;
|
||||||
|
background: linear-gradient(90deg, #667eea, #764ba2, #f093fb);
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
margin-bottom: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo h1 {
|
||||||
|
color: #333;
|
||||||
|
font-size: 2.5em;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
background: linear-gradient(90deg, #667eea, #764ba2);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
font-weight: 800;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo .subtitle {
|
||||||
|
color: #666;
|
||||||
|
font-size: 1.2em;
|
||||||
|
font-weight: 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status-icon {
|
||||||
|
font-size: 80px;
|
||||||
|
margin: 20px 0;
|
||||||
|
color: #667eea;
|
||||||
|
animation: pulse 2s infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes pulse {
|
||||||
|
|
||||||
|
0%,
|
||||||
|
100% {
|
||||||
|
transform: scale(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
transform: scale(1.1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
color: #333;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status-message {
|
||||||
|
background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
|
||||||
|
color: white;
|
||||||
|
padding: 15px;
|
||||||
|
border-radius: 10px;
|
||||||
|
margin: 25px 0;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 1.1em;
|
||||||
|
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.info-box {
|
||||||
|
background: #f8f9fa;
|
||||||
|
border-left: 4px solid #667eea;
|
||||||
|
padding: 20px;
|
||||||
|
margin: 25px 0;
|
||||||
|
text-align: left;
|
||||||
|
border-radius: 0 10px 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info-box h3 {
|
||||||
|
color: #333;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info-box h3::before {
|
||||||
|
content: "💡";
|
||||||
|
}
|
||||||
|
|
||||||
|
.project-highlight {
|
||||||
|
background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
|
||||||
|
color: white;
|
||||||
|
padding: 20px;
|
||||||
|
border-radius: 15px;
|
||||||
|
margin: 25px 0;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.project-highlight h3 {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 10px;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.project-highlight h3::before {
|
||||||
|
content: "🚀";
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-info {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
||||||
|
gap: 20px;
|
||||||
|
margin: 30px 0;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-card {
|
||||||
|
background: white;
|
||||||
|
padding: 20px;
|
||||||
|
border-radius: 10px;
|
||||||
|
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
|
||||||
|
transition: transform 0.3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-card:hover {
|
||||||
|
transform: translateY(-5px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-card h4 {
|
||||||
|
color: #667eea;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.social-links {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
gap: 20px;
|
||||||
|
margin: 30px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.social-link {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
background: #667eea;
|
||||||
|
color: white;
|
||||||
|
padding: 12px 25px;
|
||||||
|
border-radius: 50px;
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: 600;
|
||||||
|
transition: all 0.3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.social-link:hover {
|
||||||
|
background: #764ba2;
|
||||||
|
transform: translateY(-3px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress-container {
|
||||||
|
margin: 30px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress-bar {
|
||||||
|
height: 8px;
|
||||||
|
background: #e9ecef;
|
||||||
|
border-radius: 4px;
|
||||||
|
overflow: hidden;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress {
|
||||||
|
height: 100%;
|
||||||
|
background: linear-gradient(90deg, #667eea, #764ba2);
|
||||||
|
width: 75%;
|
||||||
|
border-radius: 4px;
|
||||||
|
animation: loading 2s ease-in-out infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes loading {
|
||||||
|
|
||||||
|
0%,
|
||||||
|
100% {
|
||||||
|
width: 70%;
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
width: 80%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.countdown {
|
||||||
|
font-size: 1.5em;
|
||||||
|
color: #333;
|
||||||
|
font-weight: 700;
|
||||||
|
margin: 20px 0;
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skills-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
|
||||||
|
gap: 15px;
|
||||||
|
margin: 25px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skill-tag {
|
||||||
|
background: #f1f3ff;
|
||||||
|
color: #667eea;
|
||||||
|
padding: 10px 15px;
|
||||||
|
border-radius: 25px;
|
||||||
|
font-size: 0.9em;
|
||||||
|
font-weight: 600;
|
||||||
|
border: 2px solid #667eea;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-note {
|
||||||
|
margin-top: 40px;
|
||||||
|
padding-top: 20px;
|
||||||
|
border-top: 1px solid #eee;
|
||||||
|
color: #666;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||||
|
color: white;
|
||||||
|
border: none;
|
||||||
|
padding: 15px 35px;
|
||||||
|
border-radius: 50px;
|
||||||
|
font-size: 1em;
|
||||||
|
font-weight: 600;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.3s;
|
||||||
|
margin: 10px;
|
||||||
|
display: inline-block;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn:hover {
|
||||||
|
transform: translateY(-3px);
|
||||||
|
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.maintenance-container {
|
||||||
|
padding: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo h1 {
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-info {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skills-grid {
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user