Polished Button Collection
Polished Button Collection

Polished Button Collection in HTML & CSS | Shiny Gradient Buttons with Hover Effects

Create a stunning Polished Button Collection using pure HTML & CSS
In this tutorial, you’ll learn how to design shiny gradient buttons with smooth hover animations and light sweep effects—perfect for modern websites, landing pages, and UI projects.

🚀 What you’ll learn in this video:

  • Creating polished UI buttons using HTML & CSS
  • Gradient button design techniques
  • Shine / light sweep animation using CSS
  • Smooth hover effects for modern UI
  • Responsive button layout with CSS Grid

💡 No JavaScript required — clean, lightweight, and beginner-friendly!

👉 Source code included – Feel free to customize colors and animations.

👍 If you enjoyed the video, don’t forget to Like, Share & Subscribe for more web design tutorials!

HTML:

Create a HTML file and add the following code:

<div class="showcase">

  <div class="button-collection">
    <div class="button-wrapper">
      <span class="button-label">Ocean Waves</span>
      <button class="shine-button button-ocean">Get Started</button>
    </div>

    <div class="button-wrapper">
      <span class="button-label">Emerald Forest</span>
      <button class="shine-button button-emerald">Explore More</button>
    </div>

    <div class="button-wrapper">
      <span class="button-label">Sunset Glow</span>
      <button class="shine-button button-sunset">Learn More</button>
    </div>

    <div class="button-wrapper">
      <span class="button-label">Deep Ocean</span>
      <button class="shine-button button-deep">Dive In</button>
    </div>

    <div class="button-wrapper">
      <span class="button-label">Golden Hour</span>
      <button class="shine-button button-gold">Discover</button>
    </div>

    <div class="button-wrapper">
      <span class="button-label">Chrome Polish</span>
      <button class="shine-button button-chrome">Premium</button>
    </div>

    <div class="button-wrapper">
      <span class="button-label">Royal Purple</span>
      <button class="shine-button button-purple">Upgrade</button>
    </div>

    <div class="button-wrapper">
      <span class="button-label">Fresh Mint</span>
      <button class="shine-button button-mint">Refresh</button>
    </div>

    <div class="button-wrapper">
      <span class="button-label">Electric Lime</span>
      <button class="shine-button button-electric">Energise</button>
    </div>

    <div class="button-wrapper">
      <span class="button-label">Soft Lavender</span>
      <button class="shine-button button-lavender">Relax</button>
    </div>

    <div class="button-wrapper">
      <span class="button-label">Fire Ember</span>
      <button class="shine-button button-fire">Ignite</button>
    </div>

    <div class="button-wrapper">
      <span class="button-label">Forest Depths</span>
      <button class="shine-button button-forest">Explore</button>
    </div>
  </div>
</div>

CSS:

Create a CSS file and add the following code:

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  min-height: 100vh;
  background: #f8fafc;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Inter', sans-serif;
  padding: 2rem;
}

.showcase {
  max-width: 900px;
  width: 100%;
  text-align: center;
}

.button-collection {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 2.5rem;
  margin-bottom: 3rem;
}

.button-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

.button-label {
  color: #64748b;
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.shine-button {
  position: relative;
  padding: 1.2rem 2.5rem;
  font-size: 1.1rem;
  font-weight: 600;
  border: none;
  border-radius: 12px;
  cursor: pointer;
  overflow: hidden;
  transition: all 0.3s ease;
  letter-spacing: 0.5px;
  min-width: 200px;
}

.shine-button::before {
  content: '';
  position: absolute;
  height: 250%;
  width: 40px;
  top: 0;
  left: -60px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
  transform: rotate(45deg) translateY(-35%);
  animation: shine 3s ease infinite;
}

@keyframes shine {
  0% {
    left: -80px;
  }
  40% {
    left: calc(100% + 20px);
  }
  100% {
    left: calc(100% + 20px);
  }
}

.button-ocean {
  background: linear-gradient(135deg, #0ea5e9 0%, #2563eb 100%);
  color: #fff;
  box-shadow: 
    0 10px 30px rgba(102, 126, 234, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.button-ocean:hover {
  transform: translateY(-3px);
  box-shadow: 
    0 15px 40px rgba(102, 126, 234, 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.button-emerald {
  background: linear-gradient(135deg, #10b981 0%, #059669 100%);
  color: #fff;
  box-shadow: 
    0 10px 30px rgba(17, 153, 142, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.button-emerald:hover {
  transform: translateY(-3px);
  box-shadow: 
    0 15px 40px rgba(17, 153, 142, 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.button-sunset {
  background: linear-gradient(135deg, #fb7185 0%, #f43f5e 100%);
  color: #fff;
  box-shadow: 
    0 10px 30px rgba(240, 147, 251, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.button-sunset:hover {
  transform: translateY(-3px);
  box-shadow: 
    0 15px 40px rgba(240, 147, 251, 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.button-deep {
  background: linear-gradient(135deg, #020617 0%, #1e293b 100%);
  color: #fff;
  box-shadow: 
    0 10px 30px rgba(30, 58, 138, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.button-deep:hover {
  transform: translateY(-3px);
  box-shadow: 
    0 15px 40px rgba(30, 58, 138, 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.button-gold {
  background: linear-gradient(135deg, #facc15 0%, #ca8a04 100%);
  color: #fff;
  box-shadow: 
    0 10px 30px rgba(247, 151, 30, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.button-gold:hover {
  transform: translateY(-3px);
  box-shadow: 
    0 15px 40px rgba(247, 151, 30, 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.4);
}

.button-chrome {
  background: linear-gradient(135deg, #e5e7eb 0%, #9ca3af 100%);
  color: #fff;
  box-shadow: 
    0 10px 30px rgba(45, 62, 80, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.2),
    inset 0 -1px 0 rgba(0, 0, 0, 0.1);
}

.button-chrome:hover {
  background: linear-gradient(135deg, #d5dbdb 0%, #34495e 100%);
  transform: translateY(-3px);
  box-shadow: 
    0 15px 40px rgba(45, 62, 80, 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.3),
    inset 0 -1px 0 rgba(0, 0, 0, 0.1);
}

.button-purple {
  background: linear-gradient(135deg, #9333ea 0%, #6b21a8 100%);
  color: #fff;
  box-shadow: 
    0 10px 30px rgba(139, 92, 246, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.button-purple:hover {
  transform: translateY(-3px);
  box-shadow: 
    0 15px 40px rgba(139, 92, 246, 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.button-mint {
  background: linear-gradient(135deg, #5eead4 0%, #14b8a6 100%);
  color: #fff;
  box-shadow: 
    0 10px 30px rgba(45, 212, 191, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.button-mint:hover {
  transform: translateY(-3px);
  box-shadow: 
    0 15px 40px rgba(45, 212, 191, 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.button-electric {
  background: linear-gradient(135deg, #84cc16 0%, #22c55e 100%);
  color: #fff;
  box-shadow: 
    0 10px 30px rgba(50, 255, 50, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.button-electric:hover {
  transform: translateY(-3px);
  box-shadow: 
    0 15px 40px rgba(50, 255, 50, 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.button-lavender {
  background: linear-gradient(135deg, #c4b5fd 0%, #8b5cf6 100%);
  color: #fff;
  box-shadow: 
    0 10px 30px rgba(192, 132, 252, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.button-lavender:hover {
  transform: translateY(-3px);
  box-shadow: 
    0 15px 40px rgba(192, 132, 252, 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.4);
}

.button-fire {
  background: linear-gradient(135deg, #dc2626 0%, #f97316 100%);
  color: #fff;
  box-shadow: 
    0 10px 30px rgba(255, 69, 0, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.button-fire:hover {
  transform: translateY(-3px);
  box-shadow: 
    0 15px 40px rgba(255, 69, 0, 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.button-forest {
  background: linear-gradient(135deg, #14532d 0%, #22c55e 100%);
  color: #fff;
  box-shadow: 
    0 10px 30px rgba(19, 78, 94, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.button-forest:hover {
  transform: translateY(-3px);
  box-shadow: 
    0 15px 40px rgba(19, 78, 94, 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.shine-button:active {
  transform: translateY(-1px);
  transition: transform 0.1s ease;
}

.shine-button:hover {
  transform: translateY(-3px);
  filter: brightness(1.08);
}

@media (max-width: 768px) {
  .button-collection {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .main-title {
    font-size: 2.5rem;
    letter-spacing: 1px;
  }

  .description {
    font-size: 1.1rem;
  }
}

html #css #webdesign #frontend #uicomponents #cssbuttons #gradientbuttons #shinybuttons #hovereffects #uidesign #coding #webdevelopment

Happy coding!