VibeCoderzVibeCoderz
All Prompts
Cipher Dither Login UI Preview

Cipher Dither Login

Mockup темного режима входа с глитч-эффектом и монохромными паттернами. Минималистичная форма, анимация, стилизация под Cipher Dither.

by Blink GuidesLive Preview

Prompt

# Cipher Dither Login

Create a dithering glitch login mockup in dark mode following the Cipher Dither aesthetic:

- Dark background (#050505) with monochromatic dither patterns and scanlines
- Login card with subtle border and glitch distortion effects
- Clean minimalist form: email input, password input, sign in button
- Use your PXEL Labs logo in top corner of card
- Add glitchy text artifacts and dither overlays throughout
- Mysterious vibe with minimal technical metadata labels
- Animate the dithering patterns and scanlines subtly
- Include hover/focus states with glitch effects on inputs
- Keep it showcase-ready for Twitter - sleek and modern but with that signal glitch aesthetic
- No excessive text, just the essentials: "Sign In" heading, input labels, button
- Apply pixelated noise textures and harsh contrast dithering

Here is a reference implementation:

~~~html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Cipher Dither Login</title>
    <script src="https://cdn.tailwindcss.com"></script>
    <script src="https://code.iconify.design/iconify-icon/1.0.7/iconify-icon.min.js"></script>
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=JetBrains+Mono:wght@300;400;500;700&display=swap" rel="stylesheet">
    <style>
        * { margin: 0; padding: 0; box-sizing: border-box; }

        :root {
            --bg: #050505;
            --card: #0a0a0a;
            --border: rgba(255,255,255,0.08);
            --border-hover: rgba(255,255,255,0.15);
            --input-bg: rgba(255,255,255,0.03);
            --input-bg-focus: rgba(255,255,255,0.06);
            --text-primary: #ffffff;
            --text-secondary: rgba(255,255,255,0.4);
            --text-ghost: rgba(255,255,255,0.15);
        }

        /* Dither overlay */
        .dither-overlay {
            position: fixed;
            inset: 0;
            background-image: repeating-conic-gradient(rgba(255,255,255,0.04) 0% 25%, transparent 0% 50%) 50% / 2px 2px;
            pointer-events: none;
            z-index: 100;
            mix-blend-mode: overlay;
            animation: dither-shift 0.15s steps(2) infinite;
        }

        .dither-overlay-card {
            position: absolute;
            inset: 0;
            background-image: repeating-conic-gradient(rgba(255,255,255,0.06) 0% 25%, transparent 0% 50%) 50% / 2px 2px;
            pointer-events: none;
            z-index: 10;
            mix-blend-mode: overlay;
            animation: dither-shift 0.12s steps(3) infinite;
            border-radius: inherit;
        }

        @keyframes dither-shift {
            0% { background-position: 0 0; }
            33% { background-position: 1px 0; }
            66% { background-position: 0 1px; }
            100% { background-position: 1px 1px; }
        }

        /* Scanlines */
        .scanlines {
            position: fixed;
            inset: 0;
            background: repeating-linear-gradient(
                to bottom,
                transparent 0px,
                transparent 3px,
                rgba(0,0,0,0.15) 3px,
                rgba(0,0,0,0.15) 4px
            );
            pointer-events: none;
            z-index: 101;
        }

        /* CRT vignette */
        .crt-vignette {
            position: fixed;
            inset: 0;
            background: radial-gradient(ellipse at center, transparent 50%, rgba(0,0,0,0.6) 100%);
            pointer-events: none;
            z-index: 99;
        }

        /* Glitch container */
        @keyframes glitch-micro {
            0%, 95%, 100% { transform: translate(0); filter: none; }
            96% { transform: translate(-1px, 1px); filter: hue-rotate(10deg); }
            97% { transform: translate(1px, -1px) skewX(0.5deg); }
            98% { transform: translate(-1px, 0); }
            99% { transform: translate(1px, 1px) skewX(-0.3deg); }
        }

        @keyframes glitch-flicker {
            0%, 94%, 100% { opacity: 1; }
            95% { opacity: 0.85; }
            96% { opacity: 1; }
            97% { opacity: 0.9; }
            98% { opacity: 1; }
        }

        .glitch-container {
            animation: glitch-micro 6s infinite, glitch-flicker 4s infinite;
        }

        /* Glitch line artifact */
        @keyframes glitch-line {
            0%, 90%, 100% { transform: scaleX(0); opacity: 0; }
            92% { transform: scaleX(1); opacity: 1; }
            95% { transform: scaleX(0.6); opacity: 0.6; }
            97% { transform: scaleX(0); opacity: 0; }
        }

        .glitch-artifact-1 {
            position: absolute;
            left: 0; right: 0;
            top: 28%;
            height: 1px;
            background: rgba(255,255,255,0.3);
            transform-origin: left;
            animation: glitch-line 5s infinite 1s;
            z-index: 20;
        }

        .glitch-artifact-2 {
            position: absolute;
            left: 10%; right: 30%;
            top: 62%;
            height: 1px;
            background: rgba(255,255,255,0.15);
            transform-origin: right;
            animation: glitch-line 7s infinite 3s;
            z-index: 20;
        }

        .glitch-artifact-3 {
            position: absolute;
            left: 40%; right: 0;
            top: 85%;
            height: 2px;
            background: rgba(255,255,255,0.08);
            transform-origin: left;
            animation: glitch-line 4s infinite 0.5s;
            z-index: 20;
        }

        /* Scanner bar */
        @keyframes scan-down {
            0% { top: -2px; opacity: 0; }
            10% { opacity: 0.4; }
            90% { opacity: 0.4; }
            100% { top: 100%; opacity: 0; }
        }

        .scanner-bar {
            position: absolute;
            left: 0; right: 0;
            height: 1px;
            background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);
            animation: scan-down 8s linear infinite;
            z-index: 15;
        }

        /* Input focus glitch */
        @keyframes input-glitch {
            0%, 100% { transform: translate(0); }
            25% { transform: translate(1px, 0); }
            50% { transform: translate(-1px, 0); }
            75% { transform: translate(0.5px, 0); }
        }

        input:focus {
            animation: input-glitch 0.1s steps(2) 1;
        }

        /* Button hover */
        @keyframes btn-glitch {
            0%, 100% { transform: translate(0) skewX(0); }
            20% { transform: translate(-2px, 1px) skewX(-1deg); }
            40% { transform: translate(2px, -1px) skewX(1deg); }
            60% { transform: translate(-1px, 0) skewX(0.5deg); }
            80% { transform: translate(1px, 1px) skewX(-0.5deg); }
        }

        .sign-in-btn:hover {
            animation: btn-glitch 0.3s steps(3) 1;
            box-shadow: 0 0 20px rgba(255,255,255,0.1), inset 0 0 20px rgba(255,255,255,0.03);
        }

        /* Floating pixel noise */
        @keyframes pixel-float {
            0%, 100% { opacity: 0.15; transform: translateY(0); }
            50% { opacity: 0.4; transform: translateY(-2px); }
        }

        .pixel-dot {
            width: 2px;
            height: 2px;
            background: rgba(255,255,255,0.2);
            position: absolute;
            animation: pixel-float 3s ease-in-out infinite;
        }

        /* Subtle background grid */
        .bg-grid {
            background-image:
                linear-gradient(rgba(255,255,255,0.015) 1px, transparent 1px),
                linear-gradient(90deg, rgba(255,255,255,0.015) 1px, transparent 1px);
            background-size: 40px 40px;
        }

        /* Card inner glow */
        .card-glow {
            background: radial-gradient(ellipse at 50% 0%, rgba(255,255,255,0.04) 0%, transparent 60%);
        }

        /* Typing cursor blink */
        @keyframes cursor-blink {
            0%, 100% { opacity: 1; }
            50% { opacity: 0; }
        }

        .cursor-blink {
            animation: cursor-blink 1s step-end infinite;
        }
    </style>
</head>
<body>
    <div class="min-h-screen flex items-center justify-center bg-grid relative overflow-hidden" style="background-color: var(--bg); font-family: 'Space Grotesk', sans-serif;">

        <!-- Global overlays -->
        <div class="dither-overlay"></div>
        <div class="scanlines"></div>
        <div class="crt-vignette"></div>

        <!-- Ambient background glow -->
        <div class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[800px] rounded-full opacity-[0.03]" style="background: radial-gradient(circle, white 0%, transparent 70%);"></div>

        <!-- Scattered pixel noise -->
        <div class="pixel-dot" style="top: 15%; left: 20%; animation-delay: 0s;"></div>
        <div class="pixel-dot" style="top: 30%; left: 75%; animation-delay: 0.8s;"></div>
        <div class="pixel-dot" style="top: 70%; left: 15%; animation-delay: 1.5s;"></div>
        <div class="pixel-dot" style="top: 80%; left: 80%; animation-delay: 2.1s;"></div>
        <div class="pixel-dot" style="top: 45%; left: 90%; animation-delay: 0.4s;"></div>
        <div class="pixel-dot" style="top: 60%; left: 8%; animation-delay: 1.8s;"></div>

        <!-- Main Card -->
        <div class="relative z-10 glitch-container">
            <!-- Outer glow -->
            <div class="absolute -inset-8 rounded-[40px] opacity-30" style="background: radial-gradient(ellipse at center, rgba(255,255,255,0.03), transparent 70%);"></div>

            <!-- Card -->
            <div class="relative w-[460px] rounded-[24px] overflow-hidden" style="background: var(--card); border: 1px solid var(--border);">

                <!-- Card dither overlay -->
                <div class="dither-overlay-card"></div>

                <!-- Scanner bar -->
                <div class="scanner-bar"></div>

                <!-- Glitch artifacts -->
                <div class="glitch-artifact-1"></div>
                <div class="glitch-artifact-2"></div>
                <div class="glitch-artifact-3"></div>

                <!-- Inner glow -->
                <div class="absolute inset-0 card-glow pointer-events-none z-0"></div>

                <!-- Content -->
                <div class="relative z-10 p-10 pt-8">

                    <!-- Logo -->
                    <div class="mb-10">
                        <div class="w-12 h-12 rounded-xl overflow-hidden flex items-center justify-center" style="border: 1px solid var(--border); background: rgba(255,255,255,0.03);">
                            <img src="https://vgbujcuwptvheqijyjbe.supabase.co/storage/v1/object/public/hmac-uploads/uploads/6658be05-edae-4866-8fae-91a70473db00/1770856675050-34f67fe3/PXEL-Labs-Logo.png" alt="PXEL Labs" class="w-8 h-8 object-contain" style="filter: invert(1) brightness(0.9);">
                        </div>
                    </div>

                    <!-- Heading -->
                    <div class="mb-10">
                        <h1 class="text-[28px] font-bold tracking-tight" style="color: var(--text-primary);">Sign In</h1>
                        <p class="text-sm mt-1" style="color: var(--text-secondary); font-family: 'JetBrains Mono', monospace; font-size: 12px;">Welcome Back</p>
                    </div>

                    <!-- Form -->
                    <div class="space-y-6">

                        <!-- Email -->
                        <div>
                            <label class="block mb-2 uppercase tracking-[0.15em]" style="font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--text-secondary);">
                                Email <span style="color: rgba(255,80,80,0.7);">*</span>
                            </label>
                            <input
                                type="email"
                                placeholder="signal@pxel-labs.io"
                                class="w-full px-4 py-3.5 rounded-xl text-sm outline-none transition-all duration-200"
                                style="background: var(--input-bg); border: 1px solid var(--border); color: var(--text-primary); font-family: 'JetBrains Mono', monospace; font-size: 13px;"
                                onfocus="this.style.background='var(--input-bg-focus)'; this.style.borderColor='var(--border-hover)'; this.style.boxShadow='0 0 15px rgba(255,255,255,0.03)'"
                                onblur="this.style.background='var(--input-bg)'; this.style.borderColor='var(--border)'; this.style.boxShadow='none'"
                            >
                        </div>

                        <!-- Password -->
                        <div>
                            <label class="block mb-2 uppercase tracking-[0.15em]" style="font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--text-secondary);">
                                Password <span style="color: rgba(255,80,80,0.7);">*</span>
                            </label>
                            <div class="relative">
                                <input
                                    type="password"
                                    value="cipherdither2025"
                                    class="w-full px-4 py-3.5 rounded-xl text-sm outline-none transition-all duration-200"
                                    style="background: var(--input-bg); border: 1px solid var(--border); color: var(--text-primary); font-family: 'JetBrains Mono', monospace; font-size: 13px;"
                                    onfocus="this.style.background='var(--input-bg-focus)'; this.style.borderColor='var(--border-hover)'; this.style.boxShadow='0 0 15px rgba(255,255,255,0.03)'"
                                    onblur="this.style.background='var(--input-bg)'; this.style.borderColor='var(--border)'; this.style.boxShadow='none'"
                                >
                                <div class="absolute right-4 top-1/2 -translate-y-1/2">
                                    <iconify-icon icon="lucide:eye-off" style="color: var(--text-ghost); font-size: 16px; cursor: pointer;"></iconify-icon>
                                </div>
                            </div>
                        </div>
                    </div>

                    <!-- Button -->
                    <div class="mt-10">
                        <button class="sign-in-btn w-full py-3.5 rounded-xl font-semibold text-sm tracking-wide transition-all duration-200 cursor-pointer" style="background: var(--text-primary); color: var(--bg); border: none;">
                            Sign In
                        </button>
                    </div>

                    <!-- Footer links -->
                    <div class="mt-6 flex items-center justify-between">
                        <a id="trouble-link" href="#" class="text-xs transition-colors duration-200 hover:opacity-70" style="color: var(--text-secondary); font-family: 'JetBrains Mono', monospace; font-size: 11px;">Trouble Signing In?</a>
                        <a id="reset-link" href="#" class="text-xs flex items-center gap-1 transition-colors duration-200 hover:opacity-70" style="color: var(--text-primary); font-family: 'JetBrains Mono', monospace; font-size: 11px; text-decoration: underline; text-underline-offset: 3px;">
                            Reset Password <span>→</span>
                        </a>
                    </div>

                    <!-- Technical metadata -->
                    <div class="mt-10 pt-6" style="border-top: 1px solid var(--border);">
                        <div class="flex items-center justify-between">
                            <span style="font-family: 'JetBrains Mono', monospace; font-size: 9px; color: var(--text-ghost); letter-spacing: 0.1em;">[AUTH_PROTOCOL_v2.1]</span>
                            <div class="flex items-center gap-2">
                                <span class="w-1 h-1 rounded-full" style="background: rgba(255,255,255,0.3); animation: pixel-float 2s ease-in-out infinite;"></span>
                                <span style="font-family: 'JetBrains Mono', monospace; font-size: 9px; color: var(--text-ghost); letter-spacing: 0.1em;">CIPHER_DITHER</span>
                            </div>
                        </div>
                    </div>

                </div>
            </div>

            <!-- Copyright -->
            <div class="text-center mt-8">
                <span style="font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--text-ghost); letter-spacing: 0.1em;">© PXEL LABS 2025. All Rights Reserved.</span>
            </div>
        </div>

        <!-- Corner markers -->
        <div class="fixed top-6 left-6 flex flex-col gap-1 opacity-20 z-50">
            <div class="w-8 h-px bg-white"></div>
            <div class="w-4 h-px bg-white"></div>
        </div>
        <div class="fixed top-6 right-6 flex flex-col items-end gap-1 opacity-20 z-50">
            <div class="w-8 h-px bg-white"></div>
            <div class="w-4 h-px bg-white"></div>
        </div>
        <div class="fixed bottom-6 left-6 flex flex-col gap-1 opacity-20 z-50">
            <div class="w-4 h-px bg-white"></div>
            <div class="w-8 h-px bg-white"></div>
        </div>
        <div class="fixed bottom-6 right-6 flex flex-col items-end gap-1 opacity-20 z-50">
            <div class="w-4 h-px bg-white"></div>
            <div class="w-8 h-px bg-white"></div>
        </div>

        <!-- Edge metadata -->
        <div class="fixed bottom-6 left-1/2 -translate-x-1/2 z-50 flex items-center gap-6 opacity-20">
            <span style="font-family: 'JetBrains Mono', monospace; font-size: 9px; color: white; letter-spacing: 0.15em;">SIGNAL_INTEGRITY: 98.7%</span>
            <span style="font-family: 'JetBrains Mono', monospace; font-size: 9px; color: white;">•</span>
            <span style="font-family: 'JetBrains Mono', monospace; font-size: 9px; color: white; letter-spacing: 0.15em;">DITHER_DEPTH: 8BIT</span>
        </div>

    </div>
</body>
</html>
~~~
All Prompts