CSS Gradient Button Tasarımı Rehberi

Gradient butonlar modern web arayüzlerinde sıkça kullanılır. Düz renkli butonlara göre daha canlı ve dikkat çekici bir görünüm sunarlar. Bu rehberde gradient buton oluşturma, hover efektleri, geçiş animasyonları, 3D efektler ve erişilebilirlik konularını ele alıyoruz.

Temel Gradient Buton

En basit gradient buton, background özelliğine linear-gradient atanarak elde edilir. Buton metni için yeterli kontrast sağlamak önemlidir; gradient koyu tonlardan oluşuyorsa beyaz metin, açık tonlardan oluşuyorsa koyu metin kullanın.

Temel Gradient Buton
.btn-gradient {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
  padding: 0.75rem 1.5rem;
  border: none;
  border-radius: 8px;
  font-size: 1rem;
  cursor: pointer;
}

Hover Efektleri

Gradient doğrudan animasyon edilemediği için hover'da farklı efektler kullanılır: gradient açısını değiştirme, renk yoğunluğunu artırma (filter: brightness), veya pseudo-element ile üzerine başka bir gradient katmanı ekleyip opacity ile geçiş yapma.

Hover ile Parlaklık Artışı
.btn-gradient-hover {
  background: linear-gradient(135deg, #667eea, #764ba2);
  color: white;
  padding: 0.75rem 1.5rem;
  border: none;
  border-radius: 8px;
  transition: filter 0.3s ease, transform 0.2s ease;
}
.btn-gradient-hover:hover {
  filter: brightness(1.1);
  transform: translateY(-2px);
}

Pseudo-element ile Hover Geçişi

İki farklı gradient arasında yumuşak geçiş için ::before veya ::after kullanılabilir. Hover'da pseudo-elementin opacity değeri 0'dan 1'e geçer.

Opacity ile Hover Gradient Geçişi
.btn-gradient-layers {
  position: relative;
  background: linear-gradient(135deg, #667eea, #764ba2);
  color: white;
  padding: 0.75rem 1.5rem;
  border: none;
  border-radius: 8px;
  overflow: hidden;
}
.btn-gradient-layers::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #f093fb, #f5576c);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.btn-gradient-layers:hover::before {
  opacity: 1;
}
.btn-gradient-layers span {
  position: relative;
  z-index: 1;
}

Transition ve Animasyon

Buton etkileşimlerinde transition kullanarak kullanıcı deneyimini iyileştirin. filter, transform ve box-shadow gibi özellikler performanslı şekilde animasyon edilebilir. will-change gereksiz yere kullanılmamalı; sadece gerçekten performans sorunu varsa eklenmelidir.

Yumuşak Geçiş ve Gölge
.btn-smooth {
  background: linear-gradient(135deg, #667eea, #764ba2);
  color: white;
  padding: 0.75rem 1.5rem;
  border: none;
  border-radius: 8px;
  box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4);
  transition: box-shadow 0.3s ease, transform 0.2s ease;
}
.btn-smooth:hover {
  box-shadow: 0 6px 20px rgba(102, 126, 234, 0.5);
  transform: translateY(-2px);
}
.btn-smooth:active {
  transform: translateY(0);
}

3D Efektler

Gradient butona 3D derinlik hissi vermek için box-shadow katmanları veya sahte gölge (alt-border) kullanılabilir. "Basılı" görünüm için :active durumunda transform: translateY veya box-shadow azaltılır.

3D Gradient Buton
.btn-3d {
  background: linear-gradient(180deg, #667eea 0%, #5a67d8 50%, #4c51bf 100%);
  color: white;
  padding: 0.75rem 1.5rem;
  border: none;
  border-radius: 8px;
  box-shadow: 0 4px 0 #434190, 0 6px 10px rgba(0,0,0,0.2);
  transition: box-shadow 0.2s, transform 0.2s;
}
.btn-3d:hover {
  box-shadow: 0 6px 0 #434190, 0 8px 15px rgba(0,0,0,0.25);
  transform: translateY(-2px);
}
.btn-3d:active {
  box-shadow: 0 2px 0 #434190, 0 2px 5px rgba(0,0,0,0.2);
  transform: translateY(2px);
}

Erişilebilirlik

Gradient butonlarda erişilebilirlik kritik öneme sahiptir. Metin ile arka plan arasında en az 4.5:1 kontrast oranı (AA) veya 7:1 (AAA) hedeflenmelidir. Focus durumunda görünür bir outline veya ring kullanın; outline: none kullanıyorsanız mutlaka alternatif focus stili (örn. box-shadow) ekleyin.

prefers-reduced-motion: reduce medya sorgusu ile animasyonları azaltın veya kapatın. Touch hedefleri en az 44x44 piksel olmalıdır.

Erişilebilir Focus Stili
.btn-accessible:focus-visible {
  outline: 2px solid white;
  outline-offset: 2px;
}

Özet

CSS gradient buton tasarımında temel gradient, hover efektleri, transition ve 3D efektler bir arada kullanılabilir. Erişilebilirlik için kontrast ve focus stillerine dikkat edin. Gradient Oluşturucu ile renk paletlerinizi oluşturup butonlarda test edebilirsiniz. İlgili rehberler: Gradient Border, Gradient Hero Section ve CSS Gradient Overlay.

İlgili Rehberler