Download static/css/login.css from seun829/RecycloAI: direct link, hf CLI and curl.
- Browser
- Download file 9.13 kB
-
https://huggingface.co/spaces/seun829/RecycloAI/resolve/main/static/css/login.css
- Command line
-
hf download hf://spaces/seun829/RecycloAI/static/css/login.css
-
curl -L -o login.css https://huggingface.co/spaces/seun829/RecycloAI/resolve/main/static/css/login.css
9.13 kB
| /* ================================ | |
| RecycloAI — Glassy Forest Theme | |
| ================================ */ | |
| /* Design tokens */ | |
| :root{ | |
| /* Background */ | |
| --bg: #061a14; /* deep evergreen */ | |
| --bg-2: #0b261d; /* forest shadow */ | |
| --bg-3: #0d2f24; /* canopy tint */ | |
| /* Glass surfaces */ | |
| --surface: rgba(9,24,19,.55); | |
| --surface-strong: rgba(9,24,19,.75); | |
| --border: rgba(255,255,255,.12); | |
| /* Text */ | |
| --text: #e6f5ee; | |
| --muted: #a8c7b9; | |
| /* Accents (eco glow) */ | |
| --accent: #34d399; /* emerald */ | |
| --accent-2: #10b981; /* teal-emerald */ | |
| --ink-on-accent: #052019; | |
| /* States */ | |
| --danger: #ef4444; | |
| --shadow: 0 18px 60px rgba(0,0,0,.45); | |
| } | |
| /* Base & layout */ | |
| *{margin:0;padding:0;box-sizing:border-box} | |
| body{ | |
| font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif; | |
| color:var(--text); | |
| min-height:100vh; display:flex; align-items:center; justify-content:center; | |
| position:relative; overflow:hidden; | |
| background: | |
| radial-gradient(60% 100% at 10% 10%, rgba(52,211,153,.18) 0%, transparent 45%), | |
| radial-gradient(60% 120% at 90% 20%, rgba(16,185,129,.14) 0%, transparent 48%), | |
| linear-gradient(180deg, var(--bg), var(--bg-2) 60%, var(--bg-3) 100%); | |
| } | |
| /* Subtle vignette & grain */ | |
| body::before{ | |
| content:""; position:fixed; inset:0; pointer-events:none; | |
| background: | |
| radial-gradient(120% 140% at 50% -10%, rgba(255,255,255,.08) 0%, transparent 60%), | |
| radial-gradient(100% 120% at 50% 110%, rgba(0,0,0,.35) 0%, transparent 65%); | |
| mix-blend-mode: soft-light; | |
| } | |
| body::after{ | |
| content:""; position:fixed; inset:0; pointer-events:none; opacity:.35; | |
| background-image: | |
| repeating-linear-gradient(0deg, rgba(255,255,255,.015) 0 2px, transparent 2px 4px); | |
| } | |
| /* Animated background leaves (parallax-safe) */ | |
| .bg-animation{position:absolute;width:100%;height:100%;pointer-events:none} | |
| .leaf{ | |
| position:absolute; border-radius:50% 0; | |
| background: linear-gradient(135deg, rgba(52,211,153,.16), rgba(16,185,129,.06)); | |
| box-shadow: 0 8px 22px rgba(16,185,129,.12); | |
| --tx:0px; --ty:0px; | |
| animation: float 6s ease-in-out infinite; | |
| } | |
| .leaf:nth-child(1){width:64px;height:64px;top:12%;left:10%} | |
| .leaf:nth-child(2){width:44px;height:44px;top:68%;right:18%;animation-delay:1.3s} | |
| .leaf:nth-child(3){width:86px;height:86px;bottom:18%;left:16%;animation-delay:2.3s} | |
| @keyframes float{ | |
| 0%,100%{ transform: translate(var(--tx), var(--ty)) rotate(0) } | |
| 50% { transform: translate(var(--tx), calc(var(--ty) - 18px)) rotate(10deg) } | |
| } | |
| /* Auth card (frosted glass) */ | |
| .login-container{ | |
| width:100%; max-width:460px; padding:44px; | |
| background: var(--surface); | |
| border: 1px solid var(--border); | |
| border-radius: 24px; | |
| box-shadow: var(--shadow); | |
| position:relative; z-index:1; | |
| animation: slideUp .7s ease-out; | |
| color: var(--text); | |
| } | |
| @supports (backdrop-filter: blur(8px)){ | |
| .login-container{ backdrop-filter: blur(18px) saturate(115%); } | |
| } | |
| @keyframes slideUp{ from{opacity:0; transform:translateY(36px)} to{opacity:1; transform:translateY(0)} } | |
| /* Branding (wordmark) */ | |
| .logo-container{ text-align:center; margin-bottom:28px } | |
| .logo-container .brand{ margin-bottom:10px; } | |
| /* Wordmark styles (match new theme accents) */ | |
| .brand{ | |
| display:inline-flex; align-items:center; gap:.55rem; line-height:1; | |
| font-weight:900; letter-spacing:.2px; | |
| font-size: clamp(1.35rem, 1rem + 2vw, 2.2rem); | |
| } | |
| .brand-prim{ | |
| position:relative; display:inline-block; | |
| background: | |
| radial-gradient(120% 180% at 10% 0%, rgba(255,255,255,.18) 0%, transparent 55%), | |
| linear-gradient(90deg, var(--accent), var(--accent-2)); | |
| -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; | |
| text-shadow: | |
| 0 0 .5px rgba(255,255,255,.35), | |
| 0 10px 24px rgba(16,185,129,.18), | |
| 0 4px 14px rgba(52,211,153,.18); | |
| background-size:200% 100%, 200% 100%; | |
| animation: brandShine 6s linear infinite; | |
| } | |
| @keyframes brandShine{ | |
| 0%{background-position:0% 0%, 0% 0%} | |
| 100%{background-position:200% 0%, 200% 0%} | |
| } | |
| .brand-ai{ | |
| display:inline-flex; align-items:center; justify-content:center; | |
| font-weight:800; font-size:.72em; text-transform:uppercase; letter-spacing:.8px; | |
| padding:.28em .6em .3em; border-radius:999px; | |
| color:var(--ink-on-accent); border:1px solid var(--border); | |
| background: linear-gradient(90deg, var(--accent), var(--accent-2)); | |
| box-shadow: 0 12px 26px rgba(16,185,129,.25), 0 2px 0 rgba(255,255,255,.1) inset; | |
| position:relative; overflow:hidden; | |
| } | |
| .brand-ai::after{ | |
| content:""; position:absolute; inset:0; | |
| background: linear-gradient(to right, transparent, rgba(255,255,255,.22), transparent); | |
| transform: translateX(-120%) skewX(-18deg); | |
| animation: pillSweep 2.6s ease-in-out infinite .2s; | |
| } | |
| @keyframes pillSweep{ | |
| 50%{transform: translateX(10%) skewX(-18deg)} | |
| 100%{transform: translateX(120%) skewX(-18deg)} | |
| } | |
| .brand-leaf{ | |
| width:1.15em;height:1.15em; | |
| filter: drop-shadow(0 6px 14px rgba(16,185,129,.25)) drop-shadow(0 6px 14px rgba(52,211,153,.2)); | |
| transform: translateY(1px); | |
| } | |
| .brand:hover .brand-leaf{ transform: translateY(-1px) rotate(-2deg); transition: transform .18s ease; } | |
| /* Tagline */ | |
| .app-tagline{ color: var(--muted); font-size:14px } | |
| /* Form */ | |
| .login-form{ margin-top:26px } | |
| .form-group{ margin-bottom:20px; position:relative } | |
| .form-label{ display:block; margin-bottom:8px; color: var(--muted); font-weight:600; font-size:13.5px } | |
| .form-input{ | |
| width:100%; padding:16px 16px 16px 18px; | |
| background: rgba(255,255,255,.045); | |
| color: var(--text); | |
| border: 1px solid var(--border); | |
| border-radius: 14px; | |
| font-size: 16px; outline: none; | |
| transition: border-color .2s ease, box-shadow .2s ease, transform .12s ease, background .2s ease; | |
| } | |
| .form-input::placeholder{ color: rgba(230,245,238,.6) } | |
| .form-input:focus{ | |
| border-color: rgba(52,211,153,.65); | |
| box-shadow: 0 0 0 4px rgba(16,185,129,.18); | |
| transform: translateY(-1px); | |
| background: rgba(255,255,255,.06); | |
| } | |
| /* Options & links */ | |
| .form-options{ display:flex; justify-content:space-between; align-items:center; margin:18px 0 22px; font-size:14px } | |
| .remember-me{ display:flex; align-items:center; color: var(--muted) } | |
| .remember-me input{ margin-right:8px; accent-color: var(--accent-2) } | |
| .forgot-password{ color: var(--accent); text-decoration:none; font-weight:600 } | |
| .forgot-password:hover{ color: var(--accent-2) } | |
| /* Primary button */ | |
| .login-btn{ | |
| width:100%; padding:15px 16px; | |
| background: linear-gradient(90deg, var(--accent), var(--accent-2)); | |
| color:#03241b; border:none; border-radius:14px; | |
| font-size:16px; font-weight:800; cursor:pointer; | |
| box-shadow: 0 14px 28px rgba(16,185,129,.25), 0 2px 0 rgba(0,0,0,.25) inset; | |
| transition: transform .12s ease, filter .2s ease, box-shadow .2s ease; | |
| } | |
| .login-btn:hover{ transform: translateY(-1px); filter: brightness(1.05) } | |
| .login-btn:active{ transform: translateY(0) } | |
| .login-btn[disabled]{ opacity:.7; cursor:not-allowed } | |
| /* Sign up row */ | |
| .signup-link{ | |
| text-align:center; margin-top:28px; padding-top:20px; | |
| border-top:1px solid var(--border); color: var(--muted); | |
| } | |
| .signup-link a{ color: var(--accent); font-weight:700; text-decoration:none } | |
| .signup-link a:hover{ color: var(--accent-2) } | |
| /* Modals (glass) */ | |
| .modal{ | |
| position:fixed; inset:0; display:flex; align-items:center; justify-content:center; padding:24px; | |
| background: rgba(0,0,0,.45); z-index:50; | |
| } | |
| .modal[hidden]{ display:none } | |
| .dialog{ | |
| width:100%; max-width:460px; padding:26px 22px; | |
| background: var(--surface-strong); | |
| border:1px solid var(--border); border-radius:20px; box-shadow: var(--shadow); | |
| color: var(--text); position:relative; | |
| } | |
| @supports (backdrop-filter: blur(8px)){ | |
| .dialog{ backdrop-filter: blur(12px) saturate(120%); } | |
| } | |
| .dialog h2{ font-size:22px; margin-bottom:8px } | |
| .dialog p.muted{ color: var(--muted); margin-bottom:16px } | |
| .dialog .stack>*+*{ margin-top:16px } | |
| .dialog .row{ display:flex; gap:12px } | |
| .close-btn{ | |
| position:absolute; top:10px; right:10px; | |
| border:none; background:transparent; font-size:22px; line-height:1; cursor:pointer; color:#b7d2c6 | |
| } | |
| /* Toast */ | |
| .toast{ | |
| position:fixed; left:50%; bottom:24px; transform:translateX(-50%); | |
| background: var(--accent-2); color: var(--ink-on-accent); | |
| padding:12px 16px; border-radius:10px; box-shadow:0 10px 24px rgba(0,0,0,.25); | |
| font-weight:800; z-index:60; opacity:0; pointer-events:none; | |
| transition: opacity .2s ease, transform .2s ease; | |
| } | |
| .toast.show{ opacity:1; transform: translateX(-50%) translateY(-4px) } | |
| .toast.error{ background: var(--danger); color: #fff } | |
| /* Responsive */ | |
| @media (max-width:480px){ | |
| .login-container{ padding:34px 22px; margin:16px; border-radius:18px } | |
| .brand{ font-size: clamp(1.25rem, 1rem + 2vw, 1.85rem) } | |
| } | |
| /* Reduced motion */ | |
| @media (prefers-reduced-motion: reduce){ | |
| *{ animation:none ; transition:none } | |
| .brand:hover .brand-leaf{ transform:none } | |
| } | |