Tema Önyükleme
Kolay tema ve bileşen değişiklikleri için global stil tercihleri için Bootstrap 4'ü yeni yerleşik Sass değişkenlerimizle özelleştirin.
Bootstrap 3'te tema oluşturma, büyük ölçüde LESS'deki değişken geçersiz kılmalar, özel CSS ve dist
dosyalarımıza eklediğimiz ayrı bir tema stil sayfası tarafından yönlendiriliyordu. Biraz çabayla, çekirdek dosyalara dokunmadan Bootstrap 3'ün görünümünü tamamen yeniden tasarlayabilirsiniz. Bootstrap 4, tanıdık, ancak biraz farklı bir yaklaşım sağlar.
Artık tema oluşturma, Sass değişkenleri, Sass haritaları ve özel CSS tarafından gerçekleştirilir. Artık özel bir tema stil sayfası yok; bunun yerine, degradeler, gölgeler ve daha fazlasını eklemek için yerleşik temayı etkinleştirebilirsiniz.
Değişkenlerden, haritalardan, karışımlardan ve daha fazlasından yararlanmak için kaynak Sass dosyalarımızı kullanın.
Mümkün olduğunda, Bootstrap'in çekirdek dosyalarını değiştirmekten kaçının. Sass için bu, Bootstrap'i içe aktaran kendi stil sayfanızı oluşturmak anlamına gelir, böylece onu değiştirebilir ve genişletebilirsiniz. npm gibi bir paket yöneticisi kullandığınızı varsayarsak, şuna benzeyen bir dosya yapısına sahip olacaksınız:
Kaynak dosyalarımızı indirdiyseniz ve bir paket yöneticisi kullanmıyorsanız, Bootstrap'in kaynak dosyalarını kendinizden ayrı tutarak bu yapıya benzer bir şeyi manuel olarak kurmak isteyeceksiniz.
dosyanızda custom.scss
Bootstrap'in kaynak Sass dosyalarını içe aktaracaksınız. İki seçeneğiniz var: tüm Bootstrap'i dahil edin veya ihtiyacınız olan parçaları seçin. İkincisini teşvik ediyoruz, ancak bileşenlerimiz arasında bazı gereksinimler ve bağımlılıklar olduğunu unutmayın. Ayrıca eklentilerimiz için biraz JavaScript eklemeniz gerekecek.
Bu kurulum yerindeyken, dosyanızdaki Sass değişkenlerinden ve haritalarından herhangi birini değiştirmeye başlayabilirsiniz custom.scss
. Ayrıca Bootstrap'in // Optional
bölümlerini gerektiği gibi bölümün altına eklemeye başlayabilirsiniz. bootstrap.scss
Başlangıç noktanız olarak dosyamızdaki tam içe aktarma yığınını kullanmanızı öneririz .
Bootstrap 4'teki her Sass değişkeni, Bootstrap'in !default
kaynak kodunu değiştirmeden kendi Sass'ınızdaki değişkenin varsayılan değerini geçersiz kılmanıza izin veren bayrağı içerir. Değişkenleri gerektiği gibi kopyalayıp yapıştırın, değerlerini değiştirin ve !default
bayrağı kaldırın. Bir değişken zaten atanmışsa, Bootstrap'taki varsayılan değerlerle yeniden atanmaz.
Bootstrap değişkenlerinin tam listesini scss/_variables.scss
.
Aynı Sass dosyasındaki değişken geçersiz kılmalar, varsayılan değişkenlerden önce veya sonra gelebilir. Ancak, Sass dosyalarını geçersiz kılarken, geçersiz kılmalarınız Bootstrap'in Sass dosyalarını içe aktarmadan önce gelmelidir.
Bootstrap'i npm yoluyla içe aktarırken ve derlerken background-color
ve color
için değiştiren bir örnek :<body>
Aşağıdaki genel seçenekler de dahil olmak üzere Bootstrap'teki herhangi bir değişken için gerektiği kadar tekrarlayın.
Bootstrap 4, ilgili CSS ailelerini oluşturmayı kolaylaştıran bir avuç Sass haritası, anahtar değer çifti içerir. Renklerimiz, ızgara kesme noktaları ve daha fazlası için Sass haritalarını kullanıyoruz. Tıpkı Sass değişkenleri gibi, tüm Sass haritaları !default
bayrağı içerir ve geçersiz kılınabilir ve genişletilebilir.
Sass haritalarımızdan bazıları varsayılan olarak boş haritalarla birleştirilmiştir. Bu, belirli bir Sass haritasının kolayca genişletilmesine izin vermek için yapılır, ancak bir haritadan öğelerin kaldırılmasını biraz daha zor hale getirme pahasına gelir .
Haritamızdaki mevcut bir rengi değiştirmek $theme-colors
için özel Sass dosyanıza aşağıdakini ekleyin:
öğesine yeni bir renk $theme-colors
eklemek için yeni anahtarı ve değeri ekleyin:
Renkleri $theme-colors
veya başka bir haritadan kaldırmak için öğesini kullanın map-remove
. Gereksinimlerimiz ve seçeneklerimiz arasına eklemeniz gerektiğini unutmayın:
Bootstrap, kullandığımız gibi Sass haritalarında bazı özel anahtarların varlığını varsayar ve bunları kendimiz genişletir. Dahil edilen haritaları özelleştirirken, belirli bir Sass haritasının anahtarının kullanıldığı yerlerde hatalarla karşılaşabilirsiniz.
Örneğin, bağlantılar, düğmeler ve form durumları için primary
, success
ve danger
anahtarlarını kullanırız. $theme-colors
Bu anahtarların değerlerinin değiştirilmesi sorun yaratmamalıdır, ancak bunların kaldırılması Sass derleme sorunlarına neden olabilir. Bu durumlarda, bu değerleri kullanan Sass kodunu değiştirmeniz gerekecektir.
Bootstrap birkaç Sass işlevi kullanır, ancak genel temaya yalnızca bir alt küme uygulanabilir. Renk haritalarından değer almak için üç işlev ekledik:
Bunlar, v3'teki bir renk değişkenini nasıl kullandığınıza benzer şekilde, bir Sass haritasından bir renk seçmenize izin verir.
Haritadan belirli bir renk düzeyi elde etmek için başka bir işlevimiz de var . $theme-colors
Negatif seviye değerleri rengi açarken, daha yüksek seviyeler koyulaştıracaktır.
Pratikte, işlevi çağırır ve iki parametre iletirsiniz: gelen rengin adı $theme-colors
(örneğin, birincil veya tehlike) ve sayısal bir düzey.
Gelecekte ek işlevler eklenebilir veya ek Sass haritaları için seviye işlevleri oluşturmak üzere kendi özel Sass'ınız veya daha ayrıntılı olmak istiyorsanız genel bir işlev eklenebilir.
Bootstrap'a eklediğimiz ek bir işlev, renk kontrastı işlevidir, color-yiq
. Belirtilen temel renge göre açık ( ) veya koyu ( ) kontrast rengini otomatik olarak döndürmek için YIQ renk alanını kullanır . Bu işlev, özellikle birden çok sınıf oluşturduğunuz karışımlar veya döngüler için kullanışlıdır.#fff
#111
Örneğin, $theme-colors
haritamızdan renk örnekleri oluşturmak için:
Tek seferlik kontrast ihtiyaçları için de kullanılabilir:
Ayrıca renk haritası işlevlerimizle bir temel renk belirleyebilirsiniz:
Bootstrap 4'ü yerleşik özel değişkenler dosyamızla özelleştirin ve global CSS tercihlerini yeni $enable-*
Sass değişkenleriyle kolayca değiştirin. Bir değişkenin değerini geçersiz kılın ve npm run test
gerektiğinde yeniden derleyin.
scss/_variables.scss
Bootstrap dosyasında temel global seçenekler için bu değişkenleri bulabilir ve özelleştirebilirsiniz .
Değişken | değerler | Tanım |
---|---|---|
$spacer |
1rem (varsayılan) veya herhangi bir değer > 0 |
Aralayıcı yardımcı programlarımızı programlı olarak oluşturmak için varsayılan aralayıcı değerini belirtir . |
$enable-rounded |
true (varsayılan) veyafalse |
border-radius Çeşitli bileşenlerde önceden tanımlanmış stilleri etkinleştirir . |
$enable-shadows |
true veya false (varsayılan) |
box-shadow Çeşitli bileşenlerde önceden tanımlanmış stilleri etkinleştirir . |
$enable-gradients |
true veya false (varsayılan) |
background-image Çeşitli bileşenlerde stiller aracılığıyla önceden tanımlanmış degradeleri etkinleştirir . |
$enable-transitions |
true (varsayılan) veyafalse |
transition Çeşitli bileşenlerde önceden tanımlanmış s'leri etkinleştirir . |
$enable-hover-media-query |
true veya false (varsayılan) |
kullanımdan kaldırıldı |
$enable-grid-classes |
true (varsayılan) veyafalse |
Izgara sistemi için CSS sınıflarının oluşturulmasını sağlar (örneğin, .container , .row , .col-md-1 , vb.). |
$enable-caret |
true (varsayılan) veyafalse |
üzerinde sözde öğe düzeltmesini etkinleştirir .dropdown-toggle . |
$enable-print-styles |
true (varsayılan) veyafalse |
Yazdırmayı optimize etmek için stilleri etkinleştirir. |
Bootstrap'in çeşitli bileşenleri ve yardımcı programlarının çoğu, bir Sass haritasında tanımlanan bir dizi renk aracılığıyla oluşturulur. Bu harita, bir dizi kural kümesini hızla oluşturmak için Sass'ta döngüye alınabilir.
Bootstrap 4'te bulunan tüm renkler, scss/_variables.scss
dosyada Sass değişkenleri ve bir Sass haritası olarak mevcuttur. Bu, zaten eklediğimiz gri tonlamalı palete çok benzeyen ek gölgeler eklemek için sonraki küçük sürümlerde genişletilecektir .
Bunları Sass'ınızda şu şekilde kullanabilirsiniz:
Ayar için renk yardımcı sınıfları da mevcuttur color
ve background-color
.
Gelecekte, aşağıdaki gri tonlamalı renklerle yaptığımız gibi, her rengin tonları için Sass haritaları ve değişkenleri sağlamayı hedefleyeceğiz.
Renk şemaları oluşturmak için daha küçük bir renk paleti oluşturmak için tüm renklerin bir alt kümesini kullanırız, ayrıca Bootstraps scss/_variables.scss
dosyasında Sass değişkenleri ve bir Sass haritası olarak da bulunur.
scss/_variables.scss
Projenizde tutarlı gri tonları için geniş bir gri değişken seti ve bir Sass haritası .
içinde scss/_variables.scss
Bootstrap'in renk değişkenlerini ve Sass haritasını bulacaksınız. İşte $colors
Sass haritasına bir örnek:
Diğer birçok bileşende nasıl kullanıldıklarını güncellemek için harita içindeki değerleri ekleyin, kaldırın veya değiştirin. Ne yazık ki şu anda her bileşen bu Sass haritasını kullanmıyor. Gelecekteki güncellemeler bunu geliştirmek için çaba gösterecektir. O zamana kadar ${color}
değişkenleri ve bu Sass haritasını kullanmayı planlayın.
Bootstrap bileşenlerinin ve yardımcı programlarının çoğu, @each
bir Sass haritası üzerinde yinelenen döngülerle oluşturulmuştur. Bu, özellikle bizim tarafımızdan bir bileşenin $theme-colors
varyantlarını oluşturmak ve her kesme noktası için duyarlı varyantlar oluşturmak için yararlıdır. Bu Sass haritalarını özelleştirip yeniden derledikçe, değişikliklerinizin bu döngülere yansıdığını otomatik olarak göreceksiniz.
Bootstrap bileşenlerinin çoğu, temel değiştirici sınıf yaklaşımıyla oluşturulmuştur. Bu, .btn
stil varyasyonlarının değiştirici sınıflarla (örn .btn-danger
. Bu değiştirici sınıflar, değiştirici sınıflarımızın $theme-colors
sayısını ve adını özelleştirmek için haritadan oluşturulmuştur.
Bileşen ve tüm arka plan yardımcı programlarımız $theme-colors
için değiştiriciler oluşturmak için harita üzerinde nasıl döngü yaptığımıza dair iki örnek ..alert
.bg-*
Bu Sass döngüleri de renkli haritalarla sınırlı değildir. Ayrıca bileşenlerinizin veya yardımcı programlarınızın duyarlı varyasyonlarını da oluşturabilirsiniz. Örneğin , bir medya sorgusu içeren Sass haritası @each
için bir döngüyü karıştırdığımız duyarlı metin hizalama yardımcı programlarımızı ele alalım.$grid-breakpoints
' nizi değiştirmeniz gerekirse $grid-breakpoints
, değişiklikleriniz o harita üzerinde yinelenen tüm döngülere uygulanacaktır.
Bootstrap 4, derlenmiş CSS'sinde yaklaşık iki düzine CSS özel özelliği (değişken) içerir. Bunlar, tarayıcınızın Denetçisinde, bir kod sanal alanında veya genel prototiplemede çalışırken tema renklerimiz, kesme noktalarımız ve birincil yazı tipi yığınlarımız gibi yaygın olarak kullanılan değerlere kolay erişim sağlar.
İşte dahil ettiğimiz değişkenler ( :root
gerekli olduğunu unutmayın). Dosyamızda bulunurlar _root.scss
.
CSS değişkenleri, Sass'ın değişkenlerine benzer bir esneklik sunar, ancak tarayıcıya sunulmadan önce derlemeye gerek yoktur. Örneğin, burada sayfamızın yazı tipini ve bağlantı stillerini CSS değişkenleriyle sıfırlıyoruz.
Kesme noktalarını başlangıçta CSS değişkenlerimize dahil etsek de (örneğin, --breakpoint-md
), bunlar medya sorgularında desteklenmezler , ancak yine de medya sorgularında kural kümelerinde kullanılabilirler. Bu kesme noktası değişkenleri, JavaScript tarafından kullanılabilmeleri koşuluyla geriye dönük uyumluluk için derlenmiş CSS'de kalır. Spesifikasyonda daha fazla bilgi edinin.
İşte desteklenmeyenlere bir örnek:
Ve işte neyin desteklendiğine bir örnek: