Theming Bootstrap
Přizpůsobte si Bootstrap 4 pomocí našich nových vestavěných proměnných Sass pro globální preference stylu pro snadné změny témat a komponent.
V Bootstrap 3 bylo motivování z velké části řízeno přepsáním proměnných v LESS, vlastním CSS a samostatnou šablonou stylů motivu, kterou jsme zahrnuli do našich dist
souborů. S trochou úsilí by bylo možné zcela přepracovat vzhled Bootstrapu 3, aniž by se dotkli základních souborů. Bootstrap 4 poskytuje známý, ale mírně odlišný přístup.
Nyní je tématika prováděna pomocí proměnných Sass, map Sass a vlastních CSS. Neexistuje žádná další vyhrazená šablona stylů tématu; místo toho můžete povolit vestavěný motiv a přidat přechody, stíny a další.
Využijte naše zdrojové soubory Sass k využití proměnných, map, mixinů a dalších.
Kdykoli je to možné, vyhněte se úpravám základních souborů Bootstrapu. Pro Sass to znamená vytvořit si vlastní šablonu stylů, která importuje Bootstrap, abyste ji mohli upravovat a rozšiřovat. Za předpokladu, že používáte správce balíčků, jako je npm, budete mít strukturu souborů, která vypadá takto:
Pokud jste si stáhli naše zdrojové soubory a nepoužíváte správce balíčků, budete chtít ručně nastavit něco podobného této struktuře a ponechat zdrojové soubory Bootstrapu oddělené od vašich vlastních.
Do svého souboru custom.scss
importujete zdrojové soubory Sass Bootstrapu. Máte dvě možnosti: zahrnout celý Bootstrap, nebo si vybrat části, které potřebujete. Doporučujeme to druhé, i když si uvědomte, že mezi našimi komponentami existují určité požadavky a závislosti. Budete také muset zahrnout nějaký JavaScript pro naše pluginy.
S tímto nastavením můžete začít upravovat kteroukoli z proměnných a map Sass ve vašem custom.scss
. Podle potřeby můžete také začít přidávat části Bootstrapu pod // Optional
sekci. bootstrap.scss
Jako výchozí bod doporučujeme použít celý zásobník importu z našeho souboru.
Každá proměnná Sass v Bootstrap 4 obsahuje !default
příznak, který vám umožňuje přepsat výchozí hodnotu proměnné ve vašem vlastním Sass bez úpravy zdrojového kódu Bootstrapu. Podle potřeby zkopírujte a vložte proměnné, upravte jejich hodnoty a odstraňte !default
příznak. Pokud již byla proměnná přiřazena, nebude znovu přiřazena podle výchozích hodnot v Bootstrapu.
Kompletní seznam proměnných Bootstrapu najdete v scss/_variables.scss
.
Přepsání proměnných ve stejném souboru Sass může být před nebo za výchozími proměnnými. Při přepisování napříč soubory Sass však musí k přepsání dojít před importem souborů Sass Bootstrapu.
Zde je příklad, který mění background-color
a color
pro <body>
při importu a kompilaci Bootstrap přes npm:
Opakujte podle potřeby pro jakoukoli proměnnou v Bootstrap, včetně globálních možností níže.
Bootstrap 4 obsahuje několik map Sass, párů klíčových hodnot, které usnadňují generování rodin souvisejících CSS. Sass mapy používáme pro naše barvy, zarážky mřížky a další. Stejně jako proměnné Sass obsahují všechny mapy Sass !default
příznak a lze je přepsat a rozšířit.
Některé z našich map Sass jsou ve výchozím nastavení sloučeny do prázdných. To se provádí proto, aby bylo možné snadno rozšiřovat danou mapu Sass, ale za cenu toho, že odstranění položek z mapy bude o něco obtížnější.
Chcete-li upravit stávající barvu na naší $theme-colors
mapě, přidejte do svého vlastního souboru Sass následující:
Chcete-li přidat novou barvu do $theme-colors
, přidejte nový klíč a hodnotu:
Chcete-li odstranit barvy z $theme-colors
mapy nebo jakékoli jiné mapy, použijte map-remove
. Uvědomte si, že jej musíte vložit mezi naše požadavky a možnosti:
Bootstrap předpokládá přítomnost některých specifických klíčů v mapách Sass, jak jsme je používali, a sami je rozšiřujeme. Při přizpůsobování zahrnutých map se můžete setkat s chybami, když se používá konkrétní klíč mapy Sass.
Například pro odkazy, tlačítka a stavy formuláře používáme klávesy primary
, , success
a z. Nahrazení hodnot těchto klíčů by nemělo představovat žádné problémy, ale jejich odstranění může způsobit problémy s kompilací Sass. V těchto případech budete muset upravit kód Sass, který tyto hodnoty využívá.danger
$theme-colors
Bootstrap využívá několik funkcí Sass, ale pouze podmnožina je použitelná pro obecné motivy. Zahrnuli jsme tři funkce pro získávání hodnot z barevných map:
Ty vám umožňují vybrat jednu barvu z mapy Sass podobně, jako byste použili proměnnou barvy z v3.
Máme také další funkci pro získání konkrétní úrovně barvy z $theme-colors
mapy. Záporné hodnoty úrovně zesvětlí barvu, zatímco vyšší úrovně ztmaví.
V praxi byste funkci zavolali a předali jí dva parametry: název barvy $theme-colors
(např. primární nebo nebezpečná) a číselnou úroveň.
V budoucnu by mohly být přidány další funkce nebo váš vlastní Sass, abyste vytvořili funkce úrovní pro další mapy Sass, nebo dokonce obecnou, pokud chcete být podrobnější.
Další funkcí, kterou do Bootstrapu zařazujeme, je funkce barevného kontrastu, color-yiq
. Využívá barevný prostor YIQ k automatickému návratu světlé ( #fff
) nebo tmavé ( #111
) kontrastní barvy na základě zadané základní barvy. Tato funkce je zvláště užitečná pro mixiny nebo smyčky, kde generujete více tříd.
Chcete-li například vygenerovat vzorky barev z naší $theme-colors
mapy:
Může být také použit pro jednorázové potřeby kontrastu:
Můžete také určit základní barvu pomocí našich funkcí barevné mapy:
Přizpůsobte si Bootstrap 4 pomocí našeho vestavěného souboru vlastních proměnných a snadno přepínejte globální předvolby CSS pomocí nových $enable-*
proměnných Sass. Přepište hodnotu proměnné a npm run test
podle potřeby ji znovu zkompilujte.
Tyto proměnné můžete najít a přizpůsobit pro klíčové globální možnosti v scss/_variables.scss
souboru Bootstrap.
Variabilní | Hodnoty | Popis |
---|---|---|
$spacer |
1rem (výchozí) nebo jakákoli hodnota > 0 |
Určuje výchozí hodnotu mezerníku pro programové generování našich obslužných programů mezerníku . |
$enable-rounded |
true (výchozí) nebofalse |
Umožňuje předdefinované border-radius styly na různých komponentách. |
$enable-shadows |
true nebo false (výchozí) |
Umožňuje předdefinované box-shadow styly na různých komponentách. |
$enable-gradients |
true nebo false (výchozí) |
Umožňuje předdefinované přechody prostřednictvím background-image stylů na různých komponentách. |
$enable-transitions |
true (výchozí) nebofalse |
Umožňuje předdefinované transition s na různých součástech. |
$enable-hover-media-query |
true nebo false (výchozí) |
Zastaralé |
$enable-grid-classes |
true (výchozí) nebofalse |
Umožňuje generování tříd CSS pro systém mřížky (např. .container , .row , .col-md-1 atd.). |
$enable-caret |
true (výchozí) nebofalse |
Povolí stříšku pseudoprvku na .dropdown-toggle . |
$enable-print-styles |
true (výchozí) nebofalse |
Umožňuje styly pro optimalizaci tisku. |
Mnoho různých komponent a nástrojů Bootstrapu je vytvořeno pomocí řady barev definovaných v mapě Sass. Tuto mapu lze procházet v Sass a rychle generovat řadu sad pravidel.
Všechny barvy dostupné v Bootstrap 4 jsou dostupné jako proměnné Sass a mapa Sass v scss/_variables.scss
souboru. To bude rozšířeno v následujících menších vydáních a přidá se další odstíny, podobně jako paleta stupňů šedi , kterou již zahrnujeme.
Zde je návod, jak je můžete použít ve svém Sass:
Pro nastavení color
a background-color
.
V budoucnu se budeme snažit poskytovat Sass mapy a proměnné pro odstíny každé barvy, jak jsme to udělali s barvami ve stupních šedi níže.
Používáme podmnožinu všech barev k vytvoření menší palety barev pro generování barevných schémat, která je také dostupná jako proměnné Sass a mapa Sass v scss/_variables.scss
souboru Bootstraps.
Rozsáhlá sada proměnných šedé a mapa Sass scss/_variables.scss
pro konzistentní odstíny šedé ve vašem projektu.
V scss/_variables.scss
, najdete barevné proměnné Bootstrapu a mapu Sass. Zde je příklad $colors
mapy Sass:
Přidejte, odeberte nebo upravte hodnoty v mapě, abyste aktualizovali způsob jejich použití v mnoha dalších komponentách. Bohužel v současné době ne každá součást využívá tuto mapu Sass. Budoucí aktualizace se budou snažit toto zlepšit. Do té doby plánujte využití ${color}
proměnných a této mapy Sass.
Mnoho komponent a nástrojů Bootstrapu je vytvořeno pomocí @each
smyček, které iterují přes mapu Sass. To je zvláště užitečné pro generování variant komponenty podle našeho $theme-colors
názoru a vytváření responzivních variant pro každý bod přerušení. Když si tyto mapy Sass přizpůsobíte a překompilujete, automaticky uvidíte, že se vaše změny projeví v těchto smyčkách.
Mnoho komponent Bootstrapu je vytvořeno s přístupem třídy modifikátorů báze. To znamená, že většina stylů je obsažena v základní třídě (např. .btn
), zatímco varianty stylu jsou omezeny na třídy modifikátorů (např. .btn-danger
). Tyto třídy modifikátorů jsou vytvořeny z $theme-colors
mapy, aby bylo možné přizpůsobit počet a název našich tříd modifikátorů.
Zde jsou dva příklady toho, jak procházíme $theme-colors
mapou, abychom generovali modifikátory .alert
komponenty a všech našich .bg-*
obslužných programů na pozadí.
Tyto smyčky Sass nejsou omezeny ani na barevné mapy. Můžete také generovat responzivní varianty vašich komponent nebo nástrojů. Vezměte si například naše nástroje pro responzivní zarovnání textu, kde mícháme @each
smyčku pro $grid-breakpoints
mapu Sass s mediálním dotazem.
Pokud byste potřebovali upravit svůj $grid-breakpoints
, vaše změny se použijí na všechny cykly iterující přes tuto mapu.
Bootstrap 4 obsahuje ve svém kompilovaném CSS přibližně dvě desítky vlastních vlastností (proměnných) CSS. Poskytují snadný přístup k běžně používaným hodnotám, jako jsou barvy motivu, zarážky a primární sady písem při práci v Inspektoru vašeho prohlížeče, karanténě kódu nebo obecném prototypování.
Zde jsou proměnné, které zahrnujeme (všimněte si, že :root
je vyžadováno). Jsou umístěny v naší _root.scss
složce.
Proměnné CSS nabízejí podobnou flexibilitu jako proměnné Sass, ale bez nutnosti kompilace před doručením do prohlížeče. Například zde obnovujeme písmo a styly odkazů naší stránky pomocí proměnných CSS.
I když jsme původně zahrnuli body přerušení do našich proměnných CSS (např. --breakpoint-md
), tyto nejsou podporovány v dotazech na média , ale stále je lze použít v rámci sad pravidel v dotazech na média. Tyto proměnné bodu přerušení zůstávají v kompilovaném CSS kvůli zpětné kompatibilitě, protože je lze využít v JavaScriptu. Více se dozvíte ve spec.
Zde je příklad toho , co není podporováno:
A zde je příklad toho, co je podporováno: