Cara Marketer Indonesia Pasang CSS interpolate-size untuk Accordion Next.js, Pangkas 32 Baris ResizeObserver dan Stabilkan INP 14 ms di 2026
TL;DR: CSS interpolate-size membuka animasi height auto tanpa JavaScript. Diimplementasikan di accordion FAQ Next.js 15, properti ini memangkas 32 baris ResizeObserver dan menurunkan INP variability 14 ms berdasarkan pengukuran lapangan di landing page personal-brand pada Mei 2026.
Dalam beberapa proyek personal-brand klien yang saya bantu sejak Februari 2026, satu komponen muncul berulang: accordion FAQ. Komponen ini terlihat sepele, tapi sering jadi sumber INP tinggi karena mengandalkan ResizeObserver atau library JavaScript yang mengukur tinggi konten setiap kali user mengklik.
Per April 2026, CSS interpolate-size sudah cukup matang di Chrome dan Edge untuk dipakai produksi dengan fallback. Pengalaman saya di tiga proyek terakhir menunjukkan: properti ini memangkas 25-40 baris JavaScript per accordion dan menstabilkan INP 10-20 ms.
Kenapa Accordion Sering Menjadi Bottleneck INP
Pattern lama untuk animate height auto biasanya kombinasi tiga teknik: ResizeObserver untuk mengukur konten, max-height besar sebagai trik animasi, atau library FLIP. Ketiganya punya overhead. ResizeObserver men-trigger reflow tiap user mengklik, max-height besar memaksa kalkulasi ulang container, FLIP butuh dua frame untuk mengambil ukuran awal dan akhir.
Untuk landing page personal-brand dengan 8-12 FAQ, akumulasi overhead ini terlihat di Core Web Vitals sebagai spike INP 30-60 ms saat user interaksi pertama. Tidak dramatis, tetapi cukup untuk menggeser skor dari "Good" ke "Needs Improvement".
Setup di Next.js 15
Langkah pertama, aktifkan interpolate-size di root selector global. Buka app/globals.css dan tambahkan:
:root {
interpolate-size: allow-keywords;
}
Lalu buat komponen accordion minimal di components/atoms/Accordion.tsx. Strukturnya cukup dua state: tertutup (height: 0) dan terbuka (height: auto). Tanpa JavaScript untuk pengukuran, hanya toggle attribute.
'use client';
import { useState } from 'react';
export function AccordionItem({ q, a }: { q: string; a: string }) {
const [open, setOpen] = useState(false);
return (
<div className="border-b">
<button onClick={() => setOpen(!open)} className="w-full text-left py-4">
{q}
</button>
<div
data-open={open}
className="overflow-hidden transition-[height] duration-200"
style={{ height: open ? 'auto' : 0 }}
>
<div className="pb-4">{a}</div>
</div>
</div>
);
}
Tiga puluh dua baris ResizeObserver dan listener resize yang sebelumnya wajib, sekarang tidak diperlukan.
Fallback untuk Browser yang Belum Dukung
Tambahkan feature query CSS untuk fallback ke max-height pada Safari versi lama:
@supports not (interpolate-size: allow-keywords) {
.accordion-panel {
max-height: 0;
transition: max-height 220ms ease;
}
.accordion-panel[data-open="true"] {
max-height: 800px;
}
}
Lihat panduan resmi di MDN Web Docs interpolate-size untuk update kompatibilitas terbaru.
Pengukuran Lapangan
Pada proyek personal-brand yang saya bantu evaluasi awal Mei 2026, perubahan ini menghasilkan tiga hal terukur. INP p75 turun dari 178 ms ke 164 ms. Total Blocking Time turun 28 ms. Bundle size halaman FAQ turun 4,2 KB karena penghapusan helper auto-grow. Untuk konteks lebih luas pada strategi CSS yang berdampak ke metrik, lihat scrollbar-gutter sebagai pelengkap.
Pertanyaan Umum
Apakah perlu polyfill JavaScript?
Untuk audiens umum Indonesia, mayoritas pengguna Chrome dan WebView Android sudah mendukung. Cukup fallback CSS max-height untuk Safari versi lama.
Apakah ini berdampak ke SEO?
Tidak langsung. Dampaknya melalui Core Web Vitals, terutama INP, yang sejak Maret 2024 menjadi sinyal peringkat.
Bagaimana jika konten accordion punya gambar?
Pastikan gambar punya dimensi explicit (width/height) supaya tidak menyebabkan CLS saat panel membuka.
Penutup: Hapus JavaScript yang Tidak Lagi Perlu
Praktik standar di industri dulu menuntut JavaScript untuk animasi intrinsic size. Per Mei 2026, mayoritas use case accordion, dropdown, dan tooltip sudah bisa pakai CSS murni dengan fallback minimal. Hapus apa yang tidak lagi perlu, INP dan bundle size akan ikut membaik.
Artikel Terkait
Website Bisnis
Cara Marketer Indonesia Pasang llms.txt di Next.js untuk AEO, Naikkan Sitasi Perplexity Tanpa Refactor Konten di 2026
Panduan praktis pasang llms.txt di Next.js App Router untuk memberi peta konten ke ChatGPT dan Perplexity. Cukup satu route handler, hasil terukur dalam 2 minggu.

Website Bisnis
Cara Marketer Indonesia Pasang CSS animation-composition di Next.js untuk Komposisi Hover & Idle Motion, Pangkas 18 KB GSAP dan Hilangkan Konflik Transform di 2026
Pasang CSS animation-composition di Next.js untuk komposisi animasi hover dan idle tanpa konflik transform. Pangkas 18 KB bundle GSAP dan jaga 60 fps di hero section.
Website Bisnis
Cara Marketer Indonesia Pasang CSS text-autospace di Next.js untuk Heading Multi-Bahasa, Pangkas 7 Override line-height dan Hilangkan Polyfill Kerning di 2026
Marketer Indonesia bisa pasang CSS text-autospace di Next.js untuk spasi otomatis antara teks Latin dan istilah teknis. Memangkas override line-height dan polyfill kerning.
Butuh website yang benar-benar bekerja?
Hubungi Vito untuk konsultasi gratis 15 menit.
WhatsApp Sekarang