799 lines
133 KiB
HTML
799 lines
133 KiB
HTML
<title>HomeOS — Smart-Home-Konzept</title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<style>
|
|
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:200 800;font-display:swap;src:url(data:font/woff2;base64,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) format('woff2')}
|
|
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(data:font/woff2;base64,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) format('woff2')}
|
|
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(data:font/woff2;base64,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) format('woff2')}
|
|
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url(data:font/woff2;base64,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) format('woff2')}
|
|
|
|
:root{
|
|
--bg:#080D18;
|
|
--surface:#0D1424;
|
|
--surface-2:#121C31;
|
|
--surface-3:#18233D;
|
|
--border:#1C2846;
|
|
--border-soft:#141E36;
|
|
--ink:#EAF0FB;
|
|
--ink-2:#93A1BD;
|
|
--ink-3:#5E6C8A;
|
|
--accent:#4FC1FF;
|
|
--accent-dim:rgba(79,193,255,.12);
|
|
--good:#34D399;
|
|
--good-dim:rgba(52,211,153,.12);
|
|
--warn:#FBBF24;
|
|
--warn-dim:rgba(251,191,36,.12);
|
|
--crit:#F87171;
|
|
--crit-dim:rgba(248,113,113,.12);
|
|
--font-ui:'Plus Jakarta Sans',ui-sans-serif,system-ui,sans-serif;
|
|
--font-mono:'IBM Plex Mono',ui-monospace,monospace;
|
|
--radius:10px;
|
|
}
|
|
*{box-sizing:border-box;margin:0;padding:0}
|
|
html{color-scheme:dark}
|
|
body{
|
|
background:var(--bg);color:var(--ink);font-family:var(--font-ui);
|
|
font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;
|
|
min-height:100dvh;
|
|
background-image:radial-gradient(1100px 500px at 75% -10%,rgba(79,193,255,.055),transparent 60%),
|
|
radial-gradient(800px 420px at -5% 105%,rgba(52,211,153,.04),transparent 55%);
|
|
}
|
|
svg{display:block}
|
|
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
|
|
button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
|
|
::selection{background:rgba(79,193,255,.28)}
|
|
|
|
.shell{display:grid;grid-template-columns:236px 1fr;min-height:100dvh}
|
|
|
|
/* ── Sidebar ─────────────────────────── */
|
|
.side{
|
|
border-right:1px solid var(--border-soft);background:rgba(10,16,30,.72);
|
|
padding:20px 14px 16px;display:flex;flex-direction:column;gap:22px;
|
|
position:sticky;top:0;height:100dvh;overflow-y:auto;
|
|
}
|
|
.logo{display:flex;align-items:center;gap:10px;padding:2px 8px}
|
|
.logo-mark{width:32px;height:32px;border-radius:9px;background:linear-gradient(140deg,#123049,#0C1B33);
|
|
border:1px solid rgba(79,193,255,.35);display:grid;place-items:center;color:var(--accent);
|
|
box-shadow:0 0 18px rgba(79,193,255,.18)}
|
|
.logo-name{font-weight:800;font-size:15px;letter-spacing:.02em}
|
|
.logo-sub{font-size:10px;color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;font-weight:600}
|
|
.nav-group{display:flex;flex-direction:column;gap:2px}
|
|
.nav-label{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);padding:0 10px;margin-bottom:6px}
|
|
.nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--ink-2);
|
|
font-weight:600;font-size:13px;width:100%;text-align:left;transition:background .18s,color .18s}
|
|
.nav-item:hover{background:var(--surface-2);color:var(--ink)}
|
|
.nav-item.active{background:var(--accent-dim);color:var(--accent)}
|
|
.nav-item .badge{margin-left:auto;font-family:var(--font-mono);font-size:10.5px;font-weight:600;
|
|
background:var(--surface-3);color:var(--ink-2);border-radius:20px;padding:1px 7px}
|
|
.nav-item .badge.warn{background:var(--warn-dim);color:var(--warn)}
|
|
.nav-item .lock{margin-left:auto;color:var(--ink-3)}
|
|
.side-status{margin-top:auto;border:1px solid var(--border-soft);border-radius:var(--radius);
|
|
background:var(--surface);padding:12px;display:flex;flex-direction:column;gap:8px}
|
|
.side-status h4{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
|
|
.sys-row{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--ink-2)}
|
|
.sys-row .val{margin-left:auto;font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3)}
|
|
.dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
|
|
.dot.good{background:var(--good);box-shadow:0 0 8px rgba(52,211,153,.6)}
|
|
.dot.warn{background:var(--warn)}
|
|
.dot.crit{background:var(--crit)}
|
|
.dot.pulse{animation:pulse 2.2s infinite}
|
|
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
|
|
|
|
/* ── Topbar ─────────────────────────── */
|
|
.main{display:flex;flex-direction:column;min-width:0}
|
|
.topbar{display:flex;align-items:center;gap:14px;padding:14px 26px;border-bottom:1px solid var(--border-soft);
|
|
position:sticky;top:0;z-index:40;background:rgba(8,13,24,.85);backdrop-filter:blur(14px)}
|
|
.crumb{font-size:12.5px;color:var(--ink-3)}
|
|
.crumb b{color:var(--ink);font-weight:700}
|
|
.search{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);
|
|
border-radius:8px;padding:7px 12px;width:260px;color:var(--ink-3);font-size:12.5px;cursor:pointer;transition:border-color .18s}
|
|
.search:hover{border-color:var(--accent)}
|
|
.search kbd{margin-left:auto;font-family:var(--font-mono);font-size:10px;background:var(--surface-3);
|
|
padding:1px 6px;border-radius:4px;color:var(--ink-2)}
|
|
.viewtabs{display:flex;background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:3px;gap:2px;margin-left:auto}
|
|
.viewtab{padding:6px 14px;border-radius:6px;font-size:12.5px;font-weight:600;color:var(--ink-2);transition:all .18s}
|
|
.viewtab:hover{color:var(--ink)}
|
|
.viewtab.active{background:var(--accent-dim);color:var(--accent)}
|
|
.arm{display:flex;align-items:center;gap:7px;border:1px solid var(--border);background:var(--surface);
|
|
border-radius:8px;padding:7px 12px;font-size:12px;font-weight:600;color:var(--ink-2)}
|
|
.avatars{display:flex}
|
|
.avatar{width:28px;height:28px;border-radius:50%;border:2px solid var(--bg);display:grid;place-items:center;
|
|
font-size:10.5px;font-weight:700;margin-left:-6px;position:relative}
|
|
.avatar:first-child{margin-left:0}
|
|
.avatar.home{background:#12354c;color:var(--accent)}
|
|
.avatar.away{background:var(--surface-3);color:var(--ink-3)}
|
|
.avatar .presence{position:absolute;bottom:-1px;right:-1px;width:9px;height:9px;border-radius:50%;border:2px solid var(--bg)}
|
|
.avatar.home .presence{background:var(--good)}
|
|
.avatar.away .presence{background:var(--ink-3)}
|
|
.clock{font-family:var(--font-mono);font-size:12.5px;color:var(--ink-2)}
|
|
|
|
/* ── Content grid ────────────────────── */
|
|
.content{padding:24px 26px;display:none;flex-direction:column;gap:20px;max-width:1560px;width:100%;margin:0 auto}
|
|
.content.active{display:flex}
|
|
.pagehead{display:flex;align-items:baseline;gap:12px}
|
|
.pagehead h1{font-size:20px;font-weight:800;letter-spacing:-.01em}
|
|
.pagehead .sub{font-size:12.5px;color:var(--ink-3)}
|
|
.pagehead .live{margin-left:auto;display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--good);
|
|
font-weight:600;background:var(--good-dim);padding:4px 11px;border-radius:20px}
|
|
|
|
.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
|
|
.kpi{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);padding:14px 16px;
|
|
display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden;transition:border-color .18s}
|
|
.kpi:hover{border-color:var(--border)}
|
|
.kpi .k-label{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);display:flex;align-items:center;gap:7px}
|
|
.kpi .k-value{font-size:24px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
|
|
.kpi .k-value small{font-size:13px;color:var(--ink-3);font-weight:600}
|
|
.kpi .k-meta{font-size:11.5px;color:var(--ink-3)}
|
|
.k-meta .up{color:var(--good)}.k-meta .warn-t{color:var(--warn)}
|
|
.kpi.warn-edge::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--warn)}
|
|
.spark-wrap{position:absolute;right:10px;bottom:10px;width:110px;height:38px}
|
|
|
|
.cols{display:grid;grid-template-columns:1fr 350px;gap:20px;align-items:start}
|
|
.section-h{display:flex;align-items:center;gap:10px;margin-bottom:12px}
|
|
.section-h h2{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
|
|
.section-h .count{font-family:var(--font-mono);font-size:11px;color:var(--ink-3)}
|
|
.section-h .more{margin-left:auto;font-size:12px;color:var(--accent);font-weight:600}
|
|
.section-h .more:hover{text-decoration:underline}
|
|
|
|
.rooms{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
|
|
.room{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);padding:16px;
|
|
display:flex;flex-direction:column;gap:12px;transition:border-color .18s,transform .18s}
|
|
.room:hover{border-color:var(--border);transform:translateY(-1px)}
|
|
.room-top{display:flex;align-items:center;gap:10px}
|
|
.room-ico{width:34px;height:34px;border-radius:8px;background:var(--surface-3);display:grid;place-items:center;color:var(--ink-2)}
|
|
.room-name{font-weight:700;font-size:14px}
|
|
.room-sub{font-size:11px;color:var(--ink-3)}
|
|
.room-env{margin-left:auto;text-align:right}
|
|
.room-temp{font-family:var(--font-mono);font-weight:600;font-size:14px}
|
|
.room-hum{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3)}
|
|
.chips{display:flex;flex-wrap:wrap;gap:6px}
|
|
.chip{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--ink-2);
|
|
background:var(--surface-2);border:1px solid var(--border-soft);border-radius:6px;padding:4px 8px}
|
|
.chip .dot{width:6px;height:6px}
|
|
.chip.off{color:var(--ink-3)}
|
|
.room-foot{display:flex;align-items:center;gap:8px;border-top:1px solid var(--border-soft);padding-top:11px}
|
|
.room-foot .label{font-size:11.5px;color:var(--ink-3)}
|
|
.toggle{margin-left:auto;width:36px;height:20px;border-radius:20px;background:var(--surface-3);position:relative;transition:background .2s;flex-shrink:0}
|
|
.toggle::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--ink-3);transition:all .2s}
|
|
.toggle.on{background:var(--accent)}
|
|
.toggle.on::after{left:18px;background:#04121F}
|
|
.toggle:hover{filter:brightness(1.15)}
|
|
|
|
.rail{display:flex;flex-direction:column;gap:20px}
|
|
.card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);padding:16px}
|
|
.disc-item{display:flex;gap:11px;padding:11px 0;border-top:1px solid var(--border-soft);align-items:flex-start}
|
|
.disc-item:first-of-type{border-top:0;padding-top:2px}
|
|
.disc-ico{width:32px;height:32px;border-radius:8px;background:var(--accent-dim);color:var(--accent);display:grid;place-items:center;flex-shrink:0}
|
|
.disc-name{font-weight:700;font-size:13px}
|
|
.disc-meta{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3);margin-top:2px}
|
|
.disc-src{display:inline-block;font-size:9.5px;font-weight:700;letter-spacing:.08em;color:var(--accent);
|
|
background:var(--accent-dim);border-radius:4px;padding:1px 6px;margin-top:6px;text-transform:uppercase}
|
|
.disc-actions{margin-left:auto;display:flex;flex-direction:column;gap:6px;flex-shrink:0}
|
|
.btn{border-radius:7px;padding:5px 12px;font-size:11.5px;font-weight:700;transition:all .18s;text-align:center}
|
|
.btn-acc{background:var(--accent);color:#03101C}
|
|
.btn-acc:hover{filter:brightness(1.12)}
|
|
.btn-ghost{border:1px solid var(--border);color:var(--ink-2)}
|
|
.btn-ghost:hover{color:var(--ink);border-color:var(--ink-3)}
|
|
|
|
.sensor-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--border-soft)}
|
|
.sensor-row:first-of-type{border-top:0;padding-top:2px}
|
|
.sensor-ico{color:var(--ink-3);flex-shrink:0}
|
|
.sensor-name{font-size:12.5px;font-weight:600}
|
|
.sensor-loc{font-size:10.5px;color:var(--ink-3)}
|
|
.pill{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;border-radius:20px;padding:3px 10px}
|
|
.pill.open{background:var(--warn-dim);color:var(--warn)}
|
|
.pill.closed{background:var(--surface-3);color:var(--ink-2)}
|
|
.pill.locked{background:var(--good-dim);color:var(--good)}
|
|
.pill.tilted{background:var(--warn-dim);color:var(--warn)}
|
|
|
|
.feed{display:flex;flex-direction:column}
|
|
.feed-row{display:flex;gap:10px;padding:8px 0;border-top:1px solid var(--border-soft);font-size:12px}
|
|
.feed-row:first-of-type{border-top:0;padding-top:2px}
|
|
.feed-time{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3);flex-shrink:0;padding-top:2px}
|
|
.feed-txt{color:var(--ink-2)}
|
|
.feed-txt b{color:var(--ink);font-weight:600}
|
|
|
|
.pres-row{display:flex;align-items:center;gap:11px;padding:10px 0;border-top:1px solid var(--border-soft)}
|
|
.pres-row:first-of-type{border-top:0;padding-top:2px}
|
|
.pres-ava{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700}
|
|
.pres-name{font-size:13px;font-weight:700}
|
|
.pres-src{display:flex;gap:5px;margin-top:3px}
|
|
.src-tag{font-size:9px;font-weight:700;letter-spacing:.06em;color:var(--ink-3);border:1px solid var(--border);border-radius:4px;padding:1px 5px;text-transform:uppercase}
|
|
.src-tag.on{color:var(--good);border-color:rgba(52,211,153,.3)}
|
|
|
|
/* ── Face-ID View ────────────────────── */
|
|
.gate{display:grid;grid-template-columns:1fr 360px;gap:20px;align-items:start;max-width:1100px;margin:24px auto 0;width:100%}
|
|
.gate-stage{background:var(--surface);border:1px solid var(--border-soft);border-radius:14px;padding:28px;display:flex;flex-direction:column;align-items:center;gap:22px}
|
|
.gate-head{text-align:center}
|
|
.gate-head h1{font-size:22px;font-weight:800;letter-spacing:-.01em}
|
|
.gate-head p{color:var(--ink-2);font-size:13px;margin-top:6px;max-width:420px}
|
|
.cam{position:relative;width:380px;height:380px;border-radius:16px;background:
|
|
radial-gradient(240px 240px at 50% 46%,#101B31,#0A101F 75%);border:1px solid var(--border);overflow:hidden}
|
|
.cam-corner{position:absolute;width:26px;height:26px;border:2.5px solid var(--accent);opacity:.9}
|
|
.cam-corner.tl{top:14px;left:14px;border-right:0;border-bottom:0;border-radius:6px 0 0 0}
|
|
.cam-corner.tr{top:14px;right:14px;border-left:0;border-bottom:0;border-radius:0 6px 0 0}
|
|
.cam-corner.bl{bottom:14px;left:14px;border-right:0;border-top:0;border-radius:0 0 0 6px}
|
|
.cam-corner.br{bottom:14px;right:14px;border-left:0;border-top:0;border-radius:0 0 6px 0}
|
|
.face-outline{position:absolute;inset:0;margin:auto;color:rgba(79,193,255,.5)}
|
|
.scanline{position:absolute;left:8%;width:84%;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);
|
|
box-shadow:0 0 14px rgba(79,193,255,.65);animation:scan 2.6s ease-in-out infinite;top:16%}
|
|
@keyframes scan{0%,100%{top:16%}50%{top:80%}}
|
|
.cam-status{position:absolute;bottom:14px;left:0;right:0;text-align:center;font-family:var(--font-mono);
|
|
font-size:11px;color:var(--accent);letter-spacing:.08em}
|
|
.gate-actions{display:flex;gap:10px}
|
|
.btn-lg{padding:10px 22px;font-size:13px;border-radius:9px}
|
|
.gate-note{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--ink-3)}
|
|
.gate-note svg{color:var(--good);flex-shrink:0}
|
|
.steps{display:flex;flex-direction:column;gap:0}
|
|
.step{display:flex;gap:13px;padding:14px 0;border-top:1px solid var(--border-soft)}
|
|
.step:first-child{border-top:0;padding-top:4px}
|
|
.step-ico{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;border:1px solid var(--border)}
|
|
.step.done .step-ico{background:var(--good-dim);color:var(--good);border-color:transparent}
|
|
.step.active .step-ico{background:var(--accent-dim);color:var(--accent);border-color:rgba(79,193,255,.4);animation:pulse 1.8s infinite}
|
|
.step.todo .step-ico{color:var(--ink-3)}
|
|
.step-t{font-weight:700;font-size:13px}
|
|
.step.todo .step-t{color:var(--ink-3)}
|
|
.step-d{font-size:11.5px;color:var(--ink-3);margin-top:2px}
|
|
.why{margin-top:4px}
|
|
.why li{list-style:none;display:flex;gap:10px;padding:9px 0;border-top:1px solid var(--border-soft);font-size:12px;color:var(--ink-2)}
|
|
.why li:first-child{border-top:0}
|
|
.why svg{flex-shrink:0;color:var(--accent);margin-top:1px}
|
|
|
|
/* ── App View ────────────────────────── */
|
|
.appview{display:grid;grid-template-columns:auto 1fr;gap:44px;align-items:start;max-width:1100px;margin:10px auto 0;width:100%;padding:10px 0 30px}
|
|
.phone{width:330px;background:#05080F;border:1px solid var(--border);border-radius:42px;padding:12px;
|
|
box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 0 1px rgba(79,193,255,.06)}
|
|
.phone-screen{background:var(--bg);border-radius:32px;overflow:hidden;border:1px solid var(--border-soft)}
|
|
.p-status{display:flex;justify-content:space-between;padding:12px 22px 4px;font-family:var(--font-mono);font-size:10px;color:var(--ink-2)}
|
|
.p-notch{width:110px;height:26px;background:#05080F;border-radius:20px;margin:-30px auto 6px;position:relative;z-index:2}
|
|
.p-body{padding:10px 16px 14px;display:flex;flex-direction:column;gap:14px}
|
|
.p-hello .hi{font-size:11px;color:var(--ink-3)}
|
|
.p-hello h3{font-size:17px;font-weight:800}
|
|
.p-home-pill{display:flex;align-items:center;gap:7px;background:var(--good-dim);color:var(--good);
|
|
font-size:10.5px;font-weight:700;border-radius:20px;padding:4px 10px}
|
|
.p-row{display:flex;align-items:center;justify-content:space-between}
|
|
.p-stats{display:flex;gap:8px}
|
|
.p-stat{flex:1;background:var(--surface);border:1px solid var(--border-soft);border-radius:10px;padding:9px 10px}
|
|
.p-stat .v{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}
|
|
.p-stat .l{font-size:9.5px;color:var(--ink-3);font-weight:600;letter-spacing:.05em;text-transform:uppercase;margin-top:1px}
|
|
.p-stat.warn .v{color:var(--warn)}
|
|
.p-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
|
|
.p-tile{background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;padding:11px;display:flex;flex-direction:column;gap:8px;transition:border-color .18s;cursor:pointer}
|
|
.p-tile:hover{border-color:var(--border)}
|
|
.p-tile.on{background:linear-gradient(150deg,rgba(79,193,255,.14),rgba(79,193,255,.05));border-color:rgba(79,193,255,.3)}
|
|
.p-tile-top{display:flex;align-items:center;justify-content:space-between;color:var(--ink-2)}
|
|
.p-tile.on .p-tile-top{color:var(--accent)}
|
|
.p-tile .t-name{font-size:11.5px;font-weight:700}
|
|
.p-tile .t-state{font-size:9.5px;color:var(--ink-3)}
|
|
.mini-toggle{width:28px;height:16px;border-radius:16px;background:var(--surface-3);position:relative}
|
|
.mini-toggle::after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--ink-3);transition:all .2s}
|
|
.p-tile.on .mini-toggle{background:var(--accent)}
|
|
.p-tile.on .mini-toggle::after{left:14px;background:#04121F}
|
|
.p-list{background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;padding:4px 12px}
|
|
.p-list .sensor-row{padding:8px 0}
|
|
.p-nav{display:flex;border-top:1px solid var(--border-soft);padding:9px 8px 6px;justify-content:space-around;background:rgba(10,16,30,.9)}
|
|
.p-nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:9px;font-weight:600;color:var(--ink-3);padding:2px 10px}
|
|
.p-nav-item.active{color:var(--accent)}
|
|
.p-home-bar{width:100px;height:4px;border-radius:4px;background:var(--surface-3);margin:6px auto 4px}
|
|
.app-notes{display:flex;flex-direction:column;gap:14px;padding-top:8px}
|
|
.app-notes h1{font-size:20px;font-weight:800;letter-spacing:-.01em;margin-bottom:2px}
|
|
.app-notes>p{color:var(--ink-2);font-size:13px;max-width:52ch}
|
|
.note{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);padding:14px 16px;display:flex;gap:12px}
|
|
.note svg{color:var(--accent);flex-shrink:0;margin-top:2px}
|
|
.note b{display:block;font-size:13px;margin-bottom:3px}
|
|
.note p{font-size:12px;color:var(--ink-2)}
|
|
|
|
/* ── Reveal & misc ───────────────────── */
|
|
.reveal{opacity:0;transform:translateY(10px);animation:reveal .55s cubic-bezier(.2,.7,.3,1) forwards}
|
|
@keyframes reveal{to{opacity:1;transform:none}}
|
|
.d1{animation-delay:.05s}.d2{animation-delay:.12s}.d3{animation-delay:.19s}.d4{animation-delay:.26s}.d5{animation-delay:.33s}
|
|
.tooltip{position:fixed;pointer-events:none;background:var(--surface-3);border:1px solid var(--border);
|
|
border-radius:7px;padding:5px 9px;font-family:var(--font-mono);font-size:10.5px;color:var(--ink);
|
|
transform:translate(-50%,-130%);opacity:0;transition:opacity .12s;z-index:99;white-space:nowrap}
|
|
.tooltip.show{opacity:1}
|
|
@media (prefers-reduced-motion:reduce){
|
|
*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
|
|
.reveal{opacity:1;transform:none}
|
|
}
|
|
@media (max-width:1280px){.kpis{grid-template-columns:repeat(3,1fr)}.rooms{grid-template-columns:1fr 1fr}.cols{grid-template-columns:1fr}.gate{grid-template-columns:1fr}}
|
|
@media (max-width:900px){.shell{grid-template-columns:1fr}.side{display:none}.appview{grid-template-columns:1fr}.rooms{grid-template-columns:1fr}.kpis{grid-template-columns:1fr 1fr}.viewtabs{margin-left:0}.topbar{flex-wrap:wrap}.cam{width:100%;max-width:380px}}
|
|
</style>
|
|
|
|
<div class="shell">
|
|
<!-- ══ SIDEBAR ══ -->
|
|
<aside class="side">
|
|
<div class="logo">
|
|
<div class="logo-mark">
|
|
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 10.5 12 3l9 7.5"/><path d="M5 9.5V21h14V9.5"/><path d="M9.5 21v-6h5v6"/></svg>
|
|
</div>
|
|
<div>
|
|
<div class="logo-name">HomeOS</div>
|
|
<div class="logo-sub">Self-Hosted</div>
|
|
</div>
|
|
</div>
|
|
|
|
<nav class="nav-group" aria-label="Übersicht">
|
|
<div class="nav-label">Übersicht</div>
|
|
<button class="nav-item active"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><rect x="3" y="3" width="7" height="9" rx="1.5"/><rect x="14" y="3" width="7" height="5" rx="1.5"/><rect x="14" y="12" width="7" height="9" rx="1.5"/><rect x="3" y="16" width="7" height="5" rx="1.5"/></svg>Dashboard</button>
|
|
<button class="nav-item"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21h18"/><path d="M5 21V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16"/><path d="M14 12h.01"/></svg>Räume<span class="badge">6</span></button>
|
|
<button class="nav-item"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><rect x="5" y="5" width="14" height="14" rx="2"/><path d="M9 2v3M15 2v3M9 19v3M15 19v3M2 9h3M2 15h3M19 9h3M19 15h3"/></svg>Geräte<span class="badge">52</span></button>
|
|
</nav>
|
|
|
|
<nav class="nav-group" aria-label="Personen">
|
|
<div class="nav-label">Personen</div>
|
|
<button class="nav-item"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="9" cy="8" r="3.5"/><path d="M2.5 20c.8-3.2 3.4-5 6.5-5s5.7 1.8 6.5 5"/><circle cx="17.5" cy="9" r="2.5"/><path d="M16.5 14.5c2.6.2 4.4 1.7 5 4.5"/></svg>Personen & Anwesenheit</button>
|
|
</nav>
|
|
|
|
<nav class="nav-group" aria-label="Sicherheit">
|
|
<div class="nav-label">Sicherheit</div>
|
|
<button class="nav-item"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="3" width="16" height="18" rx="2"/><path d="M12 3v18M4 12h16"/></svg>Fenster & Türen<span class="badge warn">2</span></button>
|
|
<button class="nav-item"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3 4.5 6v5.5c0 4.6 3.2 8 7.5 9.5 4.3-1.5 7.5-4.9 7.5-9.5V6L12 3z"/><path d="m9 12 2 2 4-4"/></svg>Zugang & Face-ID</button>
|
|
</nav>
|
|
|
|
<nav class="nav-group" aria-label="System">
|
|
<div class="nav-label">System</div>
|
|
<button class="nav-item"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="12" cy="12" r="2"/><path d="M16.2 7.8a6 6 0 0 1 0 8.4M7.8 16.2a6 6 0 0 1 0-8.4M19 5a10 10 0 0 1 0 14M5 19A10 10 0 0 1 5 5"/></svg>Netzwerk & Discovery<span class="badge">2</span></button>
|
|
<button class="nav-item"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M13 3 5 13h6l-1 8 8-10h-6l1-8z"/></svg>Automationen<span class="badge">14</span></button>
|
|
<button class="nav-item"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.7 1.7 0 0 0 .34 1.87l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.7 1.7 0 0 0-1.87-.34 1.7 1.7 0 0 0-1 1.55V21a2 2 0 1 1-4 0v-.09a1.7 1.7 0 0 0-1-1.55 1.7 1.7 0 0 0-1.87.34l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.7 1.7 0 0 0 .34-1.87 1.7 1.7 0 0 0-1.55-1H3a2 2 0 1 1 0-4h.09a1.7 1.7 0 0 0 1.55-1 1.7 1.7 0 0 0-.34-1.87l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.7 1.7 0 0 0 1.87.34h.01a1.7 1.7 0 0 0 1-1.55V3a2 2 0 1 1 4 0v.09a1.7 1.7 0 0 0 1 1.55h.01a1.7 1.7 0 0 0 1.87-.34l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.7 1.7 0 0 0-.34 1.87v.01a1.7 1.7 0 0 0 1.55 1H21a2 2 0 1 1 0 4h-.09a1.7 1.7 0 0 0-1.55 1z"/></svg>Einstellungen<span class="lock"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"><rect x="5" y="11" width="14" height="10" rx="2"/><path d="M8 11V7a4 4 0 0 1 8 0v4"/></svg></span></button>
|
|
</nav>
|
|
|
|
<div class="side-status">
|
|
<h4>Systemstatus</h4>
|
|
<div class="sys-row"><span class="dot good pulse"></span>Reverb WebSocket<span class="val">14 ms</span></div>
|
|
<div class="sys-row"><span class="dot good"></span>MQTT Broker<span class="val">online</span></div>
|
|
<div class="sys-row"><span class="dot good"></span>Zigbee2MQTT<span class="val">31 Ger.</span></div>
|
|
<div class="sys-row"><span class="dot warn"></span>Discovery-Scan<span class="val">läuft</span></div>
|
|
</div>
|
|
</aside>
|
|
|
|
<!-- ══ MAIN ══ -->
|
|
<div class="main">
|
|
<header class="topbar">
|
|
<span class="crumb">Übersicht / <b>Dashboard</b></span>
|
|
<div class="search" role="button" tabindex="0">
|
|
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></svg>
|
|
Gerät, Raum oder Person suchen<kbd>⌘K</kbd>
|
|
</div>
|
|
<div class="viewtabs" role="tablist" aria-label="Ansichten">
|
|
<button class="viewtab active" data-view="dash" role="tab" aria-selected="true">Dashboard</button>
|
|
<button class="viewtab" data-view="gate" role="tab" aria-selected="false">Face-ID Zugang</button>
|
|
<button class="viewtab" data-view="app" role="tab" aria-selected="false">Mobile App</button>
|
|
</div>
|
|
<div class="arm"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3 4.5 6v5.5c0 4.6 3.2 8 7.5 9.5 4.3-1.5 7.5-4.9 7.5-9.5V6L12 3z"/></svg>Unscharf</div>
|
|
<div class="avatars">
|
|
<div class="avatar home">BB<span class="presence"></span></div>
|
|
<div class="avatar home">LK<span class="presence"></span></div>
|
|
<div class="avatar away">MK<span class="presence"></span></div>
|
|
<div class="avatar away">JK<span class="presence"></span></div>
|
|
</div>
|
|
<span class="clock">17:42</span>
|
|
</header>
|
|
|
|
<!-- ── VIEW: DASHBOARD ── -->
|
|
<main class="content active" id="view-dash">
|
|
<div class="pagehead reveal">
|
|
<h1>Guten Abend, Boban</h1>
|
|
<span class="sub">Donnerstag, 17. Juli · Sonnenuntergang 21:24</span>
|
|
<span class="live"><span class="dot good pulse"></span>Live · Reverb verbunden</span>
|
|
</div>
|
|
|
|
<section class="kpis reveal d1" aria-label="Kennzahlen">
|
|
<div class="kpi">
|
|
<span class="k-label"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="5" y="5" width="14" height="14" rx="2"/><path d="M9 2v3M15 2v3M9 19v3M15 19v3"/></svg>Geräte online</span>
|
|
<span class="k-value">47<small> / 52</small></span>
|
|
<span class="k-meta"><span class="up">▲ 2</span> seit gestern · 5 offline</span>
|
|
</div>
|
|
<div class="kpi">
|
|
<span class="k-label"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M9 18h6M10 21h4"/><path d="M12 3a6 6 0 0 1 3.6 10.8c-.6.5-.6 1.2-.6 2.2H9c0-1-.1-1.7-.7-2.2A6 6 0 0 1 12 3z"/></svg>Lichter an</span>
|
|
<span class="k-value">6<small> / 18</small></span>
|
|
<span class="k-meta">Wohnzimmer, Küche, Büro</span>
|
|
</div>
|
|
<div class="kpi warn-edge">
|
|
<span class="k-label"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="4" y="3" width="16" height="18" rx="2"/><path d="M12 3v18M4 12h16"/></svg>Fenster offen</span>
|
|
<span class="k-value">2</span>
|
|
<span class="k-meta"><span class="warn-t">Küche · Schlafzimmer</span></span>
|
|
</div>
|
|
<div class="kpi">
|
|
<span class="k-label"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="12" cy="8" r="3.5"/><path d="M5 20c.9-3.5 3.7-5.5 7-5.5s6.1 2 7 5.5"/></svg>Anwesend</span>
|
|
<span class="k-value">2<small> / 4</small></span>
|
|
<span class="k-meta">Mia & Jan unterwegs</span>
|
|
</div>
|
|
<div class="kpi" id="energy-kpi">
|
|
<span class="k-label"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round"><path d="M13 3 5 13h6l-1 8 8-10h-6l1-8z"/></svg>Energie heute</span>
|
|
<span class="k-value">12,4<small> kWh</small></span>
|
|
<span class="k-meta"><span class="up">▼ 8 %</span> vs. gestern</span>
|
|
<div class="spark-wrap">
|
|
<svg id="spark" viewBox="0 0 110 38" width="110" height="38" role="img" aria-label="Energieverlauf heute, stündlich, 0,3 bis 1,8 Kilowattstunden">
|
|
<path id="spark-area" fill="rgba(79,193,255,.13)" stroke="none"></path>
|
|
<path id="spark-line" fill="none" stroke="#4FC1FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
|
<circle id="spark-end" r="3" fill="#4FC1FF"></circle>
|
|
</svg>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<div class="cols">
|
|
<section class="reveal d2" aria-label="Räume">
|
|
<div class="section-h">
|
|
<h2>Räume</h2><span class="count">6 / 6</span>
|
|
<button class="more">Alle Räume verwalten →</button>
|
|
</div>
|
|
<div class="rooms">
|
|
|
|
<article class="room">
|
|
<div class="room-top">
|
|
<div class="room-ico"><svg width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12v7h16v-7"/><path d="M2 12a3 3 0 0 1 3-3V6a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v3a3 3 0 0 1 3 3v2H2v-2z"/><path d="M6 19v2M18 19v2"/></svg></div>
|
|
<div><div class="room-name">Wohnzimmer</div><div class="room-sub">9 Geräte · 2 Personen</div></div>
|
|
<div class="room-env"><div class="room-temp">22,5 °C</div><div class="room-hum">44 % rF</div></div>
|
|
</div>
|
|
<div class="chips">
|
|
<span class="chip"><span class="dot good"></span>TV an</span>
|
|
<span class="chip"><span class="dot good"></span>Sonos spielt</span>
|
|
<span class="chip"><span class="dot good"></span>3 Lichter</span>
|
|
<span class="chip off"><span class="dot" style="background:var(--ink-3)"></span>Fenster zu</span>
|
|
</div>
|
|
<div class="room-foot"><span class="label">Beleuchtung</span><button class="toggle on" role="switch" aria-checked="true" aria-label="Beleuchtung Wohnzimmer"></button></div>
|
|
</article>
|
|
|
|
<article class="room">
|
|
<div class="room-top">
|
|
<div class="room-ico"><svg width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3h18v6H3z"/><path d="M3 9v12h18V9"/><path d="M8 13h3"/></svg></div>
|
|
<div><div class="room-name">Küche</div><div class="room-sub">7 Geräte</div></div>
|
|
<div class="room-env"><div class="room-temp">23,1 °C</div><div class="room-hum">51 % rF</div></div>
|
|
</div>
|
|
<div class="chips">
|
|
<span class="chip"><span class="dot warn"></span>Fenster offen</span>
|
|
<span class="chip"><span class="dot good"></span>2 Lichter</span>
|
|
<span class="chip off"><span class="dot" style="background:var(--ink-3)"></span>Ofen aus</span>
|
|
</div>
|
|
<div class="room-foot"><span class="label">Beleuchtung</span><button class="toggle on" role="switch" aria-checked="true" aria-label="Beleuchtung Küche"></button></div>
|
|
</article>
|
|
|
|
<article class="room">
|
|
<div class="room-top">
|
|
<div class="room-ico"><svg width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 18v-6a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6"/><path d="M3 18h18M5 10V6a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v4"/><path d="M12 4v6"/></svg></div>
|
|
<div><div class="room-name">Schlafzimmer</div><div class="room-sub">5 Geräte</div></div>
|
|
<div class="room-env"><div class="room-temp">19,8 °C</div><div class="room-hum">48 % rF</div></div>
|
|
</div>
|
|
<div class="chips">
|
|
<span class="chip"><span class="dot warn"></span>Fenster gekippt</span>
|
|
<span class="chip off"><span class="dot" style="background:var(--ink-3)"></span>Licht aus</span>
|
|
</div>
|
|
<div class="room-foot"><span class="label">Beleuchtung</span><button class="toggle" role="switch" aria-checked="false" aria-label="Beleuchtung Schlafzimmer"></button></div>
|
|
</article>
|
|
|
|
<article class="room">
|
|
<div class="room-top">
|
|
<div class="room-ico"><svg width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><rect x="3" y="4" width="18" height="13" rx="2"/><path d="M8 21h8M12 17v4"/></svg></div>
|
|
<div><div class="room-name">Büro</div><div class="room-sub">8 Geräte · 1 Person</div></div>
|
|
<div class="room-env"><div class="room-temp">21,9 °C</div><div class="room-hum">40 % rF</div></div>
|
|
</div>
|
|
<div class="chips">
|
|
<span class="chip"><span class="dot good"></span>PC an</span>
|
|
<span class="chip"><span class="dot good"></span>1 Licht</span>
|
|
<span class="chip off"><span class="dot" style="background:var(--ink-3)"></span>Fenster zu</span>
|
|
</div>
|
|
<div class="room-foot"><span class="label">Beleuchtung</span><button class="toggle on" role="switch" aria-checked="true" aria-label="Beleuchtung Büro"></button></div>
|
|
</article>
|
|
|
|
<article class="room">
|
|
<div class="room-top">
|
|
<div class="room-ico"><svg width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 21V8l7-5v18"/><path d="M4 21V11l5-3M4 21h16"/></svg></div>
|
|
<div><div class="room-name">Kinderzimmer</div><div class="room-sub">4 Geräte</div></div>
|
|
<div class="room-env"><div class="room-temp">20,4 °C</div><div class="room-hum">46 % rF</div></div>
|
|
</div>
|
|
<div class="chips">
|
|
<span class="chip off"><span class="dot" style="background:var(--ink-3)"></span>Alles aus</span>
|
|
<span class="chip off"><span class="dot" style="background:var(--ink-3)"></span>Fenster zu</span>
|
|
</div>
|
|
<div class="room-foot"><span class="label">Beleuchtung</span><button class="toggle" role="switch" aria-checked="false" aria-label="Beleuchtung Kinderzimmer"></button></div>
|
|
</article>
|
|
|
|
<article class="room">
|
|
<div class="room-top">
|
|
<div class="room-ico"><svg width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12h16v3a5 5 0 0 1-5 5H9a5 5 0 0 1-5-5v-3z"/><path d="M6 12V6a2 2 0 0 1 4 0"/><path d="M15 20l-1 2M9 20l1 2"/></svg></div>
|
|
<div><div class="room-name">Badezimmer</div><div class="room-sub">3 Geräte</div></div>
|
|
<div class="room-env"><div class="room-temp">24,2 °C</div><div class="room-hum">68 % rF</div></div>
|
|
</div>
|
|
<div class="chips">
|
|
<span class="chip"><span class="dot warn"></span>Feuchte hoch</span>
|
|
<span class="chip"><span class="dot good"></span>Lüfter an</span>
|
|
</div>
|
|
<div class="room-foot"><span class="label">Beleuchtung</span><button class="toggle" role="switch" aria-checked="false" aria-label="Beleuchtung Badezimmer"></button></div>
|
|
</article>
|
|
|
|
</div>
|
|
</section>
|
|
|
|
<aside class="rail">
|
|
<section class="card reveal d3" aria-label="Neue Geräte">
|
|
<div class="section-h" style="margin-bottom:8px">
|
|
<h2>Neue Geräte erkannt</h2>
|
|
<span class="count">Scan 17:39</span>
|
|
</div>
|
|
<div class="disc-item">
|
|
<div class="disc-ico"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><rect x="6" y="3" width="12" height="18" rx="2"/><circle cx="12" cy="14" r="3.5"/><circle cx="12" cy="7" r="1"/></svg></div>
|
|
<div>
|
|
<div class="disc-name">Sonos One SL</div>
|
|
<div class="disc-meta">192.168.10.87 · 48:A6:B8:2E:11:0C</div>
|
|
<span class="disc-src">mDNS · _sonos._tcp</span>
|
|
</div>
|
|
<div class="disc-actions">
|
|
<button class="btn btn-acc">Zuweisen</button>
|
|
<button class="btn btn-ghost">Ignorieren</button>
|
|
</div>
|
|
</div>
|
|
<div class="disc-item">
|
|
<div class="disc-ico"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M2 8.5C5 5.8 8.4 4.5 12 4.5s7 1.3 10 4M5 12.2c2-1.8 4.4-2.7 7-2.7s5 .9 7 2.7M8.2 15.8c1.1-1 2.4-1.5 3.8-1.5s2.7.5 3.8 1.5"/><circle cx="12" cy="19" r="1.3" fill="currentColor" stroke="none"/></svg></div>
|
|
<div>
|
|
<div class="disc-name">Shelly Plus 1PM</div>
|
|
<div class="disc-meta">192.168.10.104 · 8C:BF:EA:71:A3:52</div>
|
|
<span class="disc-src">SSDP / HTTP</span>
|
|
</div>
|
|
<div class="disc-actions">
|
|
<button class="btn btn-acc">Zuweisen</button>
|
|
<button class="btn btn-ghost">Ignorieren</button>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="card reveal d4" aria-label="Fenster und Türen">
|
|
<div class="section-h" style="margin-bottom:6px">
|
|
<h2>Fenster & Türen</h2><span class="count">8 Kontakte</span>
|
|
</div>
|
|
<div class="sensor-row">
|
|
<span class="sensor-ico"><svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="4" y="3" width="16" height="18" rx="2"/><path d="M12 3v18M4 12h16"/></svg></span>
|
|
<div><div class="sensor-name">Fenster Küche</div><div class="sensor-loc">seit 12 min</div></div>
|
|
<span class="pill open"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><path d="M12 5v14M5 12h14"/></svg>Offen</span>
|
|
</div>
|
|
<div class="sensor-row">
|
|
<span class="sensor-ico"><svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="4" y="3" width="16" height="18" rx="2"/><path d="M12 3v18M4 12h16"/></svg></span>
|
|
<div><div class="sensor-name">Fenster Schlafzimmer</div><div class="sensor-loc">seit 2 h · gekippt</div></div>
|
|
<span class="pill tilted">Gekippt</span>
|
|
</div>
|
|
<div class="sensor-row">
|
|
<span class="sensor-ico"><svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M14 3H8a2 2 0 0 0-2 2v16h12V5a2 2 0 0 0-2-2h-2z"/><circle cx="14.5" cy="12" r="1" fill="currentColor" stroke="none"/></svg></span>
|
|
<div><div class="sensor-name">Haustür</div><div class="sensor-loc">verriegelt 16:05</div></div>
|
|
<span class="pill locked"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><rect x="5" y="11" width="14" height="10" rx="2"/><path d="M8 11V7a4 4 0 0 1 8 0v4"/></svg>Verriegelt</span>
|
|
</div>
|
|
<div class="sensor-row">
|
|
<span class="sensor-ico"><svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M14 3H8a2 2 0 0 0-2 2v16h12V5a2 2 0 0 0-2-2h-2z"/><circle cx="14.5" cy="12" r="1" fill="currentColor" stroke="none"/></svg></span>
|
|
<div><div class="sensor-name">Terrassentür</div><div class="sensor-loc">geschlossen 17:12</div></div>
|
|
<span class="pill closed">Geschlossen</span>
|
|
</div>
|
|
<div class="sensor-row">
|
|
<span class="sensor-ico"><svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="4" y="3" width="16" height="18" rx="2"/><path d="M12 3v18M4 12h16"/></svg></span>
|
|
<div><div class="sensor-name">Fenster Büro</div><div class="sensor-loc">geschlossen 09:40</div></div>
|
|
<span class="pill closed">Geschlossen</span>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="card reveal d4" aria-label="Anwesenheit">
|
|
<div class="section-h" style="margin-bottom:6px">
|
|
<h2>Anwesenheit</h2><span class="count">2 / 4 zuhause</span>
|
|
</div>
|
|
<div class="pres-row">
|
|
<div class="pres-ava" style="background:#12354c;color:var(--accent)">BB</div>
|
|
<div><div class="pres-name">Boban</div><div class="pres-src"><span class="src-tag on">WLAN</span><span class="src-tag on">BLE</span><span class="src-tag">GPS</span></div></div>
|
|
<span class="pill locked">Zuhause</span>
|
|
</div>
|
|
<div class="pres-row">
|
|
<div class="pres-ava" style="background:#12354c;color:var(--accent)">LK</div>
|
|
<div><div class="pres-name">Lena</div><div class="pres-src"><span class="src-tag on">WLAN</span><span class="src-tag">BLE</span><span class="src-tag on">GPS</span></div></div>
|
|
<span class="pill locked">Zuhause</span>
|
|
</div>
|
|
<div class="pres-row">
|
|
<div class="pres-ava" style="background:var(--surface-3);color:var(--ink-3)">MK</div>
|
|
<div><div class="pres-name">Mia</div><div class="pres-src"><span class="src-tag">WLAN</span><span class="src-tag">BLE</span><span class="src-tag on">GPS</span></div></div>
|
|
<span class="pill closed">Unterwegs</span>
|
|
</div>
|
|
<div class="pres-row">
|
|
<div class="pres-ava" style="background:var(--surface-3);color:var(--ink-3)">JK</div>
|
|
<div><div class="pres-name">Jan</div><div class="pres-src"><span class="src-tag">WLAN</span><span class="src-tag">BLE</span><span class="src-tag on">GPS</span></div></div>
|
|
<span class="pill closed">Unterwegs</span>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="card reveal d5" aria-label="Live-Ereignisse">
|
|
<div class="section-h" style="margin-bottom:6px">
|
|
<h2>Live-Ereignisse</h2>
|
|
<span class="count" style="display:flex;align-items:center;gap:6px"><span class="dot good pulse"></span>Reverb</span>
|
|
</div>
|
|
<div class="feed">
|
|
<div class="feed-row"><span class="feed-time">17:41:12</span><span class="feed-txt"><b>Fenster Küche</b> geöffnet — Automation „Heizung Küche pausieren" ausgelöst</span></div>
|
|
<div class="feed-row"><span class="feed-time">17:39:04</span><span class="feed-txt">Discovery: <b>Sonos One SL</b> per mDNS gefunden</span></div>
|
|
<div class="feed-row"><span class="feed-time">17:36:48</span><span class="feed-txt"><b>Lena</b> zuhause angekommen (WLAN verbunden)</span></div>
|
|
<div class="feed-row"><span class="feed-time">17:30:15</span><span class="feed-txt"><b>TV Wohnzimmer</b> eingeschaltet</span></div>
|
|
<div class="feed-row"><span class="feed-time">17:12:33</span><span class="feed-txt"><b>Terrassentür</b> geschlossen</span></div>
|
|
</div>
|
|
</section>
|
|
</aside>
|
|
</div>
|
|
</main>
|
|
|
|
<!-- ── VIEW: FACE-ID GATE ── -->
|
|
<main class="content" id="view-gate">
|
|
<div class="gate">
|
|
<section class="gate-stage reveal">
|
|
<div class="gate-head">
|
|
<h1>Einstellungen sind geschützt</h1>
|
|
<p>Bestätige deine Identität. Die Freigabe erfolgt über den Plattform-Authenticator deines Geräts — ein Foto oder Video kann diesen Schritt nicht auslösen.</p>
|
|
</div>
|
|
<div class="cam" role="img" aria-label="Kamera-Vorschau mit Gesichtsscan">
|
|
<span class="cam-corner tl"></span><span class="cam-corner tr"></span>
|
|
<span class="cam-corner bl"></span><span class="cam-corner br"></span>
|
|
<svg class="face-outline" width="190" height="230" viewBox="0 0 190 230" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-dasharray="7 9">
|
|
<ellipse cx="95" cy="100" rx="62" ry="80"/>
|
|
<path d="M60 190c10 14 24 22 35 22s25-8 35-22" opacity=".55"/>
|
|
</svg>
|
|
<div class="scanline"></div>
|
|
<div class="cam-status">LIVENESS-PRÜFUNG · TIEFENANALYSE AKTIV</div>
|
|
</div>
|
|
<div class="gate-actions">
|
|
<button class="btn btn-acc btn-lg">Scan starten</button>
|
|
<button class="btn btn-ghost btn-lg">Mit Passkey entsperren</button>
|
|
</div>
|
|
<div class="gate-note">
|
|
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3 4.5 6v5.5c0 4.6 3.2 8 7.5 9.5 4.3-1.5 7.5-4.9 7.5-9.5V6L12 3z"/><path d="m9 12 2 2 4-4"/></svg>
|
|
Biometrie verlässt das Gerät nie · WebAuthn (FIDO2) · Kein Server-Abgleich von Gesichtsdaten
|
|
</div>
|
|
</section>
|
|
|
|
<aside class="rail">
|
|
<section class="card reveal d2">
|
|
<div class="section-h" style="margin-bottom:4px"><h2>Ablauf</h2></div>
|
|
<div class="steps">
|
|
<div class="step done">
|
|
<div class="step-ico"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m4.5 12.5 5 5 10-11"/></svg></div>
|
|
<div><div class="step-t">Gesicht erkannt</div><div class="step-d">Person „Boban" identifiziert · Konfidenz 99,2 %</div></div>
|
|
</div>
|
|
<div class="step active">
|
|
<div class="step-ico"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"><circle cx="12" cy="12" r="8.5" stroke-dasharray="34 20"/></svg></div>
|
|
<div><div class="step-t">Liveness-Prüfung läuft</div><div class="step-d">3D-Tiefenprüfung durch Secure Enclave / TPM — kein Bild, kein Video, kein Bildschirm-Replay</div></div>
|
|
</div>
|
|
<div class="step todo">
|
|
<div class="step-ico"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"><rect x="5" y="11" width="14" height="10" rx="2"/><path d="M8 11V7a4 4 0 0 1 8 0v4"/></svg></div>
|
|
<div><div class="step-t">Freigabe der Einstellungen</div><div class="step-d">Sitzung 15 Minuten gültig, danach erneute Prüfung</div></div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="card reveal d3">
|
|
<div class="section-h" style="margin-bottom:4px"><h2>Warum so und nicht per Webcam-Foto?</h2></div>
|
|
<ul class="why">
|
|
<li><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="m4.5 12.5 5 5 10-11"/></svg><span><b>Hardware-Liveness:</b> Face ID / Windows Hello nutzen Infrarot- und Tiefensensoren — ein Foto oder Display-Replay scheitert an der 3D-Prüfung.</span></li>
|
|
<li><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="m4.5 12.5 5 5 10-11"/></svg><span><b>WebAuthn-Standard:</b> Der Browser bestätigt nur „reale Person verifiziert" — Gesichtsdaten bleiben in der Secure Enclave, nie auf dem Server.</span></li>
|
|
<li><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="m4.5 12.5 5 5 10-11"/></svg><span><b>Kamera-Erkennung als Komfort:</b> Die eigene Gesichtserkennung identifiziert nur, <i>wer</i> vor dem Panel steht (Personalisierung) — die Sicherheitsfreigabe macht immer WebAuthn.</span></li>
|
|
</ul>
|
|
</section>
|
|
</aside>
|
|
</div>
|
|
</main>
|
|
|
|
<!-- ── VIEW: MOBILE APP ── -->
|
|
<main class="content" id="view-app">
|
|
<div class="appview">
|
|
<div class="phone reveal">
|
|
<div class="phone-screen">
|
|
<div class="p-status"><span>17:42</span><span>5G · 87 %</span></div>
|
|
<div class="p-notch"></div>
|
|
<div class="p-body">
|
|
<div class="p-row p-hello">
|
|
<div><div class="hi">Guten Abend</div><h3>Boban</h3></div>
|
|
<span class="p-home-pill"><span class="dot good"></span>2 zuhause</span>
|
|
</div>
|
|
<div class="p-stats">
|
|
<div class="p-stat"><div class="v">6</div><div class="l">Lichter an</div></div>
|
|
<div class="p-stat"><div class="v">2</div><div class="l">TVs an</div></div>
|
|
<div class="p-stat warn"><div class="v">2</div><div class="l">Fenster offen</div></div>
|
|
</div>
|
|
<div class="p-grid">
|
|
<div class="p-tile on">
|
|
<div class="p-tile-top"><svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M9 18h6M10 21h4"/><path d="M12 3a6 6 0 0 1 3.6 10.8c-.6.5-.6 1.2-.6 2.2H9c0-1-.1-1.7-.7-2.2A6 6 0 0 1 12 3z"/></svg><span class="mini-toggle"></span></div>
|
|
<div><div class="t-name">Wohnzimmer</div><div class="t-state">3 Lichter · 60 %</div></div>
|
|
</div>
|
|
<div class="p-tile on">
|
|
<div class="p-tile-top"><svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><rect x="3" y="4" width="18" height="13" rx="2"/><path d="M8 21h8M12 17v4"/></svg><span class="mini-toggle"></span></div>
|
|
<div><div class="t-name">TV Wohnzimmer</div><div class="t-state">HDMI 2 · Abends</div></div>
|
|
</div>
|
|
<div class="p-tile">
|
|
<div class="p-tile-top"><svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M12 3v2M12 19v2M3 12h2M19 12h2M5.6 5.6l1.5 1.5M16.9 16.9l1.5 1.5M5.6 18.4l1.5-1.5M16.9 7.1l1.5-1.5"/><circle cx="12" cy="12" r="4"/></svg><span class="mini-toggle"></span></div>
|
|
<div><div class="t-name">Heizung</div><div class="t-state">21,5 °C · Eco</div></div>
|
|
</div>
|
|
<div class="p-tile">
|
|
<div class="p-tile-top"><svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3 4.5 6v5.5c0 4.6 3.2 8 7.5 9.5 4.3-1.5 7.5-4.9 7.5-9.5V6L12 3z"/></svg><span class="mini-toggle"></span></div>
|
|
<div><div class="t-name">Alarm</div><div class="t-state">Unscharf</div></div>
|
|
</div>
|
|
</div>
|
|
<div class="p-list">
|
|
<div class="sensor-row">
|
|
<span class="sensor-ico"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="4" y="3" width="16" height="18" rx="2"/><path d="M12 3v18M4 12h16"/></svg></span>
|
|
<div><div class="sensor-name" style="font-size:11.5px">Fenster Küche</div></div>
|
|
<span class="pill open" style="font-size:9.5px">Offen</span>
|
|
</div>
|
|
<div class="sensor-row">
|
|
<span class="sensor-ico"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M14 3H8a2 2 0 0 0-2 2v16h12V5a2 2 0 0 0-2-2h-2z"/><circle cx="14.5" cy="12" r="1" fill="currentColor" stroke="none"/></svg></span>
|
|
<div><div class="sensor-name" style="font-size:11.5px">Haustür</div></div>
|
|
<span class="pill locked" style="font-size:9.5px">Verriegelt</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="p-nav">
|
|
<div class="p-nav-item active"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 10.5 12 3l9 7.5"/><path d="M5 9.5V21h14V9.5"/></svg>Start</div>
|
|
<div class="p-nav-item"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21h18"/><path d="M5 21V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16"/></svg>Räume</div>
|
|
<div class="p-nav-item"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M4 14a8 8 0 0 1 16 0"/><path d="M12 6v2M12 14l3-3"/><path d="M2 18h20"/></svg>Sensoren</div>
|
|
<div class="p-nav-item"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="5" cy="12" r="1.5"/><circle cx="12" cy="12" r="1.5"/><circle cx="19" cy="12" r="1.5"/></svg>Mehr</div>
|
|
</div>
|
|
<div class="p-home-bar"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="app-notes">
|
|
<h1>Mobile App — gleicher Live-Zustand, kompakte Sicht</h1>
|
|
<p>Die App spricht dieselbe Laravel-API und denselben Reverb-WebSocket wie das Dashboard. Ein Zustand, zwei Oberflächen — nichts wird doppelt gepflegt.</p>
|
|
<div class="note">
|
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M13 3 5 13h6l-1 8 8-10h-6l1-8z"/></svg>
|
|
<div><b>Ein Backend, zwei Frontends</b><p>REST-API mit Sanctum-Token-Auth + Broadcasting über das Pusher-Protokoll. Reverb-Clients existieren für Web (Echo), Flutter und React Native.</p></div>
|
|
</div>
|
|
<div class="note">
|
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 8a6 6 0 1 0-12 0c0 7-3 8-3 8h18s-3-1-3-8"/><path d="M10 21a2 2 0 0 0 4 0"/></svg>
|
|
<div><b>Push bei Ereignissen</b><p>„Fenster offen beim Verlassen", „Neues Gerät im Netz", „Haustür entriegelt" — kritische Ereignisse als Push über FCM/APNs, alles andere still im Live-Feed.</p></div>
|
|
</div>
|
|
<div class="note">
|
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 3"/></svg>
|
|
<div><b>Schnellstatus in unter einer Sekunde</b><p>Beim App-Start kommt zuerst ein kompaktes Status-Aggregat (ein Request), Details laden nach. Die Kacheln beantworten die Kernfrage sofort: Was ist an, was ist offen?</p></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="tooltip" id="tip"></div>
|
|
|
|
<script>
|
|
// Ansichten umschalten
|
|
document.querySelectorAll('.viewtab').forEach(tab => {
|
|
tab.addEventListener('click', () => {
|
|
document.querySelectorAll('.viewtab').forEach(t => { t.classList.remove('active'); t.setAttribute('aria-selected','false'); });
|
|
tab.classList.add('active'); tab.setAttribute('aria-selected','true');
|
|
document.querySelectorAll('.content').forEach(c => c.classList.remove('active'));
|
|
document.getElementById('view-' + tab.dataset.view).classList.add('active');
|
|
});
|
|
});
|
|
|
|
// Demo: Toggles klickbar
|
|
document.querySelectorAll('.toggle').forEach(t => {
|
|
t.addEventListener('click', () => {
|
|
t.classList.toggle('on');
|
|
t.setAttribute('aria-checked', t.classList.contains('on'));
|
|
});
|
|
});
|
|
|
|
// Energie-Sparkline (stündlich, kWh)
|
|
const data = [0.3,0.4,0.35,0.5,0.9,1.4,1.1,0.8,0.7,1.0,1.6,1.8];
|
|
const W = 110, H = 38, P = 3;
|
|
const max = Math.max(...data), min = Math.min(...data);
|
|
const pts = data.map((v,i) => [P + i*(W-2*P)/(data.length-1), H-P - (v-min)/(max-min)*(H-2*P)]);
|
|
const line = pts.map((p,i) => (i?'L':'M') + p[0].toFixed(1) + ' ' + p[1].toFixed(1)).join(' ');
|
|
document.getElementById('spark-line').setAttribute('d', line);
|
|
document.getElementById('spark-area').setAttribute('d', line + ` L ${W-P} ${H-P} L ${P} ${H-P} Z`);
|
|
const end = pts[pts.length-1];
|
|
const endDot = document.getElementById('spark-end');
|
|
endDot.setAttribute('cx', end[0]); endDot.setAttribute('cy', end[1]);
|
|
|
|
// Hover-Tooltip auf Sparkline
|
|
const spark = document.getElementById('spark'), tip = document.getElementById('tip');
|
|
const hours = data.map((_,i) => (6+i) + ':00');
|
|
spark.closest('.spark-wrap').addEventListener('mousemove', e => {
|
|
const r = spark.getBoundingClientRect();
|
|
const x = (e.clientX - r.left) / r.width * W;
|
|
let idx = 0, best = 1e9;
|
|
pts.forEach((p,i) => { const d = Math.abs(p[0]-x); if (d < best) { best = d; idx = i; } });
|
|
tip.textContent = hours[idx] + ' · ' + data[idx].toFixed(1).replace('.',',') + ' kWh';
|
|
tip.style.left = (r.left + pts[idx][0]/W*r.width) + 'px';
|
|
tip.style.top = (r.top + pts[idx][1]/H*r.height) + 'px';
|
|
tip.classList.add('show');
|
|
});
|
|
spark.closest('.spark-wrap').addEventListener('mouseleave', () => tip.classList.remove('show'));
|
|
</script>
|