Terminal-style cyber login
A login card in cyberpunk clothing — near-black background, neon glow, and monospace type. Built for Web3, developer tools, and hacker-facing SaaS where the auth screen is part of the brand story.
Open preview
Overview
Cyber Login turns the auth screen from “a required form” into “a brand moment.” Three ingredients — dark canvas, neon accents, monospace type — plant the feeling that this product is for a specific crowd, before the user has typed a single character.
Why it works
Login screens are usually optimized for speed and trust. But for products whose brand should assert itself everywhere — Web3, security, DevTool, gaming/streaming — a flat white form throws away a chance to say “you’re in the right place.”
Structure
- Session indicator: pulsing green dot plus pseudo-system text. The page feels alive before the user touches it.
- Blinking cursor H1: terminal-prompt nod, free of charge.
- Labeled inputs: uppercase tracked labels with a cyan ”›” prefix — the decoration is also a cue.
- Gradient CTA: cyan-to-magenta pulls the eye to the final action.
- OAuth row: two columns only, monochrome borders. Adding more color here would drown the primary CTA.
- CRT scanlines + grid:
repeating-linear-gradientand a radial-masked grid give the background its texture — no JS.
When to use
- When the auth screen of a Web3, DeFi, or developer-tool product should continue the brand's world, not break it
- When a security product's onboarding needs to feel "serious about this"
- Authentication flows for gaming SaaS, streaming platforms, or any product with a strong visual identity
Recommended stack
- Category
- Auth
- Styles
- Cyber / Dark / Neon / SaaS
- Audience
- for SaaS
- SPA
- No
- Hosting
- any
- Notes
- Pure HTML/CSS. JS is only needed for the actual submission/OAuth logic, not the visual system.
AI prompt
Build a cyberpunk-style login card for a developer-facing SaaS. Visual system: - Near-black background (#05060a) with faint CRT scanlines and a subtle grid that fades out from the center (radial mask). - Two radial accent glows: magenta top-right (#ff4bcf) and cyan bottom-left (#6ef3ff). - Monospace typography throughout (JetBrains Mono / Fira Code / ui-monospace). - Muted gray text (#6b7a9e) for labels, bright cyan-to-magenta gradient for the primary CTA. Card: - Max-width 440px, dark panel (#0a0c14) with a thin border (#1a1f2e), 3px radius, heavy shadow + inset glow. - Top-left: a small uppercase "SESSION · OK" indicator with a pulsing green dot. - Heading "sign in" with a blinking terminal cursor after it. - 1 sentence lede with inline <code> highlighting. - Two inputs (username, password), each with an uppercase label prefixed by a cyan "›" character. - Row with "remember me" checkbox and a cyan "forgot?" link. - Primary submit button: cyan→magenta gradient, uppercase, "> authenticate". - Divider "— or —", then a 2-column OAuth row: GitHub and WebAuthn buttons with dotted bullet prefixes. - Footer: "new here? create an account" with dashed underline on the link. - Absolute brand mark at top-left of the page: "0x NIGHT/STACK" in muted uppercase, magenta "0x". No JavaScript required for the visuals. Fully responsive down to 360px.
Variations
Light mode
Same structural system, reversed palette: - Page background #f4f6fb; card background white with 1px #e0e4f0 border. - Cyan and magenta stay vivid, but grid/scanlines get very faint. - Cursor blink becomes a muted black.
WebAuthn-first
Replace the password input with a single "Use passkey" primary CTA: - Large cyan-gradient button labeled "› USE PASSKEY" with a fingerprint icon. - Keep the username field for passkey discovery. - Move the email/password combo behind a collapsed disclosure labeled "Sign in with password instead".
FAQ
Does this work with any OAuth provider?
The UI is provider-agnostic. Swap the two OAuth buttons (icon + label) for GitHub, Google, Apple, Discord, WebAuthn, or anything else your backend supports.
Which monospace font does it use?
The prompt prefers system `ui-monospace`, so it falls back cleanly. If your project loads JetBrains Mono or Fira Code (e.g. via @fontsource), those will be picked up automatically.
Is it accessible?
Every input has an associated `<label>`, and contrast is 4.5:1+ (bright text on near-black). The blinking cursor should respect `prefers-reduced-motion` — add a media query that disables the animation for users who request reduced motion.