smartrise / index.html
222kdfdf's picture
Add 3 files
0d2b619 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SmartRise Alarm</title>
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<style>
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes slideUp {
from { transform: translateY(20px); opacity: 0; }
to { transform: translateY(0); opacity: 1; }
}
@keyframes pulse {
0% { transform: scale(1); }
50% { transform: scale(1.05); }
100% { transform: scale(1); }
}
.animate-fade-in {
animation: fadeIn 0.5s ease-out forwards;
}
.animate-slide-up {
animation: slideUp 0.4s ease-out forwards;
}
.animate-pulse {
animation: pulse 2s infinite;
}
.time-picker::-webkit-inner-spin-button,
.time-picker::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
.switch {
position: relative;
display: inline-block;
width: 50px;
height: 24px;
}
.switch input {
opacity: 0;
width: 0;
height: 0;
}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
transition: .4s;
border-radius: 24px;
}
.slider:before {
position: absolute;
content: "";
height: 16px;
width: 16px;
left: 4px;
bottom: 4px;
background-color: white;
transition: .4s;
border-radius: 50%;
}
input:checked + .slider {
background-color: #4B0082;
}
input:checked + .slider:before {
transform: translateX(26px);
}
.tab-active {
border-bottom: 3px solid #4B0082;
color: #4B0082;
font-weight: 600;
}
.day-selector.active {
background-color: #4B0082;
color: white;
}
.alarm-active {
border-left: 5px solid #FF6F61;
}
</style>
</head>
<body class="font-['Inter'] bg-gray-50 text-gray-900">
<!-- Splash Screen -->
<div id="splash" class="fixed inset-0 bg-indigo-900 flex items-center justify-center z-50">
<div class="text-center animate-pulse">
<div class="w-24 h-24 bg-white rounded-2xl flex items-center justify-center mx-auto mb-6">
<svg xmlns="http://www.w3.org/2000/svg" class="h-16 w-16 text-indigo-900" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" />
</svg>
</div>
<h1 class="text-3xl font-bold text-white">SmartRise</h1>
<p class="text-indigo-200 mt-2">Wake up smarter</p>
</div>
</div>
<!-- Onboarding Screens -->
<div id="onboarding" class="hidden fixed inset-0 bg-white z-40 overflow-y-auto">
<div class="container mx-auto px-4 py-12">
<div class="flex justify-between items-center mb-8">
<div class="w-12"></div>
<button id="skip-onboarding" class="text-indigo-900 font-medium">Skip</button>
</div>
<div class="carousel relative">
<div class="carousel-inner flex overflow-hidden">
<!-- Slide 1 -->
<div class="carousel-item w-full flex-shrink-0 px-4 text-center">
<div class="h-64 mb-8 flex items-center justify-center">
<div class="relative w-48 h-48 bg-indigo-100 rounded-full flex items-center justify-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-24 w-24 text-indigo-900" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z" />
</svg>
</div>
</div>
<h2 class="text-2xl font-bold mb-4">AI-Powered Wake Up</h2>
<p class="text-gray-600 mb-8">Our smart algorithm detects your lightest sleep phase to wake you up refreshed within your preferred window.</p>
<div class="flex justify-center space-x-2">
<div class="w-3 h-3 rounded-full bg-indigo-900"></div>
<div class="w-3 h-3 rounded-full bg-gray-300"></div>
<div class="w-3 h-3 rounded-full bg-gray-300"></div>
</div>
</div>
<!-- Slide 2 -->
<div class="carousel-item w-full flex-shrink-0 px-4 text-center">
<div class="h-64 mb-8 flex items-center justify-center">
<div class="relative w-48 h-48 bg-indigo-100 rounded-full flex items-center justify-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-24 w-24 text-indigo-900" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z" />
</svg>
</div>
</div>
<h2 class="text-2xl font-bold mb-4">Weather Adjustments</h2>
<p class="text-gray-600 mb-8">SmartRise automatically adjusts your wake-up time based on weather conditions to ensure you're never late.</p>
<div class="flex justify-center space-x-2">
<div class="w-3 h-3 rounded-full bg-gray-300"></div>
<div class="w-3 h-3 rounded-full bg-indigo-900"></div>
<div class="w-3 h-3 rounded-full bg-gray-300"></div>
</div>
</div>
<!-- Slide 3 -->
<div class="carousel-item w-full flex-shrink-0 px-4 text-center">
<div class="h-64 mb-8 flex items-center justify-center">
<div class="relative w-48 h-48 bg-indigo-100 rounded-full flex items-center justify-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-24 w-24 text-indigo-900" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1" />
</svg>
</div>
</div>
<h2 class="text-2xl font-bold mb-4">Gamified Challenges</h2>
<p class="text-gray-600 mb-8">Solve puzzles or complete challenges to turn off your alarm, ensuring you're fully awake and ready for the day.</p>
<div class="flex justify-center space-x-2">
<div class="w-3 h-3 rounded-full bg-gray-300"></div>
<div class="w-3 h-3 rounded-full bg-gray-300"></div>
<div class="w-3 h-3 rounded-full bg-indigo-900"></div>
</div>
</div>
</div>
</div>
<div class="mt-12">
<button id="next-slide" class="w-full bg-indigo-900 text-white py-3 rounded-xl font-medium">Continue</button>
</div>
</div>
</div>
<!-- Authentication Screen -->
<div id="auth-screen" class="hidden fixed inset-0 bg-white z-30 overflow-y-auto">
<div class="container mx-auto px-4 py-12">
<div class="max-w-md mx-auto">
<div class="text-center mb-12">
<h1 class="text-3xl font-bold text-indigo-900 mb-2">Welcome Back</h1>
<p class="text-gray-600">Sign in to access your alarms and sleep data</p>
</div>
<div class="space-y-4">
<button class="w-full flex items-center justify-center space-x-2 bg-white border border-gray-300 py-3 rounded-xl font-medium">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" viewBox="0 0 24 24" fill="#4285F4">
<path d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z" fill="#4285F4"/>
<path d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z" fill="#34A853"/>
<path d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z" fill="#FBBC05"/>
<path d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z" fill="#EA4335"/>
<path d="M1 1h22v22H1z" fill="none"/>
</svg>
<span>Continue with Google</span>
</button>
<button class="w-full flex items-center justify-center space-x-2 bg-white border border-gray-300 py-3 rounded-xl font-medium">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" viewBox="0 0 24 24" fill="#000000">
<path d="M17.5 12c0 .32-.03.63-.08.93.03.01.06.03.08.05 1.51.56 2.56 1.89 2.56 3.46 0 2.03-1.95 3.56-4.63 3.56-1.6 0-2.8-.59-3.47-1.38-.67.79-1.87 1.38-3.47 1.38C5.95 21 4 19.47 4 17.44c0-1.58 1.06-2.9 2.58-3.45.02-.03.05-.04.08-.05-.05-.3-.08-.61-.08-.93 0-1.23.44-2.35 1.15-3.23-.12-.3-.19-.62-.19-.96 0-.83.34-1.58.88-2.12.54-.54 1.29-.88 2.12-.88.34 0 .66.07.96.19.88-.71 2-1.15 3.23-1.15 2.5 0 4.5 1.71 4.5 4 0 .34-.07.66-.19.96.71.88 1.15 2 1.15 3.23z"/>
</svg>
<span>Continue with Apple</span>
</button>
<div class="flex items-center my-6">
<div class="flex-grow border-t border-gray-300"></div>
<span class="flex-shrink mx-4 text-gray-500">or</span>
<div class="flex-grow border-t border-gray-300"></div>
</div>
<div class="space-y-4">
<div>
<label for="email" class="block text-sm font-medium text-gray-700 mb-1">Email</label>
<input type="email" id="email" class="w-full px-4 py-3 border border-gray-300 rounded-xl focus:ring-2 focus:ring-indigo-900 focus:border-indigo-900">
</div>
<div>
<label for="password" class="block text-sm font-medium text-gray-700 mb-1">Password</label>
<input type="password" id="password" class="w-full px-4 py-3 border border-gray-300 rounded-xl focus:ring-2 focus:ring-indigo-900 focus:border-indigo-900">
</div>
<div class="flex justify-between items-center">
<div class="flex items-center">
<input type="checkbox" id="remember" class="h-4 w-4 text-indigo-900 focus:ring-indigo-900 border-gray-300 rounded">
<label for="remember" class="ml-2 block text-sm text-gray-700">Remember me</label>
</div>
<a href="#" class="text-sm text-indigo-900 font-medium">Forgot password?</a>
</div>
<button id="sign-in" class="w-full bg-indigo-900 text-white py-3 rounded-xl font-medium mt-4">Sign In</button>
<div class="text-center mt-6">
<p class="text-gray-600">Don't have an account? <a href="#" class="text-indigo-900 font-medium">Sign up</a></p>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Main App Screen -->
<div id="app-screen" class="hidden">
<!-- Header -->
<header class="bg-white shadow-sm">
<div class="container mx-auto px-4 py-4">
<div class="flex justify-between items-center">
<div class="flex items-center space-x-2">
<svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8 text-indigo-900" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" />
</svg>
<h1 class="text-xl font-bold text-indigo-900">SmartRise</h1>
</div>
<div class="flex items-center space-x-4">
<button id="open-settings">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6 text-gray-500" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z" />
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z" />
</svg>
</button>
<button id="open-profile">
<div class="w-8 h-8 rounded-full bg-indigo-100 flex items-center justify-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-indigo-900" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" />
</svg>
</div>
</button>
</div>
</div>
<div class="mt-4">
<div class="flex justify-between items-center">
<div>
<h2 class="text-lg font-semibold">Today, June 15</h2>
<div class="flex items-center mt-1">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-gray-500" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z" />
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 11a3 3 0 11-6 0 3 3 0 016 0z" />
</svg>
<span class="ml-1 text-gray-600">Sunny, 72°F</span>
</div>
</div>
<div class="text-right">
<div class="text-2xl font-bold" id="current-time">7:30 AM</div>
<div class="text-sm text-gray-500">Good morning</div>
</div>
</div>
</div>
</div>
</header>
<!-- Main Content -->
<main class="container mx-auto px-4 py-6">
<div class="flex justify-between items-center mb-6">
<h2 class="text-xl font-bold">My Alarms</h2>
<button id="add-alarm" class="bg-indigo-900 text-white p-2 rounded-full">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v16m8-8H4" />
</svg>
</button>
</div>
<!-- Alarm List -->
<div class="space-y-4" id="alarm-list">
<!-- Alarm Item 1 -->
<div class="bg-white rounded-xl shadow-sm p-4 alarm-active">
<div class="flex justify-between items-center">
<div class="flex items-center">
<div class="mr-4">
<label class="switch">
<input type="checkbox" checked>
<span class="slider"></span>
</label>
</div>
<div>
<div class="flex items-center">
<span class="text-2xl font-bold">07:00</span>
<span class="ml-1 text-gray-500">AM</span>
</div>
<div class="text-sm text-gray-500 mt-1">Weekdays • Smart wake enabled</div>
</div>
</div>
<button class="text-gray-400 hover:text-gray-600">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" viewBox="0 0 20 20" fill="currentColor">
<path d="M6 10a2 2 0 11-4 0 2 2 0 014 0zM12 10a2 2 0 11-4 0 2 2 0 014 0zM16 12a2 2 0 100-4 2 2 0 000 4z" />
</svg>
</button>
</div>
</div>
<!-- Alarm Item 2 -->
<div class="bg-white rounded-xl shadow-sm p-4">
<div class="flex justify-between items-center">
<div class="flex items-center">
<div class="mr-4">
<label class="switch">
<input type="checkbox">
<span class="slider"></span>
</label>
</div>
<div>
<div class="flex items-center">
<span class="text-2xl font-bold">08:30</span>
<span class="ml-1 text-gray-500">AM</span>
</div>
<div class="text-sm text-gray-500 mt-1">Weekends • Math challenge</div>
</div>
</div>
<button class="text-gray-400 hover:text-gray-600">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" viewBox="0 0 20 20" fill="currentColor">
<path d="M6 10a2 2 0 11-4 0 2 2 0 014 0zM12 10a2 2 0 11-4 0 2 2 0 014 0zM16 12a2 2 0 100-4 2 2 0 000 4z" />
</svg>
</button>
</div>
</div>
<!-- Alarm Item 3 -->
<div class="bg-white rounded-xl shadow-sm p-4">
<div class="flex justify-between items-center">
<div class="flex items-center">
<div class="mr-4">
<label class="switch">
<input type="checkbox" checked>
<span class="slider"></span>
</label>
</div>
<div>
<div class="flex items-center">
<span class="text-2xl font-bold">06:45</span>
<span class="ml-1 text-gray-500">AM</span>
</div>
<div class="text-sm text-gray-500 mt-1">Daily • Weather adjusted</div>
</div>
</div>
<button class="text-gray-400 hover:text-gray-600">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" viewBox="0 0 20 20" fill="currentColor">
<path d="M6 10a2 2 0 11-4 0 2 2 0 014 0zM12 10a2 2 0 11-4 0 2 2 0 014 0zM16 12a2 2 0 100-4 2 2 0 000 4z" />
</svg>
</button>
</div>
</div>
</div>
<!-- Sleep Dashboard -->
<div class="mt-10">
<div class="flex justify-between items-center mb-4">
<h2 class="text-xl font-bold">Sleep Dashboard</h2>
<button class="text-indigo-900 font-medium">View All</button>
</div>
<div class="bg-white rounded-xl shadow-sm p-6">
<div class="flex justify-between items-center mb-6">
<div>
<div class="text-sm text-gray-500">Last Night</div>
<div class="text-lg font-semibold">7h 32m</div>
</div>
<div class="text-right">
<div class="text-sm text-gray-500">Sleep Quality</div>
<div class="text-lg font-semibold text-indigo-900">82%</div>
</div>
</div>
<div class="h-40 bg-gray-100 rounded-lg flex items-end p-1">
<!-- Sleep stages chart -->
<div class="w-full flex h-full">
<div class="flex-1 bg-blue-200 rounded-t" style="height: 30%;"></div>
<div class="flex-1 bg-blue-400 rounded-t" style="height: 50%;"></div>
<div class="flex-1 bg-blue-600 rounded-t" style="height: 70%;"></div>
<div class="flex-1 bg-blue-400 rounded-t" style="height: 60%;"></div>
<div class="flex-1 bg-blue-200 rounded-t" style="height: 40%;"></div>
<div class="flex-1 bg-blue-600 rounded-t" style="height: 80%;"></div>
<div class="flex-1 bg-blue-400 rounded-t" style="height: 55%;"></div>
<div class="flex-1 bg-blue-200 rounded-t" style="height: 35%;"></div>
</div>
</div>
<div class="flex justify-between mt-4 text-xs text-gray-500">
<div>10 PM</div>
<div>12 AM</div>
<div>2 AM</div>
<div>4 AM</div>
<div>6 AM</div>
<div>8 AM</div>
</div>
<div class="flex justify-center space-x-6 mt-6">
<div class="text-center">
<div class="w-3 h-3 rounded-full bg-blue-200 mx-auto mb-1"></div>
<div class="text-xs">Light</div>
<div class="text-sm font-medium">3h 12m</div>
</div>
<div class="text-center">
<div class="w-3 h-3 rounded-full bg-blue-400 mx-auto mb-1"></div>
<div class="text-xs">Deep</div>
<div class="text-sm font-medium">2h 45m</div>
</div>
<div class="text-center">
<div class="w-3 h-3 rounded-full bg-blue-600 mx-auto mb-1"></div>
<div class="text-xs">REM</div>
<div class="text-sm font-medium">1h 35m</div>
</div>
</div>
</div>
</div>
</main>
<!-- Bottom Navigation -->
<nav class="fixed bottom-0 left-0 right-0 bg-white border-t border-gray-200">
<div class="flex justify-around">
<button class="p-4 text-indigo-900">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" />
</svg>
</button>
<button class="p-4 text-gray-500">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z" />
</svg>
</button>
<button class="p-4 text-gray-500">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" />
</svg>
</button>
<button class="p-4 text-gray-500">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" />
</svg>
</button>
</div>
</nav>
</div>
<!-- Add/Edit Alarm Modal -->
<div id="alarm-modal" class="hidden fixed inset-0 bg-black bg-opacity-50 z-50 flex items-center justify-center p-4">
<div class="bg-white rounded-2xl w-full max-w-md animate-slide-up">
<div class="p-6">
<div class="flex justify-between items-center mb-6">
<h2 class="text-xl font-bold">New Alarm</h2>
<button id="close-alarm-modal" class="text-gray-500">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
</svg>
</button>
</div>
<div class="text-center mb-8">
<div class="flex justify-center items-center">
<input type="number" min="1" max="12" value="7" class="time-picker text-5xl font-bold w-16 text-center border-none focus:ring-0">
<span class="text-5xl font-bold mx-2">:</span>
<input type="number" min="0" max="59" value="30" class="time-picker text-5xl font-bold w-16 text-center border-none focus:ring-0">
</div>
<div class="flex justify-center space-x-4 mt-2">
<button class="px-4 py-1 rounded-full bg-indigo-100 text-indigo-900 font-medium">AM</button>
<button class="px-4 py-1 rounded-full bg-gray-100 text-gray-500 font-medium">PM</button>
</div>
</div>
<div class="space-y-4">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Label</label>
<input type="text" placeholder="Alarm name" class="w-full px-4 py-3 border border-gray-300 rounded-xl focus:ring-2 focus:ring-indigo-900 focus:border-indigo-900">
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Repeat</label>
<div class="flex justify-between">
<button class="day-selector w-10 h-10 rounded-full font-medium" data-day="S">S</button>
<button class="day-selector w-10 h-10 rounded-full font-medium" data-day="M">M</button>
<button class="day-selector w-10 h-10 rounded-full font-medium active" data-day="T">T</button>
<button class="day-selector w-10 h-10 rounded-full font-medium active" data-day="W">W</button>
<button class="day-selector w-10 h-10 rounded-full font-medium active" data-day="T">T</button>
<button class="day-selector w-10 h-10 rounded-full font-medium" data-day="F">F</button>
<button class="day-selector w-10 h-10 rounded-full font-medium" data-day="S">S</button>
</div>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Sound</label>
<div class="flex items-center justify-between bg-gray-100 px-4 py-3 rounded-xl">
<div class="flex items-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-indigo-900" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.536 8.464a5 5 0 010 7.072m2.828-9.9a9 9 0 010 12.728M5.586 15.536a5 5 0 001.414 1.414m2.828-9.9a9 9 0 011.414 1.414" />
</svg>
<span class="ml-2 font-medium">Morning Chime</span>
</div>
<button class="text-indigo-900">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" />
</svg>
</button>
</div>
</div>
<div class="pt-4">
<h3 class="font-medium mb-2">Advanced Features</h3>
<div class="space-y-3">
<div class="flex justify-between items-center">
<div class="flex items-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-indigo-900 mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z" />
</svg>
<span>Smart Wake</span>
</div>
<label class="switch">
<input type="checkbox" checked>
<span class="slider"></span>
</label>
</div>
<div class="flex justify-between items-center">
<div class="flex items-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-indigo-900 mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z" />
</svg>
<span>Weather Adjust</span>
</div>
<label class="switch">
<input type="checkbox" checked>
<span class="slider"></span>
</label>
</div>
<div class="flex justify-between items-center">
<div class="flex items-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-indigo-900 mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1" />
</svg>
<span>Wake-Up Challenge</span>
</div>
<label class="switch">
<input type="checkbox">
<span class="slider"></span>
</label>
</div>
</div>
</div>
</div>
<div class="mt-8">
<button class="w-full bg-indigo-900 text-white py-3 rounded-xl font-medium">Save Alarm</button>
</div>
</div>
</div>
</div>
<!-- Alarm Trigger Screen -->
<div id="alarm-trigger" class="hidden fixed inset-0 bg-indigo-900 z-50 flex flex-col items-center justify-center p-6 text-white">
<div class="text-center mb-8">
<div class="text-6xl font-bold mb-2" id="alarm-time">07:00</div>
<div class="text-xl">Time to wake up!</div>
</div>
<div class="w-full max-w-sm bg-white bg-opacity-20 rounded-2xl p-6 mb-8">
<h3 class="text-lg font-medium mb-4">Math Challenge</h3>
<div class="text-3xl font-bold mb-6" id="math-problem">3 × 7 = ?</div>
<div class="grid grid-cols-3 gap-3">
<button class="bg-white bg-opacity-30 hover:bg-opacity-40 py-3 rounded-lg font-medium">15</button>
<button class="bg-white bg-opacity-30 hover:bg-opacity-40 py-3 rounded-lg font-medium">21</button>
<button class="bg-white bg-opacity-30 hover:bg-opacity-40 py-3 rounded-lg font-medium">18</button>
<button class="bg-white bg-opacity-30 hover:bg-opacity-40 py-3 rounded-lg font-medium">24</button>
<button class="bg-white bg-opacity-30 hover:bg-opacity-40 py-3 rounded-lg font-medium">12</button>
<button class="bg-white bg-opacity-30 hover:bg-opacity-40 py-3 rounded-lg font-medium">9</button>
</div>
</div>
<div class="flex space-x-6">
<button id="snooze" class="bg-white bg-opacity-20 hover:bg-opacity-30 px-8 py-3 rounded-full font-medium flex items-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" />
</svg>
Snooze (5 min)
</button>
<button id="dismiss" class="bg-white text-indigo-900 hover:bg-gray-100 px-8 py-3 rounded-full font-medium">
Dismiss
</button>
</div>
</div>
<!-- Settings Screen -->
<div id="settings-screen" class="hidden fixed inset-0 bg-white z-40 overflow-y-auto">
<div class="container mx-auto px-4 py-6">
<div class="flex items-center mb-6">
<button id="close-settings" class="mr-4">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7" />
</svg>
</button>
<h1 class="text-2xl font-bold">Settings</h1>
</div>
<div class="space-y-6">
<div>
<h2 class="text-lg font-semibold mb-4">Account</h2>
<div class="bg-white rounded-xl shadow-sm p-4">
<div class="flex items-center space-x-4 mb-4">
<div class="w-12 h-12 rounded-full bg-indigo-100 flex items-center justify-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6 text-indigo-900" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" />
</svg>
</div>
<div>
<div class="font-medium">John Doe</div>
<div class="text-sm text-gray-500">john.doe@example.com</div>
</div>
</div>
<button class="w-full border border-gray-300 py-2 rounded-lg font-medium">Edit Profile</button>
</div>
</div>
<div>
<h2 class="text-lg font-semibold mb-4">Preferences</h2>
<div class="bg-white rounded-xl shadow-sm p-4 space-y-4">
<div class="flex justify-between items-center">
<div>Time Zone</div>
<div class="flex items-center">
<span class="text-gray-500 mr-2">GMT+2</span>
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" />
</svg>
</div>
</div>
<div class="flex justify-between items-center">
<div>Temperature Unit</div>
<div class="flex items-center">
<span class="text-gray-500 mr-2">°C</span>
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" />
</svg>
</div>
</div>
<div class="flex justify-between items-center">
<div>Default Alarm Sound</div>
<div class="flex items-center">
<span class="text-gray-500 mr-2">Morning Chime</span>
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" />
</svg>
</div>
</div>
</div>
</div>
<div>
<h2 class="text-lg font-semibold mb-4">Integrations</h2>
<div class="bg-white rounded-xl shadow-sm p-4 space-y-4">
<div class="flex justify-between items-center">
<div class="flex items-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-green-500 mr-2" viewBox="0 0 24 24" fill="#1DB954">
<path d="M12 0C5.4 0 0 5.4 0 12s5.4 12 12 12 12-5.4 12-12S18.66 0 12 0zm5.521 17.34c-.24.359-.66.48-1.021.24-2.82-1.74-6.36-2.101-10.561-1.141-.418.122-.779-.179-.899-.539-.12-.421.18-.78.54-.9 4.56-1.021 8.52-.6 11.64 1.32.42.18.479.659.301 1.02zm1.44-3.3c-.301.42-.841.6-1.262.3-3.239-1.98-8.159-2.58-11.939-1.38-.479.12-1.02-.12-1.14-.6-.12-.48.12-1.021.6-1.141C9.6 9.9 15 10.561 18.72 12.84c.361.181.54.78.241 1.2zm.12-3.36C15.24 8.4 8.82 8.16 5.16 9.301c-.6.179-1.2-.181-1.38-.721-.18-.601.18-1.2.72-1.381 4.26-1.26 11.28-1.02 15.721 1.621.539.3.719 1.02.419 1.56-.299.421-1.02.599-1.559.3z"/>
</svg>
<span>Spotify</span>
</div>
<label class="switch">
<input type="checkbox">
<span class="slider"></span>
</label>
</div>
<div class="flex justify-between items-center">
<div class="flex items-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-gray-800 mr-2" viewBox="0 0 24 24" fill="#000000">
<path d="M17.5 12c0 .32-.03.63-.08.93.03.01.06.03.08.05 1.51.56 2.56 1.89 2.56 3.46 0 2.03-1.95 3.56-4.63 3.56-1.6 0-2.8-.59-3.47-1.38-.67.79-1.87 1.38-3.47 1.38C5.95 21 4 19.47 4 17.44c0-1.58 1.06-2.9 2.58-3.45.02-.03.05-.04.08-.05-.05-.3-.08-.61-.08-.93 0-1.23.44-2.35 1.15-3.23-.12-.3-.19-.62-.19-.96 0-.83.34-1.58.88-2.12.54-.54 1.29-.88 2.12-.88.34 0 .66.07.96.19.88-.71 2-1.15 3.23-1.15 2.5 0 4.5 1.71 4.5 4 0 .34-.07.66-.19.96.71.88 1.15 2 1.15 3.23z"/>
</svg>
<span>Apple Health</span>
</div>
<label class="switch">
<input type="checkbox" checked>
<span class="slider"></span>
</label>
</div>
<div class="flex justify-between items-center">
<div class="flex items-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-blue-500 mr-2" viewBox="0 0 24 24" fill="#4285F4">
<path d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z" fill="#4285F4"/>
<path d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z" fill="#34A853"/>
<path d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z" fill="#FBBC05"/>
<path d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z" fill="#EA4335"/>
<path d="M1 1h22v22H1z" fill="none"/>
</svg>
<span>Google Fit</span>
</div>
<label class="switch">
<input type="checkbox">
<span class="slider"></span>
</label>
</div>
</div>
</div>
<div>
<h2 class="text-lg font-semibold mb-4">About</h2>
<div class="bg-white rounded-xl shadow-sm p-4 space-y-3">
<div class="flex justify-between items-center">
<div>Version</div>
<div class="text-gray-500">1.2.4</div>
</div>
<div class="flex justify-between items-center">
<div>Terms of Service</div>
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" />
</svg>
</div>
<div class="flex justify-between items-center">
<div>Privacy Policy</div>
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" />
</svg>
</div>
</div>
</div>
<div class="pt-4">
<button class="w-full border border-gray-300 py-3 rounded-xl font-medium">Sign Out</button>
</div>
</div>
</div>
</div>
<script>
// Simulate app flow
document.addEventListener('DOMContentLoaded', function() {
// Hide splash screen after 2 seconds
setTimeout(function() {
document.getElementById('splash').classList.add('hidden');
document.getElementById('onboarding').classList.remove('hidden');
}, 2000);
// Onboarding navigation
let currentSlide = 0;
const slides = document.querySelectorAll('.carousel-item');
const dots = document.querySelectorAll('.carousel .flex div');
document.getElementById('next-slide').addEventListener('click', function() {
if (currentSlide < slides.length - 1) {
slides[currentSlide].classList.remove('animate-slide-up');
currentSlide++;
slides[currentSlide].classList.add('animate-slide-up');
// Update dots
dots.forEach((dot, index) => {
if (index === currentSlide) {
dot.classList.remove('bg-gray-300');
dot.classList.add('bg-indigo-900');
} else {
dot.classList.remove('bg-indigo-900');
dot.classList.add('bg-gray-300');
}
});
} else {
// End of onboarding
document.getElementById('onboarding').classList.add('hidden');
document.getElementById('auth-screen').classList.remove('hidden');
}
});
document.getElementById('skip-onboarding').addEventListener('click', function() {
document.getElementById('onboarding').classList.add('hidden');
document.getElementById('auth-screen').classList.remove('hidden');
});
// Sign in button
document.getElementById('sign-in').addEventListener('click', function() {
document.getElementById('auth-screen').classList.add('hidden');
document.getElementById('app-screen').classList.remove('hidden');
// Update current time
updateCurrentTime();
setInterval(updateCurrentTime, 1000);
});
// Alarm modal
document.getElementById('add-alarm').addEventListener('click', function() {
document.getElementById('alarm-modal').classList.remove('hidden');
});
document.getElementById('close-alarm-modal').addEventListener('click', function() {
document.getElementById('alarm-modal').classList.add('hidden');
});
// Day selector in alarm modal
document.querySelectorAll('.day-selector').forEach(button => {
button.addEventListener('click', function() {
this.classList.toggle('active');
});
});
// Settings
document.getElementById('open-settings').addEventListener('click', function() {
document.getElementById('settings-screen').classList.remove('hidden');
});
document.getElementById('close-settings').addEventListener('click', function() {
document.getElementById('settings-screen').classList.add('hidden');
});
// Alarm trigger (demo)
setTimeout(function() {
// Uncomment to show alarm trigger after 5 seconds
// document.getElementById('alarm-trigger').classList.remove('hidden');
}, 5000);
document.getElementById('dismiss').addEventListener('click', function() {
document.getElementById('alarm-trigger').classList.add('hidden');
});
document.getElementById('snooze').addEventListener('click', function() {
document.getElementById('alarm-trigger').classList.add('hidden');
// Show notification
alert('Alarm snoozed for 5 minutes');
});
// Math challenge buttons
document.querySelectorAll('#alarm-trigger .grid button').forEach(button => {
button.addEventListener('click', function() {
if (this.textContent === '21') {
document.getElementById('alarm-trigger').classList.add('hidden');
alert('Challenge completed! Alarm dismissed.');
} else {
this.classList.remove('bg-opacity-30');
this.classList.add('bg-red-500', 'bg-opacity-100');
setTimeout(() => {
this.classList.remove('bg-red-500', 'bg-opacity-100');
this.classList.add('bg-opacity-30');
}, 500);
}
});
});
// Update current time
function updateCurrentTime() {
const now = new Date();
let hours = now.getHours();
let minutes = now.getMinutes();
const ampm = hours >= 12 ? 'PM' : 'AM';
hours = hours % 12;
hours = hours ? hours : 12; // the hour '0' should be '12'
minutes = minutes < 10 ? '0' + minutes : minutes;
const timeString = hours + ':' + minutes + ' ' + ampm;
document.getElementById('current-time').textContent = timeString;
}
// Button press animation
document.querySelectorAll('button').forEach(button => {
button.addEventListener('mousedown', function() {
this.classList.add('transform', 'scale-95');
});
button.addEventListener('mouseup', function() {
this.classList.remove('transform', 'scale-95');
});
button.addEventListener('mouseleave', function() {
this.classList.remove('transform', '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=222kdfdf/smartrise" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>