From 9afe6bce7bc300dc888346efb45166f1aa823760 Mon Sep 17 00:00:00 2001 From: Daniel Date: Sun, 27 Sep 2026 15:55:21 -0500 Subject: [PATCH] Refactor CSS into separate file, add size selector and prompt clear button MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Extract styles.css from inline +

Flux Image Generator

@@ -203,8 +15,27 @@ +
+ + +
+
- +
+ + +
@@ -219,6 +50,8 @@ diff --git a/styles.css b/styles.css new file mode 100644 index 0000000..1e61a49 --- /dev/null +++ b/styles.css @@ -0,0 +1,229 @@ +* { margin: 0; padding: 0; box-sizing: border-box; } + +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + background: #0f0f13; + color: #e0e0e0; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + padding: 2rem 1rem; +} + +h1 { + font-size: 1.8rem; + font-weight: 600; + margin-bottom: 0.3rem; + background: linear-gradient(135deg, #a78bfa, #60a5fa); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} + +.subtitle { + color: #666; + font-size: 0.85rem; + margin-bottom: 2rem; +} + +.input-area { + width: 100%; + max-width: 640px; + display: flex; + gap: 0.5rem; + margin-bottom: 2rem; +} + +#prompt { + flex: 1; + padding: 0.85rem 1rem; + font-size: 1rem; + border: 1px solid #2a2a35; + border-radius: 10px; + background: #1a1a24; + color: #e0e0e0; + outline: none; + transition: border-color 0.2s; +} + +#prompt:focus { + border-color: #a78bfa; +} + +#prompt::placeholder { + color: #555; +} + +#generate-btn { + padding: 0.85rem 1.5rem; + font-size: 1rem; + font-weight: 600; + border: none; + border-radius: 10px; + background: linear-gradient(135deg, #7c3aed, #3b82f6); + color: white; + cursor: pointer; + transition: opacity 0.2s, transform 0.1s; + white-space: nowrap; +} + +#generate-btn:hover:not(:disabled) { + opacity: 0.9; +} + +#generate-btn:active:not(:disabled) { + transform: scale(0.97); +} + +#generate-btn:disabled { + opacity: 0.5; + cursor: not-allowed; +} + +.result-area { + width: 100%; + max-width: 640px; + display: flex; + flex-direction: column; + align-items: center; + gap: 1rem; +} + +#image-container { + display: none; + flex-direction: column; + align-items: center; + gap: 1rem; + width: 100%; +} + +#image-container.visible { + display: flex; +} + +#result-image { + max-width: 100%; + border-radius: 12px; + border: 1px solid #2a2a35; + background: #1a1a24; +} + +#download-btn { + padding: 0.7rem 1.4rem; + font-size: 0.9rem; + font-weight: 600; + border: 1px solid #2a2a35; + border-radius: 8px; + background: #1a1a24; + color: #a78bfa; + cursor: pointer; + transition: background 0.2s; + text-decoration: none; +} + +#download-btn:hover { + background: #22222e; +} + +.status { + font-size: 0.9rem; + color: #888; + text-align: center; + min-height: 1.4em; +} + +.status.error { + color: #f87171; +} + +.spinner { + display: inline-block; + width: 1em; + height: 1em; + margin-right: 0.5em; + vertical-align: -0.15em; + border: 2px solid #a78bfa; + border-right-color: transparent; + border-radius: 50%; + animation: spin 0.6s linear infinite; +} + +@keyframes spin { + to { transform: rotate(360deg); } +} + +.config { + width: 100%; + max-width: 640px; + margin-bottom: 1.5rem; + padding: 0.8rem 1rem; + background: #1a1a24; + border: 1px solid #2a2a35; + border-radius: 10px; + display: flex; + align-items: center; + gap: 0.5rem; + font-size: 0.85rem; + color: #888; +} + +.config label { + white-space: nowrap; +} + +.config input { + flex: 1; + padding: 0.35rem 0.5rem; + font-size: 0.85rem; + border: 1px solid #2a2a35; + border-radius: 6px; + background: #0f0f13; + color: #e0e0e0; + outline: none; +} + +.config input:focus, +.config select:focus { + border-color: #a78bfa; +} + +.config select { + flex: 1; + padding: 0.35rem 0.5rem; + font-size: 0.85rem; + border: 1px solid #2a2a35; + border-radius: 6px; + background: #0f0f13; + color: #e0e0e0; + outline: none; + cursor: pointer; +} + +.prompt-wrapper { + flex: 1; + position: relative; + display: flex; + align-items: center; +} + +.prompt-wrapper #prompt { + padding-right: 2.5rem; +} + +.clear-btn { + position: absolute; + right: 0.6rem; + background: none; + border: none; + color: #555; + font-size: 1rem; + cursor: pointer; + padding: 0.3rem; + line-height: 1; + transition: color 0.2s; + z-index: 1; +} + +.clear-btn:hover { + color: #a78bfa; +}