Pratinjau

Tombol yang latar belakangnya transparan dan hanya bagian tepinya saja yang bersinar dengan gradasi. Implementasi CSS murni yang tidak memerlukan JavaScript.

Kasus penggunaan dan fitur

Poin desain dan UX

  1. Cara kerja mask-composite: exclude**: Dengan mengatur padding: 2px pada elemen semu ::before dan menutupi kotak konten di area tersebut secara terbalik, hanya batasnya yang dapat ditampilkan.

  2. Mengarahkan mata dengan animasi: Gradasi berputar mengalir di tepian untuk secara alami menarik perhatian ke tombol-tombol penting.

  3. Meningkatkan skala saat mengarahkan kursor: Ekspresikan antisipasi klik dengan sedikit perubahan dalam ukuran transform: scale(1.05).

Cara menyesuaikan

Anda dapat membuat variasi hanya dengan mengubah warna linear-gradient:


/* サンセット */

.gb-btn::before {

  background: linear-gradient(45deg, #f97316, #ef4444, #f59e0b);

}



/* オーSian */

.gb-btn::before {

  background: linear-gradient(45deg, #06b6d4, #3b82f6, #8b5cf6);

}

Untuk mengubah lebar batas, ubah nilai padding:


/* 幅を広く (3px) */

.gb-btn::before { padding: 3px; }

.gb-btn::after { inset: 3px; }

Kode implementasi

<button class="gb-btn">Primary</button>

<button class="gb-btn gb-btn-success">Success</button>

<button class="gb-btn gb-btn-warning">Warning</button>



<style>
.gb-btn {

position: relative;

background: transparent;

border: none;

padding: 14px 36px;

font-size: 1rem;

font-weight: 600;

letter-spacing: 0.08em;

cursor: pointer;

border-radius: 8px;

color: white;

z-index: 1;

transition: transform 0.2s ease, box-shadow 0.3s ease;

}

.gb-btn::before {

content: '';

position: absolute;

inset: 0;

padding: 2px;

border-radius: 8px;

background: linear-gradient(45deg, #f093fb, #f5576c, #4facfe, #00f2fe);

background-size: 400% 400%;

-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);

-webkit-mask-composite: xor;

mask-composite: exclude;

animation: gb-rotate 3s ease infinite;

}

.gb-btn::after {

content: '';

position: absolute;

inset: 2px;

border-radius: 6px;

background: rgba(17,24,39,0.9);

z-index: -1;

}

.gb-btn:hover { transform: scale(1.05); }

.gb-btn-success::before { background: linear-gradient(45deg, #43e97b, #38f9d7); }

.gb-btn-warning::before { background: linear-gradient(45deg, #f7971e, #ffd200); }

@keyframes gb-rotate {

0%, 100% { background-position: 0% 50%; }

50% { background-position: 100% 50%; }

}
</style>

Status kompatibilitas peramban

| Peramban | Status kompatibilitas |

|--------|-------|

| Chrome 80+ | ✅ Sepenuhnya kompatibel |

| Firefox 99+ | ✅ Sepenuhnya kompatibel |

| Safari 15.4+ | ✅ Kompatibel |

| Tepi 80+ | ✅ Sepenuhnya kompatibel |

Catatan: Safari versi lama memerlukan -webkit-mask-composite: xor. Sebagai cadangan, border: 2px solid dapat digunakan dalam kasus yang dapat diterima.