CSS Şekilleri'ni kullanmaya başlama

İçeriği özel yolların etrafına sarmalama

Razvan Caliman
Razvan Caliman

Web tasarımcıları uzun bir süre boyunca dikdörtgenin kısıtlamaları dahilinde tasarım yapmak zorunda kaldı. Web'deki çoğu içerik hâlâ basit kutulara hapsolmuş durumda. Bunun nedeni, dikdörtgen olmayan sayfa düzeniyle ilgili çoğu yaratıcı girişimin hüsranla sonuçlanmasıdır. Chrome 37'den itibaren kullanılabilen CSS Şekilleri'nin kullanıma sunulmasıyla bu durum değişecek. CSS Şekilleri, web tasarımcılarının içeriği daire, elips ve çokgen gibi özel yolların etrafına sarmasına olanak tanır. Böylece dikdörtgenin kısıtlamalarından kurtulurlar.

Şekiller manuel olarak tanımlanabilir veya resimlerden çıkarılabilir.

Çok basit bir örneğe bakalım.

Belki de şeffaf parçalar içeren bir resmi ilk kez kaydırırken içeriğin boşlukları sarmasını ve doldurmasını bekleyerek benim kadar saf davrandınız. Ancak öğenin etrafındaki dikdörtgen sarmalama şeklinin devam etmesi sizi hayal kırıklığına uğrattı. CSS Şekilleri bu sorunu çözmek için kullanılabilir.

Resimden şekil çıkarma
<img class="element" src="image.png" />
<p>Lorem ipsum…</p>

<style>
.element{
  shape-outside: url(image.png);
  shape-image-threshold: 0.5;
  float: left;
}
</style>

shape-outside: url(image.png) CSS bildirimi, tarayıcıya resimden bir şekil çıkarmasını söyler.

shape-image-threshold özelliği, şekli oluşturmak için kullanılacak piksellerin minimum opaklık seviyesini tanımlar. Değeri 0.0 (tamamen şeffaf) ile 1.0 (tamamen opak) arasında olmalıdır. Bu nedenle, shape-image-threshold: 0.5, şekli oluşturmak için yalnızca% 50 ve üzeri opaklığa sahip piksellerin kullanılacağı anlamına gelir.

Burada float özelliği önemlidir. shape-outside özelliği, içeriğin etrafını saracağı alanın şeklini tanımlarken kayan öğe olmadan şeklin etkilerini göremezsiniz.

Öğelerin float değerinin karşı tarafında bir kayan alan vardır. Örneğin, kahve fincanı resmi içeren bir öğe sola kaydırılıyorsa kaydırma alanı fincanın sağında oluşturulur. Her iki tarafında da boşluklar olan bir resim tasarlayabilseniz de içerik, yalnızca kayan öğe özelliği tarafından belirlenen karşı taraftaki şekli (sol veya sağ, hiçbir zaman her ikisi birden değil) sarar.

Gelecekte, CSS Hariç Tutmalar'ın kullanıma sunulmasıyla birlikte, kaydırılmayan öğelerde shape-outside kullanmak mümkün olacaktır.

Şekilleri manuel olarak oluşturma

Resimlerden şekil çıkarmanın yanı sıra bunları manuel olarak da kodlayabilirsiniz. Şekil oluşturmak için birkaç işlevsel değer arasından seçim yapabilirsiniz: circle(), ellipse(), inset() ve polygon(). Her şekil işlevi bir koordinat kümesini kabul eder ve koordinat sistemini oluşturan bir referans kutusuyla eşleştirilir. Referans kutuları hakkında daha fazla bilgiyi birazdan vereceğiz.

circle() işlevi

circle() şekil değerinin resmi

Daire şekli değerinin tam gösterimi circle(r at cx cy) şeklindedir. Burada r dairenin yarıçapı, cx ve cy ise daire merkezinin X ve Y eksenindeki koordinatlarıdır. Daire merkezinin koordinatları isteğe bağlıdır. Bunları atlarsanız varsayılan olarak öğenin merkezi (köşegenlerinin kesişimi) kullanılır.

.element{
  shape-outside: circle(50%);
  width: 300px;
  height: 300px;
  float: left;
}

Yukarıdaki örnekte içerik, dairesel bir yolun dışını sarar. Tek bağımsız değişken 50%, dairenin yarıçapını belirtir. Bu özel durumda, öğenin genişliğinin veya yüksekliğinin yarısına karşılık gelir. Öğenin boyutlarını değiştirmek, daire şeklinin yarıçapını etkiler. Bu, CSS şekillerinin nasıl duyarlı olabileceğine dair basit bir örnektir.

Devam etmeden önce kısa bir bilgi verelim: CSS Şekilleri'nin yalnızca bir öğenin etrafındaki kayan alanın şeklini etkilediğini unutmayın. Öğenin arka planı varsa şekil tarafından kırpılmaz. Bu efekti elde etmek için CSS Maskeleme'deki özellikleri (clip-path veya mask-image) kullanmanız gerekir. clip-path özelliği, CSS şekilleriyle aynı gösterimi kullandığından değerleri yeniden kullanabilirsiniz. Bu nedenle, bu özellik oldukça kullanışlıdır.

`circle()` şekli + clip-path görseli

Bu belgedeki görsellerde, şekli vurgulamak ve efektleri anlamanıza yardımcı olmak için kırpma kullanılmıştır.

Daire şekline dönelim.

Daire yarıçapı için yüzdeler kullanıldığında değer aslında biraz daha karmaşık bir formülle hesaplanır: sqrt(genişlik^2 + yükseklik^2) / sqrt(2). Bu bilgiyi bilmek, öğenin boyutları eşit olmadığında ortaya çıkacak daire şeklini tahmin etmenize yardımcı olur.

Tüm CSS birim türleri, şekil işlevi koordinatlarında (px, em, rem, vw, vh vb.) kullanılabilir. İhtiyaçlarınıza uygun esneklikte veya katılıkta olanı seçebilirsiniz.

Dairenin merkezinin koordinatları için açık değerler belirleyerek dairenin konumunu ayarlayabilirsiniz.

.element{
  shape-outside: circle(50% at 0 0);
}

Bu işlem, dairenin merkezini koordinat sisteminin başlangıç noktasına yerleştirir. Koordinat sistemi nedir? Referans kutularını burada kullanırız.

CSS şekilleri için referans kutuları

Referans kutusu, öğenin etrafındaki sanal bir kutudur. Şekli çizmek ve konumlandırmak için kullanılan koordinat sistemini oluşturur. Koordinat sisteminin başlangıç noktası sol üst köşededir. X ekseni sağa, Y ekseni ise aşağıya doğru uzanır.

CSS şekilleri için koordinat sistemi

shape-outside özelliğinin, içeriğin etrafını saracağı kayan alanın şeklini değiştirdiğini unutmayın. Kayan alan, margin özelliği tarafından tanımlanan kutunun dış kenarlarına kadar uzanır. Buna margin-box denir ve açıkça belirtilmediği takdirde bir şeklin varsayılan referans kutusudur.

Aşağıdaki iki CSS beyanı aynı sonuçları verir:

.element{
  shape-outside: circle(50% at 0 0);
  /* identical to: */
  shape-outside: circle(50% at 0 0) margin-box;
}

Öğede henüz bir kenar boşluğu ayarlamadık. Bu noktada, koordinat sisteminin başlangıç noktasının ve daire merkezinin, öğenin içerik alanının sol üst köşesinde olduğunu varsaymak güvenlidir. Bir marj belirlediğinizde bu durum değişir:

.element{
  shape-outside: circle(50% at 0 0) margin-box;
  margin: 100px;
}

Koordinat sisteminin başlangıç noktası artık öğenin içerik alanının dışında (100 piksel yukarıda ve 100 piksel solda) yer alır. Dairenin merkezi de aynı şekilde yerleştirilir. Daire yarıçapının hesaplanan değeri, margin-box referans kutusu tarafından oluşturulan koordinat sisteminin artan yüzeyini hesaba katmak için de büyür.

Kenar boşluğu olan ve olmayan kenar boşluğu kutusu koordinat sistemi
Seçebileceğiniz birkaç referans kutusu seçeneği vardır: `margin-box`, `border-box`, `padding-box` ve `content-box`. Adları, sınırlarını belirtir. Daha önce `margin-box`'ı açıklamıştık. `border-box`, öğenin kenarlıklarının dış kenarlarıyla sınırlıdır. `padding-box`, öğenin dolgusuyla sınırlıdır. `content-box` ise bir öğedeki içerik tarafından kullanılan gerçek yüzey alanıyla aynıdır.
Tüm referans kutularının resmi

shape-outside beyanıyla aynı anda yalnızca bir referans kutusu kullanılabilir. Her referans kutusu, şekli farklı ve bazen de belirsiz bir şekilde etkiler. CSS şekilleri için referans kutularını anlamanıza yardımcı olacak daha ayrıntılı bir makale de mevcuttur.

ellipse() işlevi

ellipse() şekil değerinin resmi

Elipsler, sıkıştırılmış dairelere benzer. ellipse(rx ry at cx cy) olarak tanımlanırlar. Burada rx ve ry, X ve Y eksenindeki elipsin yarıçaplarıdır. cx ve cy ise elipsin merkezinin koordinatlarıdır.

.element{
  shape-outside: ellipse(150px 300px at 50% 50%);
  width: 300px;
  height: 600px;
}

Yüzde değerleri, koordinat sisteminin boyutlarından hesaplanır. Burada karmaşık hesaplamalara gerek yok. Elips merkezinin koordinatlarını atlayabilirsiniz. Bu durumda koordinatlar, koordinat sisteminin merkezinden tahmin edilir.

X ve Y eksenlerindeki yarıçaplar anahtar kelimelerle de tanımlanabilir: farthest-side, elipsin merkezi ile referans kutusunun en uzak tarafı arasındaki mesafeye eşit bir yarıçap verirken closest-side tam tersi anlamına gelir. Merkez ile bir taraf arasındaki en kısa mesafeyi kullanın.

.element{
  shape-outside: ellipse(closest-side farthest-side at 50% 50%);
  /* identical to: */
  shape-outside: ellipse(150px 300px at 50% 50%);
  width: 300px;
  height: 600px;
}

Bu, öğenin boyutları (veya referans kutusu) öngörülemeyen şekillerde değişebildiğinde ancak elips şeklinin uyum sağlamasını istediğinizde kullanışlı olabilir.

Aynı farthest-side ve closest-side anahtar kelimeleri, circle() şekil işlevindeki yarıçap için de kullanılabilir.

polygon() işlevi

polygon() şekil değerinin resmi

Daireler ve elipsler çok sınırlayıcıysa poligon şekli işlevi, seçeneklerle dolu bir dünyanın kapılarını açar. Biçim, bir poligonun her bir tepe noktası (nokta) için x y koordinat çiftlerini belirttiğiniz polygon(x1 y1, x2 y2, ...) şeklindedir. Bir poligon belirtmek için gereken minimum çift sayısı üçtür (üçgen).

.element{
  shape-outside: polygon(0 0, 0 300px, 300px 600px);
  width: 300px;
  height: 600px;
}

Köşeler koordinat sistemine yerleştirilir. Duyarlı poligonlar için koordinatların bir kısmı veya tamamı için yüzde değerleri kullanabilirsiniz.

.element{
  /* polygon responsive to font-size*/
  shape-outside: polygon(0 0, 0 100%, 100% 100%);
  width: 20em;
  height: 40em;
}

SVG'den içe aktarılan isteğe bağlı bir fill-rule parametresi vardır. Bu parametre, tarayıcıya kendi kendine kesişen yollar veya kapalı şekiller olması durumunda bir poligonun "içeride olma" durumunu nasıl değerlendireceğini bildirir. Joni Trythall, SVG'de fill-rule özelliğinin nasıl çalıştığını çok iyi açıklıyor. Tanımlanmazsa fill-rule varsayılan olarak nonzero değerine ayarlanır.

.element{
  shape-outside: polygon(0 0, 0 100%, 100% 100%);
  /* identical to: */
  shape-outside: polygon(nonzero, 0 0, 0 100%, 100% 100%);
}

inset() işlevi

inset() şekil işlevi, içeriği sarmalayacak dikdörtgen şekiller oluşturmanıza olanak tanır. CSS şekillerinin web içeriğini basit kutulardan kurtardığına dair ilk önerme göz önüne alındığında bu durum mantığa aykırı gelebilir. Bu çok olası bir durum. inset() için, kayan öğeler ve kenar boşlukları veya polygon() ile elde edilemeyen bir kullanım alanı henüz bulamadım. Ancak inset(), dikdörtgen şekiller için polygon()'den daha okunabilir bir ifade sağlar.

İçe yerleştirilmiş şekil işlevinin tam gösterimi inset(top right bottom left border-radius) şeklindedir. İlk dört konum bağımsız değişkeni, öğenin kenarlarından içe doğru olan ofsetlerdir. Son bağımsız değişken, dikdörtgen şeklin kenar yarıçapıdır. Bu isteğe bağlı bir alan olduğundan boş bırakabilirsiniz. CSS'de kullandığınız border-radius kısaltma gösterimini kullanır.

.element{
  shape-outside: inset(100px 100px 100px 100px);
  /* yields a rectangular shape which is 100px inset on all sides */
  float: left;
}

Referans kutularından şekil oluşturma

shape-outside özelliği için bir şekil işlevi belirtmezseniz tarayıcının, öğenin referans kutusundan bir şekil türetmesine izin verebilirsiniz. Varsayılan referans kutusu margin-box şeklindedir. Şu ana kadar sıra dışı bir şey yok, kayan öğeler zaten bu şekilde çalışıyor. Ancak bu tekniği uygulayarak bir öğenin geometrisini yeniden kullanabilirsiniz. border-radius özelliğine bakalım.

Bu özelliği kayan bir öğenin köşelerini yuvarlamak için kullanırsanız kırpma efektini elde edersiniz ancak kayan alan dikdörtgen olarak kalır. border-radius tarafından oluşturulan konturu sarmak için shape-outside: border-box ekleyin.

border-box referans kutusunu kullanarak bir öğenin border-radius özelliğinden şekil çıkarma
.element{
  border-radius: 50%;
  shape-outside: border-box;
  float: left;
}

Elbette tüm referans kutularını bu şekilde kullanabilirsiniz. Türetilmiş şekillerin bir başka kullanım alanı da kaydırılmış alıntılardır.

content-box referans kutusunu kullanarak kaydırılmış bir alıntı oluşturma

Yalnızca kayan ve kenar boşluğu özelliklerini kullanarak kaydırılmış alıntı efekti elde etmek mümkündür. Ancak bu, alıntı öğesini HTML ağacında oluşturulmasını istediğiniz noktaya yerleştirmenizi gerektirir.

Aynı kaydırılmış alıntı efektini daha fazla esneklikle elde etmek için aşağıdaki adımları uygulayın:

.pull-quote{
  shape-outside: content-box;
  margin-top: 200px;
  float: left;
}

Şeklin koordinat sistemi için content-box referans kutusunu açıkça ayarladık. Bu durumda, alıntıdaki içerik miktarı, dışarıdaki içeriğin sarmalayacağı şekli tanımlar. margin-top özelliği, HTML ağacındaki konumundan bağımsız olarak alıntıyı konumlandırmak (ofset) için burada kullanılır.

Şekil kenar boşluğu

İçeriği bir şeklin etrafına sardığınızda, öğeye çok yakın durduğunu fark edeceksiniz. shape-margin özelliğini kullanarak şeklin etrafına boşluk ekleyebilirsiniz.

.element{
  shape-outside: circle(40%);
  shape-margin: 1em;
  float: left;
}

Bu efekt, normal margin özelliğini kullanırken alışık olduğunuz efekte benzer ancak shape-margin yalnızca shape-outside değerinin etrafındaki alanı etkiler. Yalnızca koordinat sisteminde yer varsa şeklin etrafına boşluk ekler. Bu nedenle, yukarıdaki örnekte daire yarıçapı %50 değil, %40 olarak ayarlanmıştır. Yarıçap %50 olarak ayarlanmış olsaydı daire, koordinat sistemindeki tüm alanı kaplayarak shape-margin efektine yer bırakmazdı. Şeklin nihai olarak öğenin margin-box (öğe ve çevresindeki margin) ile sınırlı olduğunu unutmayın. Şekil daha büyükse ve taşarsa margin-box ile kırpılır ve dikdörtgen bir şekil elde edersiniz.

shape-margin özelliğinin yalnızca tek bir pozitif değer kabul ettiğini unutmayın. Uzun gösterimi yoktur. Daire için shape-margin-top nedir?

Şekillere animasyon ekleme

CSS şekillerini geçişler ve animasyonlar gibi diğer birçok CSS özelliğiyle birlikte kullanabilirsiniz. Ancak kullanıcıların, okuma sırasında metin düzeninin değişmesini çok can sıkıcı bulduğunu belirtmem gerekir. Şekilleri canlandırmaya karar verirseniz deneyime çok dikkat edin.

Tarayıcının enterpolasyon yapabileceği değerlerde tanımlandıkları sürece circle() ve ellipse() şekillerinin yarıçaplarını ve merkezlerini canlandırabilirsiniz. circle(30%) değerinden circle(50%) değerine geçiş yapmak mümkündür. Ancak circle(closest-side) ile circle(farthest-side) arasında animasyon oluşturmak tarayıcıyı zorlar.

.element{
  shape-outside: circle(30%);
  transition: shape-outside 1s;
  float: left;
}

.element:hover{
  shape-outside: circle(50%);
}
Animasyonlu dairenin GIF'i

polygon() şekillerine animasyon uygularken daha ilgi çekici efektler elde edilebilir. Ancak poligonun iki animasyon durumu arasında aynı sayıda köşeye sahip olması gerektiği unutulmamalıdır. Tepe noktası ekler veya kaldırırsanız tarayıcı interpolasyon yapamaz.

İhtiyacınız olan maksimum sayıda tepe noktası ekleyip bunları, şeklin daha az kenarı varmış gibi görünmesini istediğiniz animasyon durumunda bir araya getirebilirsiniz.

.element{
  /* four vertices (looks like rectangle) */
  shape-outside: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  transition: shape-outside 1s;
}

.element:hover{
  /* four vertices, but second and third overlap (looks like triangle) */
  shape-outside: polygon(0 0, 100% 50%, 100% 50%, 0 100%);
}
Animasyonlu üçgen GIF'i

İçeriği bir şeklin içine sarmalama

İçeriği sarmalamak için CSS Şekilleri'ni kullanan Alice Harikalar Diyarında demosunun ekran görüntüsü

CSS Şekilleri spesifikasyonunun ilk taslağında, içeriği bir şeklin içine sığdırmanıza olanak tanıyan bir shape-inside özelliği vardı. Hatta bir süre Chrome ve Webkit'te de uygulamaları vardı. Ancak rastgele konumlandırılmış içeriği özel bir yolun içine sarmak, tüm olası senaryoları kapsamak ve hataları önlemek için çok daha fazla çaba ve araştırma gerektirir. Bu nedenle shape-inside özelliği CSS Shapes Level 2'ye ertelendi ve bu özelliğin uygulamaları geri çekildi.

Ancak biraz çaba ve biraz ödün vererek içeriği özel bir şekle sarmalama etkisini elde edebilirsiniz. Bu hile, bir kapsayıcının karşıt taraflarında konumlandırılmış shape-outside ile iki kayan öğe kullanmaktır. Bu yöntemin dezavantajı, anlamsal bir anlamı olmayan ancak içeride bir şekil yanılsaması oluşturmak için destek görevi gören bir veya iki boş öğe kullanmanız gerekmesidir.

<div>
  <div class='left-shape'></div>
  <div class='right-shape'></div>

  Lorem ipsum...
</div>

Kapsayıcının üst kısmındaki .left-shape ve .right-shape destek öğelerinin konumu önemlidir. Çünkü bu öğeler, içeriğin her iki tarafında yer alacak şekilde sola ve sağa kaydırılır.

.left-shape{
  shape-outside: polygon(0 0, ...);
  float: left;
  width: 50%;
  height: 100%;
}

.right-shape{
  shape-outside: polygon(50% 0, ...);
  float: right;
  width: 50%;
  height: 100%;
}
Alice demosu için shape-inside geçici çözümünün resmi

Bu stil, kayan iki destek öğesinin, öğe içindeki tüm alanı kaplamasını sağlar ancak shape-outside özellikleri, içeriğin geri kalanı için alan açar.

CSS Şekilleri tarayıcı tarafından desteklenmiyorsa bu durum tüm içeriği aşağı iterek kötü bir görünüme neden olur. Bu nedenle, özelliği aşamalı olarak geliştirilmiş bir şekilde kullanmak önemlidir.

Önceki şekil animasyonu örneklerinde, metnin kaymasının rahatsız edici olabileceğini fark edeceksiniz. Animasyonlu şekiller her kullanım alanı için uygun olmayabilir. Ancak CSS şekilleriyle etkileşimde bulunan diğer özelliklere animasyon ekleyerek uygun yerlerde efektler oluşturabilirsiniz.

CSS Şekilleri'nin Alice Harikalar Diyarında demosunda, içeriğin üst kenar boşluğunu değiştirmek için kaydırma konumunu kullandık. Metin, iki kayan öğe arasında sıkıştırılmıştır. Aşağı doğru hareket ederken, iki kayan öğenin shape-outside değerine göre yeniden düzenlenmesi gerekir. Bu, metnin tavşan deliğinden aşağı indiği izlenimini veriyor ve hikaye anlatma deneyimini zenginleştiriyor. İhlale yakın nitelikte gereksiz mi? Olabilir. Ama havalı görünüyor.

Metin düzeni tarayıcı tarafından yerel olarak yapıldığından performans, JavaScript çözümü kullanmaktan daha iyidir. Ancak kaydırma sırasında margin-top değerini değiştirmek, çok sayıda yeniden düzenleme ve boyama etkinliğini tetikler. Bu da performansı fark edilir şekilde düşürebilir. Dikkatli kullanın. Ancak CSS şekillerini animasyon olmadan kullanmak, fark edilebilir bir performans düşüşüne neden olmaz.

Progresif geliştirme

Tarayıcının CSS Şekilleri'ni desteklemediğini varsayarak başlayın ve özelliği algıladığınızda bu varsayımın üzerine ekleme yapın. Modernizr, özellik algılama için iyi bir çözümdür ve "Non-core detects" (Çekirdek olmayan algılamalar) bölümünde CSS Şekilleri için bir test vardır.

Bazı tarayıcılar, harici kitaplıklara gerek kalmadan @supports kuralı aracılığıyla CSS'de özellik algılama olanağı sunar. CSS Şekilleri'ni de destekleyen Google Chrome, @supports kuralını anlar. Progresif geliştirme için bu özelliği şu şekilde kullanabilirsiniz:

.element{
  /* styles for all browsers */
}

@supports (shape-outside: circle(50%)){
  /* styles only for browsers which support CSS Shapes */
  .element{
    shape-outside: circle(50%);
  }
}

Lea Verou, CSS @supports kuralının nasıl kullanılacağı hakkında daha fazla bilgi vermiştir.

CSS hariç tutmalarından anlam belirsizliğini giderme

Bugün CSS Şekilleri olarak bildiğimiz özellik, spesifikasyonun ilk günlerinde CSS Hariç Tutmaları ve Şekilleri olarak adlandırılıyordu. Adlandırmadaki değişiklik bir nüans gibi görünse de aslında çok önemlidir. CSS Exclusions, artık ayrı bir spesifikasyon olarak, float özelliğine gerek kalmadan içeriği rastgele konumlandırılmış öğelerin etrafına sarmayı sağlar. İçeriği mutlak konumlandırılmış bir öğenin etrafına sardığınızı düşünün. Bu, CSS Hariç Tutmaları'nın kullanım alanlarından biridir. CSS Şekilleri, yalnızca içeriğin etrafını saracağı yolu tanımlar.

Şekiller ve hariç tutmalar aynı şey olmasa da birbirlerini tamamlarlar. CSS Şekilleri günümüzde tarayıcılarda kullanılabilirken CSS Hariç Tutmaları henüz şekil etkileşimiyle uygulanmamıştır.

CSS şekilleriyle çalışmak için araçlar

Klasik resim yazma araçlarında yollar oluşturabilirsiniz ancak bu makalenin yazıldığı tarih itibarıyla bu araçların hiçbiri CSS şekil değerleri için gerekli söz dizimini dışa aktarmaz. Böyle bir şey mümkün olsa bile bu şekilde çalışmak pek pratik olmazdı.

CSS Şekilleri, tarayıcıda kullanılmak üzere tasarlanmıştır ve sayfadaki diğer öğelere tepki verir. Şekli düzenlemenin, şekli çevreleyen içerik üzerindeki etkilerini görselleştirmek çok faydalıdır. Bu iş akışında size yardımcı olacak birkaç araç vardır:

Brackets: Brackets için CSS Shapes Editor uzantısı, şekil değerlerini düzenlemek üzere etkileşimli bir düzenleyiciyi yerleştirmek için kod düzenleyicinin canlı önizleme modunu kullanır.

Google Chrome: Google Chrome için CSS Şekil Düzenleyici uzantısı, tarayıcının Geliştirici Araçları'nı şekil oluşturma ve düzenleme kontrolleriyle genişletir. Seçili öğenin üzerine etkileşimli bir düzenleyici yerleştirir.

Google Chrome'daki denetleyici, şekilleri vurgulamak için yerleşik desteğe sahiptir. shape-outside özelliğine sahip bir öğenin üzerine geldiğinizde şekli göstermek için öğe aydınlanır.

Resimlerden şekiller: Resim oluşturmayı ve tarayıcının bu resimlerden şekil çıkarmasını tercih ediyorsanız Rebecca Hauck, Photoshop için iyi bir eğitim yazdı.

Polyfill: Google Chrome, CSS Şekilleri'ni sunan ilk büyük tarayıcıdır. Bu özellik yakında Apple'ın iOS 8 ve Safari 8 sürümlerinde de desteklenecektir. Diğer tarayıcı tedarikçileri gelecekte bu özelliği kullanmayı düşünebilir. O zamana kadar, temel destek sağlamak için CSS Şekilleri polyfill'i kullanabilirsiniz.

Sonuç

İçeriğin çoğunlukla basit kutulara sıkıştırıldığı bir web'de CSS Şekilleri, etkileyici düzenler oluşturmanın bir yolunu sunarak web ve baskı tasarımı arasındaki aslına uygunluk farkını kapatır. Elbette şekiller kötüye kullanılabilir ve dikkat dağıtabilir. Ancak şekiller, zevkli ve doğru bir şekilde kullanıldığında içerik sunumunu iyileştirebilir ve kullanıcının dikkatini benzersiz bir şekilde odaklayabilir.

Sizi, başkalarının çoğunlukla basılı yayınlardan oluşan ve dikdörtgen olmayan düzenlerin ilginç kullanımlarını gösteren çalışma koleksiyonuyla baş başa bırakıyorum. Bu makalenin, CSS şekillerini denemeniz ve yeni tasarım fikirleri üzerinde çalışmanız için size ilham vereceğini umuyoruz.

Bu makaleyi inceleyip değerli bilgiler veren Pearl Chen, Alan Stearns ve Zoltan Horvath'a çok teşekkür ederiz.