Konfigurasi layar

Desain web responsif dalam banyak hal merupakan reaksi terhadap ponsel. Sebelum {i>smartphone<i} muncul, sangat sedikit orang yang secara serius mempertimbangkan bagaimana seharusnya tampilan dan nuansa {i>website<i} pada perangkat genggam. Hal itu berubah dengan perkembangan pesat ponsel yang dilengkapi browser web bawaan.

Desain web responsif mendorong pola pikir yang mempertanyakan asumsi. Jika sebelumnya sebuah {i>website<i} hanya akan dilihat di komputer {i>desktop<i}, kini menjadi praktik standar untuk mendesain {i>website<i} yang sama untuk ponsel dan tablet. Faktanya, penggunaan seluler kini telah melampaui penggunaan desktop di web.

Pola pikir yang responsif ini akan membantu Anda di masa depan dengan baik. Sangat mungkin situs Anda akan dilihat pada perangkat dan layar yang bahkan tidak dapat kami bayangkan saat ini. Pola pikir ini melampaui layar. Kini orang-orang masih menggunakan perangkat tanpa layar untuk mengakses konten Anda. Asisten suara dapat menggunakan situs jika Anda menggunakan dasar HTML semantik yang kuat.

Selain itu, ada eksperimen dalam dunia layar. Saat ini, ada perangkat dengan layar foldable. Hal tersebut memperkenalkan beberapa tantangan untuk desain Anda.

Montase ponsel foldable dalam berbagai konfigurasi.

Layar ganda

Pengguna perangkat foldable dapat memilih apakah mereka ingin browser web mereka hanya menempati salah satu layar atau membentang di kedua layar. Jika browser membentang pada kedua layar, situs yang ditampilkan akan dipecah oleh engsel di antara dua layar. Kelihatannya tidak bagus.

{i>Website<i} di dua layar. Aliran horizontal teks terganggu oleh engsel di antara layar.

Segmen area pandang

Ada fitur media eksperimental yang dirancang untuk mendeteksi apakah situs Anda ditampilkan di perangkat dua layar. Nama fitur media yang diusulkan adalah viewport-segments. Ada dua varietas: horizontal-viewport-segments dan vertical-viewport-segments.

Jika fitur media horizontal-viewport-segments melaporkan nilai 2 dan vertical-viewport-segments melaporkan nilai 1, artinya engsel di perangkat berjalan dari atas ke bawah, sehingga membagi konten Anda menjadi dua panel berdampingan.

@media (horizontal-viewport-segments: 2) and (vertical-viewport-segments: 1) {
  // Styles for side-by-side screens.
}

Jika fitur media vertical-viewport-segments melaporkan nilai 2 dan horizontal-viewport-segments melaporkan nilai 1, engsel akan berjalan dari sisi ke sisi sehingga membagi konten Anda menjadi dua panel, satu di atas panel lainnya.

@media (vertical-viewport-segments: 2) and (horizontal-viewport-segments: 1) {
  // Styles for stacked screens.
}
Diagram yang menunjukkan segmen area pandang.
Diagram dari Penjelasan Microsoft Edge.

Jika vertical-viewport-segments dan horizontal-viewport-segments melaporkan nilai 1, artinya situs hanya ditampilkan di satu layar, meskipun perangkat memiliki lebih dari satu layar. Hal ini sama dengan tidak menggunakan kueri media apa pun.

Variabel lingkungan

Fitur media viewport-segments sendiri tidak akan membantu Anda mendesain menggunakan engsel yang mengganggu tersebut. Anda memerlukan cara untuk mengetahui ukuran engselnya. Di situlah variabel lingkungan dapat membantu.

Variabel lingkungan di CSS memungkinkan Anda memfaktorkan intrusi perangkat yang canggung ke dalam gaya Anda. Misalnya, Anda dapat mendesain di sekitar "notch" pada iPhone X menggunakan nilai lingkungan safe-area-inset-top, safe-area-inset-right, safe-area-inset-bottom, dan safe-area-inset-left. Kata kunci ini digabungkan dalam fungsi env().

body {
  padding-top: env(safe-area-inset-top);
  padding-right: env(safe-area-inset-right);
  padding-bottom: env(safe-area-inset-bottom);
  padding-left: env(safe-area-inset-left);
}

Variabel lingkungan berfungsi seperti properti kustom. Ini berarti Anda dapat meneruskan opsi penggantian jika variabel lingkungan tidak ada.

body {
  padding-top: env(safe-area-inset-top, 1em);
  padding-right: env(safe-area-inset-right, 1em);
  padding-bottom: env(safe-area-inset-bottom, 1em);
  padding-left: env(safe-area-inset-left, 1em);
}

Agar variabel lingkungan tersebut berfungsi di iPhone X, update elemen meta yang menentukan informasi viewport:

<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">

Sekarang tata letak halaman Anda akan menggunakan seluruh area pandang dan memberikan padding pada dokumen secara aman dengan nilai inset yang disediakan perangkat.

Untuk layar perangkat foldable, enam variabel lingkungan baru sedang diusulkan: viewport-segment-width, viewport-segment-height, viewport-segment-top, viewport-segment-left, viewport-segment-bottom, viewport-segment-right.

Diagram yang menampilkan variabel lingkungan untuk layar ganda.
Diagram dari Penjelasan Microsoft Edge.

Berikut adalah contoh tata letak dengan dua kolom yang satu kolom lebih lebar dari yang lain.

@media (min-width: 45em) {
  main {
    display: flex;
    flex-direction: row;
  }
  main article {
    flex: 2;
  }
  main aside {
    flex: 1;
  }
}

Tata letak dibagi menjadi dua layar dengan engsel menyela kolom yang lebih lebar.

Untuk layar ganda dengan engsel vertikal, setel kolom pertama menjadi lebar layar pertama dan kolom kedua menjadi lebar layar kedua.

@media (horizontal-viewport-segments: 2) and (vertical-viewport-segments: 1) {
  main article {
    flex: 1 1 env(viewport-segment-width 0 0);
  }
  main aside {
    flex: 1;
  }
}

Tata letak dibagi secara merata di dua layar tanpa gangguan yang terlihat.

Perlakukan perangkat ganda sebagai peluang. Mungkin satu layar dapat digunakan untuk menampilkan konten teks yang dapat di-scroll sementara layar lainnya menampilkan elemen tetap seperti gambar atau peta.

Diagram yang menggambarkan layanan lokasi yang terbagi menjadi dua layar, dengan peta di satu layar dan rute di layar lainnya.
Diagram dari Penjelasan Microsoft Edge.

Acara mendatang

Apakah layar perangkat foldable akan menjadi fitur besar berikutnya? Siapa yang tahu. Tidak ada yang dapat memperkirakan seberapa populer perangkat seluler, jadi ada baiknya jika Anda berpikiran terbuka tentang faktor bentuk di masa mendatang.

Yang terpenting, ada baiknya memastikan bahwa situs Anda dapat merespons apa pun yang mungkin terjadi di masa mendatang. Itulah yang diberikan desain responsif: bukan hanya serangkaian teknik praktis, melainkan pola pikir yang akan membantu Anda membangun web masa depan.

Menguji pemahaman Anda

Uji pengetahuan Anda tentang konfigurasi layar

Kueri media mana yang menargetkan perangkat foldable dalam mode lanskap terpisah?

@media (horizontal-viewport-segments: 2) and (vertical-viewport-segments: 1)
Layar dikonfigurasi dengan 2 kolom dan 1 baris, terpisah lanskap.
@media (vertical-viewport-segments: 2) and (horizontal-viewport-segments: 1)
2 baris dan 1 kolom, terpisah potret.
@media (vertical-viewport-segments: 2) and (horizontal-viewport-segments: 2)
2 baris dan 2 kolom, bagi 4 cara.
@media (vertical-viewport-segments: 1) and (horizontal-viewport-segments: 1)
Satu sel, tanpa pemisahan.

Apa yang dimaksud dengan variabel lingkungan? Misalnya env(safe-area-inset-top)

Variabel tentang cuaca pengguna.
Lingkungan yang salah, variabel CSS ini bukan merupakan lingkungan nyata tempat pengguna berada.
Variabel waktu build kustom.
Meskipun waktu build, cara yang dikompilasi, variabel berguna, tetapi tidak sama dengan variabel lingkungan yang ditentukan.
Variabel yang berisi atribut khusus browser untuk digunakan dalam menyesuaikan situs dengan browser dan perangkat tersebut.
Ini adalah cara bagi browser dan penulis untuk berkolaborasi pada konteks area pandang yang unik atau browser yang memengaruhi atribut.
Variabel yang sudah menjadi hijau dan lebih aman bagi lingkungan.
CSS dan variabelnya tidak dapat mengurangi polusi dunia.