Sekitar 15 tahun yang lalu, saya bekerja di sebuah perusahaan tempat kami membuat aplikasi untuk agen perjalanan, pekerja bandara, dan perusahaan penerbangan. Kami juga membangun kerangka kerja internal kami sendiri untuk komponen UI dan kemampuan aplikasi satu halaman. Kami memiliki komponen untuk semuanya: bidang, tombol, tab, rentang, tabel data, menu, pemilih tanggal, pilihan, dan pilihan ganda. Kami bahkan memiliki komponen div. Komponen div kami sangat bagus, memungkinkan kami membuat sudut membulat di semua browser, yang, percaya atau tidak, bukanlah hal yang mudah untuk dilakukan pada saat itu.

Pekerjaan kami terjadi pada suatu titik dalam sejarah kami ketika JS, Ajax, dan HTML dinamis dipandang sebagai sebuah revolusi yang membawa kami ke masa depan. Tiba-tiba, kami dapat memperbarui halaman secara dinamis, mendapatkan data dari server, dan menghindari keharusan bernavigasi ke halaman lain, yang dianggap lambat dan menampilkan kotak putih besar di layar di antara dua halaman. Ada ungkapan yang dipopulerkan oleh Jeff Atwood (pendiri StackOverflow), yang berbunyi: “Aplikasi apa pun yang dapat ditulis dalam JavaScript pada akhirnya akan ditulis dalam JavaScript.”— Jeff Atwood

Bagi kami pada saat itu, ini terasa seperti sebuah tantangan untuk benar-benar menciptakan aplikasi tersebut. Rasanya seperti persetujuan menyeluruh untuk melakukan segalanya dengan JS. Jadi kami melakukan segalanya dengan JS, dan kami tidak meluangkan waktu untuk meneliti cara lain dalam melakukan sesuatu. Kami tidak benar-benar merasakan dorongan untuk mempelajari dengan baik apa yang dapat dilakukan HTML dan CSS. Kami tidak benar-benar menganggap web sebagai platform aplikasi yang berkembang secara keseluruhan. Kami sebagian besar melihatnya sebagai sesuatu yang perlu kami atasi, terutama ketika menyangkut dukungan browser. Kita bisa menggunakan lebih banyak JS untuk menyelesaikan sesuatu. Apakah meluangkan waktu untuk mempelajari lebih lanjut tentang cara kerja web dan apa yang tersedia di platform dapat membantu saya? Tentu, saya mungkin bisa menghilangkan banyak kode yang sebenarnya tidak diperlukan. Tapi, pada saat itu, mungkin tidak sebanyak itu. Soalnya, perbedaan browser saat itu cukup signifikan. Ini adalah masa ketika Internet Explorer masih menjadi browser dominan, diikuti Firefox di urutan kedua, namun mulai kehilangan pangsa pasar karena Chrome dengan cepat mendapatkan popularitas. Meskipun Chrome dan Firefox cukup baik dalam menyetujui standar web, lingkungan tempat aplikasi kami berjalan berarti kami harus mendukung IE6 untuk waktu yang lama. Meskipun kami diizinkan untuk mendukung IE8, kami masih harus menghadapi banyak perbedaan antar browser. Tidak hanya itu, web pada saat itu belum memiliki banyak kemampuan yang dibangun langsung ke dalam platformnya.

Maju cepat ke hari ini. Banyak hal telah berubah secara drastis. Kita tidak hanya memiliki lebih banyak kemampuan ini dibandingkan sebelumnya, namun tingkat ketersediaannya juga meningkat. Izinkan saya mengajukan pertanyaan lagi: Apakah meluangkan waktu untuk mempelajari lebih lanjut tentang cara kerja web dan apa yang tersedia di platform dapat membantu Anda saat ini? Tentu saja ya. Belajar memahami dan menggunakan platform web saat ini memberi Anda keuntungan besar dibandingkan pengembang lain. Baik Anda mengerjakan kinerja, aksesibilitas, daya tanggap, semuanya secara bersamaan, atau sekadar mengirimkan fitur UI, jika Anda ingin melakukannya sebagai teknisi yang bertanggung jawab, mengetahui alat yang tersedia untuk Anda akan membantu Anda mencapai sasaran dengan lebih cepat dan lebih baik. Beberapa Hal yang Mungkin Tidak Anda Butuhkan Perpustakaan Lagi Mengetahui browser apa yang didukung saat ini, pertanyaannya adalah: Apa yang bisa kita tinggalkan? Apakah kita memerlukan komponen div untuk melakukan sudut membulat pada tahun 2025? Tentu saja tidak. Properti border-radius telah didukung oleh semua browser yang digunakan saat ini selama lebih dari 15 tahun pada saat ini. Dan bentuk sudut juga akan segera hadir, bahkan untuk sudut yang lebih mewah. Mari kita lihat fitur-fitur yang relatif baru yang kini tersedia di semua browser utama, dan yang dapat Anda gunakan untuk menggantikan dependensi yang ada di basis kode Anda. Intinya bukanlah segera membuang semua perpustakaan kesayangan Anda dan menulis ulang basis kode Anda. Mengenai hal lainnya, Anda harus mempertimbangkan dukungan browser terlebih dahulu dan memutuskan berdasarkan faktor lain yang spesifik untuk proyek Anda. Fitur berikut diterapkan di tiga mesin browser utama (Chromium, WebKit, dan Gecko), namun Anda mungkin memiliki persyaratan dukungan browser berbeda yang menghalangi Anda untuk langsung menggunakannya. Namun, sekarang adalah saat yang tepat untuk mempelajari fitur-fitur ini, dan mungkin berencana untuk menggunakannya suatu saat nanti. Popover dan Dialog API Popover, elemen HTML

, dan elemen semu ::backdrop dapat membantu Anda menghilangkan ketergantungan pada popup,tooltip, dan pustaka dialog, seperti Floating UI, Tippy.js, Tether, atau React Tooltip. Mereka menangani aksesibilitas dan manajemen fokus untuk Anda, sangat mudah disesuaikan dengan menggunakan CSS, dan dapat dianimasikan dengan mudah. Akordeon Elemen
, atribut namanya untuk elemen yang saling eksklusif, dan elemen semu ::details-content menghilangkan kebutuhan akan komponen akordeon seperti Bootstrap Accordion atau komponen React Accordion. Hanya menggunakan platform di sini berarti lebih mudah bagi orang-orang yang mengetahui HTML/CSS untuk memahami kode Anda tanpa harus belajar menggunakan perpustakaan tertentu terlebih dahulu. Ini juga berarti Anda kebal terhadap perubahan yang dapat menyebabkan kerusakan pada perpustakaan atau penghentian perpustakaan tersebut. Dan, tentu saja, ini berarti lebih sedikit kode untuk diunduh dan dijalankan. Elemen detail yang saling eksklusif tidak memerlukan JS untuk membuka, menutup, atau menganimasikan. Sintaks CSS Lapisan bertingkat, untuk basis kode CSS yang lebih terorganisir, sarang CSS, untuk CSS yang lebih ringkas, fungsi warna baru, warna relatif, dan campuran warna, fungsi Matematika baru seperti abs(), sign(), pow() dan lainnya membantu mengurangi ketergantungan pada pra-pemroses CSS, pustaka utilitas seperti Bootstrap dan Tailwind, atau bahkan pustaka CSS-in-JS runtime. Pengubah permainan :has(), salah satu fitur yang paling banyak diminta sejak lama, menghilangkan kebutuhan akan solusi berbasis JS yang lebih rumit. Utilitas JS Metode Array modern seperti findLast(), atau at(), serta metode Set seperti perbedaan(), persimpangan(), union() dan lainnya dapat mengurangi ketergantungan pada perpustakaan seperti Lodash. Kueri Kontainer Kueri kontainer membuat komponen UI merespons hal-hal selain ukuran area pandang, sehingga membuatnya lebih dapat digunakan kembali dalam konteks yang berbeda. Tidak perlu lagi menggunakan perpustakaan UI JS-berat untuk ini, dan juga tidak perlu menggunakan polyfill. Tata Letak Grid, subgrid, flexbox, atau multi-kolom sudah ada sejak lama, namun melihat hasil survei State of CSS, jelas bahwa pengembang cenderung sangat berhati-hati dalam mengadopsi hal-hal baru, dan menunggu sangat lama sebelum mereka melakukannya. Fitur-fitur ini telah menjadi Baseline sejak lama dan Anda dapat menggunakannya untuk menghilangkan ketergantungan pada hal-hal seperti sistem grid Bootstrap, utilitas flexbox Foundation Framework, grid tetap Bulma, grid Materialize, atau kolom Tailwind. Saya tidak mengatakan Anda harus meninggalkan kerangka kerja Anda. Tim Anda mengadopsinya karena suatu alasan, dan menghapusnya mungkin merupakan proyek besar. Namun melihat apa yang dapat ditawarkan oleh platform web tanpa pembungkus pihak ketiga memiliki banyak manfaat. Hal-Hal yang Mungkin Tidak Anda Butuhkan Lagi Dalam Waktu Dekat Sekarang, mari kita lihat sekilas beberapa hal yang tidak memerlukan perpustakaan dalam waktu dekat. Artinya, hal-hal di bawah ini belum siap untuk diadopsi secara massal, namun menyadarinya dan merencanakan potensi penggunaannya di kemudian hari dapat membantu. Penempatan Jangkar Pemosisian jangkar CSS menangani pemosisian popover dan tooltip relatif terhadap elemen lain, dan menjaga agar tetap terlihat, bahkan saat memindahkan, menggulir, atau mengubah ukuran halaman. Ini merupakan pelengkap yang bagus untuk Popover API yang disebutkan sebelumnya, yang akan semakin memudahkan migrasi dari solusi JS yang lebih intensif kinerja. API Navigasi API Navigasi dapat digunakan untuk menangani navigasi dalam aplikasi satu halaman dan mungkin merupakan pelengkap yang bagus, atau bahkan pengganti, untuk tugas perutean React Router, perutean Next.js, atau perutean Angular. Lihat API Transisi View Transitions API dapat menganimasikan berbagai status halaman. Pada aplikasi satu halaman, ini membuat transisi antar status menjadi sangat mudah, dan dapat membantu Anda menghilangkan pustaka animasi seperti Anime.js, GSAP, atau Motion.dev. Hebatnya lagi, API juga dapat digunakan dengan aplikasi multi-halaman. Ingat sebelumnya, ketika saya mengatakan bahwa alasan kami membuat aplikasi satu halaman di perusahaan tempat saya bekerja 15 tahun yang lalu adalah untuk menghindari kilatan putih saat memuat ulang halaman saat bernavigasi? Seandainya API tersebut tersedia pada saat itu, kami akan mampu mencapai efek transisi halaman yang indah tanpa kerangka satu halaman dan tanpa pengunduhan awal yang besar untuk seluruh aplikasi. Animasi yang digerakkan oleh gulir Animasi yang digerakkan oleh gulir berjalan pada posisi gulir pengguna, bukan seiring waktu, menjadikannya solusi hebat untuk bercerita dan tur produk. Beberapa orang sudah berlebihan dalam menggunakannya, namun bila digunakan dengan baik, ini bisa menjadi alat desain yang sangat efektif, dan dapat membantu menghilangkan perpustakaan seperti: ScrollReveal, GSAP Scroll, atauWOW.js. Pilihan yang Dapat Disesuaikan Pilihan yang dapat disesuaikan adalah elemen

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free