Tweaks and new pulldowns
This commit is contained in:
fraxle
2026-05-15 18:09:45 +01:00
parent f57be65f95
commit ebd4b7d7b7
5 changed files with 422 additions and 90 deletions
+60 -24
View File
@@ -138,7 +138,7 @@
.filter-profiles-label {
font-family: JetBrains Mono, monospace;
font-size: 9px;
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.18em;
color: #b09870;
@@ -147,13 +147,13 @@
}
.profile-btn {
padding: 4px 11px;
padding: 5px 13px;
cursor: pointer;
border: 1.5px solid #c9b08a;
background: #f5edd6;
color: #9a7d5a;
font-family: JetBrains Mono, monospace;
font-size: 11px;
font-size: 13px;
text-transform: uppercase;
letter-spacing: 0.1em;
transition: all 0.15s;
@@ -189,7 +189,7 @@
.col-toggles-label {
font-family: JetBrains Mono, monospace;
font-size: 9px;
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.18em;
color: #b09870;
@@ -199,13 +199,13 @@
/* The little pill buttons */
.col-toggle {
padding: 4px 11px;
padding: 5px 13px;
cursor: pointer;
border: 1.5px solid #c9b08a;
background: #f5edd6;
color: #9a7d5a;
font-family: JetBrains Mono, monospace;
font-size: 9px;
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.1em;
transition: all 0.15s;
@@ -226,16 +226,29 @@
color: #fff;
}
/* Burn select — looks like a col-toggle pill but is a <select>.
The native dropdown arrow is kept (no appearance:none) so users
know it's a dropdown. Active (burn on) state uses the same brass
as .col-toggle.on and the label updates to show the chosen skin. */
/* Burn select — unlike regular col-toggle buttons, the select never
goes full-brass background so the native dropdown list stays readable.
Active state = brass border + brass text on parchment.
Inactive state = same as a regular col-toggle pill. */
.burn-select {
cursor: pointer;
outline: none;
}
/* Override the inherited .col-toggle.on brass background */
.col-toggle.burn-select.on {
background: #f5edd6;
color: #c8922a;
border-color: #c8922a;
font-weight: 600;
}
.col-toggle.burn-select.on:hover {
background: #fef3dc;
color: #c8922a;
border-color: #c8922a;
}
.burn-select:focus {
border-color: #c8922a;
outline: none;
}
/* ── Vehicle group: select + windows-open checkbox fused together ── */
@@ -243,18 +256,28 @@
display: inline-flex;
align-items: stretch;
gap: 0;
/* Collapse any whitespace-node gap between the cs-wrap span and cs-vent */
font-size: 0;
}
.col-toggle-group > * {
font-size: 12px; /* restore font size for children */
}
/* Remove the right border + radius on the select so it butts up flush
with the checkbox label. When the label is absent (hide state), the
select is the only child and :last-child restores full pill rounding. */
.col-toggle-group .grouped-left {
border-right: none;
border-radius: 20px 0 0 20px;
/* Remove the right border + radius on the cs-wrap/cs-btn so it butts
flush with the VentPill. The cs-wrap is the direct child, so we
target its inner cs-btn via the grouped-left class on the button. */
.col-toggle-group .cs-wrap {
display: inline-flex;
align-items: stretch;
}
.col-toggle-group .grouped-left:last-child {
border-right: 1.5px solid #c9b08a;
border-radius: 20px;
.col-toggle-group .grouped-left {
border-right: none !important;
border-radius: 20px 0 0 20px !important;
}
.col-toggle-group .cs-wrap:only-child .grouped-left,
.col-toggle-group .cs-wrap:last-child .grouped-left {
border-right: 1.5px solid #c9b08a !important;
border-radius: 20px !important;
}
/* The checkbox pill — same height/padding as a col-toggle but styled as a label */
@@ -262,8 +285,8 @@
display: inline-flex;
align-items: center;
gap: 5px;
padding: 4px 10px 4px 9px;
font-size: 9px;
padding: 5px 12px 5px 10px;
font-size: 12px;
font-family: JetBrains Mono, monospace;
letter-spacing: 0.08em;
text-transform: uppercase;
@@ -433,15 +456,22 @@
background: #f0e4c4;
color: #6b4f2a;
font-family: JetBrains Mono, monospace;
font-size: 10px;
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.14em;
letter-spacing: 0.12em;
font-weight: 600;
padding: 14px 12px;
text-align: right;
white-space: nowrap;
}
@media (max-width: 800px) {
.utci-table th {
font-size: 10px;
letter-spacing: 0.14em;
}
}
/* The Hour column aligns left, the rest align right */
.utci-table th:first-child,
.utci-table td:first-child {
@@ -452,10 +482,16 @@
.utci-table th .col-unit {
display: block;
color: #c8922a;
font-size: 9px;
font-size: 10px;
margin-top: 2px;
}
@media (max-width: 800px) {
.utci-table th .col-unit {
font-size: 9px;
}
}
.utci-table tbody tr {
border-bottom: 1px solid #ede4cc;
transition: background 0.1s;
+182
View File
@@ -3,6 +3,188 @@
════════════════════════════════════════════════════════════════════════ */
/* ── CUSTOM SELECT DROPDOWN ─────────────────────────────────────────── */
/* Cross-platform replacement for native <select> on the col-toggles bar */
.cs-wrap {
position: relative;
display: inline-block;
}
/* The visible pill button */
.cs-btn {
display: inline-flex;
align-items: center;
gap: 5px;
padding: 5px 10px 5px 13px;
cursor: pointer;
border: 1.5px solid #c9b08a;
background: #f5edd6;
color: #9a7d5a;
font-family: JetBrains Mono, monospace;
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.1em;
transition: all 0.15s;
user-select: none;
white-space: nowrap;
}
.cs-btn:hover {
border-color: #c8922a;
color: #6b4f2a;
background: #fef3dc;
}
/* Active state — brass border + brass text, parchment background */
.cs-btn.on {
border-color: #c8922a;
color: #c8922a;
background: #f5edd6;
font-weight: 600;
}
.cs-btn.on:hover {
background: #fef3dc;
color: #a06e18;
border-color: #a06e18;
}
/* The chevron arrow inside the button */
.cs-arrow {
font-size: 9px;
opacity: 0.6;
margin-left: 2px;
transition: transform 0.15s;
display: inline-block;
}
.cs-wrap.open .cs-arrow {
transform: rotate(180deg);
}
/* Grouped left (fused with checkbox pill) */
.cs-btn.grouped-left {
border-right: none;
border-radius: 20px 0 0 20px;
}
.cs-btn.grouped-left:only-child,
.cs-btn.grouped-left.last-child {
border-right: 1.5px solid #c9b08a;
border-radius: 20px;
}
/* The floating dropdown panel */
.cs-panel {
position: absolute;
top: calc(100% + 4px);
left: 0;
z-index: 1000;
background: #fffcf2;
border: 1.5px solid #c9b08a;
border-radius: 4px;
box-shadow: 0 4px 16px rgba(30,18,8,0.13);
min-width: 100%;
white-space: nowrap;
overflow: hidden;
}
/* Each option row */
.cs-option {
display: block;
padding: 8px 14px;
font-family: JetBrains Mono, monospace;
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.08em;
color: #4a3420;
cursor: pointer;
transition: background 0.1s, color 0.1s;
user-select: none;
}
.cs-option:hover {
background: #fef3dc;
color: #1e1208;
}
.cs-option.selected {
color: #c8922a;
font-weight: 600;
background: #fdf8ee;
}
.cs-option.disabled {
opacity: 0.5;
cursor: default;
}
.cs-option.disabled:hover {
background: transparent;
color: #4a3420;
}
/* Hide option divider between show/hide */
.cs-divider {
height: 1px;
background: #e8d8c0;
margin: 2px 0;
}
/* ── CUSTOM CHECKBOX PILL (ventilation / managed) ───────────────────── */
.cs-vent {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 5px 12px 5px 10px;
font-size: 12px;
font-family: JetBrains Mono, monospace;
letter-spacing: 0.08em;
text-transform: uppercase;
cursor: pointer;
border: 1.5px solid #c9b08a;
border-left: none;
margin-left: -1px;
padding-left: 11px;
border-radius: 0 20px 20px 0;
background: #f5edd6;
color: #9a7d5a;
user-select: none;
transition: background 0.15s, color 0.15s, border-color 0.15s;
white-space: nowrap;
}
.cs-vent:hover {
border-color: #c8922a;
color: #6b4f2a;
background: #fef3dc;
}
.cs-vent.on {
border-color: #c8922a;
color: #c8922a;
background: #f5edd6;
font-weight: 600;
}
.cs-vent.on:hover {
background: #fef3dc;
color: #a06e18;
border-color: #a06e18;
}
/* The little square tick box inside the vent pill */
.cs-checkbox {
display: inline-flex;
align-items: center;
justify-content: center;
width: 13px;
height: 13px;
border: 1.5px solid currentColor;
border-radius: 2px;
flex-shrink: 0;
transition: background 0.12s;
}
.cs-checkbox.checked::after {
content: '';
display: block;
width: 7px;
height: 5px;
border-left: 2px solid currentColor;
border-bottom: 2px solid currentColor;
transform: rotate(-45deg) translateY(-1px);
}
/* ── 9. STATUS & ERROR BANNERS ("Acquiring forecast data…") ────────── */
.utci-status {