Updated event banner to fit top screen
Updated table thermal colours to max hot and min cold for 2h, 3h & 4h
Ground Lab preview
This commit is contained in:
fraxle
2026-08-01 16:18:15 +01:00
parent 2869694634
commit e55e0df86f
15 changed files with 406 additions and 380 deletions
+153 -1
View File
@@ -94,7 +94,7 @@ body {
display: flex;
align-items: center;
justify-content: flex-end;
padding: 18px 32px;
padding: 0px 32px;
gap: 28px;
}
@@ -188,6 +188,158 @@ body {
border-bottom: none;
}
/* ── Event note ─────────────────────────────────────────────────────── */
/* Active cosmic/weather events shown as a strip across the content width,
above the nav. It is IN FLOW — it pushes the page down instead of
covering anything, which is the whole point of it not being a flyout.
One event at a time with its full message, cycling with a fade.
The nav is normally position:absolute and .utci-app reserves 52px of top
padding for it. When a note is present the nav joins the flow instead so
the note can sit above it, and that padding is no longer needed. On true
mobile (≤640px) the nav is position:fixed and stays that way — there the
note simply becomes the first thing under it, so no override applies. */
.event-note {
display: flex;
align-items: baseline;
gap: 11px;
padding: 10px 15px;
margin-bottom: 14px;
background: #fdf8ee;
border: 1.5px solid #c9b08a;
border-radius: 4px;
position: relative;
overflow: hidden;
animation: event-note-in 0.35s cubic-bezier(0.34, 1.25, 0.64, 1) both;
}
@keyframes event-note-in {
from { opacity: 0; transform: translateY(-5px); }
to { opacity: 1; transform: translateY(0); }
}
/* Per-event colour, kept to a hairline so the strip stays parchment —
same device as .almanac-entry-accent. */
.event-note-accent {
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 3px;
opacity: 0.75;
}
/* Safety-relevant weather (heat, frost, storm, wind, wet) — brass emphasis */
.event-note.is-priority {
background: #f0e4c4;
border-color: #c8922a;
}
.event-note-slide {
display: flex;
align-items: baseline;
flex-wrap: wrap;
gap: 4px 10px;
flex: 1;
min-width: 0;
opacity: 1;
transition: opacity 0.35s ease;
}
.event-note-slide.is-fading {
opacity: 0;
}
.event-note-emoji {
font-size: 16px;
line-height: 1;
flex-shrink: 0;
}
.event-note-title {
font-family: Fraunces, serif;
font-style: italic;
font-weight: 700;
font-size: 14px;
color: #2a1a08;
flex-shrink: 0;
}
.event-note-msg {
font-family: Manrope, sans-serif;
font-size: 12.5px;
font-weight: 500;
line-height: 1.45;
color: #6b4f2a;
min-width: 0;
}
.event-note-dates {
font-family: Manrope, sans-serif;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.06em;
text-transform: uppercase;
color: #9a7d5a;
white-space: nowrap;
margin-left: auto; /* push the dates to the right-hand end */
flex-shrink: 0;
}
.event-note.is-priority .event-note-dates {
color: #a06e18;
}
.event-note-dots {
display: flex;
align-items: center;
gap: 6px;
flex-shrink: 0;
align-self: center;
}
.event-note-dot {
width: 6px;
height: 6px;
padding: 0;
border: none;
border-radius: 50%;
background: #d9c39b;
cursor: pointer;
transition: background 0.2s, transform 0.2s;
}
.event-note-dot:hover {
background: #c0a880;
}
.event-note-dot.active {
background: #c8922a;
transform: scale(1.3);
}
/* Above true-mobile: the nav drops into the flow beneath the note. Its own
32px side padding is dropped so the links line up with the note and the
content rather than sitting 32px inside them. */
@media (min-width: 641px) {
.utci-app.has-event-note {
padding-top: 18px;
}
/* `relative`, not `static` — the nav keeps its z-index:100 that way, so
the About dropdown still paints over .utci-shell (which is z-index:1). */
.utci-app.has-event-note .utci-topnav {
position: relative;
padding-left: 0;
padding-right: 0;
}
}
@media (max-width: 640px) {
.event-note {
align-items: flex-start;
gap: 9px;
padding: 10px 12px;
}
.event-note-dates {
margin-left: 0; /* no room to right-align on a phone */
}
}
/* Nav logo — hidden on desktop, shown on mobile */
.nav-logo {
display: none;