Files
epaper-dashboard/templates/design_c_warm_editorial.html
T

382 lines
10 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>epaper admin — Warm Editorial</title>
<style>
/* ============================================================
DESIGN C: Warm Editorial
Inspiriert von: gedruckte Zeitungen, Magazine, Loom.
Warme Töne (Papier-Optik), Serif-Fonts für Labels,
viel Weißraum, dezente Kategorien.
============================================================ */
:root {
--bg: #f4f1eb;
--surface: #faf8f4;
--surface-2: #f0ede6;
--border: #d8d3c8;
--border-light: #e6e1d8;
--fg: #1a1816;
--fg-muted: #6b6560;
--fg-dim: #9a9490;
--accent: #c0392b;
--accent-warm: #d35400;
--ok: #27ae60;
--warn: #e67e22;
--alert: #c0392b;
--shadow: rgba(0,0,0,0.06);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: Georgia, "Times New Roman", serif;
background: var(--bg);
color: var(--fg);
line-height: 1.6;
-webkit-font-smoothing: antialiased;
}
input, select, button {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
/* --- Header --- */
header {
background: var(--surface);
border-bottom: 3px solid var(--fg);
padding: 20px 40px;
display: flex;
justify-content: space-between;
align-items: center;
}
.brand h1 {
font-family: Georgia, serif;
font-size: 1.3em;
font-weight: normal;
letter-spacing: -0.01em;
}
.brand .tagline {
font-size: 0.72em;
color: var(--fg-muted);
font-style: italic;
margin-top: 2px;
font-family: -apple-system, sans-serif;
}
.header-right { display: flex; gap: 10px; align-items: center; }
/* --- Main --- */
.main { max-width: 1100px; margin: 0 auto; padding: 32px 40px 80px; }
/* --- Section --- */
h2 {
font-family: -apple-system, sans-serif;
font-size: 0.68em;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--fg-muted);
margin-bottom: 14px;
padding-bottom: 8px;
border-bottom: 1px solid var(--border);
}
/* --- Toolbar --- */
.toolbar {
display: flex;
gap: 10px;
align-items: center;
margin-bottom: 20px;
}
.add-group {
display: flex;
gap: 0;
border: 1px solid var(--border);
border-radius: 4px;
overflow: hidden;
}
.add-group select {
background: var(--surface);
border: none;
border-right: 1px solid var(--border);
color: var(--fg);
font-size: 0.85em;
padding: 6px 12px;
}
.add-group button {
background: var(--accent);
color: #fff;
border: none;
font-size: 0.82em;
padding: 6px 14px;
cursor: pointer;
font-weight: 500;
}
/* --- Grid --- */
.grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-template-rows: repeat(4, 100px);
gap: 10px;
margin-bottom: 36px;
}
.cell {
background: var(--surface);
border: 1px solid var(--border-light);
border-radius: 3px;
overflow: hidden;
}
.item {
width: 100%;
height: 100%;
background: var(--surface-2);
border: 1px solid var(--border);
border-radius: 3px;
padding: 12px 14px;
display: flex;
flex-direction: column;
justify-content: space-between;
box-shadow: 0 1px 3px var(--shadow);
}
.item .item-top { display: flex; justify-content: space-between; align-items: flex-start; }
.item .item-name {
font-size: 0.82em;
font-weight: bold;
color: var(--fg);
}
.item .item-cat {
font-family: -apple-system, sans-serif;
font-size: 0.6em;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--fg-muted);
background: var(--surface);
border: 1px solid var(--border-light);
padding: 1px 6px;
border-radius: 2px;
}
.item .item-meta {
font-family: -apple-system, sans-serif;
font-size: 0.65em;
color: var(--fg-dim);
}
.item .controls {
display: flex;
gap: 3px;
opacity: 0;
transition: opacity 0.15s;
}
.item:hover .controls { opacity: 1; }
.item .controls button {
background: var(--surface);
border: 1px solid var(--border);
color: var(--fg-muted);
border-radius: 2px;
padding: 1px 6px;
font-size: 0.6em;
cursor: pointer;
}
/* --- Plugin Cards --- */
.plugin-card {
background: var(--surface);
border: 1px solid var(--border-light);
border-radius: 4px;
padding: 16px 20px;
margin-bottom: 10px;
}
.plugin-card h3 {
font-family: Georgia, serif;
font-size: 0.95em;
font-weight: normal;
margin-bottom: 2px;
}
.plugin-card .desc {
font-family: -apple-system, sans-serif;
font-size: 0.75em;
color: var(--fg-muted);
font-style: italic;
margin-bottom: 12px;
}
.plugin-card .fields {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 10px;
}
.field { display: flex; flex-direction: column; gap: 4px; }
.field label {
font-family: -apple-system, sans-serif;
font-size: 0.7em;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.06em;
color: var(--fg-muted);
}
.field input, .field select {
background: var(--surface-2);
border: 1px solid var(--border);
color: var(--fg);
border-radius: 3px;
padding: 6px 10px;
font-size: 0.85em;
}
/* --- Buttons --- */
.btn {
display: inline-flex;
align-items: center;
gap: 5px;
padding: 7px 14px;
border-radius: 3px;
border: 1px solid var(--border);
background: var(--surface);
color: var(--fg);
font-size: 0.82em;
cursor: pointer;
}
.btn:hover { background: var(--surface-2); }
.btn.primary {
background: var(--accent);
border-color: var(--accent);
color: #fff;
font-weight: 500;
}
.btn.primary:hover { background: #a93226; }
.btn.danger { color: var(--alert); border-color: var(--alert); }
/* --- Status --- */
.status {
font-family: -apple-system, sans-serif;
font-size: 0.75em;
color: var(--fg-dim);
margin-left: auto;
}
/* --- Preview --- */
.preview {
background: var(--surface);
border: 1px solid var(--border-light);
border-radius: 4px;
padding: 14px;
margin-top: 8px;
}
.preview img { width: 100%; border-radius: 2px; display: block; }
</style>
</head>
<body>
<header>
<div class="brand">
<h1>epaper dashboard</h1>
<div class="tagline">7.3" ACeP · Raspberry Pi 4 · Waveshare</div>
</div>
<div class="header-right">
<button class="btn">Refresh</button>
<button class="btn primary">Save</button>
</div>
</header>
<div class="main">
<h2>Layout — 4×4 Grid</h2>
<div class="toolbar">
<div class="add-group">
<select><option>clock</option><option>weather</option><option>system</option></select>
<button>+ Add</button>
</div>
<button class="btn">Auto-Pack</button>
<span class="status">4 items configured</span>
</div>
<div class="grid">
<div class="cell">
<div class="item">
<div class="item-top">
<div class="item-name">Clock</div>
<div class="item-cat">time</div>
</div>
<div class="item-meta">2×2 · top-left</div>
<div class="controls">
<button></button><button></button>
</div>
</div>
</div>
<div class="cell">
<div class="item">
<div class="item-top">
<div class="item-name">Weather</div>
<div class="item-cat">data</div>
</div>
<div class="item-meta">2×2 · top-right</div>
<div class="controls">
<button></button>
</div>
</div>
</div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell">
<div class="item">
<div class="item-top">
<div class="item-name">System</div>
<div class="item-cat">status</div>
</div>
<div class="item-meta">2×2 · bottom-left</div>
</div>
</div>
<div class="cell">
<div class="item">
<div class="item-top">
<div class="item-name">Hello</div>
<div class="item-cat">message</div>
</div>
<div class="item-meta">2×2 · bottom-right</div>
</div>
</div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
</div>
<h2>Plugin Configuration</h2>
<div class="plugin-card">
<h3>Clock</h3>
<div class="desc">Displays current time and date</div>
<div class="fields">
<div class="field">
<label>Timezone</label>
<input type="text" value="Europe/Berlin">
</div>
<div class="field">
<label>Format</label>
<select><option selected>24-hour</option><option>12-hour</option></select>
</div>
</div>
</div>
<div class="plugin-card">
<h3>Weather</h3>
<div class="desc">Open-Meteo API · no API key required</div>
<div class="fields">
<div class="field">
<label>Location (lat, lon)</label>
<input type="text" value="52.52,13.41">
</div>
<div class="field">
<label>Forecast hours</label>
<input type="number" value="4">
</div>
</div>
</div>
<h2>Display Preview</h2>
<div class="preview">
<img src="/snapshot.png">
</div>
</div>
</body>
</html>