css
Catatan teknis seputar web development, DevOps, dan integrasi AI.
42 artikel
- 03.11frontend
Navbar Light Mode Saya Pakai bg-white/60, Bukan Token
Mencerahkan token background menggeser seluruh halaman. Navbar butuh rasa putih khas chrome, jadi warna literal plus dark variant.
TL;DR: Navbar transparan terlihat kotor di light mode karena memakai token --background yang dibagi dengan seluruh halaman. Solusinya: warna literal bg-white untuk light mode, sedangkan dark mode tetap pakai token lewat variant dark:. Trade-off-nya navbar tak lagi ikut tema bila token diubah, tapi jalur migrasi ke token khusus tinggal satu baris.
#css#tailwind#design - 02.55frontend
Panel Chat Saya Kepotong Navbar Fixed
Panel chat tiga kolom terpotong navbar fixed karena elemen fixed tidak mengambil ruang alur dokumen. Perbaikannya di pasangan xl:mt-14 dan pengurang 100dvh.
TL;DR: Navbar fixed tidak mengambil ruang di alur dokumen, jadi panel setinggi 100dvh tetap tersembunyi di baliknya. Solusinya dua deklarasi yang berpasangan: xl:mt-14 menggeser titik awal panel ke bawah navbar, sedangkan h-[calc(100dvh-3.5rem)] memangkas tingginya. Untuk tampilan, padding dan gap dihilangkan di xl, cukup satu border pemisah, sementara di bawah xl kartu lama tetap dipakai.
#css#tailwind#layout - 23.39frontend
Gutter Container Disejajarkan ke Tepi Navbar
Kartu yang tidak sejajar dengan logo navbar ternyata soal gutter: semua container px-4 sm:px-6 lg:px-8 dinormalisasi ke px-3 sm:px-4.
TL;DR: Kartu di section utama homepage tampak masuk sedikit dibanding logo dan menu di navbar, padahal harus sejajar. Penyebabnya bukan lebar kartu, melainkan perbedaan padding: section pakai px-4 sm:px-6 lg:px-8, navbar cuma px-3 sm:px-4, selisihnya 16 pixel di layar besar. Solusinya semua container dinormalisasi ke px-3 sm:px-4, sehingga gutter punya satu sumber kebenaran dan garisnya tetap lurus saat resize.
#css#frontend#tailwind - 23.28frontend
Header dan Footer Blog Berhenti Jadi Pill, Kini Jadi Bar
Refactor navbar dan footer dari pill max-w-6xl jadi bar selebar viewport: max-width naik satu tingkat, konten tetap mx-auto max-w-6xl.
TL;DR: Navbar dan footer blog berubah dari bentuk pill jadi bar full-bleed dari tepi ke tepi viewport. Kuncinya max-w-6xl nggak dihapus tapi pindah ke container dalam dengan mx-auto, sementara elemen luar pegang latar semi transparan plus backdrop-blur. Slot border transparan yang berubah pas scroll mencegah layout shift, dan menu mobile otomatis full width tanpa hack tambahan.
#css#frontend#tailwind - 13.04frontend
Teks Gradient Berubah Jadi Kotak Warna, Shorthand yang Me-Reset
Override light mode pakai shorthand background diam-diam me-reset background-clip:text dari base rule, jadi teks gradient tampil sebagai kotak warna.
TL;DR: Bug gradient text berubah jadi kotak warna muncul karena shorthand background me-reset background-clip:text dari base rule, padahal gradient-nya valid dan tidak ada error. Fix-nya cukup ganti ke longhand background-image supaya properti pemotong tetap hidup. Pelajarannya: pakai background-image untuk override tema, dan jadikan screengrab per tema langkah wajib sebelum push.
#css#frontend#tailwind - 12.44frontend
Ikon Footer yang Hilang Karena Kartunya Jadi Putih
Ikon GitHub dan badge Next.js putih hardcode lenyap begitu kartu footer light mode diubah jadi putih solid. Solusinya var(--foreground).
TL;DR: Commit d6b73b2 bikin kartu footer putih solid, dan ikon SVG yang hardcode putih ikut invisible karena white-on-white. Perbaikannya simpel: semua hex di Footer.tsx diganti var(--foreground), plus varian light gradient neon pakai palet GitHub yang lebih pekat biar kontras di light mode. Pelajarannya: warna yang mengikuti tema wajib pakai variabel, karena hex literal di komponen theme-aware cuma bom waktu.
#css#frontend#tailwind - 12.25frontend
Kartu Transparan yang Menghilang di Light Mode
Kartu bg-card/20 sampai /90 nyaris tak terlihat di light mode karena opacity modifier Tailwind v4 mengkompilasi warna jadi color-mix dengan var token.
TL;DR: Kartu portofolio pakai bg-card dengan opacity modifier Tailwind yang dikompilasi jadi color-mix terhadap variabel --card, jadi hasilnya tergantung tema. Saat latar light mode dibuat terang, campuran putih transparan menyatu dengan latar dan kartu jadi tak terlihat, padahal dark mode aman karena kontrasnya beda. Solusinya override CSS spesifik light mode yang memaksa background solid plus bayangan tipis.
#css#tailwind#frontend - 10.59frontend
Carousel Mobile Pakai CSS Scroll Snap, Tanpa JavaScript
Lima kartu layanan vertikal di HP kepanjangan. Carousel manual dengan CSS scroll snap jadi jalan tengahnya, tanpa satu baris JavaScript.
TL;DR: Bagian Projects and Services dengan lima kartu vertikal kepanjangan di layar HP, bikin pengunjung berhenti di kartu pertama. Penulis sempat anti-carousel karena riset soal auto-rotate, tapi sadar masalah sebenarnya cuma panjang section di mobile. Solusinya carousel manual pakai CSS scroll snap tanpa JavaScript, dengan kartu berikutnya mengintip di tepi layar sebagai sinyal ada lanjutan.
#css#ux#mobile - 10.46frontend
Lima Capability Cards untuk Halaman Layanan Portfolio
Grid lima kartu layanan tinggal beberapa baris CSS. Yang berat justru menulis deskripsi pendek yang tidak terpotong dan menjaga shadow tetap konsisten.
TL;DR: Halaman layanan saya rombak dari daftar nama proyek jadi lima capability cards. Grid-nya gampang berkat resep CSS auto-fill dari MDN; yang makan waktu justru nulis copy pendek tanpa memotong teks, plus hover dan shadow konsisten sebagai penanda klik. Pelajarannya: tulis isinya dulu, layout menyusul.
#css#ux#frontend