Website Bisnis

Cara Marketer Indonesia Pasang CSS interpolate-size untuk Accordion Next.js, Pangkas 32 Baris ResizeObserver dan Stabilkan INP 14 ms di 2026

A
Admin·30 Mei 2026·0 kali dibaca·3 min baca
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:

css
: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.

tsx
'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:

css
@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.

Bagikan

Artikel Terkait

#css#interpolate-size#nextjs#core-web-vitals#inp#2026

Butuh website yang benar-benar bekerja?

Hubungi Vito untuk konsultasi gratis 15 menit.

WhatsApp Sekarang