- Murattal: Spotify-style 5-button controls [Shuffle, Prev, Play, Next, Playlist] - Murattal: Animated 7-bar equalizer visualization in player circle - Murattal: Unsplash API background with frosted glass player overlay - Murattal: Transparent AppBar with backdrop blur - Murattal: Surah playlist bottom sheet with full 114 Surah list - Murattal: Auto-play disabled on screen open, enabled on navigation - Murattal: Shuffle mode for random Surah playback - Murattal: Photographer attribution per Unsplash guidelines - Dashboard: Auto-scroll prayer schedule to next active prayer - Fix: setState lifecycle errors on Reading & Murattal screens - Setup: flutter_dotenv, cached_network_image, url_launcher deps
191 lines
12 KiB
HTML
191 lines
12 KiB
HTML
<!DOCTYPE html>
|
|
|
|
<html class="light" lang="en"><head>
|
|
<meta charset="utf-8"/>
|
|
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
|
|
<title>Prayer Calendar - Imsakiyah</title>
|
|
<script type="text/javascript" nonce="8f27cbf2996843058862961733f" src="//local.adguard.org?ts=1772749416438&type=content-script&dmn=contribution.usercontent.google.com&url=https%3A%2F%2Fcontribution.usercontent.google.com%2Fdownload%3Fc%3DCgthaWRhX2NvZGVmeBJ8Eh1hcHBfY29tcGFuaW9uX2dlbmVyYXRlZF9maWxlcxpbCiVodG1sXzI3MjRmMmZkODllMDQ0MzA4YjhlNjZlNjA3NTIyNjdlEgsSBxDjguyrxhUYAZIBJAoKcHJvamVjdF9pZBIWQhQxNzc5MjQ5MDUzODQ5MjE2NTk2MQ%26filename%3D%26opi%3D89354086&app=com.google.Chrome&css=3&js=1&rel=1&rji=1&sbe=1"></script><script type="text/javascript" nonce="8f27cbf2996843058862961733f" src="//local.adguard.org?ts=1772749416438&name=AdGuard%20Extra&type=user-script"></script><script src="https://cdn.tailwindcss.com?plugins=forms,container-queries"></script>
|
|
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap" rel="stylesheet"/>
|
|
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght@100..700,0..1&display=swap" rel="stylesheet"/>
|
|
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap" rel="stylesheet"/>
|
|
<script id="tailwind-config">
|
|
tailwind.config = {
|
|
darkMode: "class",
|
|
theme: {
|
|
extend: {
|
|
colors: {
|
|
"primary": "#70df20",
|
|
"background-light": "#f7f8f6",
|
|
"background-dark": "#182111",
|
|
},
|
|
fontFamily: {
|
|
"display": ["Plus Jakarta Sans"]
|
|
},
|
|
borderRadius: {"DEFAULT": "0.5rem", "lg": "1rem", "xl": "1.5rem", "full": "9999px"},
|
|
},
|
|
},
|
|
}
|
|
</script>
|
|
<style>
|
|
body { font-family: 'Plus Jakarta Sans', sans-serif; }
|
|
.no-scrollbar::-webkit-scrollbar { display: none; }
|
|
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
|
|
</style>
|
|
<style>
|
|
body {
|
|
min-height: max(884px, 100dvh);
|
|
}
|
|
</style>
|
|
</head>
|
|
<body class="bg-background-light dark:bg-background-dark text-slate-900 dark:text-slate-100">
|
|
<div class="relative flex min-h-screen w-full flex-col max-w-md mx-auto bg-white dark:bg-background-dark shadow-xl">
|
|
<!-- Top Navigation Bar -->
|
|
<div class="flex items-center bg-white dark:bg-background-dark p-4 pb-2 justify-between sticky top-0 z-20 border-b border-slate-100 dark:border-slate-800">
|
|
<div class="text-slate-900 dark:text-slate-100 flex size-10 shrink-0 items-center justify-center rounded-full hover:bg-slate-100 dark:hover:bg-slate-800 cursor-pointer">
|
|
<span class="material-symbols-outlined">arrow_back</span>
|
|
</div>
|
|
<h2 class="text-slate-900 dark:text-slate-100 text-lg font-bold leading-tight tracking-tight flex-1 text-center">Prayer Calendar</h2>
|
|
<div class="flex w-10 items-center justify-end">
|
|
<button class="flex items-center justify-center rounded-full size-10 bg-transparent text-slate-900 dark:text-slate-100 hover:bg-slate-100 dark:hover:bg-slate-800">
|
|
<span class="material-symbols-outlined">more_vert</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<!-- Month and Location Selectors -->
|
|
<div class="p-4 space-y-4">
|
|
<div class="flex gap-3 overflow-x-auto no-scrollbar py-2">
|
|
<button class="px-5 py-2 rounded-full bg-primary text-slate-900 font-semibold text-sm whitespace-nowrap">Ramadan 1445H</button>
|
|
<button class="px-5 py-2 rounded-full bg-slate-100 dark:bg-slate-800 text-slate-600 dark:text-slate-400 font-medium text-sm whitespace-nowrap">Shawwal 1445H</button>
|
|
<button class="px-5 py-2 rounded-full bg-slate-100 dark:bg-slate-800 text-slate-600 dark:text-slate-400 font-medium text-sm whitespace-nowrap">Dhul-Qi'dah</button>
|
|
</div>
|
|
<div class="flex items-center gap-3 bg-slate-50 dark:bg-slate-900 p-4 rounded-xl border border-slate-100 dark:border-slate-800">
|
|
<span class="material-symbols-outlined text-primary">location_on</span>
|
|
<div class="flex-1">
|
|
<p class="text-xs text-slate-500 dark:text-slate-400 font-medium">Your Location</p>
|
|
<p class="text-sm font-bold text-slate-900 dark:text-slate-100">Jakarta, Indonesia</p>
|
|
</div>
|
|
<span class="material-symbols-outlined text-slate-400 text-sm">expand_more</span>
|
|
</div>
|
|
</div>
|
|
<!-- Calendar Header -->
|
|
<div class="px-4 py-2 bg-primary/10 dark:bg-primary/5">
|
|
<div class="grid grid-cols-7 text-center text-[10px] font-bold uppercase tracking-wider text-slate-500 dark:text-slate-400">
|
|
<span>Day</span>
|
|
<span>Fajr</span>
|
|
<span>Sun</span>
|
|
<span>Dhuhr</span>
|
|
<span>Asr</span>
|
|
<span>Magh</span>
|
|
<span>Isha</span>
|
|
</div>
|
|
</div>
|
|
<!-- Prayer Times List -->
|
|
<div class="flex-1 overflow-y-auto px-4 py-2 space-y-2 no-scrollbar">
|
|
<!-- Day Item (Highlight Today) -->
|
|
<div class="grid grid-cols-7 items-center text-center p-3 rounded-xl bg-primary shadow-sm shadow-primary/20 ring-1 ring-primary">
|
|
<div class="flex flex-col items-center">
|
|
<span class="text-[10px] font-bold text-slate-800">MAR</span>
|
|
<span class="text-base font-extrabold text-slate-900 leading-tight">12</span>
|
|
</div>
|
|
<span class="text-xs font-bold text-slate-900">04:42</span>
|
|
<span class="text-xs font-medium text-slate-800">05:58</span>
|
|
<span class="text-xs font-bold text-slate-900">12:04</span>
|
|
<span class="text-xs font-medium text-slate-800">15:12</span>
|
|
<span class="text-xs font-bold text-slate-900">18:08</span>
|
|
<span class="text-xs font-medium text-slate-800">19:17</span>
|
|
</div>
|
|
<!-- Regular Day Item -->
|
|
<div class="grid grid-cols-7 items-center text-center p-3 rounded-xl bg-white dark:bg-slate-900/50 border border-slate-100 dark:border-slate-800 hover:border-primary/50 transition-colors">
|
|
<div class="flex flex-col items-center">
|
|
<span class="text-[10px] font-bold text-slate-400">MAR</span>
|
|
<span class="text-base font-bold text-slate-900 dark:text-slate-100 leading-tight">13</span>
|
|
</div>
|
|
<span class="text-xs font-medium text-slate-700 dark:text-slate-300">04:42</span>
|
|
<span class="text-xs font-medium text-slate-500 dark:text-slate-500">05:58</span>
|
|
<span class="text-xs font-medium text-slate-700 dark:text-slate-300">12:04</span>
|
|
<span class="text-xs font-medium text-slate-500 dark:text-slate-500">15:11</span>
|
|
<span class="text-xs font-medium text-slate-700 dark:text-slate-300">18:07</span>
|
|
<span class="text-xs font-medium text-slate-500 dark:text-slate-500">19:16</span>
|
|
</div>
|
|
<div class="grid grid-cols-7 items-center text-center p-3 rounded-xl bg-white dark:bg-slate-900/50 border border-slate-100 dark:border-slate-800">
|
|
<div class="flex flex-col items-center">
|
|
<span class="text-[10px] font-bold text-slate-400">MAR</span>
|
|
<span class="text-base font-bold text-slate-900 dark:text-slate-100 leading-tight">14</span>
|
|
</div>
|
|
<span class="text-xs font-medium text-slate-700 dark:text-slate-300">04:41</span>
|
|
<span class="text-xs font-medium text-slate-500 dark:text-slate-500">05:58</span>
|
|
<span class="text-xs font-medium text-slate-700 dark:text-slate-300">12:03</span>
|
|
<span class="text-xs font-medium text-slate-500 dark:text-slate-500">15:11</span>
|
|
<span class="text-xs font-medium text-slate-700 dark:text-slate-300">18:07</span>
|
|
<span class="text-xs font-medium text-slate-500 dark:text-slate-500">19:16</span>
|
|
</div>
|
|
<div class="grid grid-cols-7 items-center text-center p-3 rounded-xl bg-white dark:bg-slate-900/50 border border-slate-100 dark:border-slate-800">
|
|
<div class="flex flex-col items-center">
|
|
<span class="text-[10px] font-bold text-slate-400">MAR</span>
|
|
<span class="text-base font-bold text-slate-900 dark:text-slate-100 leading-tight">15</span>
|
|
</div>
|
|
<span class="text-xs font-medium text-slate-700 dark:text-slate-300">04:41</span>
|
|
<span class="text-xs font-medium text-slate-500 dark:text-slate-500">05:58</span>
|
|
<span class="text-xs font-medium text-slate-700 dark:text-slate-300">12:03</span>
|
|
<span class="text-xs font-medium text-slate-500 dark:text-slate-500">15:10</span>
|
|
<span class="text-xs font-medium text-slate-700 dark:text-slate-300">18:06</span>
|
|
<span class="text-xs font-medium text-slate-500 dark:text-slate-500">19:15</span>
|
|
</div>
|
|
<div class="grid grid-cols-7 items-center text-center p-3 rounded-xl bg-white dark:bg-slate-900/50 border border-slate-100 dark:border-slate-800">
|
|
<div class="flex flex-col items-center">
|
|
<span class="text-[10px] font-bold text-slate-400">MAR</span>
|
|
<span class="text-base font-bold text-slate-900 dark:text-slate-100 leading-tight">16</span>
|
|
</div>
|
|
<span class="text-xs font-medium text-slate-700 dark:text-slate-300">04:41</span>
|
|
<span class="text-xs font-medium text-slate-500 dark:text-slate-500">05:58</span>
|
|
<span class="text-xs font-medium text-slate-700 dark:text-slate-300">12:03</span>
|
|
<span class="text-xs font-medium text-slate-500 dark:text-slate-500">15:09</span>
|
|
<span class="text-xs font-medium text-slate-700 dark:text-slate-300">18:06</span>
|
|
<span class="text-xs font-medium text-slate-500 dark:text-slate-500">19:15</span>
|
|
</div>
|
|
<div class="grid grid-cols-7 items-center text-center p-3 rounded-xl bg-white dark:bg-slate-900/50 border border-slate-100 dark:border-slate-800">
|
|
<div class="flex flex-col items-center">
|
|
<span class="text-[10px] font-bold text-slate-400">MAR</span>
|
|
<span class="text-base font-bold text-slate-900 dark:text-slate-100 leading-tight">17</span>
|
|
</div>
|
|
<span class="text-xs font-medium text-slate-700 dark:text-slate-300">04:41</span>
|
|
<span class="text-xs font-medium text-slate-500 dark:text-slate-500">05:57</span>
|
|
<span class="text-xs font-medium text-slate-700 dark:text-slate-300">12:02</span>
|
|
<span class="text-xs font-medium text-slate-500 dark:text-slate-500">15:08</span>
|
|
<span class="text-xs font-medium text-slate-700 dark:text-slate-300">18:05</span>
|
|
<span class="text-xs font-medium text-slate-500 dark:text-slate-500">19:14</span>
|
|
</div>
|
|
<div class="grid grid-cols-7 items-center text-center p-3 rounded-xl bg-white dark:bg-slate-900/50 border border-slate-100 dark:border-slate-800">
|
|
<div class="flex flex-col items-center">
|
|
<span class="text-[10px] font-bold text-slate-400">MAR</span>
|
|
<span class="text-base font-bold text-slate-900 dark:text-slate-100 leading-tight">18</span>
|
|
</div>
|
|
<span class="text-xs font-medium text-slate-700 dark:text-slate-300">04:41</span>
|
|
<span class="text-xs font-medium text-slate-500 dark:text-slate-500">05:57</span>
|
|
<span class="text-xs font-medium text-slate-700 dark:text-slate-300">12:02</span>
|
|
<span class="text-xs font-medium text-slate-500 dark:text-slate-500">15:08</span>
|
|
<span class="text-xs font-medium text-slate-700 dark:text-slate-300">18:05</span>
|
|
<span class="text-xs font-medium text-slate-500 dark:text-slate-500">19:14</span>
|
|
</div>
|
|
</div>
|
|
<!-- Bottom Navigation Bar -->
|
|
<div class="flex gap-2 border-t border-slate-100 dark:border-slate-800 bg-white dark:bg-background-dark px-4 pb-6 pt-2 sticky bottom-0">
|
|
<a class="flex flex-1 flex-col items-center justify-center gap-1 text-slate-400 dark:text-slate-500" href="#">
|
|
<span class="material-symbols-outlined text-2xl">home</span>
|
|
<p class="text-[10px] font-medium leading-normal tracking-wide">Home</p>
|
|
</a>
|
|
<a class="flex flex-1 flex-col items-center justify-center gap-1 text-primary" href="#">
|
|
<span class="material-symbols-outlined text-2xl" style="font-variation-settings: 'FILL' 1">calendar_today</span>
|
|
<p class="text-[10px] font-bold leading-normal tracking-wide">Calendar</p>
|
|
</a>
|
|
<a class="flex flex-1 flex-col items-center justify-center gap-1 text-slate-400 dark:text-slate-500" href="#">
|
|
<span class="material-symbols-outlined text-2xl">explore</span>
|
|
<p class="text-[10px] font-medium leading-normal tracking-wide">Qibla</p>
|
|
</a>
|
|
<a class="flex flex-1 flex-col items-center justify-center gap-1 text-slate-400 dark:text-slate-500" href="#">
|
|
<span class="material-symbols-outlined text-2xl">person</span>
|
|
<p class="text-[10px] font-medium leading-normal tracking-wide">Profile</p>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</body></html> |