|
|
@@ -1,10 +1,12 @@
|
|
|
:root{
|
|
|
- --bg: #0b0f16;
|
|
|
- --border: rgba(255,255,255,.1);
|
|
|
- --text: rgba(255,255,255,.92);
|
|
|
- --muted: rgba(255,255,255,.68);
|
|
|
- --accent: #4cc9f0;
|
|
|
- --accent-2: #a78bfa;
|
|
|
+ --bg: #05020f;
|
|
|
+ --glass: rgba(12,8,35,.82);
|
|
|
+ --border: rgba(0,255,240,.38);
|
|
|
+ --text: #f8f9ff;
|
|
|
+ --muted: #9ed4ff;
|
|
|
+ --accent: #00ffea;
|
|
|
+ --accent-2: #ff00c8;
|
|
|
+ --glow: #00ffea;
|
|
|
|
|
|
--outer-pad: 16px;
|
|
|
--gap: 14px;
|
|
|
@@ -24,20 +26,19 @@
|
|
|
}
|
|
|
|
|
|
*{box-sizing:border-box}
|
|
|
-html,body{height:100%;width:100%}
|
|
|
+html,body{height:100%;width:100%;margin:0;padding:0}
|
|
|
|
|
|
body{
|
|
|
- margin:0;
|
|
|
font-family:var(--font);
|
|
|
color:var(--text);
|
|
|
background:
|
|
|
- radial-gradient(1200px 600px at 20% 10%,rgba(76,201,240,.12),transparent 60%),
|
|
|
- radial-gradient(900px 500px at 85% 20%,rgba(167,139,250,.1),transparent 55%),
|
|
|
- radial-gradient(800px 600px at 50% 100%,rgba(255,255,255,.06),transparent 55%),
|
|
|
+ radial-gradient(1200px 600px at 20% 10%, rgba(0,255,234,.18), transparent 60%),
|
|
|
+ radial-gradient(900px 500px at 85% 20%, rgba(255,0,200,.14), transparent 55%),
|
|
|
+ radial-gradient(800px 600px at 50% 100%, rgba(120,0,255,.08), transparent 55%),
|
|
|
var(--bg);
|
|
|
overflow:hidden;
|
|
|
-webkit-font-smoothing:antialiased;
|
|
|
- text-rendering:geometricPrecision
|
|
|
+ text-rendering:geometricPrecision;
|
|
|
}
|
|
|
|
|
|
.grid{
|
|
|
@@ -48,7 +49,7 @@ body{
|
|
|
grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);
|
|
|
grid-template-rows:minmax(0,1fr) minmax(0,1fr);
|
|
|
gap:var(--gap);
|
|
|
- filter:brightness(.98)
|
|
|
+ filter:brightness(.98);
|
|
|
}
|
|
|
.grid>*{min-width:0;min-height:0}
|
|
|
|
|
|
@@ -57,77 +58,85 @@ body{
|
|
|
min-width:0;
|
|
|
min-height:0;
|
|
|
border-radius:var(--radius);
|
|
|
- background:linear-gradient(180deg,#ffffff0f,#ffffff08);
|
|
|
+ background:var(--glass);
|
|
|
border:1px solid var(--border);
|
|
|
- box-shadow:0 10px 30px #00000059,inset 0 1px #ffffff0f;
|
|
|
- overflow:hidden
|
|
|
+ box-shadow:0 10px 30px #00000059, inset 0 1px #ffffff0f, 0 0 0 1px rgba(0,255,234,.12);
|
|
|
+ overflow:hidden;
|
|
|
+ backdrop-filter:blur(16px);
|
|
|
}
|
|
|
|
|
|
-/* -------- Top Left -------- */
|
|
|
+/* -------- Top Left - weather description/logo NOW SAFELY to the RIGHT of date/time -------- */
|
|
|
.topLeft{
|
|
|
display:flex;
|
|
|
flex-direction:column;
|
|
|
- min-width:0;
|
|
|
- min-height:0;
|
|
|
padding:12px;
|
|
|
- gap:10px
|
|
|
+ gap:10px;
|
|
|
}
|
|
|
|
|
|
.dateTime{
|
|
|
flex:0 0 auto;
|
|
|
min-width:0;
|
|
|
- display:flex;
|
|
|
- flex-direction:column;
|
|
|
- gap:4px;
|
|
|
- padding:10px 12px;
|
|
|
+ display: grid;
|
|
|
+ grid-template-columns: 1fr 38%; /* fully responsive % — no more fixed px clipping */
|
|
|
+ gap: 8px 24px;
|
|
|
+ padding:14px 18px;
|
|
|
border-radius:var(--radius-sm);
|
|
|
- background:#00000038;
|
|
|
- border:1px solid rgba(255,255,255,.08);
|
|
|
+ background:rgba(8,4,28,.85);
|
|
|
+ border:1px solid rgba(0,255,234,.35);
|
|
|
position: relative;
|
|
|
+ align-items: start;
|
|
|
+ min-height: auto; /* prevents collapse */
|
|
|
}
|
|
|
|
|
|
#date{
|
|
|
+ grid-column: 1;
|
|
|
margin:0;
|
|
|
font-size:var(--date-size);
|
|
|
letter-spacing:.35px;
|
|
|
- color:var(--muted)
|
|
|
+ color:var(--muted);
|
|
|
+ text-transform:uppercase;
|
|
|
}
|
|
|
|
|
|
#time{
|
|
|
- margin:0;
|
|
|
+ grid-column: 1;
|
|
|
+ margin:2px 0 0 0;
|
|
|
font-size:var(--time-size);
|
|
|
font-weight:760;
|
|
|
letter-spacing:.8px;
|
|
|
line-height:1.02;
|
|
|
color:var(--text);
|
|
|
- overflow:hidden;
|
|
|
- text-overflow:ellipsis;
|
|
|
- white-space:nowrap
|
|
|
+ text-shadow:0 0 20px var(--glow);
|
|
|
}
|
|
|
|
|
|
-.weather{
|
|
|
- flex:1 1 auto;
|
|
|
+/* weather description + logo moved to right column (flex column so they stack nicely) */
|
|
|
+.dateTime > div {
|
|
|
+ grid-column: 2;
|
|
|
+ grid-row: 1 / span 2;
|
|
|
+ display:flex;
|
|
|
+ flex-direction:column;
|
|
|
+ align-items: flex-end;
|
|
|
+ justify-content: center;
|
|
|
+ gap: 6px;
|
|
|
+ height: 100%;
|
|
|
min-width:0;
|
|
|
- min-height:0;
|
|
|
- display:flex
|
|
|
}
|
|
|
|
|
|
-.weatherBlock{
|
|
|
- flex:1 1 auto;
|
|
|
- min-width:0;
|
|
|
- min-height:0;
|
|
|
- padding:10px;
|
|
|
- grid-template-rows:auto auto minmax(0,1fr);
|
|
|
- gap:8px;
|
|
|
+#weatherDescription{
|
|
|
+ font-size:clamp(21px, 1.85vh, 29px);
|
|
|
+ font-weight:700;
|
|
|
+ color:#fff;
|
|
|
+ text-shadow:0 0 15px var(--accent);
|
|
|
+ margin:0;
|
|
|
+ text-align:right;
|
|
|
+ line-height:1.05;
|
|
|
+ white-space:nowrap;
|
|
|
}
|
|
|
|
|
|
-.weatherBlock h2:before{
|
|
|
- content:"";
|
|
|
- width:10px;
|
|
|
- height:10px;
|
|
|
- border-radius:50%;
|
|
|
- background:linear-gradient(135deg,var(--accent),var(--accent-2));
|
|
|
- box-shadow:0 0 18px #4cc9f059
|
|
|
+#currentWeatherLogo{
|
|
|
+ font-size:clamp(46px, 3.9vh, 60px);
|
|
|
+ line-height:1;
|
|
|
+ filter:drop-shadow(0 0 22px var(--accent-2));
|
|
|
+ margin:0;
|
|
|
}
|
|
|
|
|
|
#conditionLogo{
|
|
|
@@ -135,44 +144,55 @@ body{
|
|
|
position: absolute;
|
|
|
top: 0;
|
|
|
right: 0;
|
|
|
+ filter:drop-shadow(0 0 25px var(--glow));
|
|
|
+ z-index: 1;
|
|
|
+ pointer-events: none;
|
|
|
+}
|
|
|
+
|
|
|
+/* -------- weather block below (unchanged proportions) -------- */
|
|
|
+.weather{
|
|
|
+ flex:1 1 auto;
|
|
|
+ min-width:0;
|
|
|
+ min-height:0;
|
|
|
+ display:flex;
|
|
|
+}
|
|
|
+
|
|
|
+.weatherBlock{
|
|
|
+ flex:1 1 auto;
|
|
|
+ min-width:0;
|
|
|
+ min-height:0;
|
|
|
+ padding:10px;
|
|
|
}
|
|
|
|
|
|
-/* FIX 1: make weatherInfo a strict 2x2 grid so the last two rows can't get clipped */
|
|
|
.weatherInfo{
|
|
|
height: 100%;
|
|
|
-
|
|
|
display:grid;
|
|
|
grid-template-columns:minmax(0,1fr) minmax(0,1fr);
|
|
|
grid-template-rows:minmax(0,1fr) minmax(0,1fr);
|
|
|
gap:6px 8px;
|
|
|
-
|
|
|
align-content:stretch;
|
|
|
align-items:stretch;
|
|
|
}
|
|
|
|
|
|
.weatherItem{
|
|
|
margin:0;
|
|
|
- padding:6px 9px; /* slightly tighter */
|
|
|
+ padding:6px 9px;
|
|
|
border-radius:14px;
|
|
|
- background:#ffffff09;
|
|
|
- border:1px solid rgba(255,255,255,.06);
|
|
|
+ background:rgba(255,255,255,.09);
|
|
|
+ border:1px solid rgba(0,255,234,.25);
|
|
|
font-size:var(--info-size);
|
|
|
- line-height:1.00; /* tighter to stop bottom clipping */
|
|
|
+ line-height:1.00;
|
|
|
color:var(--muted);
|
|
|
-
|
|
|
display:flex;
|
|
|
align-items:center;
|
|
|
justify-content:center;
|
|
|
-
|
|
|
- min-width:0;
|
|
|
- min-height:0;
|
|
|
-
|
|
|
- overflow:hidden;
|
|
|
- text-overflow:ellipsis;
|
|
|
- white-space:nowrap
|
|
|
+ box-shadow:0 4px 12px rgba(0,0,0,.4);
|
|
|
}
|
|
|
|
|
|
-#temp,#feels,#wind,#humidity{color:var(--text);font-weight:650}
|
|
|
+#temp,#feels,#wind,#humidity{
|
|
|
+ color:var(--text);
|
|
|
+ font-weight:700;
|
|
|
+}
|
|
|
|
|
|
/* -------- Top Right (Radar) -------- */
|
|
|
.topRight{
|
|
|
@@ -180,39 +200,20 @@ body{
|
|
|
display:flex;
|
|
|
align-items:center;
|
|
|
justify-content:center;
|
|
|
- background:radial-gradient(800px 520px at 70% 10%,rgba(167,139,250,.09),transparent 55%),#0000001a
|
|
|
+ background:radial-gradient(800px 520px at 70% 10%, rgba(255,0,200,.12), transparent 55%), rgba(8,4,28,.85);
|
|
|
}
|
|
|
|
|
|
-/* FIX 2: slight zoom, clip a bit top/bottom */
|
|
|
#radar{
|
|
|
width:100%;
|
|
|
height:100%;
|
|
|
-
|
|
|
- object-fit:scale-down; /* crop instead of letterbox */
|
|
|
- object-position:center 55%; /* trims a touch more top/bottom */
|
|
|
- transform:scale(1.5); /* very slight zoom */
|
|
|
- transform-origin:center;
|
|
|
-
|
|
|
+ object-fit:scale-down;
|
|
|
+ object-position:center 52%;
|
|
|
+ transform:scale(1.08);
|
|
|
border-radius:calc(var(--radius) - 6px);
|
|
|
- border:1px solid rgba(255,255,255,.08);
|
|
|
- box-shadow:0 14px 40px #00000073;
|
|
|
+ border:1px solid rgba(0,255,234,.45);
|
|
|
+ box-shadow:0 14px 40px #00000073, 0 0 25px rgba(0,255,234,.3);
|
|
|
background:#00000038;
|
|
|
- display:block
|
|
|
-}
|
|
|
-
|
|
|
-.topRight:after{
|
|
|
- content:"Radar";
|
|
|
- position:absolute;
|
|
|
- top:12px;
|
|
|
- left:14px;
|
|
|
- padding:6px 10px;
|
|
|
- font-size:14px;
|
|
|
- letter-spacing:.6px;
|
|
|
- text-transform:uppercase;
|
|
|
- color:#ffffffb8;
|
|
|
- background:#0006;
|
|
|
- border:1px solid rgba(255,255,255,.08);
|
|
|
- border-radius:999px
|
|
|
+ display:block;
|
|
|
}
|
|
|
|
|
|
/* -------- Bottom Left (Forecast) -------- */
|
|
|
@@ -225,23 +226,20 @@ table{
|
|
|
border-spacing:0;
|
|
|
overflow:hidden;
|
|
|
border-radius:calc(var(--radius) - 6px);
|
|
|
- background:#0000002e;
|
|
|
- border:1px solid rgba(255,255,255,.08);
|
|
|
- table-layout:fixed
|
|
|
+ background:rgba(8,4,28,.75);
|
|
|
+ border:1px solid rgba(0,255,234,.3);
|
|
|
+ table-layout:fixed;
|
|
|
}
|
|
|
|
|
|
thead th{
|
|
|
padding:8px;
|
|
|
font-size:var(--table-head);
|
|
|
line-height:1.1;
|
|
|
- color:#ffffffd1;
|
|
|
+ color:#fff;
|
|
|
letter-spacing:.4px;
|
|
|
text-transform:uppercase;
|
|
|
- background:linear-gradient(90deg,#4cc9f01a,#a78bfa14);
|
|
|
- border-bottom:1px solid rgba(255,255,255,.1);
|
|
|
- overflow:hidden;
|
|
|
- text-overflow:ellipsis;
|
|
|
- white-space:nowrap
|
|
|
+ background:linear-gradient(90deg, rgba(0,255,234,.25), rgba(255,0,200,.2));
|
|
|
+ border-bottom:1px solid rgba(0,255,234,.35);
|
|
|
}
|
|
|
|
|
|
tbody td{
|
|
|
@@ -250,44 +248,35 @@ tbody td{
|
|
|
line-height:1.1;
|
|
|
color:var(--muted);
|
|
|
border-bottom:1px solid rgba(255,255,255,.06);
|
|
|
- overflow:hidden;
|
|
|
- text-overflow:ellipsis;
|
|
|
- white-space:nowrap
|
|
|
}
|
|
|
|
|
|
tbody td:first-child{
|
|
|
width:44%;
|
|
|
- color:#ffffffe0;
|
|
|
+ color:#e0f8ff;
|
|
|
font-weight:760;
|
|
|
- letter-spacing:.15px;
|
|
|
- background:#ffffff08;
|
|
|
- border-right:1px solid rgba(255,255,255,.06)
|
|
|
+ background:rgba(0,255,234,.1);
|
|
|
+ border-right:1px solid rgba(0,255,234,.25);
|
|
|
}
|
|
|
|
|
|
tbody td:not(:first-child),thead th:not(:first-child){text-align:center}
|
|
|
-tbody tr:nth-child(odd) td{background:#ffffff05}
|
|
|
-tbody tr:nth-child(2n) td{background:#ffffff07}
|
|
|
-tbody tr:nth-child(odd) td:first-child{background:#ffffff0a}
|
|
|
-tbody tr:nth-child(2n) td:first-child{background:#ffffff0e}
|
|
|
+tbody tr:nth-child(odd) td{background:rgba(255,255,255,.04)}
|
|
|
+tbody tr:nth-child(2n) td{background:rgba(255,255,255,.07)}
|
|
|
tbody tr:last-child td{border-bottom:none}
|
|
|
|
|
|
/* -------- Bottom Right -------- */
|
|
|
.bottomRight{
|
|
|
padding:12px;
|
|
|
- background:radial-gradient(900px 600px at 20% 20%,rgba(76,201,240,.08),transparent 55%),#0000001a;
|
|
|
- min-width:0;
|
|
|
- min-height:0
|
|
|
+ background:radial-gradient(900px 600px at 20% 20%, rgba(0,255,234,.1), transparent 55%), rgba(8,4,28,.85);
|
|
|
}
|
|
|
|
|
|
.bottomRight iframe{
|
|
|
width:100%;
|
|
|
height:100%;
|
|
|
- border:1px solid rgba(255,255,255,.1);
|
|
|
+ border:1px solid rgba(0,255,234,.35);
|
|
|
border-radius:calc(var(--radius) - 6px);
|
|
|
- box-shadow:0 18px 50px #0000008c;
|
|
|
+ box-shadow:0 18px 50px #0000008c, 0 0 30px rgba(255,0,200,.3);
|
|
|
background:#000;
|
|
|
- display:block
|
|
|
+ display:block;
|
|
|
}
|
|
|
|
|
|
-:focus{outline:2px solid rgba(76,201,240,.55);outline-offset:2px}
|
|
|
-
|
|
|
+:focus{outline:3px solid var(--accent);outline-offset:3px;border-radius:12px}
|