Files
clock-site/calendar.html
T
Seth a6b3f039d8 Initial commit — Seth Calendar & Decimal Time clock site
Pages: /, /simple, /decimal, /seth, /calendar, /astro, /convert, /timegov
Features: Seth Calendar (10×36 + holidays), decimal time, moon phases,
astronomy (sun/moon), bidirectional time converter, Seth date display,
leap day split cell in calendar grid.
2026-03-08 22:32:38 +00:00

291 lines
7.8 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>SethPC Calendar</title>
<link rel="icon" type="image/png" href="https://storage.googleapis.com/sethfreiberg.com/sethflix/favicon.png">
<link rel="stylesheet" href="/style.css">
<style>
.cal-wrap {
width: min(860px, 100%);
background: var(--panel);
border: 1px solid var(--border);
border-radius: 12px;
padding: clamp(1rem, 2.5vw, 2rem);
box-shadow: 0 10px 28px rgb(0 0 0 / 42%);
}
/* Nav row */
.cal-nav {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 1.2rem;
gap: 0.5rem;
}
.cal-nav h2 {
margin: 0;
font-size: clamp(1rem, 2.5vw, 1.4rem);
text-align: center;
flex: 1;
}
.cal-nav .sub {
font-size: 0.78rem;
color: var(--muted);
font-weight: 400;
display: block;
}
.nav-btn {
background: #2a2a2a;
border: 1px solid var(--border);
border-radius: 8px;
color: var(--text);
padding: 0.4rem 0.8rem;
cursor: pointer;
font-size: 1rem;
line-height: 1;
transition: border-color 0.15s;
}
.nav-btn:hover { border-color: var(--accent); color: var(--accent); }
/* Month tabs */
.month-tabs {
display: flex;
flex-wrap: wrap;
gap: 0.3rem;
margin-bottom: 1rem;
}
.month-tab {
background: #2a2a2a;
border: 1px solid var(--border);
border-radius: 6px;
color: var(--muted);
padding: 0.25rem 0.6rem;
cursor: pointer;
font-size: 0.82rem;
transition: all 0.15s;
}
.month-tab:hover { border-color: var(--accent); color: var(--accent); }
.month-tab.active {
background: var(--accent);
border-color: var(--accent);
color: #fff;
}
.month-tab.holiday-tab {
font-style: italic;
}
/* Grid */
.cal-grid {
display: grid;
grid-template-columns: repeat(6, 1fr);
gap: 4px;
margin-bottom: 1rem;
}
.cal-grid.holiday-grid {
grid-template-columns: repeat(3, 1fr);
}
.col-header {
text-align: center;
font-size: 0.72rem;
color: var(--accent);
font-weight: 600;
letter-spacing: 0.05em;
padding: 0.2rem 0;
text-transform: uppercase;
}
.cal-cell {
background: #2a2a2a;
border: 1px solid var(--border);
border-radius: 6px;
padding: 0.35rem 0.4rem;
min-height: 56px;
cursor: default;
transition: border-color 0.15s;
position: relative;
}
.cal-cell:hover { border-color: #555; }
.cal-cell.today {
border-color: var(--accent);
background: #2e1f15;
}
.cal-cell.holiday-cell {
grid-column: span 1;
background: #1e1e2e;
border-color: #444;
text-align: center;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-height: 70px;
}
.seth-day {
font-size: 1.1rem;
font-weight: 700;
color: var(--text);
line-height: 1;
}
.greg-date {
font-size: 0.7rem;
color: var(--muted);
margin-top: 0.25rem;
line-height: 1.2;
}
.holiday-name {
font-size: 0.75rem;
color: var(--muted);
margin-top: 0.2rem;
}
.moon-link {
position: absolute;
top: 3px;
right: 4px;
opacity: 0.5;
text-decoration: none;
transition: opacity 0.15s;
display: block;
line-height: 0;
}
.moon-link:hover { opacity: 1; }
.moon-link canvas { display: block; border-radius: 50%; }
.cal-cell.seth-weekend {
border-color: #1a2a4a;
background: #1c2130;
}
.cal-cell.greg-weekend {
border-color: #1a3a35;
background: #1c2a28;
}
.cal-cell.seth-weekend.greg-weekend {
border-color: #2a3a4a;
background: #1c2530;
}
.cal-cell.today.seth-weekend,
.cal-cell.today.greg-weekend {
border-color: var(--accent);
background: #2e1f15;
}
.cal-cell.has-holiday {
border-color: #5a4a2a;
}
/* The outer wrapper for the split cell: transparent, no own border/bg */
.cal-cell.has-leap-split {
padding: 0;
gap: 4px;
display: flex;
flex-direction: column;
background: transparent;
border-color: transparent;
box-shadow: none;
}
.cal-cell.has-leap-split:hover {
border-color: transparent;
}
/* Each half is its own independent mini-cell — same color as Seth weekend */
.leap-top,
.leap-bottom {
position: relative;
padding: 0.25rem 0.4rem;
flex: 1;
border: 1px solid #1a2a4a;
border-radius: 6px;
background: #1c2130;
min-height: 0;
overflow: hidden;
cursor: default;
transition: border-color 0.15s;
}
.leap-top:hover,
.leap-bottom:hover {
border-color: #555;
}
/* Today highlights on each half independently */
.leap-top.leap-top-today {
border-color: var(--accent);
background: #2e1f15;
}
.leap-bottom.leap-today {
border-color: var(--accent);
background: #1a2e40;
}
.hol-label {
font-size: 0.62rem;
color: #c8a060;
margin-top: 0.2rem;
line-height: 1.2;
white-space: normal;
overflow-wrap: break-word;
}
.hol-label a {
color: inherit;
text-decoration: underline;
text-underline-offset: 2px;
}
.hol-label a:hover {
color: #e0b878;
}
/* Legend */
.legend {
display: flex;
gap: 1rem;
font-size: 0.78rem;
color: var(--muted);
align-items: center;
flex-wrap: wrap;
}
.legend-dot {
width: 8px; height: 8px;
background: var(--accent);
border-radius: 50%;
display: inline-block;
margin-right: 4px;
}
.legend-box {
width: 12px; height: 12px;
background: #1e1e2e;
border: 1px solid #444;
border-radius: 3px;
display: inline-block;
margin-right: 4px;
}
</style>
</head>
<body>
<main class="cal-wrap">
<div class="brand-row">
<img class="logo-img" src="https://storage.googleapis.com/sethfreiberg.com/sethflix/favicon.png" alt="SethPC logo">
<span class="brand-text">SethPC Calendar</span>
</div>
<div class="cal-nav">
<button class="nav-btn" id="prevYear">&#8810;</button>
<button class="nav-btn" id="prevMonth">&#8249;</button>
<h2 id="navTitle">-<span class="sub" id="navSub"></span></h2>
<button class="nav-btn" id="nextMonth">&#8250;</button>
<button class="nav-btn" id="nextYear">&#8811;</button>
</div>
<div class="month-tabs" id="monthTabs"></div>
<div id="calGrid"></div>
<div class="legend">
<span><span class="legend-dot"></span><a id="todayLink" href="#" style="color:inherit;text-decoration:underline;text-underline-offset:2px;">Today</a></span>
<span><span class="legend-box"></span>Holiday days</span>
<span style="display:inline-flex;align-items:center;gap:4px;">
<span style="width:12px;height:12px;border-radius:3px;background:#1c2130;border:1px solid #1a2a4a;display:inline-block;"></span>Seth weekend (D4D5)
</span>
<span style="display:inline-flex;align-items:center;gap:4px;">
<span style="width:12px;height:12px;border-radius:3px;background:#1c2a28;border:1px solid #1a3a35;display:inline-block;"></span>Gregorian weekend
</span>
<span style="display:inline-flex;align-items:center;gap:4px;">
<canvas id="legendMoon" width="12" height="12" style="border-radius:50%;vertical-align:middle;"></canvas>Moon phase (click for astronomy)
</span>
</div>
</main>
<script src="/calendar.js"></script>
</body>
</html>