Download assets/CSS/login.css from JSWAI/XENXOS: direct link, hf CLI and curl.
- Browser
- Download file 10.1 kB
-
https://huggingface.co/spaces/JSWAI/XENXOS/resolve/main/assets/CSS/login.css
- Command line
-
hf download hf://spaces/JSWAI/XENXOS/assets/CSS/login.css
-
curl -L -o login.css https://huggingface.co/spaces/JSWAI/XENXOS/resolve/main/assets/CSS/login.css
10.1 kB
| /* ========================================================================== | |
| XENEX GLASS OS — Login Screen | |
| assets/CSS/login.css | |
| ========================================================================== */ | |
| @import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600&display=swap'); | |
| :root { | |
| /* Color */ | |
| --xenex-bg: #050608; | |
| --xenex-bg-deep: #020203; | |
| --xenex-glass-fill: rgba(18, 21, 27, 0.52); | |
| --xenex-glass-fill-soft: rgba(255, 255, 255, 0.035); | |
| --xenex-glass-border: rgba(255, 255, 255, 0.14); | |
| --xenex-glass-highlight: rgba(255, 255, 255, 0.55); | |
| --xenex-text-primary: #eef1f5; | |
| --xenex-text-secondary: #9aa3b0; | |
| --xenex-text-tertiary: #5c6470; | |
| --xenex-blue: #3f7cff; | |
| --xenex-orange: #ff8a42; | |
| --xenex-red: #ff3b4e; | |
| --xenex-focus: #7db0ff; | |
| --xenex-danger: #ff5468; | |
| /* Type */ | |
| --font-display: 'Space Grotesk', 'Segoe UI', system-ui, sans-serif; | |
| --font-body: 'IBM Plex Sans', 'Segoe UI', system-ui, sans-serif; | |
| /* Layout */ | |
| --xenex-card-radius: 22px; | |
| --xenex-field-radius: 12px; | |
| --xenex-safe-top: env(safe-area-inset-top, 0px); | |
| --xenex-safe-bottom: env(safe-area-inset-bottom, 0px); | |
| --xenex-safe-left: env(safe-area-inset-left, 0px); | |
| --xenex-safe-right: env(safe-area-inset-right, 0px); | |
| } | |
| /* ---- Reset ---- */ | |
| *, | |
| *::before, | |
| *::after { | |
| box-sizing: border-box; | |
| } | |
| html, | |
| body { | |
| height: 100%; | |
| } | |
| body { | |
| margin: 0; | |
| } | |
| /* ---- Base ---- */ | |
| .xenex-body { | |
| background: var(--xenex-bg); | |
| font-family: var(--font-body); | |
| color: var(--xenex-text-primary); | |
| min-height: 100vh; | |
| min-height: 100dvh; | |
| overflow-x: hidden; | |
| position: relative; | |
| } | |
| /* ---- Background light field ---- | |
| Soft radial gradients rather than filter:blur on large elements — | |
| cheaper to render and animate on phones/tablets. */ | |
| .xenex-light-field { | |
| position: fixed; | |
| inset: 0; | |
| overflow: hidden; | |
| z-index: 0; | |
| background: radial-gradient(120% 90% at 50% 0%, #0a0c10 0%, var(--xenex-bg-deep) 60%); | |
| } | |
| .xenex-light { | |
| position: absolute; | |
| width: 70vmax; | |
| height: 70vmax; | |
| border-radius: 50%; | |
| filter: blur(2px); | |
| opacity: 0.55; | |
| will-change: transform; | |
| animation: xenex-drift 34s ease-in-out infinite alternate; | |
| } | |
| .xenex-light--blue { | |
| top: -20vmax; | |
| left: -18vmax; | |
| background: radial-gradient(circle, var(--xenex-blue) 0%, rgba(63, 124, 255, 0) 68%); | |
| animation-duration: 38s; | |
| } | |
| .xenex-light--orange { | |
| bottom: -26vmax; | |
| right: -16vmax; | |
| background: radial-gradient(circle, var(--xenex-orange) 0%, rgba(255, 138, 66, 0) 65%); | |
| animation-duration: 30s; | |
| animation-delay: -6s; | |
| } | |
| .xenex-light--red { | |
| bottom: 10vh; | |
| left: 20vw; | |
| width: 55vmax; | |
| height: 55vmax; | |
| background: radial-gradient(circle, var(--xenex-red) 0%, rgba(255, 59, 78, 0) 62%); | |
| opacity: 0.4; | |
| animation-duration: 42s; | |
| animation-delay: -18s; | |
| } | |
| @keyframes xenex-drift { | |
| 0% { | |
| transform: translate3d(0, 0, 0) scale(1); | |
| } | |
| 50% { | |
| transform: translate3d(4vmax, 3vmax, 0) scale(1.08); | |
| } | |
| 100% { | |
| transform: translate3d(-3vmax, 5vmax, 0) scale(0.97); | |
| } | |
| } | |
| /* ---- Screen layout ---- */ | |
| .login-screen { | |
| position: relative; | |
| z-index: 1; | |
| min-height: 100vh; | |
| min-height: 100dvh; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 28px; | |
| padding: calc(28px + var(--xenex-safe-top)) calc(20px + var(--xenex-safe-right)) | |
| calc(28px + var(--xenex-safe-bottom)) calc(20px + var(--xenex-safe-left)); | |
| } | |
| /* ---- Glass card ---- */ | |
| .login-card { | |
| position: relative; | |
| width: 100%; | |
| max-width: 400px; | |
| padding: 36px 28px 32px; | |
| border-radius: var(--xenex-card-radius); | |
| background: | |
| linear-gradient(180deg, var(--xenex-glass-fill-soft) 0%, transparent 40%), | |
| var(--xenex-glass-fill); | |
| border: 1px solid var(--xenex-glass-border); | |
| backdrop-filter: blur(22px) saturate(150%); | |
| -webkit-backdrop-filter: blur(22px) saturate(150%); | |
| box-shadow: | |
| inset 0 1px 0 rgba(255, 255, 255, 0.08), | |
| inset 0 0 40px rgba(255, 255, 255, 0.015), | |
| 0 24px 70px rgba(0, 0, 0, 0.55); | |
| } | |
| /* Thin lit edge along the top — simulates light catching a glass rim */ | |
| .login-card::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 12%; | |
| right: 12%; | |
| height: 1px; | |
| background: linear-gradient(90deg, transparent, var(--xenex-glass-highlight), transparent); | |
| opacity: 0.6; | |
| } | |
| /* ---- Brand ---- */ | |
| .login-brand { | |
| display: flex; | |
| align-items: baseline; | |
| justify-content: center; | |
| gap: 8px; | |
| margin-bottom: 22px; | |
| font-family: var(--font-display); | |
| } | |
| .login-brand__mark { | |
| width: 9px; | |
| height: 9px; | |
| border-radius: 50%; | |
| align-self: center; | |
| background: linear-gradient(135deg, var(--xenex-blue), var(--xenex-red)); | |
| box-shadow: 0 0 10px rgba(63, 124, 255, 0.7); | |
| } | |
| .login-brand__name { | |
| font-size: 19px; | |
| font-weight: 700; | |
| letter-spacing: 0.01em; | |
| color: var(--xenex-text-primary); | |
| } | |
| .login-brand__suffix { | |
| font-size: 13px; | |
| font-weight: 500; | |
| color: var(--xenex-text-secondary); | |
| } | |
| /* ---- Heading / description ---- */ | |
| .login-heading { | |
| font-family: var(--font-display); | |
| font-size: 24px; | |
| font-weight: 600; | |
| line-height: 1.25; | |
| text-align: center; | |
| margin: 0 0 8px; | |
| color: var(--xenex-text-primary); | |
| } | |
| .login-description { | |
| font-size: 14px; | |
| line-height: 1.5; | |
| text-align: center; | |
| color: var(--xenex-text-secondary); | |
| margin: 0 0 28px; | |
| } | |
| /* ---- Form ---- */ | |
| .login-form { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 16px; | |
| } | |
| .login-field { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 7px; | |
| } | |
| .login-field__label { | |
| font-size: 13px; | |
| font-weight: 500; | |
| color: var(--xenex-text-secondary); | |
| } | |
| .login-field__control { | |
| position: relative; | |
| display: flex; | |
| align-items: stretch; | |
| } | |
| .login-field__input { | |
| width: 100%; | |
| min-height: 48px; | |
| padding: 12px 14px; | |
| font-family: var(--font-body); | |
| font-size: 15px; | |
| color: var(--xenex-text-primary); | |
| background: rgba(255, 255, 255, 0.04); | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| border-radius: var(--xenex-field-radius); | |
| outline: none; | |
| transition: border-color 0.15s ease, background-color 0.15s ease; | |
| } | |
| .login-field__control .login-field__input { | |
| padding-right: 64px; | |
| } | |
| .login-field__input::placeholder { | |
| color: var(--xenex-text-tertiary); | |
| } | |
| .login-field__input:hover { | |
| border-color: rgba(255, 255, 255, 0.18); | |
| } | |
| .login-field__input:focus-visible { | |
| border-color: var(--xenex-focus); | |
| background: rgba(255, 255, 255, 0.06); | |
| box-shadow: 0 0 0 3px rgba(125, 176, 255, 0.22); | |
| } | |
| .login-field__toggle { | |
| position: absolute; | |
| right: 6px; | |
| top: 50%; | |
| transform: translateY(-50%); | |
| min-width: 44px; | |
| min-height: 36px; | |
| padding: 0 10px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background: transparent; | |
| border: none; | |
| border-radius: 8px; | |
| font-family: var(--font-body); | |
| font-size: 12.5px; | |
| font-weight: 500; | |
| color: var(--xenex-text-secondary); | |
| cursor: pointer; | |
| transition: color 0.15s ease, background-color 0.15s ease; | |
| } | |
| .login-field__toggle:hover { | |
| color: var(--xenex-text-primary); | |
| background: rgba(255, 255, 255, 0.06); | |
| } | |
| .login-field__toggle:focus-visible { | |
| outline: 2px solid var(--xenex-focus); | |
| outline-offset: 2px; | |
| } | |
| /* ---- Form meta / links ---- */ | |
| .login-form__meta { | |
| display: flex; | |
| justify-content: flex-end; | |
| margin-top: -4px; | |
| } | |
| .login-link { | |
| color: var(--xenex-text-secondary); | |
| font-size: 13px; | |
| text-decoration: none; | |
| border-bottom: 1px solid transparent; | |
| transition: color 0.15s ease, border-color 0.15s ease; | |
| } | |
| .login-link:hover { | |
| color: var(--xenex-focus); | |
| border-bottom-color: currentColor; | |
| } | |
| .login-link:focus-visible { | |
| outline: 2px solid var(--xenex-focus); | |
| outline-offset: 3px; | |
| border-radius: 2px; | |
| } | |
| /* ---- Primary action ---- */ | |
| .login-submit { | |
| min-height: 48px; | |
| margin-top: 6px; | |
| border: 1px solid rgba(255, 255, 255, 0.16); | |
| border-radius: var(--xenex-field-radius); | |
| background: linear-gradient(180deg, rgba(63, 124, 255, 0.9), rgba(63, 124, 255, 0.72)); | |
| color: #f5f8ff; | |
| font-family: var(--font-body); | |
| font-size: 15px; | |
| font-weight: 600; | |
| cursor: pointer; | |
| transition: transform 0.12s ease, box-shadow 0.15s ease, background 0.15s ease; | |
| box-shadow: 0 10px 24px rgba(63, 124, 255, 0.28); | |
| } | |
| .login-submit:hover { | |
| background: linear-gradient(180deg, rgba(78, 135, 255, 0.95), rgba(63, 124, 255, 0.8)); | |
| } | |
| .login-submit:active { | |
| transform: translateY(1px); | |
| } | |
| .login-submit:focus-visible { | |
| outline: 2px solid var(--xenex-focus); | |
| outline-offset: 3px; | |
| } | |
| /* ---- Signup line ---- */ | |
| .login-signup { | |
| text-align: center; | |
| font-size: 13.5px; | |
| color: var(--xenex-text-secondary); | |
| margin: 22px 0 0; | |
| } | |
| .login-signup .login-link { | |
| color: var(--xenex-text-primary); | |
| font-weight: 500; | |
| } | |
| /* ---- Footer ---- */ | |
| .login-footer { | |
| position: relative; | |
| z-index: 1; | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| } | |
| .login-link--footer { | |
| font-size: 12.5px; | |
| color: var(--xenex-text-tertiary); | |
| } | |
| .login-footer__divider { | |
| width: 3px; | |
| height: 3px; | |
| border-radius: 50%; | |
| background: var(--xenex-text-tertiary); | |
| } | |
| /* ========================================================================== | |
| Responsive | |
| ========================================================================== */ | |
| /* Small phones (360–389px) */ | |
| @media (max-width: 389px) { | |
| .login-card { | |
| padding: 28px 20px 26px; | |
| border-radius: 18px; | |
| } | |
| .login-heading { | |
| font-size: 21px; | |
| } | |
| } | |
| /* Tablets and up */ | |
| @media (min-width: 700px) { | |
| .login-card { | |
| max-width: 420px; | |
| padding: 44px 40px 38px; | |
| } | |
| .login-heading { | |
| font-size: 26px; | |
| } | |
| } | |
| /* Landscape phones — shorter viewport, avoid vertical overflow */ | |
| @media (max-height: 480px) and (orientation: landscape) { | |
| .login-screen { | |
| justify-content: flex-start; | |
| padding-top: calc(18px + var(--xenex-safe-top)); | |
| padding-bottom: calc(18px + var(--xenex-safe-bottom)); | |
| } | |
| .login-card { | |
| padding: 22px 26px; | |
| } | |
| .login-brand { | |
| margin-bottom: 14px; | |
| } | |
| .login-description { | |
| margin-bottom: 18px; | |
| } | |
| } | |
| /* ---- Reduced motion ---- */ | |
| @media (prefers-reduced-motion: reduce) { | |
| .xenex-light { | |
| animation: none; | |
| } | |
| } | |