Web Monospace
(owickstrom.github.io)- Halaman eksperimental yang menata elemen web agar selaras di atas grid per karakter, menampilkan teks, tabel, diagram, dan media dengan estetika terminal ala 1970-an
- Mengonversi dokumen Markdown sederhana dengan Pandoc, lalu merender HTML semantik ke grid monospace menggunakan CSS dan JavaScript yang sangat sedikit
- Responsivitas ditangani dengan cara mengecil berdasarkan satuan ukuran karakter, bukan piksel; tabel otomatis menyesuaikan dengan grid, tetapi kolom yang dapat melebar dibatasi hanya satu
- Mencakup elemen standar seperti paragraf biasa, garis pemisah,
<details>, daftar, daftar berbentuk pohon, tabel, formulir, kontainergrid, gambar ASCII berbasis<pre>, serta gambar dan video - Seluruh kode sumber tersedia di GitHub, sehingga bagian yang diperlukan dapat di-fork atau disalin dan digunakan sesuai ketentuan lisensi
Halaman web yang disusun dengan grid karakter
- Font monospace bagi sebagian pengguna dapat terasa lebih mudah dibaca, lebih konsisten, dan lebih indah daripada font proporsional
- Halaman ini adalah eksperimen teknis dan kreatif untuk menyusun semua elemen sebagai web monospace
- Implementasinya dilakukan dengan mengonversi dokumen Markdown menggunakan Pandoc, lalu menempatkan HTML semantik di atas grid karakter dengan CSS dan sedikit JavaScript
- Tata letak responsif mengecil sesuai lebar layar berdasarkan satuan ukuran karakter, bukan piksel
- Tujuannya adalah membuat elemen HTML standar dapat bekerja secara alami di dalam grid monospace tanpa pekerjaan rumit tambahan
Elemen yang didukung dan cara penataannya
- Markup dasar mencakup paragraf biasa, garis pemisah horizontal, dan elemen
<details> - Daftar mendukung daftar berpoin biasa dan daftar bernomor; dengan menambahkan kelas
treepada daftar tak berurutan, struktur pohon yang tampak seperti sistem berkas dapat ditampilkan - Tabel otomatis disesuaikan dengan grid monospace dan bekerja secara responsif
- Namun kolom yang dapat melebar dibatasi hanya pada satu kolom
- Formulir juga termasuk dalam cakupan dukungan, dan ditempatkan di atas grid karakter yang sama bersama elemen standar lainnya
- Jika kelas
gridditambahkan ke kontainer, sel-selnya membagi ruang horizontal secara merata- Karena karakteristik monospace dipertahankan, lebar keseluruhan mungkin tidak selalu menjadi 100%
- Untuk membuat sel tertentu mengisi ruang tersisa, atur
flex-grow: 1;pada sel tersebut
- Dengan tag
<pre>dan box-drawing characters, gambar bergaya ASCII dapat dibuat- Dapat dibuat lebih menonjol dengan membungkusnya dalam
<figure>dan<figcaption> - Contohnya mencakup diagram pengiriman pesan dan diagram batang
- Dapat dibuat lebih menonjol dengan membungkusnya dalam
- Objek media seperti gambar dan video juga didukung
- Media diperluas hingga lebar halaman, dan padding bawah ditambahkan untuk menjaga grid monospace
- Seluruh kode sumber tersedia di github.com/owickstrom/the-monospace-web
- Sumber inspirasi desainnya adalah U.S. Graphics Company
1 komentar
Komentar Hacker News
Sedang mengumpulkan daftar halaman berfont monospace: https://wonger.dev/posts/monospace-dump#web. Saat ini ada sekitar 50
Penanganan spasi itu sulit, dan jika meninggalkan font proporsional, keterbacaan juga sedikit berkurang
Menurut saya kerning pada font proporsional membuat perbedaan besar dalam cara mata mengenali bentuk kelompok huruf
Teks monospace oke untuk tempat yang terstruktur dan diberi penyorotan seperti editor kode, tetapi sebaiknya dihindari untuk tulisan panjang
Meski begitu, terutama untuk bagan Unicode dan ASCII art, tampilannya benar-benar indah
Misalnya seperti
15 space, 1 V, 3 U, 1 V,15 space, 5 U,12 space, 2 x, 5 U, 2 x, dan setelah sekitar 250 baris selesai, muncul gambar Jordan melakukan dunk yang bisa dicetakSepertinya ini thread yang tepat untuk menanyakan hal ini. Beberapa tahun lalu saya pernah melihat tulisan, mungkin semacam panduan video game, yang dibuat agar dibaca dengan font monospace, dan seluruh ribuan barisnya rata kiri-kanan secara sempurna hanya lewat pemilihan kata
Ada yang tahu itu apa dan punya tautannya?
[0] http://www.catb.org/esr/jargon/html/B/bricktext.html
Agak mengejutkan bahwa konsep ini benar-benar menghilang dari hasil pencarian Google
https://github.com/laravel/laravel/blob/11.x/config/database...
Selama beberapa tahun saya ingin membuat ekstensi Visual Studio Code yang, saat mengetik, meratakan komentar kiri-kanan termasuk pemenggalan kata dengan tanda hubung, sambil mengizinkan spasi tambahan bila perlu
Selain sedikit mencari algoritma dan library terkait, saya belum memulainya karena tampaknya cukup rumit
Saya sempat mencoba memakai sesuatu seperti
fmtataupar, tetapi akhirnya menerima bahwa kecuali dilakukan manual, saya harus menyerah pada komentar yang tersusun rapi, dan sering kali satu perubahan kecil memicu pengerjaan ulang banyak baris sehingga terlalu memakan waktuIdentifier panjang sebisa mungkin tidak ingin dipotong di tengah baris, dan juga harus menangani daftar bertingkat, tabel, blok kode, ASCII art di dalam komentar, tanda hubung di dalam kata serta pembedaan tanda hubung untuk pemenggalan, juga komentar terstruktur seperti komentar dokumen XML atau tag Javadoc
Setelah melihat Badness 0 dari Tom7, saya sempat berpikir untuk melemparnya ke LLM, tetapi jika harus berjalan real-time dan tidak boleh ada komentar halusinasi, menurut saya itu belum praktis
Apakah fitur seperti ini sudah ada, atau ada fondasi yang bisa membuat pembuatan ekstensi ini tidak menjadi pekerjaan setahun penuh?
Monospace itu sendiri tidak mengganggu
Yang mengganggu adalah line break paksa
Ada situs web “retro” yang pada dasarnya memakai tag
preDi ponsel, itu menjadi dinding teks berukuran kecil, mode baca tidak berfungsi, dan jika diputar horizontal, scrollbar bisa muncul atau bisa juga tidak
Hampir satu-satunya keluhan saya tentang mailing list teknis masa kini juga line break paksa dan tata letak yang kaku
Dalam video yang saya tonton hari ini, hal seperti ini disebut indie web; katanya ini adalah filosofi untuk menentang algoritma dan merangkul hal-hal yang dulu membuat web hebat
Hal-hal seperti RSS, blog pribadi, forum, dan webring
Saya juga mulai membuat satu sendiri, dan rasanya cukup menyenangkan
Bagus karena enak dilihat, semantik, dan responsif, tetapi pada dasarnya font berlebar tetap tidak terlalu cocok untuk teks isi.
Saya pernah membaca artikel blog dengan isi berlebar tetap di beberapa situs, dan memang tidak masalah, tetapi menurut saya lebar proporsional adalah arah yang tepat.
Menurut saya ini jauh lebih baik daripada halaman-halaman “indah” yang mencoba memberi nuansa majalah cetak lama.
Di blog saya, karena penglihatan saya kurang baik dan saya memakai pengaturan perbesaran, saya menggunakan lebar tetap, tetapi saya menganggap aksesibilitas itu penting, jadi saya selalu penasaran pilihan mana yang lebih mudah dibaca untuk semua orang.
Terlepas dari hal lain, menurut saya kelas CSS
tree ul-listcukup bagus sampai-sampai layak masuk spesifikasi HTML sebagai tag. Ini adalah komponen yang sangat berguna.Jarak antarbaris terlalu sempit, sehingga berdampak buruk pada keterbacaan. Paragraf panjang dengan isi sepadat ini sulit dibaca.
Namun tabel dan grafik karakter memang membutuhkan jarak baris yang sempit seperti ini.
Masalahnya adalah memakai grid karakter yang sama untuk grafis dan teks.
Sepertinya ini bisa diredakan dengan memakai font yang x-height-nya terutama rendah, sehingga menyisakan lebih banyak ruang di atas dan bawah huruf.
Untuk tinggi baris, saya setuju. Dengan ukuran font 16px dan 19,2px, itu hanya 1,2 kali, jadi terlalu sesak. Jika dijadikan 24px, jauh lebih baik.
Namun di mata saya, tinggi baris yang lebih besar tidak tampak memengaruhi tabel atau grafik karakter. Dengan penyesuaian seperti ini, gaya lebar tetap masih cukup bertahan dengan baik.
Edit: sepertinya saya paham maksudnya. Itu merusak konsep grid tetap si penulis. Bisa dicek dengan menambahkan
line-height: 24pxpada elemenplalu menyalakan “debug mode” penulis untuk melihat grid-nya.javascript: (function() {(function() {const textElements = document.querySelectorAll('p, span, h1, h2, h3, h4, h5, h6, li, td, th');textElements.forEach((element) => {const textColor = getComputedStyle(element).getPropertyValue('color');element.style.fontFamily = 'system-ui, -apple-system, sans-serif';element.style.WebkitTextStroke = \0.4px ${textColor}`;});location.hash = "";history.replaceState("", "", location.pathname);})();})();`https://caiorss.github.io/bookmarklet-maker/
Karena kata-kata berlebar tetap membuat “bentuk” kata lebih mirip satu sama lain dibanding kata-kata dengan lebar proporsional.
OpenBSD sejak beberapa tahun lalu mulai menetapkan font konsolnya ke Spleen.
Sayang tidak ada versi TrueType.
https://github.com/fcambus/spleen
Materi C64 terkenal hingga sekarang, yang disebut VIC article, disediakan dalam lebar tetap.
https://www.cebix.net/VIC-Article.txt
Masalah utamanya adalah keluaran.
Artikel ini menggunakan diagram yang membutuhkan referensi tetap dalam ruang dua dimensi, jadi di sini lebar tetap sangat penting.
Artikel ini adalah salah satu referensi teknis terpenting untuk C64, dan 99% efek demo teknis dapat diuraikan menjadi trik-trik dasar yang ada di sini.
Saya sedang mempertimbangkan untuk mengubah font situs web pribadi saya menjadi lebar tetap.
Ada yang tahu font lebar tetap yang khususnya bagus untuk keterbacaan tulisan panjang?
Akan lebih baik jika ada di Google Fonts.
Tidak ada di Google Fonts, tetapi gratis, atau versi variable font-nya juga sangat murah.