intial commit
This commit is contained in:
commit
e73815c79b
1 changed files with 133 additions and 0 deletions
133
index.html
Normal file
133
index.html
Normal file
|
|
@ -0,0 +1,133 @@
|
|||
<html>
|
||||
|
||||
<head>
|
||||
<title>a simple pomodoro huhu ba-ka!</title>
|
||||
<style>
|
||||
body {
|
||||
background-color: #222222;
|
||||
color: #ffffff;
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
button {
|
||||
font-family: monospace;
|
||||
font-size: 24px;
|
||||
border-radius: none;
|
||||
border: none;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
.box-pomodoro {
|
||||
width: 320px;
|
||||
padding: 10px;
|
||||
margin: auto;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
position: absolute;
|
||||
transform: translate(-50%, -50%);
|
||||
text-align: center;
|
||||
background-color: #555555;
|
||||
}
|
||||
|
||||
#type {
|
||||
font-size: 36pt;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#timer {
|
||||
margin-top: 15px;
|
||||
font-size: 48pt;
|
||||
}
|
||||
</style>
|
||||
<script async="" defer="" src="https://xa.ba-ka.org/tracker.js" data-website-id="cm9iohk0l025fmqg5xf2gxhy4">
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="box-pomodoro">
|
||||
<h3>pomodoro</h3>
|
||||
<h2 id="type">focus</h2>
|
||||
<h1 id="timer">25:00</h1>
|
||||
<button id="startpause" onclick="startpause()">pause</button>
|
||||
<button id="reset" onclick="reset()">reset</button>
|
||||
<div style="margin-bottom: 20px;"></div>
|
||||
</div>
|
||||
<script>
|
||||
let isRunning = false;
|
||||
let buttonStartPause = document.getElementById("startpause");
|
||||
let buttonReset = document.getElementById("reset");
|
||||
let textTimer = document.getElementById("timer");
|
||||
let textType = document.getElementById("type");
|
||||
let breakAudio = new Audio("break.mp3");
|
||||
let focusAudio = new Audio("focus.mp3");
|
||||
let breakTime = 5 * 60;
|
||||
let focusTime = 25 * 60;
|
||||
let timer = focusTime;
|
||||
let timerInterval = null;
|
||||
let isFocusSession = true;
|
||||
|
||||
function updateDisplayTimer()
|
||||
{
|
||||
const minutes = Math.floor(timer / 60);
|
||||
const seconds = timer % 60;
|
||||
textTimer.textContent = `${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;
|
||||
textType.textContent = isFocusSession ? "focus" : "break";
|
||||
}
|
||||
|
||||
updateDisplayTimer();
|
||||
|
||||
function startpause()
|
||||
{
|
||||
if (!isRunning)
|
||||
{
|
||||
isRunning = true;
|
||||
buttonStartPause.innerHTML = "pause";
|
||||
console.log("start pomodoro");
|
||||
timerInterval = setInterval(() => {
|
||||
timer--;
|
||||
updateDisplayTimer();
|
||||
if (timer <= 0)
|
||||
{
|
||||
isFocusSession = !isFocusSession;
|
||||
timer = isFocusSession ? focusTime : breakTime;
|
||||
if (isFocusSession)
|
||||
{
|
||||
focusAudio.play();
|
||||
}
|
||||
else
|
||||
{
|
||||
breakAudio.play();
|
||||
}
|
||||
if (Notification?.permission === "granted")
|
||||
{
|
||||
// todo: add request notif permission system, currently we enable manually..
|
||||
new Notification(isFocusSession ? "back to focus!" : "it's break time :D!");
|
||||
}
|
||||
}
|
||||
}, 1000);
|
||||
}
|
||||
else
|
||||
{
|
||||
clearInterval(timerInterval);
|
||||
isRunning = false;
|
||||
buttonStartPause.innerHTML = "start";
|
||||
console.log("pause pomodoro");
|
||||
}
|
||||
}
|
||||
|
||||
function reset()
|
||||
{
|
||||
clearInterval(timerInterval);
|
||||
isRunning = false;
|
||||
isFocusSession = true;
|
||||
textType.textContent = "focus";
|
||||
timer = focusTime;
|
||||
updateDisplayTimer();
|
||||
console.log("reset pomodoro");
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue