work : добавил web в отслеживание
This commit is contained in:
@@ -0,0 +1,466 @@
|
||||
:root {
|
||||
--widget-ink: #08265d;
|
||||
--widget-muted: #315d91;
|
||||
--widget-glass: rgba(200, 228, 244, 0.21);
|
||||
--widget-edge: rgba(255, 255, 255, 0.9);
|
||||
--tile: rgba(104, 126, 139, 0.16);
|
||||
--tile-strong: rgba(214, 226, 232, 0.2);
|
||||
--tile-edge: rgba(255, 255, 255, 0.82);
|
||||
--tile-edge-soft: rgba(189, 211, 221, 0.38);
|
||||
--tile-shadow: 0 10px 25px rgba(24, 72, 105, 0.12), inset 0 1px 0 rgba(255,255,255,.78), inset 1px 0 0 rgba(255,255,255,.24);
|
||||
--blue-halo: rgba(23, 137, 248, 0.16);
|
||||
--green-halo: rgba(28, 196, 113, 0.16);
|
||||
--orange-halo: rgba(246, 126, 50, 0.14);
|
||||
}
|
||||
|
||||
:root[data-theme="dark"] {
|
||||
--widget-ink: #edf8ff;
|
||||
--widget-muted: #9fc5df;
|
||||
--widget-glass: rgba(7, 22, 33, 0.49);
|
||||
--widget-edge: rgba(187, 225, 244, 0.3);
|
||||
--tile: rgba(16, 37, 51, 0.3);
|
||||
--tile-strong: rgba(52, 78, 96, 0.33);
|
||||
--tile-edge: rgba(203, 234, 248, 0.25);
|
||||
--tile-edge-soft: rgba(114, 176, 207, 0.16);
|
||||
--tile-shadow: 0 13px 29px rgba(0,0,0,.26), inset 0 1px 0 rgba(226,246,255,.11), inset 1px 0 0 rgba(186,226,245,.055);
|
||||
--blue-halo: rgba(29, 153, 245, 0.22);
|
||||
--green-halo: rgba(27, 210, 121, 0.19);
|
||||
--orange-halo: rgba(246, 125, 46, 0.18);
|
||||
}
|
||||
|
||||
html { min-width: 280px; }
|
||||
|
||||
body {
|
||||
min-height: 100vh;
|
||||
margin: 0;
|
||||
padding: clamp(.5rem, 2.2vw, 1rem);
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
justify-content: center;
|
||||
color: var(--widget-ink);
|
||||
background-color: #b7d5e3;
|
||||
background-image:
|
||||
linear-gradient(118deg, rgba(180,220,239,.15), rgba(238,247,251,.025) 45%, rgba(247,226,204,.09)),
|
||||
url("../assets/mountain-lake-light.jpg");
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
background-attachment: fixed;
|
||||
overflow-x: hidden;
|
||||
isolation: isolate;
|
||||
}
|
||||
|
||||
:root[data-theme="dark"] body {
|
||||
background-color: #091722;
|
||||
background-image:
|
||||
linear-gradient(118deg, rgba(2,15,25,.66), rgba(8,27,40,.57) 48%, rgba(20,25,29,.64)),
|
||||
url("../assets/mountain-lake-dark.jpg");
|
||||
}
|
||||
|
||||
body::before,
|
||||
body::after {
|
||||
content: "";
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: -2;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
body::before {
|
||||
background: linear-gradient(110deg, rgba(214,242,253,.16), transparent 35%, rgba(255,240,218,.1) 76%, transparent);
|
||||
opacity: .74;
|
||||
}
|
||||
|
||||
body::after {
|
||||
background:
|
||||
radial-gradient(circle at 11% 18%, rgba(255,255,255,.32) 0 .5%, transparent 5%),
|
||||
radial-gradient(circle at 64% 23%, rgba(255,244,218,.27) 0 .6%, transparent 6%),
|
||||
radial-gradient(circle at 91% 79%, rgba(225,250,237,.21) 0 .8%, transparent 7%);
|
||||
filter: blur(11px);
|
||||
opacity: .5;
|
||||
}
|
||||
|
||||
:root[data-theme="dark"] body::before { background: linear-gradient(115deg, rgba(29,104,142,.1), transparent 40%, rgba(110,76,42,.08)); opacity: .7; }
|
||||
:root[data-theme="dark"] body::after { opacity: .25; }
|
||||
|
||||
.ambient::before { width: 32rem; height: 32rem; left: -13rem; top: -14rem; background: #c9f2ff; opacity: .14; filter: blur(76px); }
|
||||
.ambient::after { width: 34rem; height: 34rem; right: -14rem; bottom: -16rem; background: #ebd5a7; opacity: .11; filter: blur(82px); }
|
||||
:root[data-theme="dark"] .ambient::before { background: #147db5; opacity: .12; }
|
||||
:root[data-theme="dark"] .ambient::after { background: #846630; opacity: .08; }
|
||||
|
||||
.widget {
|
||||
position: relative;
|
||||
isolation: isolate;
|
||||
width: min(100%, 31.5rem);
|
||||
display: grid;
|
||||
gap: .65rem;
|
||||
padding: clamp(.65rem, 2.2vw, .9rem);
|
||||
overflow: hidden;
|
||||
border: 1px solid var(--widget-edge);
|
||||
outline: 1px solid rgba(255,255,255,.48);
|
||||
outline-offset: -5px;
|
||||
border-radius: 1.55rem;
|
||||
background:
|
||||
linear-gradient(125deg, rgba(255,255,255,.22), transparent 31%, rgba(255,255,255,.055) 69%, rgba(196,224,240,.1)),
|
||||
var(--widget-glass);
|
||||
box-shadow: 0 27px 68px rgba(22,66,95,.24), 0 2px 8px rgba(255,255,255,.28), inset 0 1px 0 rgba(255,255,255,.88), inset 0 -1px 0 rgba(113,163,192,.17);
|
||||
backdrop-filter: blur(13px) saturate(124%);
|
||||
-webkit-backdrop-filter: blur(13px) saturate(124%);
|
||||
}
|
||||
|
||||
.widget::before,
|
||||
.widget::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
z-index: 0;
|
||||
border-radius: inherit;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.widget::before {
|
||||
background:
|
||||
linear-gradient(112deg, rgba(255,255,255,.25), rgba(255,255,255,.035) 18%, transparent 39%),
|
||||
radial-gradient(ellipse at 50% -20%, rgba(255,255,255,.25), transparent 47%);
|
||||
}
|
||||
|
||||
.widget::after {
|
||||
opacity: .1;
|
||||
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E");
|
||||
mix-blend-mode: soft-light;
|
||||
}
|
||||
|
||||
.widget > * { position: relative; z-index: 1; }
|
||||
:root[data-theme="dark"] .widget { outline-color: rgba(203,235,250,.11); box-shadow: 0 33px 78px rgba(0,0,0,.43), 0 0 28px rgba(19,112,158,.06), inset 0 1px 0 rgba(221,243,252,.17), inset 0 -1px 0 rgba(0,0,0,.28); }
|
||||
:root[data-theme="dark"] .widget::before { background: linear-gradient(112deg, rgba(203,238,253,.1), transparent 24%, transparent 72%, rgba(71,163,202,.035)); }
|
||||
|
||||
.widget-header {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(0, 1fr) auto;
|
||||
align-items: center;
|
||||
gap: .55rem .7rem;
|
||||
padding: .15rem .25rem .05rem;
|
||||
}
|
||||
|
||||
.identity { min-width: 0; display: flex; align-items: center; gap: .7rem; }
|
||||
.brand-icon {
|
||||
display: grid;
|
||||
place-items: center;
|
||||
width: 2.9rem;
|
||||
height: 2.9rem;
|
||||
flex: 0 0 auto;
|
||||
border: 1px solid rgba(255,255,255,.82);
|
||||
border-radius: 1rem;
|
||||
color: #147bd5;
|
||||
background:
|
||||
radial-gradient(circle at 25% 2%, rgba(255,255,255,.62), transparent 43%),
|
||||
linear-gradient(145deg, rgba(217,242,255,.58), rgba(73,159,222,.2));
|
||||
box-shadow: 0 8px 19px rgba(19,101,160,.13), inset 0 1px 0 rgba(255,255,255,.88);
|
||||
}
|
||||
.brand-icon svg { width: 1.75rem; height: 1.75rem; filter: drop-shadow(0 0 5px rgba(20,123,213,.18)); }
|
||||
.identity-copy { min-width: 0; display: block; }
|
||||
.title-row { display: flex; align-items: center; gap: .55rem; min-width: 0; }
|
||||
.identity h1 { margin: 0; font-size: 1.62rem; line-height: 1; letter-spacing: -.045em; white-space: nowrap; }
|
||||
.identity-copy > small { display: block; margin-top: .28rem; color: var(--widget-muted); font-size: .7rem; }
|
||||
.widget .pill { min-height: 1.75rem; padding: .27rem .58rem; border-color: rgba(255,255,255,.56); font-size: .59rem; box-shadow: inset 0 1px 0 rgba(255,255,255,.62), 0 5px 14px rgba(26,75,108,.08); backdrop-filter: blur(12px); }
|
||||
.widget .pill::before { width: .36rem; height: .36rem; box-shadow: 0 0 7px currentColor; }
|
||||
|
||||
.theme-button,
|
||||
.open-section {
|
||||
display: grid;
|
||||
place-items: center;
|
||||
border: 1px solid var(--tile-edge);
|
||||
color: var(--widget-ink);
|
||||
background: linear-gradient(145deg, var(--tile-strong), var(--tile));
|
||||
box-shadow: var(--tile-shadow);
|
||||
cursor: pointer;
|
||||
backdrop-filter: blur(14px);
|
||||
-webkit-backdrop-filter: blur(14px);
|
||||
transition: transform .15s ease, filter .15s ease;
|
||||
}
|
||||
.theme-button { width: 2.55rem; height: 2.55rem; border-radius: .9rem; }
|
||||
.theme-button svg { width: 1.18rem; height: 1.18rem; }
|
||||
.theme-button:hover, .open-section:hover { transform: translateY(-1px); filter: brightness(1.07); }
|
||||
.theme-button:active, .open-section:active { transform: scale(.97); }
|
||||
.status-row { grid-column: 1 / -1; display: flex; align-items: center; gap: .55rem; min-width: 0; }
|
||||
.mode-detail { min-width: 0; color: var(--widget-muted); font-size: .66rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
||||
|
||||
.widget-tile {
|
||||
position: relative;
|
||||
isolation: isolate;
|
||||
overflow: hidden;
|
||||
border: 1px solid var(--tile-edge);
|
||||
outline: 1px solid var(--tile-edge-soft);
|
||||
outline-offset: -3px;
|
||||
border-radius: 1.15rem;
|
||||
background:
|
||||
linear-gradient(132deg, rgba(244,248,250,.22), rgba(159,178,188,.055) 38%, transparent 66%),
|
||||
linear-gradient(145deg, var(--tile-strong), var(--tile));
|
||||
box-shadow: var(--tile-shadow);
|
||||
backdrop-filter: blur(14px) saturate(116%);
|
||||
-webkit-backdrop-filter: blur(14px) saturate(116%);
|
||||
}
|
||||
|
||||
.widget-tile::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
z-index: 0;
|
||||
border-radius: inherit;
|
||||
pointer-events: none;
|
||||
opacity: .62;
|
||||
background: linear-gradient(115deg, rgba(255,255,255,.35), transparent 25%, transparent 72%, rgba(255,255,255,.08));
|
||||
}
|
||||
.widget-tile > * { position: relative; z-index: 1; }
|
||||
:root[data-theme="dark"] .widget-tile { background: linear-gradient(132deg, rgba(213,240,252,.075), rgba(255,255,255,.012) 38%, transparent 65%), linear-gradient(145deg, var(--tile-strong), var(--tile)); backdrop-filter: blur(16px) saturate(127%); -webkit-backdrop-filter: blur(16px) saturate(127%); }
|
||||
|
||||
.control-card { min-height: 11.4rem; padding: .9rem 1rem .85rem; display: flex; flex-direction: column; }
|
||||
.control-card::after,
|
||||
.switch-card::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
z-index: 0;
|
||||
width: 12rem;
|
||||
height: 12rem;
|
||||
right: -5rem;
|
||||
bottom: -7rem;
|
||||
border-radius: 50%;
|
||||
pointer-events: none;
|
||||
filter: blur(42px);
|
||||
opacity: .18;
|
||||
}
|
||||
.speed-card::after { background: var(--blue-halo); }
|
||||
.temperature-card::after { width: 17rem; background: linear-gradient(90deg, var(--blue-halo), var(--orange-halo)); }
|
||||
.power-card::after, .heater-card::after { background: var(--green-halo); opacity: .16; }
|
||||
|
||||
.card-title { display: flex; align-items: flex-start; gap: .65rem; }
|
||||
.card-title h2, .switch-title h2, .section-title h2 { margin: 0; font-size: .96rem; line-height: 1.2; letter-spacing: -.015em; }
|
||||
.card-title p { margin: .16rem 0 0; color: var(--widget-muted); font-size: .66rem; }
|
||||
.ui-icon { display: block; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
|
||||
.feature-icon { width: 1.95rem; height: 1.95rem; flex: 0 0 auto; padding: .06rem; color: #1389f4; filter: drop-shadow(0 0 5px rgba(20,139,244,.2)); }
|
||||
|
||||
.hero-control { display: grid; grid-template-columns: 3.45rem 1fr 3.45rem; align-items: center; gap: .8rem; margin: 1rem 0 .72rem; }
|
||||
.hero-value { text-align: center; font-size: 3rem; line-height: 1; letter-spacing: -.065em; font-variant-numeric: tabular-nums; }
|
||||
.hero-step {
|
||||
display: grid;
|
||||
place-items: center;
|
||||
width: 3.45rem;
|
||||
height: 3.45rem;
|
||||
padding: 0;
|
||||
border: 1.5px solid rgba(255,255,255,.84);
|
||||
border-radius: .95rem;
|
||||
color: #176dbb;
|
||||
background:
|
||||
radial-gradient(circle at 24% 5%, rgba(255,255,255,.48), transparent 40%),
|
||||
linear-gradient(145deg, rgba(245,252,255,.4), rgba(191,224,244,.18));
|
||||
box-shadow: 0 8px 19px rgba(35,92,132,.13), inset 0 1px 0 rgba(255,255,255,.88), 0 0 0 1px rgba(185,226,248,.2);
|
||||
cursor: pointer;
|
||||
font-size: 1.8rem;
|
||||
line-height: 1;
|
||||
transition: transform .15s ease, filter .15s ease, box-shadow .15s ease;
|
||||
}
|
||||
.hero-step.primary {
|
||||
color: white;
|
||||
background:
|
||||
radial-gradient(circle at 24% 5%, rgba(255,255,255,.55), transparent 38%),
|
||||
linear-gradient(135deg, rgba(255,255,255,.16), transparent 42%, rgba(0,73,170,.1)),
|
||||
linear-gradient(145deg, #55b4ff, #1479e8 72%);
|
||||
box-shadow: 0 8px 18px rgba(15,92,183,.18), 0 0 7px rgba(48,151,239,.1), inset 0 1px 0 rgba(255,255,255,.86), inset 0 -3px 7px rgba(0,67,156,.16);
|
||||
}
|
||||
.hero-step:hover { transform: translateY(-1px); filter: brightness(1.07); box-shadow: 0 10px 21px rgba(20,101,190,.2), 0 0 9px rgba(48,151,239,.12), inset 0 1px 0 rgba(255,255,255,.88); }
|
||||
.hero-step:active { transform: scale(.97); }
|
||||
|
||||
.speed-segments { display: grid; grid-template-columns: repeat(6, 1fr); gap: .18rem; }
|
||||
.speed-segments button {
|
||||
height: .9rem;
|
||||
padding: 0;
|
||||
border: 1px solid rgba(255,255,255,.82);
|
||||
border-radius: .5rem;
|
||||
background: linear-gradient(180deg, rgba(173,207,229,.3), rgba(98,151,190,.18));
|
||||
box-shadow: inset 0 1px 2px rgba(27,70,105,.07), 0 2px 5px rgba(32,86,126,.07);
|
||||
cursor: pointer;
|
||||
transition: background .12s ease, box-shadow .12s ease, transform .12s ease;
|
||||
}
|
||||
.speed-segments button:hover { transform: translateY(-1px); }
|
||||
.speed-segments button.active {
|
||||
background: linear-gradient(180deg, rgba(255,255,255,.32), transparent 48%), linear-gradient(90deg, #1685ec, #35afff);
|
||||
box-shadow: 0 0 5px rgba(25,143,247,.19), inset 0 1px 0 rgba(255,255,255,.75), inset 0 -2px 4px rgba(0,84,182,.13);
|
||||
}
|
||||
.scale-labels, .temperature-labels { display: flex; justify-content: space-between; margin-top: .34rem; padding: 0 .3rem; color: var(--widget-muted); font-size: .62rem; }
|
||||
|
||||
.temperature-range { width: 100%; height: 1.45rem; margin: 0; appearance: none; background: transparent; cursor: pointer; }
|
||||
.temperature-range::-webkit-slider-runnable-track { height: .68rem; border: 1px solid rgba(255,255,255,.88); border-radius: 999px; background: linear-gradient(90deg, #0878ed, #53c7f5 38%, #f3c26e 72%, #ff6b31); box-shadow: 0 0 8px rgba(37,153,239,.15), 0 0 7px rgba(255,114,41,.09), inset 0 1px 2px rgba(255,255,255,.46); }
|
||||
.temperature-range::-moz-range-track { height: .68rem; border: 1px solid rgba(255,255,255,.88); border-radius: 999px; background: linear-gradient(90deg, #0878ed, #53c7f5 38%, #f3c26e 72%, #ff6b31); }
|
||||
.temperature-range::-moz-range-progress { background: transparent; }
|
||||
.temperature-range::-webkit-slider-thumb { width: 1.6rem; height: 1.6rem; margin-top: -.49rem; appearance: none; border: .25rem solid rgba(244,252,255,.9); border-radius: 50%; background: #238feb; box-shadow: 0 0 0 2px rgba(255,255,255,.45), 0 0 11px rgba(29,139,241,.31), 0 4px 9px rgba(17,79,143,.22); }
|
||||
.temperature-range::-moz-range-thumb { width: 1.08rem; height: 1.08rem; border: .25rem solid rgba(244,252,255,.9); border-radius: 50%; background: #238feb; box-shadow: 0 0 0 2px rgba(255,255,255,.45), 0 0 11px rgba(29,139,241,.31), 0 4px 9px rgba(17,79,143,.22); }
|
||||
|
||||
.switch-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; }
|
||||
.switch-card { min-width: 0; min-height: 8.15rem; padding: .82rem; display: flex; flex-direction: column; gap: .72rem; }
|
||||
.switch-title { display: flex; align-items: center; gap: .5rem; min-width: 0; }
|
||||
.switch-title > span { min-width: 0; }
|
||||
.switch-title small { display: block; margin-top: .12rem; color: var(--widget-muted); font-size: .58rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
||||
.switch-icon { width: 1.75rem; height: 1.75rem; flex: 0 0 auto; }
|
||||
.switch-icon.green { color: #08a95a; filter: drop-shadow(0 0 5px rgba(20,190,104,.23)); }
|
||||
.switch-icon.orange { color: #f06419; filter: drop-shadow(0 0 5px rgba(244,105,31,.2)); }
|
||||
.glass-switch {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
min-height: 3.35rem;
|
||||
margin-top: auto;
|
||||
border: 1.5px solid rgba(255,255,255,.86);
|
||||
border-radius: .95rem;
|
||||
color: var(--widget-ink);
|
||||
background: rgba(199,222,235,.24);
|
||||
box-shadow: var(--tile-shadow);
|
||||
cursor: pointer;
|
||||
font-size: 1.25rem;
|
||||
font-weight: 850;
|
||||
text-shadow: 0 1px 0 rgba(255,255,255,.3);
|
||||
transition: transform .15s ease, background .2s ease, box-shadow .2s ease, filter .2s ease;
|
||||
}
|
||||
.glass-switch:hover { transform: translateY(-1px); filter: brightness(1.06); }
|
||||
.glass-switch:active { transform: scale(.98); }
|
||||
.glass-switch[aria-pressed="true"].green,
|
||||
.glass-switch[aria-pressed="true"].orange {
|
||||
background:
|
||||
radial-gradient(circle at 25% -8%, rgba(255,255,255,.67), transparent 42%),
|
||||
linear-gradient(132deg, rgba(255,255,255,.15), transparent 40%, rgba(0,125,62,.06)),
|
||||
linear-gradient(145deg, rgba(139,244,190,.67), rgba(55,194,122,.43));
|
||||
border-color: rgba(218,255,235,.84);
|
||||
box-shadow: 0 8px 19px rgba(18,143,80,.14), 0 0 8px rgba(38,199,116,.09), inset 0 1px 0 rgba(255,255,255,.9), inset 0 -4px 9px rgba(0,114,57,.08);
|
||||
}
|
||||
|
||||
.info-card { padding: .82rem; }
|
||||
.section-title { display: flex; align-items: center; justify-content: space-between; gap: .65rem; }
|
||||
.section-title > span { display: flex; align-items: center; gap: .5rem; }
|
||||
.section-icon { width: 1.75rem; height: 1.75rem; color: #207bcc; filter: drop-shadow(0 0 5px rgba(26,124,210,.17)); }
|
||||
.section-icon.leaf { color: #069c51; transform: rotate(-18deg); filter: drop-shadow(0 0 5px rgba(8,160,81,.2)); }
|
||||
.open-section { width: 2rem; height: 2rem; padding: 0; border-radius: .7rem; color: #147bd5; font-size: .96rem; }
|
||||
|
||||
.co2-summary { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .6rem; margin: .8rem .1rem .52rem; }
|
||||
.co2-label { color: var(--widget-muted); font-size: .74rem; font-weight: 750; }
|
||||
.co2-summary strong { text-align: center; font-size: 2rem; line-height: 1; letter-spacing: -.045em; }
|
||||
.co2-summary strong small { color: var(--widget-muted); font-size: .62rem; font-weight: 650; letter-spacing: 0; }
|
||||
.quality-chip { display: inline-flex; justify-content: center; padding: .32rem .62rem; border: 1px solid var(--tile-edge-soft); border-radius: 999px; background: rgba(199,222,235,.2); color: var(--widget-muted); font-size: .6rem; font-weight: 750; white-space: nowrap; }
|
||||
.quality-chip.good { color: #076d3d; border-color: rgba(109,237,167,.65); background: linear-gradient(145deg, rgba(179,255,214,.58), rgba(92,218,151,.39)); box-shadow: 0 0 9px rgba(33,203,116,.12), inset 0 1px 0 rgba(255,255,255,.82); }
|
||||
.quality-chip.warn { color: #9c5513; border-color: rgba(244,183,106,.67); background: linear-gradient(145deg, rgba(255,232,188,.56), rgba(239,168,80,.34)); }
|
||||
.quality-chip.bad { color: #a62f3d; border-color: rgba(242,135,147,.62); background: linear-gradient(145deg, rgba(255,209,216,.53), rgba(225,105,120,.3)); }
|
||||
:root[data-theme="dark"] .quality-chip.good { color: #b9ffda; }
|
||||
:root[data-theme="dark"] .quality-chip.warn { color: #ffd59e; }
|
||||
:root[data-theme="dark"] .quality-chip.bad { color: #ffc0c8; }
|
||||
|
||||
.co2-meter { height: .68rem; border: 1px solid rgba(255,255,255,.78); border-radius: 999px; background: rgba(91,145,181,.17); box-shadow: inset 0 1px 3px rgba(25,68,98,.09); overflow: hidden; }
|
||||
.co2-meter i { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #08a350, #36dc83); box-shadow: 0 0 10px rgba(18,199,104,.34), inset 0 1px 0 rgba(255,255,255,.55); transition: width .3s ease; }
|
||||
.meter-labels { display: flex; justify-content: space-between; margin-top: .26rem; padding: 0 .2rem; color: var(--widget-muted); font-size: .54rem; }
|
||||
.mini-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: .52rem; margin-top: .68rem; }
|
||||
.mini-metric { min-width: 0; min-height: 4.35rem; display: flex; align-items: center; justify-content: center; gap: .5rem; padding: .62rem .5rem; border: 1px solid var(--tile-edge-soft); border-radius: .9rem; background: linear-gradient(145deg, rgba(255,255,255,.13), rgba(107,151,177,.055)); box-shadow: inset 0 1px 0 rgba(255,255,255,.33); text-align: center; }
|
||||
.metric-icon { width: 1.55rem; height: 1.55rem; flex: 0 0 auto; color: #137edc; filter: drop-shadow(0 0 4px rgba(20,124,221,.15)); }
|
||||
.mini-metric span { min-width: 0; }
|
||||
.mini-metric small { display: block; color: var(--widget-muted); font-size: .58rem; }
|
||||
.mini-metric strong { display: block; margin-top: .2rem; font-size: 1.35rem; line-height: 1; letter-spacing: -.035em; }
|
||||
|
||||
.schedule-times { display: grid; grid-template-columns: 1fr 1px 1fr; align-items: center; gap: .7rem; margin-top: .75rem; padding: .15rem .25rem .25rem; }
|
||||
.schedule-times > span { display: grid; justify-items: center; gap: .18rem; text-align: center; }
|
||||
.schedule-times small { color: var(--widget-muted); font-size: .6rem; }
|
||||
.schedule-times strong { font-size: 1.35rem; letter-spacing: -.035em; }
|
||||
.schedule-times > i { width: 1px; height: 2.75rem; background: var(--tile-edge-soft); }
|
||||
|
||||
.open-panel {
|
||||
min-height: 3.25rem;
|
||||
display: grid;
|
||||
grid-template-columns: auto 1fr auto;
|
||||
align-items: center;
|
||||
gap: .65rem;
|
||||
padding: .65rem .9rem;
|
||||
border: 1px solid rgba(194,232,255,.84);
|
||||
border-radius: 1rem;
|
||||
color: white;
|
||||
background:
|
||||
radial-gradient(circle at 18% -35%, rgba(255,255,255,.52), transparent 47%),
|
||||
linear-gradient(135deg, rgba(255,255,255,.13), transparent 43%),
|
||||
linear-gradient(145deg, rgba(60,174,239,.92), rgba(17,113,194,.88));
|
||||
box-shadow: 0 9px 20px rgba(15,92,183,.2), 0 0 9px rgba(48,151,239,.11), inset 0 1px 0 rgba(255,255,255,.84), inset 0 -3px 7px rgba(0,67,156,.15);
|
||||
cursor: pointer;
|
||||
font-size: .78rem;
|
||||
font-weight: 760;
|
||||
transition: transform .15s ease, filter .15s ease, box-shadow .15s ease;
|
||||
}
|
||||
.open-panel svg { width: 1.45rem; height: 1.45rem; }
|
||||
.open-panel b { font-size: 1rem; }
|
||||
.open-panel:hover { transform: translateY(-1px); filter: brightness(1.05); box-shadow: 0 11px 23px rgba(20,101,190,.23), 0 0 11px rgba(48,151,239,.13), inset 0 1px 0 rgba(255,255,255,.86); }
|
||||
.open-panel:active { transform: scale(.99); }
|
||||
.demo-note { color: var(--widget-muted); text-align: center; font-size: .58rem; }
|
||||
|
||||
:root[data-theme="dark"] .brand-icon { border-color: rgba(193,228,245,.25); background: radial-gradient(circle at 25% 2%, rgba(208,243,255,.16), transparent 43%), linear-gradient(145deg, rgba(38,125,187,.27), rgba(15,61,91,.26)); }
|
||||
:root[data-theme="dark"] .hero-step { color: #76c7fa; border-color: rgba(192,226,244,.25); background: radial-gradient(circle at 24% 5%, rgba(213,240,252,.11), transparent 40%), linear-gradient(145deg, rgba(77,112,133,.23), rgba(20,44,59,.28)); box-shadow: 0 9px 21px rgba(0,0,0,.23), inset 0 1px 0 rgba(226,246,255,.12); }
|
||||
:root[data-theme="dark"] .hero-step.primary { color: white; background: radial-gradient(circle at 24% 5%, rgba(214,246,255,.32), transparent 38%), linear-gradient(135deg, rgba(255,255,255,.08), transparent 42%, rgba(0,32,95,.17)), linear-gradient(145deg, #33aaf4, #0869d0 74%); box-shadow: 0 10px 24px rgba(0,53,119,.38), 0 0 11px rgba(41,162,244,.19), inset 0 1px 0 rgba(220,248,255,.4), inset 0 -3px 7px rgba(0,27,91,.27); }
|
||||
:root[data-theme="dark"] .speed-segments button { border-color: rgba(192,226,244,.25); background: linear-gradient(180deg, rgba(91,136,162,.23), rgba(24,55,74,.28)); }
|
||||
:root[data-theme="dark"] .speed-segments button.active { border-color: rgba(117,207,255,.48); background: linear-gradient(180deg, rgba(216,246,255,.19), transparent 48%), linear-gradient(90deg, #0877df, #20b7ff); box-shadow: 0 0 7px rgba(24,156,255,.27), inset 0 1px 0 rgba(223,248,255,.34); }
|
||||
:root[data-theme="dark"] .glass-switch { color: #ddecf4; border-color: rgba(193,228,245,.25); background: linear-gradient(145deg, rgba(77,112,133,.23), rgba(20,44,59,.28)); text-shadow: 0 1px 2px rgba(0,0,0,.4); }
|
||||
:root[data-theme="dark"] .glass-switch[aria-pressed="true"].green,
|
||||
:root[data-theme="dark"] .glass-switch[aria-pressed="true"].orange { color: #effff6; border-color: rgba(127,242,182,.4); background: radial-gradient(circle at 25% -8%, rgba(218,255,236,.3), transparent 42%), linear-gradient(132deg, rgba(255,255,255,.07), transparent 40%, rgba(0,45,23,.12)), linear-gradient(145deg, rgba(51,190,119,.52), rgba(9,102,59,.49)); box-shadow: 0 9px 21px rgba(0,0,0,.22), 0 0 9px rgba(37,207,121,.1), inset 0 1px 0 rgba(218,255,236,.32), inset 0 -3px 8px rgba(0,31,16,.16); }
|
||||
:root[data-theme="dark"] .co2-meter { border-color: rgba(200,232,247,.24); background: rgba(3,22,34,.34); box-shadow: inset 0 2px 5px rgba(0,0,0,.2); }
|
||||
:root[data-theme="dark"] .mini-metric { background: linear-gradient(145deg, rgba(196,231,247,.055), rgba(3,24,37,.08)); box-shadow: inset 0 1px 0 rgba(224,246,255,.07); }
|
||||
|
||||
/* Wide monitor layout. The same markup stays vertical on narrow screens, so
|
||||
controls and API behaviour cannot drift between two widget versions. */
|
||||
:root[data-widget-layout="horizontal"] .widget {
|
||||
width: min(100%, 76rem);
|
||||
max-width: none;
|
||||
grid-template-columns: minmax(0, 1.4fr) minmax(0, 1.4fr) minmax(0, .8fr) minmax(0, .8fr);
|
||||
grid-template-areas:
|
||||
"header header header header"
|
||||
"speed temperature power heater"
|
||||
"air air schedule schedule"
|
||||
"open open open open"
|
||||
"demo demo demo demo";
|
||||
align-items: stretch;
|
||||
}
|
||||
:root[data-widget-layout="horizontal"] .widget-header { grid-area: header; grid-template-columns: minmax(0, 1fr) auto auto; }
|
||||
:root[data-widget-layout="horizontal"] .widget-header .identity { grid-column: 1; grid-row: 1; }
|
||||
:root[data-widget-layout="horizontal"] .widget-header .status-row { grid-column: 2; grid-row: 1; }
|
||||
:root[data-widget-layout="horizontal"] .widget-header .theme-button { grid-column: 3; grid-row: 1; }
|
||||
:root[data-widget-layout="horizontal"] .speed-card { grid-area: speed; }
|
||||
:root[data-widget-layout="horizontal"] .temperature-card { grid-area: temperature; }
|
||||
:root[data-widget-layout="horizontal"] .switch-grid { display: contents; }
|
||||
:root[data-widget-layout="horizontal"] .switch-grid > * { z-index: 1; }
|
||||
:root[data-widget-layout="horizontal"] .power-card { grid-area: power; }
|
||||
:root[data-widget-layout="horizontal"] .heater-card { grid-area: heater; }
|
||||
:root[data-widget-layout="horizontal"] .switch-card { min-height: 11.4rem; }
|
||||
:root[data-widget-layout="horizontal"] .air-card { grid-area: air; }
|
||||
:root[data-widget-layout="horizontal"] .schedule-card { grid-area: schedule; }
|
||||
:root[data-widget-layout="horizontal"] .air-card,
|
||||
:root[data-widget-layout="horizontal"] .schedule-card { min-height: 9.6rem; }
|
||||
:root[data-widget-layout="horizontal"] .open-panel { grid-area: open; }
|
||||
:root[data-widget-layout="horizontal"] .demo-note { grid-area: demo; }
|
||||
|
||||
button:disabled { opacity: .58; cursor: wait; transform: none !important; }
|
||||
|
||||
@media (min-width: 560px) and (min-height: 900px) {
|
||||
html { font-size: 17px; }
|
||||
:root[data-widget-layout="vertical"] .widget { width: min(100%, 33rem); }
|
||||
}
|
||||
|
||||
@media (max-width: 380px) {
|
||||
body { padding: .36rem; }
|
||||
.widget { padding: .55rem; gap: .52rem; border-radius: 1.2rem; }
|
||||
.brand-icon { width: 2.55rem; height: 2.55rem; }
|
||||
.identity h1 { font-size: 1.38rem; }
|
||||
.title-row { gap: .38rem; }
|
||||
.widget .pill { padding-inline: .46rem; font-size: .54rem; }
|
||||
.hero-control { grid-template-columns: 3.15rem 1fr 3.15rem; gap: .55rem; }
|
||||
.hero-step { width: 3.15rem; height: 3.15rem; }
|
||||
.hero-value { font-size: 2.65rem; }
|
||||
.switch-grid { gap: .5rem; }
|
||||
.switch-card { padding: .7rem; }
|
||||
.switch-title { align-items: flex-start; }
|
||||
.switch-title small { display: none; }
|
||||
.co2-summary { grid-template-columns: auto 1fr; }
|
||||
.co2-summary .quality-chip { grid-column: 1 / -1; justify-self: center; }
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.hero-step:hover, .theme-button:hover, .open-section:hover, .glass-switch:hover, .open-panel:hover { transform: none; }
|
||||
}
|
||||
Reference in New Issue
Block a user