Cara cepat membuat prototipe aplikasi dengan kisi CSS dan variabel CSS

Variabel CSS mesh dan CSS adalah alat yang ampuh untuk pengembang frontend. Yang pertama membuatnya lebih mudah untuk membuat tata letak situs web, sementara yang kedua memberikan kekuatan penuh dari lembar gaya variabel.

gambar

Pada artikel ini saya akan menunjukkan kepada Anda bagaimana menggunakan kedua alat untuk dengan cepat prototipe desain aplikasi.

Skillbox merekomendasikan: kursus online UX Analytics
Kami mengingatkan Anda: untuk semua pembaca Habr - diskon 10.000 rubel saat mendaftar untuk kursus Skillbox apa pun sesuai dengan kode promosi Habr.

Sesuaikan wadah jala


Aplikasi kami akan bekerja dengan CSS-grid, modul yang memungkinkan Anda membuat layout dengan cepat dan mengelolanya. Ini berguna, khususnya, jika Anda bekerja dengan properti grid-templat-area. (Di bawah ini saya akan menunjukkan cara menggunakannya).

Mari kita evaluasi penampilan aplikasi kita - ini adalah obrolan:

gambar

Jika kita membuka alat pengembang di Chrome, kita dapat melihat seperti apa grid itu. Seperti yang Anda lihat, ada enam kolom dan enam baris.

gambar

Berikut adalah kode untuk membuat kisi seperti itu:

.app { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; grid-template-rows: 1fr 1fr 1fr 1fr 1fr 60px; } 

Pertama, kami membuat wadah untuk itu. Kemudian kami mengatakan bahwa kami ingin mendapatkan enam kolom pada output, dan masing-masing harus selebar 1fr. Ini berarti bagian dari ruang kosong. Jadi, kami membagi ruang kosong layar menjadi enam bagian dengan lebar yang sama.

Tetapi dengan garis-garis dengan cara yang berbeda. Ketinggian masing-masing dari lima baris pertama juga 1 fr, tetapi kami membatasi ketinggian yang terakhir ke 60px bukan 1fr.

 grid-template-rows: 1fr 1fr 1fr 1fr 1fr 60px; 

Nah, sekarang kita telah menandai kisi, kita beralih ke bagian selanjutnya - penempatan elemen.

Penempatan elemen grid


Setiap "ahli waris" langsung dari wadah grid adalah elemen grid. Secara total, kami memiliki empat elemen, yang masing-masing ditempatkan dalam persegi panjang, seperti yang ditunjukkan pada gambar di bawah.

gambar

Agar elemen dapat ditempatkan persis seperti yang ditunjukkan di atas, kita perlu menggunakan properti grid-templat-area.

 .app { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; grid-template-rows: 1fr 1fr 1fr 1fr 1fr 60px; grid-template-areas: "rmmmmm" "rmmmmm" "rmmmmm" "rmmmmm" "rmmmmm" "nsssss"; } 

Setiap baris kode mewakili satu baris tabel, dan setiap karakter adalah sel kisi. Simbol secara semantik terkait dengan elemen kisi yang diwakilinya (daftar kamar, daftar pesan, formulir kamar baru, formulir pesan).

Sekarang, untuk menempatkan elemen-elemen kita sesuai dengan area-templat-templat, kita harus menggunakan simbol-simbol dengan nilai-nilai luas jaringannya Begini caranya:

 .new-room-form { grid-area: n; } .rooms-list { grid-area: r; } .message-list { grid-area: m; } .send-message-form { grid-area: s; } 

Tentu saja, kelas-kelas ini juga berlaku untuk elemen grid kami di HTML Anda. Namun, saya tidak akan membicarakan hal ini secara rinci, karena, kemungkinan besar, Anda tahu cara menambahkan kelas ke tag HTML.

Mulai saat ini kami mulai bereksperimen dengan tata letak. Kita bisa banyak berubah dengan mengubah nilai area kisi-templat.

gambar

Seperti yang ditunjukkan pada ilustrasi di atas, saya mencoba menggunakan empat tata letak yang berbeda dengan mengubah posisi elemen Daftar Kamar dan elemen bentuk ruangan baru. Satu-satunya hal yang saya ubah adalah properti grid-templat-area.

Di bawah ini adalah empat opsi ini. Cobalah untuk mencocokkan masing-masing dengan tata letak yang sesuai.

 grid-template-areas: "nmmmmm" "rmmmmm" "rmmmmm" "rmmmmm" "rmmmmm" "rsssss"; grid-template-areas: "rmmmmm" "rmmmmm" "rmmmmm" "rmmmmm" "rmmmmm" "nsssss"; grid-template-areas: "mmmmmr" "mmmmmr" "mmmmmr" "mmmmmr" "mmmmmr" "sssssn"; grid-template-areas: "mmmmmn" "mmmmmr" "mmmmmr" "mmmmmr" "mmmmmr" "sssssr"; 

Ubah warna menggunakan variabel CSS


Nah, sekarang kami akan mencoba mengubah warna aplikasi menggunakan variabel CSS. Jika Anda belum bekerja dengan mereka sampai sekarang, mari kita lihat apa itu.

gambar

gambar

Metode yang ditunjukkan pada gambar di bawah membuat membaca kode agak lebih mudah, karena, untuk berbicara, nama variabel lebih semantik daripada heksadesimal. Selain itu, metode kedua memberikan fleksibilitas besar dalam hal mengubah kode.

Mari kita lihat apa yang bisa dilakukan dengan aplikasi kita menggunakan nilai variabel yang berbeda.

 :root { --main-color: #5ea3d0; --secondary-color: white; --main-text-color: #3e5869; --secondary-text-color: #b0c7d6; --new-room-form: #d9e1e8; --send-message-form: #F5F5F5; } 

Mereka diulang 17 kali dalam tata letak kami. Tapi kami tidak akan memeriksa semua lokasi, mari kita lihat bagaimana warna utama bekerja terkait dengan warna pesan dan panel sisi kiri.

gambar

Inilah cara kami mengalahkan semuanya dalam kode.

 .rooms-list { background: var(--main-color); } .message-text { background: var(--main-color); } 

Variabel baik karena kita dapat mengedit deklarasi mereka, dan ini akan cukup untuk mengubah seluruh aplikasi. Contoh:

 :root { --main-color: red; } 

Dan inilah hasilnya:

gambar

Kita cukup mengubah deklarasi variabel di: root, yang memungkinkan kita untuk bermain dengan tampilan aplikasi.

gambar

Mari kita ganti beberapa warna di: root menggunakan palet di atas.

 :root { --main-color: #5ea3d0; --secondary-color: white; --main-text-color: #3e5869; --secondary-text-color: #b0c7d6; --new-room-form: #d9e1e8; --send-message-form: #F5F5F5; } 

Hasilnya adalah tampilan obrolan yang sama sekali berbeda:

gambar

Gabungkan kisi dan variabel


Jika kita menggabungkan semua ini, kita akan mendapatkan kesempatan untuk sepenuhnya mengubah desain obrolan kita. Ayo lakukan.

gambar

gambar

Seperti apa versi awal dibandingkan dengan yang terakhir. Seperti yang Anda lihat, saya mengubah palet dan tata letak. Satu-satunya perbedaan antara dua contoh adalah 11 baris kode yang saya soroti di sini.

 :root { --main-color: #ff66ff; --secondary-color: #fbd8fb; --main-text-color: #3e5869; --secondary-text-color: #d8b2ff; --new-room-form: #ffb2ff; --send-message-form: #d8b2ff;x } .app { display: grid; grid-template-columns: repeat(6, 1fr); grid-template-rows: 1fr 1fr 1fr 1fr 1fr 60px; grid-template-areas: "mmmmrr" "mmmmrr" "mmmmrr" "mmmmrr" "mmmmnn" "ffffff"; } 

Sangat keren

Skillbox merekomendasikan:

Source: https://habr.com/ru/post/id418067/


All Articles