Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

Gak kerasa, navigasi antar halaman di website sekarang bisa sehalus aplikasi mobile. View Transitions di CSS hadir buat解决这个问题. Yuk, belajar cara pakainya biar website kamu terasa lebih premium dan profesional!
View transitions css multi-page lagi sering dicari karena pemain pengin dapet pengalaman terbaik tapi tetap hemat dan aman. Di artikel ini kita bahas poin penting + rangkuman dari sumber terbaru, terus lanjut ke langkah yang bisa langsung kamu praktekkan.

Dulu, kalau kamu mau bikin animasi transisi antar halaman website, kamu harus rely on JavaScript yang kompleks, pake library pihak ketiga, atau bahkan harus build single-page application (SPA) cuma buat dapetin efek halus itu. Ribet, kan? Nah, CSS View Transitions ini hadir buat simplify semua itu.
Singkatnya, View Transitions adalah fitur CSS yang bikin kamu bisa bikin animasi halus pas navigasi antar halaman terjadi, cukup pake satu baris kode. Gak perlu JavaScript berat, gak perlu framework khusus. Browsers modern sekarang udah support fitur ini, jadi tinggal pakai aja.
Fungsi ini pertama kali diperkenalkan sebagai bagian dari View Transition API, dan sekarang udah jadi standar yang didukung di Chrome, Edge, Safari, dan Firefox. Jadi hampir semua browser major udah compatible.
💡 View Transitions bukan cuma bikin website keliatan bagus. Studi dari MDN menunjukkan bahwa navigasi yang smooth bisa reduce cognitive load user dan bikin mereka betah lebih lama di website kamu.
Buat kamu yang belum familiar, MDN Web Docs sendiri baru aja launching front-end baru dan salah satu improvement yang mereka highlight adalah penggunaan View Transitions buat navigasi yang lebih smooth. Lo bisa baca lebih lanjut di artikel launching MDN front-end baru.
Sebelum mulai coding, pastikan kamu udah memenuhi beberapa prerequisite berikut:
Cara cek versi browser: ketik chrome://settings/help di address bar Chrome, atau about:support di Firefox.
Firefox butuh enable manual. Ketik about:config di address bar, cari view-transition.enabled, dan set ke true.
View Transitions di CSS butuh proper navigation handling, jadi ideally kamu perlu test di environment yang support navigasi beneran. Pakai local server kayak:
python -m http.server 8000npx serveCatatan: View Transitions gak akan work dengan baik kalau kamu cuma open HTML file langsung dari file system (file:// protocol).
Oke, langsung aja ke inti dari tutorial ini. View Transitions itu super simpel implementasinya. Berikut syntax dasar yang perlu kamu tau:
@view-transition {
navigation: auto;
}
::view-transition-old(root) {
animation: fade-out 0.3s ease-out;
}
::view-transition-new(root) {
animation: fade-in 0.3s ease-in;
}Satu baris @view-transition { navigation: auto; } itu udah cukup buat enable smooth transition di seluruh navigasi website kamu. Gampang banget, kan?
⚠️ Jangan confused sama
@view-transitiondenganview-transition-name. Yang pertama itu global config, yang kedua itu buat customize specific element transition.
Sekarang kita masuk ke tutorial praktis. Kita bakal bikin contoh website sederhana dengan View Transitions enabled.
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<title>Website Sederhana dengan View Transitions</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: system-ui, sans-serif;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
color: white;
}
@view-transition {
navigation: auto;
}
::view-transition-old(root) {
animation: slide-out 0.4s ease-out;
}
::view-transition-new(root) {
animation: slide-in 0.4s ease-in;
}
@keyframes slide-out {
to {
opacity: 0;
transform: translateX(-30px);
}
}
@keyframes slide-in {
from {
opacity: 0;
transform: translateX(30px);
}
}
nav {
background: rgba(0,0,0,0.2);
padding: 1rem 2rem;
backdrop-filter: blur(10px);
}
nav a {
color: white;
text-decoration: none;
margin-right: 1.5rem;
font-weight: 500;
}
main {
padding: 3rem 2rem;
text-align: center;
}
h1 {
font-size: 2.5rem;
margin-bottom: 1rem;
}
</style>
</head>
<body>
<nav>
<a href="index.html">Home</a>
<a href="about.html">Tentang</a>
<a href="contact.html">Kontak</a>
</nav>
<main>
<h1>Halaman Home</h1>
<p>Klik link navigasi untuk lihat View Transitions effect!</p>
</main>
</body>
</html>Struktur sama dengan index.html, tinggal ubah konten di dalam <main>:
<main>
<h1>Halaman Tentang</h1>
<p>View Transitions bikin navigasi jadi lebih smooth dan professional.</p>
</main><main>
<h1>Halaman Kontak</h1>
<p>Hubungi kami untuk pertanyaan lebih lanjut.</p>
</main>Buka terminal, jalankan local server, terus buka website di browser. Klik link navigasi dan viola — kamu bakal lihat animasi slide halus antar halaman!
💡 Tips: Kalau animasinya gak keliatan, cek console browser buat error messages. Pastikan kamu buka via http:// bukan file://
Gak suka sama animasi slide default? Tenang, kamu bisa kustomisasi View Transitions sesuai kebutuhan dan aesthetic website kamu.
::view-transition-old(root) {
animation: 300ms ease-out fade-out;
}
::view-transition-new(root) {
animation: 300ms ease-out fade-in;
}
@keyframes fade-out {
to { opacity: 0; }
}
@keyframes fade-in {
from { opacity: 0; }
}::view-transition-old(root) {
animation: 400ms cubic-bezier(0.4, 0, 1, 1) both fade-scale-out;
}
::view-transition-new(root) {
animation: 400ms cubic-bezier(0, 0, 0.2, 1) 100ms both fade-scale-in;
}
@keyframes fade-scale-out {
to {
opacity: 0;
transform: scale(0.95);
}
}
@keyframes fade-scale-in {
from {
opacity: 0;
transform: scale(1.05);
}
}::view-transition-old(root) {
animation: 500ms ease-in flip-out;
}
::view-transition-new(root) {
animation: 500ms ease-out flip-in;
}
@keyframes flip-out {
to {
transform: perspective(1200px) rotateY(-90deg);
opacity: 0;
}
}
@keyframes flip-in {
from {
transform: perspective(1200px) rotateY(90deg);
opacity: 0;
}
}::view-transition-old(root) {
animation: 350ms ease-in slide-out;
}
::view-transition-new(root) {
animation: 350ms ease-out slide-in;
}
@keyframes slide-out {
to { transform: translateX(-100%); }
}
@keyframes slide-in {
from { transform: translateX(100%); }
}Kamu bisa mix-and-match animation properties sesuai kebutuhan. Experiment aja!
Kadang kamu gak mau animasi berlaku buat seluruh halaman, tapi cuma buat element tertentu yang berubah. Contohnya kayak image gallery, card components, atau hero section. View Transitions bisa handle itu juga!
Pakai view-transition-name buat nandain element yang mau di-animate:
.hero-image {
view-transition-name: hero;
}
.product-card {
view-transition-name: product-1;
}
::view-transition-old(hero),
::view-transition-new(hero) {
height: 100%;
object-fit: cover;
}
::view-transition-old(product-1),
::view-transition-new(product-1) {
animation-duration: 200ms;
border-radius: 12px;
}Misalnya kamu punya gallery dengan banyak product cards. Pas user klik salah satu card dan navigasi ke detail page, kamu bisa bikin animasi yang “morph” dari card ke hero image di detail page:
.product-image {
view-transition-name: product-hero;
}
.detail-hero {
view-transition-name: product-hero;
}Dengan begitu, browser akan otomatis bikin morphing animation dari card image ke hero image. Smooth banget!
🔑 Kunci sukses view-transition-name yang work: element di kedua halaman HARUS punya nama yang SAMA PERSIS. Browser bakal detect dan animate element tersebut secara khusus.
Animasi yang smooth itu penting, tapi gak kalau bikin website jadi laggy. Makanya, kombinasi View Transitions dengan hardware acceleration itu esensial buat dapetin best of both worlds.
Modern GPU processing bikin animasi CSS jadi jauh lebih efisien. Kalau kamu tertarik aprofund knowledge tentang hardware gaming yang support hardware acceleration, bisa baca panduan memilih GPU dan Prosesor Gaming 2026.
.animated-element {
will-change: transform, opacity;
contain: layout;
}
::view-transition-old(root),
::view-transition-new(root) {
animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}Dengan optimize ini, View Transitions bakal jalan 60fps bahkan di device dengan specs menengah. Perfect buat user experience!
Walau View Transitions itu relatively straightforward, ada beberapa gotcha yang sering bikin developer bingung. Berikut problem umum dan solusinya:
Kemungkinan penyebab:
Solusi:
// Check support sebelum apply
if (document.startViewTransition) {
// Use View Transitions
} else {
// Fallback ke navigasi biasa
link.click();
}Solusi: Adjust animation duration dan timing function:
::view-transition-old(root),
::view-transition-new(root) {
animation-duration: 500ms;
animation-timing-function: ease-out;
}Kemungkinan penyebab: Element dengan view-transition-name muncul di timeline yang berbeda.
Solusi: Pastikan semua element yang terkait udah punya view-transition-name dari awal page load:
:root {
view-transition-name: root;
}Solusi: Firefox butuh enable manual di about:config seperti yang udah dijelasin di section sebelumnya. Untuk production, selalu provide fallback gracefully.
View Transitions udah makin mainstream, tapi tetap penting buat tau compatibility matrix dan prepare fallback strategy.
| Browser | Support | Minimum Version |
|---|---|---|
| Chrome | ✅ Full | 111+ |
| Edge | ✅ Full | 111+ |
| Safari | ✅ Full | 17.4+ |
| Firefox | ⚠️ Partial | 126+ (need flag) |
| Safari iOS | ✅ Full | 17.4+ |
@supports (view-transition-name: none) {
::view-transition-old(root) {
animation: fade-out 0.3s;
}
::view-transition-new(root) {
animation: fade-in 0.3s;
}
}
@supports not (view-transition-name: none) {
}📚 Kalau kamu mau belajar lebih dalam tentang CSS features dan modern web standards, MDN Web Docs adalah resource paling updated. Mereka baru aja launching front-end baru dengan View Transitions integrated, bisa jadi inspiration buat project kamu.
Berikut referensi yang aku pakai dan sangat direkomendasikan buat deepen your knowledge tentang View Transitions dan topic terkait:
Referensi-referensi ini bakal bantu kamu memahami View Transitions dalam konteks yang lebih luas, termasuk bagaimana big players kayak MDN implementasiin di production environment mereka.

“Lebih penting konsisten + ngerti konsep, daripada sekadar ikut-ikutan setting.”
View Transitions adalah fitur CSS yang memungkinkan animasi halus saat navigasi antar halaman di browser. Cukup dengan satu baris kode @view-transition, kamu bisa bikin website terasa sehalus aplikasi mobile native.
Chrome 111+, Edge 111+, Safari 17.4+, dan Firefox 126+ (butuh enable manual di about:config). Safari iOS juga sudah mendukung mulai versi 17.4.
Bisa! Kamu bisa pakai view-transition-name untuk kasih nama pada element tertentu, lalu browser akan otomatis animate element tersebut secara khusus saat navigasi.
Pakai hardware-accelerated properties seperti transform dan opacity, hindari animasi layout properties, pasang will-change secukupnya, dan gunakan contain untuk isolate repaint area.
Pastikan browser sudah support dan di-enable, test via http:// protocol bukan file://, dan check console untuk error messages. Selalu provide fallback untuk browser yang belum support.
Bisa! Document.startViewTransition() API memungkinkan kamu trigger View Transitions secara programmatic via JavaScript, memberikan kontrol lebih granular.
Kalau kamu punya pengalaman atau trik soal view transitions css multi-page, drop di komentar ya — biar kita saling bantu komunitas.
[…] Tutorial View Transitions CSS: Bikin Navigasi Website Jadi Super Smooth Tanpa Ribet […]