Download static/styles.css from tostido/weed-sim: direct link, hf CLI and curl.
- Browser
- Download file 9.37 kB
-
https://huggingface.co/spaces/tostido/weed-sim/resolve/main/static/styles.css
- Command line
-
hf download hf://spaces/tostido/weed-sim/static/styles.css
-
curl -L -o styles.css https://huggingface.co/spaces/tostido/weed-sim/resolve/main/static/styles.css
9.37 kB
| :root { | |
| --bg-dark: #0a0b10; | |
| --bg-panel: rgba(18, 20, 28, 0.75); | |
| --border-glass: rgba(57, 255, 20, 0.2); | |
| --accent-lime: #39FF14; | |
| --accent-magenta: #ff003c; | |
| --text-main: #f0f4f8; | |
| --text-muted: #8a94a6; | |
| --font-sans: 'Inter', sans-serif; | |
| --font-mono: 'JetBrains Mono', monospace; | |
| } | |
| * { | |
| box-sizing: border-box; | |
| margin: 0; | |
| padding: 0; | |
| } | |
| body { | |
| background-color: var(--bg-dark); | |
| color: var(--text-main); | |
| font-family: var(--font-sans); | |
| min-height: 100vh; | |
| overflow: hidden; | |
| } | |
| /* Ambient Glow */ | |
| .ambient-glow { | |
| position: fixed; | |
| border-radius: 50%; | |
| filter: blur(120px); | |
| z-index: -1; | |
| opacity: 0.3; | |
| pointer-events: none; | |
| } | |
| .ambient-glow.top-left { | |
| top: -10vw; | |
| left: -10vw; | |
| width: 40vw; | |
| height: 40vw; | |
| background: radial-gradient(circle, rgba(57, 255, 20, 0.2) 0%, rgba(0,0,0,0) 70%); | |
| } | |
| .ambient-glow.bottom-right { | |
| bottom: -15vw; | |
| right: -10vw; | |
| width: 50vw; | |
| height: 50vw; | |
| background: radial-gradient(circle, rgba(57, 255, 20, 0.15) 0%, rgba(0,0,0,0) 70%); | |
| } | |
| .app-container { | |
| display: flex; | |
| flex-direction: column; | |
| height: 100vh; | |
| padding: 1.5rem; | |
| gap: 1.5rem; | |
| } | |
| .glass-header { | |
| background: var(--bg-panel); | |
| backdrop-filter: blur(16px); | |
| border: 1px solid var(--border-glass); | |
| border-radius: 0; | |
| padding: 1rem 2rem; | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); | |
| } | |
| .logo { display: flex; align-items: center; gap: 12px; } | |
| .logo .icon { font-size: 1.5rem; } | |
| .logo h1 { font-size: 1.5rem; font-weight: 700; color: var(--accent-lime); letter-spacing: 2px; } | |
| .subtitle { font-weight: 300; color: var(--text-muted); font-size: 0.9rem; } | |
| .controls { | |
| display: flex; | |
| gap: 12px; | |
| } | |
| button { | |
| cursor: pointer; | |
| font-family: var(--font-sans); | |
| border: none; | |
| transition: all 0.2s; | |
| } | |
| .action-btn { | |
| background: rgba(255, 255, 255, 0.05); | |
| color: var(--text-main); | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| padding: 8px 20px; | |
| border-radius: 0; | |
| font-size: 0.9rem; | |
| font-weight: 600; | |
| } | |
| .action-btn:hover:not(:disabled) { background: rgba(255, 255, 255, 0.1); } | |
| .action-btn.primary { | |
| background: rgba(57, 255, 20, 0.1); | |
| color: var(--accent-lime); | |
| border-color: rgba(57, 255, 20, 0.3); | |
| } | |
| .action-btn.primary:hover:not(:disabled) { | |
| background: rgba(57, 255, 20, 0.2); | |
| box-shadow: 0 0 15px rgba(57, 255, 20, 0.4); | |
| } | |
| .action-btn.danger { | |
| color: var(--accent-magenta); | |
| border-color: rgba(255, 0, 60, 0.3); | |
| } | |
| .action-btn:disabled { opacity: 0.4; cursor: not-allowed; } | |
| .nav-link { | |
| text-decoration: none; | |
| display: inline-flex; | |
| align-items: center; | |
| color: var(--accent-lime); | |
| background: rgba(57, 255, 20, 0.08); | |
| border-color: rgba(57, 255, 20, 0.35); | |
| letter-spacing: 0.5px; | |
| } | |
| .nav-link:hover { background: rgba(57, 255, 20, 0.2); box-shadow: 0 0 14px rgba(57, 255, 20, 0.3); } | |
| .dashboard-grid { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 1.5rem; | |
| flex: 1; | |
| min-height: 0; | |
| } | |
| /* Synthesis Chamber sits on top as a bounded breeding bar; registry fills below */ | |
| .breeding-panel { flex: 0 0 auto; max-height: 46vh; } | |
| .inventory-panel { flex: 1 1 0; min-height: 0; } | |
| .glass-panel { | |
| background: var(--bg-panel); | |
| backdrop-filter: blur(16px); | |
| border: 1px solid var(--border-glass); | |
| border-radius: 0; | |
| display: flex; | |
| flex-direction: column; | |
| overflow: hidden; | |
| } | |
| .panel-header { | |
| padding: 1rem 1.5rem; | |
| border-bottom: 1px solid rgba(255, 255, 255, 0.05); | |
| background: rgba(0, 0, 0, 0.2); | |
| } | |
| .panel-header h2 { font-size: 1.1rem; color: var(--accent-lime); display: flex; align-items: center; gap: 8px; } | |
| .panel-content { | |
| flex: 1; | |
| overflow-y: auto; | |
| padding: 1.5rem; | |
| } | |
| .panel-content::-webkit-scrollbar { width: 8px; } | |
| .panel-content::-webkit-scrollbar-track { background: transparent; } | |
| .panel-content::-webkit-scrollbar-thumb { background: rgba(57, 255, 20, 0.2); border-radius: 0; } | |
| /* Inventory Grid */ | |
| #inventory-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); | |
| gap: 1.5rem; | |
| align-content: start; | |
| align-items: start; /* each card sizes to its own content (grow btn never clipped) */ | |
| } | |
| .seed-card { | |
| background: rgba(0, 0, 0, 0.4); | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| border-radius: 0; | |
| padding: 1rem; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| gap: 10px; | |
| cursor: pointer; | |
| transition: all 0.2s; | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .seed-card { overflow: visible; } | |
| .seed-card:hover { | |
| transform: translateY(-4px); | |
| border-color: var(--accent-lime); | |
| box-shadow: 0 4px 20px rgba(57, 255, 20, 0.15); | |
| } | |
| .seed-card.selected { | |
| border-color: var(--accent-lime); | |
| background: rgba(57, 255, 20, 0.05); | |
| box-shadow: 0 0 15px rgba(57, 255, 20, 0.2); | |
| } | |
| .seed-img { | |
| width: 96px; | |
| height: 96px; | |
| flex-shrink: 0; | |
| object-fit: contain; | |
| image-rendering: pixelated; /* Crisp pixel art */ | |
| } | |
| .seed-name { | |
| font-weight: 700; | |
| text-align: center; | |
| font-size: 0.95rem; | |
| width: 100%; | |
| white-space: normal; | |
| word-break: break-word; | |
| } | |
| .seed-type { font-family: var(--font-mono); font-size: 0.75rem; color: var(--accent-lime); } | |
| .seed-stage { font-size: 0.8rem; color: var(--text-muted); } | |
| .grow-btn { | |
| width: 100%; | |
| padding: 6px; | |
| background: rgba(255, 255, 255, 0.1); | |
| color: white; | |
| border-radius: 0; | |
| font-size: 0.8rem; | |
| margin-top: auto; | |
| } | |
| .grow-btn:hover { background: rgba(255, 255, 255, 0.2); } | |
| /* Breeding Pit: two independent scroll panes side-by-side in the top bar */ | |
| .breeding-pit { | |
| flex: 1; | |
| min-height: 0; | |
| display: flex; | |
| flex-direction: row; | |
| gap: 1rem; | |
| padding: 1rem; | |
| overflow: hidden; | |
| } | |
| .parent-slot { | |
| flex: 1 1 0; | |
| min-height: 0; /* allow the pane to shrink so it can scroll */ | |
| background: rgba(0, 0, 0, 0.3); | |
| border: 1px dashed rgba(255, 255, 255, 0.2); | |
| border-radius: 0; | |
| display: flex; | |
| flex-direction: column; | |
| padding: 1.25rem; | |
| overflow-y: auto; /* each parent + its lineage scrolls on its own */ | |
| overflow-x: hidden; | |
| } | |
| .parent-slot::-webkit-scrollbar { width: 8px; } | |
| .parent-slot::-webkit-scrollbar-track { background: transparent; } | |
| .parent-slot::-webkit-scrollbar-thumb { background: rgba(57, 255, 20, 0.2); border-radius: 0; } | |
| .empty-slot { | |
| flex: 1; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| color: var(--text-muted); | |
| font-family: var(--font-mono); | |
| font-style: italic; | |
| } | |
| .parent-details { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 1rem; | |
| width: 100%; | |
| } | |
| .parent-img { | |
| width: 128px; | |
| height: 128px; | |
| flex-shrink: 0; | |
| object-fit: contain; | |
| image-rendering: pixelated; | |
| background: rgba(0,0,0,0.5); | |
| border-radius: 0; | |
| } | |
| .parent-stats { | |
| flex: 1; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 4px; | |
| min-width: 140px; | |
| } | |
| .stat-row { | |
| display: flex; | |
| justify-content: space-between; | |
| gap: 8px; | |
| min-width: 0; | |
| font-family: var(--font-mono); | |
| font-size: 0.8rem; | |
| border-bottom: 1px solid rgba(255,255,255,0.05); | |
| padding-bottom: 4px; | |
| } | |
| .stat-label { color: var(--text-muted); white-space: nowrap; flex-shrink: 0; } | |
| .stat-val { | |
| color: var(--accent-lime); | |
| text-align: right; | |
| min-width: 0; | |
| white-space: normal; | |
| overflow-wrap: anywhere; | |
| } | |
| .lineage-canvas { max-width: 100%; } | |
| /* Tooltips */ | |
| .seed-card[title] { position: relative; } | |
| /* Toast notifications */ | |
| #toast-host { | |
| position: fixed; | |
| bottom: 1.5rem; | |
| right: 1.5rem; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 10px; | |
| z-index: 1000; | |
| pointer-events: none; | |
| } | |
| .toast { | |
| min-width: 240px; | |
| max-width: 360px; | |
| padding: 12px 16px; | |
| background: var(--bg-panel); | |
| backdrop-filter: blur(16px); | |
| border: 1px solid var(--border-glass); | |
| border-left-width: 3px; | |
| color: var(--text-main); | |
| font-family: var(--font-mono); | |
| font-size: 0.85rem; | |
| box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4); | |
| opacity: 0; | |
| transform: translateX(20px); | |
| transition: opacity 0.3s ease, transform 0.3s ease; | |
| } | |
| .toast.show { opacity: 1; transform: translateX(0); } | |
| .toast-success { border-left-color: var(--accent-lime); } | |
| .toast-error { border-left-color: var(--accent-magenta); } | |
| .toast-info { border-left-color: var(--text-muted); } | |
| /* ββ Phone / small screens βββββββββββββββββββββββββββββββββββββββββββββ */ | |
| @media (max-width: 820px) { | |
| body { overflow: auto; } | |
| .app-container { height: auto; min-height: 100vh; } | |
| .glass-header { flex-direction: column; align-items: stretch; gap: 8px; padding: 0.8rem 1rem; } | |
| .logo h1 { font-size: 1.1rem; } | |
| .controls { flex-wrap: wrap; justify-content: center; } | |
| .controls .action-btn { flex: 1 1 auto; text-align: center; } | |
| .breeding-panel { flex: none; max-height: none; min-height: 60vh; } | |
| .breeding-pit { flex-direction: column; } | |
| .inventory-panel { flex: none; min-height: 65vh; } | |
| #inventory-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 1rem; } | |
| } | |