Monospace Web
(owickstrom.github.io)- Karakter birimi ızgarası üzerine web öğelerini hizalayarak metinleri, tabloları, diyagramları ve medyayı 1970’ler tarzı terminal estetiğine yakın biçimde gösteren deneysel bir sayfa
- Basit bir Markdown belgesini Pandoc ile dönüştürür; CSS ve çok az JavaScript ile semantik HTML’yi monospace ızgarada render eder
- Duyarlı yapı piksel yerine karakter boyutu birimleriyle küçülür; tablolar ızgaraya göre otomatik ayarlanır, ancak genişleyebilen sütun tek bir sütunla sınırlıdır
- Normal paragraflar, ayırıcı çizgiler,
<details>, listeler, ağaç biçimli listeler, tablolar, formlar,gridkapsayıcısı,<pre>tabanlı ASCII çizimleri, görseller ve videolar gibi standart öğeleri ele alır - Tüm kaynak kodu GitHub’da açık; gerekli kısımlar lisans koşullarına uygun şekilde fork’lanabilir veya kopyalanıp kullanılabilir
Karakter ızgarasıyla oluşturulmuş web sayfası
- Monospace yazı tipleri bazı kullanıcılar için orantılı yazı tiplerinden daha okunabilir, tutarlı ve güzel görünebilir
- Bu sayfa, tüm öğeleri monospace web olarak kurmayı deneyen teknik ve yaratıcı bir denemedir
- Uygulama, Markdown belgesini Pandoc ile dönüştürdükten sonra CSS ve az miktarda JavaScript ile semantik HTML’yi karakter ızgarasının üzerine yerleştirme yaklaşımını kullanır
- Duyarlı yerleşim, ekran genişliğine göre piksel yerine karakter boyutu birimleriyle küçülür
- Amaç, standart HTML öğelerinin ek karmaşık işler gerektirmeden monospace ızgara içinde doğal biçimde çalışmasını sağlamaktır
Desteklenen öğeler ve yerleşim yaklaşımı
- Temel işaretleme normal paragrafları, yatay ayırıcıları ve
<details>öğesini içerir - Listeler normal madde işaretli ve sıralı listeleri destekler;
treesınıfı eklenmiş sırasız listelerle dosya sistemi gibi görünen ağaç yapısı ifade edilebilir - Tablolar monospace ızgaraya göre otomatik ayarlanır ve duyarlı çalışır
- Ancak genişleyebilen sütun tek bir kolonla sınırlıdır
- Formlar da destek kapsamındadır ve diğer standart öğelerle birlikte aynı karakter ızgarası üzerine yerleştirilir
- Bir kapsayıcıya
gridsınıfı eklendiğinde hücreler yatay alanı eşit şekilde paylaşır- Monospace özelliği korunduğundan toplam genişlik her zaman %100 olmayabilir
- Belirli bir hücrenin kalan alanı doldurması istenirse o hücreye
flex-grow: 1;ayarlanır
<pre>etiketi ve box-drawing characters kullanılarak ASCII tarzı çizimler yapılabilir- Daha belirgin hale getirmek için
<figure>ve<figcaption>ile sarılabilir - Örnek olarak mesaj iletim diyagramı ve çubuk grafik yer alır
- Daha belirgin hale getirmek için
- Görseller ve videolar gibi medya nesneleri de desteklenir
- Sayfa genişliğine kadar genişler ve monospace ızgarayı korumak için alt tarafa padding eklenir
- Tüm kaynak kodu github.com/owickstrom/the-monospace-web adresinde açıktır
- Tasarım ilhamının kaynağı U.S. Graphics Company’dir
1 yorum
Hacker News görüşleri
Sabit genişlikli sayfaların bir listesini topluyorum: https://wonger.dev/posts/monospace-dump#web. Şimdilik yaklaşık 50 tane var
Aralıklandırma zor; orantılı yazı tipinden vazgeçince okunabilirlikten de bir ölçüde kaybediyorsunuz
Orantılı yazı tiplerindeki kerning’in, gözün harf kümelerinin şeklini algılamasında büyük fark yarattığını düşünüyorum
Sabit genişlikli metin, kod editörü gibi yapılandırılmış ve vurgulanmış yerlerde iyi, ama uzun yazılarda kaçınmak daha iyi
Yine de özellikle Unicode tablolarında ve ASCII art’ta gerçekten çok güzel
Örneğin
15 space, 1 V, 3 U, 1 V,15 space, 5 U,12 space, 2 x, 5 U, 2 xgibi; yaklaşık 250 satırı bitirince Jordan’ın smaç bastığı bir resim ortaya çıkıyor ve çıktısını alabiliyordunuzBu soruyu sormak için tam uygun başlık gibi. Birkaç yıl önce gördüğüm, muhtemelen bir video oyunu rehberi gibi bir yazı vardı; sabit genişlikli yazı tipinde okunacak şekilde yazılmıştı ve binlerce satırın tamamı sadece kelime seçimiyle kusursuz biçimde iki yana yaslanmıştı
Ne olduğunu bilen ve linki olan var mı?
[0] http://www.catb.org/esr/jargon/html/B/bricktext.html
Bu kavramın Google arama sonuçlarından tamamen kaybolmuş olması biraz şaşırtıcı
https://github.com/laravel/laravel/blob/11.x/config/database...
Yıllardır Visual Studio Code eklentisi olarak, yazarken yorumları tirelemeyi de içerecek şekilde iki yana yaslayan, gerektiğinde ek boşluklara da izin veren bir özellik yapmak istedim
İlgili algoritma ve kütüphaneleri biraz araştırmak dışında başlayamadım; çünkü epey karmaşık görünüyordu
fmtya dapargibi şeyleri denemeyi düşündüm, ama sonunda, elle yapmadıkça güzel hizalanmış yorumlardan vazgeçmek gerektiğini kabul ettim; küçük bir değişiklik çoğu zaman birçok satırı yeniden işlemeyi gerektirdiğinden çok zaman alıyorUzun identifier’ları mümkünse satır ortasında bölmek istemiyorum; iç içe listeleri, tabloları, code block’ları, yorum içindeki ASCII art’ı, kelime içi tirelerle tireleme için eklenen tirelerin ayrımını, XML dokümantasyon yorumları veya Javadoc tag’leri gibi yapılandırılmış yorumları da ele almak gerekiyor
Tom7’nin Badness 0’ını görünce LLM’e versem mi diye de düşündüm, ama gerçek zamanlı çalışması ve halüsinasyon yorumlar üretmemesi gerekiyorsa bunun henüz pratik olmadığını düşünüyorum
Böyle bir özellik zaten var mı, ya da bir eklenti yapmayı 1 yıllık işe çevirmeyecek bir temel var mı?
Sabit genişliğin kendisi rahatsız etmiyor
Rahatsız eden şey zorunlu satır sonları
“Retro” web sitesi deyip fiilen
preetiketi kullanan yerler varTelefonda küçük puntolu bir metin duvarına dönüşüyor; okuma modu çalışmıyor; yatay çevirince kaydırma çubuğu çıkabilir de çıkmayabilir de
Günümüz teknik mailing list’leriyle ilgili neredeyse tek şikâyetim de zorunlu satır sonları ve katı layout
Bugün izlediğim bir videoda buna indie web diyorlardı; algoritmalara karşı çıkan ve geçmişte web’i harika yapan şeyleri benimsemeye çalışan bir felsefe olduğunu söylüyordu
RSS, kişisel bloglar, forumlar, webring’ler gibi şeyler
Ben de kendim bir tane başlattım ve epey iyi hissettiriyor
Güzel görünmesi, semantik ve duyarlı olması iyi; ama temelde sabit genişlikli yazı tipleri gövde metni için pek iyi değil
Çeşitli sitelerde sabit genişlikli gövdeyle yazılmış blog yazıları okudum ve fena değildi; ama bana göre doğru yön orantılı genişlik
Eski basılı dergi havası vermeye çalışan “güzel” sayfalardan çok daha iyi olduğunu düşünüyorum
Blogumda görme yetim iyi olmadığı ve yakınlaştırma ayarı kullandığım için sabit genişlikli kullanıyorum; ama erişilebilirliğin önemli olduğunu düşündüğümden, herkes için daha okunabilir seçimin ne olduğunu hep merak ediyorum
Başka şeyleri bilmem ama
tree ul-listCSS sınıfı, HTML spesifikasyonuna etiket olarak girecek kadar iyi bence. İnanılmaz kullanışlı bir bileşenSatır aralığı çok dar, okunabilirliği kötü etkiliyor. Böyle sıkışık gövde metnindeki uzun paragrafları okumak zor
Ancak tablolar ve karakter grafikleri bu dar satır aralığına ihtiyaç duyuyor
Aynı karakter ızgarasını hem grafik hem metin için kullanmak sorun
x-height özellikle düşük olduğundan, harflerin üstünde ve altında daha fazla boşluk bırakan bir yazı tipi kullanmak bunu hafifletebilir gibi
Satır yüksekliği konusunda katılıyorum. 16px yazı tipi boyutuna 19.2px olunca yalnızca 1.2 kat; fazla bunaltıcı. 24px yapmak ciddi biçimde iyileştiriyor
Yine de benim gözüme daha büyük satır yüksekliği tabloları veya karakter grafiklerini etkilemiyor gibi görünüyor. Böyle bir ayar eklenirse sabit genişlikli stil epey iyi ayakta kalıyor
Düzenleme: Sanırım ana fikri anladım. Yazarın sabit ızgara kavramını bozuyor.
pöğesineline-height: 24pxkoyup yazarın “debug mode”unu açarak ızgaraya bakınca görülebiliyorjavascript: (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/
Çünkü sabit genişlikli sözcüklerin “şekilleri” orantılı genişlikli sözcüklere göre daha benzer hale geliyor
OpenBSD birkaç yıl önce konsol yazı tipini Spleen olarak ayarlamaya başladı
TrueType sürümünün olmaması üzücü
https://github.com/fcambus/spleen
Bugün bile ünlü bir C64 kaynağı olan sözde VIC article sabit genişlikli olarak sunuluyor
https://www.cebix.net/VIC-Article.txt
Asıl mesele çıktı
Bu yazı, iki boyutlu uzayda sabit referans gerektiren diyagramlar kullandığı için burada sabit genişlik çok önemli
Bu yazı C64 için en önemli teknik referanslardan biri ve teknik demo efektlerinin %99’u buradaki temel numaralara indirgenebilir
Kişisel web sitemin yazı tipini sabit genişlikliye çevirmeyi düşünüyorum
Uzun yazılarda okunabilirliği özellikle iyi olan sabit genişlikli yazı tipi bilen var mı?
Google Fonts’ta varsa daha da iyi
Google Fonts’ta yok ama ücretsiz; değişken yazı tipi sürümü de oldukça ucuz