Minimum CSS ile Düzgün Bir Site Yapmak (2023)
(thecascade.dev)- Birçok geliştirici CSS tasarımını gereğinden fazla karmaşıklaştırdığı için gereksiz sorunlar yaşıyor
- Yalnızca asgari düzeyde global stil ile bile yeterince temiz ve responsive sayfalar oluşturmak mümkün
- Görsel, SVG ve video öğelerinde boyutu sınırlayıp blok olarak göstermek, temel yerleşim sorunlarını çözebilir
- system-ui yazı tipi ile uygun satır aralığı ve maksimum paragraf genişliği sınırı, okunabilirliği artırabilir
- İşletim sisteminin karanlık mod gibi tercihlerini yansıtmak için
color-schemeözelliğini uygulamak gerekir
Minimum CSS ile Düzgün Bir Site Yapmak
Aşırı CSS sorunu ve yaklaşım
- Birçok kişi web sitesi yaparken CSS yapısını gereğinden fazla karmaşık kuruyor
- Oysa yalnızca minimum düzeyde CSS ile de yeterince şık ve temele sadık responsive sayfalar üretmek mümkün
Temel HTML ve görsel uyumluluğu
-
Yalnızca temel HTML yazılsa bile site temel seviyede responsive davranır
-
Ancak görseller nedeniyle yerleşimde overflow sorunları oluşabileceğinden aşağıdaki CSS uygulanır
img { max-width: 100%; display: block; } -
SVG ve video öğelerinde benzer sorunlar görülürse, aşağıdaki gibi genişletilebilir
img, svg, video { max-width: 100%; display: block; }
Tipografiyi iyileştirme
-
Tarayıcının varsayılan yazı tipi tasarım açısından sıradan görünebilir
-
Yazı tipi ailesi olarak system-ui kullanıldığında her platforma uygun varsayılan yazı tipi uygulanabilir
-
Varsayılan yazı boyutu ve satır aralığı biraz küçük kalma eğiliminde olduğundan aşağıdaki ayarlar önerilir
body { font-family: system-ui; font-size: 1.25rem; line-height: 1.5; } -
Yalnızca bu ayar bile tarayıcı varsayılanlarına kıyasla büyük bir iyileşme sağlar
Karanlık mod desteği
-
Birçok kullanıcı karanlık modu tercih ettiğinden, işletim sistemi ayarını izleyen color-scheme özelliğini kullanmak faydalıdır
html { color-scheme: light dark; } -
Bu özellik, user agent stillerinin sistemin tercih ettiği temayı otomatik olarak yansıtmasını sağlar
-
HTML etiketi özniteliği olarak da belirtilebilir
<html lang="en" color-scheme="light dark"></html> -
Yalnızca sistem tercihini izlemek değil, renk şemasını doğrudan seçebilme imkanı sunmak da iyi bir best practice'tir
İçerik genişliğini sınırlama
-
İçerik paragraflarının uzunluğu, okunabilirlik üzerinde büyük etkisi olan önemli bir unsurdur
-
Genellikle gövde metninin satır başına 45 ila 90 karakter olacak şekilde ayarlanması idealdir
-
Aşağıdaki gibi
mainöğesinin maksimum genişliği sınırlandığında paragraf okunabilirliği artırılabilirmain { max-width: min(70ch, 100% - 4rem); margin-inline: auto; } -
min()fonksiyonu,70chile100% - 4remdeğerlerinden küçük olanı seçer -
margin-inline: autoile yatayda ortalama sağlanır -
Gerektiğinde
mainyerine .container veya .wrapper sınıfı kullanılarak da uygulanabilir
Son minimum CSS örneği
-
Yukarıdakilerin tümünü bir araya getirdiğinizde, aşağıdaki minimum CSS setiyle sağlam bir site kurulabilir
html { color-scheme: light dark; } body { font-family: system-ui; font-size: 1.25rem; line-height: 1.5; } img, svg, video { max-width: 100%; display: block; } main { max-width: min(70ch, 100% - 4rem); margin-inline: auto; }
Kapanış ve genişletilebilirlik
- Yukarıdaki örnek hafif bir başlangıç noktası veya küçük sayfalar için hemen kullanılabilir
- Çoğu durumda bunun üzerine ek stiller ekleyerek genişletmek en uygun yaklaşımdır
1 yorum
Hacker News görüşleri
system ui font familykullanımının hâlâ önerilmediğini açıklayan geçerli noktalar içeriyorhttps://infinnie.github.io/blog/2017/systemui.html
stligatürü o kadar çirkin görünüyor ki o siteden font tavsiyesi almak istememmax-widthile zorlanan insanlar mı? Hedef kitle kişisel ana sayfa yapan herkesBu yanlış. Doğru sözdizimi şu:
Yazar bunu bazı örneklerde doğru yazmış ama ilk örnekte yanlış kullandığı için kafa karıştırabilir
bunun gibi. Hem
timeshem deTimes New Romantırnaksız düzgün çalıştığına göre, bunun eski bir font olduğu için özel muamele görmesinden mi yoksa CSS'in isim eşleştirmede esnek davranmasından mı kaynaklandığını merak ediyorumBuna düpedüz nakit para demek istiyorum
https://meyerweb.com/eric/books/
content-width, büyük font ve satır yüksekliğinin aşırı kullanımı can sıkıcı. Bugünlerde birçok site aşırı büyük yazı tipi ve geniş satır aralığı kullandığı için gereksiz yere fazla kaydırma yaptırıyor. Tarayıcının varsayılan font boyutu sistem için zaten uygun; font boyutunu olduğu gibi bırakıp yakınlaştırmayı kullanıcıya bırakmak daha iyi0img { max-width: 100%; }Bu ayar mutlaka
height: autoile birlikte kullanılmalı. Aksi halde görselin oranı bozulurimg, svg, video { max-width: 100%; }Chrome 141'de iç içe geçmiş SVG öğelerinde
width/heightsorunu yüzündenautohesabı hatalı oluyor. Geçici olaraksvg:where(:not(svg svg))kullanmak gerekiyorsystem-uifontu basit birsans-serifalternatifi değildir. Sistem UI fontunu içerik metninde kullanmak, bazı OS/dil kombinasyonlarında neredeyse okunamayacak kadar rahatsız edici olabilir.sans-serifgerekiyorsasans-serifkullanılmalıVarsayılan font boyutu biraz küçük kalıyor; 18~20px (
1.25rem) civarı uygun. Ama küçük ekranlarda1remüstüne çıkmamak daha iyiVarsayılan
line-heightiçin 1.5~1.7 öneriliyor ama 1.7 küçük ekranlarda fazla geniş. 1.4~1.5 daha uygun ve ekran boyutuna göre 1.4~1.6 arasında ayarlanabilirfont-family: System UI;Bu açık bir sözdizimi hatası. Stil dosyasını doğrulasanız hemen görülür
Koyu/açık sistem teması ile web temasını ayırmak iyi bir fikir. Firefox varsayılan olarak içeriğin sistem temasını izlemesini sağlar ve ayrıca bunu ayarlamak da mümkündür
main { max-width: min(70ch, 100% - 4rem); margin-inline: auto; }Bu en az 2rem kadar kenar boşluğu demek oluyor (varsayılan
bodymargin'i ile birlikte 2rem+8px). Boşluk fazla ve uygulandığı yer de tuhaf. Bunumainüzerinde kullanacaksanızgibi
paddingkullanmak daha mantıklı. Ama pratikteheadervefooteriçin de aynı yatay boşluk gerektiğindenbodymargin'ini ayarlamak daha iyiBöylece kenar boşluğu ~40px'ten 16px seviyesine indirilebilir