Slicing Figma ke HTML : Hero Section - Broperti

Daftar Isi

  • Sebelum Mulai Slicing
  • Struktur HTML
  • Navigasi Atas
  • Judul dan Deskripsi
  • Form Filter Properti
  • Full Kode
  • Penutup
Broperti - Hero Section

Kalau dilihat sekilas, hero section itu kelihatan gampang tinggal pasang logo, bikin menu, tulis judul gede, kasih gambar background, selesai. Tapi waktu mulai nyoba slicing beneran, baru deh kerasa :

  • “Lho kok spacing nya beda?”
  • “Ini teks kenapa nggak center center amat ya?”
  • “Kenapa form nya geser padahal di figma lurus?”

Nah, di artikel ini kita akan bahas bareng cara slicing Hero Section - Broperti, dari desain Figma ke HTML menggunakan Tailwind CSS.

Sebelum Mulai Slicing

Biasanya godaan terbesar waktu buka FIgma itu langsung aja bikin div kasih class dan jalan terus. Tapi percayalah, tanpa paham dulu pola layout nya kamu bakal bolak balik revisi. Jadi, sebelum ngetik satu baris pun, ada baiknya kita pelajari dulu strukturnya.

Di Hero Broperti ini ada 3 bagian utama :

  • Navigasi (Logo, Menu, Tombol Akun)
  • Headline + Deskripsi
  • Form filter properti

Dan semuanya ditaruh di atas background gambar yang full screen.

Struktur HTML

Kita mulai dengan membungkus semuanya dalam <header> dan kasih id="hero" :

<header id="hero"> ... </header>
  • <header> ... </header>

Ini adalah tag semantik HTML5 yang dipakai buat menandai bagian header dari sebuah halaman atau section. Ini penanda “bagian atas” dari konten penting. Bukan cuma buat SEO, tapi juga bantu screen reader memahami struktur halaman.

  • id="hero”

Ini adalah atribut HTML yang ngasih identitas unik ke elemen tersebut. Berfungsi buat nandain bahwa ini adalah Hero Section bagian yang biasanya pertama kali dilihat pengunjung saat buka website.

CSS untuk mengatur background image biar full :

#hero {
		background-image: url(assets/images/photos/hero-background.png);
		background-size: cover;
		background-position: center;
		background-repeat: no-repeat;
		width: 100vw;
		height: 800px;
}
  • #hero { ... }

Ini artinya kita lagi ngasih gaya khusus ke elemen yang punya id="hero".

  • background-image: url(...)

Ini buat ngasih gambar latar belakang ke hero section.

  • url(assets/images/photos/hero-background.png)

Artinya gambar di-load dari folder assets/images/photos.

  • background-size: cover

Gambar background-nya di-zoom biar nutupin seluruh area hero.

  • background-position: center

Ini ngatur posisi gambar supaya bagian tengahnya yang tampil.

  • background-repeat: no-repeat

Gambar nggak diulang (no tile/tile-tile gitu).

  • width: 100vw

vw = viewport width (lebar layar browser). 100vw artinya lebarnya 100% dari layar browser, jadi bener-bener full lebar.

  • height: 800px

Ini ngatur tinggi si hero section: 800 pixel.

Navigasi Atas

Bagian nav ini isinya adalah :

  • Logo di kiri
  • Menu di tengah
  • Tombol “My Account” di kanan

Kita pakai flex dan kasih justify-between biar rapi :

<nav class="px-[90px] pt-[40px] flex items-center justify-between">
  • px-[90px]

Ini ngatur padding kiri dan kanan jadi 90 pixel, supaya isi <nav> gak nempel ke pinggir layar.

  • pt-[40px]

Ini buat ngasih jarak dari atas (padding top) sebesar 40 pixel, jadi nav-nya turun dikit dari atas halaman.

  • flex

Ini aktifin mode flexbox di <nav>, biar elemen-elemen di dalamnya (kayak logo dan menu) bisa disusun sejajar secara horizontal.

  • items-center

Ini bikin semua item di dalam flex disejajarkan di tengah secara vertikal, jadi tampilannya lebih rapi.

  • justify-between

Ini bikin elemen pertama nempel kiri dan elemen terakhir nempel kanan, dengan jarak kosong maksimal di antara mereka. Cocok buat layout logo di kiri, menu di kanan.

Menu nya pakai <ul> dan dikasih gap-x-[43px] biat spasinya sesuai desain. Untuk hover, tinggal mainin hover:text-[#83D987] dan hover:font-medium .

Judul dan Deskripsi

Setelah nav, lanjut ke konten utama : Judul besar dan deskripsi kecil di bawahnya. Tailwind bantu banget buat ngatur Typography tanpa ribet.

<h1 class="text-[48px] text-white font-semibold leading-[65px] max-w-[461px]">
		Discover Your <br> Own Future Empire Easy Cozy
</h1>
<p class="text-[16px] text-[#9094A2] max-w-[352px] mt-[20px] leading-[32px]">
		Saving much time by finding the match one using our algorithm...
</p>
  • text-[48px]

Ini ngatur ukuran hurufnya jadi 48 pixel, supaya judulnya besar dan mencolok.

  • text-white

Warna teksnya diubah jadi putih, biar kontras sama background.

  • font-semibold

Ini bikin hurufnya agak tebal, tapi nggak setebal bold.

  • leading-[65px]

Ini ngatur jarak antar baris teksnya jadi 65 pixel, supaya teks gak dempet-dempet pas ada <br>.

  • max-w-[461px]

Ini batasi lebar maksimum elemen jadi 461 pixel, biar teks nggak kepanjangan ke samping.

Di sini penting banget perhatiin ukuran teks dan line height biar visualnya enak dilihat, dan sama persis dengan desain.

Form Filter Properti

Bagian paling “Interaktif” di hero ini adalah : Form pencarian properti berdasarkan lokasi dan tipe.

Strukturnya simpel : 2 dropdown dan satu tombol

<form action="" class="flex items-end gap-x-[21px] text-[#020B2A]">
  <div>
    <div class="w-[230px]">
      <label id="location" class="text-[14px] font-normal">Location</label>
      <select
        name="location"
        id="location"
        class="mt-[4px] appearance-none w-full focus:outline-none bg-[#F7F7F9] px-[10px] py-[10.5px] rounded-[6px] text-[16px] font-medium"
      >
        <option value="">Sumatra Tenggara</option>
        <option value="">Sumatra Selatan</option>
        <option value="">Sumatra Utara</option>
        <option value="">Sumatra Barat</option>
      </select>
    </div>
  </div>
  <div>
    <div class="w-[230px]">
      <label id="type" class="text-[14px] font-normal">Type</label>
      <select
        name="type"
        id="type"
        class="mt-[4px] appearance-none w-full focus:outline-none bg-[#F7F7F9] px-[10px] py-[10.5px] rounded-[6px] text-[16px] font-medium"
      >
        <option value="">Apartement</option>
        <option value="">Townhouse</option>
        <option value="">Mansion</option>
        <option value="">Resort</option>
      </select>
    </div>
  </div>
  <div>
    <button
      type="submit"
      class="px-[30px] py-[21.5px] text-[#132039] bg-[#83D987] hover:bg-[#70bb74] duration-300 transition-all cursor-pointer rounded-[4px] font-medium text-[18px]"
    >
      Explore Now
    </button>
  </div>
</form>
  • form

Tag HTML untuk membungkus input, biasanya digunakan untuk kirim data ke server.

  • flex

Bikin elemen di dalam <form> disusun horizontal (sejajar).

  • items-end

Semua elemen di dalam form ditempatkan sejajar di bagian bawah (end), supaya button dan dropdown rata bawah.

  • gap-x-[21px]

Ngatur jarak horizontal antar elemen jadi 21 pixel, supaya gak nempel.

  • text-[#020B2A]

Semua teks di dalam form warnanya jadi biru gelap kehitaman, biar lebih readable.

  • w-[230px]

Lebar div dibatasi jadi 230 pixel, buat ngebatesin lebar dropdown.

  • label

Tag untuk menjelaskan input, berguna juga untuk aksesibilitas.

  • text-[14px]

Ukuran teks label: 14 pixel, kecil dan elegan.

  • font-normal

Berarti hurufnya normal (nggak tebal).

  • select

Tag untuk bikin dropdown pilihan.

  • mt-[4px]

Ngasih jarak 4 pixel ke atas dari label.

  • appearance-none

Hilangkan tampilan default browser (panah dropdown bawaan), biar bisa dikustom pakai CSS.

  • w-full

Dropdown ngikutin lebar div induknya (230px).

  • focus:outline-none

Waktu elemen ini difokuskan (klik/tab), outline bawaan browser dihilangkan.

  • bg-[#F7F7F9]

Warna latar belakang dropdown jadi abu terang (#F7F7F9), bikin tampilannya bersih.

  • px-[10px] py-[10.5px]

Padding dalam dropdown: horizontal 10px, vertikal 10.5px. Buat isinya gak terlalu sempit.

  • rounded-[6px]

Bikin sudut dropdown agak membulat (radius 6px), biar modern.

  • text-[16px]

Ukuran teks dropdown: 16 pixel.

  • font-medium

Hurufnya agak tebal sedikit, bukan normal tapi juga bukan bold.

  • button

Tag untuk tombol aksi. Di sini fungsinya untuk kirim form.

  • type="submit"

Ini penting biar waktu tombol diklik, form akan dikirim (submit).

  • px-[30px] py-[21.5px]

Padding tombol: horizontal 30px, vertikal 21.5px. Biar kelihatan besar dan gampang diklik.

  • text-[#132039]

Warna teks: biru gelap (#132039).

  • bg-[#83D987]

Warna background tombol: hijau muda (#83D987).

  • hover:bg-[#70bb74]

Waktu kursor diarahkan ke tombol, warnanya jadi hijau sedikit lebih gelap.

  • duration-300 transition-all

Efek transisinya halus selama 300ms saat hover (warna berubah pelan, nggak langsung).

  • cursor-pointer

Bikin kursor berubah jadi tangan saat diarahkan ke tombol, tanda tombol bisa diklik.

  • rounded-[4px]

Sudut tombol dibikin sedikit membulat (4px), tampak modern.

  • font-medium

Teks di tombol agak tebal.

  • text-[18px]

Ukuran huruf tombol: 18 pixel, cukup besar buat CTA.

Dropdown-nya pakai select, dikasih appearance-none biar styling default browser hilang. Background-nya abu muda (#F7F7F9), dan semuanya dibungkus dalam div putih dengan padding dan rounded corner

Full Kode

<header id="hero">
  <nav class="px-[90px] pt-[40px] flex items-center justify-between">
    <div>
      <a href="">
        <img
          src="assets/images/logos/logo.svg"
          alt=""
          class="w-[53.4px] h-[60px] shrink-0"
        />
      </a>
    </div>
    <div>
      <ul
        class="text-[18px] font-normal text-[#9094A2] flex items-center gap-x-[43px]"
      >
        <li class="font-medium text-[#83D987]"><a href="">Home</a></li>
        <li
          class="hover:font-medium hover:text-[#83D987] transition-all duration-300"
        >
          <a href="">Featured</a>
        </li>
        <li
          class="hover:font-medium hover:text-[#83D987] transition-all duration-300"
        >
          <a href="">Stories</a>
        </li>
        <li
          class="hover:font-medium hover:text-[#83D987] transition-all duration-300"
        >
          <a href="">Partner</a>
        </li>
        <li
          class="hover:font-medium hover:text-[#83D987] transition-all duration-300"
        >
          <a href="">About</a>
        </li>
      </ul>
    </div>
    <div>
      <a href="">
        <div
          class="px-[31.5px] py-[11.5px] bg-[#83D987] hover:bg-[#70bb74] duration-300 transition-all text-[18px] text-[#132039] font-medium rounded-[4px]"
        >
          My Account
        </div>
      </a>
    </div>
  </nav>
  <section class="px-[90px] mt-[119px]">
    <h1
      class="text-[48px] text-white font-semibold leading-[65px] max-w-[461px]"
    >
      Discover Your <br />
      Own Future Empire Easy Cozy
    </h1>
    <p
      class="text-[16px] text-[#9094A2] max-w-[352px] mt-[20px] leading-[32px]"
    >
      Saving much time by finding the match one using our algorithm that we
      designed
    </p>
    <div class="bg-white p-[21px] w-fit mt-[60px] rounded-[6px]">
      <form action="" class="flex items-end gap-x-[21px] text-[#020B2A]">
        <div>
          <div class="w-[230px]">
            <label id="location" class="text-[14px] font-normal"
              >Location</label
            >
            <select
              name="location"
              id="location"
              class="mt-[4px] appearance-none w-full focus:outline-none bg-[#F7F7F9] px-[10px] py-[10.5px] rounded-[6px] text-[16px] font-medium"
            >
              <option value="">Sumatra Tenggara</option>
              <option value="">Sumatra Selatan</option>
              <option value="">Sumatra Utara</option>
              <option value="">Sumatra Barat</option>
            </select>
          </div>
        </div>
        <div>
          <div class="w-[230px]">
            <label id="type" class="text-[14px] font-normal">Type</label>
            <select
              name="type"
              id="type"
              class="mt-[4px] appearance-none w-full focus:outline-none bg-[#F7F7F9] px-[10px] py-[10.5px] rounded-[6px] text-[16px] font-medium"
            >
              <option value="">Apartement</option>
              <option value="">Townhouse</option>
              <option value="">Mansion</option>
              <option value="">Resort</option>
            </select>
          </div>
        </div>
        <div>
          <button
            type="submit"
            class="px-[30px] py-[21.5px] text-[#132039] bg-[#83D987] hover:bg-[#70bb74] duration-300 transition-all cursor-pointer rounded-[4px] font-medium text-[18px]"
          >
            Explore Now
          </button>
        </div>
      </form>
    </div>
  </section>
</header>

Penutup

Slicing desain hero section ini sebenarnya nggak ribet, asal kamu:

  • Paham dulu struktur layout-nya
  • Perhatiin spacing dan ukuran font sesuai desain
  • Jangan asal pakai grid atau flex — sesuaikan dengan kebutuhan layout

Dengan pendekatan step-by-step seperti ini, kamu bisa slicing desain apapun dari Figma ke HTML + Tailwind dengan lebih percaya diri. 🎯