VibeCoderzVibeCoderz
Telegram
All Prompts
Neon Border Animated Button preview
buttontailwindcssanimatedhovergradientneoninteractivecta

Neon Border Animated Button

Анимированная кнопка с неоновой границей и эффектом при наведении. UI компонент CTA на Tailwind CSS для современных сайтов.

Prompt

<div class="inline-block group text-sm relative m-4">
  <button class="neon-border group inline-flex min-w-[120px] cursor-pointer transition-all duration-[1000ms] ease-[cubic-bezier(0.15,0.83,0.66,1)] hover:-translate-y-[3px] hover:scale-[1.1] border-gradient overflow-hidden text-sm font-medium text-white/70 tracking-tight bg-blue-500/10 pt-[12px] pr-[17px] pb-[12px] pl-[17px] relative backdrop-blur-xl items-center justify-center">
            <span class="line block"></span>
            <span class="line block"></span>
            <span class="line block"></span>
            <span class="line block"></span>
            <span class="button-text z-10 text-sm font-medium mr-2 relative transition-colors duration-200">Neon Button</span>
            <span aria-hidden="true" class="-translate-x-1/2 transition-all duration-[1000ms] ease-[cubic-bezier(0.15,0.83,0.66,1)] group-hover:opacity-80 text-xs opacity-20 w-[70%] h-[1px] absolute bottom-0 left-1/2" style="background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,1) 50%,rgba(255,255,255,0) 100%);"></span>
        </button>
  <span class="bottom-glow pointer-events-none absolute -bottom-3 left-1/2 z-0 h-6 w-44 -translate-x-1/2 opacity-0 transition-opacity duration-300 ease-out group-hover:opacity-100" aria-hidden="true"></span>
  <style class="">
    .border-gradient {
      position: relative;
    }

    .border-gradient::before {
      content: "";
      position: absolute;
      inset: 0;
      border-radius: inherit;
      padding: 1px;
      -webkit-mask: linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
      -webkit-mask-composite: xor;
      mask-composite: exclude;
      background: linear-gradient(225deg,
          rgba(33, 150, 243, 0.0) 0%,
          rgba(33, 150, 243, 0.4) 50%,
          rgba(33, 150, 243, 0.0) 100%);
      pointer-events: none;
    }

    .neon-border span.line:nth-child(1) {
      position: absolute;
      top: 0;
      left: -100%;
      width: 100%;
      height: 2px;
      background: linear-gradient(90deg, transparent, #2196f3);
    }

    .neon-border:hover span.line:nth-child(1) {
      left: 100%;
      transition: left 1s;
    }

    .neon-border span.line:nth-child(2) {
      position: absolute;
      top: -100%;
      right: 0;
      width: 2px;
      height: 100%;
      background: linear-gradient(180deg, transparent, #2196f3);
    }

    .neon-border:hover span.line:nth-child(2) {
      top: 100%;
      transition: top 1s 0.25s;
    }

    .neon-border span.line:nth-child(3) {
      position: absolute;
      bottom: 0;
      right: -100%;
      width: 100%;
      height: 2px;
      background: linear-gradient(270deg, transparent, #2196f3);
    }

    .neon-border:hover span.line:nth-child(3) {
      right: 100%;
      transition: right 1s 0.5s;
    }

    .neon-border span.line:nth-child(4) {
      position: absolute;
      bottom: -100%;
      left: 0;
      width: 2px;
      height: 100%;
      background: linear-gradient(360deg, transparent, #2196f3);
    }

    .neon-border:hover span.line:nth-child(4) {
      bottom: 100%;
      transition: bottom 1s 0.75s;
    }

    .neon-border:hover {
      background: #2196f3 !important;
      box-shadow: 0 0 10px #2196f3, 0 0 40px #2196f3, 0 0 80px #2196f3;
      transition: all 0.2s 1s;
    }

    .neon-border:hover .button-text {
      color: #ffffff !important;
    }

    .neon-border:hover .button-icon {
      color: #ffffff !important;
    }

    .bottom-glow {
      background: radial-gradient(60% 100% at 50% 50%, rgba(33, 150, 243, 0.55), rgba(33, 150, 243, 0.28) 35%, transparent 70%);
      filter: blur(10px) saturate(120%);
    }
  </style>
</div>
All Prompts