Skip to content

Big Play Button

A copy-paste video player ui component in pure HTML & CSS. Zero dependencies, framework-agnostic, MIT-licensed.

Video Player UIHTMLCSSany framework

Copy into your project

HTML
<!-- Big Play Button — center overlay with pulsing rings -->
<div class="nuda-bigp">
  <video class="nuda-bigp__video" src="/your.mp4"></video>
  <button class="nuda-bigp__btn" type="button" aria-label="Play">
    <span class="nuda-bigp__pulse"></span>
    <span class="nuda-bigp__pulse nuda-bigp__pulse--b"></span>
    <svg class="nuda-bigp__icon" viewBox="0 0 24 24" fill="currentColor">
      <path d="M8 5 L19 12 L8 19 Z" />
    </svg>
  </button>
</div>
CSS
/* Big Play Button
   Centered play CTA over a video; pulsing rings draw attention.
   Customize: --bigp-accent */

.nuda-bigp {
  --bigp-accent: #e4ff54;
  position: relative;
  width: 100%;
  max-width: 480px;
  aspect-ratio: 16 / 9;
  background: linear-gradient(135deg, #1a1a1f, #0e0e10);
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.nuda-bigp__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.nuda-bigp__btn {
  position: relative;
  width: 64px;
  height: 64px;
  background: rgba(228, 255, 84, 0.15);
  border: 2px solid var(--bigp-accent);
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--bigp-accent);
  backdrop-filter: blur(8px);
  transition: transform 0.25s, background 0.25s;
}

.nuda-bigp__btn:hover {
  transform: scale(1.1);
  background: rgba(228, 255, 84, 0.25);
}

.nuda-bigp__pulse {
  position: absolute;
  inset: 0;
  border: 2px solid var(--bigp-accent);
  border-radius: 50%;
  animation: nuda-bigp-pulse 2s ease-out infinite;
  opacity: 0;
}

.nuda-bigp__pulse--b { animation-delay: 1s; }

.nuda-bigp__icon {
  width: 22px;
  height: 22px;
  margin-left: 3px;
  filter: drop-shadow(0 0 4px rgba(228, 255, 84, 0.4));
}

@keyframes nuda-bigp-pulse {
  0%   { transform: scale(1);   opacity: 0.6; }
  100% { transform: scale(1.8); opacity: 0;   }
}

@media (prefers-reduced-motion: reduce) {
  .nuda-bigp__pulse { animation: none; }
}

How to use Big Play Button

Paste the HTML where you need it and the CSS into a global stylesheet (or a <style> tag). Every class is prefixed nuda- so it never collides with Tailwind or your own styles. Tweak the CSS custom properties to match your design system.

Works in React, Vue, Svelte, Astro, Next.js, Nuxt, Laravel Blade, Django, Rails — or a single .html file. No npm install, no build step.

More video player ui components

← Browse all NudaUI components