addcalendar / index.html
sergotsev's picture
Add 2 files
8ef7238 verified
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>TimeSync - Умное планирование</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
/* Кастомные стили */
.ios-scroll {
-webkit-overflow-scrolling: touch;
}
.btn-press {
transition: all 0.1s ease;
}
.btn-press:active {
transform: scale(0.95);
opacity: 0.8;
}
.event-dot {
width: 8px;
height: 8px;
border-radius: 50%;
position: absolute;
top: 3px;
left: 50%;
transform: translateX(-50%);
}
.time-slot {
height: 60px;
border-bottom: 1px solid #e5e7eb;
position: relative;
}
.calendar-grid {
display: grid;
grid-template-columns: repeat(7, 1fr);
}
.day-cell {
aspect-ratio: 1/1;
}
.slide-up {
animation: slideUp 0.3s ease-out;
}
@keyframes slideUp {
from { transform: translateY(100%); }
to { transform: translateY(0); }
}
</style>
</head>
<body class="bg-gray-50 font-sans text-gray-900 max-w-md mx-auto relative" style="height: 100vh; overflow: hidden;">
<!-- Главный экран с табами -->
<div class="h-full flex flex-col">
<!-- Шапка -->
<div class="bg-white px-4 pt-12 pb-3 shadow-sm z-10">
<div class="flex justify-between items-center mb-4">
<h1 class="text-2xl font-bold">TimeSync</h1>
<div class="flex space-x-3">
<button class="btn-press w-8 h-8 rounded-full bg-gray-100 flex items-center justify-center">
<i class="fas fa-search text-gray-500"></i>
</button>
<button class="btn-press w-8 h-8 rounded-full bg-gray-100 flex items-center justify-center">
<i class="fas fa-cog text-gray-500"></i>
</button>
</div>
</div>
<!-- Табы -->
<div class="flex border-b border-gray-200">
<button class="btn-press flex-1 py-2 font-medium text-blue-500 border-b-2 border-blue-500">Сегодня</button>
<button class="btn-press flex-1 py-2 font-medium text-gray-500">Календари</button>
<button class="btn-press flex-1 py-2 font-medium text-gray-500">Встречи</button>
</div>
</div>
<!-- Контент -->
<div class="flex-1 overflow-hidden">
<!-- Экран "Сегодня" -->
<div class="h-full ios-scroll overflow-y-auto bg-white">
<!-- Дата и переключение дней -->
<div class="sticky top-0 bg-white z-10 px-4 py-3 border-b border-gray-200 flex justify-between items-center">
<button class="btn-press px-3 py-1 rounded-full bg-gray-100">
<i class="fas fa-chevron-left text-gray-500"></i>
</button>
<div class="text-center">
<div class="font-medium">Сегодня</div>
<div class="text-sm text-gray-500">15 июня, пятница</div>
</div>
<button class="btn-press px-3 py-1 rounded-full bg-gray-100">
<i class="fas fa-chevron-right text-gray-500"></i>
</button>
</div>
<!-- Быстрое добавление -->
<div class="px-4 py-3 border-b border-gray-200">
<button id="addEventBtn" class="btn-press w-full py-2 px-4 bg-blue-500 text-white rounded-full flex items-center justify-center space-x-2">
<i class="fas fa-plus"></i>
<span>Добавить событие</span>
</button>
</div>
<!-- Список событий -->
<div class="divide-y divide-gray-200">
<!-- Событие 1 -->
<div class="px-4 py-3">
<div class="flex items-start">
<div class="w-12 flex-shrink-0">
<div class="text-sm text-gray-500">09:00</div>
<div class="text-xs text-gray-400">10:00</div>
</div>
<div class="ml-2 flex-1">
<div class="font-medium">Совещание по проекту</div>
<div class="text-sm text-gray-500">Рабочая группа</div>
<div class="mt-1 flex items-center text-xs text-gray-400">
<i class="fas fa-users mr-1"></i>
<span>Алексей, Мария, Иван</span>
</div>
</div>
<div class="w-3 h-3 rounded-full bg-blue-500 mt-1"></div>
</div>
</div>
<!-- Событие 2 -->
<div class="px-4 py-3">
<div class="flex items-start">
<div class="w-12 flex-shrink-0">
<div class="text-sm text-gray-500">12:30</div>
<div class="text-xs text-gray-400">13:30</div>
</div>
<div class="ml-2 flex-1">
<div class="font-medium">Обеденный перерыв</div>
<div class="text-sm text-gray-500">Личное</div>
</div>
<div class="w-3 h-3 rounded-full bg-green-500 mt-1"></div>
</div>
</div>
<!-- Событие 3 -->
<div class="px-4 py-3">
<div class="flex items-start">
<div class="w-12 flex-shrink-0">
<div class="text-sm text-gray-500">15:00</div>
<div class="text-xs text-gray-400">16:30</div>
</div>
<div class="ml-2 flex-1">
<div class="font-medium">Презентация клиенту</div>
<div class="text-sm text-gray-500">Важные встречи</div>
<div class="mt-1 flex items-center text-xs text-gray-400">
<i class="fas fa-map-marker-alt mr-1"></i>
<span>Офис клиента</span>
</div>
</div>
<div class="w-3 h-3 rounded-full bg-purple-500 mt-1"></div>
</div>
</div>
</div>
</div>
</div>
<!-- Нижнее меню -->
<div class="bg-white border-t border-gray-200 py-2 px-4 flex justify-around">
<button class="btn-press flex flex-col items-center text-blue-500">
<i class="fas fa-calendar-day text-lg"></i>
<span class="text-xs mt-1">Сегодня</span>
</button>
<button class="btn-press flex flex-col items-center text-gray-500">
<i class="fas fa-calendar-alt text-lg"></i>
<span class="text-xs mt-1">Календарь</span>
</button>
<button class="btn-press flex flex-col items-center text-gray-500">
<i class="fas fa-users text-lg"></i>
<span class="text-xs mt-1">Группы</span>
</button>
<button class="btn-press flex flex-col items-center text-gray-500">
<i class="fas fa-user text-lg"></i>
<span class="text-xs mt-1">Профиль</span>
</button>
</div>
</div>
<!-- Модальное окно добавления события -->
<div id="eventModal" class="fixed inset-0 bg-black bg-opacity-50 z-20 hidden">
<div class="absolute bottom-0 w-full bg-white rounded-t-3xl slide-up" style="height: 85vh;">
<div class="px-4 py-3 border-b border-gray-200 flex justify-between items-center">
<button id="closeModalBtn" class="btn-press text-gray-500">
<i class="fas fa-times"></i>
</button>
<div class="font-medium">Новое событие</div>
<button class="btn-press text-blue-500 font-medium">Готово</button>
</div>
<div class="ios-scroll overflow-y-auto" style="height: calc(85vh - 50px);">
<div class="px-4 py-3">
<input type="text" placeholder="Название события" class="w-full text-xl font-medium border-0 focus:ring-0 px-0">
</div>
<div class="px-4 py-3 border-t border-gray-200">
<div class="flex items-center">
<i class="fas fa-clock text-gray-400 mr-3"></i>
<div class="flex-1">
<div class="text-sm text-gray-500">Время</div>
<div class="flex space-x-3 mt-1">
<div class="flex-1">
<div class="text-sm font-medium">15 июня</div>
<select class="w-full mt-1 border border-gray-200 rounded-md px-2 py-1 text-sm">
<option>09:00</option>
<option>09:30</option>
<option>10:00</option>
<option selected>10:30</option>
<option>11:00</option>
</select>
</div>
<div class="flex-1">
<div class="text-sm font-medium">До</div>
<select class="w-full mt-1 border border-gray-200 rounded-md px-2 py-1 text-sm">
<option>10:00</option>
<option>10:30</option>
<option selected>11:00</option>
<option>11:30</option>
<option>12:00</option>
</select>
</div>
</div>
</div>
</div>
</div>
<div class="px-4 py-3 border-t border-gray-200">
<div class="flex items-center">
<i class="fas fa-calendar-alt text-gray-400 mr-3"></i>
<div class="flex-1">
<div class="text-sm text-gray-500">Календарь</div>
<select class="w-full mt-1 border border-gray-200 rounded-md px-2 py-1 text-sm">
<option>Личный</option>
<option>Рабочая группа</option>
<option>Важные встречи</option>
<option>Семья</option>
</select>
</div>
</div>
</div>
<div class="px-4 py-3 border-t border-gray-200">
<div class="flex items-center">
<i class="fas fa-bell text-gray-400 mr-3"></i>
<div class="flex-1">
<div class="text-sm text-gray-500">Напоминание</div>
<select class="w-full mt-1 border border-gray-200 rounded-md px-2 py-1 text-sm">
<option>Нет</option>
<option>За 5 минут</option>
<option selected>За 15 минут</option>
<option>За 30 минут</option>
<option>За 1 час</option>
</select>
</div>
</div>
</div>
<div class="px-4 py-3 border-t border-gray-200">
<div class="flex items-center">
<i class="fas fa-map-marker-alt text-gray-400 mr-3"></i>
<div class="flex-1">
<div class="text-sm text-gray-500">Место</div>
<input type="text" placeholder="Добавить место" class="w-full mt-1 border-0 focus:ring-0 px-0">
</div>
</div>
</div>
<div class="px-4 py-3 border-t border-gray-200">
<div class="flex items-center">
<i class="fas fa-users text-gray-400 mr-3"></i>
<div class="flex-1">
<div class="text-sm text-gray-500">Участники</div>
<div class="mt-2 flex flex-wrap gap-2">
<div class="flex items-center bg-gray-100 rounded-full px-3 py-1">
<div class="w-5 h-5 rounded-full bg-blue-500 mr-2"></div>
<span class="text-sm">Алексей</span>
<button class="ml-2 text-gray-400">
<i class="fas fa-times text-xs"></i>
</button>
</div>
<button class="btn-press w-8 h-8 rounded-full bg-gray-100 flex items-center justify-center">
<i class="fas fa-plus text-gray-500"></i>
</button>
</div>
</div>
</div>
</div>
<div class="px-4 py-3 border-t border-gray-200">
<div class="flex items-center">
<i class="fas fa-align-left text-gray-400 mr-3"></i>
<div class="flex-1">
<div class="text-sm text-gray-500">Заметки</div>
<textarea placeholder="Добавить описание" class="w-full mt-1 border-0 focus:ring-0 px-0 h-20 resize-none"></textarea>
</div>
</div>
</div>
<div class="px-4 py-3 border-t border-gray-200">
<button class="btn-press w-full py-2 bg-red-100 text-red-500 rounded-md flex items-center justify-center">
<i class="fas fa-trash-alt mr-2"></i>
<span>Удалить событие</span>
</button>
</div>
</div>
</div>
</div>
<script>
// Обработчики для модального окна
document.getElementById('addEventBtn').addEventListener('click', function() {
document.getElementById('eventModal').classList.remove('hidden');
});
document.getElementById('closeModalBtn').addEventListener('click', function() {
document.getElementById('eventModal').classList.add('hidden');
});
// Эффект нажатия для всех кнопок
document.querySelectorAll('.btn-press').forEach(button => {
button.addEventListener('mousedown', function() {
this.classList.add('opacity-80', 'scale-95');
});
button.addEventListener('mouseup', function() {
this.classList.remove('opacity-80', 'scale-95');
});
button.addEventListener('mouseleave', function() {
this.classList.remove('opacity-80', 'scale-95');
});
});
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - <a href="https://enzostvs-deepsite.hf.space?remix=sergotsev/addcalendar" style="color: #fff;text-decoration: underline;" target="_blank" >🧬 Remix</a></p></body>
</html>