From 8ec1c040b2da1e60b61dc9634d80adf4e2aab9b6 Mon Sep 17 00:00:00 2001 From: Crowvic <168686597+MattModeCode@users.noreply.github.com> Date: Wed, 9 Sep 2026 00:16:02 -0400 Subject: [PATCH 1/2] feat(studio): rebuild the interface as a single-voice Liquid Glass app MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Studio was a two-column web page in bundled mono type on a flat dark field — functional, but it read as a local dev tool rather than a Mac app, and it made you pick a voice every time despite there only ever being one that mattered. Interface - Single column built around one voice. It is resolved at boot and never appears as a choice on the composing surface; enrolment, switching and the environment report moved into a Settings sheet. - Progressive disclosure: script and Generate at rest, delivery controls and prosody marks behind panes that summarize themselves when closed. - Apple Liquid Glass material — layered translucency with backdrop blur and saturation, specular top lip, depth shadows — over an ambient colour field that gives the glass something to refract. - Light and dark are both first class, each with its own glass and ink values rather than one palette dimmed. Increased contrast drops the translucency entirely and has its own dark variant. - System UI type for prose, mono kept only for numerics. The bundled JetBrains Mono files are gone; nothing referenced them any more. - ⌘↵ generates. Reduced motion, focus rings and labelled controls throughout. Structure - static/ split into tokens.css (design system), style.css (components), and ES modules api.js / format.js / app.js. - The eight /api/* routes are untouched; this is a front-end change. Desktop shell - The window painted pywebview's white default before the page loaded, which flashed on the way into a dark interface. It now launches on the interface's own canvas colour, chosen from the macOS appearance, with a test asserting the two files cannot drift apart. Verified in the browser, in the pywebview window, and in a rebuilt dist/Double Chin.app; 110 tests pass. Claude-Session: https://claude.ai/code/session_01FdWprv4TKfVzapYFJnRffz --- README.md | 13 +- src/double_chin/desktop.py | 41 +- src/double_chin/studio/static/api.js | 34 + src/double_chin/studio/static/app.js | 543 +++++++++----- .../static/fonts/JetBrainsMono-Medium.ttf | Bin 270316 -> 0 bytes .../static/fonts/JetBrainsMono-Regular.ttf | Bin 270224 -> 0 bytes src/double_chin/studio/static/format.js | 57 ++ src/double_chin/studio/static/index.html | 294 +++++--- src/double_chin/studio/static/style.css | 683 +++++++++++++----- src/double_chin/studio/static/tokens.css | 203 ++++++ tests/test_desktop.py | 38 +- 11 files changed, 1429 insertions(+), 477 deletions(-) create mode 100644 src/double_chin/studio/static/api.js delete mode 100644 src/double_chin/studio/static/fonts/JetBrainsMono-Medium.ttf delete mode 100644 src/double_chin/studio/static/fonts/JetBrainsMono-Regular.ttf create mode 100644 src/double_chin/studio/static/format.js create mode 100644 src/double_chin/studio/static/tokens.css diff --git a/README.md b/README.md index f5033b7..379aab2 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Your voice, on script. -Double Chin is a local voice-cloning application. Give it a few minutes of someone's voice and a text script, and it reads the script aloud in that voice — entirely on your machine. No cloud, no account, no audio leaving the laptop. One command opens the app: pick a voice, paste a script, hit Generate, and watch it synthesize chunk by chunk with a live speaker-similarity verdict on every take. +Double Chin is a local voice-cloning application. Give it a few minutes of someone's voice and a text script, and it reads the script aloud in that voice — entirely on your machine. No cloud, no account, no audio leaving the laptop. One command opens a desktop window built around your own voice: write a script, hit Generate, and watch it synthesize chunk by chunk with a speaker-similarity check on every take. ![Double Chin Studio](demo/studio/double-chin-studio-demo.gif) @@ -40,9 +40,18 @@ uv venv --python 3.12 .venv uv pip install --python .venv/bin/python -e ".[dev]" source .venv/bin/activate double-chin doctor # checks device, deps, disk — everything should PASS -double-chin studio # starts http://127.0.0.1:8787 and opens your browser +double-chin app # opens the desktop window ``` +`double-chin app` is the desktop shell. `double-chin studio` serves the same +interface at http://127.0.0.1:8787 in a browser, and `bash packaging/build_app.sh` +builds `dist/Double Chin.app` so it launches from the Dock like any other app. + +The window is built around a single voice — the one you enrolled. Delivery +controls, prosody marks and the environment report are there when you want them +and out of the way when you don't; enrolling or switching voices lives in +Settings. + ## Clone your own voice Record the [79-take corpus](recording-scripts/) (~50 minutes), then: diff --git a/src/double_chin/desktop.py b/src/double_chin/desktop.py index 73c7cfa..f0ede97 100644 --- a/src/double_chin/desktop.py +++ b/src/double_chin/desktop.py @@ -11,6 +11,7 @@ from __future__ import annotations import socket +import subprocess import sys import threading import time @@ -18,10 +19,43 @@ import uvicorn _PREFERRED_PORT = 8787 +# The window paints its background colour before the page has loaded. Left at +# pywebview's white default that is a bright flash on the way into a dark +# interface, so both values below mirror `--canvas` in studio/static/tokens.css +# — a test asserts they stay in step. +_LAUNCH_COLOR_LIGHT = "#E9E8F0" +_LAUNCH_COLOR_DARK = "#14141D" +_APPEARANCE_TIMEOUT_SECONDS = 2.0 _STARTUP_TIMEOUT_SECONDS = 15.0 _STARTUP_POLL_SECONDS = 0.05 +def _macos_prefers_dark() -> bool: + """True when macOS is in dark mode. + + `defaults read -g AppleInterfaceStyle` prints "Dark" in dark mode and exits + non-zero in light mode (the key is absent), so any failure means light. + """ + if sys.platform != "darwin": + return False + try: + result = subprocess.run( + ["defaults", "read", "-g", "AppleInterfaceStyle"], + capture_output=True, + text=True, + timeout=_APPEARANCE_TIMEOUT_SECONDS, + check=False, + ) + except (OSError, subprocess.SubprocessError): + return False + return result.stdout.strip() == "Dark" + + +def _launch_background_color(prefers_dark=_macos_prefers_dark) -> str: + """The colour the window shows in the moment before the page paints.""" + return _LAUNCH_COLOR_DARK if prefers_dark() else _LAUNCH_COLOR_LIGHT + + def _pick_port() -> int: """Prefer the well-known Studio port; fall back to any free loopback port.""" for port in (_PREFERRED_PORT, 0): @@ -114,9 +148,10 @@ def run() -> int: window = webview.create_window( "Double Chin", f"http://127.0.0.1:{port}", - width=1160, - height=780, - min_size=(760, 560), + width=1000, + height=820, + min_size=(560, 520), + background_color=_launch_background_color(), ) window.events.closed += lambda: setattr(server, "should_exit", True) diff --git a/src/double_chin/studio/static/api.js b/src/double_chin/studio/static/api.js new file mode 100644 index 0000000..4a05e36 --- /dev/null +++ b/src/double_chin/studio/static/api.js @@ -0,0 +1,34 @@ +/* Thin wrapper over the Studio HTTP API. No endpoint shapes are invented + * here — every path below already exists in studio/app.py. */ +"use strict"; + +async function request(url, options) { + const response = await fetch(url, options); + if (!response.ok) { + let detail = `${response.status} ${response.statusText}`; + try { + const body = await response.json(); + if (body.detail) detail = body.detail; + } catch (_) { /* error body was not JSON; keep the status line */ } + const error = new Error(detail); + error.status = response.status; + throw error; + } + return response.json(); +} + +export const api = { + listVoices: () => request("/api/voices"), + enrollVoice: (formData) => request("/api/voices", { method: "POST", body: formData }), + createJob: (payload) => + request("/api/jobs", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(payload), + }), + listHistory: () => request("/api/history"), + doctor: () => request("/api/doctor"), + jobEvents: (jobId) => new EventSource(`/api/jobs/${jobId}/events`), + audioUrl: (jobId, download = false) => + `/api/audio/${jobId}${download ? "?download=true" : ""}`, +}; diff --git a/src/double_chin/studio/static/app.js b/src/double_chin/studio/static/app.js index 33c1f75..9628e7d 100644 --- a/src/double_chin/studio/static/app.js +++ b/src/double_chin/studio/static/app.js @@ -1,130 +1,264 @@ -/* Double Chin frontend. Plain JS, no build step, no external requests. */ +/* Double Chin — single-voice studio. + * + * The app is built around one enrolled voice: it is resolved once at boot and + * never appears as a choice on the main surface. Voice management, enrolment + * and environment facts all live in the Settings sheet. + */ "use strict"; +import { api } from "./api.js"; +import { + estimateAudioSeconds, + estimateWallSeconds, + formatClock, + formatCount, + formatDuration, + formatWhen, + pluralize, + verdictTone, +} from "./format.js"; + +const DELIVERY_DEFAULTS = Object.freeze({ + exaggeration: 0.5, + cfg: 0.5, + temperature: 0.8, + rate: 1, +}); + +const KNOB_LABELS = Object.freeze({ + exaggeration: "Expression", + cfg: "Adherence", + temperature: "Variation", + rate: "Rate", +}); + +/* Which enrolled voice is "yours". Only ever set from the Settings sheet — + * the composing surface never asks. */ +const VOICE_KEY = "double-chin.voice"; + const $ = (id) => document.getElementById(id); +function readStoredVoice() { + try { + return localStorage.getItem(VOICE_KEY); + } catch (_) { + return null; // private window, or site data blocked + } +} + +function storeVoice(name) { + try { + localStorage.setItem(VOICE_KEY, name); + } catch (_) { /* the choice simply does not persist */ } +} + const state = { - voices: [], + voice: null, jobRunning: false, eventSource: null, timerHandle: null, jobStartedAt: null, }; -/* ---------- bootstrap ---------- */ +/* ---------- boot ---------- */ async function init() { wireControls(); - await Promise.all([refreshVoices(), refreshDoctor(), refreshHistory()]); + syncDelivery(); + updateScriptStats(); + await Promise.allSettled([refreshVoice(), refreshEnvironment(), refreshHistory()]); } -async function fetchJson(url, options) { - const response = await fetch(url, options); - if (!response.ok) { - let detail = `${response.status} ${response.statusText}`; - try { - const body = await response.json(); - if (body.detail) detail = body.detail; - } catch (_) { /* non-JSON error body */ } - throw new Error(detail); - } - return response.json(); +/* ---------- voice ---------- */ + +async function refreshVoice(preferName) { + let voices = []; + try { + voices = await api.listVoices(); + } catch (_) { /* leave the app in its no-voice state */ } + + const wanted = preferName ?? readStoredVoice(); + state.voice = voices.find((voice) => voice.name === wanted) ?? voices[0] ?? null; + if (state.voice) storeVoice(state.voice.name); + + renderVoicePicker(voices); + renderVoiceCard(); + renderIdle(); + updateGenerateEnabled(); } -/* ---------- voices ---------- */ - -async function refreshVoices(selectName) { - state.voices = await fetchJson("/api/voices"); - const select = $("voice"); - select.innerHTML = ""; - for (const voice of state.voices) { - const option = document.createElement("option"); - option.value = voice.name; - option.textContent = `${voice.name} · ${voice.duration_seconds}s`; - select.appendChild(option); +/** Shown only when more than one voice is enrolled; the main surface never has it. */ +function renderVoicePicker(voices) { + const wrapper = $("voice-switch"); + const select = $("voice-select"); + wrapper.hidden = voices.length < 2; + if (wrapper.hidden) return; + + select.textContent = ""; + for (const voice of voices) { + const option = el("option", { value: voice.name, text: voice.name }); + if (voice.name === state.voice?.name) option.selected = true; + select.append(option); } - if (selectName) select.value = selectName; - updateVoiceHint(); - updateGenerateEnabled(); } -function updateVoiceHint() { - const voice = state.voices.find((v) => v.name === $("voice").value); +function renderVoiceCard() { + const card = $("voice-card"); const hint = $("voice-hint"); - if (!voice) { - hint.textContent = "no voices yet — enroll one from a few recordings"; + card.textContent = ""; + + if (!state.voice) { + card.append(el("div", { class: "voice-name", text: "No voice yet" })); + hint.textContent = + "Enrol a voice below from a few of your own recordings, then close this sheet."; return; } - hint.textContent = voice.has_holdout - ? "verifies against a held-out clip the model never conditions on" - : "no holdout clip — verification compares against the reference itself"; + + const name = el("div", { class: "voice-name", text: state.voice.name }); + const meta = el("div", { + class: "voice-meta numeric", + text: `${formatDuration(state.voice.duration_seconds)} reference`, + }); + card.append(name, meta); + + hint.textContent = state.voice.has_holdout + ? "Takes are checked against a held-out clip the model never conditions on." + : "No held-out clip, so takes are checked against the reference itself."; } -/* ---------- doctor ---------- */ +function renderIdle() { + const idle = $("idle-state"); + idle.textContent = ""; + if (!state.voice) { + idle.append( + document.createTextNode("No voice is enrolled yet. "), + el("button", { class: "link", type: "button", text: "Add one in Settings", id: "idle-settings" }), + document.createTextNode("."), + ); + $("idle-settings").addEventListener("click", openSettings); + return; + } + idle.textContent = + "The first take loads the model, which takes about ten seconds. After that it " + + "synthesizes at roughly a fifth of realtime, a chunk at a time."; +} -async function refreshDoctor() { +/* ---------- environment ---------- */ + +async function refreshEnvironment() { + let doctor; try { - const doctor = await fetchJson("/api/doctor"); - const device = doctor.device ? doctor.device.toUpperCase() : "no torch"; - const weights = doctor.weights_cached ? "weights cached" : "first run downloads weights"; - $("env").innerHTML = `${device} · ${weights}`; - $("version").textContent = `double-chin ${doctor.version}`; + doctor = await api.doctor(); } catch (_) { - $("env").textContent = ""; + $("engine-pill").textContent = ""; + return; + } + + const device = doctor.device ? doctor.device.toUpperCase() : "no torch"; + $("engine-pill").textContent = ""; + $("engine-pill").append( + el("b", { text: device }), + document.createTextNode(doctor.weights_cached ? " · ready" : " · first run downloads weights"), + ); + $("version").textContent = `v${doctor.version}`; + + const facts = $("env-facts"); + facts.textContent = ""; + const rows = [ + ["Device", device], + ["PyTorch", doctor.torch ?? "not installed"], + ["Model weights", doctor.weights_cached ? "cached" : "download on first take"], + ["Voices", String(doctor.voices)], + ["Home", doctor.double_chin_home], + ]; + for (const [term, value] of rows) { + facts.append(el("dt", { text: term }), el("dd", { text: value })); } } -/* ---------- script stats ---------- */ +/* ---------- script ---------- */ function updateScriptStats() { const text = $("script").value; const chars = text.length; - $("script-stats").textContent = `${chars.toLocaleString()} chars`; - if (chars > 0) { - // Rough planning figures: ~15 chars/s spoken, ~0.2x realtime synthesis. - const audioSeconds = chars / 15; - const wallSeconds = audioSeconds / 0.2; - $("eta").textContent = - `≈ ${formatSeconds(audioSeconds)} of audio · rough synthesis time ${formatSeconds(wallSeconds)}`; - } else { - $("eta").textContent = ""; - } - updateGenerateEnabled(); -} -function formatSeconds(total) { - const seconds = Math.round(total); - if (seconds < 90) return `${seconds}s`; - return `${Math.round(seconds / 60)}min`; + $("script-stats").textContent = chars === 0 + ? "" + : `${formatCount(chars)} characters · about ${formatDuration(estimateAudioSeconds(text))} of audio`; + + $("eta").textContent = chars === 0 + ? "" + : `Roughly ${formatDuration(estimateWallSeconds(text))} to synthesize`; + + updateGenerateEnabled(); } function updateGenerateEnabled() { $("generate").disabled = - state.jobRunning || !$("voice").value || $("script").value.trim() === ""; + state.jobRunning || state.voice === null || $("script").value.trim() === ""; +} + +/* ---------- delivery ---------- */ + +function setRangeFill(input) { + const min = parseFloat(input.min); + const max = parseFloat(input.max); + const ratio = (parseFloat(input.value) - min) / (max - min); + input.style.setProperty("--fill", `${(ratio * 100).toFixed(2)}%`); +} + +function knobValue(id) { + return parseFloat($(id).value); +} + +/** Keeps the range fills, the numeric outputs, and the collapsed summary in step. */ +function syncDelivery() { + const changed = []; + for (const [id, fallback] of Object.entries(DELIVERY_DEFAULTS)) { + const input = $(id); + setRangeFill(input); + const value = knobValue(id); + const suffix = id === "rate" ? "×" : ""; + $(`${id}-val`).textContent = `${value.toFixed(2)}${suffix}`; + if (Math.abs(value - fallback) > 1e-9) { + changed.push(`${KNOB_LABELS[id]} ${value.toFixed(2)}${suffix}`); + } + } + if ($("seed").value.trim() !== "") changed.push("fixed seed"); + + $("delivery-summary").textContent = changed.length === 0 ? "Default" : changed.join(" · "); +} + +function resetDelivery() { + for (const [id, fallback] of Object.entries(DELIVERY_DEFAULTS)) { + $(id).value = String(fallback); + } + $("seed").value = ""; + syncDelivery(); } /* ---------- generate ---------- */ async function generate() { + if ($("generate").disabled) return; + const seedRaw = $("seed").value.trim(); const payload = { - voice: $("voice").value, + voice: state.voice.name, text: $("script").value, - exaggeration: parseFloat($("exaggeration").value), - cfg_weight: parseFloat($("cfg").value), - temperature: parseFloat($("temperature").value), - rate: parseFloat($("rate").value), + exaggeration: knobValue("exaggeration"), + cfg_weight: knobValue("cfg"), + temperature: knobValue("temperature"), + rate: knobValue("rate"), seed: seedRaw === "" ? null : parseInt(seedRaw, 10), }; let job; try { - job = await fetchJson("/api/jobs", { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify(payload), - }); + job = await api.createJob(payload); } catch (error) { + resetJobCard(); + setStatus("Failed", "error"); showJobError(error.message); return; } @@ -133,80 +267,89 @@ async function generate() { followJob(job.job_id); } -function beginJobUi() { - state.jobRunning = true; - state.jobStartedAt = Date.now(); - updateGenerateEnabled(); +/** Clears the job card of any previous run and brings it forward. */ +function resetJobCard() { $("idle-state").hidden = true; $("result").hidden = true; $("job-state").hidden = false; $("job-error").hidden = true; - $("chunk-list").innerHTML = ""; + $("chunk-list").textContent = ""; + $("job-timer").textContent = ""; + $("bar-fill").style.width = "0%"; +} + +function beginJobUi() { + state.jobRunning = true; + state.jobStartedAt = Date.now(); + updateGenerateEnabled(); + + resetJobCard(); $("bar-fill").style.width = "2%"; - setStatus("model loading…", ""); + setStatus("Loading the model…", ""); + state.timerHandle = setInterval(() => { - const elapsed = Math.round((Date.now() - state.jobStartedAt) / 1000); - $("job-timer").textContent = `${elapsed}s`; + $("job-timer").textContent = formatClock((Date.now() - state.jobStartedAt) / 1000); }, 1000); } -function setStatus(text, cls) { +function setStatus(text, tone) { const status = $("job-status"); status.textContent = text; - status.className = `status ${cls}`; + status.className = `status ${tone}`; } function followJob(jobId) { - const source = new EventSource(`/api/jobs/${jobId}/events`); + const source = api.jobEvents(jobId); state.eventSource = source; source.addEventListener("progress", (event) => { const data = JSON.parse(event.data); - setStatus(`synthesizing chunk ${data.chunk}/${data.total}`, ""); + setStatus(`Synthesizing ${data.chunk} of ${data.total}`, ""); renderChunk(data); - $("bar-fill").style.width = `${((data.chunk - 1) / data.total) * 100}%`; + $("bar-fill").style.width = `${((data.chunk - 0.5) / data.total) * 100}%`; }); source.addEventListener("verifying", (event) => { const data = JSON.parse(event.data); markAllChunksDone(); $("bar-fill").style.width = "96%"; - setStatus(`verifying speaker similarity (vs ${data.against})…`, ""); + setStatus(`Checking the voice against ${data.against}…`, ""); }); source.addEventListener("done", (event) => { const record = JSON.parse(event.data); finishJob(); - setStatus("done", "done"); + setStatus("Done", "done"); $("bar-fill").style.width = "100%"; showResult(record); refreshHistory(); }); source.addEventListener("error", (event) => { - // Fired both for server-sent error events (with data) and transport - // errors (without); a closed stream after "done" also lands here. + // Fires both for server-sent error events (which carry data) and for + // transport errors (which do not); a stream closed after "done" also + // lands here, hence the jobRunning guard. if (event.data) { const data = JSON.parse(event.data); finishJob(); - setStatus("failed", "error"); + setStatus("Failed", "error"); showJobError(data.message); } else if (state.jobRunning) { finishJob(); - setStatus("connection lost", "error"); - showJobError("Lost the progress stream. The job may still be running — check History shortly."); + setStatus("Lost the connection", "error"); + showJobError( + "The progress stream dropped. The take may still be running — check Recent in a moment.", + ); } }); } function renderChunk(data) { - const list = $("chunk-list"); markAllChunksDone(); - const item = document.createElement("li"); - item.className = "active"; - item.innerHTML = `${data.chunk}/${data.total}`; - item.appendChild(document.createTextNode(data.text)); - list.appendChild(item); + const item = el("li", { class: "active" }); + item.append(el("span", { class: "idx", text: `${data.chunk}/${data.total}` })); + item.append(document.createTextNode(data.text)); + $("chunk-list").append(item); item.scrollIntoView({ block: "nearest" }); } @@ -233,104 +376,121 @@ function showJobError(message) { /* ---------- result ---------- */ -function verdictClass(verdict) { - if (!verdict) return "plain"; - if (verdict.includes("strong")) return "ok"; - if (verdict === "match") return "ok"; - if (verdict === "borderline") return "warn"; - return "err"; -} - function showResult(record) { + $("idle-state").hidden = true; + $("job-state").hidden = true; $("result").hidden = false; + const chip = $("verdict-chip"); if (record.similarity != null) { - chip.textContent = `${record.similarity.toFixed(3)} · ${record.verdict} (vs ${record.compared_against})`; - chip.className = `chip ${verdictClass(record.verdict)}`; + chip.textContent = `${record.verdict} · ${record.similarity.toFixed(3)}`; + chip.className = `verdict ${verdictTone(record.verdict)}`; } else { - chip.textContent = "not verified"; - chip.className = "chip plain"; + chip.textContent = "Not verified"; + chip.className = "verdict plain"; } + $("result-meta").textContent = - `${record.audio_seconds}s audio · ${record.chunk_count} chunks · ` + - `${record.wall_seconds}s on ${record.device}`; + `${formatDuration(record.audio_seconds)} of audio · ${pluralize(record.chunk_count, "chunk")} · ` + + `${formatDuration(record.wall_seconds)} on ${record.device}`; + const player = $("player"); - player.src = `/api/audio/${record.id}`; - $("download").href = `/api/audio/${record.id}?download=true`; - player.play().catch(() => { /* autoplay may be blocked; the controls remain */ }); + player.src = api.audioUrl(record.id); + $("download").href = api.audioUrl(record.id, true); + player.play().catch(() => { /* autoplay may be blocked; the controls still work */ }); } /* ---------- history ---------- */ async function refreshHistory() { - const records = await fetchJson("/api/history"); + let records; + try { + records = await api.listHistory(); + } catch (_) { + return; + } + const container = $("history"); - container.innerHTML = ""; + container.textContent = ""; + if (records.length === 0) { - container.innerHTML = '
nothing generated yet
'; + container.append(el("p", { class: "history-empty", text: "Nothing generated yet." })); return; } + for (const record of records) { - const item = document.createElement("div"); - item.className = "item"; - item.setAttribute("role", "button"); - item.tabIndex = 0; - - const text = document.createElement("div"); - text.className = "txt"; - text.textContent = record.text_preview; - - const score = document.createElement("div"); - score.className = "score"; - if (record.similarity != null) { - score.textContent = record.similarity.toFixed(3); - score.classList.add(verdictClass(record.verdict)); - } + container.append(historyRow(record)); + } +} - const sub = document.createElement("div"); - sub.className = "sub"; - const when = new Date(record.created).toLocaleString(); - sub.textContent = - `${record.voice} · ${record.audio_seconds}s · ${when}` + - (record.audio_available ? "" : " · audio missing"); - - item.append(text, score, sub); - if (record.audio_available) { - const play = () => { - $("result").hidden = false; - showResult(record); - }; - item.addEventListener("click", play); - item.addEventListener("keydown", (event) => { - if (event.key === "Enter" || event.key === " ") { event.preventDefault(); play(); } - }); - } - container.appendChild(item); +function historyRow(record) { + const playable = record.audio_available; + const item = el("div", { + class: "history-item", + role: "button", + tabindex: playable ? "0" : "-1", + }); + if (!playable) item.setAttribute("aria-disabled", "true"); + + item.append(el("div", { class: "txt", text: record.text_preview })); + + const score = el("div", { class: "score" }); + if (record.similarity != null) { + score.textContent = record.similarity.toFixed(3); + score.classList.add(verdictTone(record.verdict)); } + item.append(score); + + const parts = [record.voice, formatDuration(record.audio_seconds), formatWhen(record.created)]; + if (!playable) parts.push("audio missing"); + item.append(el("div", { class: "sub", text: parts.filter(Boolean).join(" · ") })); + + if (playable) { + const play = () => showResult(record); + item.addEventListener("click", play); + item.addEventListener("keydown", (event) => { + if (event.key === "Enter" || event.key === " ") { + event.preventDefault(); + play(); + } + }); + } + return item; } -/* ---------- enroll ---------- */ +/* ---------- settings ---------- */ + +function openSettings() { + const sheet = $("settings"); + if (!sheet.open) sheet.showModal(); +} + +function closeSettings() { + const sheet = $("settings"); + if (sheet.open) sheet.close(); +} async function enroll(event) { event.preventDefault(); - const name = $("enroll-name").value.trim(); - const files = $("enroll-files").files; const status = $("enroll-status"); const formData = new FormData(); - formData.append("name", name); - for (const file of files) formData.append("files", file); + formData.append("name", $("enroll-name").value.trim()); + formData.append("overwrite", $("enroll-overwrite").checked ? "true" : "false"); + for (const file of $("enroll-files").files) formData.append("files", file); $("enroll-btn").disabled = true; - status.textContent = "processing recordings…"; + status.textContent = "Processing the recordings…"; try { - const info = await fetchJson("/api/voices", { method: "POST", body: formData }); - status.textContent = - `enrolled '${info.name}' (${info.duration_seconds}s reference` + - (info.has_holdout ? ", holdout reserved)" : ")"); - await refreshVoices(info.name); + const info = await api.enrollVoice(formData); + status.textContent = info.has_holdout + ? `Enrolled ${info.name} with a held-out clip reserved.` + : `Enrolled ${info.name}.`; $("enroll-form").reset(); + await Promise.all([refreshVoice(info.name), refreshEnvironment()]); } catch (error) { - status.textContent = `error: ${error.message}`; + status.textContent = error.status === 409 + ? `${error.message} Tick the replace box to overwrite it.` + : error.message; } finally { $("enroll-btn").disabled = false; } @@ -341,28 +501,53 @@ async function enroll(event) { function wireControls() { $("generate").addEventListener("click", generate); $("script").addEventListener("input", updateScriptStats); - $("voice").addEventListener("change", updateVoiceHint); - $("enroll-toggle").addEventListener("click", () => { - const form = $("enroll-form"); - form.hidden = !form.hidden; - $("enroll-toggle").setAttribute("aria-expanded", String(!form.hidden)); - }); - $("enroll-form").addEventListener("submit", enroll); + for (const id of Object.keys(DELIVERY_DEFAULTS)) { + $(id).addEventListener("input", syncDelivery); + } + $("seed").addEventListener("input", syncDelivery); + $("reset-delivery").addEventListener("click", resetDelivery); $("script-file").addEventListener("change", async () => { const file = $("script-file").files[0]; - if (file) { - $("script").value = await file.text(); - updateScriptStats(); - } + if (!file) return; + $("script").value = await file.text(); + $("script-file").value = ""; + updateScriptStats(); }); - for (const id of ["exaggeration", "cfg", "temperature", "rate"]) { - $(id).addEventListener("input", () => { - $(`${id}-val`).textContent = parseFloat($(id).value).toFixed(2); - }); + $("voice-select").addEventListener("change", (event) => { + storeVoice(event.target.value); + refreshVoice(event.target.value); + }); + + $("settings-open").addEventListener("click", openSettings); + $("settings-close").addEventListener("click", closeSettings); + $("enroll-form").addEventListener("submit", enroll); + + // Clicking the dimmed area outside the sheet dismisses it, as a sheet should. + $("settings").addEventListener("click", (event) => { + if (event.target === $("settings")) closeSettings(); + }); + + document.addEventListener("keydown", (event) => { + if (!(event.metaKey || event.ctrlKey) || event.key !== "Enter") return; + if ($("settings").open) return; + event.preventDefault(); + generate(); + }); +} + +/* ---------- tiny DOM helper ---------- */ + +function el(tag, options = {}) { + const node = document.createElement(tag); + const { text, ...attributes } = options; + for (const [name, value] of Object.entries(attributes)) { + node.setAttribute(name, value); } + if (text !== undefined) node.textContent = text; + return node; } init(); diff --git a/src/double_chin/studio/static/fonts/JetBrainsMono-Medium.ttf b/src/double_chin/studio/static/fonts/JetBrainsMono-Medium.ttf deleted file mode 100644 index dc2e5d08677d603b6755dc6c34fc8ad9aa6fc8a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 270316 zcmcG%3!K%{{{R18pU+yKru%KG(PY~*d#33!rJGDwW14QdNJ=vblZp^R2qA0Y z_pnO{A;ihip>yQu5K^Jzgd8Ds`9I%#?VaJ9^ZoyR-|w#;&tB`Z)_bk>UYF13vp#F@ z{Yi|7H0B>GjRuzYACNP;`7{ad-Xao=8aU#}qi4;$^BM{7EfG2Jj)6yyE}Ply+AAe| zX`RUU=0_fVaF;G0)yoz!3n-;(!s+9uo)Iexu+0%E8#m#+Y4M^34J$;>0D1VNsVAR) z;=$piA}34}X;AOv@#jn>z7h3pK(kJsa=}S2UjEu@kvUT&c(vQ)N#iHR${xRp@>`MK zeKHYJQn!HPQ5+XcK7HEsqM~l6alBI`H#X(W3FEU)dt$N3nIz{6D z5%Dv|pFXMjw%0C}aA>uNTQv2|bEcJ#tyL)DNNk2Kn0of4sdN6aFeY;POzi(I+Bd=Q z?5n>$`K}Wh_WoWPhFgh|jdh;=Qgzb@6CU`f_nxW2ZhHfVkp!t6R3{Sd+Cv`&6+iXf zJ2u$u^JyOcCwf|Kq7Te+IYX}2oWcC?2e}Tfsv6XjkW?FtG0VhJ#+*QVZ-`fOymT?8 z#ER7RWmVf?Zxi|H7h-yA%n@brxU7`=d-r-D>~&^dT+BV6yicyy!3UVcC8Eq@q2vEU zT2i)B2^Iehbx2pn|1WS@x{PDcu`udCpuTCns*|8a8V&!S&=z|o)6SWM&jHm8*@VkM z{n{V@$or1cX^NFSeXC^rqQv@glnh6J<#-dw0Fm^;Z&Snv;L?3@kjZ!5AxHfO#;*p zjn_VyQiD9ge^id1C-*|}e)!)!FZNef7wXL258BU~_TQnt{~nz?`(uCSTqkV*h#K>K z?=Q@+{UAE_vHeg*Tn6=}|L^$k+NJ6H>#zUYIBmP0N9xNH@C;}l>-^Mf$;=vPdk%oi zz0DHt44Jyqb3Jv9)9bG0*Ey$UWzw`REnjI5dhOHnfuMb+=&?dL)we$r?h0C_mU9GT z?rD0j63~2FwuXm-)~jt(`hea)^<1v$v)ZWdT6Zm|Or!A`AGJKaj*bMadsdp6=)uqu zGUrb{!fKmot6m?J9LV^twwZLDN8KSa=9xM*UE8Q_QuJ8ctKl37p%-Xb>Z`W5=Cw_I zR$FbihBd#o^UyTvOBHDTnm+5X+G*YDTNbEYhK!$Drute5Gt*(66Y7h`sj9zPui9yS zTJCVrG#y(_(|UBw;*gmOnL23W-fL>`7~u;6O_i;Av<$6JISTZA*EVW9bWA6M+Gw3x zkB&vgZ>>l3sBH^SpVUWiM(tH~{%IK*)HZ{bq3N1e>(x3H&D#K~AP2Nu0gWF5 z+J4p1p!H{twY*%=w27egp8%QkjOtv|G(FZbwQM~{vta;q2Q5QUTa8myGI5!7EvI2R zUhOjJ9n#@Uzv^+O9u2GQV9@oKwpqjd(hNd%4h{#szGztOw7uF_npfjBd^OwxHv!`= z*Tc0i3pDOZ(D?tqc6yG~peZ;uR+DGIdBHyOM!X1=WUMP0JTq|ZP6ovvQn%hZaLxC(37Zhr>}d@ zb;K!@@ykyrd49Q*^eyn#f8d|k-KbBXzuNpldv||B{B4v|AEht$GzEPA<$LPY_D%5Y zVlAX~XuZ4idZ+#O7x+79Kaxj2NkbdtOi-JpkN~yOIe0$M9=QTE9-F;Cpaav?Mk#ae z1<;c4T%e7qvC}aA%hRA^rRVJNkSRNJOh3!5a0=Xgvq01=0eT6s9~K4dn~#X9S``k=biL%8?TzS z>om&vH^+DUmOWQ-%pCfO=ZxLky#1c}*wfcPU&!%iloz5e{?110NSCE~Ghsc4_VoYt z_?Pc|I8`@(sNEj*i+FAC?k{0G;Y#ADch8|dK2_&yq%kJHT!wA{Js;=`c?zxpfzmY0 z5uH=}BQ>8oVwa(<52xlJ^`-7*T2_XkgpYip5Ut>?in zX^uph=c)5j{W%b{94)gcFmLzqD&bSpXjtv`L#qF~lD0pz4n@l)Z_4&4!r6q!!kh32 z$8~^tuk76m+X$;&jrue$L+bpENY`>{bE@0|!hgguqzwQqPy3Gfomw}IMzs&iL2a5q zXV88=0@OYZYNs|jW-Z}v&@t0%ApWNA-I`Vi+Sj>oPddzbm%3KXMf20XqVfQ2f$5;v zJjPsFgO;n~r1N|@(8j&oXHtEnWw!@awNuT&xTgA{G@YjD^s}}*6|cT2dfsHh>a+Ty z^FZVEe96RVy!xYYiu#ucYg#6s)~9Wo1QS8+YT9Ph0^itvmxwLA&^=UHpYWqLH zaP9^5eHj}5eOc!B4xMsqtsb|KFzqfL%WR7cS%9i8bc|||%vUp<@nL_eKBVeMYsMyZjn?{V#Mca`@~B^Fo0MOfaEBQ~+Ght0{Qv)rF&*XlC=G%`Csrr9!t3GKN z?b38e>;C*xJM~e^P#?7pt&7hP)yGshdhfkJHpyMGg-_AWk!xVKEJ3f4x8#}Mr2U$5 zuN)%x@^pBLblJP!f11X>NAp+zSO}rOha2oneJ-cRq155?%bj8y@EM<3XhdqsLa8qY zOAon37Mn}WJadz|)7)#4W`p^{{L6fA_6E5@*Wl2gG8h{?AFK%e6ucRH6nq!_7}~I2 z*f4Ao=7x!|O;{418(tF53Fn6M!h6Fgzahj*(2>ZdxE{$-f8c* zOYF1u1^W;CiT$VjzRs7iD`R)Zeu|rT-FTyTcD#8!KVA@T9q$zH7VjB9EIuGUHGV<- z!uX8%HSxvqC*sTEFUDWa3-apcHO*_D*D~+Gy!^a^ypDOLdDrIMo_BX%b>97X59K|Y z_juk*d2i;e%lk0zlf2LJw&s1AUoXFDezW|R`LX=M{Py`h@_Xm^&F`1rKYwukko;l! zqw>e(Ps%?he@6Z_`M2jkkiRT{dH##}tMcE-|8xG^`D^nx<$s%SiMolL#6gMHi8hJ$ zi3=0gCT>YQo_IU4ry#GOpm2WSJ%#rcK32G<@SVc<3O_IWSK&8>KeRr*^_i`&Zhdc2 z)1qcYEsDAqomDiy=`HT77d}(%=T|rLJB|SRNF*h$O|Wpr}VqthkcBi=h+&ge`_jn2&YW4{}nW_btH7@awJ^YZRubneT0An%d% z=&WUQK4x^jV00wE0i%<{=p^!s^1JODoq_vC=Y;%I^DoT5JpcOqJ5!_cLjJ3a&g%5& ze4PjqS&UArL_unFx+kt-bnawyekqWGM4=SkQdnL1XyMYrw+q)XI$zWno$7s~a|WZc zu;_J0=kucPQ=@Y=qvIHz>W#^oqZ4xW2TK^E)SsaDUOw^v{hvLX_bl2|%}Lpqlk!{6 zx?ZM4ZNjs|so~^sd{`A8Eo1k-%=O?aShMFX{#~0XW%rw0$B6%Ajn)wzTy%Z2srwt((8#?+2ULZRYy9`6YOC^HZB%OO^F5N3>%zSCP#JZhC&x zf=zc3D%kYkrn#Ga0qK7?ov`W1RF1pxpv9)#O}%`=rwdg-o&D(*svBQ`FEpfoHs){a zy0N{6KH2ff)=##7vi_5GA5Hvd!bjhH^!`UDeKd*i0FjUDe9X1&qu7TPA3eUIB2t58Xc|w(itA5pCu=bBrBrSLwGD%pLGd&^I_H+^MC8KZHBOpKT7;qgFP?oNuSG zj7;laAyjO;`S@S|wOq+<&y+3ya;6NoBkg2Dm%zjJCA-f4opa@5yU~7bx7si5Hv4b8 zi!^Y0HBSF=e8WTkxaVPod(|K9@8682PjmOVMedp3+POz5BbiQL>{fBK2Hu8!v&a1{ zlgGX7K5*OIcDE;DX7CM;f{43fl)lo^*H|b3!J2U)C_*l3&yv@bK>%s@QLRE8(y1^B> z0@pgc*_sI=RP-D#>jDUyiAl!^qF^TCRq3?B&ridxiO1_$OCvXGJgDt6aM-GxvSpB|Cr6oPGSt+O{-%YD zGP!b$InczU!o=lRlaNZ2FJn!Cj5CFDf@ve;O?#;_?Mz#lU^>VJrk|W-I>~fXCYP8& za)lWtSDGVbmKiQro1j6 znv-OKnIN~DiE@XTBz;UE7n*YE#iio_`B-L{0dlPwEjOBRvfNw|y%W71Jr}(Yt%#nE zUW{IeUW%4S=SAm77e<#vmqs(9bE9d|%;@51dUR2AR&-8qZrD3GFE~G#9$Xk)6f6v8 z1Q!SQ1@{Mwf;)nHf;)q|gX-X};NIYp;KAUb-~sbd5SsPo7xS~(ZT6VGW~cdyuVrmE zUvZaTXWlb^H}9JdS(SZkJ~123r)HD++I(ZSn{Um(&3EQU^8;(OU4aP#Rs;tGEm^f4 z6vTu4AQ2P6!I43|U<6ODM+FUn zkwL@Y=%7(BN}e3JjrJ<~odh%CRt8el>vbR`? zu8}PH3*Q|3vvigpq^s9!z80e(z3qom_YOgZ;`iw_m%-u9@BL4z-(IiOX}=RoG8l5Br7vr|a#`up8VEH<&vlrn4N5ov*T?y?xTHdC3ow7cAA}F&#}GjL_5l!ZTs5_dy?&I zOYIQb!%nr6?4kB(dlqZdDfS3^h%K{2?HP6;_xi)^x%PB>3QrYP_HcWq9b`}D-rU6w zu!DKp=xiUe)%GTLnCs*Ex-wVl4tK`xb>c?5qunUG+wQWz*e&iTH^LpsdiMqUBKPv= z?CbUo*1-4M2kgbHhcB^@vKn5)eSW@u&A!U|_%3^oz1uG231+oj#PiI(_D}Xf`;dLa zuC#C2RXpF^XqQJlqNdS+C>|Xa9T1g9Eu-F1^QceMf_rSO$V5$|Lm9TcQRAq8R23Z? z9Tb&E$43>>fzjY-N>mvI(J4_@bV8Jf21TbuVqr;=V(IHWGlpEzl4WnLBS=20wxyRiD?m_pEd)PhV9(9ko z#qMdh%su6nx+N~@o^;Q+SKVuFm3zW%a2wrLRwp01Pu)M=S8j{@+kTub=Vb)sKu*nwz$PpB)m zxF=+9ft5sx@J2M>6S8*VZkQruO`CdlE?@=sSHguJ*AHc_sMwikkth5M%4&)`yM&LS zx~hWkHdNQM;NobpC%g{r;0Yf@J9@&o=)s<_8fDeVibsM^QEdZj=k?F z7?Nf*IyB7~bQlZ=_H{&`43vp5B8~cX6pVz+K+96Df>CL--?UuiCO8JP>_?#jDnVDo z$EJB69qS37M8|o;dr|cRLbX5M<8&NO@Pt}sm4_81Um8#I26`e)fKNc%pnMLK(tL@Y z1Si8DnCvkTdWy%?Mo;ya1JKhvsqc$VAq?gq^mI6baBK8Tk5NCTdW??4S-{%cXy2dX zG1{-X5(lGwbFRl|yUzpmrHsZ+hYJW_gkI<|SE70h;p6BGkG%%H*b_d1UgB{b&}vWE z9o7DYP{-&#k9`Nd-(&xdF7nv5=mQ?R9(~Yb=b#UH?B(dgo@g2Rh{s-m>NtV<8~T_h z{1dv^--{(=G&U) zNA#a*{)K*-=4(`sl^w9nW165}c}!hY?Y?1NH9)tg(el3a7@hzB_L!dNcOIi-r{#j_ zf`0EYI(9#JQu|cuAGid%(_{LhKY5If(a#=!;UV%1?4r!^=x&d>7~SJBIv@6Wcs|u_ zniM>#3eTGnCeT$jpy1FJRu9uiYau=wSQB6%zWdyJB5y?Y2?wh1J5HVbZm8; zQe)K(ZR*iJ_Jfq7d1T{rM#@6kTy z8j-q3m7&@;r531vp!ap2{XN>&b{@U|voqk)zG1$m=IkJ}LmC~Ejviej=-f@A{ipo} zy4K*i-lJp7oKDT_{%F@U+OIkuplb@A7d_g4-95Ud;Q3K>?x*^$2MW5r(DNrn9PQ=N zwFdhO9_^<-9$ky@yy?-t)P4kAkC@Ul+LwoWbZx?3h)4TX`xkUQ!k&aj`%>Ejx*lPF z!lV5+&?8l-_MM`AJUET^{Sh8ryXaaWh4!)b9i-L)!w4%{|8S44W!RhXXn*UNfvz3c ztMRDsI>w;u0`_h^>WB6<$Q9`5G+KxDHOQ6dm^50C_BF^XRQpj;U$n1*-<=72LLRMO z`wnCddR!W<^LP)RqzU^)9`&or!{=y%!rQof&vg3Lp;j})zEqDO8(C#6wev|m83 zM^8?pzE1Y&I)%Lk&ouN@kFIgpfAE}zPVvZm^z=09?-?Fl`>;phIR~BU(RCAhVIGY; z+oS6y_QpIKr*(roj-H!F$L>6ju65X_@#xrT8tA%*y_*!eW??_aa}|1#N7pQ7MjGwU zi#@uoVL#5J<8^5o9cS%FV0TW8_BF6iC*~$k_%?cH8oee}ds1uMdkHJO;Yp9&gC^5x zAOFR}j-MDU3v@kV-tp+Oi&>kdKKfUWuGe)PnW8iLu19V`*QKdK-}8w2`1dqA7vA^C z0(5;EokRcd$nEF{X>?9~=#e|n4QX_KeeTg`JM%@F0R7UV>vZ$4H09_Hk3Juo@6*s^ zv&+M7rkLFxUGJDZ9$nX)y=eyUoSEa1Yf(TQq=;F~eZ_w3aILCuS zJ$jD{Dm}Uu2*!GJjSxKNi5QdMc~8U`1uHxeV;H>QiPZK_p6CViO;4ox=w~I;eE;x7 zPop1rq8HH*J<%)Z22b=7`jID6|G)Ftj_8jbdoXKm`Y|+=&$$vZ21;}xNAmqRY`-Peeb52~RW& zErd3deu66eZqOH1Pf8-iauut$D#MbBZSXDABD#VYhNvfCkWq%KIsYWKslF{fb%+B z0&f!5e)zK|xD$QL6Wooi@dVW<^F|5oLf`fT_>pQqeGq8--viFu;6apgRtX;9SOAIWl<~KWx1MK~akh-H{ zdLG+G&=i|>Xf`w>{2|&LS`z*kWe(T`;VozZv?csC+RkH`zqY-{{D2mF^x9xMc=Xz! zb6w|npzZDidJgBH-QWdxR&@^dX*rJa(uj=z$LN z1f}S3IFh{m(W5*;9y-z!3`CFi1g+3fp5QQav?u6`9s?DWb2wTF#}e+1j`alU<2X-H zgdXn+I-@6ef)aF|N3YYCd8-5mqBnW;nr(0P1TpjuPhinIJ;5OKK2MejeTvw_9-$v%k9c&?BKD|9 z=!e*29^J!;X&XT5p^tlX?<1yd0Ac>bwEduaEivYTBFvK*^Fh(Qme^8{Fi&Dnd34_; zw#>t)W)geaqkAwh=8wWBX%b`pD7t?WTkhf0HHkgv(P#Y_^Ge|pH;FN?6n)l@t?=+E zoWx%A=(Bz7C6DfL$6og69z<-VNB6m7uXuDHBKE3B_q=1Td2~-Aw#p+N(bqk?KM{Mw zqxDFVJV}n6?dck2$9O1^O%=(>?;-H;rk(fIiE`-uCFeY3v=3 zKF`H;>_JXJ|LW0a$C!>i$Z6=i9({I<=@^6V)yCfQ=yPQ3?;hQ|jlJ*DXUdq)InaII z80V;>&!VvpJi2!q`_QA$kulC+Mb1SzcNKkxjB)NNx{n*<{8daTy3wP1yRlC_`g|GN z~oLYjegYk=F3^=r%hf1zOVPDbya)6o{3hBPm|x+YDDyxG??Dgqgp6Zc%Yx9M z{b2y%1?W^ysJ>5w3y4pk7kV6a@fjY=_{ABI_%+xxLmz|1_{O;uf5KzmN0)i*I`l=4 zeGh%vV>w^*0#87`y!xKtDU@+h>|B&O6n(bHV~iAg1Iqa1F*d;qDC3|6)RRZwD)vgW zz!SWVcJ$cm(Nd2)1)bxuTx;?eC&kjAd5nSLE=Ov5COdLGAo%5UJY+tG#|$F(BAk;iUE8+%*{+Qj4X(54=z{%TpE>!$o1 zkE=kLpNg)<@|mZK>w(5R?qD?G(e+n;fk)R|`Gp?GIh|hw?aA92?dEZ3poe&LJ(#ck z0&WPZZ2&hIRlmV9Ciz-7=sGT6%LP}7_Vw7EXg`l-?DPA3>?U-e$7w$e@;H3T*E+yu zqgpq(Gtprl`yD#UV>hB>JWlllk2?ab@;Ghxc#r)zdZNc^|4s0?N$5n6Ym4eJxHjmi z9;fr=G>>!W6pyZz^L1{4Yk_J%g3CqKZ*V!N&R1})(6c=50Q78+)A@Uj$Nq?3=yBRl z7kS*t=nRk3KD*rGPC~EnIQ4fHTuEIzFF616uO>VcoekFz*759NBLxO36F zJ??n)9*;W?t@bz_=X*VF9D1L}9fRKQaXLPWJWj{$0gu!EUgmLn&Mo)2TIdTNr{l1~ zs?;fv<{X%o8y@QQ&cRp@klOeoeIY=reAjjmIX@ z_8xr>PIUL!PUxW?%Qz-VJo*fu=;5(r(4HQB)=%{E=retyw@3F35`8>Y%joN|TF+q~ z%ej*%_2?c);&6{W5iRrRK18CQNB0R5}%LRKjs{II7+ob&qwgOFKPa>>7fz`g$@c^s+r+ops$CJ=80IOrA?FTy* z)xHBe3FUlNtd4V)NB4CS+DBl|LUjy4_m&dcHn3ArZ3F1uQbNlD-IGeFe_(aoPWI?N zQ$oiB>>21O9;@S{V-LEAmC$(xR_BG*0rp(O#opwm58=gS2i-4{z-=&_yAYdrQbbdJYXqt|+L zk1BDC$Lbup)8n*_3*j!VX*%ET_Bidgdw?=rDSEHR8T3B5AD{Q4i#%>L`T#tLy^h^O z9=jWT*kgC0k9h1a=%XIpPfDoY;EqBUdz||DxW{RG-}cz2QO!?z_IXt6*hBb5|J9KK zA^aR+d@TqFzmA4r3FCW#^H}^Xh&=XUw3bKr`3kZ;_7b$V$Kr269glqmt?RLC(0U$A zTMO!Y?0mF=$G(O(^w?L?MjqWGENJYpccD!@mcB1&>amPTLAJ*-Rt3#G_F1&K$F4?O zcr0U5kmIp8qX&2_V_4AAWB-KaLM!@&F)KLGV;P@ z$QUV6ZLX*MM2tfrW28ifqKuIe zsb87~j`?4x?SV+s86zd?k1|F|RE4Tf5FLxE9}v;6g^ZCBm805Dh>l0KZ4gzUjFA#C zK81{x5)DT67@{dCG*5=A<{lmUm>cGYM(-+{ip4Rr~#^Ff%^_spTPZy zj`T$J(4#$WH#*AW{*7vzA*zdN|AO0v>Kp?1EvoYyq6w(ZU5K;{Jx{>>fNI+yIuX?| zgGlStxdrZf^mtEnCaQB9qLa`nkNX)N?}^SpwJeAxp;|Y%pU{b(s1B-W;C?~1EO6UV z9W#iuJe~ItX@8vJaXZjcJ<;jtX`V>Sp5k#kQB8xW1FAkjRE%mHrV{Rmp5=*jzMt)h zI-}=!qE6^EPo#79Tu-EP?L1GUbMt&pbO<`#6J?_pc%oeNLQj-~UgU`yqBA^EFZ5zh zr1SR@Pt**()Dy+fnI88zdKt{7-yT4(@wlhaIUctRz1HKNLg#wiQuI2HTY_HiaY^(B zk9!iG=W)-VH^R--^(s2wZ9vrza2rwe58PH% z{RX!U)%w7Fglf6qK1G*%+&|IhJnk#>d5_zIzTk16qboe_WAsIj+l0R4abKb@d)(LP zN{{;leZ}K8quOS0|3Y8$xNp!^9`_mgy2pKiz5%PTe+PZjm_PD>HZ+V>BY8p6= zd)wpwf@*$nTJ}1iFCFC;YTLl6t=5NM?tN5!0{18M2alu9)~9>IzoKV)LVRd_wa1=^ zGIp&QJ9|Dqr)cW2%-^DB9?SeKYT>cW-=gjw%ls`m!xJ)=MU=0Ej9(GwnG!PIMQ3?J z#<*y{$K8!C1k^EyifE@2GPXtZixM)1MH@W!XOwmq(cZ8x`aS$e-uw8;M{|!GjvnE$ zKcTd-E$2wc__q^}tBpE{$Xkb>g;aPfb#0^{Hd0=+7EJ=aNAL2r*%LjkKf2cw_TVeD zV?80~k-jTK37PAAcYEwBeC@1J3JD(LD@!FnzF;xh3us61Bw7mPgqNWMQt0<_%zH<` z2;yHtN5W}@-$+VvJSn3q`d7x|LzYW}qlP4-qmQjfcFRq+sjNCFK4)}AGAJDXToxZm zPMDB5F*h$SDV0g-mndH~8 zrlu)riKL9Em{hs6xlzjwNn4x@+b5g#tI+zA&HMFB8|20(#*-^YByHSaURFHLy|EK#fFSu z-bf~>#d0SnR#r|NUzs%RD=X72sEkjfJ&Cf)4oO!W?;lUv!tu1JR=*Jy$y$lBWLBb# z5g%U1?)qg_LwaX*1Uwlq{4s|W*hsm$z@?)Ghw)M5^aYG3{}o zA5E`{_n(s(uY;QEY{}IDNyc+=GUFvfn;2j2tEm46*^>q2BJ;kc)y&jD=YOK?srvj^ z2mKkM+(cewJ0@|%;w3@QKRI!Hd52`9Vww<-CmZ%VLR&_F5lS}FqmdjnN{v@z3Tl+< zlsJ7b0mqY#`&Gr~RK=5x>9!8ZCdETWRV=X+%PR|#^(Q5!cStrZ9&%L0kfVKMZXWSX zQ}NlwOQcD^(G^RYH0hT#DkgDSzIHr`M$)nd}4{-6Q-%~Qq6GQOlk^3dXrEqZrImi%|7Oza7m_h5*md11U`e4t(u=-R<^<_t^> zx&@AHhuHLm}O0pm+@6Vxz(b|R@-C~rTN;D}z5BQ7Eg zhGW8U2l<^RlsI1RR_a8^zv(OKuXQn5dT06~jt8!Fx-SyF>83vWl9F|}n8f1)5(BkT z9mT$xv{Yk!PbXzmMaOt=Zs_WL;3Fw?-%uo@LXHNLv~TU=2l2noysAWcw7BwjNFJ7{ zE!F$!;i}RF&hML?8RAl|A04$92P9kcs~C~XJvH9Dvg49YCY$s2@ZY44%pLKY)Uw~C zX7bi7@Aog8 z(8_$%bvh?F(>ikI`34OrUQ&m9jn4km%>O@|(gXK5!TxV%vG%uK$9gA9a`S4;m%Pff zp98r7_iUf(l|dZ!YM-ZLru~v`&Au)eOcylsr#-6^&hVxklifMXkNAW5Arxn_n+HiHOER2vOUQX37Nq&6BjIptS5p~)$~G;~VJFAbfV z@=HUfrTo&+l$2i@Iz8o=hR#U&rJ*zF_opjVl-XhbNH%J`hQc?BFUTV6s z@yhxuYp;w-#YtVv8kfB!rThMB+;b9gPhV1CW*^1V!t4q?o>;!5jUF%05+5PumAOlb zH0t@RnPP0|>(SBtc9(7FI*r8Isy6X&Vz^f>hvJM|N8h^e<)CXeSEEtuk{zhD&A*F zz6J{*DbmmaWjDg65jKsmX@pIq4X{I`aXl!2-Y^QL0P#(TZ!#6|tqJ}##h<3wG{vSV zHce*%{$yvtOxOauM4DwoF_gn*2TBFupKuozYW_RX7Y+q;zLXNrxkfyt>OPGEQO7Hm$eF}12+0S^@BJ* zh~tAej$;?!0=xLW9p&b&=es4nVHA)zekT z1#+Mh3A?|U^%RX zt-=)-Xy4)WM9Mm`NU+cfromj;&PABA%5z{U%w{!!O@D0qcY_L8&B}%Nf!GYBjDe#7 zUkA>Dg{%xX9<&a&i3}$1VDb(o@8F?;-C*nnV>fsitbr}Ci&sfx1N9G~{votwNC}L9 z$v|6%ED#w={liEbM%pmahR@?wGgZ81rjviY%u(1Jl>~e|Y9l{OCw=6@u#(r!Z0Bd; zls$_4qo{Xu4$S5?GmQZMj@jy8H#3Iv#!LtDjv?9&~Uqv-6hqWS= zQ-F3=(yq#7K>3xltCDsdn+=O$6>Jb0OI>40A4~dJ(#MfLt{AB6xGccG<4RxzOoo}T z0Ftm;gk>TpRRC!xFBX|x0waL>C(nchK%P@5=ae|i=VuV5 zK%P^l!fYV@G}2FN1Eifs+G(VnM%roBu$-S-41y|{4)fq)SPAQ4JFm-G2itf>h=o?r z4Ti!*n88m$$a^Mv&m`~EY#?sxPF|t2L*#72XU`QmCkt|*0;vC-4I}CIip(7< zavlC%Hy!4|HhvawVJ_?vxq#z8eC0pI44J}(=JVGHaKxe>b?7r{{toQ#B<{{-A`2UV z>KdTlh4^<@HY9<(cWo58n|yb#fOR7Gl)?y@EK-eKbpdpPa(Eb)1No}g^V5~-FdG)Y zR@liakg{L~%!P%pm{%cD&i#~gKjqv{IronOd|X8OqGf<@i?+ZnUXO(B1I2*d1LI&C zuSv2%{DalJCTR+B<06|G<~uRE5S19LIY+q{x^LWLPg$=ykr~=S8&_7l48lzSGtZphleZ%IhiGYuPX#>Q+4ezWK zSxfv{^lxz>{axx_w_4;q{QLVdUNe*wS&z@_*YIi~eEI;p5Af^50-)RtodDa9@bjaU zyiSO^KgPFD2EjHy$D7RSgUJ6W;Z1XSWf1u{Z{&4Bi$p$~#p{8(!6=vpl>7NISO+_J zT~Ic3gHbRIsPBu#uo||cUm?^AEdgw{P6g`Nx{6l{E#p-}GkJZ`I@rPEK{j-Q5ikX2 z!^42>HvHMPi`NR(gJKv8*nBk?7Q-6YCh~PXD2Aah1-6TPQx0oHw&UA&j=!D3>xLS^ zT#@f4!cLJLIe?ElDuBAaujUm)RWOrR3t{u)EPif?Z#zf9hW`fq{HY$0@26EFKNJ3$ zd_U7CzZ3)Y|FVTw4-JLId|pc3d#Gn`9A>cp!6T5Yfh}T!3Naz!aGMyOZ;V|l#&rYY zqhctBi7*?gVHIo;Q;RZcVOMLYnA+pS)F}n*>R?v~yE@p_!LH6OF?FZ&I-vsS4WnQR z%oWpsG8#}vgL0V6>x3w)(KddzNZuy+k&O?{Tk#s8Hezxpv*k=4?c%Ur%z@Y(xK&Jy zbbc3W_??|O2>XMk!VWRL>Pu`9Q!q^o-#asfvtg&0 z)@#HRJq)YGur@bsR*Gp$dRy$;u7Gu7+RflqJ#pv+)YpCyY!FjC3P>;BA*Mq%(4G$X z)`5H-D7Rxh7yS-8YIkl=wqwM+x~^f148gDA~o&Kk=={P*@|Trv;9C;#03~JT_BD z-+E$7@%wPfD8sI7l^E8&hIOxD-D}DzznpOY#caxr0Kx+)e^4W!oWa;05eNKZU22Bn z@33)VhEx7<(vB2Z&g*lg^4gp>K=~s};bAdHmjJd$&xEyNMoohSVn*jc5{NqnACJLy zOe4T<%yuyq*+3bUaiEOK3fRD_a%S-Q8ji} zD%i^FX4dkm8SGdW8P-7Nf(kJg#$l0|i>UJ=>}PO110OH$B<2zU@?JvSmy$MfoS4hn zz#1`^&xDO)u2?8$RslRL=E`C*SCs5W{-K zT+8v?iGXj{QRelu>H2ChH)H`m&YLUd#uC^n=B6oPZZ3!IV&-FeOCzA(TULv?b+(w> zTER9kw`T)&+%X7tin((>+buaTL(E<1UD)0o2gVp#q@ZM~cNficgP~zydMc*UjUr#XPZA%#$1^DU*A- zNlpdIOzsr3WQ3Td0@KAj)r~D7j-SqfSz?~y_*vStT&V!sv3$Ll=dyw0=NrLdF)vIO zvw}P?(l;+r$4k4!yu4P-O4{=ZKD}B`%xjdpity`gV5OKhc8dAaY%!~+z$!6sPJ_ zFcikYaxvfG(|7o|gY@rnV7{0iN?|JC%a8c*Bk4P5zy>itm5ceAxS!YYsuA-3LK(ZV zU?!{;vzs!w$C=&p0GmCOySErrw@V-uuvG#xTY_LH%!iE03M(XNK;DK)2^w{ipm8G!nxIWKNYIqBo9>bzyB?GS{dsr9*t0m}3d@t%?e<$dJzkMjX zFL@8chtet_?QqIDobpz;*;_BX&w~)Ks9Hk=3wOf}=aZ zatTJ2N-!EfM)wA6M&sA$^%5LY4@f(Pa=CW}$57swY$ylf#$Y!Fy9(^Mj|COPRbW?v zU1cM{u5vn1$FbNPI~3-^N?s|I0~Nexh%!#Zj{8kXRiSApECu>H?15NN^maqpF0b%Kd%I^VLu@_ zf0qQ)$vgdFAbbJkUoaQ8NN`~rpv((5N^nszOoi1F%%}$wVU+~jV}pxl12&fszJxk1 zSuVk)7AWgd%DNQ0ODTIM$1@3EMtzqNf7x~kE}sYsV2cD-w1Fv*1deBw!aShtE6ICh zHSCn&s&TMPf~&J&GOU$gHhE{yg!K|!(+#k_hJ174FcqkG4tcLFhuN@3g1HuY1IO19 zzHUAce|;xd1eA3{E1-@W7Q=Q4<`uv!SSP`agm0V+TO_!Na&Dr|o2cXFp@9ATY?uNo zCAfv~Ez^MTtvNs&Ze0f0-&O&OV3!07N?`$Pkl^-mSO_~LxPx-;pq+P?zK>mAj0AH$!V_gtb)|P|Sb|5|z#<7Aoi4#+952RhF?k=SJx^fs z1Z6)#9Zz!nB;`N(Fzk|mwM39iO0Xnbf~B2cy9BHuf~V$5u&fcFPmhz}nNE zVlGh5ie<1GHo$fXUbH~jFBU^7P~VG_VFt_t+Wz8JzScSjDC6Zuuu_7R^I?qyuTbAB zpH+)r z6@?Nuc2SG=T^r{$E;RgiWsQ$Di}qY^iubI`=09`%V0Y`&gI>Gm@b0WYKbQ#GQAaIl zB*mp|>l-UnK#PnGCR0(#Fh`Z9hZ!#V!CEb;)wprvsP+NvyEg6GG*OhO)wF9->()h4 zRIB5QSFD)S@$VfEfAWw9O@g3F1Fh(#mrSD%dXH+@a8xe}*)fYa)XOsF|Tq{}- zoVefkYMzvTwcjO0(R~^dM4C^_+1n;)$2YHwqLk&n@@D-u-@f>J{~&(RAH?7PoA_V- z)&FnySHFIZzoSO{nc=Q|^)AfB@AEfhxi9^X{Jk@ik2V+AC@=MY;_mCmU+cN6hJCy6 zseR?&l8M*)1N}_c_q+c8rTc5gZ2<$lul)D+*+2Xn`&;(KKcw+GkM?#61~QLYNL+f9 zc0bTWl5LnnLz%nQM3(bG!XTWGno_k~W=b89Lyi{B^IA7*8R}mPqG$4{J;Yb=rgiMzeL;L&$pmuanok4%DT60b?AXF?tkuW+2{KMziHF2 zefD6wO)Y6yZ`#z5k7f@mQ9|3IlrDOoZXf9)dIg7$pMnDy`5#~(4qL}Y~Z*ogul9FPKa zS9+C}aH--7;%4Go=d$%3(z@**miOUv8h-~Lf2;IR z*kWczeH~*)dE3ad_8n7UucYVoRe8T2}X{yZ=_$w*~z%?v3BG0aMi!tTNR^m=1d zG8+4hW2IrR^L4%@t-S5mro&c@r&Vgn&#$e{_Y^oS=88s#PhA|p`|9*@RlAI0O}{-{ zSQhXWkL<}H*CJ!)(x7KB@DD*pPJT&b!!^6tlCMOz*Oa>2*Q4Q|5v>xm{S3~OpzWia zhGYwZS7VQ6Np{H-#x0Y7IWZ`MKLG~U#HeE^cQSX;&ADV&A?Q?hLy_V9L-3)+Um4x|BJG} zia*b4;;%Bufa&i|{9&5bgg=|FNiAQK$K-4HT4lC>1Se*_{vWU(aQuc>ag9 zcE~zQ;=LZjC#fBKBK3RCDc^fs`yOcFOKE>HrQMR!{zO_k$qn)TN7CBqOo;YJwRRd8 zm%*Z)k82$|eL$W}p$Exe(f=>C=g^udB!fl!Ur;;vRup^-T9;HNb%*_lwKQPn##qLZ znoXLlLhmvXzw{sRm(*o-Ws2gIb#7CoaA2^yPF?ea@GbS1(|GzJ2Rx7i&C*zS#K`nI zl2N$9SJtgaM%*A~1QXRsdZUiZEKMvJ3{up@RI$)d@2PcGR+K?H*f!)!&8*ohL<83h zd|-i{T_hqBGD1}xxCYVD<@e^w%(vxO-)LWFBoK=X9tKnL;D|mKR3p|DJH@v41Oq*>lZyvVo?7e;{3KvGJ^$5PdLogY z=*bfc@#p7H?;H%@bW?Z`qnO2h$-}-dOZ8!QVqY*#dBOc;xblqHlUXv;HZYh=lH0&K z%Pz)0$%65}moLr!cqaaL=!a*HW6oKabEVW5h8=;sCuI_ekn)DK)g&RWPMD@!Qk)R; zm8{bAc4FQKrVFivwPlF<`+mKite>0un}w5DBR(#E_Pa68q5v^)#Zb3Z1vg? zJn{&;?~zAlWcSR>>ZKVxTb3NyXC3^RrP6SC2z&CH<0kkD1R`GMNm~ zEM~y{cVju(l2qg<$ls8cU7Ayxpl~)Mmp|p5j%v5ZTgdfF(7eFl*t?gN?cH0kaJ>>! z20OclVmJPF7mMuL75`tmt{j?b3v3R_#??O@xE`E~#`XkkPz7eOO>#-g;e%LNCf%8* zFEnU}x?^@h0|3=w)qcD5yIWfn`nWz1e+GU2G8K4)18 zM(wh@Og0ml5qY^e*;y8|&ZyHY`+R6hHow>C#SeR%nVdR&&GG-h&+5yMH5No8Sy04#B zD#>o$O%hYvy~H`!N+V~#pY66)~VRR4;}gR7mh!@2zK^0 z))jv$ekU7^e-`hZ0#C*Bu_k-?dq1V}&K0~Dx`m{dD#K;?1ak#Xna9j=ku1q8+^T7{ z>dZypWTdvN#MnlFPAfBb<|+Cvp9^#;k^}4~e2(ff@h;JR1A9xfV+?p#qWx2#F42Vg z3)}?#nNhib`+#kd87T;#XSQd3jYOXU^r^=uk(VKyFr^YHZH_%FZ&8SPZrj_2E?mT+TUwgOuUj|Kt= zO=AUOoIpAqlGFuJz~u|E1VV^=Z3HyHjPCL)E(L0mb?Cy({`bv+pPU@O7W?^9{AJby z(X!ol>#d#fd)d(~pFJ4=G{%khPT;)?-fNX=!p>|3`wW*>^Vea5+Uu;6)mmuPb2G_n zYmt4JkxPN`X`NWP1k->2t=}V+@6zgHC8N7***&Xn`B2Hou9`Sj2=wLe;On#>?@Y?; z%yx~ROkkbxG^~^8f0v5ki2ihLM7wrwCXgRNb10Eu-{cwe*gR|-?I6CHf}?n;E=n3u zh-*M4QgNZR$VtQ#hBluGgp)cmGEM(8?Ctr#nA1KnKi~fF#o6u-d5@SCX8M!T(cLwy zd)41N)eaJJokRy+DF-$(PEZm8(PJEmvzwR8q{4#S(!5e&AUQ0@kggo53Lu%p0t#VG zi>FU7(oZ1N8w~b_ET<1M@ABzWhvVNoe0nO}%Z4>51av0-M91m8m`3N!c8#BBwrljy zY}fcXwF}%+JYT~-$6@m%-%GX_=|yCV;cs*LEW@H< z@}1D`RrAFF96`c{;_TQ_$fSz0LYKpplZ{2SGkY4a<$yj971zjN1=8*_7k6h@;m(e- z%msEEOGdW$m3X&YZJkT_IurOs=Sib;os98gUZP#YooT+Q{XZZNCDx@xAv%cuf2rca zqCe4Dw0|t6y)b2eeK7G}+IJ*x1wA#qcpSDWorx-V1VB&VGGrYpzylR2M%au1(I9OE zW&7D!wG(2{<7}yJsVukVSxizDtI{k8z{EJ2NyHGR#h5T&m2}cx7Z|LmkSzvre46X3 zDvQgC`<_%!(LZ$6JAx%lC*VXfrFv&eO9ZUU%2H1i=&MLoSH3F;W6lwoI_3EQwU zq-tl8BbxyqEMT%;0dQCZ;IJH9Lsss>R*|B_Mf*lc8RYZqmjMwv!ExE0DV^~A^gh$! zf(jVc<*o`>X))etcjvoJV7v~$iUc~K67tRDs`eOdRvWPj8%WXZ+|<|=e?E4iZj&60e~X=O4##CoxHNuWE#DJ- zu6&JeRQJ|GVz20w zk6nZZ;GSt<>x2`-O8}ra%On#fV6@2mP@z%@ku#ummCRkc8HW}$)$=Le`7rL%neE$Q%a3t`6eChoiv!Q)QKf}zSuC6}3a}=`QhW%%g zoKhg{%Li`(kI7)wcys?KO*SOM3PXllNdZtzvXyIHMod`mF;r(T7Dom{dHRrI(jC0v zhJy!h=)EuaC;np3MvRaAI5k*< zT-fp6a2sq`;(@~VO8B(85`b1z501lb1u8A&S{?A;aJmSp7`cX>Ak6d+1{VV(eGeaf z?}?Q_WWc{7U-Hd`w;nExzr@<(|H$qc3IvBBd-?nMdA=>}JZH9RvVR)77sd--F8Xub zi}X{-kOI)Tf%|)OdP4eEu%AHH^O%Mb#lgbqB3&op@2P+?(&_fV zsk|22b2!A-V{J!PVq5!rhg%ws4Da^M_lKih3z5#w{s#B4k@3J1d_mmewT@At~4Abwyu8J(!Z~B{-2D;rz7)SQ=59a2X}uj99aDwwg~nBpkUdBaTz6NxPovz zHU|+97}aUK3!hMkgfNH%vh~(0?3XXgD*&~yt|`yRBTlGiK#Jf&lsIOm%wc;302HgZ zU5XdkOkQN}iPG>gm-Vgt?xSblcOP@@Vp%gY@!#%>{~O=ie4Ko5zYp)!{9zbB^e!5I zF=<`EqYZ4E5d#<@u?vL-q=gGeiKWa89~**HD;3`Ht&jzN zKHHqqVBL^^de~9w_ZEw(*9d1KcQn%Cw)jfU$aGcyY7Cq-DBYGOxV2NlT4ph*t6f`kb*YGb^6k~-)&#AY1Z$1 z?V2%=UcR<(ooZ`~d1y96=DaoANwkyAAo>g22{;1e!>qCyHaKFK95BF1$}!!YDNCyw zObnqDd17%(SV_VHPA)F?7@154BNY6^Di3e4?QE@2UuxTik?r+9L);fT!S|XN1KE2Y z&RFw08e5`Wvkx=-r_OPf+eP9z8m=h%)0&HRt^=#3)m{eWmD70DWI7luAbwwP8q%o8voV6fn53z&= zbTZZx2=vCrg$a~2edwrA1O@$lqhGat5_D7);@4u_S`3YtPjb)m`GeQBfL{VXg8~VD zX<$hRDT(4iw=5DUp5nC?7CL}c0W|#gFCM%h+p1G+S!WKu0GO(vb<*LOYGprPbrTP@ z;klde+zRrml;jyWCI(Yn1;aGQN`+KmEh-XVSjy9ruW>0NdQDjxpX!1-4H3R67Ew&V z?-l>VpGezhne7^{ z5bZ=a(O=^gnf>|x!@OaM$zIIcA-TgYTMq2wBuP_HIRsVZ7v*yyWK+CQn~17@f@0NZ zJ!9>+UOsWeY}4!W%}0;E{H^2HoAdE+%k}IOTl!YM+hTF&e=GiE{5_ZRJ=xhF>+5)T z72X}dyK^O1xC*aUlCMs#Ce+iSd;xE!5L~go^{>l!XXnXEUd~+yFR?uK_4wtI2D7=L zgjL0T@m~||`13jK2!Kptftl?Z?L<4#PW0DkR|U)o<4m+`XFBsa+L;#Z#J9wAv@PP6)EWyIkK zSFwBJXPx-hU?mQYoBd}zm!A_p7C!bbrOhd`U0Z9>PBa(&wYARdFV2aut;lDg$7;a7 z1@8p9vQ3>NG#sul!pfHnW&;p=awX&&;8}AjX*lV^6R)K#%^N!<4?zL z$E4h}9%Kgzf5lh$*oD7>aNcbk(<+kOq+R6$lLz~TRh!USIp-Fp&^(E}kTg~TG{jk1 z>@IOT?AaEnh!tsUoT3}l062oPL`-Cc>3Q#_U0cTq1)keoRdV9nDu#7&`#@#hu^9~w zo3BG8R{Sa zPLm48z?8pgSJ-|*wZ9tBF&!=~E2a6C)|S;4+VeN$=46?TdI`ebq9Py&ckuc;p`ROF zJhHH}&mG*Nf?YAg*B%bp?qJ91Grhcz2 z<$Dh%zV|!1T}h7Xp_Fz>`B>sT52v+fCE8CX+VOt5Ez!>Dm7s5OerM&~DRl2n^j}Fl zhxY56iS}Elo$uog*@u1H0PE~i0v)t?n8|Esl8JD}Ec%6Qvm^9x1VAI9hpj2Q)@)*C zz%2;Y!R-NRtWG2oG^DuC#F1G48|%P+;mW2)CbhRV`kH+1+Nz53(!`br>Y;&tYqz{N zBLw=Lj(}WUK@rh`Ay=L4s;8k$4UI;0R?5Lhtiy1Et~aOBTggqdpXc;eq)PCOF3`JK z>XIVTUxh7pr~-}52x5;sYXx;xTAh?kK;ca%EsP=J!Gut#EC@y6Zi|fOWg|F6S}^Bo zoWz%)FurCm8CTxb_ol<1fS*aB9)Bbd>Fj82LBv>1byay8g*xZuW?R5s5H_|UjlFOm znux4|VniXvKw1;g#en;e&|m`_;{Ax_`Uo&6DEv%h*Pfwm)s^Knd$xtzh79^hOJwJ( zu8IoR%+7GrfYG$+`rGKYKdY?WT2bS+>>t^>cWYgvr*dFddtF`o^zehro<>jA!0wK^ zx(>E|#NE{7j$dqYFMAssynOF-+H&3kJ03jcI(dQbaf)Fk-J(FMmaciuf*3lz#;nV+ zX<;F&KwAWE1@2-%L=ZvG*?qQc8_P6T|^g*v`Hk=7pGS-r2WnVd0EF6!QD}`Ye6^YvfB$u5|Ssn|pHZ*hDb= zp>S}Z_o3ba%!f&PFrPf^p|^_>kG!iGalnLFK!?lC7fY<79|s6A;^)pCh+d~GC=nlF zvRz^PlVZmnUO2Hd-Qkb)Jlq@Z>X=?4UeCwF>3&(I`(eHwne8{q^Xm91M!XHt+5htx zam??35+k1WwResYzZ!j#;NL&0G2#>JkSi+7nQ`Ko}?C*&V5}gPp-PJ@%K&eEzLJK=A}rzn9m$Pr=$hm`W$AI zRI6&t9eL&ek@c&vInnU+z8H=eq?n zUiS6LZ5J=bYa-oG1S65)6WtL^8#0*e|0&G73{v>^=ZY;dNn9aoYhgjd8iI^KU^$Y= zn0XlhZeWdst-ngYb>(VBIc#B9c|%1*hBK{VgB+5F}DahbK4!<6Y2;Lfn5CI>eScgP(Z)G_)BLXgYtb>C& zG~c{f28dW^k~u2~I^}~$Eb|RF#0Fyi_+JeK+xiSK%h~_^yKqlW*mCyZZ3oZ#=K5o8 zy+busn|86Kl9K)*@>}uoabEp1j8~PB>$Kmb#vo+&zws*V=Th3waeY`k|A9n%ooq_H zm-K!S%aZ!N#+2_pnD`#WvXCAvp7&5nyNT=3qW$5tcH)(y{q$AZ&m`J0F0NmT{u)l3 zIq$Q;gNYZ5cG9m!|CPjZXx&M_7VWoCJNCGU)o6p2*dlEYZ-d8zd@*`h(c~~NN{Zg7 zU{{#o)<=|w$s|+k1{dCZpKzqIxv|buQ(au-uoJ=yK3vOc$>gJR+UYlthgIwozD>Lx zB*9Y<%fxm$6&M^en8~RcI}?BQ`o+AMp~G#jDnkTE{FndHi~oRPdb@O|=O3OseR^)8 z{kBbwVOze4-;f(iOZx{0i3VzJ0`f__QfNZDu9*9Ib?zM3#91hi%B8{ZRb%@j>9PH! zP2n(<7nV~_8!TKM$(_{Lepj_--vZ61qnwQF-*z^Z8?&66jGaCm>+OEC8>SdXk`>eB*M}c(?vj~hw0FgVeZ?1o+8XZwoEQ|8ufzez@nD)vui{~NE;elD&3IQEx# z{%vXPbk;@t8EOYraq2tO5L&tBC0RIu2=+c17+!PiNzqpWcz@pjD0Eb+VtkqXc=szB)J<|y8BZN`ZR zp+>C7?!Wsa+wi#=c5)`(NwK`*9l#0HcU&i*Skc%7{r#j0=2MoySUQf8x7p`z_Rtv$q?*AiM{;3vTI_k!SN@ zSvP>)nvA9x#T9Yp8m1kA+k$nv9v;PFn9DLFTnY}`(lFx0(GQ{F%j&nT))m1?+1U&s zKG|+cwn_#k!FJAKS)@-f;?vwxhT|=m+y8} zRMyl~R=8GgP!~5n{5?q{@L`n}=Q%BO(sp307ETKXd}AKzbi6y!?`!>ZNm zdq%Sn?}f--oeso+Y8?VCMxJd4^=iyV1k+;Ar&V)JGzstG1@5s3-@7 ztMSx$+_gonqUy?u(qfx6+mYiCq{{*6Y$>F3ru-XZ1P=q!3~uJZUyoILJk>6bhw1T$ zi)eWF$9p2N>ks^OEJ-?zg#Z2WOr%@Zul_N5>PvDNd7pIB5@@tnvBC4Jnxv8gD4oH|aNO7!EG2{`&x^>B>cX|!+_`9wFn37`QbIj| zFT`_DAUVZI(7vNQD~giv+S&P$nHN}PZPi~)ZDHS^S^cWhLwuG$mwYm;lE42k8R-pp zpYY+n0a*mUmK8brNaYv#4N&>EqDx>D`2bo74up}tkUIcvNt*=$YOrD8#ZX$l$v$#N z^K$7^cmM11&Dl9RbJjVzLbqdl;NaUooixDH^}{>9kk;4 z8tPc@l8^9qGiY-oZQu}Z^ya6B9;HGRFWPS}2 z)F~_o#x0lm4i%)MoDYtNCI1l|S9I;}+KwzJ%$?zx%94_b9Tg=dm9l%p-P%;^Zrt7< z-_M?^tgWev&uM@2@e5sqbl`2DgO&$XL=4{s`bbfR9S7N?CZLpt;gQ4d_=wA=q@FSz z&cP=IQi01>lTcOGYAOq*--S|l(Q%LlROgb0t08#4EO~3&dQ~^&slj$i=asv z&Z80~H!o;_2wLJudW1dd^&veLwhDB?2e6}or&kKvE6z5dba!TWp2Bx-%Hx=zZbT< z+McxC>HYA5sqIPIo!Uv46z@;k?qs94B-)cUdip$)HafMFt|*?vZFF`0s^t|(_gd-1 z=ki(74d6s{vvMbwLx7dl!@Q2ugSHms;oL=Pn5YvwmaLhd}G)jDO-ciChdW0zSh0!-oWYO?R7Hd3|ffx zRNAHXKP&7O^*Ka4(SJoAOYE^~@@J{-=Tq7XQ})>P2|NUA!1Z#m2AOzBB|Koj$JWnX z5qLFU1^^(=DkjyrtD2q76=fT8f%2tfzf-tYD*lm~x{^d`*~!3Qh1+NnnJcXgYQ{=76r2%A{>*$7np84pr3z|7rKieMR)R;RCZljRA(BzBIVc&$U*O=`D0WIm z@pXEX!s_kirx!^VU(~H}?>N@0?Dw?|^H+DyquU1x^=-3E1gR}pPcgw@E6E%UK z=4Rv0vw`mTuOmGV**3&~?7+U@^Wf`-c+xezgw|QCo4|4u$pu`K{KR#@eEOvaDF4L7 zYG5Ie-;%OZ8VJ{fY=yJj=Dk-uTSo3hW>R27w2@X;xxQ&JUk3KooD@kY=wusxKW`ZQQgkSSgUK|`7 z8?5UnK?F*%w{CFkRabejOE+yA4b~w7S0|Trl$X0)<&`ei^S9Sjmb)wyTUIwul+;+Q zH6;_9A3IRnP+8KyRs6oAp?0;Vp`m8Awjn-7{{VTxd!``s^q?R4AP+rfP4_`kWecGS z5YOQdU_a03fF@2pNUjv5F`V>1NNy^$L-KJSB&i9|ZFq81LboAC10r}_z!1~GpQ#0A z+Cjd@U7;OjSw5wDATP?74wLusiTPuFUAKIgp;A_g3lj4gzcK;UOZc9SJcn={!A!|g zr15f}Y6>4sA1}@6YSR&k8_L+)In^fSq=7W*q}r|iv^kB(6lUHT+Px5?Nu8!Cb%jD7 zSMEr7RQvq#pZ_jpN`w~(okXk;^qHh^DCc8^jt z{Kq6{^zf~;!Iqs#(>qHjXNXskNzp&C=>RE}hAR>uW~iZ}gU~{e-BZ0*3$?p=;E~;W z1RH8Jyk~#xM6gG8V-qdUwY8oa2*v-L%Mm^<&UXltBmML2y6rcrHi;9uCFTKsB>LaQ z{+7>A)5YrECU1tTh$3$WdKuD5OUcD#rX2q|=FvjMDBpv}->Z2u_(gccdDsHdW@wkO z!u^L9e63CGzJd4mgcoO;#t$ira$9{nZ#8O&eJml+Us)ZSgbOxo9k zkGxw7)_3H0cU&!B<{jy$l~nsb8hkH6L}G7y0M^R zQm5UZ>W-qF;{u@XB+f?}&$~ipvuuPJVt*lh1HQUtoMe7{d8{Fe8WEZ)3a&{FQbUci z#@SpWJONtyBnmKGnwPCVyb#p8ig6|4`TJFEG}p$TkD7&622=1Jh~`k<&nwEdb2vbcwiO z)iZ&De^1SC|ID+lM!9ojcCx8v^_$pscvcghl_mcj_yS_&F<<3QxTJspkzXB54DpHc zmXw5gRw!kbZ&&{)A3;<8Y!LwBddP@#}XE4c2EA^bQ-A<7ECcy5v+P-_mpyP%1N zUMtm5Eg-AaUf|5a!1amj9*Rj#OhKSY+PPpxelW_~0~#S8&rUf6BRM016uPSEKzv@{ zj~KI<7q`9N&)1oJZ!$11UVnlBUT#t+3MMe=9rJ)1qo-pbUl)=vkq5-~#-E`qFZ!F; zisH}be0(3?m-HiNwrjR%X1ivKX0~hRR-8g%2lOM& zzjC#{^zL`tmu$-Q`+j@P7|6z1+qaI^Au$il{>q%UX1j`ZvcJT}R1YiDc6>G}DSf6w;CpQa*dY#+?f7JvNTqbG$giN?H-?}fwa zUYO%DeFDB7j2Uwg?RUtCuE$x-?0;4sNol9Ki~cLJke#AG*(9Rz;$feRlRuDs~uKCTX4bA7lZEi6SVT&=T13cV=vz?I_ zL>@v-BCMYm^yU|q&sa9-bh(z(%U_h;@efpm^7BJgY;Z+^z?X_0#0er4eTG#8D&%%4eZ!=ID~&Pv#uW_xTm-~Kfk+}U59@KZMGo(wR(x2 zEFG}f22eXe(1(wU?=R?zDZD1LUE>|1op^`nuknt|{`|~g-mr9$XXOSil$jUQGx{gx z1+{$Txl>EV9G#M5TsrmKi>Hqpb9MS$({WbHvYyH=F_}uTpNjt`{^L((l>>Ut`Xt`n z0lS0NGDoToR~oT?K++-Mahz!}kynoyBb#5O1v&gFX+i8$JHEMmlWBvZ%dvYI1}x6$nkZbukkVQ z96HP5Ia-_yZ|7%IwDYr>7$==^(XQ=v($g5|vtC{h7isU57c|LQQA*(hr~=qO&yG&d z#~sUML%=_dbbDOFK`UmK%cA6 z`73HyF0eXgQ+PYDeOwuosKcd=+bW@k8`aH&&Zpo48>q#qgK+I6P`=8J|M6;B(995I zr}=n*JM_PF_uZJzJ@>pa^TyQl)W6TfS5e6${^|^-0y`kG055-eViM)!P>HdvzP@#S!4jKbKB28rdB}CO zRc&05tv=uG1wOQwUlxO#m^_eBTSMCLViO@+KTa#IyFP&7lJ06>qq|l?wh=v>r9I(Y zW@a|JQKVYaT}`r4Mos{(zeA;M(qXd@Az)d|&|%F{sNelu{ce_;YOAX?Etb^px6xvg z)5_3hi-VCA@=xe>h=xXHyRhqqtg}Oz%b`U>^Eq#z`CyM@&I!F%k=m{dAa}J5Q5_vp znB|5os1J!CVY8laNXkxWK-hw$Lqqmz z8`$^+_^1(KA~YiPyM%Rhtobe?ZdKe1#<%KOPk(E;bbJHHOquuQ?+otRZ`r~0O|4rewl<8kw{5LwuX&rByxyi}Z~VIE+S+FNp}ox4kMrF} z_`32Ojdj{JyCJi`#*Z`GHTfml5i7>T^KVmiDbY^+TeNHZdk^*#<36V+_;}99Kg8dZ zV==(~6LQBcO^Ha5ij=~UYRnL+*jTLU#$hNw@DpH)PgUSQS@VDmr%Z6A8Jujh~kdx}#b7{q;LiITe=+Q?7 zwfD|0|9E=)f6l~zvoO8zw;Iitr*Fpo)Z!vs(jvu0P=NM#Wn1tvfq9k0Bi=rfI5>XNkHA*5QK9Yc6fpP^Waq&%SZH+g}(C+qy z_mvhGS4@-_7ndPQ!qd`FQ`3-)lK9%!M63i+3ibvrQo~s*qIgXQ3IJuKR;O7X?n#Q*t8=rv1@jy{uUS6n(8RLH}>fNxRw}>5w#W73pG@UCx z7JjZihK3}rk=d^C8_`aDMfBJ7<;?!V){v!nK3BSz$V?S%Oenu2ZY5H~peQn&!;M%x zNoUrXjRvyhp=9wpN32M&#{cJIe|Yn?bN}`$%Bp77Oc!6J(ls>xdFX)M{LFEr6FMMj zBT&1bG2)=0v4ZBL?`5H1A=$!Ix&cOq%xjn_qKpomF4G)PFcsD+lnSjP3|f@B=W&b~ zkY;6}W&R`$R_buE{?pTj$_)TQ({ z_Ak;)NgNj=J`8{)nLiYki7azO5UNp`F3tkPN5D4L?KK_F!wlgBvpM0QgU<-{cEn&Q z&d2XZ=#hZ}w>RE*=MUuUvEcln{>|T*VW+0=?%T{*Y{36((!Kdu5fA7Q9tzOsQ=E>; zcJ84_wuA08H{xk!m?!U#ISYG-HTV`*KNRT0xP{$CF?gQ^ z6_Wcmvt8T2qMi1y=&$YHq`fEF*V=oceXYGG+Sl59qJ6EsC)zc8k1!7jygOEHlNPdqk>cgYe0e@6S@C*+ac?$t{?WQrY+ ze*_^@A+{IvXQE6^xBcKH2mSsV)Q#ffgKt1P~^O5s}k(J?fw( zs=Kmp1_x{EQw~AQF0Lj4Xj$g3SfWgaDhs`JpPBiA*1oG2&XK z9+-Pt!L~mk>*pIYHI((^Ldpg9Wm2{}B={B~rc{ZF4FI`Dv4ZrTbm@wkLsmpvlf}(1 zl1Z1YTwc*F52|>5xZKI*>zPS6S^27*2Dj3a+Pf>tFFc$ zE-XLJhQN~v6T~WGTv!^!Fo;^EG%oF~IjCGu~xIxQkq)Mf9 zQ&hru=a+jy<95xkC*v=j-L!<-v764G?HL;CIV)e9`6h~aMi%_jn|e?t6=R`#q>u!M@$~SHVFacw6Bmo zsp$2kbgd#f+A&DFUc#E6WyA$GsBMP(4e&qhmI;^QQgpXnzp&K2qvhbjxjUk#nzpmn z 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

{Qq;dYoLXG*oL7!{wrG%~aKb=FoR7{s=k| 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

AzPi!HK1CYdMasJ%868x!dF;`ny|>LRT>eY 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 + Double Chin + - + -

-
- -
-
Double Chin
-
your voice, on script
-
+ + + +
+
+ +

Double Chin

+
+ +
+ +
-
-
-
-

Script

+
-
- -
- - -
-
-
+
+

Script

+ + - - -
- - -
- 0 chars - +
+ + + -
-

- Prosody markup: - [pause:0.8] or [break] stitch silence · - *word* or [emph]…[/emph] emphasize. - Blank lines become paragraph pauses. Unknown tags are ignored, never spoken. -

+
+
-
- Delivery controls -
- - -
emotion intensity — 0 flat, 1 theatrical
-
-
- - -
higher sticks closer to the reference delivery
-
-
- - -
variation between takes
-
-
- - -
pitch-preserving time-stretch — 1× unchanged, >1 faster
+
+
+ + + Delivery + + +
+
+ + +

How much emotion goes into the read. Low is flat, high is theatrical.

+
+
+ + +

Higher sticks closer to the delivery in your reference recording.

+
+
+ + +

How much two takes of the same line differ from each other.

+
+
+ + +

Pitch-preserving stretch. 1× leaves the pacing untouched.

+
+
+ + +

Set a number to get the same take back every time.

+
+
+ +
-
- - -
set a number to make the take reproducible
+
+ +
+ + + Prosody marks + +
+
+
[pause:0.8]
Stitch a silence of that many seconds.
+
[break]
A standard beat, same as a short pause.
+
*word*
Lean on a word.
+
[emph]…[/emph]
Lean on a whole phrase.
+
+

A blank line becomes a paragraph pause. Anything unrecognized is + ignored rather than spoken.

+
- -
-
+
+ +

+
-
-

Output

+
+

Output

-
-

Pick a voice, paste a script, hit Generate.

-

First generation loads the model (~10 s on Apple GPU); synthesis runs - at roughly one fifth of realtime, chunk by chunk — you'll see each one land below.

-
+

+ The first take loads the model, which takes about ten seconds. After that it + synthesizes at roughly a fifth of realtime, a chunk at a time. +

-
-

History

-
+
+

Recent

+
+
-
- local only · nothing leaves this machine (weights download once from Hugging Face) - -
+ +
+

Settings

+ +
+ +
+
+

Voice

+
+ +

+
+ +
+

Add or replace a voice

+
+
+ + +
+
+ + +

Two or more clips let a held-out one verify the result.

+
+ +
+

+ +
+
+
+ +
+

Environment

+
+
+
+ +
+ Local only. Nothing leaves this machine — model weights download once. + +
+
- + diff --git a/src/double_chin/studio/static/style.css b/src/double_chin/studio/static/style.css index 1fe7900..ad5490a 100644 --- a/src/double_chin/studio/static/style.css +++ b/src/double_chin/studio/static/style.css @@ -1,206 +1,521 @@ -/* Double Chin — MashuAI brand system (dark, minimal, mono) */ +/* Double Chin — Liquid Glass interface. + * Tokens live in tokens.css; this file is only components. + */ -@font-face{ - font-family:"JetBrains Mono";font-weight:400;font-style:normal;font-display:swap; - src:url("fonts/JetBrainsMono-Regular.ttf") format("truetype"); +*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } + +html { height: 100%; } + +body{ + min-height: 100%; + background: var(--canvas); + color: var(--ink); + font-family: var(--font-ui); + font-size: var(--text-base); + line-height: 1.55; + letter-spacing: var(--tracking-tight); + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; } -@font-face{ - font-family:"JetBrains Mono";font-weight:500;font-style:normal;font-display:swap; - src:url("fonts/JetBrainsMono-Medium.ttf") format("truetype"); + +.numeric{ font-family: var(--font-num); font-variant-numeric: tabular-nums; } +.dim{ color: var(--ink-secondary); } + +.sr-only{ + position: absolute; width: 1px; height: 1px; overflow: hidden; + clip-path: inset(50%); white-space: nowrap; } -:root{ - --bg:#0a0a0f; --surface:#0f0f14; --elevated:#141419; --hover:#1a1a21; - --line:rgba(226,232,240,.12); --line-soft:rgba(226,232,240,.07); - --text:#e2e8f0; --muted:#94a3b8; --hint:#475569; - --ok:#22c55e; --warn:#f59e0b; --err:#ef4444; - --mono:"JetBrains Mono","Menlo","SFMono-Regular",monospace; +/* ---------- ambient field ---------- + * Four slow colour pools behind everything. This is what the glass refracts; + * without it the panels have nothing to be translucent against. + */ +.ambient{ + position: fixed; inset: -25%; z-index: -2; pointer-events: none; + background: + radial-gradient(48% 52% at 20% 16%, var(--amb-1), transparent 66%), + radial-gradient(50% 46% at 84% 10%, var(--amb-2), transparent 64%), + radial-gradient(54% 54% at 76% 84%, var(--amb-3), transparent 68%), + radial-gradient(50% 50% at 12% 82%, var(--amb-4), transparent 66%), + radial-gradient(62% 50% at 50% 48%, var(--amb-5), transparent 72%), + var(--canvas); + filter: blur(24px) saturate(118%); + animation: drift 54s var(--ease-out) infinite alternate; } -*{box-sizing:border-box;margin:0;padding:0} -body{ - background:var(--bg);color:var(--text);font-family:var(--mono); - font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased; - min-height:100vh;display:flex;flex-direction:column; -} - -/* ---------- header ---------- */ -header{ - display:flex;align-items:center;justify-content:space-between; - padding:14px 24px;border-bottom:1px solid var(--line-soft); -} -.brand{display:flex;align-items:center;gap:14px} -.mark{ - width:40px;height:40px;border-radius:9px;background:#0f0e13; - display:flex;align-items:flex-end;justify-content:center;gap:3px;padding:10px 0 9px; -} -.mark span{width:4px;background:#e1e0e0;border-radius:2px;display:block} -.mark span:nth-child(1),.mark span:nth-child(5){height:32%} -.mark span:nth-child(2),.mark span:nth-child(4){height:62%} -.mark span:nth-child(3){height:100%} -.name{font-weight:500;letter-spacing:-.01em} -.sub{color:var(--hint);font-size:11px;letter-spacing:.02em} -.env{color:var(--muted);font-size:12px;text-align:right} -.env b{color:var(--text);font-weight:500} - -/* ---------- layout ---------- */ -main{ - flex:1;display:grid;grid-template-columns:minmax(340px,460px) 1fr;gap:20px; - width:100%;max-width:1160px;margin:0 auto;padding:24px;align-items:start; -} -@media (max-width:860px){main{grid-template-columns:1fr}} -.panel{ - background:var(--surface);border-radius:6px;padding:22px; - box-shadow:0 1px 3px rgba(0,0,0,.4),0 1px 2px rgba(0,0,0,.3); -} -h2{font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:none; - color:var(--muted);margin-bottom:16px} -.history-h{margin-top:28px} - -/* ---------- fields ---------- */ -.field{margin-bottom:16px} -label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px;letter-spacing:.02em} -select,input[type=text],input[type=number],textarea{ - width:100%;background:var(--bg);border:1px solid var(--line);border-radius:5px; - color:var(--text);font-family:var(--mono);font-size:13px;padding:9px 11px; -} -select:focus,input:focus,textarea:focus{outline:none;border-color:rgba(226,232,240,.4)} -textarea{resize:vertical;line-height:1.55} -.voice-row{display:flex;gap:8px} -.voice-row select{flex:1} -.hint{color:var(--hint);font-size:11.5px;margin-top:5px;line-height:1.5} -.meta-row{display:flex;justify-content:space-between;align-items:center;margin-top:6px} -.prosody-help{margin-top:8px} -.prosody-help code{ - color:var(--muted);background:var(--bg);border:1px solid var(--line-soft); - border-radius:3px;padding:0 4px;font-family:var(--mono);font-size:11px; +@keyframes drift{ + from{ transform: translate3d(0,0,0) scale(1); } + to { transform: translate3d(-2.2%, 1.8%, 0) scale(1.06); } } -/* ---------- buttons ---------- */ -button{ - font-family:var(--mono);font-size:13px;font-weight:500;border-radius:5px; - cursor:pointer;transition:background .15s ease,border-color .15s ease,opacity .15s ease; -} -.ghost{ - background:transparent;border:1px solid rgba(226,232,240,.25);color:var(--text); - padding:9px 14px;white-space:nowrap; -} -.ghost:hover{background:rgba(226,232,240,.06);border-color:rgba(226,232,240,.45)} -.primary{ - width:100%;background:var(--text);color:var(--bg);border:none;padding:12px; - font-size:14px;margin-top:4px; -} -.primary:hover{background:#fff} -.primary:disabled{opacity:.45;cursor:default} -button:focus-visible,a:focus-visible,summary:focus-visible{ - outline:1px solid rgba(226,232,240,.4);outline-offset:2px; -} -.ghost-link{ - color:var(--muted);font-size:12px;cursor:pointer;text-decoration:none; - border-bottom:1px solid var(--line); -} -.ghost-link:hover{color:var(--text);border-bottom-color:var(--muted)} -.row-end{display:flex;justify-content:flex-end;margin-top:4px} -.eta{text-align:center;min-height:1.2em;margin-top:8px} - -/* ---------- enroll ---------- */ -.enroll{ - background:var(--bg);border:1px solid var(--line-soft);border-radius:6px; - padding:14px;margin-bottom:16px; -} -input[type=file]{color:var(--muted);font-size:12px} -input[type=file]::file-selector-button{ - font-family:var(--mono);background:transparent;border:1px solid rgba(226,232,240,.25); - color:var(--text);border-radius:4px;padding:5px 10px;margin-right:10px;cursor:pointer; +/* A whisper of grain kills the banding that big soft gradients produce. */ +.grain{ + position: fixed; inset: 0; z-index: -1; pointer-events: none; opacity: .30; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E"); + mix-blend-mode: overlay; +} + +/* ---------- shared glass recipe ---------- */ +.composer, .disclosure, .take, .history-item, .sheet{ + background: var(--glass); + -webkit-backdrop-filter: blur(var(--blur-panel)) saturate(var(--saturate)); + backdrop-filter: blur(var(--blur-panel)) saturate(var(--saturate)); + border: 1px solid var(--hairline); + border-radius: var(--r-card); + box-shadow: + inset 0 1px 0 var(--edge-top), + inset 0 -1px 0 var(--edge-bottom), + var(--shadow-card); +} + +/* ---------- toolbar ---------- */ +.toolbar{ + position: sticky; top: 0; z-index: 10; + display: flex; align-items: center; justify-content: space-between; gap: var(--gap-4); + padding: 10px 18px; + background: var(--glass-bar); + -webkit-backdrop-filter: blur(var(--blur-bar)) saturate(var(--saturate)); + backdrop-filter: blur(var(--blur-bar)) saturate(var(--saturate)); + border-bottom: 1px solid var(--hairline-soft); + box-shadow: inset 0 -1px 0 var(--edge-bottom); +} + +.identity{ display: flex; align-items: center; gap: 10px; min-width: 0; } +.mark{ display: flex; color: var(--accent); } +.mark svg{ width: 20px; height: 15px; display: block; } +.identity h1{ + font-size: var(--text-base); font-weight: 590; letter-spacing: var(--tracking-tight); +} + +.toolbar-end{ display: flex; align-items: center; gap: var(--gap-2); } + +.pill{ + font-size: var(--text-xs); color: var(--ink-secondary); + padding: 3px 10px; border-radius: var(--r-pill); + background: var(--glass-control); + border: 1px solid var(--hairline-soft); + white-space: nowrap; +} +.pill b{ color: var(--ink); font-weight: 590; } + +.icon-button{ + display: grid; place-items: center; width: 28px; height: 28px; + border: 1px solid transparent; border-radius: var(--r-pill); + background: transparent; color: var(--ink-secondary); cursor: pointer; + transition: background var(--dur-fast) var(--ease-out), + color var(--dur-fast) var(--ease-out); +} +.icon-button svg{ width: 17px; height: 17px; } +.icon-button:hover{ background: var(--glass-hover); color: var(--ink); } +.icon-button:active{ background: var(--glass-pressed); } + +/* ---------- shell ---------- */ +.shell{ + width: 100%; max-width: var(--shell-width); + margin: 0 auto; padding: var(--gap-6) var(--gap-5) 64px; + display: flex; flex-direction: column; gap: var(--gap-4); +} + +.section-title{ + font-size: var(--text-xs); font-weight: 590; letter-spacing: var(--tracking-wide); + text-transform: uppercase; color: var(--ink-secondary); + margin: var(--gap-3) 0 var(--gap-2) 2px; +} + +/* ---------- composer ---------- */ +.composer{ padding: var(--gap-2) var(--gap-2) 0; } + +.composer textarea{ + display: block; width: 100%; min-height: 168px; resize: vertical; + padding: var(--gap-3) var(--gap-3) var(--gap-2); + background: transparent; border: 0; outline: none; + color: var(--ink); font-family: inherit; font-size: var(--text-md); + line-height: 1.62; letter-spacing: var(--tracking-tight); +} +.composer textarea::placeholder{ color: var(--ink-tertiary); } + +.composer-foot{ + display: flex; align-items: center; justify-content: space-between; gap: var(--gap-3); + padding: 9px var(--gap-3); margin-top: var(--gap-1); + border-top: 1px solid var(--hairline-soft); + font-size: var(--text-xs); color: var(--ink-secondary); } +.link{ + color: var(--accent); font-size: var(--text-xs); cursor: pointer; + background: none; border: 0; padding: 0; font-family: inherit; + text-decoration: none; border-radius: 4px; +} +.link:hover{ text-decoration: underline; } + +/* ---------- disclosures ---------- */ +.disclosures{ display: flex; flex-direction: column; gap: var(--gap-2); } +.disclosure{ overflow: hidden; } + +.disclosure summary{ + display: flex; align-items: center; gap: 9px; + padding: 11px var(--gap-4); cursor: pointer; list-style: none; + font-size: var(--text-base); color: var(--ink); + transition: background var(--dur-fast) var(--ease-out); +} +.disclosure summary::-webkit-details-marker{ display: none; } +.disclosure summary:hover{ background: var(--glass-hover); } + +.disc-chevron{ + width: 7px; height: 7px; flex: none; margin-left: 2px; + border-right: 1.5px solid var(--ink-tertiary); + border-bottom: 1.5px solid var(--ink-tertiary); + transform: rotate(-45deg); + transition: transform var(--dur) var(--ease-spring); +} +.disclosure[open] .disc-chevron{ transform: rotate(45deg); } + +.disc-title{ flex: 1; } +.disc-value{ font-size: var(--text-xs); color: var(--ink-secondary); } + +.disc-body{ + padding: var(--gap-1) var(--gap-4) var(--gap-4); + border-top: 1px solid var(--hairline-soft); + animation: reveal var(--dur) var(--ease-spring) both; +} +@keyframes reveal{ + from{ opacity: 0; transform: translateY(-6px); } + to { opacity: 1; transform: none; } +} + +.disc-foot{ display: flex; justify-content: flex-end; margin-top: var(--gap-3); } + /* ---------- knobs ---------- */ -.knobs{margin-bottom:18px;border:1px solid var(--line-soft);border-radius:6px;padding:0} -.knobs summary{ - cursor:pointer;color:var(--muted);font-size:12px;padding:10px 14px;list-style:none; -} -.knobs summary::before{content:"▸ ";color:var(--hint)} -.knobs[open] summary::before{content:"▾ "} -.knobs summary::-webkit-details-marker{display:none} -.knob{padding:6px 14px 12px} -.knob label{display:flex;justify-content:space-between} -.knob output{color:var(--text);font-variant-numeric:tabular-nums} +.knob{ padding: var(--gap-3) 0 2px; } +.knob + .knob{ border-top: 1px solid var(--hairline-soft); } +.knob label{ + display: flex; align-items: baseline; justify-content: space-between; gap: var(--gap-3); + font-size: var(--text-base); color: var(--ink); margin-bottom: 9px; +} +.knob output{ font-size: var(--text-sm); color: var(--ink-secondary); } +.knob .hint{ + font-size: var(--text-xs); color: var(--ink-secondary); margin-top: 7px; +} + +.knob-inline label{ margin-bottom: 0; } +.knob-inline{ display: grid; grid-template-columns: 1fr auto; align-items: center; gap: var(--gap-3); } +.knob-inline .hint{ grid-column: 1 / -1; margin-top: 4px; } + input[type=range]{ - width:100%;appearance:none;-webkit-appearance:none;height:3px;border-radius:2px; - background:var(--line);outline:none; + -webkit-appearance: none; appearance: none; + width: 100%; height: 4px; border-radius: var(--r-pill); outline: none; cursor: pointer; + background: linear-gradient( + to right, + var(--accent) 0 var(--fill, 50%), + var(--glass-sunken) var(--fill, 50%) 100%); + border: 1px solid var(--hairline-soft); } input[type=range]::-webkit-slider-thumb{ - appearance:none;-webkit-appearance:none;width:14px;height:14px;border-radius:50%; - background:var(--text);border:none;cursor:pointer; -} -input[type=range]::-moz-range-thumb{ - width:14px;height:14px;border-radius:50%;background:var(--text);border:none;cursor:pointer; -} -.knob .hint{margin-top:3px} -.knob.seed input{max-width:160px} - -/* ---------- job progress ---------- */ -.empty p{color:var(--muted);margin-bottom:8px} -.empty b{color:var(--text);font-weight:500} -.job-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px} -.status{font-size:13px;color:var(--warn)} -.status.done{color:var(--ok)} -.status.error{color:var(--err)} -.bar{height:4px;border-radius:2px;background:var(--line-soft);overflow:hidden;margin-bottom:14px} -#bar-fill{ - height:100%;width:0%;background:var(--text);border-radius:2px; - transition:width .3s ease; -} -.chunks{list-style:none;display:grid;gap:6px;max-height:300px;overflow-y:auto} + -webkit-appearance: none; appearance: none; + width: 17px; height: 17px; border-radius: 50%; + background: #fff; border: .5px solid rgba(0,0,0,.14); + box-shadow: 0 1px 3px rgba(0,0,0,.28), 0 0 0 .5px rgba(0,0,0,.04); + transition: transform var(--dur-fast) var(--ease-spring); +} +input[type=range]:active::-webkit-slider-thumb{ transform: scale(1.14); } + +/* ---------- text inputs ---------- */ +input[type=text], input[type=number], input[type=file]{ + width: 100%; padding: 8px 11px; + background: var(--glass-sunken); + border: 1px solid var(--hairline); + border-radius: var(--r-control); + color: var(--ink); font-family: inherit; font-size: var(--text-base); + outline: none; + transition: border-color var(--dur-fast) var(--ease-out), + box-shadow var(--dur-fast) var(--ease-out); +} +input[type=number]{ font-family: var(--font-num); } +.knob-inline input[type=number]{ width: 120px; } +input::placeholder{ color: var(--ink-tertiary); } +input:focus{ border-color: var(--accent); box-shadow: 0 0 0 3.5px var(--accent-soft); } + +select{ + width: 100%; padding: 8px 11px; + background: var(--glass-sunken); + border: 1px solid var(--hairline); + border-radius: var(--r-control); + color: var(--ink); font-family: inherit; font-size: var(--text-base); + outline: none; cursor: pointer; +} +select:focus{ border-color: var(--accent); box-shadow: 0 0 0 3.5px var(--accent-soft); } +.voice-switch{ margin-top: var(--gap-3); margin-bottom: 0; } + +input[type=file]{ padding: 6px; font-size: var(--text-sm); color: var(--ink-secondary); } +input[type=file]::file-selector-button{ + font-family: inherit; font-size: var(--text-sm); font-weight: 500; + background: var(--glass-control); color: var(--ink); + border: 1px solid var(--hairline); border-radius: 7px; + padding: 5px 11px; margin-right: 10px; cursor: pointer; +} +input[type=file]::file-selector-button:hover{ background: var(--glass-hover); } + +.checkbox{ + display: flex; align-items: center; gap: var(--gap-2); + font-size: var(--text-sm); color: var(--ink-secondary); cursor: pointer; + margin-top: var(--gap-3); +} +.checkbox input{ accent-color: var(--accent); width: 15px; height: 15px; } + +/* ---------- buttons ---------- */ +.button-primary{ + display: flex; align-items: center; justify-content: center; gap: 10px; + width: 100%; min-height: 44px; padding: 0 var(--gap-4); + background: var(--accent); color: var(--accent-ink); + border: 0; border-radius: var(--r-control); + font-family: inherit; font-size: var(--text-md); font-weight: 590; + letter-spacing: var(--tracking-tight); cursor: pointer; + box-shadow: + inset 0 1px 0 rgba(255,255,255,.28), + 0 1px 2px rgba(0,0,0,.18), + 0 8px 20px -8px color-mix(in srgb, var(--accent) 62%, transparent); + transition: transform var(--dur-fast) var(--ease-spring), + filter var(--dur-fast) var(--ease-out), + opacity var(--dur-fast) var(--ease-out); +} +.button-primary:hover{ filter: brightness(1.07); } +.button-primary:active{ transform: scale(.985); filter: brightness(.95); } +.button-primary:disabled{ + background: var(--glass-control); + color: var(--ink-tertiary); + border: 1px solid var(--hairline); + cursor: default; box-shadow: none; filter: none; transform: none; +} +.button-primary:disabled kbd{ background: transparent; } + +.button-secondary{ + min-height: 32px; padding: 0 var(--gap-4); + background: var(--glass-control); color: var(--ink); + border: 1px solid var(--hairline); border-radius: 9px; + font-family: inherit; font-size: var(--text-base); font-weight: 500; cursor: pointer; + transition: background var(--dur-fast) var(--ease-out); +} +.button-secondary:hover{ background: var(--glass-hover); } +.button-secondary:disabled{ opacity: .45; cursor: default; } + +kbd{ + font-family: inherit; font-size: var(--text-sm); font-weight: 500; + padding: 1px 6px; border-radius: 5px; + background: rgba(255,255,255,.20); color: inherit; +} + +.generate-row{ margin-top: var(--gap-1); } +.eta{ + min-height: 1.3em; margin-top: 9px; text-align: center; + font-size: var(--text-xs); color: var(--ink-secondary); +} + +/* ---------- stage ---------- */ +.stage-idle{ + font-size: var(--text-sm); color: var(--ink-secondary); + text-align: center; max-width: 46ch; margin: var(--gap-2) auto; text-wrap: balance; +} + +.take{ + padding: var(--gap-4); + animation: rise var(--dur-slow) var(--ease-spring) both; +} +@keyframes rise{ + from{ opacity: 0; transform: translateY(10px) scale(.99); } + to { opacity: 1; transform: none; } +} + +.take-head{ + display: flex; align-items: center; justify-content: space-between; + gap: var(--gap-3); flex-wrap: wrap; margin-bottom: var(--gap-3); +} +.status{ font-size: var(--text-base); font-weight: 500; color: var(--ink); } +.status.done{ color: var(--ok); } +.status.error{ color: var(--err); } +.meta{ font-size: var(--text-xs); color: var(--ink-secondary); } + +.track{ + height: 4px; border-radius: var(--r-pill); overflow: hidden; + background: var(--glass-sunken); margin-bottom: var(--gap-3); +} +.track-fill{ + height: 100%; width: 0; border-radius: var(--r-pill); + background: var(--accent); + transition: width var(--dur-slow) var(--ease-out); +} + +.chunks{ list-style: none; display: grid; gap: 5px; max-height: 210px; overflow-y: auto; } .chunks li{ - font-size:12px;color:var(--hint);padding:7px 10px;border-radius:4px; - background:var(--bg);border:1px solid var(--line-soft); - white-space:nowrap;overflow:hidden;text-overflow:ellipsis; + font-size: var(--text-sm); color: var(--ink-tertiary); + padding: 7px 10px; border-radius: 9px; + background: var(--glass-sunken); border: 1px solid transparent; + white-space: nowrap; overflow: hidden; text-overflow: ellipsis; + transition: color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out); } -.chunks li.active{color:var(--text);border-color:rgba(226,232,240,.3)} -.chunks li.done-chunk{color:var(--muted)} -.chunks li .idx{color:var(--hint);margin-right:8px} -.error{ - margin-top:12px;padding:10px 12px;border-radius:5px;font-size:12.5px; - color:var(--err);border:1px solid rgba(239,68,68,.35);background:rgba(239,68,68,.06); +.chunks li .idx{ + font-family: var(--font-num); font-size: var(--text-xs); + color: var(--ink-tertiary); margin-right: 9px; +} +.chunks li.active{ color: var(--ink); border-color: var(--accent); } +.chunks li.done-chunk{ color: var(--ink-secondary); } + +.verdict{ + font-size: var(--text-xs); font-weight: 500; + padding: 3px 10px; border-radius: var(--r-pill); + border: 1px solid currentColor; color: var(--ink-secondary); } +.verdict.ok{ color: var(--ok); } +.verdict.warn{ color: var(--warn); } +.verdict.err{ color: var(--err); } + +audio{ width: 100%; height: 36px; display: block; } -/* ---------- result ---------- */ -.result{margin-top:18px;padding-top:18px;border-top:1px solid var(--line-soft)} -.result-head{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap} -.chip{ - font-size:11px;letter-spacing:.06em;padding:3px 9px;border-radius:4px;border:1px solid; +.take-foot{ display: flex; justify-content: flex-end; margin-top: var(--gap-3); } + +.error{ + margin-top: var(--gap-3); padding: 10px 12px; border-radius: var(--r-control); + font-size: var(--text-sm); color: var(--err); + background: color-mix(in srgb, var(--err) 10%, transparent); + border: 1px solid color-mix(in srgb, var(--err) 34%, transparent); } -.chip.ok{color:var(--ok);border-color:rgba(34,197,94,.4)} -.chip.warn{color:var(--warn);border-color:rgba(245,158,11,.4)} -.chip.err{color:var(--err);border-color:rgba(239,68,68,.4)} -.chip.plain{color:var(--muted);border-color:var(--line)} -audio{width:100%;height:40px} /* ---------- history ---------- */ -.history{display:grid;gap:8px} -.history .item{ - display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center; - background:var(--bg);border:1px solid var(--line-soft);border-radius:5px; - padding:10px 12px;cursor:pointer;transition:background .15s ease,border-color .15s ease; -} -.history .item:hover{background:var(--hover);border-color:var(--line)} -.history .item .txt{ - font-size:12.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; -} -.history .item .sub{grid-column:1;font-size:11px;color:var(--hint)} -.history .item .score{font-size:12px;font-variant-numeric:tabular-nums;text-align:right} -.history .item .score.ok{color:var(--ok)} -.history .item .score.warn{color:var(--warn)} -.history .empty-hint{color:var(--hint);font-size:12px} - -/* ---------- footer ---------- */ -footer{ - display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap; - padding:14px 24px;border-top:1px solid var(--line-soft); - color:var(--hint);font-size:11.5px; -} - -@media (prefers-reduced-motion:reduce){ - *,#bar-fill{transition:none !important} +.history{ display: flex; flex-direction: column; gap: var(--gap-2); } + +.history-item{ + display: grid; grid-template-columns: 1fr auto; gap: 2px var(--gap-3); + align-items: center; padding: 10px var(--gap-3); + border-radius: var(--r-control); cursor: pointer; + box-shadow: inset 0 1px 0 var(--edge-top), var(--shadow-card); + transition: background var(--dur-fast) var(--ease-out), + transform var(--dur-fast) var(--ease-spring); +} +.history-item:hover{ background: var(--glass-elevated); transform: translateY(-1px); } +.history-item[aria-disabled="true"]{ cursor: default; opacity: .6; } +.history-item .txt{ + grid-column: 1; + font-size: var(--text-base); color: var(--ink); + white-space: nowrap; overflow: hidden; text-overflow: ellipsis; +} +.history-item .sub{ grid-column: 1; font-size: var(--text-xs); color: var(--ink-secondary); } +.history-item .score{ + grid-column: 2; grid-row: 1 / span 2; font-family: var(--font-num); font-variant-numeric: tabular-nums; + font-size: var(--text-sm); color: var(--ink-secondary); text-align: right; +} +.history-item .score.ok{ color: var(--ok); } +.history-item .score.warn{ color: var(--warn); } +.history-item .score.err{ color: var(--err); } +.history-empty{ font-size: var(--text-sm); color: var(--ink-secondary); padding: 2px; } + +/* ---------- settings sheet ---------- */ +.sheet{ + /* The reset zeroes margins globally, which also disables the centring a + * modal gets from its UA stylesheet. Put it back explicitly. */ + margin: auto; + width: min(520px, calc(100vw - 40px)); + max-height: min(78vh, 720px); + padding: 0; color: var(--ink); + border-radius: var(--r-sheet); + background: var(--glass-elevated); + -webkit-backdrop-filter: blur(var(--blur-sheet)) saturate(var(--saturate)); + backdrop-filter: blur(var(--blur-sheet)) saturate(var(--saturate)); + box-shadow: + inset 0 1px 0 var(--edge-top), + inset 0 -1px 0 var(--edge-bottom), + var(--shadow-sheet); + overflow: hidden; +} +.sheet[open]{ display: flex; flex-direction: column; animation: sheet-in var(--dur) var(--ease-spring) both; } +@keyframes sheet-in{ + from{ opacity: 0; transform: translateY(12px) scale(.97); } + to { opacity: 1; transform: none; } +} +.sheet::backdrop{ + background: var(--glass-scrim); + -webkit-backdrop-filter: blur(3px); + backdrop-filter: blur(3px); +} + +.sheet-head{ + display: flex; align-items: center; justify-content: space-between; + padding: var(--gap-3) var(--gap-4); border-bottom: 1px solid var(--hairline-soft); +} +.sheet-head h2{ font-size: var(--text-lg); font-weight: 590; letter-spacing: var(--tracking-tight); } + +.sheet-body{ padding: var(--gap-2) var(--gap-4) var(--gap-4); overflow-y: auto; } +.sheet-section{ padding: var(--gap-4) 0; } +.sheet-section + .sheet-section{ border-top: 1px solid var(--hairline-soft); } +.sheet-section h3{ + font-size: var(--text-xs); font-weight: 590; letter-spacing: var(--tracking-wide); + text-transform: uppercase; color: var(--ink-secondary); margin-bottom: var(--gap-3); +} + +.voice-card{ + display: flex; align-items: baseline; justify-content: space-between; gap: var(--gap-3); + padding: var(--gap-3); border-radius: var(--r-control); + background: var(--glass-sunken); border: 1px solid var(--hairline-soft); +} +.voice-card .voice-name{ font-size: var(--text-md); font-weight: 590; } +.voice-card .voice-meta{ font-size: var(--text-xs); color: var(--ink-secondary); } + +.field{ margin-bottom: var(--gap-3); } +.field label{ + display: block; font-size: var(--text-sm); color: var(--ink-secondary); margin-bottom: 6px; +} +.field-foot{ + display: flex; align-items: center; justify-content: space-between; + gap: var(--gap-3); margin-top: var(--gap-4); +} +.hint{ font-size: var(--text-xs); color: var(--ink-secondary); } + +.marks{ display: grid; grid-template-columns: auto 1fr; gap: 7px var(--gap-3); align-items: baseline; } +.marks dt{ font-size: var(--text-xs); color: var(--ink); white-space: nowrap; } +.marks dd{ font-size: var(--text-sm); color: var(--ink-secondary); } + +.facts{ display: grid; grid-template-columns: auto 1fr; gap: 7px var(--gap-4); } +.facts dt{ font-size: var(--text-sm); color: var(--ink-secondary); } +.facts dd{ + font-family: var(--font-num); font-size: var(--text-sm); color: var(--ink); + overflow-wrap: anywhere; +} + +.sheet-foot{ + display: flex; align-items: center; justify-content: space-between; gap: var(--gap-3); + padding: 11px var(--gap-4); border-top: 1px solid var(--hairline-soft); + font-size: var(--text-xs); color: var(--ink-secondary); +} + +/* ---------- focus ---------- */ +:focus-visible{ + outline: 2px solid var(--accent); + outline-offset: 2px; + border-radius: 6px; +} +.composer:focus-within{ + border-color: color-mix(in srgb, var(--accent) 46%, var(--hairline)); +} + +/* ---------- responsive ---------- */ +@media (max-width: 620px){ + .shell{ padding: var(--gap-4) var(--gap-3) 48px; } + .pill{ display: none; } + .composer textarea{ min-height: 132px; font-size: var(--text-base); } +} + +/* ---------- increased contrast ---------- */ +/* The panels go opaque, so the ambient field is decoration with nothing left + * to refract. Pull it back rather than leaving it competing in the margins. */ +@media (prefers-contrast: more){ + .ambient{ opacity: .22; } + .grain{ display: none; } +} + +/* ---------- reduced motion ---------- */ +@media (prefers-reduced-motion: reduce){ + *, *::before, *::after{ + animation-duration: 1ms !important; + animation-iteration-count: 1 !important; + transition-duration: 1ms !important; + } + .ambient{ animation: none; } } diff --git a/src/double_chin/studio/static/tokens.css b/src/double_chin/studio/static/tokens.css new file mode 100644 index 0000000..7f6dee4 --- /dev/null +++ b/src/double_chin/studio/static/tokens.css @@ -0,0 +1,203 @@ +/* Double Chin — Apple Liquid Glass design tokens. + * + * Light is the base definition; the dark block redefines only what actually + * changes, so no colour is ever defined solely inside a media query. Glass is + * tuned per appearance rather than one palette dimmed — translucency is where + * contrast usually dies, so every text token below clears 4.5:1 against the + * material it is used on. Tertiary is placeholder/disabled only. + */ + +:root{ + color-scheme: light dark; + + /* ---------- type ---------- */ + --font-ui: + -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", + system-ui, sans-serif; + --font-num: + ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace; + + --text-xs: 11px; + --text-sm: 12px; + --text-base: 13px; + --text-md: 15px; + --text-lg: 17px; + --text-xl: 21px; + + --tracking-tight: -0.014em; + --tracking-wide: 0.06em; + + /* ---------- ink ---------- */ + --ink: rgba(0,0,0,.88); + --ink-secondary: rgba(0,0,0,.58); + --ink-tertiary: rgba(0,0,0,.42); + + --accent: #007AFF; + --accent-ink: #ffffff; + --accent-soft: rgba(0,122,255,.14); + --ok: #248A3D; + --warn: #B25000; + --err: #D70015; + + /* ---------- ambient canvas ---------- + * The glass needs something to refract. These pools drift slowly behind + * every panel; without them "translucent" just reads as "grey". + */ + --canvas: #E9E8F0; + --amb-1: rgba(116,168,255,.66); + --amb-2: rgba(198,160,255,.60); + --amb-3: rgba(255,182,146,.52); + --amb-4: rgba(146,226,204,.52); + --amb-5: rgba(255,255,255,.50); + + /* ---------- glass ---------- */ + --glass: rgba(255,255,255,.62); + --glass-elevated: rgba(255,255,255,.78); + --glass-bar: rgba(255,255,255,.58); + --glass-control: rgba(255,255,255,.58); + --glass-hover: rgba(255,255,255,.82); + --glass-pressed: rgba(255,255,255,.44); + --glass-sunken: rgba(255,255,255,.34); + --glass-scrim: rgba(40,40,50,.28); + + /* Specular edge: a bright top lip and a soft bottom shade are what make a + * flat rectangle read as a physical pane. */ + --edge-top: rgba(255,255,255,.85); + --edge-bottom: rgba(0,0,0,.06); + --hairline: rgba(0,0,0,.10); + --hairline-soft: rgba(0,0,0,.06); + + --blur-panel: 30px; + --blur-bar: 40px; + --blur-sheet: 50px; + --saturate: 180%; + + --shadow-card: + 0 1px 1px rgba(0,0,0,.04), + 0 8px 24px -10px rgba(0,0,0,.16), + 0 28px 56px -28px rgba(0,0,0,.20); + --shadow-raised: + 0 1px 1px rgba(0,0,0,.05), + 0 14px 32px -12px rgba(0,0,0,.22), + 0 36px 72px -32px rgba(0,0,0,.26); + --shadow-sheet: + 0 2px 4px rgba(0,0,0,.06), + 0 24px 64px -16px rgba(0,0,0,.34); + + /* ---------- geometry ---------- */ + --r-control: 10px; + --r-card: 18px; + --r-sheet: 22px; + --r-pill: 999px; + + --gap-1: 4px; + --gap-2: 8px; + --gap-3: 12px; + --gap-4: 16px; + --gap-5: 22px; + --gap-6: 30px; + + --shell-width: 720px; + + /* ---------- motion ---------- */ + --dur-fast: 160ms; + --dur: 260ms; + --dur-slow: 420ms; + --ease-spring: cubic-bezier(.22, 1, .36, 1); + --ease-out: cubic-bezier(.25, .46, .45, .94); +} + +@media (prefers-color-scheme: dark) { + :root { + --ink: rgba(255,255,255,.92); + --ink-secondary: rgba(255,255,255,.62); + --ink-tertiary: rgba(255,255,255,.44); + + --accent: #0A84FF; + --accent-ink: #ffffff; + --accent-soft: rgba(10,132,255,.22); + --ok: #30D158; + --warn: #FF9F0A; + --err: #FF453A; + + --canvas: #14141D; + --amb-1: rgba(48,104,208,.64); + --amb-2: rgba(116,66,196,.58); + --amb-3: rgba(184,64,104,.44); + --amb-4: rgba(24,124,132,.50); + --amb-5: rgba(66,74,146,.36); + + --glass: rgba(50,50,62,.52); + --glass-elevated: rgba(60,60,74,.68); + --glass-bar: rgba(30,30,40,.60); + --glass-control: rgba(255,255,255,.08); + --glass-hover: rgba(255,255,255,.14); + --glass-pressed: rgba(255,255,255,.05); + --glass-sunken: rgba(0,0,0,.22); + --glass-scrim: rgba(0,0,0,.52); + + --edge-top: rgba(255,255,255,.20); + --edge-bottom: rgba(0,0,0,.30); + --hairline: rgba(255,255,255,.12); + --hairline-soft: rgba(255,255,255,.07); + + --shadow-card: + 0 1px 1px rgba(0,0,0,.30), + 0 10px 28px -10px rgba(0,0,0,.56), + 0 30px 60px -28px rgba(0,0,0,.64); + --shadow-raised: + 0 1px 1px rgba(0,0,0,.34), + 0 16px 36px -12px rgba(0,0,0,.62), + 0 40px 80px -32px rgba(0,0,0,.70); + --shadow-sheet: + 0 2px 6px rgba(0,0,0,.40), + 0 28px 72px -16px rgba(0,0,0,.72); + } +} + +/* Translucency is the first thing to go when the viewer asks for contrast. + * Both appearances need their own block: whitening the glass without also + * darkening the ink turns dark mode into white-on-white. */ +@media (prefers-contrast: more) { + :root{ + --glass: rgba(255,255,255,.97); + --glass-elevated: rgba(255,255,255,.99); + --glass-bar: rgba(255,255,255,.97); + --glass-control: rgba(255,255,255,.99); + --glass-hover: rgba(238,238,244,.99); + --glass-pressed: rgba(224,224,232,.99); + --glass-sunken: rgba(0,0,0,.06); + --hairline: rgba(0,0,0,.44); + --hairline-soft: rgba(0,0,0,.24); + --edge-top: rgba(255,255,255,.60); + --edge-bottom: rgba(0,0,0,.10); + --ink: rgba(0,0,0,.95); + --ink-secondary: rgba(0,0,0,.76); + --ink-tertiary: rgba(0,0,0,.58); + --accent: #0040DD; + --blur-panel: 0px; --blur-bar: 0px; --blur-sheet: 0px; + } +} + +@media (prefers-contrast: more) and (prefers-color-scheme: dark) { + :root{ + --glass: rgba(14,14,20,.97); + --glass-elevated: rgba(22,22,30,.99); + --glass-bar: rgba(10,10,16,.97); + --glass-control: rgba(255,255,255,.16); + --glass-hover: rgba(255,255,255,.24); + --glass-pressed: rgba(255,255,255,.10); + --glass-sunken: rgba(0,0,0,.50); + --hairline: rgba(255,255,255,.48); + --hairline-soft: rgba(255,255,255,.28); + --edge-top: rgba(255,255,255,.34); + --edge-bottom: rgba(0,0,0,.50); + --ink: rgba(255,255,255,.98); + --ink-secondary: rgba(255,255,255,.82); + --ink-tertiary: rgba(255,255,255,.64); + /* A brighter accent needs dark text on it, or the primary button loses + * the contrast this whole block exists to raise. */ + --accent: #66B2FF; + --accent-ink: #06121F; + } +} diff --git a/tests/test_desktop.py b/tests/test_desktop.py index 0708930..2ffa83c 100644 --- a/tests/test_desktop.py +++ b/tests/test_desktop.py @@ -13,7 +13,17 @@ from __future__ import annotations -from double_chin.desktop import _acquire_single_instance_lock, _is_multiprocessing_child +import re +from pathlib import Path + +import double_chin +from double_chin.desktop import ( + _LAUNCH_COLOR_DARK, + _LAUNCH_COLOR_LIGHT, + _acquire_single_instance_lock, + _is_multiprocessing_child, + _launch_background_color, +) def test_genuine_launch_argv_is_not_a_multiprocessing_child(): @@ -65,3 +75,29 @@ def test_single_instance_lock_releases_after_close(tmp_path, monkeypatch): assert second is not None if hasattr(second, "close"): second.close() + + +class TestLaunchBackgroundColor: + """The window's pre-paint fill must track the interface's own canvas. + + These are two files that have to agree: `desktop.py` picks the colour the + native window shows before the page loads, and `tokens.css` defines the + colour the page then paints. When they drift, every launch flashes. + """ + + def test_dark_appearance_uses_the_dark_launch_colour(self): + assert _launch_background_color(prefers_dark=lambda: True) == _LAUNCH_COLOR_DARK + + def test_light_appearance_uses_the_light_launch_colour(self): + assert _launch_background_color(prefers_dark=lambda: False) == _LAUNCH_COLOR_LIGHT + + def test_launch_colours_match_the_canvas_tokens_in_css(self): + tokens = ( + Path(double_chin.__file__).parent / "studio" / "static" / "tokens.css" + ).read_text() + canvases = re.findall(r"--canvas:\s*(#[0-9A-Fa-f]{6});", tokens) + + assert canvases == [_LAUNCH_COLOR_LIGHT, _LAUNCH_COLOR_DARK], ( + "tokens.css --canvas values drifted from desktop.py's launch colours; " + f"css has {canvases}" + ) From a354366a7f4fb6867d9132d88ecd2b7b2a8f9dfb Mon Sep 17 00:00:00 2001 From: Crowvic <168686597+MattModeCode@users.noreply.github.com> Date: Wed, 9 Sep 2026 00:45:06 -0400 Subject: [PATCH 2/2] refactor(studio): use Apple's actual design system, drop the decorative field MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The first pass wore Liquid Glass without earning it. Every panel was translucent, and behind them sat an animated four-pool radial gradient with a noise overlay — a synthetic backdrop invented so the blur would have something to show. That is the tell: Apple's materials blur the app's own content, and a gradient placed behind glass to make it look like glass is decoration pretending to be a material. Backgrounds - The ambient field, the grain overlay and the drift animation are gone. - Apple's grouped-content system instead: a recessed page (#F2F2F7 / #1C1C1E) with opaque cards on top (#FFFFFF / #2C2C2E), divided by .5px separators and carrying no shadow, because grouped cards in AppKit don't have one. Materials - Glass now appears in exactly the two places Apple puts it: the toolbar, which the page genuinely scrolls beneath, and the settings sheet, which sits over the page. Both blur real content. Colour and type - Semantic AppKit/UIKit values throughout — label, secondaryLabel, tertiaryLabel, separator, the fill ramp, controlAccentColor, systemGreen / Orange / Red — rather than invented ones. Two documented departures: the secondary label alpha is raised because Apple's own value measures 3.5:1 on white and fails AA, and the accent has a defined pressed shade instead of a brightness filter. - macOS type scale: 13px body, 11px secondary, 15/17px titles. Controls - AppKit metrics: 36px prominent button, 24px secondary, 8px control radius, 12px card radius, the three-point accent focus halo, a real disclosure triangle that rotates 90 degrees, and a slider whose track is a two-stop fill rather than a gradient. - History is one inset grouped list with hairline dividers, not eight floating cards. - The primary button lost its coloured glow; nothing pulses or drifts. Window - The toolbar was repeating the window title. It now shows the voice, which is information the title bar doesn't already carry. - Default size follows the content column: 820x860. - Launch colour tracks --bg-grouped; the drift test follows the rename. Claude-Session: https://claude.ai/code/session_01FdWprv4TKfVzapYFJnRffz --- src/double_chin/desktop.py | 14 +- src/double_chin/studio/static/app.js | 1 + src/double_chin/studio/static/index.html | 6 +- src/double_chin/studio/static/style.css | 541 ++++++++++------------- src/double_chin/studio/static/tokens.css | 301 ++++++------- tests/test_desktop.py | 4 +- 6 files changed, 384 insertions(+), 483 deletions(-) diff --git a/src/double_chin/desktop.py b/src/double_chin/desktop.py index f0ede97..dbdcea9 100644 --- a/src/double_chin/desktop.py +++ b/src/double_chin/desktop.py @@ -21,10 +21,10 @@ _PREFERRED_PORT = 8787 # The window paints its background colour before the page has loaded. Left at # pywebview's white default that is a bright flash on the way into a dark -# interface, so both values below mirror `--canvas` in studio/static/tokens.css -# — a test asserts they stay in step. -_LAUNCH_COLOR_LIGHT = "#E9E8F0" -_LAUNCH_COLOR_DARK = "#14141D" +# interface, so both values below mirror `--bg-grouped` in +# studio/static/tokens.css — a test asserts they stay in step. +_LAUNCH_COLOR_LIGHT = "#F2F2F7" +_LAUNCH_COLOR_DARK = "#1C1C1E" _APPEARANCE_TIMEOUT_SECONDS = 2.0 _STARTUP_TIMEOUT_SECONDS = 15.0 _STARTUP_POLL_SECONDS = 0.05 @@ -148,9 +148,9 @@ def run() -> int: window = webview.create_window( "Double Chin", f"http://127.0.0.1:{port}", - width=1000, - height=820, - min_size=(560, 520), + width=820, + height=860, + min_size=(520, 480), background_color=_launch_background_color(), ) window.events.closed += lambda: setattr(server, "should_exit", True) diff --git a/src/double_chin/studio/static/app.js b/src/double_chin/studio/static/app.js index 9628e7d..a879086 100644 --- a/src/double_chin/studio/static/app.js +++ b/src/double_chin/studio/static/app.js @@ -81,6 +81,7 @@ async function refreshVoice(preferName) { state.voice = voices.find((voice) => voice.name === wanted) ?? voices[0] ?? null; if (state.voice) storeVoice(state.voice.name); + $("toolbar-voice").textContent = state.voice ? state.voice.name : "No voice"; renderVoicePicker(voices); renderVoiceCard(); renderIdle(); diff --git a/src/double_chin/studio/static/index.html b/src/double_chin/studio/static/index.html index e636646..bebca2d 100644 --- a/src/double_chin/studio/static/index.html +++ b/src/double_chin/studio/static/index.html @@ -11,9 +11,6 @@ - - -
-

Double Chin

+

Double Chin

+
diff --git a/src/double_chin/studio/static/style.css b/src/double_chin/studio/static/style.css index ad5490a..21809d3 100644 --- a/src/double_chin/studio/static/style.css +++ b/src/double_chin/studio/static/style.css @@ -1,5 +1,8 @@ -/* Double Chin — Liquid Glass interface. - * Tokens live in tokens.css; this file is only components. +/* Double Chin — components. Tokens live in tokens.css. + * + * Materials appear in exactly two places, which is where Apple puts them: the + * toolbar the content scrolls under, and the settings sheet that sits over the + * page. Everything else is an opaque grouped surface with hairline separators. */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } @@ -8,141 +11,108 @@ html { height: 100%; } body{ min-height: 100%; - background: var(--canvas); - color: var(--ink); + background: var(--bg-grouped); + color: var(--label); font-family: var(--font-ui); - font-size: var(--text-base); - line-height: 1.55; - letter-spacing: var(--tracking-tight); + font-size: var(--text-body); + line-height: 1.46; + letter-spacing: var(--tracking-body); -webkit-font-smoothing: antialiased; - text-rendering: optimizeLegibility; } .numeric{ font-family: var(--font-num); font-variant-numeric: tabular-nums; } -.dim{ color: var(--ink-secondary); } +.dim{ color: var(--label-secondary); } .sr-only{ position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; } -/* ---------- ambient field ---------- - * Four slow colour pools behind everything. This is what the glass refracts; - * without it the panels have nothing to be translucent against. +/* ---------- toolbar ---------- + * The one piece of real glass in the window: the page scrolls beneath it, so + * the blur has actual content to work on. */ -.ambient{ - position: fixed; inset: -25%; z-index: -2; pointer-events: none; - background: - radial-gradient(48% 52% at 20% 16%, var(--amb-1), transparent 66%), - radial-gradient(50% 46% at 84% 10%, var(--amb-2), transparent 64%), - radial-gradient(54% 54% at 76% 84%, var(--amb-3), transparent 68%), - radial-gradient(50% 50% at 12% 82%, var(--amb-4), transparent 66%), - radial-gradient(62% 50% at 50% 48%, var(--amb-5), transparent 72%), - var(--canvas); - filter: blur(24px) saturate(118%); - animation: drift 54s var(--ease-out) infinite alternate; -} - -@keyframes drift{ - from{ transform: translate3d(0,0,0) scale(1); } - to { transform: translate3d(-2.2%, 1.8%, 0) scale(1.06); } -} - -/* A whisper of grain kills the banding that big soft gradients produce. */ -.grain{ - position: fixed; inset: 0; z-index: -1; pointer-events: none; opacity: .30; - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E"); - mix-blend-mode: overlay; -} - -/* ---------- shared glass recipe ---------- */ -.composer, .disclosure, .take, .history-item, .sheet{ - background: var(--glass); - -webkit-backdrop-filter: blur(var(--blur-panel)) saturate(var(--saturate)); - backdrop-filter: blur(var(--blur-panel)) saturate(var(--saturate)); - border: 1px solid var(--hairline); - border-radius: var(--r-card); - box-shadow: - inset 0 1px 0 var(--edge-top), - inset 0 -1px 0 var(--edge-bottom), - var(--shadow-card); -} - -/* ---------- toolbar ---------- */ .toolbar{ position: sticky; top: 0; z-index: 10; display: flex; align-items: center; justify-content: space-between; gap: var(--gap-4); - padding: 10px 18px; - background: var(--glass-bar); - -webkit-backdrop-filter: blur(var(--blur-bar)) saturate(var(--saturate)); - backdrop-filter: blur(var(--blur-bar)) saturate(var(--saturate)); - border-bottom: 1px solid var(--hairline-soft); - box-shadow: inset 0 -1px 0 var(--edge-bottom); + padding: 0 var(--gap-4); height: 44px; + background: var(--material-bar); + -webkit-backdrop-filter: blur(var(--material-blur)) saturate(var(--material-saturate)); + backdrop-filter: blur(var(--material-blur)) saturate(var(--material-saturate)); + border-bottom: .5px solid var(--separator); } -.identity{ display: flex; align-items: center; gap: 10px; min-width: 0; } +.identity{ display: flex; align-items: center; gap: var(--gap-2); min-width: 0; } .mark{ display: flex; color: var(--accent); } -.mark svg{ width: 20px; height: 15px; display: block; } -.identity h1{ - font-size: var(--text-base); font-weight: 590; letter-spacing: var(--tracking-tight); +.mark svg{ width: 18px; height: 13px; display: block; } +.voice-label{ + font-size: var(--text-body); font-weight: var(--weight-semibold); + letter-spacing: var(--tracking-title); + white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .toolbar-end{ display: flex; align-items: center; gap: var(--gap-2); } .pill{ - font-size: var(--text-xs); color: var(--ink-secondary); - padding: 3px 10px; border-radius: var(--r-pill); - background: var(--glass-control); - border: 1px solid var(--hairline-soft); + font-size: var(--text-small); color: var(--label-secondary); + padding: 2px 8px; border-radius: var(--r-pill); + background: var(--fill-tertiary); white-space: nowrap; } -.pill b{ color: var(--ink); font-weight: 590; } +.pill b{ color: var(--label); font-weight: var(--weight-medium); } .icon-button{ - display: grid; place-items: center; width: 28px; height: 28px; - border: 1px solid transparent; border-radius: var(--r-pill); - background: transparent; color: var(--ink-secondary); cursor: pointer; - transition: background var(--dur-fast) var(--ease-out), - color var(--dur-fast) var(--ease-out); + display: grid; place-items: center; width: 26px; height: 26px; + border: 0; border-radius: 6px; + background: transparent; color: var(--label-secondary); cursor: pointer; + transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease); } -.icon-button svg{ width: 17px; height: 17px; } -.icon-button:hover{ background: var(--glass-hover); color: var(--ink); } -.icon-button:active{ background: var(--glass-pressed); } +.icon-button svg{ width: 16px; height: 16px; } +.icon-button:hover{ background: var(--fill-tertiary); color: var(--label); } +.icon-button:active{ background: var(--fill-secondary); } /* ---------- shell ---------- */ .shell{ width: 100%; max-width: var(--shell-width); - margin: 0 auto; padding: var(--gap-6) var(--gap-5) 64px; - display: flex; flex-direction: column; gap: var(--gap-4); + margin: 0 auto; padding: var(--gap-5) var(--gap-5) 56px; + display: flex; flex-direction: column; gap: var(--gap-3); } .section-title{ - font-size: var(--text-xs); font-weight: 590; letter-spacing: var(--tracking-wide); - text-transform: uppercase; color: var(--ink-secondary); - margin: var(--gap-3) 0 var(--gap-2) 2px; + font-size: var(--text-small); font-weight: var(--weight-semibold); + letter-spacing: var(--tracking-caps); text-transform: uppercase; + color: var(--label-secondary); + margin: var(--gap-4) 0 var(--gap-2) var(--gap-3); +} + +/* ---------- grouped surfaces ---------- */ +.composer, .disclosure, .take, .history-item{ + background: var(--bg-surface); + border-radius: var(--r-card); + border: .5px solid var(--separator); } /* ---------- composer ---------- */ -.composer{ padding: var(--gap-2) var(--gap-2) 0; } +.composer{ display: flex; flex-direction: column; } .composer textarea{ - display: block; width: 100%; min-height: 168px; resize: vertical; - padding: var(--gap-3) var(--gap-3) var(--gap-2); + display: block; width: 100%; min-height: 156px; resize: vertical; + padding: var(--gap-3) var(--gap-4); background: transparent; border: 0; outline: none; - color: var(--ink); font-family: inherit; font-size: var(--text-md); - line-height: 1.62; letter-spacing: var(--tracking-tight); + color: var(--label); font-family: inherit; font-size: var(--text-title3); + line-height: 1.5; letter-spacing: var(--tracking-body); } -.composer textarea::placeholder{ color: var(--ink-tertiary); } +.composer textarea::placeholder{ color: var(--label-tertiary); } .composer-foot{ display: flex; align-items: center; justify-content: space-between; gap: var(--gap-3); - padding: 9px var(--gap-3); margin-top: var(--gap-1); - border-top: 1px solid var(--hairline-soft); - font-size: var(--text-xs); color: var(--ink-secondary); + padding: var(--gap-2) var(--gap-4); + border-top: .5px solid var(--separator); + font-size: var(--text-small); color: var(--label-secondary); } .link{ - color: var(--accent); font-size: var(--text-xs); cursor: pointer; + color: var(--accent); font-size: var(--text-small); cursor: pointer; background: none; border: 0; padding: 0; font-family: inherit; text-decoration: none; border-radius: 4px; } @@ -153,369 +123,328 @@ body{ .disclosure{ overflow: hidden; } .disclosure summary{ - display: flex; align-items: center; gap: 9px; - padding: 11px var(--gap-4); cursor: pointer; list-style: none; - font-size: var(--text-base); color: var(--ink); - transition: background var(--dur-fast) var(--ease-out); + display: flex; align-items: center; gap: var(--gap-2); + padding: 0 var(--gap-4); height: 40px; cursor: pointer; list-style: none; + font-size: var(--text-body); color: var(--label); } .disclosure summary::-webkit-details-marker{ display: none; } -.disclosure summary:hover{ background: var(--glass-hover); } +.disclosure summary:hover{ background: var(--fill-quaternary); } +/* AppKit's disclosure triangle: points right when closed, down when open. */ .disc-chevron{ - width: 7px; height: 7px; flex: none; margin-left: 2px; - border-right: 1.5px solid var(--ink-tertiary); - border-bottom: 1.5px solid var(--ink-tertiary); - transform: rotate(-45deg); - transition: transform var(--dur) var(--ease-spring); + width: 0; height: 0; flex: none; + border-left: 5px solid var(--label-tertiary); + border-top: 3.5px solid transparent; + border-bottom: 3.5px solid transparent; + transition: transform var(--dur) var(--ease); } -.disclosure[open] .disc-chevron{ transform: rotate(45deg); } +.disclosure[open] .disc-chevron{ transform: rotate(90deg); } .disc-title{ flex: 1; } -.disc-value{ font-size: var(--text-xs); color: var(--ink-secondary); } +.disc-value{ font-size: var(--text-small); color: var(--label-secondary); } .disc-body{ - padding: var(--gap-1) var(--gap-4) var(--gap-4); - border-top: 1px solid var(--hairline-soft); - animation: reveal var(--dur) var(--ease-spring) both; -} -@keyframes reveal{ - from{ opacity: 0; transform: translateY(-6px); } - to { opacity: 1; transform: none; } + padding: 0 var(--gap-4) var(--gap-3); + border-top: .5px solid var(--separator); } -.disc-foot{ display: flex; justify-content: flex-end; margin-top: var(--gap-3); } +.disc-foot{ display: flex; justify-content: flex-end; padding-top: var(--gap-2); } /* ---------- knobs ---------- */ -.knob{ padding: var(--gap-3) 0 2px; } -.knob + .knob{ border-top: 1px solid var(--hairline-soft); } +.knob{ padding: var(--gap-3) 0 var(--gap-2); } +.knob + .knob{ border-top: .5px solid var(--separator); } .knob label{ display: flex; align-items: baseline; justify-content: space-between; gap: var(--gap-3); - font-size: var(--text-base); color: var(--ink); margin-bottom: 9px; -} -.knob output{ font-size: var(--text-sm); color: var(--ink-secondary); } -.knob .hint{ - font-size: var(--text-xs); color: var(--ink-secondary); margin-top: 7px; + font-size: var(--text-body); color: var(--label); margin-bottom: var(--gap-2); } +.knob output{ font-size: var(--text-callout); color: var(--label-secondary); } +.knob .hint{ font-size: var(--text-small); color: var(--label-secondary); margin-top: 6px; } -.knob-inline label{ margin-bottom: 0; } .knob-inline{ display: grid; grid-template-columns: 1fr auto; align-items: center; gap: var(--gap-3); } +.knob-inline label{ margin-bottom: 0; } .knob-inline .hint{ grid-column: 1 / -1; margin-top: 4px; } +/* AppKit slider: thin track, accent fill to the knob, white knob with shadow. */ input[type=range]{ -webkit-appearance: none; appearance: none; width: 100%; height: 4px; border-radius: var(--r-pill); outline: none; cursor: pointer; background: linear-gradient( to right, var(--accent) 0 var(--fill, 50%), - var(--glass-sunken) var(--fill, 50%) 100%); - border: 1px solid var(--hairline-soft); + var(--fill-secondary) var(--fill, 50%) 100%); } input[type=range]::-webkit-slider-thumb{ -webkit-appearance: none; appearance: none; - width: 17px; height: 17px; border-radius: 50%; - background: #fff; border: .5px solid rgba(0,0,0,.14); - box-shadow: 0 1px 3px rgba(0,0,0,.28), 0 0 0 .5px rgba(0,0,0,.04); - transition: transform var(--dur-fast) var(--ease-spring); + width: 16px; height: 16px; border-radius: 50%; + background: #fff; border: 0; box-shadow: var(--shadow-knob); } -input[type=range]:active::-webkit-slider-thumb{ transform: scale(1.14); } /* ---------- text inputs ---------- */ -input[type=text], input[type=number], input[type=file]{ - width: 100%; padding: 8px 11px; - background: var(--glass-sunken); - border: 1px solid var(--hairline); - border-radius: var(--r-control); - color: var(--ink); font-family: inherit; font-size: var(--text-base); +input[type=text], input[type=number], input[type=file], select{ + width: 100%; padding: 5px 8px; + background: var(--bg-inset); + border: .5px solid var(--separator); + border-radius: 6px; + color: var(--label); font-family: inherit; font-size: var(--text-body); outline: none; - transition: border-color var(--dur-fast) var(--ease-out), - box-shadow var(--dur-fast) var(--ease-out); + transition: border-color var(--dur-fast) var(--ease), + box-shadow var(--dur-fast) var(--ease); } input[type=number]{ font-family: var(--font-num); } -.knob-inline input[type=number]{ width: 120px; } -input::placeholder{ color: var(--ink-tertiary); } -input:focus{ border-color: var(--accent); box-shadow: 0 0 0 3.5px var(--accent-soft); } - -select{ - width: 100%; padding: 8px 11px; - background: var(--glass-sunken); - border: 1px solid var(--hairline); - border-radius: var(--r-control); - color: var(--ink); font-family: inherit; font-size: var(--text-base); - outline: none; cursor: pointer; -} -select:focus{ border-color: var(--accent); box-shadow: 0 0 0 3.5px var(--accent-soft); } -.voice-switch{ margin-top: var(--gap-3); margin-bottom: 0; } - -input[type=file]{ padding: 6px; font-size: var(--text-sm); color: var(--ink-secondary); } +.knob-inline input[type=number]{ width: 116px; } +input::placeholder{ color: var(--label-tertiary); } +select{ cursor: pointer; } + +/* AppKit's focus ring: a three-point accent halo, not a hard outline. */ +input:focus, select:focus{ + border-color: var(--accent); + box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 30%, transparent); +} + +input[type=file]{ padding: 4px; font-size: var(--text-callout); color: var(--label-secondary); } input[type=file]::file-selector-button{ - font-family: inherit; font-size: var(--text-sm); font-weight: 500; - background: var(--glass-control); color: var(--ink); - border: 1px solid var(--hairline); border-radius: 7px; - padding: 5px 11px; margin-right: 10px; cursor: pointer; + font-family: inherit; font-size: var(--text-callout); font-weight: var(--weight-medium); + background: var(--bg-surface); color: var(--label); + border: .5px solid var(--separator); border-radius: 5px; + padding: 4px 10px; margin-right: var(--gap-2); cursor: pointer; } -input[type=file]::file-selector-button:hover{ background: var(--glass-hover); } +input[type=file]::file-selector-button:hover{ background: var(--fill-quaternary); } .checkbox{ display: flex; align-items: center; gap: var(--gap-2); - font-size: var(--text-sm); color: var(--ink-secondary); cursor: pointer; + font-size: var(--text-callout); color: var(--label-secondary); cursor: pointer; margin-top: var(--gap-3); } -.checkbox input{ accent-color: var(--accent); width: 15px; height: 15px; } +.checkbox input{ accent-color: var(--accent); width: 14px; height: 14px; } /* ---------- buttons ---------- */ .button-primary{ - display: flex; align-items: center; justify-content: center; gap: 10px; - width: 100%; min-height: 44px; padding: 0 var(--gap-4); - background: var(--accent); color: var(--accent-ink); + display: flex; align-items: center; justify-content: center; gap: var(--gap-2); + width: 100%; height: 36px; padding: 0 var(--gap-4); + background: var(--accent); color: var(--accent-label); border: 0; border-radius: var(--r-control); - font-family: inherit; font-size: var(--text-md); font-weight: 590; - letter-spacing: var(--tracking-tight); cursor: pointer; - box-shadow: - inset 0 1px 0 rgba(255,255,255,.28), - 0 1px 2px rgba(0,0,0,.18), - 0 8px 20px -8px color-mix(in srgb, var(--accent) 62%, transparent); - transition: transform var(--dur-fast) var(--ease-spring), - filter var(--dur-fast) var(--ease-out), - opacity var(--dur-fast) var(--ease-out); -} -.button-primary:hover{ filter: brightness(1.07); } -.button-primary:active{ transform: scale(.985); filter: brightness(.95); } + font-family: inherit; font-size: var(--text-body); font-weight: var(--weight-medium); + letter-spacing: var(--tracking-body); cursor: pointer; + transition: background var(--dur-fast) var(--ease); +} +.button-primary:hover{ background: var(--accent-pressed); } +.button-primary:active{ background: var(--accent-pressed); } .button-primary:disabled{ - background: var(--glass-control); - color: var(--ink-tertiary); - border: 1px solid var(--hairline); - cursor: default; box-shadow: none; filter: none; transform: none; + background: var(--fill-secondary); color: var(--label-tertiary); cursor: default; } -.button-primary:disabled kbd{ background: transparent; } .button-secondary{ - min-height: 32px; padding: 0 var(--gap-4); - background: var(--glass-control); color: var(--ink); - border: 1px solid var(--hairline); border-radius: 9px; - font-family: inherit; font-size: var(--text-base); font-weight: 500; cursor: pointer; - transition: background var(--dur-fast) var(--ease-out); + height: 24px; padding: 0 var(--gap-3); + background: var(--bg-surface); color: var(--label); + border: .5px solid var(--separator); border-radius: 6px; + font-family: inherit; font-size: var(--text-callout); cursor: pointer; + transition: background var(--dur-fast) var(--ease); } -.button-secondary:hover{ background: var(--glass-hover); } -.button-secondary:disabled{ opacity: .45; cursor: default; } +.button-secondary:hover{ background: var(--fill-quaternary); } +.button-secondary:disabled{ color: var(--label-tertiary); cursor: default; } kbd{ - font-family: inherit; font-size: var(--text-sm); font-weight: 500; - padding: 1px 6px; border-radius: 5px; - background: rgba(255,255,255,.20); color: inherit; + font-family: inherit; font-size: var(--text-callout); + color: currentColor; opacity: .68; } -.generate-row{ margin-top: var(--gap-1); } .eta{ - min-height: 1.3em; margin-top: 9px; text-align: center; - font-size: var(--text-xs); color: var(--ink-secondary); + min-height: 1.3em; margin-top: var(--gap-2); text-align: center; + font-size: var(--text-small); color: var(--label-secondary); } /* ---------- stage ---------- */ .stage-idle{ - font-size: var(--text-sm); color: var(--ink-secondary); - text-align: center; max-width: 46ch; margin: var(--gap-2) auto; text-wrap: balance; + font-size: var(--text-callout); color: var(--label-secondary); + text-align: center; max-width: 44ch; margin: var(--gap-3) auto; text-wrap: balance; } -.take{ - padding: var(--gap-4); - animation: rise var(--dur-slow) var(--ease-spring) both; -} -@keyframes rise{ - from{ opacity: 0; transform: translateY(10px) scale(.99); } - to { opacity: 1; transform: none; } -} +.take{ padding: var(--gap-3) var(--gap-4) var(--gap-4); } .take-head{ display: flex; align-items: center; justify-content: space-between; gap: var(--gap-3); flex-wrap: wrap; margin-bottom: var(--gap-3); } -.status{ font-size: var(--text-base); font-weight: 500; color: var(--ink); } -.status.done{ color: var(--ok); } -.status.error{ color: var(--err); } -.meta{ font-size: var(--text-xs); color: var(--ink-secondary); } +.status{ font-size: var(--text-body); color: var(--label); } +.status.done{ color: var(--green); } +.status.error{ color: var(--red); } +.meta{ font-size: var(--text-small); color: var(--label-secondary); } .track{ height: 4px; border-radius: var(--r-pill); overflow: hidden; - background: var(--glass-sunken); margin-bottom: var(--gap-3); + background: var(--fill-secondary); margin-bottom: var(--gap-3); } .track-fill{ height: 100%; width: 0; border-radius: var(--r-pill); background: var(--accent); - transition: width var(--dur-slow) var(--ease-out); + transition: width var(--dur) var(--ease-out); } -.chunks{ list-style: none; display: grid; gap: 5px; max-height: 210px; overflow-y: auto; } +.chunks{ list-style: none; display: grid; gap: 1px; max-height: 200px; overflow-y: auto; } .chunks li{ - font-size: var(--text-sm); color: var(--ink-tertiary); - padding: 7px 10px; border-radius: 9px; - background: var(--glass-sunken); border: 1px solid transparent; + font-size: var(--text-callout); color: var(--label-tertiary); + padding: 6px var(--gap-2); border-radius: 5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; - transition: color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out); + transition: color var(--dur) var(--ease); } .chunks li .idx{ - font-family: var(--font-num); font-size: var(--text-xs); - color: var(--ink-tertiary); margin-right: 9px; + font-family: var(--font-num); font-size: var(--text-small); + color: var(--label-tertiary); margin-right: var(--gap-2); } -.chunks li.active{ color: var(--ink); border-color: var(--accent); } -.chunks li.done-chunk{ color: var(--ink-secondary); } +.chunks li.active{ color: var(--label); background: var(--fill-quaternary); } +.chunks li.done-chunk{ color: var(--label-secondary); } .verdict{ - font-size: var(--text-xs); font-weight: 500; - padding: 3px 10px; border-radius: var(--r-pill); - border: 1px solid currentColor; color: var(--ink-secondary); + font-size: var(--text-small); font-weight: var(--weight-medium); + padding: 2px 8px; border-radius: var(--r-pill); + background: var(--fill-tertiary); color: var(--label-secondary); } -.verdict.ok{ color: var(--ok); } -.verdict.warn{ color: var(--warn); } -.verdict.err{ color: var(--err); } +.verdict.ok{ color: var(--green); } +.verdict.warn{ color: var(--orange); } +.verdict.err{ color: var(--red); } -audio{ width: 100%; height: 36px; display: block; } +audio{ width: 100%; height: 32px; display: block; } .take-foot{ display: flex; justify-content: flex-end; margin-top: var(--gap-3); } .error{ - margin-top: var(--gap-3); padding: 10px 12px; border-radius: var(--r-control); - font-size: var(--text-sm); color: var(--err); - background: color-mix(in srgb, var(--err) 10%, transparent); - border: 1px solid color-mix(in srgb, var(--err) 34%, transparent); + margin-top: var(--gap-3); padding: var(--gap-2) var(--gap-3); border-radius: 6px; + font-size: var(--text-callout); color: var(--red); + background: var(--fill-quaternary); } -/* ---------- history ---------- */ -.history{ display: flex; flex-direction: column; gap: var(--gap-2); } - +/* ---------- history ---------- + * An inset grouped list: one rounded container, rows divided by hairlines. + */ +.history{ + background: var(--bg-surface); + border: .5px solid var(--separator); + border-radius: var(--r-card); + overflow: hidden; +} .history-item{ - display: grid; grid-template-columns: 1fr auto; gap: 2px var(--gap-3); - align-items: center; padding: 10px var(--gap-3); - border-radius: var(--r-control); cursor: pointer; - box-shadow: inset 0 1px 0 var(--edge-top), var(--shadow-card); - transition: background var(--dur-fast) var(--ease-out), - transform var(--dur-fast) var(--ease-spring); -} -.history-item:hover{ background: var(--glass-elevated); transform: translateY(-1px); } -.history-item[aria-disabled="true"]{ cursor: default; opacity: .6; } + display: grid; grid-template-columns: 1fr auto; gap: 1px var(--gap-3); + align-items: center; padding: var(--gap-2) var(--gap-4); + border: 0; border-radius: 0; background: transparent; + cursor: pointer; + transition: background var(--dur-fast) var(--ease); +} +.history-item + .history-item{ border-top: .5px solid var(--separator); } +.history-item:hover{ background: var(--fill-quaternary); } +.history-item[aria-disabled="true"]{ cursor: default; } .history-item .txt{ grid-column: 1; - font-size: var(--text-base); color: var(--ink); + font-size: var(--text-body); color: var(--label); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } -.history-item .sub{ grid-column: 1; font-size: var(--text-xs); color: var(--ink-secondary); } +.history-item .sub{ grid-column: 1; font-size: var(--text-small); color: var(--label-secondary); } .history-item .score{ - grid-column: 2; grid-row: 1 / span 2; font-family: var(--font-num); font-variant-numeric: tabular-nums; - font-size: var(--text-sm); color: var(--ink-secondary); text-align: right; + grid-column: 2; grid-row: 1 / span 2; + font-family: var(--font-num); font-variant-numeric: tabular-nums; + font-size: var(--text-callout); color: var(--label-secondary); text-align: right; +} +.history-item .score.ok{ color: var(--green); } +.history-item .score.warn{ color: var(--orange); } +.history-item .score.err{ color: var(--red); } +.history-empty{ + font-size: var(--text-callout); color: var(--label-secondary); + padding: var(--gap-3) var(--gap-4); } -.history-item .score.ok{ color: var(--ok); } -.history-item .score.warn{ color: var(--warn); } -.history-item .score.err{ color: var(--err); } -.history-empty{ font-size: var(--text-sm); color: var(--ink-secondary); padding: 2px; } -/* ---------- settings sheet ---------- */ +/* ---------- settings sheet ---------- + * The second legitimate material: it sits over the page, so it has the app's + * own content to blur. + */ .sheet{ - /* The reset zeroes margins globally, which also disables the centring a - * modal gets from its UA stylesheet. Put it back explicitly. */ margin: auto; - width: min(520px, calc(100vw - 40px)); - max-height: min(78vh, 720px); - padding: 0; color: var(--ink); + width: min(480px, calc(100vw - 40px)); + max-height: min(76vh, 660px); + padding: 0; color: var(--label); + border: .5px solid var(--separator); border-radius: var(--r-sheet); - background: var(--glass-elevated); - -webkit-backdrop-filter: blur(var(--blur-sheet)) saturate(var(--saturate)); - backdrop-filter: blur(var(--blur-sheet)) saturate(var(--saturate)); - box-shadow: - inset 0 1px 0 var(--edge-top), - inset 0 -1px 0 var(--edge-bottom), - var(--shadow-sheet); + background: var(--material-sheet); + -webkit-backdrop-filter: blur(var(--material-sheet-blur)) saturate(var(--material-saturate)); + backdrop-filter: blur(var(--material-sheet-blur)) saturate(var(--material-saturate)); + box-shadow: var(--shadow-sheet); overflow: hidden; } -.sheet[open]{ display: flex; flex-direction: column; animation: sheet-in var(--dur) var(--ease-spring) both; } -@keyframes sheet-in{ - from{ opacity: 0; transform: translateY(12px) scale(.97); } - to { opacity: 1; transform: none; } -} -.sheet::backdrop{ - background: var(--glass-scrim); - -webkit-backdrop-filter: blur(3px); - backdrop-filter: blur(3px); -} +.sheet[open]{ display: flex; flex-direction: column; } +.sheet::backdrop{ background: var(--scrim); } .sheet-head{ display: flex; align-items: center; justify-content: space-between; - padding: var(--gap-3) var(--gap-4); border-bottom: 1px solid var(--hairline-soft); + padding: var(--gap-2) var(--gap-3) var(--gap-2) var(--gap-4); + border-bottom: .5px solid var(--separator); +} +.sheet-head h2{ + font-size: var(--text-title3); font-weight: var(--weight-semibold); + letter-spacing: var(--tracking-title); } -.sheet-head h2{ font-size: var(--text-lg); font-weight: 590; letter-spacing: var(--tracking-tight); } -.sheet-body{ padding: var(--gap-2) var(--gap-4) var(--gap-4); overflow-y: auto; } +.sheet-body{ padding: 0 var(--gap-4) var(--gap-4); overflow-y: auto; } .sheet-section{ padding: var(--gap-4) 0; } -.sheet-section + .sheet-section{ border-top: 1px solid var(--hairline-soft); } +.sheet-section + .sheet-section{ border-top: .5px solid var(--separator); } .sheet-section h3{ - font-size: var(--text-xs); font-weight: 590; letter-spacing: var(--tracking-wide); - text-transform: uppercase; color: var(--ink-secondary); margin-bottom: var(--gap-3); + font-size: var(--text-small); font-weight: var(--weight-semibold); + letter-spacing: var(--tracking-caps); text-transform: uppercase; + color: var(--label-secondary); margin-bottom: var(--gap-2); } .voice-card{ display: flex; align-items: baseline; justify-content: space-between; gap: var(--gap-3); - padding: var(--gap-3); border-radius: var(--r-control); - background: var(--glass-sunken); border: 1px solid var(--hairline-soft); + padding: var(--gap-2) var(--gap-3); border-radius: 6px; + background: var(--fill-quaternary); } -.voice-card .voice-name{ font-size: var(--text-md); font-weight: 590; } -.voice-card .voice-meta{ font-size: var(--text-xs); color: var(--ink-secondary); } +.voice-card .voice-name{ font-size: var(--text-body); font-weight: var(--weight-semibold); } +.voice-card .voice-meta{ font-size: var(--text-small); color: var(--label-secondary); } .field{ margin-bottom: var(--gap-3); } .field label{ - display: block; font-size: var(--text-sm); color: var(--ink-secondary); margin-bottom: 6px; + display: block; font-size: var(--text-callout); color: var(--label-secondary); + margin-bottom: var(--gap-1); } .field-foot{ display: flex; align-items: center; justify-content: space-between; gap: var(--gap-3); margin-top: var(--gap-4); } -.hint{ font-size: var(--text-xs); color: var(--ink-secondary); } +.hint{ font-size: var(--text-small); color: var(--label-secondary); } +.voice-switch{ margin-top: var(--gap-3); margin-bottom: var(--gap-2); } -.marks{ display: grid; grid-template-columns: auto 1fr; gap: 7px var(--gap-3); align-items: baseline; } -.marks dt{ font-size: var(--text-xs); color: var(--ink); white-space: nowrap; } -.marks dd{ font-size: var(--text-sm); color: var(--ink-secondary); } +.marks{ display: grid; grid-template-columns: auto 1fr; gap: 6px var(--gap-3); align-items: baseline; } +.marks dt{ font-size: var(--text-small); color: var(--label); white-space: nowrap; } +.marks dd{ font-size: var(--text-callout); color: var(--label-secondary); } -.facts{ display: grid; grid-template-columns: auto 1fr; gap: 7px var(--gap-4); } -.facts dt{ font-size: var(--text-sm); color: var(--ink-secondary); } +.facts{ display: grid; grid-template-columns: auto 1fr; gap: 6px var(--gap-4); } +.facts dt{ font-size: var(--text-callout); color: var(--label-secondary); } .facts dd{ - font-family: var(--font-num); font-size: var(--text-sm); color: var(--ink); + font-family: var(--font-num); font-size: var(--text-callout); color: var(--label); overflow-wrap: anywhere; } .sheet-foot{ display: flex; align-items: center; justify-content: space-between; gap: var(--gap-3); - padding: 11px var(--gap-4); border-top: 1px solid var(--hairline-soft); - font-size: var(--text-xs); color: var(--ink-secondary); + padding: var(--gap-2) var(--gap-4); border-top: .5px solid var(--separator); + font-size: var(--text-small); color: var(--label-secondary); } /* ---------- focus ---------- */ :focus-visible{ - outline: 2px solid var(--accent); - outline-offset: 2px; - border-radius: 6px; -} -.composer:focus-within{ - border-color: color-mix(in srgb, var(--accent) 46%, var(--hairline)); + outline: 3px solid color-mix(in srgb, var(--accent) 55%, transparent); + outline-offset: 1px; + border-radius: 5px; } /* ---------- responsive ---------- */ -@media (max-width: 620px){ - .shell{ padding: var(--gap-4) var(--gap-3) 48px; } +@media (max-width: 600px){ + .shell{ padding: var(--gap-4) var(--gap-3) 44px; } .pill{ display: none; } - .composer textarea{ min-height: 132px; font-size: var(--text-base); } -} - -/* ---------- increased contrast ---------- */ -/* The panels go opaque, so the ambient field is decoration with nothing left - * to refract. Pull it back rather than leaving it competing in the margins. */ -@media (prefers-contrast: more){ - .ambient{ opacity: .22; } - .grain{ display: none; } + .composer textarea{ min-height: 128px; font-size: var(--text-body); } } /* ---------- reduced motion ---------- */ @media (prefers-reduced-motion: reduce){ *, *::before, *::after{ animation-duration: 1ms !important; - animation-iteration-count: 1 !important; transition-duration: 1ms !important; } - .ambient{ animation: none; } } diff --git a/src/double_chin/studio/static/tokens.css b/src/double_chin/studio/static/tokens.css index 7f6dee4..eb3568e 100644 --- a/src/double_chin/studio/static/tokens.css +++ b/src/double_chin/studio/static/tokens.css @@ -1,203 +1,176 @@ -/* Double Chin — Apple Liquid Glass design tokens. +/* Double Chin — Apple design system. * - * Light is the base definition; the dark block redefines only what actually - * changes, so no colour is ever defined solely inside a media query. Glass is - * tuned per appearance rather than one palette dimmed — translucency is where - * contrast usually dies, so every text token below clears 4.5:1 against the - * material it is used on. Tertiary is placeholder/disabled only. + * Values are AppKit/UIKit semantic colours, not invented ones. Two deliberate + * departures, both noted inline: the secondary label alpha is raised because + * Apple's own value fails WCAG AA for small text, and the accent has a defined + * pressed shade rather than a brightness filter. + * + * There is no decorative background anywhere in this file. Apple's materials + * blur the app's own content as it scrolls beneath them; a synthetic gradient + * behind the glass is the thing that makes translucency look fake. */ :root{ color-scheme: light dark; - /* ---------- type ---------- */ + /* ---------- type ---------- + * SF via -apple-system. macOS body text is 13px, secondary 11px. + */ --font-ui: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", system-ui, sans-serif; --font-num: ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace; - --text-xs: 11px; - --text-sm: 12px; - --text-base: 13px; - --text-md: 15px; - --text-lg: 17px; - --text-xl: 21px; - - --tracking-tight: -0.014em; - --tracking-wide: 0.06em; - - /* ---------- ink ---------- */ - --ink: rgba(0,0,0,.88); - --ink-secondary: rgba(0,0,0,.58); - --ink-tertiary: rgba(0,0,0,.42); - - --accent: #007AFF; - --accent-ink: #ffffff; - --accent-soft: rgba(0,122,255,.14); - --ok: #248A3D; - --warn: #B25000; - --err: #D70015; - - /* ---------- ambient canvas ---------- - * The glass needs something to refract. These pools drift slowly behind - * every panel; without them "translucent" just reads as "grey". + --text-caption: 10px; + --text-small: 11px; + --text-callout: 12px; + --text-body: 13px; + --text-title3: 15px; + --text-title2: 17px; + + --weight-regular: 400; + --weight-medium: 500; + --weight-semibold: 600; + + /* SF tightens optically as it grows; these match Apple's tracking table + * closely enough at the two sizes that carry headings. */ + --tracking-body: -0.006em; + --tracking-title: -0.014em; + --tracking-caps: 0.055em; + + /* ---------- backgrounds ---------- + * Apple's grouped-content system: a recessed page, opaque cards on top. + */ + --bg-grouped: #F2F2F7; + --bg-surface: #FFFFFF; + --bg-inset: #FFFFFF; + + /* Fills, for tracks and unemphasized control backgrounds. */ + --fill-secondary: rgba(120,120,128,.16); + --fill-tertiary: rgba(120,120,128,.12); + --fill-quaternary:rgba(120,120,128,.08); + + /* ---------- labels ---------- */ + --label: rgba(0,0,0,.92); + /* Apple's secondaryLabel is rgba(60,60,67,.60), which measures 3.5:1 on + * white and fails AA for text this size. Raised until it clears 4.5:1. */ + --label-secondary: rgba(60,60,67,.74); + --label-tertiary: rgba(60,60,67,.42); + + --separator: rgba(60,60,67,.29); + --separator-opaque:#D8D8DC; + + /* ---------- accent and semantics ---------- */ + --accent: #007AFF; + --accent-pressed: #0062CC; + --accent-label: #FFFFFF; + + /* systemGreen/Orange/Red, darkened where they sit on white as text. */ + --green: #248A3D; + --orange:#B25000; + --red: #D70015; + + /* ---------- materials ---------- + * Only chrome uses these: the toolbar, which the page scrolls beneath, and + * the sheet, which sits over the page. Nothing else in the app is glass, + * because nothing else has anything behind it to show through. */ - --canvas: #E9E8F0; - --amb-1: rgba(116,168,255,.66); - --amb-2: rgba(198,160,255,.60); - --amb-3: rgba(255,182,146,.52); - --amb-4: rgba(146,226,204,.52); - --amb-5: rgba(255,255,255,.50); - - /* ---------- glass ---------- */ - --glass: rgba(255,255,255,.62); - --glass-elevated: rgba(255,255,255,.78); - --glass-bar: rgba(255,255,255,.58); - --glass-control: rgba(255,255,255,.58); - --glass-hover: rgba(255,255,255,.82); - --glass-pressed: rgba(255,255,255,.44); - --glass-sunken: rgba(255,255,255,.34); - --glass-scrim: rgba(40,40,50,.28); - - /* Specular edge: a bright top lip and a soft bottom shade are what make a - * flat rectangle read as a physical pane. */ - --edge-top: rgba(255,255,255,.85); - --edge-bottom: rgba(0,0,0,.06); - --hairline: rgba(0,0,0,.10); - --hairline-soft: rgba(0,0,0,.06); - - --blur-panel: 30px; - --blur-bar: 40px; - --blur-sheet: 50px; - --saturate: 180%; - - --shadow-card: - 0 1px 1px rgba(0,0,0,.04), - 0 8px 24px -10px rgba(0,0,0,.16), - 0 28px 56px -28px rgba(0,0,0,.20); - --shadow-raised: - 0 1px 1px rgba(0,0,0,.05), - 0 14px 32px -12px rgba(0,0,0,.22), - 0 36px 72px -32px rgba(0,0,0,.26); - --shadow-sheet: - 0 2px 4px rgba(0,0,0,.06), - 0 24px 64px -16px rgba(0,0,0,.34); + --material-bar: rgba(246,246,248,.72); + --material-sheet: rgba(246,246,248,.86); + --material-blur: 20px; + --material-sheet-blur: 30px; + --material-saturate: 180%; + --scrim: rgba(0,0,0,.22); /* ---------- geometry ---------- */ - --r-control: 10px; - --r-card: 18px; - --r-sheet: 22px; + --r-control: 8px; + --r-card: 12px; + --r-sheet: 12px; --r-pill: 999px; --gap-1: 4px; --gap-2: 8px; --gap-3: 12px; --gap-4: 16px; - --gap-5: 22px; - --gap-6: 30px; + --gap-5: 20px; + --gap-6: 28px; - --shell-width: 720px; + --shell-width: 680px; - /* ---------- motion ---------- */ - --dur-fast: 160ms; - --dur: 260ms; - --dur-slow: 420ms; - --ease-spring: cubic-bezier(.22, 1, .36, 1); - --ease-out: cubic-bezier(.25, .46, .45, .94); + /* Cards in a grouped layout carry no shadow — only things that genuinely + * float above the window do. */ + --shadow-sheet: 0 12px 40px rgba(0,0,0,.22), 0 2px 6px rgba(0,0,0,.10); + --shadow-knob: 0 1px 3px rgba(0,0,0,.24), 0 0 0 .5px rgba(0,0,0,.08); + + /* ---------- motion ---------- + * Apple's default UI curve, and its short durations. Nothing drifts, + * pulses, or animates on its own. + */ + --dur-fast: 120ms; + --dur: 200ms; + --ease: cubic-bezier(.25, .1, .25, 1); + --ease-out: cubic-bezier(0, 0, .58, 1); } @media (prefers-color-scheme: dark) { :root { - --ink: rgba(255,255,255,.92); - --ink-secondary: rgba(255,255,255,.62); - --ink-tertiary: rgba(255,255,255,.44); - - --accent: #0A84FF; - --accent-ink: #ffffff; - --accent-soft: rgba(10,132,255,.22); - --ok: #30D158; - --warn: #FF9F0A; - --err: #FF453A; - - --canvas: #14141D; - --amb-1: rgba(48,104,208,.64); - --amb-2: rgba(116,66,196,.58); - --amb-3: rgba(184,64,104,.44); - --amb-4: rgba(24,124,132,.50); - --amb-5: rgba(66,74,146,.36); - - --glass: rgba(50,50,62,.52); - --glass-elevated: rgba(60,60,74,.68); - --glass-bar: rgba(30,30,40,.60); - --glass-control: rgba(255,255,255,.08); - --glass-hover: rgba(255,255,255,.14); - --glass-pressed: rgba(255,255,255,.05); - --glass-sunken: rgba(0,0,0,.22); - --glass-scrim: rgba(0,0,0,.52); - - --edge-top: rgba(255,255,255,.20); - --edge-bottom: rgba(0,0,0,.30); - --hairline: rgba(255,255,255,.12); - --hairline-soft: rgba(255,255,255,.07); - - --shadow-card: - 0 1px 1px rgba(0,0,0,.30), - 0 10px 28px -10px rgba(0,0,0,.56), - 0 30px 60px -28px rgba(0,0,0,.64); - --shadow-raised: - 0 1px 1px rgba(0,0,0,.34), - 0 16px 36px -12px rgba(0,0,0,.62), - 0 40px 80px -32px rgba(0,0,0,.70); - --shadow-sheet: - 0 2px 6px rgba(0,0,0,.40), - 0 28px 72px -16px rgba(0,0,0,.72); + --bg-grouped: #1C1C1E; + --bg-surface: #2C2C2E; + --bg-inset: #1C1C1E; + + --fill-secondary: rgba(120,120,128,.36); + --fill-tertiary: rgba(120,120,128,.24); + --fill-quaternary:rgba(120,120,128,.18); + + --label: rgba(255,255,255,.96); + --label-secondary: rgba(235,235,245,.64); + --label-tertiary: rgba(235,235,245,.34); + + --separator: rgba(84,84,88,.72); + --separator-opaque: #38383A; + + --accent: #0A84FF; + --accent-pressed: #0060D0; + + --green: #30D158; + --orange:#FF9F0A; + --red: #FF453A; + + --material-bar: rgba(28,28,30,.72); + --material-sheet: rgba(38,38,40,.86); + --scrim: rgba(0,0,0,.44); + + --shadow-sheet: 0 12px 40px rgba(0,0,0,.56), 0 2px 6px rgba(0,0,0,.36); + --shadow-knob: 0 1px 3px rgba(0,0,0,.44), 0 0 0 .5px rgba(0,0,0,.30); } } -/* Translucency is the first thing to go when the viewer asks for contrast. - * Both appearances need their own block: whitening the glass without also - * darkening the ink turns dark mode into white-on-white. */ +/* Increased contrast: Apple drops translucency and firms up separators. */ @media (prefers-contrast: more) { :root{ - --glass: rgba(255,255,255,.97); - --glass-elevated: rgba(255,255,255,.99); - --glass-bar: rgba(255,255,255,.97); - --glass-control: rgba(255,255,255,.99); - --glass-hover: rgba(238,238,244,.99); - --glass-pressed: rgba(224,224,232,.99); - --glass-sunken: rgba(0,0,0,.06); - --hairline: rgba(0,0,0,.44); - --hairline-soft: rgba(0,0,0,.24); - --edge-top: rgba(255,255,255,.60); - --edge-bottom: rgba(0,0,0,.10); - --ink: rgba(0,0,0,.95); - --ink-secondary: rgba(0,0,0,.76); - --ink-tertiary: rgba(0,0,0,.58); - --accent: #0040DD; - --blur-panel: 0px; --blur-bar: 0px; --blur-sheet: 0px; + --material-bar: #F2F2F7; + --material-sheet: #FFFFFF; + --material-blur: 0px; + --material-sheet-blur: 0px; + --label: rgba(0,0,0,1); + --label-secondary: rgba(0,0,0,.84); + --label-tertiary: rgba(0,0,0,.62); + --separator: rgba(0,0,0,.52); + --fill-secondary: rgba(120,120,128,.34); + --accent: #0040DD; } } @media (prefers-contrast: more) and (prefers-color-scheme: dark) { :root{ - --glass: rgba(14,14,20,.97); - --glass-elevated: rgba(22,22,30,.99); - --glass-bar: rgba(10,10,16,.97); - --glass-control: rgba(255,255,255,.16); - --glass-hover: rgba(255,255,255,.24); - --glass-pressed: rgba(255,255,255,.10); - --glass-sunken: rgba(0,0,0,.50); - --hairline: rgba(255,255,255,.48); - --hairline-soft: rgba(255,255,255,.28); - --edge-top: rgba(255,255,255,.34); - --edge-bottom: rgba(0,0,0,.50); - --ink: rgba(255,255,255,.98); - --ink-secondary: rgba(255,255,255,.82); - --ink-tertiary: rgba(255,255,255,.64); - /* A brighter accent needs dark text on it, or the primary button loses - * the contrast this whole block exists to raise. */ - --accent: #66B2FF; - --accent-ink: #06121F; + --material-bar: #1C1C1E; + --material-sheet: #2C2C2E; + --label: rgba(255,255,255,1); + --label-secondary: rgba(255,255,255,.88); + --label-tertiary: rgba(255,255,255,.66); + --separator: rgba(255,255,255,.56); + --accent: #4CA6FF; + --accent-label: #001022; } } diff --git a/tests/test_desktop.py b/tests/test_desktop.py index 2ffa83c..45fe4f4 100644 --- a/tests/test_desktop.py +++ b/tests/test_desktop.py @@ -95,9 +95,9 @@ def test_launch_colours_match_the_canvas_tokens_in_css(self): tokens = ( Path(double_chin.__file__).parent / "studio" / "static" / "tokens.css" ).read_text() - canvases = re.findall(r"--canvas:\s*(#[0-9A-Fa-f]{6});", tokens) + canvases = re.findall(r"--bg-grouped:\s*(#[0-9A-Fa-f]{6});", tokens) assert canvases == [_LAUNCH_COLOR_LIGHT, _LAUNCH_COLOR_DARK], ( - "tokens.css --canvas values drifted from desktop.py's launch colours; " + "tokens.css --bg-grouped values drifted from desktop.py's launch colours; " f"css has {canvases}" )