180 lines
9.3 KiB
HTML
180 lines
9.3 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="de">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>Pigmento</title>
|
||
<link rel="stylesheet" href="style.css">
|
||
</head>
|
||
<body>
|
||
<header>
|
||
<div style="display:flex;align-items:center;gap:0.6rem;margin-bottom:1.25rem">
|
||
<div id="lottie-logo" style="width:56px;height:56px;flex-shrink:0"></div>
|
||
<h1 style="margin-bottom:0">Pigmento</h1>
|
||
</div>
|
||
<nav>
|
||
<button class="tab-btn active" data-tab="picker">Picker</button>
|
||
<button class="tab-btn" data-tab="eingabe">Eingabe</button>
|
||
<button class="tab-btn" data-tab="harmonien">Harmonien</button>
|
||
<button class="tab-btn" data-tab="sammlung">Sammlung</button>
|
||
</nav>
|
||
</header>
|
||
|
||
<main>
|
||
<section id="tab-picker" class="tab-content active">
|
||
<h2>Farbe aus Bild</h2>
|
||
<div id="picker-dropzone">
|
||
<p>Bild hierher ziehen, einfügen (Strg+V) oder</p>
|
||
<button class="action-btn" id="picker-file-trigger">Datei wählen</button>
|
||
<input type="file" id="picker-file-input" accept="image/*" style="display:none">
|
||
</div>
|
||
<canvas id="picker-canvas" style="display:none;max-width:100%;cursor:crosshair;border-radius:8px;border:1px solid #ddd"></canvas>
|
||
<div id="picker-result" style="display:none;margin-top:1rem">
|
||
<div id="picker-preview" class="color-preview"></div>
|
||
<div class="color-codes">
|
||
<div class="color-code-group">
|
||
<label for="picker-hex">Hex <span class="harmony-info"><span class="harmony-info-icon">ℹ</span><span class="harmony-tooltip">Hexadezimale Farbnotation. Rot, Grün und Blau je als zweistellige Hex-Zahl (00–FF). Beispiel: #FF5733</span></span></label>
|
||
<input id="picker-hex" type="text" readonly>
|
||
</div>
|
||
<div class="color-code-group">
|
||
<label for="picker-rgb">RGB <span class="harmony-info"><span class="harmony-info-icon">ℹ</span><span class="harmony-tooltip">Rot, Grün, Blau – je 0 bis 255. Additive Mischung wie bei Bildschirmen. Beispiel: 255, 87, 51</span></span></label>
|
||
<input id="picker-rgb" type="text" readonly>
|
||
</div>
|
||
<div class="color-code-group">
|
||
<label for="picker-hsl">HSL <span class="harmony-info"><span class="harmony-info-icon">ℹ</span><span class="harmony-tooltip">Farbton (Hue, 0–360°), Sättigung (0–100%) und Helligkeit (Lightness, 0–100%). Intuitiver als RGB für Farbkorrekturen.</span></span></label>
|
||
<input id="picker-hsl" type="text" readonly>
|
||
</div>
|
||
</div>
|
||
<div class="btn-row">
|
||
<button class="action-btn" id="picker-fav-btn">Zu Favoriten</button>
|
||
<button class="action-btn" id="picker-schema-btn">Zu Schema hinzufügen</button>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="tab-eingabe" class="tab-content">
|
||
<h2>Farbe eingeben</h2>
|
||
<div id="eingabe-preview" class="color-preview" style="background:#3a8fc1"></div>
|
||
<div class="color-codes">
|
||
<div class="color-code-group">
|
||
<label for="eingabe-hex">Hex <span class="harmony-info"><span class="harmony-info-icon">ℹ</span><span class="harmony-tooltip">Hexadezimale Farbnotation. Rot, Grün und Blau je als zweistellige Hex-Zahl (00–FF). Beispiel: #FF5733</span></span></label>
|
||
<input id="eingabe-hex" type="text" value="#3a8fc1" maxlength="7">
|
||
</div>
|
||
<div class="color-code-group">
|
||
<label for="eingabe-rgb">RGB <span class="harmony-info"><span class="harmony-info-icon">ℹ</span><span class="harmony-tooltip">Rot, Grün, Blau – je 0 bis 255. Additive Mischung wie bei Bildschirmen. Beispiel: 255, 87, 51</span></span></label>
|
||
<input id="eingabe-rgb" type="text" value="58, 143, 193">
|
||
</div>
|
||
<div class="color-code-group">
|
||
<label for="eingabe-hsl">HSL <span class="harmony-info"><span class="harmony-info-icon">ℹ</span><span class="harmony-tooltip">Farbton (Hue, 0–360°), Sättigung (0–100%) und Helligkeit (Lightness, 0–100%). Intuitiver als RGB für Farbkorrekturen.</span></span></label>
|
||
<input id="eingabe-hsl" type="text" value="204, 54%, 49%">
|
||
</div>
|
||
</div>
|
||
<div class="btn-row">
|
||
<button class="action-btn" id="eingabe-fav-btn">Zu Favoriten</button>
|
||
<button class="action-btn" id="eingabe-schema-btn">Zu Schema hinzufügen</button>
|
||
</div>
|
||
</section>
|
||
<section id="tab-harmonien" class="tab-content">
|
||
<h2>Farbharmonien</h2>
|
||
<p class="subtitle">Ausgangsfarbe: <span id="harmonien-base-hex">#3a8fc1</span></p>
|
||
<div id="harmonien-base-preview" class="color-preview" style="height:50px"></div>
|
||
<div id="harmonien-grid" style="display:flex;flex-direction:column;gap:1.5rem;margin-top:1rem"></div>
|
||
</section>
|
||
<section id="tab-sammlung" class="tab-content">
|
||
<h2>Sammlung</h2>
|
||
|
||
<div class="btn-row" style="margin-bottom:1.5rem">
|
||
<button class="action-btn" id="sammlung-export-btn">Exportieren</button>
|
||
<button class="action-btn" id="sammlung-import-btn">Importieren</button>
|
||
</div>
|
||
|
||
<h3>Favoriten</h3>
|
||
<div id="sammlung-favoriten" style="display:flex;flex-wrap:wrap;gap:0.5rem;margin-bottom:1.5rem"></div>
|
||
|
||
<h3>Verlauf (letzte 20)</h3>
|
||
<div id="sammlung-history" style="display:flex;flex-wrap:wrap;gap:0.5rem;margin-bottom:1.5rem"></div>
|
||
|
||
<h3>Farbschemata</h3>
|
||
<button class="action-btn" id="schema-erstellen-btn" style="margin-bottom:1rem">+ Schema erstellen</button>
|
||
<div id="sammlung-schemata"></div>
|
||
</section>
|
||
</main>
|
||
|
||
<!-- Schema-Modal -->
|
||
<div id="schema-modal-overlay" class="modal-overlay" style="display:none">
|
||
<div class="modal">
|
||
<h2 id="schema-modal-title" style="margin-bottom:1rem">Neues Farbschema</h2>
|
||
|
||
<div class="modal-field">
|
||
<label for="schema-name-input">Name</label>
|
||
<input id="schema-name-input" type="text" placeholder="z.B. Website Relaunch">
|
||
</div>
|
||
|
||
<div class="modal-field">
|
||
<label>Vorschaubild <span style="color:#aaa;font-size:0.7rem;text-transform:none">(optional)</span></label>
|
||
<div id="schema-bild-bereich" style="display:flex;align-items:center;gap:0.75rem">
|
||
<div id="schema-bild-preview" class="schema-bild-preview"></div>
|
||
<div>
|
||
<button class="action-btn" id="schema-bild-trigger" type="button">Bild hochladen</button>
|
||
<input type="file" id="schema-bild-input" accept="image/*" style="display:none">
|
||
<button class="action-btn" id="schema-bild-entfernen-btn" type="button" style="display:none;margin-left:0.4rem;font-size:0.75rem">Entfernen</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="schema-farben-preview" class="schema-farben-preview"></div>
|
||
|
||
<!-- Farbvorschlag aus Bild -->
|
||
<div id="schema-vorschlag" style="display:none;margin-bottom:1rem">
|
||
<p class="subtitle" style="margin-bottom:0.5rem">Erkannte Farben aus dem Vorschaubild:</p>
|
||
<div id="schema-vorschlag-farben" style="display:flex;gap:0.5rem;flex-wrap:wrap;margin-bottom:0.75rem"></div>
|
||
<div class="btn-row">
|
||
<button class="action-btn" id="schema-vorschlag-annehmen-btn" type="button" style="background:#222;color:#fff;border-color:#222">Vorschlag übernehmen</button>
|
||
<button class="action-btn" id="schema-vorschlag-ablehnen-btn" type="button">Manuell eingeben</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="schema-farbe-eingabe" style="display:none">
|
||
<p id="schema-farbe-label" class="subtitle" style="margin-bottom:0.5rem">Farbe 1</p>
|
||
|
||
<div class="modal-field">
|
||
<label for="schema-hex-input">Hex-Code</label>
|
||
<div style="display:flex;gap:0.5rem;align-items:center">
|
||
<input id="schema-hex-input" type="text" placeholder="#3a8fc1" maxlength="7" style="width:120px">
|
||
<div id="schema-hex-preview" style="width:36px;height:36px;border-radius:6px;border:1px solid #ddd;background:#eee;flex-shrink:0"></div>
|
||
</div>
|
||
</div>
|
||
|
||
<p class="subtitle" style="margin:0.75rem 0 0.5rem">oder Bild hochladen</p>
|
||
<div id="schema-dropzone" class="schema-dropzone">
|
||
<p>Bild hier ablegen oder</p>
|
||
<button class="action-btn" id="schema-file-trigger" type="button">Datei wählen</button>
|
||
<input type="file" id="schema-file-input" accept="image/*" style="display:none">
|
||
</div>
|
||
<canvas id="schema-canvas" style="display:none;max-width:100%;cursor:crosshair;border-radius:6px;border:1px solid #ddd;margin-top:0.5rem"></canvas>
|
||
|
||
<div class="btn-row" style="margin-top:1rem">
|
||
<button class="action-btn" id="schema-farbe-hinzufuegen-btn" type="button">Farbe hinzufügen</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="btn-row" style="margin-top:1.5rem;justify-content:space-between">
|
||
<button class="action-btn" id="schema-abbrechen-btn" type="button">Abbrechen</button>
|
||
<button class="action-btn" id="schema-abschliessen-btn" type="button" style="background:#222;color:#fff;border-color:#222" disabled>Abschließen</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<script src="https://cdnjs.cloudflare.com/ajax/libs/lottie-web/5.12.2/lottie.min.js"></script>
|
||
<script type="module" src="js/app.js"></script>
|
||
<script>
|
||
lottie.loadAnimation({
|
||
container: document.getElementById('lottie-logo'),
|
||
renderer: 'svg',
|
||
loop: true,
|
||
autoplay: true,
|
||
path: 'Fluid Loading Animation.json'
|
||
});
|
||
</script>
|
||
</body>
|
||
</html>
|