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 tampilan dan nuansa {i>website<i} di perangkat genggam. Hal itu berubah dengan meningkatnya ponsel yang dilengkapi browser web bawaan.

Desain web responsif mendorong pola pikir yang mempertanyakan asumsi. Sebelumnya adalah hal yang umum untuk mengasumsikan bahwa {i>website<i} hanya akan dilihat di komputer desktop, sekarang praktik standar untuk mendesain {i>website<i} yang sama untuk ponsel dan tablet juga. Faktanya, penggunaan seluler kini telah melampaui penggunaan desktop di web.

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

Di dunia layar, kita juga dapat bereksperimen. Saat ini ada banyak perangkat yang beredar di pasaran dengan layar yang dapat dilipat. Hal ini memunculkan beberapa tantangan untuk desain Anda.

Montase ponsel foldable dalam berbagai konfigurasi.

Dua layar

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

Situs web yang membentang di dua layar. Aliran teks horizontal 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, yang 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 berjalan dari sisi ke sisi, yang membagi konten Anda menjadi dua panel, satu di atas yang lain.

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

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

Variabel lingkungan

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

Variabel lingkungan di CSS memungkinkan Anda untuk memperhitungkan intrusi perangkat yang canggung ke dalam gaya Anda. Misalnya, Anda dapat mendesain berdasarkan "notch" di 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, perbarui elemen meta yang menentukan informasi viewport:

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

Sekarang, tata letak halaman akan mengisi seluruh area pandang dan memberi dokumen dengan nilai inset yang disediakan perangkat secara aman.

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 menunjukkan variabel lingkungan untuk dua layar.
Diagram dari Microsoft Edge Explainers.

Berikut contoh tata letak dengan dua kolom, 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 ini dibagi menjadi dua layar dengan engsel mengganggu kolom yang lebih luas.

Untuk dua layar dengan engsel vertikal, tetapkan 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 dual screen 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 mengilustrasikan layanan lokasi yang dibagi menjadi dua layar, dengan peta berada di satu layar dan rute di layar lainnya.
Diagram dari Microsoft Edge Explainers.

Acara mendatang

Akankah layar perangkat foldable menjadi layar canggih berikutnya? Siapa yang tahu. Tidak ada yang bisa memperkirakan seberapa populer perangkat seluler nantinya, jadi ada baiknya untuk memiliki pikiran terbuka tentang faktor bentuk di masa mendatang.

Yang terpenting, pastikan bahwa situs Anda dapat merespons apa pun yang terjadi di masa depan. Itulah yang diberikan desain responsif kepada Anda: bukan hanya seperangkat teknik praktis, tetapi juga pola pikir yang akan melayani Anda sebaik-baiknya ketika membangun web masa depan.

Menguji pemahaman Anda

Menguji 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, lanskap terpisah.
@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, pisahkan 4 jalur.
@media (vertical-viewport-segments: 1) and (horizontal-viewport-segments: 1)
Sel tunggal, tanpa pemisahan.

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

Variabel tentang cuaca tempat pengguna berada.
Lingkungan yang salah, variabel CSS ini bukan tentang lingkungan dunia fisik tempat pengguna berada.
Variabel waktu build kustom.
Meskipun waktu build, cara kompilasi, variabel akan berguna, variabel tersebut tidak sama dengan variabel lingkungan yang ditetapkan.
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 unik atau atribut yang memengaruhi browser.
Variabel yang telah berubah warna dan lebih aman bagi lingkungan.
CSS dan variabelnya tidak dapat mengurangi dampak polusi dunia.