flash sale
hamburger-menu

Tips All

Meningkatkan skills menjadi 1% lebih baik

Reset
Kelas Panduan Lengkap Struktur HTML: Elemen Teks, Link, dan Tombol di BuildWithAngga

Panduan Lengkap Struktur HTML: Elemen Teks, Link, dan Tombol

Daftar Isi PendahuluanApa Itu Struktur HTML?Tag Pembuka dan PenutupAtribut dalam Tag HTMLMengenal Elemen Teks: Paragraf, Judul, dan Tag SemantikTag <p> untuk ParagrafTag <h1> sampai <h6> untuk JudulPenggunaan Semantic Tag dalam Struktur HTMLMembedakan Tombol dan LinkTag <a> untuk LinkTag <button> untuk TombolPerbedaan UtamaTips Penulisan HTML yang BaikKesalahan Umum yang Perlu DihindariTips Lanjutan untuk SEO dan AksesibilitasGunakan Heading Secara Berurutan dan BermaknaGunakan Atribut alt pada GambarGunakan Atribut aria-* Saat DiperlukanTingkatkan Navigasi dengan Landmark Tag SemantikGunakan Link dengan Teks yang JelasPastikan Tombol dan Link Bisa Diakses KeyboardGunakan Lang di Tag <html>Optimalkan Struktur URL dan Meta TagGunakan Kontras Warna yang CukupUji Halaman dengan Lighthouse dan Screen ReaderPenutup Pendahuluan HTML (HyperText Markup Language) adalah bahasa dasar yang digunakan untuk membuat struktur halaman web. Bagi siapa pun yang ingin belajar web development, memahami struktur HTML adalah langkah awal yang wajib dikuasai. Tanpa pemahaman yang benar tentang elemen-elemen HTML seperti tombol (button), tautan (link), paragraf (paragraph), dan judul (heading), sebuah halaman web bisa jadi tidak terstruktur dengan baik dan sulit dipahami baik oleh pengguna maupun mesin pencari. Dalam panduan ini, kita akan membahas secara lengkap dan jelas perbedaan serta fungsi dari elemen-elemen dasar HTML tersebut. Kamu akan belajar bagaimana cara menulis tag HTML dengan benar, kapan harus menggunakan link dibanding tombol, serta bagaimana menyusun konten menggunakan paragraf dan judul yang sesuai. Dengan memahami struktur HTML yang baik, kamu akan lebih siap membangun website yang terorganisir, ramah pengguna, dan SEO-friendly. Apa Itu Struktur HTML? Struktur HTML adalah susunan elemen-elemen yang membentuk kerangka dasar sebuah halaman web. HTML tidak bekerja sendiri, tapi berperan penting dalam menentukan apa yang ditampilkan di halaman dan bagaimana informasi tersebut disusun secara logis. Setiap halaman HTML terdiri dari elemen-elemen yang ditandai dengan tag. Contohnya adalah <p> untuk paragraf, <a> untuk link, <button> untuk tombol, dan <h1> sampai <h6> untuk judul. Elemen-elemen ini bekerja bersama untuk membentuk struktur konten yang mudah dibaca oleh pengguna dan mudah dipahami oleh mesin pencari (SEO-friendly). Dalam struktur HTML, ada dua hal penting yang perlu dipahami: Tag Pembuka dan Penutup Sebagian besar elemen HTML menggunakan tag pembuka dan tag penutup. Misalnya: <p>Ini adalah paragraf.</p> <p> adalah tag pembuka</p> adalah tag penutupIsi di antara keduanya adalah konten yang akan ditampilkan di halaman Atribut dalam Tag HTML Beberapa elemen memiliki atribut untuk memberikan informasi tambahan. Misalnya pada tag <a>: <a href="<https://example.com>">Kunjungi Website</a> href adalah atribut yang menentukan tujuan tautan Struktur HTML yang baik akan membuat halaman web menjadi lebih teratur, mudah diakses, dan memudahkan pengelolaan konten seiring bertambahnya skala proyek. Mengenal Elemen Teks: Paragraf, Judul, dan Tag Semantik Dalam HTML, elemen teks seperti paragraf dan judul digunakan untuk menyusun isi konten agar mudah dibaca dan dipahami. Namun, selain tag-tag dasar tersebut, HTML juga menyediakan semantic tag yang membantu memperjelas makna struktur konten. Hal ini sangat penting untuk meningkatkan aksesibilitas, keterbacaan kode, dan optimasi SEO. Tag <p> untuk Paragraf Tag <p> digunakan untuk menandai sebuah paragraf teks. Setiap gagasan atau pemikiran sebaiknya ditulis dalam satu tag paragraf agar mudah dipahami oleh pembaca dan crawler mesin pencari. Contoh: <p>Belajar HTML adalah langkah awal yang penting dalam dunia pengembangan web.</p> Tag <h1> sampai <h6> untuk Judul Tag heading digunakan untuk memberikan struktur hierarki pada konten. Gunakan tag ini secara berurutan untuk menunjukkan hubungan antara bagian-bagian dalam artikel atau halaman. <h1> → Judul utama (hanya satu kali per halaman)<h2> → Subjudul dari <h1><h3> → Subjudul dari <h2>, dan seterusnya Contoh: <h1>Panduan Belajar HTML</h1> <h2>Struktur Dasar HTML</h2> <h3>Penggunaan Tag Heading</h3> Penggunaan Semantic Tag dalam Struktur HTML Semantic tags adalah elemen HTML5 yang secara eksplisit menjelaskan tujuan dari konten di dalamnya. Ini membuat struktur halaman lebih bermakna dan lebih mudah dipahami oleh mesin pencari dan teknologi bantu seperti screen reader. Beberapa contoh semantic tag yang umum digunakan: <header> – bagian atas halaman atau bagian tertentu (biasanya berisi logo atau navigasi)<nav> – navigasi utama atau internal<main> – konten utama dari halaman<section> – bagian dari konten yang memiliki tema tertentu<article> – konten yang berdiri sendiri seperti postingan blog<aside> – informasi tambahan (sidebar, catatan, iklan)<footer> – bagian bawah halaman atau bagian tertentu (biasanya berisi informasi kontak, hak cipta, dll.) Contoh penggunaan semantic tag: <main> <article> <header> <h1>Belajar HTML Dasar</h1> </header> <section> <h2>Apa Itu Paragraf?</h2> <p>Paragraf digunakan untuk menyusun teks menjadi bagian yang mudah dibaca.</p> </section> <section> <h2>Mengenal Tag Heading</h2> <p>Tag heading memberikan struktur dan hierarki pada konten halaman.</p> </section> </article> </main> Dengan menggunakan tag semantik, kode HTML kamu akan menjadi lebih terstruktur, profesional, dan ramah SEO. Membedakan Tombol dan Link Dalam HTML, tombol dan link sering digunakan untuk tujuan berbeda meskipun terkadang tampilannya mirip. Penting untuk memahami perbedaan fungsi keduanya agar halaman web bekerja dengan benar dan mudah diakses. Tag <a> untuk Link Tag <a> adalah elemen yang digunakan untuk membuat tautan (link) ke halaman lain, bagian lain dari halaman yang sama, atau sumber eksternal. Contoh: <a href="<https://example.com>" target="_blank" rel="noopener noreferrer">Kunjungi Website</a> href menentukan alamat tujuan linktarget="_blank" membuka link di tab barurel="noopener noreferrer" meningkatkan keamanan saat membuka tab baru Tag <button> untuk Tombol Tag <button> digunakan untuk membuat tombol interaktif yang biasanya digunakan untuk mengirim form, memicu event JavaScript, atau aksi lain dalam halaman web. Contoh: <button type="submit">Kirim</button> Perbedaan Utama Aspek<a> (Link)<button> (Tombol)FungsiNavigasi ke halaman/sumber lainInteraksi dalam halaman (submit, aksi)Tag SemantikLink, navigasiKontrol interaktif/formDapat diklikYa, mengarahkan ke URLYa, menjalankan aksi atau fungsiAtribut pentinghref, targettype, event handler JavaScript Menggunakan elemen yang tepat tidak hanya membuat kode lebih bersih tapi juga membantu SEO dan aksesibilitas. Tips Penulisan HTML yang Baik Gunakan tag sesuai dengan fungsi semantiknya.Susun tag heading secara berurutan, jangan loncat level heading.Hindari menggunakan <div> untuk segalanya tanpa alasan.Pastikan setiap tag pembuka memiliki tag penutup.Gunakan semantic tag untuk memperjelas struktur halaman. Kesalahan Umum yang Perlu Dihindari Menggunakan tombol untuk navigasi atau link untuk aksi interaktif.Tidak menggunakan heading secara berurutan, seperti langsung dari <h1> ke <h4>.Menulis seluruh teks panjang tanpa membaginya ke dalam paragraf <p>.Mengabaikan penggunaan semantic tag sehingga halaman sulit dipahami mesin pencari dan pengguna berkebutuhan khusus. Tips Lanjutan untuk SEO dan Aksesibilitas Gunakan Heading Secara Berurutan dan Bermakna Pastikan hanya ada satu <h1> per halaman (biasanya judul utama).Gunakan heading secara hierarkis: <h2> untuk subjudul, <h3> untuk sub-subjudul, dan seterusnya.Jangan melompati level (misal dari <h1> langsung ke <h4>), agar pembaca layar dapat memahami struktur dokumen dengan benar. Gunakan Atribut alt pada Gambar Tambahkan alt pada setiap gambar untuk menjelaskan isi gambar bagi pengguna dengan pembaca layar, dan juga membantu SEO image. <img src="/logo.png" alt="Logo Website Belajar HTML"> Hindari menggunakan gambar sebagai satu-satunya informasi penting selalu sediakan teks alternatif. Gunakan Atribut aria-* Saat Diperlukan Atribut aria-label, aria-hidden, dan lainnya bisa membantu menjelaskan elemen interaktif kepada pengguna pembaca layar. Contoh: <button aria-label="Tutup Pop-up"> <svg aria-hidden="true" ... /> </button> Tapi ingat, gunakan semantic tag terlebih dahulu, dan aria hanya jika tidak ada elemen semantik yang sesuai. Tingkatkan Navigasi dengan Landmark Tag Semantik Gunakan tag semantik berikut agar pengguna pembaca layar dapat melompat ke bagian penting dengan cepat: <header> – bagian atas halaman<nav> – navigasi<main> – konten utama<aside> – sidebar/informasi tambahan<footer> – bagian bawah halaman Gunakan Link dengan Teks yang Jelas Hindari menggunakan teks seperti “klik di sini”.Gunakan teks deskriptif yang menjelaskan ke mana link mengarah. <!-- Buruk --> <a href="/artikel">Klik di sini</a> <!-- Baik --> <a href="/artikel">Baca panduan belajar HTML dasar</a> Pastikan Tombol dan Link Bisa Diakses Keyboard Semua elemen interaktif harus bisa diakses dengan keyboard (tekanan tab + enter/space).Jangan gunakan <div> atau <span> sebagai tombol kecuali kamu menambahkan atribut dan event keyboard dengan JavaScript (namun ini bukan praktik terbaik). Gunakan lang di Tag <html> Menentukan bahasa halaman akan membantu mesin pencari dan pembaca layar membaca teks dengan benar: <html lang="id"> Optimalkan Struktur URL dan Meta Tag Gunakan struktur URL yang deskriptif dan mengandung kata kunci.Pastikan setiap halaman memiliki tag <title> dan <meta description> yang unik dan relevan. <title>Panduan Lengkap HTML untuk Pemula</title> <meta name="description" content="Pelajari dasar-dasar HTML mulai dari struktur, paragraf, heading, tombol, link, dan semantic tag untuk SEO."> Gunakan Kontras Warna yang Cukup Pastikan teks memiliki kontras warna yang memadai dengan latar belakang.Gunakan tools seperti Coolors Contrast Checker untuk mengecek. Uji Halaman dengan Lighthouse dan Screen Reader Gunakan Lighthouse (di Chrome DevTools) untuk mengaudit SEO dan aksesibilitas.Cobalah screen reader seperti NVDA (Windows), VoiceOver (Mac), atau TalkBack (Android) untuk menguji pengalaman pengguna difabel. Penutup Memahami struktur HTML adalah langkah awal yang sangat penting dalam belajar web development. Dengan mengenal fungsi dan perbedaan antara elemen seperti tombol, link, paragraf, judul, serta penggunaan semantic tag, kamu dapat membuat halaman web yang terstruktur dengan baik, mudah diakses, dan SEO-friendly. Mulailah praktik menulis HTML sederhana dengan mengaplikasikan pengetahuan ini, dan terus kembangkan kemampuanmu dengan belajar CSS dan JavaScript untuk membuat website yang lebih interaktif dan menarik.

Kelas Tips Tailwind V4 Terbaru : Menambahkan Custom Class Color di Tailwind 4 di BuildWithAngga

Tips Tailwind V4 Terbaru : Menambahkan Custom Class Color di Tailwind 4

Daftar Isi Benefit Setelah BacaPastikan Tailwind Sudah TerpasangInstall Tailwind CSSTambahin Warna CustomKustomisasi LainnyaKesimpulan Buat kamu yang sering ngoding tampilan (alias slicing) pakai Tailwind CSS, pasti udah tau betapa enaknya pake utility class kayak text-red-500, bg-blue-200, dan semacamnya. Tapi kadang, desain dari Figma atau brand yang kita garap punya warna-warna khusus yang nggak ada di bawaan Tailwind. Nah, daripada tiap kali nulis text-["#00008B"] , bg-["#00008B"] atau nyari warna manual, mending sekalian tambahin aja ke konfigurasi Tailwind-nya. Jadi kita bisa pake class kayak text-dark_blue, bg-dark_blue, dan lain-lain. Gampang kok! Benefit Setelah Baca ✅ Mudah Menambahkan Class Warna Kustom✅ Lebih Efisien✅ Konsisten Desain✅ Mempersingkat Waktu Slicing Pastikan Tailwind Sudah Terpasang Buat kamu yang baru mulai, ini cara paling simple buat setup Tailwind: 1. Install Tailwind CSS Buka Terminal terus ketik : npm install tailwindcss @tailwindcss/cli Ini bakal install Tailwind CSS dan CLI-nya biar kamu bisa compile file CSS dari class Tailwind. 2. Import Tailwind CSS Jangan lupa buat folder src dulu baru bikin file CSS misalnya input.css, terus isi dengan ini : /* src/input.css */ @import "tailwindcss"; Ini gunanya buat masukin semua base class Tailwind ke file kamu. 3. Jalankan Build Tailwind Ketik perintah ini di terminal: npx @tailwindcss/cli -i ./src/input.css -o ./src/output.css --watch Artinya: kamu compile dari input.css jadi output.css, dan --watch bikin dia update otomatis kalau ada perubahan class. 4. Tambahin CSS-nya ke HTML Sekarang tinggal hubungkan file CSS yang udah jadi (output.css) ke HTML kamu: <!-- src/index.html --> <!doctype html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="./output.css" rel="stylesheet"> </head> <body> <h1 class="text-3xl font-bold underline"> Hello world! </h1> </body> </html> Done! Tailwind-nya udah siap kamu pakai! Tambahin Warna Custom Misalnya kamu punya warna branding #00008B (biru gelap) dan pengen pakai dia di project-mu. Di Tailwind 4, kamu cukup buka file input.css dan tambahkan: @theme { --color-dark_blue: #00008B; --color-primary: #83D987; } Tailwind otomatis bikin class-class berikut: text-dark_bluebg-dark_blueborder-dark_bluering-dark_bluedan lainnya Jadi kamu tinggal panggil aja class-nya di HTML: <h1 class="text-dark_blue">BuildWithAngga</h1> <button class="bg-primary text-white py-2 px-4"> Tombol </button> Hasil : Result Custom Color Kustomisasi Lainnya Sama juga caranya. Misalnya kamu pengen bikin ukuran teks extra-giant tinggal tambahkan: @theme { --text-extra_giant: 200px; } Nanti bisa langsung kamu pakai: <h1 class="text-dark_blue text-extra_giant">BuildWithAngga</h1> Hasil : Result Custom Text Size Kesimpulan Tailwind CSS 4 bikin kustomisasi jadi lebih gampang, lebih cepat, dan lebih ringan. Kalau kamu suka styling yang ringkas dan fleksibel, Tailwind 4 ini cocok banget buat kamu. Slicing jadi lebih lancar, nggak banyak mikir, tinggal gas!

Kelas Belajar TailwindCSS v4: Cara Customize untuk Pemula & Web Developer di BuildWithAngga

Belajar TailwindCSS v4: Cara Customize untuk Pemula & Web Developer

Daftar Isi Latar BelakangPendahuluanPersiapan AwalKustomisasi TailwindCSS v4Menentukan Font FamilyMenentukan Warna, Background, Foreground dan PrimaryKenapa Menggunakan @theme Bukan :root?Kenapa Masih Tetap Menggunakan :root?Penutup Latar Belakang TailwindCSS v4 hadir dengan berbagai peningkatan performa dan fitur baru yang membuat pengembangan antarmuka semakin cepat dan efisien. Namun, bagi pemula maupun web developer yang baru mengenal Tailwind, melakukan kustomisasi bisa terasa membingungkan. Padahal, kemampuan untuk menyesuaikan konfigurasi seperti warna, font, breakpoint, hingga utility classes sangat penting agar tampilan website sesuai dengan kebutuhan desain. Dalam panduan ini, kamu akan belajar langkah demi langkah bagaimana cara melakukan customize TailwindCSS v4 secara efektif, mulai dari dasar hingga tips praktis yang bisa langsung diterapkan dalam proyek webmu. Pendahuluan TailwindCSS adalah utility-first CSS framework yang semakin populer di kalangan web developer karena fleksibilitas dan kecepatannya dalam membangun antarmuka. Dengan pendekatan kelas-kelas siap pakai (utility classes), kamu bisa membuat desain yang konsisten dan efisien tanpa harus menulis banyak CSS manual. Pada versi terbarunya, TailwindCSS v4 membawa peningkatan performa dan arsitektur yang lebih modern, menjadikannya pilihan utama untuk banyak proyek web. Namun, agar hasil akhirnya sesuai dengan kebutuhan desain suatu produk, kamu perlu memahami bagaimana cara melakukan customize konfigurasi Tailwind. Mulai dari mengganti warna default, menambahkan font sendiri, hingga menyesuaikan ukuran dan breakpoint. Proses ini sangat penting terutama bagi pemula dan front-end developer yang ingin membuat sistem desain yang konsisten, skalabel, dan mudah di-maintain. Dalam artikel ini, kamu akan mempelajari langkah demi langkah cara melakukan kustomisasi TailwindCSS v4 dengan cara yang mudah dipahami, bahkan jika kamu belum pernah menyentuh file konfigurasi sebelumnya. Persiapan Awal Sebelum mulai melakukan kustomisasi TailwindCSS v4, pastikan kamu sudah memiliki proyek HTML yang telah terinstal TailwindCSS v4 dengan benar. Jika belum, kamu bisa mengikuti panduan lengkap kami melalui artikel Cara Install dan Setup TailwindCSS v4 untuk Proyek HTML, CSS, dan JavaScript. Artikel tersebut akan membantumu memahami setiap langkah instalasi agar tidak ada bagian penting yang terlewat. Berikut adalah beberapa hal yang perlu dipersiapkan sebelum melanjutkan: Proyek HTML yang sudah menggunakan TailwindCSS v4Desain Figma, pada artikel ini kita menggunakan desain Pricing Pro dari shaynakit.comCode editor seperti Visual Studio Code (VSCode) atau sejenisnyaNode.js versi 22 atau yang lebih baru Kustomisasi TailwindCSS v4 Pada artikel ini, kita akan belajar bagaimana melakukan kustomisasi TailwindCSS v4 menggunakan theme variables. Mengapa menggunakan theme variables? Karena pendekatan ini membuat kode lebih mudah untuk dipelihara dan membantu menjaga konsistensi tampilan di seluruh proyek. Menentukan Font Family Buka file Figma, kemudian pilih teks yang ingin diketauh jenis font nya. Lalu lihat pada sidebar kanan bagian Typography, seperti pada gambar di bawah ini. Pricing Pro - Text Dari gambar tersebut kita tahu jenis font yang dipakai adalah Poppins. Sekarang kita akan tambahkan font Poppins di TailwindCSS. Buka file input.css lalu tambahkan kode berikut di paling atas. @import url("<https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap>"); Jika sudah sekarang kita tambahkan kustom font dengan cara tambahkan kode berikut: @theme inline { --font-poppins: "Poppins", sans-serif; } Kemudian kita terapkan font dengan kode berikut: @layer base { body { @apply font-poppins; } } File input.css secara keseluruhan akan terlihat seperti ini: @import url("<https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap>"); @import "tailwindcss"; @theme inline { --font-poppins: "Poppins", sans-serif; } @layer base { body { @apply font-poppins; } } Build proyek menggunakan Tailwind CLI dengan perintah berikut: npx @tailwindcss/cli -i ./src/input.css -o ./src/output.css --watch Buka browser maka font akan berubah seperti berikut: Local Result Menentukan Warna, Background, Foreground dan Primary Buka lagi desain figma, lalu pilih Layer utama dan lihat pada sidebar kanan pada bagian Selections colors Pricing Pro - Colors Kita akan gunakan #FFFFFF sebagai background, #0A0815 sebagai foreground, dan #EB7145 sebagai primary. Buka file input.css lalu tambahkan kode berikut: :root { --background: #ffffff; --foreground: #0a0815; --primary: #eb7145; } Edit bagian @theme inline {} sehingga menjadi seperti berikut ini: @theme inline { --font-poppins: "Poppins", sans-serif; --color-background: var(--background); --color-foreground: var(--foreground); --color-primary: var(--primary); } Untuk menerapkan warna yang sudah kita kustom, edit pada bagian @layer base {} menjadi seperti berikut ini: @layer base { body { @apply font-poppins bg-background text-foreground; } } Buka browser dan lihat perubahannya: Local Result Kenapa Menggunakan @theme Bukan :root? Tailwind menggunakan @theme bukan :root karena variabel tema bukan sekadar CSS variable biasa. Selain menyimpan nilai seperti warna atau ukuran, @theme juga memberi tahu Tailwind untuk membuat utility class baru yang bisa langsung kamu gunakan di HTML. Karena @theme punya fungsi tambahan, Tailwind memakai sintaks khusus agar kamu mendefinisikannya secara eksplisit. Variabel tema juga harus didefinisikan di level atas (tidak boleh di dalam selector lain atau media query). Dengan sintaks khusus ini, Tailwind bisa memastikan kamu mengikuti aturan tersebut dengan benar. Kenapa Masih Tetap Menggunakan :root? Kita tetap menggunakan :root karena jika di kemudian hari ingin menambahkan fitur dark mode, akan lebih mudah untuk mendefinisikan variabel-variabelnya di sana. Penutup Dengan memahami cara melakukan kustomisasi TailwindCSS v4, kamu tidak hanya bisa membuat tampilan website yang sesuai dengan kebutuhan, tapi juga membangun sistem desain yang konsisten dan mudah dimaintain. Mulai dari mengatur warna, font, hingga membuat utility class sendiri — semua itu bisa dilakukan dengan lebih fleksibel berkat pendekatan terbaru di versi ini. Semoga panduan ini bisa jadi langkah awal yang solid bagi kamu, baik sebagai pemula maupun front-end developer, untuk semakin mahir menggunakan TailwindCSS dalam proyek nyata.

Kelas Buat Tampilan Lebih Rapi dengan Line Clamp di Tailwind CSS di BuildWithAngga

Buat Tampilan Lebih Rapi dengan Line Clamp di Tailwind CSS

Daftar Isi Apa Itu Line Clamp?Gimana Cara Pakainya di Tailwind CSS?Tambahkan Class line-clamp-{n}Kapan Harus Pakai Line Clamp?Contoh Penggunaan Line ClampDeskripsi ProdukJudul ArtikelBenefit Setelah BacaPenutup Pernah nggak sih, kamu nemuin teks panjang banget yang nggak bisa muat di satu baris atau lebih? Misalnya, judul artikel atau deskripsi produk yang kebanyakan kata, jadi nggak enak dipandang kalau nggak dibatasi. Nah, di sinilah fitur line clamp dari Tailwind CSS datang buat jadi penyelamat! Jadi, daripada teks kamu kegulung panjang dan kacau, kamu bisa atur biar cuma tampil beberapa baris aja. Ini dia, line clamp! Apa Itu Line Clamp? Line clamp adalah teknik yang digunakan buat memotong atau membatasi jumlah baris teks yang muncul di sebuah elemen. Jadi, kalau misalnya teksnya panjang banget, kita bisa tentuin berapa banyak baris yang akan tampil, dan sisanya bakal terpotong secara otomatis dengan ... di akhir. Gampangnya, ini kayak memberikan batasan panjang teks yang tampil di halaman. Contohnya, kalau kamu punya deskripsi produk atau artikel yang panjang banget, kamu bisa bilang ke browser, "Tampilkan cuma 3 baris aja, sisanya biarin terpotong." Dan, voila! Teksnya jadi lebih rapi tanpa harus ngubah konten. Gimana Cara Pakainya di Tailwind CSS? Di Tailwind CSS, line clamp udah didukung dengan class bawaan yang bisa langsung kamu pakai tanpa perlu konfigurasi tambahan. Berikut adalah langkah-langkah gampang buat pake line clamp: 1. Tambahkan Class line-clamp-{n} Tailwind CSS udah nyediain utility class untuk line clamp, yang bisa kamu pake langsung buat nentuin berapa baris yang mau ditampilkan. Cukup tambahkan class line-clamp-{n} ke elemen teks yang mau dibatasi, di mana {n} adalah jumlah baris yang kamu inginkan. Kapan Harus Pakai Line Clamp? Deskripsi produk panjang – Kalau kamu jualan produk dan deskripsinya terlalu panjang, line clamp bisa bantu tampilkan cuma bagian yang penting aja, biar lebih rapi.Judul artikel – Kalau di website kamu ada banyak artikel dengan judul panjang, line clamp bisa bantu bikin tampilan lebih konsisten dan bersih.Kalimat atau teks yang berubah-ubah – Misalnya, kalau teksnya dari API atau user-generated content yang bisa panjang atau pendek, line clamp bisa atur tampilannya supaya nggak berantakan. Contoh Penggunaan Line Clamp Deskripsi Produk Misalnya kamu punya deskripsi produk di e-commerce, dan deskripsinya kadang panjang banget: <p class="line-clamp-2"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus laoreet, erat in interdum dictum, felis ipsum egestas sapien, eget cursus enim neque non felis. Sed cursus nisi ligula, vel egestas lorem aliquam sit amet. Donec fringilla nulla non metus viverra, sed euismod enim tincidunt. Aenean ac est nec purus tincidunt fermentum. Ut ac ultricies erat, vitae facilisis lorem. Ut aliquam felis nisi, a sollicitudin ligula bibendum in. </p> Sebelum diberi Line Clamp : Before Line Clamp Setelah diberi Line Clamp : After Line Clamp Di sini, line-clamp-2 bakal ngebatasi teks hanya sampai 2 baris. Kalau deskripsinya lebih panjang, sisa teksnya bakal tersembunyi, dan hanya 2 baris pertama yang muncul. Judul Artikel Kalau kamu punya list artikel dan judulnya panjang banget, ini cara cepat buat nerapin line clamp: <h2 class="line-clamp-1"> BuildWithAngga BuildWithAngga BuildWithAngga BuildWithAngga </h2> Sebelum diberi Line Clamp : Before Line Clamp Setelah diberi Line Clamp : After Line Clamp Dengan line-clamp-1, kamu bakal nampilin hanya 1 baris pertama dari judul. Sisanya akan terpotong, jadi tampilan halaman tetap bersih. Benefit Setelah Baca ✅ Tampilan Lebih Rapi ✅ Praktis dan Cepat ✅ Meningkatkan UX Penutup Line clamp di Tailwind CSS adalah solusi yang super praktis buat ngebatasi jumlah baris teks yang muncul di halaman. Ini bener-bener ngebantu banget buat ngejaga tampilan tetap rapi tanpa harus khawatir teks yang kebanyakan bikin halaman jadi berantakan. Jadi, kapanpun kamu perlu menampilkan teks panjang dalam bentuk yang lebih kompak, tinggal pake class line-clamp-{n} aja. Jadi, ga usah bingung lagi dengan teks yang nggak berujung—line clamp siap jadi penyelamat tampilan website kamu! 😎

Kelas Cara Efektif Mengelola Layout dengan Utility Flex pada Tailwind CSS di BuildWithAngga

Cara Efektif Mengelola Layout dengan Utility Flex pada Tailwind CSS

Daftar Isi flex Itu Apa Sih?Utility flex yang Wajib Kamu TauMembuat Navbar Sederhana Memakai flexPenutup Di dunia Tailwind CSS yang penuh warna dan utility bertebaran ke mana-mana, ada satu utility yang menurutku gak boleh dilewatkan sama sekali. Namanya: flex Iya, flex. Simpel, pendek, tapi super berpengaruh. Bisa dibilang, flex ini adalah tulang punggung layout di hampir semua komponen modern. Mau bikin navbar? Butuh flex. Mau bikin card dengan tombol di bawah kanan? Pakai flex. Mau nyusun dua kolom berdampingan? Lagi-lagi: flex. flex Itu Apa Sih? Dalam Tailwind, flex adalah utility yang mengaktifkan sistem Flexbox di elemen HTML. Artinya, kamu bisa ngatur posisi anak-anak elemennya (child elements) dengan jauh lebih mudah dan fleksibel. (Makanya namanya flex kan?) Setelah kamu menambahkan class="flex" ke suatu elemen, kamu bisa pakai utility tambahan buat ngatur: Arah itemnya (horizontal atau vertikal)Posisi itemnya (di tengah, di kanan, di kiri, dll)Jarak antar itemnyaApakah item bisa pindah baris kalau kelebihan Utility flex yang Wajib Kamu Tau Utility TailwindFungsi CepatnyaflexAktifkan Flexboxflex-rowSejajarkan item ke samping (default)flex-colSusun item ke bawahitems-centerRata tengah vertikaljustify-centerRata tengah horizontaljustify-betweenItem paling kiri dan kanangap-x-* / gap-y-*Ngatur jarak horizontal / vertikal antar itemflex-wrapItem bisa turun ke baris baru kalau kelebihan Membuat Navbar Sederhana Memakai flex <div class="flex items-center justify-between p-4 bg-white shadow-md"> <h1 class="text-lg font-bold">Brand</h1> <ul class="flex gap-6 text-sm"> <li><a href="#">Home</a></li> <li><a href="#">About</a></li> <li><a href="#">Contact</a></li> </ul> </div> Di contoh ini: flex bikin elemen sejajar secara horizontalitems-center bikin semuanya sejajar secara vertikaljustify-between bikin logo di kiri, menu di kanangap-6 bikin menu-nya ada jarak Preview : Navbar Example Penutup Utility flex di Tailwind CSS bukan cuma penting, tapi wajib dikuasai. Hampir semua bagian dari website modern — mulai dari navbar, kartu produk, hero section, hingga footer — semuanya bisa dengan mudah diatur pakai flex. Kalau kamu baru belajar Tailwind, kuasai flex dulu. Dengan itu aja, kamu udah bisa bikin tampilan website yang rapi, responsif, dan modern banget.

Kelas Panduan Menggunakan Tag <img> dengan Benar Saat Mengubah Desain Figma Menjadi Kode agar Gambar Tetap Tampil Sempurna di BuildWithAngga

Panduan Menggunakan Tag <img> dengan Benar Saat Mengubah Desain Figma Menjadi Kode agar Gambar Tetap Tampil Sempurna

Daftar Isi PendahuluanPersiapanLangkah-Langkah Mudah Ekspor Gambar di FigmaOptimasi Gambar di HTMLPenutup Pendahuluan Saat melakukan slicing desain Figma ke HTML, salah satu elemen penting yang perlu diperhatikan adalah penggunaan tag &lt;img&gt;. Meskipun terlihat sederhana, penggunaan tag &lt;img&gt; yang kurang tepat dapat menyebabkan berbagai masalah seperti gambar pecah, tidak responsif, hingga tampilan layout yang berantakan saat gambar diganti. Pada artikel ini, kita akan membahas cara menggunakan tag &lt;img&gt; yang benar saat slicing desain dari Figma ke HTML, agar gambar tetap tampil optimal di berbagai perangkat dan tidak rusak saat diganti. Dengan mengikuti praktik terbaik ini, proses pengembangan antarmuka akan lebih stabil dan efisien. Sebagai studi kasus, kita akan menggunakan desain dari shaynakit.com, yaitu Pastilaris SaaS Website Design, untuk menunjukkan implementasi tag &lt;img&gt; yang baik dan benar. Persiapan Figma fileCode Editor (VSCode direkomendasikan) Langkah-Langkah Mudah Ekspor Gambar di Figma Pilih gambar yang akan di ekspor, pada sidebar kanan bagian Export klik ikon +. Pilih PNG kemudian atur resolusi ke 3x atau lebih tinggi agar gambar tidak pecah, defaultnya adalah 1x. Jika sudah sesuai klik Export. Figma Ekspor Gambar Lakukan hal yang sama untuk aset lainnya, tapi pada kasus ini sebelum mengekspor gambar kita perlu sembunyikan dulu efek Drop Shadow caranya klik ikon mata pada bagian Effects. Nantinya kita akan membuat kostum Drop Shadow menggunakan TailwindCSS. Figma Ekspor Gambar Optimasi Gambar di HTML Kurang lebih kodenya akan seperti berikut: &lt;div class="relative shrink-0 w-&#91;456px] h-&#91;510px]"> &lt;img src="./assets/images/thumbnails/testimonial.png" alt="image" class="absolute w-&#91;350px] h-&#91;470px] left-10 bottom-0 rounded-&#91;26px] object-cover" /> &lt;img src="./assets/images/thumbnails/growth.png" alt="image" class="absolute w-&#91;174px] h-&#91;94px] top-0 left-0 rounded-2xl drop-shadow-custom object-cover" /> &lt;img src="./assets/images/thumbnails/funding.png" alt="image" class="absolute w-&#91;136px] h-&#91;160px] bottom-&#91;50px] right-0 rounded-2xl drop-shadow-custom object-cover" /> &lt;/div> Jika diperhatikan, pada setiap tag &lt;img&gt; terdapat class object-cover. Class ini berfungsi untuk menjaga proporsi gambar agar tidak terlihat gepeng atau terdistorsi saat dimuat dalam ukuran tertentu. Dengan object-cover, gambar akan mengisi seluruh area yang disediakan tanpa mengubah aspek rasio aslinya. Maka hasilnya akan seperti berikut ini: Local Result Sekarang, coba kita hapus class object-cover dan ganti gambar dengan URL berikut: &lt;https://plus.unsplash.com/premium_photo-1661772836015-317b6968401b?q=80&amp;w=1470&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D> Maka kodenya akan menjadi seperti ini: &lt;div class="relative shrink-0 w-&#91;456px] h-&#91;510px]"> &lt;img src="&lt;https://plus.unsplash.com/premium_photo-1661772836015-317b6968401b?q=80&amp;w=1470&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D>" alt="image" class="absolute w-&#91;350px] h-&#91;470px] left-10 bottom-0 rounded-&#91;26px] " /> &lt;img src="&lt;https://plus.unsplash.com/premium_photo-1661772836015-317b6968401b?q=80&amp;w=1470&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D>" alt="image" class="absolute w-&#91;174px] h-&#91;94px] top-0 left-0 rounded-2xl drop-shadow-custom" /> &lt;img src="&lt;https://plus.unsplash.com/premium_photo-1661772836015-317b6968401b?q=80&amp;w=1470&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D>" alt="image" class="absolute w-&#91;136px] h-&#91;160px] bottom-&#91;50px] right-0 rounded-2xl drop-shadow-custom" /> &lt;/div> Maka hasilnya akan seperti ini: Hasil ketika tanpa object-cover Sekarang tambahkan class object-cover di setiap tag img &lt;div class="relative shrink-0 w-&#91;456px] h-&#91;510px]"> &lt;img src="&lt;https://plus.unsplash.com/premium_photo-1661772836015-317b6968401b?q=80&amp;w=1470&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D>" alt="image" class="absolute w-&#91;350px] h-&#91;470px] left-10 bottom-0 rounded-&#91;26px] object-cover" /> &lt;img src="&lt;https://plus.unsplash.com/premium_photo-1661772836015-317b6968401b?q=80&amp;w=1470&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D>" alt="image" class="absolute w-&#91;174px] h-&#91;94px] top-0 left-0 rounded-2xl drop-shadow-custom object-cover" /> &lt;img src="&lt;https://plus.unsplash.com/premium_photo-1661772836015-317b6968401b?q=80&amp;w=1470&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D>" alt="image" class="absolute w-&#91;136px] h-&#91;160px] bottom-&#91;50px] right-0 rounded-2xl drop-shadow-custom object-cover" /> &lt;/div> Makan hasilnya akan seperti ini Hasil ketika ditambah class object-cover Penutup Itulah pembahasan lengkap tentang cara menggunakan tag &lt;img&gt; yang benar saat slicing desain dari Figma ke HTML. Dengan memahami penggunaan class seperti object-cover, memilih format gambar yang tepat, serta menjaga aspek rasio, kamu bisa memastikan tampilan gambar tetap rapi, responsif, dan tidak rusak saat diganti. Semoga tutorial ini membantu kamu dalam proses konversi desain Figma ke kode yang lebih stabil dan profesional. Jangan ragu untuk terus bereksperimen dan menerapkan best practice lainnya dalam pengembangan front-end.

Kelas Cara Mengubah Angka Menjadi Format Mata Uang (Dollar, Rupiah, dan lain-lain) dengan JavaScript di BuildWithAngga

Cara Mengubah Angka Menjadi Format Mata Uang (Dollar, Rupiah, dan lain-lain) dengan JavaScript

Daftar Isi PendahuluanPersiapanMembuat Fungsi JavaScriptFungsi formatCurrencyContoh Penggunaan formatCurrency:Fungsi getDefaultLocaleKeuntungan Pendekatan IniBonus: Mengubah Angka Menjadi Compact NumberFungsi compactNumberContoh Penggunaan compactNumber:Kapan Menggunakan?Contoh HTML Utuh Untuk Tampil di BrowserPenutup Pendahuluan Dalam pengembangan web, terutama saat membangun aplikasi e-commerce atau sistem keuangan, menampilkan angka dalam format mata uang yang tepat jadi hal yang cukup penting. JavaScript, sebagai salah satu bahasa utama di sisi frontend, menyediakan cara praktis untuk mengubah angka biasa menjadi format mata uang seperti Dollar ($), Rupiah (Rp), Euro (€), dan lainnya. Berkat fitur bawaan seperti Intl.NumberFormat, proses ini bisa dilakukan dengan mudah dan fleksibel. Di artikel ini, kamu akan belajar cara yang simpel dan efisien untuk mengonversi angka ke format mata uang menggunakan JavaScript dilengkapi dengan contoh kode yang bisa langsung dicoba. Sebagai bonus, kita juga akan bahas bagaimana cara menampilkan angka besar ke dalam format compact seperti 1.5M, 2K, dan sebagainya yang sangat cocok untuk tampilan dashboard, analitik, atau media sosial. Persiapan Code Editor (VSCode direkomendasikan)Node.js versi 22 ke atas Membuat Fungsi JavaScript JavaScript menyediakan cara praktis untuk mengubah angka menjadi format mata uang melalui Intl.NumberFormat. Artikel ini akan membahas dua fungsi reusable yang bisa kamu pakai untuk melakukan konversi ini secara skalabel dan mudah dipelihara. Fungsi formatCurrency Fungsi ini mengubah angka menjadi format mata uang sesuai dengan kode mata uang dan locale yang kamu tentukan. /** * Convert number to currency format * @param {number} amount - Angka yang ingin diformat * @param {string} currencyCode - Kode mata uang (misalnya: "USD", "IDR", "EUR") * @param {string} &#91;locale] - (Opsional) Locale seperti "en-US" atau "id-ID" * @returns {string} - Angka yang sudah diformat dalam bentuk mata uang */ function formatCurrency(amount, currencyCode, locale = getDefaultLocale(currencyCode)) { return new Intl.NumberFormat(locale, { style: 'currency', currency: currencyCode, maximumFractionDigits: 2 }).format(amount); } Contoh Penggunaan formatCurrency: formatCurrency(1000, 'USD'); // $1,000.00 formatCurrency(1500000, 'IDR'); // Rp1.500.000,00 formatCurrency(99.99, 'EUR'); // 99,99 € Fungsi ini juga mendukung parameter locale jika kamu ingin override default-nya: formatCurrency(1000, 'USD', 'en-GB'); // US$1,000.00 Fungsi getDefaultLocale Agar formatCurrency tidak perlu selalu menerima locale, kita bisa menentukan default locale berdasarkan kode mata uang menggunakan fungsi ini: /** * Mengembalikan default locale berdasarkan kode mata uang * @param {string} currencyCode * @returns {string} locale yang direkomendasikan */ function getDefaultLocale(currencyCode) { const currencyLocaleMap = { USD: 'en-US', IDR: 'id-ID', EUR: 'de-DE', JPY: 'ja-JP', GBP: 'en-GB', CNY: 'zh-CN', AUD: 'en-AU' // Tambahkan mata uang lain sesuai kebutuhan }; return currencyLocaleMap&#91;currencyCode] || 'en-US'; // fallback ke en-US } Kamu bisa menambahkan lebih banyak mata uang dan locale ke dalam objek currencyLocaleMap sesuai kebutuhan aplikasi. Keuntungan Pendekatan Ini Scalable: Bisa menambahkan mata uang dan locale baru dengan mudahReusable: Tinggal panggil fungsi kapan saja di mana sajaMaintainable: Terpisah jadi dua fungsi modular yang gampang diaturFleksibel: Bisa override locale secara manual jika dibutuhkan Bonus: Mengubah Angka Menjadi Compact Number Fitur compact number sangat berguna untuk menampilkan angka besar dengan cara yang singkat dan mudah dibaca, seperti: 1,000 → 1K1,500,000 → 1.5M Fungsi compactNumber: /** * Mengubah angka besar menjadi format compact (K, M, B) * @param {number} number - Angka yang ingin diringkas * @param {string} &#91;locale="en-US"] - Locale opsional * @returns {string} - Angka ringkas seperti 1.5K, 2M */ function compactNumber(number, locale = "en-US") { return new Intl.NumberFormat(locale, { notation: "compact", compactDisplay: "short", maximumFractionDigits: 1, }).format(number); } Contoh Penggunaan compactNumber: compactNumber(1000); // 1K compactNumber(1500000); // 1.5M compactNumber(999000000); // 999M compactNumber(1200000, "id-ID"); // 1,2 jt (untuk bahasa Indonesia) Kapan Menggunakan? formatCurrency(): Menampilkan angka sebagai mata uang lokalcompactNumber(): Menampilkan angka besar secara singkat &amp; efisien Contoh HTML Utuh Untuk Tambil di Browser &lt;!DOCTYPE html> &lt;html lang="en"> &lt;head> &lt;meta charset="UTF-8" /> &lt;meta name="viewport" content="width=device-width, initial-scale=1.0" /> &lt;title>Format Currency&lt;/title> &lt;script src="&lt;https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4>">&lt;/script> &lt;/head> &lt;body class="bg-gray-100 min-h-screen flex items-center justify-center"> &lt;div class="max-w-md w-full bg-white p-6 rounded-3xl shadow-md"> &lt;h1 class="text-2xl font-bold mb-4 text-center">Currency Formatting&lt;/h1> &lt;div class="mb-3 p-3 rounded-full bg-gray-200 text-black font-semibold" id="usd">&lt;/div> &lt;div class="mb-3 p-3 rounded-full bg-gray-200 text-black font-semibold" id="idr">&lt;/div> &lt;div class="mb-3 p-3 rounded-full bg-gray-200 text-black font-semibold" id="eur">&lt;/div> &lt;/div> &lt;script> function getDefaultLocale(currencyCode) { switch (currencyCode) { case "USD": return "en-US"; case "IDR": return "id-ID"; case "EUR": return "de-DE"; // German locale default: return "en-US"; } } function formatCurrency(amount, currencyCode, locale = getDefaultLocale(currencyCode)) { return new Intl.NumberFormat(locale, { style: "currency", currency: currencyCode, maximumFractionDigits: 2, }).format(amount); } document.getElementById("usd").textContent = `USD: ${formatCurrency(1000, "USD")}`; document.getElementById("idr").textContent = `IDR: ${formatCurrency(1500000, "IDR")}`; document.getElementById("eur").textContent = `EUR: ${formatCurrency(99.99, "EUR")}`; &lt;/script> &lt;/body> &lt;/html> Hasilnya: HTML Result Penutup Dengan hanya beberapa baris kode menggunakan Intl.NumberFormat, kamu bisa: Menampilkan angka dalam format Rupiah, Dollar, Euro, Yen, dllMeringkas angka besar jadi 1K, 1.5M, atau 2BMenyesuaikan tampilan berdasarkan locale pengguna Fungsi ini sangat cocok digunakan dalam: Aplikasi e-commerceDashboard analitikLaporan keuanganTampilan user-friendly di web &amp; mobile

Kelas Panduan Lengkap Setup TailwindCSS v4 di Proyek HTML, CSS, dan JavaScript di BuildWithAngga

Panduan Lengkap Setup TailwindCSS v4 di Proyek HTML, CSS, dan JavaScript

Daftar Isi Persiapan ProyekLangkah-Langkah Membuat ProyekCara Membuat Folder Baru di Windows dan MacMenggunakan File Explorer (Windows)Menggunakan Finder (Mac)Menggunakan Command Line (Terminal)Tips TambahanCara Install Tailwind CSS v4 Secara Manual di Proyek HTML, CSS, dan JavaScriptTutorial Install dan Menggunakan live-server untuk HTML, CSS, dan JavaScriptPenutup Persiapan Proyek Sebelum memulai, pastikan kalian sudah memiliki: Code Editor (VSCode direkomendasikan)Node.js versi 22 ke atas Langkah-Langkah Membuat Proyek Berikut ini langkah-langkah yang perlu kalian lakukan untuk membuat proyek TailwindCSS 4: Cara Membuat Folder Baru di Windows dan Mac Membuat folder atau direktori adalah langkah penting saat memulai proyek pemrograman seperti HTML, CSS, dan JavaScript. Berikut ini beberapa cara untuk membuat folder baru di Windows dan Mac. Menggunakan File Explorer (Windows) Buka File Explorer (Tekan Windows + E).Arahkan ke lokasi tempat Anda ingin membuat folder.Klik kanan di area kosong, pilih New &gt; Folder.Beri nama folder, misalnya: tailwind-project.Tekan Enter. Menggunakan Finder (Mac) Buka Finder.Arahkan ke lokasi yang diinginkan (misalnya Desktop atau Documents).Klik kanan dan pilih New Folder.Beri nama folder, misalnya: tailwind-project.Tekan Return (Enter di Mac). Menggunakan Command Line (Terminal) Di Windows (Command Prompt): Buka Command Prompt atau Terminal (untuk Windows 11).Arahkan ke direktori tujuan, contoh: cd Desktop Buat folder baru: mkdir tailwind-project Di Mac/Linux (Terminal): Buka Terminal.Arahkan ke direktori tujuan: cd ~/Desktop Buat folder baru: mkdir tailwind-project Tips Tambahan Gunakan nama folder tanpa spasi (gunakan tanda hubung atau underscore) agar kompatibel dengan terminal dan pemrograman web.Jika Anda membuat proyek Tailwind CSS, folder ini bisa digunakan sebagai tempat menyimpan file index.html, style.css, dan konfigurasi lainnya. Cara Install Tailwind CSS v4 Secara Manual di Proyek HTML, CSS, dan JavaScript Buka proyek menggunakan Code Editor lalu buat struktur proyek seperti berikut ini: tailwind-project/ ├── src/ │ ├── assets/ │ │ ├── images/ │ │ │ ├── backgrounds/ │ │ │ ├── icons/ │ │ │ └── thumbnails/ │ ├── js/ │ │ └── main.js │ ├── index.html │ ├── input.css └───└── output.css *(generated by Tailwind CLI)* Inisialisasi Proyek, jalankan perintah berikut di terminal (pastikan berada di dalam folder tailwind-project): npm init -y Install tailwindcss dan @tailwindcss/cli npm install tailwindcss @tailwindcss/cli Maka struktur proyek akan menjadi seperti ini: tailwind-project/ ├── **node_modules/** *(node.js)* ├── src/ │ ├── assets/ │ │ ├── images/ │ │ │ ├── backgrounds/ │ │ │ ├── icons/ │ │ │ └── thumbnails/ │ ├── js/ │ │ └── main.js │ ├── index.html │ ├── input.css │ └── output.css (*generated by Tailwind CLI*) ├── **package-lock.json** *(node.js)* └── **package.json** *(node.js)* Import Tailwind di file CSS dengan cara buka file input.csslalu tambahkan kode berikut: @import "tailwindcss"; Build proyek menggunakan Tailwind CLI dengan perintah berikut, maka akan ada file baru yaitu output.css npx @tailwindcss/cli -i ./src/input.css -o ./src/output.css --watch Selanjutnya buka file index.html lalu tambahkan kode berikut: &lt;!doctype html> &lt;html> &lt;head> &lt;meta charset="UTF-8"> &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"> &lt;link href="./output.css" rel="stylesheet"> &lt;/head> &lt;body> &lt;h1 class="text-3xl font-bold underline"> Hello BuildWithAngga! &lt;/h1> &lt;/body> &lt;/html> Class seperti text-3xl, font-bold, dan underline adalah contoh utility dari Tailwind CSS. Kalian bisa jelajahi lebih banyak class lainnya di dokumentasi resminya. Tutorial Install dan Menggunakan live-server untuk HTML, CSS, dan JavaScript Untuk melihat tampilan website, Anda bisa membuka file index.html langsung di browser. Namun, agar proses development lebih efisien, disarankan menggunakan library seperti live-server. Dengan live-server, setiap kali Anda menyimpan perubahan pada file HTML, browser akan melakukan reload otomatis sehingga mempercepat alur pengembangan. Install live-server secara global npm install -g live-server Buka Terminal dan pastikan kalian sudah berada di direktori proyek, pada tutorial ini tailwind-project.Jalankan perintah berikut: live-server --watch="src/index.html" Perintah tersebut menjalankan live-server dengan mode pemantauan (watch) hanya pada file src/index.html.Buka browser maka hasilnya akan seperti ini: Local Result Penutup Sebagai penutup, dengan mengikuti Panduan Lengkap Setup TailwindCSS v4 di Proyek HTML, CSS, dan JavaScript, kini kita telah berhasil mengintegrasikan Tailwind secara langsung menggunakan Tailwind CLI. Pendekatan ini sangat cocok untuk proyek kecil hingga menengah karena lebih ringan, cepat, dan tidak memerlukan konfigurasi tambahan seperti PostCSS atau bundler. Anda dapat langsung menulis class utility Tailwind di HTML dan melihat hasilnya secara real-time. Jangan lupa untuk terus eksplorasi dokumentasi resmi TailwindCSS agar makin mahir dalam membangun tampilan website yang modern dan responsif. Selamat mencoba!

Kelas Kesalahan Umum Seorang UI Engineer : Salah Memahami Pembuatan Garis Horizontal dan Vertikal di BuildWithAngga

Kesalahan Umum Seorang UI Engineer : Salah Memahami Pembuatan Garis Horizontal dan Vertikal

Daftar Isi Tidak Membedakan Jenis GarisPakai &lt;hr> Untuk Garis HorizontalPakai &lt;div> Untuk Garis VertikalTidak Konsisten Antara Visual dan SemantikPenutup Sebagai UI Engineer, kita sering banget ngurusin tampilan - tampilan kecil yang kelihatannya sepele tapi sebenarnya penting banget. Salah satunya adalah masalah garis. Baik itu garis Horizontal (mendatar) maupun Vertikal (tegak). Banyak yang keliru soal ini, padahal cara pakainya beda loh. 1. Tidak Membedakan Jenis Garis Pertama, penting banget buat tahu kalau garis itu ada 2 tipe : Garis Horizontal (Mendatar, Memisahkan antar bagian)Garis Vertikal (Tegak, Memisahkan konten kiri dan kanan) Masalahnya, kadang semua garis dibikin pakai &lt;div&gt; aja, padahal ada tag HTML khusus yang bisa bantu bikin kode lebih rapi dan semantik. 2. Pakai &lt;hr&gt; Untuk Garis Horizontal Nah, untuk buat garis horizontal, sebenarnya HTML sudah menyediakan tag khusus, yaitu : &lt;hr> Tag &lt;hr&gt; ini udah otomatis punya border bawaan. jadi kita nggak perlu nambahin border lagi kayak gini : &lt;hr class="border border-gray-300"> &lt;!-- Ini sebenarnya nggak perlu --> Yang lebih benar dan simpel &lt;hr class="mt-4"> &lt;!-- Cukup tambahin margin kalau mau ngatur jarak --> Kalau mau ganti warna garis atau tebalnya, baru deh tambahin border untuk modifikasi tebalnya dan bisa juga pakai border-red-600 untuk mengganti warnanya. Contoh : Lentera - Header Horizontal Line Seperti yang kita lihat di konten bagian kiri ada 1 garis horizontal (Mendatar) yang pakai tag &lt;hr&gt; &lt;hr class="w-1/2 border-&#91;#ECECEC]"> 3. Pakai &lt;div&gt; Untuk Garis Vertikal Buat garis yang berdiri (vertikal), jangan pakai &lt;hr&gt; karena itu khusus horizontal. Di sini justru kita boleh banget pakai &lt;div&gt; Contohnya kayak gini : &lt;div class="w-1 h-6 bg-gray-300">&lt;/div> Kita atur lebarnya pakai w-1 yang artinya punya lebar 1 px dan tinggi sesuai kebutuhan dan juga bg-gray-300 buat atur warnanya, Gampang kan? Contoh : Lentera - The Part That Has Lines Vertical Line &lt;div class="w-&#91;1px] h-&#91;96px] bg-&#91;#D5D9E0]">&lt;/div> Bisa dilihat pada gambar di atas, ini adalah contoh penggunaan garis vertikal yang misahin antar konten kiri dan kanan. 4. Tidak Konsisten Antara Visual dan Semantik Kadang kita bikin tampilan asal keliatan bagus aja, tapi ngelupain arti semantik dari elemen yang kita pakai. Padahal kalau tim lain baca kode kita, mereka bisa bingung. Jadi, penting banget buat konsisten antara tampilan dan struktur HTML nya. Penutup Jenis GarisPakai ApaCatatanGaris Horizontal&lt;hr&gt;Nggak perlu nambah border yaGaris Vertikal&lt;div&gt;Pakai w-xx, h-xx, dan bg-xxx Intinya, garis itu emang kecil, tapi kalau salah pakai bisa bikin kode jadi nggak rapi dan susah maintenance. Yuk mulai biasain pakai elemen yang tepat, biar tampilan cakep dan kode tetap rapi.

Kelas Tips Membuat Animasi Scroll Selalu Berjalan di BuildWithAngga

Tips Membuat Animasi Scroll Selalu Berjalan

Daftar Isi PendahuluanContoh HasilHTML DasarCSSBodyContainer SliderContent SlidernyaGanti ImagePenutup Pendahuluan Slider yang bergerak secara terus-menerus menjadi elemen kunci dalam menciptakan pengalaman pengguna yang dinamis dan menyenangkan, dengan arus visual yang tak terputus, perhatian pengunjung akan tertahan lebih lama, meningkatkan interaksi dan kepuasan karena pada slider mengandung banyak informasi yang sampai kepada user lewat pergerakannya. Menggunakan Tailwind CSS, pembuatan slider otomatis ini dapat dilakukan dengan langkah-langkah sederhana yang memanfaatkan utilitas kelas yang terstruktur untuk mengatur animasi dan responsivitas secara efisien. Teknik slicing yang tepat pada desain modern tidak hanya memudahkan implementasi, tetapi juga menghasilkan tampilan yang memukau, menjadikan setiap pergeseran slide sebuah sajian visual yang menarik dan estetis. Contoh Hasil HTML Dasar Buat folder lalu buat index.html di dalamnya dan letakkan kode berikut ke dalam file tersebut : &lt;!DOCTYPE html> &lt;html lang="en"> &lt;head> &lt;meta charset="UTF-8" /> &lt;meta name="viewport" content="width=device-width, initial-scale=1.0" /> &lt;title>HeyHao - Slider&lt;/title> &lt;script src="&lt;https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4>">&lt;/script> &lt;/head> &lt;body>&lt;/body> &lt;/html> Maka penjelasannya : &lt;!DOCTYPE html&gt; Mendeklarasikan dokumen sebagai HTML5, memastikan browser merender halaman dalam “standards mode” modern, bukan “quirks mode” lama yang berusaha kompatibel dengan HTML versi terdahulu. &lt;html lang="en"&gt; Menjadi elemen akar dari seluruh dokumen HTML, dengan atribut lang="en" untuk menandakan bahasa utama adalah Inggris berguna bagi mesin pencari (SEO), pembaca layar, dan sistem lokalisasi. &lt;head&gt; … &lt;/head&gt; Bagian metadata dan instruksi untuk browser; tidak menampilkan konten langsung. Berisi pengaturan karakter, responsivitas, judul, dan pemanggilan library. &lt;meta charset="UTF-8" /&gt; Menetapkan set karakter UTF-8, mendukung hampir semua aksara dunia (termasuk non-Latin dan emoji) dan mencegah masalah tampilan karakter rusak. &lt;meta name="viewport" content="width=device-width, initial-scale=1.0" /&gt; Mengatur viewport agar lebarnya sama dengan lebar layar perangkat dan skala awal 100%, sehingga desain responsif bekerja dengan baik di ponsel dan tablet. &lt;title&gt;HeyHao - Slider&lt;/title&gt; Menentukan judul halaman yang tampil di tab browser dan sebagai judul di hasil pencarian sebaiknya singkat, deskriptif, dan mencantumkan kata kunci utama. &lt;script src="&lt;https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4&gt;"&gt;&lt;/script&gt; Mengimpor Tailwind CSS via CDN dalam mode “browser” untuk kompilasi utilitas on-the-fly, memudahkan prototyping tanpa setup build tool; namun kurang ideal untuk produksi karena performa dan kontrol tree-shaking. &lt;body&gt;&lt;/body&gt; Wadah konten utama yang akan dirender (teks, gambar, slider, dan elemen interaktif lainnya). Saat ini kosong Anda dapat menambahkan struktur slider dengan utilitas Tailwind dan logika JavaScript agar berjalan otomatis. CSS Lalu lanjut pada CSS nya untuk menentukan pergerakan animas dan durasinya seperti berikut : &lt;!DOCTYPE html> &lt;html lang="en"> &lt;head> &lt;meta charset="UTF-8" /> &lt;meta name="viewport" content="width=device-width, initial-scale=1.0" /> &lt;title>HeyHao - Slider&lt;/title> &lt;script src="&lt;https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4>">&lt;/script> &lt;!-- dari sini --> &lt;style> .slide-top { animation: slide-top 20s infinite linear; } .slide-bottom { animation: slide-bottom 20s infinite linear; } @keyframes slide-top { 0% { transform: translateY(0); } 100% { transform: translateY(-100%); } } @keyframes slide-bottom { 0% { transform: translateY(-100%); } 100% { transform: translateY(0); } } &lt;/style> &lt;!-- sampai sini --> &lt;/head> &lt;body>&lt;/body> &lt;/html> Maka penjelasannya : &lt;!-- dari sini --&gt; hingga &lt;!-- sampai sini --&gt; Komentar HTML yang menandai awal dan akhir blok kustom CSS, memudahkan pengembang untuk mengenali area styling khusus pada kode. &lt;style&gt; … &lt;/style&gt; Tag HTML untuk menuliskan CSS langsung di dalam dokumen, digunakan di sini untuk mendefinisikan animasi slider tanpa membuat file CSS eksternal. .slide-top { animation: slide-top 20s infinite linear; } Kelas CSS yang menerapkan animasi slide-top selama 20 detik, berjalan terus-menerus (infinite) dengan kecepatan konstan (linear), memindahkan elemen dari posisi awal ke atas. .slide-bottom { animation: slide-bottom 20s infinite linear; } Kelas CSS yang menerapkan animasi slide-bottom dengan durasi dan perilaku sama, namun memindahkan elemen dari atas ke posisi akhir asalnya. @keyframes slide-top { … } Mendefinisikan rangkaian frame animasi dengan nama slide-top: 0% { transform: translateY(0); }: elemen berada pada posisi vertikal awal.100% { transform: translateY(-100%); }: elemen digeser ke atas sebesar 100% tinggi elemen itu sendiri. @keyframes slide-bottom { … } Mendefinisikan rangkaian frame animasi dengan nama slide-bottom: 0% { transform: translateY(-100%); }: elemen dimulai dari posisi terangkat penuh ke atas (di luar layar atas).100% { transform: translateY(0); }: elemen kembali ke posisi vertikal awalnya. Dengan setup ini, elemen yang diberi kelas slide-top akan terus bergerak naik, sedangkan elemen dengan kelas slide-bottom bergerak turun, menciptakan efek slider yang saling berkelanjutan. Body Lalu sekarang lanjut ke area tag body, pada area ini kita harus membuat Container Slider dulu, maka : Container Slider perhatikan yang mengandung &lt;!-- dari sini --> &lt;!-- sampai sini --> &lt;!DOCTYPE html> &lt;html lang="en"> &lt;head> &lt;meta charset="UTF-8" /> &lt;meta name="viewport" content="width=device-width, initial-scale=1.0" /> &lt;title>HeyHao - Slider&lt;/title> &lt;script src="&lt;https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4>">&lt;/script> &lt;style> .slide-top { animation: slide-top 20s infinite linear; } .slide-bottom { animation: slide-bottom 20s infinite linear; } @keyframes slide-top { 0% { transform: translateY(0); } 100% { transform: translateY(-100%); } } @keyframes slide-bottom { 0% { transform: translateY(-100%); } 100% { transform: translateY(0); } } &lt;/style> &lt;/head> &lt;body> &lt;!-- dari sini --> &lt;div class="flex min-h-screen bg-&#91;#EBEDF2]"> &lt;section id="ContainerBackgroundImages" class="flex w-full max-w-&#91;685px]"> &lt;span class="fixed w-&#91;685px] top-0 left-0 right-0 h-&#91;160px] bg-&#91;linear-gradient(0deg,rgba(235,237,242,0)_0%,#EBEDF2_100%)] z-10">&lt;/span> &lt;span class="fixed w-&#91;685px] bottom-0 left-0 right-0 h-&#91;160px] bg-&#91;linear-gradient(0deg,#EBEDF2_0%,rgba(235,237,242,0)_100%)] z-10">&lt;/span> &lt;section id="BackgroundImages" class="fixed top-0 h-screen w-full max-w-&#91;685px] overflow-hidden"> &lt;div class="flex justify-center gap-&#91;10px]"> &lt;!-- konten slidernya --> &lt;/div> &lt;/section> &lt;/section> &lt;!-- Container Inputs --> &lt;/div> &lt;!-- sampai sini --> &lt;/body> &lt;/html> Maka Penjelasan : &lt;div class="flex min-h-screen bg-[#EBEDF2]"&gt; Membuat kontainer utama dengan display flex, tinggi minimum setara viewport penuh (min-h-screen), dan background warna abu-abu muda #EBEDF2, sehingga seluruh area layar menjadi fleksibel dan memiliki latar yang konsisten. &lt;section id="ContainerBackgroundImages" class="flex w-full max-w-[685px]"&gt; Bagian wrapper untuk gambar latar slider, bersifat fleksibel (flex), memenuhi lebar penuh parent (w-full), namun dibatasi maksimal lebar 685px (max-w-[685px]) agar slider tidak melebar di layar yang sangat lebar. &lt;span class="fixed w-[685px] top-0 left-0 right-0 h-[160px] bg-[linear-gradient(0deg,rgba(235,237,242,0)_0%,#EBEDF2_100%)] z-10"&gt;&lt;/span&gt; Elemen overlay gradient atas: fixed: selalu di posisi view port.w-[685px], h-[160px]: ukuran tepat 685×160px.top-0 left-0 right-0: melekat di sisi atas.bg-[linear-gradient(...)]: menambahkan fade dari transparan ke warna latar.z-10: menempatkan overlay di atas layer konten gambar.&lt;span class="fixed w-[685px] bottom-0 left-0 right-0 h-[160px] bg-[linear-gradient(0deg,#EBEDF2_0%,rgba(235,237,242,0)_100%)] z-10"&gt;&lt;/span&gt; Elemen overlay gradient bawah: Serupa dengan overlay atas, tetapi bottom-0 untuk melekat di bawah.Gradien terbalik, membuat efek fade di bagian bawah kontainer.&lt;section id="BackgroundImages" class="fixed top-0 h-screen w-full max-w-[685px] overflow-hidden"&gt; Kontainer gambar latar yang diposisikan fixed memenuhi seluruh tinggi layar (h-screen) dan lebar hingga 685px, dengan overflow-hidden untuk menyembunyikan bagian gambar yang keluar area, menciptakan efek slider yang bersih. &lt;div class="flex justify-center gap-[10px]"&gt; Wadah bagi elemen slide: flex untuk layout horizontal.justify-center meratakan konten di tengah.gap-[10px] memberi jarak 10px antar slide.&lt;!-- konten slidernya --&gt; Komentar penanda di mana markup elemen slide (misalnya &lt;img&gt; atau &lt;div&gt;) akan diletakkan untuk membentuk slider. &lt;!-- Container Inputs --&gt; Komentar penanda bagi kontainer input biasanya tempat form atau kontrol navigasi slider diletakkan di samping konten gambar. Content Slidernya Perhatikan pada : &lt;!-- slider 1 --> dan &lt;!-- akhir slider 2 --> &lt;!DOCTYPE html> &lt;html lang="en"> &lt;head> &lt;meta charset="UTF-8" /> &lt;meta name="viewport" content="width=device-width, initial-scale=1.0" /> &lt;title>HeyHao - Slider&lt;/title> &lt;script src="&lt;https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4>">&lt;/script> &lt;style> .slide-top { animation: slide-top 20s infinite linear; } .slide-bottom { animation: slide-bottom 20s infinite linear; } @keyframes slide-top { 0% { transform: translateY(0); } 100% { transform: translateY(-100%); } } @keyframes slide-bottom { 0% { transform: translateY(-100%); } 100% { transform: translateY(0); } } &lt;/style> &lt;/head> &lt;body> &lt;div class="flex min-h-screen bg-&#91;#EBEDF2]"> &lt;section id="ContainerBackgroundImages" class="flex w-full max-w-&#91;685px]"> &lt;span class="fixed w-&#91;685px] top-0 left-0 right-0 h-&#91;160px] bg-&#91;linear-gradient(0deg,rgba(235,237,242,0)_0%,#EBEDF2_100%)] z-10">&lt;/span> &lt;span class="fixed w-&#91;685px] bottom-0 left-0 right-0 h-&#91;160px] bg-&#91;linear-gradient(0deg,#EBEDF2_0%,rgba(235,237,242,0)_100%)] z-10">&lt;/span> &lt;section id="BackgroundImages" class="fixed top-0 h-screen w-full max-w-&#91;685px] overflow-hidden"> &lt;div class="flex justify-center gap-&#91;10px]"> &lt;!-- dari sini --> &lt;!-- slider 1 --> &lt;div class="flex flex-col w-&#91;380px] gap-&#91;10px]"> &lt;div class="slider w-&#91;380px]"> &lt;div class="slide-top flex flex-col gap-&#91;10px]"> &lt;img src="assets/images/thumbnails/auth-1.png" alt="image" /> &lt;img src="assets/images/thumbnails/auth-2.png" alt="image" /> &lt;img src="assets/images/thumbnails/auth-3.png" alt="image" /> &lt;img src="assets/images/thumbnails/auth-1.png" alt="image" /> &lt;img src="assets/images/thumbnails/auth-2.png" alt="image" /> &lt;img src="assets/images/thumbnails/auth-3.png" alt="image" /> &lt;/div> &lt;/div> &lt;div class="slider w-&#91;380px]"> &lt;div class="slide-top flex flex-col gap-&#91;10px]"> &lt;img src="assets/images/thumbnails/auth-1.png" alt="image" /> &lt;img src="assets/images/thumbnails/auth-2.png" alt="image" /> &lt;img src="assets/images/thumbnails/auth-3.png" alt="image" /> &lt;img src="assets/images/thumbnails/auth-1.png" alt="image" /> &lt;img src="assets/images/thumbnails/auth-2.png" alt="image" /> &lt;img src="assets/images/thumbnails/auth-3.png" alt="image" /> &lt;/div> &lt;/div> &lt;/div> &lt;!-- akhir slider 1 --> &lt;!-- slider 2 --> &lt;div class="flex flex-col w-&#91;275px] gap-&#91;10px]"> &lt;div class="slider w-&#91;275px]"> &lt;div class="slide-bottom flex flex-col gap-&#91;10px]"> &lt;img src="assets/images/thumbnails/auth-4.png" alt="image" /> &lt;img src="assets/images/thumbnails/auth-5.png" alt="image" /> &lt;img src="assets/images/thumbnails/auth-6.png" alt="image" /> &lt;img src="assets/images/thumbnails/auth-4.png" alt="image" /> &lt;img src="assets/images/thumbnails/auth-5.png" alt="image" /> &lt;img src="assets/images/thumbnails/auth-6.png" alt="image" /> &lt;/div> &lt;/div> &lt;div class="slider w-&#91;275px]"> &lt;div class="slide-bottom flex flex-col gap-&#91;10px]"> &lt;img src="assets/images/thumbnails/auth-4.png" alt="image" /> &lt;img src="assets/images/thumbnails/auth-5.png" alt="image" /> &lt;img src="assets/images/thumbnails/auth-6.png" alt="image" /> &lt;img src="assets/images/thumbnails/auth-4.png" alt="image" /> &lt;img src="assets/images/thumbnails/auth-5.png" alt="image" /> &lt;img src="assets/images/thumbnails/auth-6.png" alt="image" /> &lt;/div> &lt;/div> &lt;/div> &lt;!-- akhir slider 2 --> &lt;!-- sampai sini --> &lt;/div> &lt;/section> &lt;/section> &lt;!-- Container Inputs --> &lt;/div> &lt;/body> &lt;/html> Penjelasan : &lt;!-- slider 1 --&gt; Slider ini terdiri dari dua blok vertikal identik yang masing-masing berukuran 380px (“slider w-[380px]”) dan disusun ulang secara vertikal (flex flex-col gap-[10px]), dengan jarak 10px antar elemen. .slider (wrapper) Menjadi kontainer berukuran tepat 380px yang menahan elemen slide, dan berfungsi sebagai “viewport” tempat animasi slide-top terjadi. .slide-top flex flex-col gap-[10px] Mengaplikasikan animasi slide-top (bergerak ke atas selama 20 detik secara linear dan terus-menerus) pada daftar gambar yang disusun secara kolom dengan jarak 10px. Duplikasi gambar: Setiap thumbnail muncul dua kali berurutan (auth-1, auth-2, auth-3, kemudian ulang) untuk memastikan ketika animasi mendorong daftar ke atas, alur loop-nya mulus tanpa jeda.&lt;img src="…auth-1.png" alt="image" /&gt; dkk. Thumbnail gambar slide yang akan berpindah bergantian. Atribut alt sederhana “image” bisa ditingkatkan dengan deskripsi yang lebih spesifik untuk aksesibilitas. &lt;!-- slider 2 --&gt; Mirip dengan slider pertama, namun lebih sempit (275px) dan animasinya terbalik (slide-bottom). Kontainer Utama div.flex.flex-col.w-[275px].gap-[10px] menata dua slider di dalam kolom selebar 275px, dengan gap 10px. .slider w-[275px] Viewport untuk setiap animasi, membatasi lebar slide agar tidak melebihi 275px. .slide-bottom flex flex-col gap-[10px] Menerapkan animasi slide-bottom (dimulai dari -100% ke posisi semula dalam 20 detik, linear, infinite) pada set gambar. Duplikasi thumbnail (auth-4, auth-5, auth-6) memastikan loop visual tanpa jeda. Thumbnail Gambar Gambar auth-4.png hingga auth-6.png diulang dua kali agar saat animasi kembali ke awal, transisinya halus dan tidak ada “lompat” pada pergantian. Dengan struktur ini, kedua slider menampilkan deretan gambar yang bergerak terus-menerus slider pertama naik (slide-top) dan slider kedua turun (slide-bottom) menciptakan kontras visual dinamis pada tampilan modern Kalian. Di dalam setiap blok “slider 1 atau 2” kamu akan melihat dua buah elemen &lt;div class="slider w-[...px]"&gt; yang struktur dan isinya identik. Alasan utamanya ada dua adalah untuk menciptakan efek looping yang mulus tanpa jeda Ganti Image Setelah itu tinggal kalian ubah gambar sesuai dengan yang kalian inginkan. Penutup dengan mengintegrasikan slider otomatis yang halus dan menarik melalui Tailwind CSS, kalian tidak hanya menghadirkan tampilan modern yang memukau, tetapi juga mengukuhkan kesan profesional dan interaktif yang akan membuat pengguna selalu ingin kembali ke halaman kalian. Bila ingin mempelajari secara detail kalian berada di tempat yang tepat, akses kelas BuildWithAngga dan rasanya kekayaan ilmu yang akan kalian dapatkan. Terimakasih!