Blog

Čo je nové v Bootstrap 5

Lubomir Herko - 02.07.2020 - Novinky

Od polovice júna máme prístup k prvej alpha verzii Bootstrap 5. Okrem novej verzie loga v sexi zátvorkách {B} sa dočkáme aj obrovského množstva vylepšení na všetkých frontoch. Už samotná dokumentácia je ukážkou vylepšeného vzhľadu a funkcionalít. Ak sa nevieš dočkať a chceš nový Bootstrap vyskúšať ASAP, začni tu. Je to stále Alpha verzia, neodporúčam ju preto nasadiť do žiadneho projektu. Kým dostaneme prvú betaverziu, môže prejsť zmenami, ktoré Ti vyrobia viac práce ako pomoci.

Toto je "zostrih" najvýraznejších zmien, ktoré sme popísali presne pre Teba. Na mieru.


JavaScript

Už žiadna podpora pre jQuery, aj keď..

Pre niektorých killer feature, pre iných nič podstatné. Nový Bootstrap 5 nebude už obsahovať jQuery ako jednu zo svojich závislostí (aj napriek tomu, že jQuery "asi" stále žije a v apríli tohto roka sme dostali novú verziu jQuery - 3.5). Vieme to už dávno, už sme sa na to len tešili. Ešte nemáme oficiálne konečné čísla, ale očakávame, že Bootstrap vďaka tejto zásadnej zmene stratí tak na kilobajtoch, ako aj milisekundách. Ak si rozumieme 😉

Ak však stále jQuery vo svojom projekte potrebuješ, Bootstrap o tom bude vedieť a všetky komponenty pridá k modulom jQuery. V zásade to znamená, že stále bude možné inicializovať napríklad Tooltip komponent takýmto (starým) spôsobom (v prípade, že Bootstrap detekuje prítomnosť jQuery):

$('[data-toggle="tooltip"]').tooltip();

Button plugin

Zmenami prejde aj state-management tlačidiel. Tie využívame napríklad aj ako indikátory ZAP/VYP pri rôznych funkcionalitách našich aplikácií. V starších verziách Bootstrap stav tlačidla riešil JavaScript. Bootstrap 5 sa snaží state-management riešiť v čo najvyššej miere dostupnými funkcionalitami a elementami HTML a CSS. Výsledkom tak je manažovanie stavu tlačidla pomocou checkbox a radio elementov. Naše ZAP/VYP tlačidlá tak budú o niečo spoľahlivejšie medzi rôznymi platformami.

CSS

CSS premenné

S koncom podpory pre Internet Explorer prichádzajú aj nové možnosti. Jednou z nich sú aj CSS premenné. Tie sme uzreli už v predchádzajúcej verzii (root variables), avšak nie v takom rozsahu ako vo verzii 5 - kde sa css premenné dostali už aj do jednotlivých komponentov. Napríklad do tabuliek:

.table {
  --bs-table-bg: #{$table-bg};
  --bs-table-accent-bg: transparent;
  --bs-table-striped-color: #{$table-striped-color};
  --bs-table-striped-bg: #{$table-striped-bg};
  --bs-table-active-color: #{$table-active-color};
  --bs-table-active-bg: #{$table-active-bg};
  --bs-table-hover-color: #{$table-hover-color};
  --bs-table-hover-bg: #{$table-hover-bg};
  // Styles here...
}

Výhodou CSS premenných je ich používanie bez nutnosti skompilovania SASS kódu do CSS. Takto bude možné hodnoty niektorých premenných meniť v priamo Inspectore prehliadača, čo urýchli prácu napríklad pri prototypovaní.

V Bootstrap 5 stále ostane možnosť definície premenných v SASS (_variables.scss) súboroch, tak, ako sme to robili doteraz. Osobne by som neočakával kompletný prechod zo SASS premenných do CSS premenných. SASS má stále svoju nenahraditeľnú úlohu pri vytváraní premenných pomocou mapovania, preto očakávam, že budeme mať k dispozícii kombináciu SASS premenných s CSS premennými aj v budúcnosti.

Vylepšený grid

Získame nový grid-tier pre obrazovky so šírkou väčšou ako 1400px - .col-xxl-.

Rovnako medzery medzi jednotlivými stĺpcami gridu budú po novom "ohybnejšie". Získame novú css utilitu g pre naše .row. S gutter hodnotami takto bude možné pracovať podobne ako s margin a padding hodnotami, na čo sme si už zvykli:

.g-2
.gx-2
.gy-2
.g-lg-2
.g-0

Formuláre

Od verzie 4 sme mohli vo svojich aplikáciách používať checkbox, radio a file elementy dvoma spôsobmi:

  1. Buď sme použili pôvodný, systémový vzhľad (poskytnutý browserom),
  2. alebo sme použili nový vzhľad (custom-checkbox, custom-radio).

Verzia 5 bude obsahovať už len nový vzhľad týchto elementov. Formuláre tak budú vypadať rovnako v každom prehliadači a operačnom systéme a prispôsobenie vzhľadu týchto komponentov bude rovnako jednoduchšie.

Rovnako bude odstránený aj potrebný .form-group wrapper. Nové formuláre už budú obsahovať len jednotlivé form elementy, bez tohoto DIV elementu. Hurá! Menej kódu! 🙂

<form>
  <div class="mb-3">
    <label for="exampleInputPassword1" class="form-label">Password</label>
    <input type="password" class="form-control" id="exampleInputPassword1">
  </div>
  ...
</form>

Wrapper bude potrebný len pre custom elementy (.form-select, .form-check, .form-file) a tiež .form-group.

Utilities API

Utility sú veľmi užitočné CSS triedy, ktorými zvyčajne meníme parametre rámovaní, farieb, spôsobov zobrazenia, tieňovania a rôznych veľkostí (width, height, padding, margin, ...). V praxi sa občas stáva, že sa nevmestíme do preddefinovaných utilít, ktoré sú súčasťou Bootstrap-u. Preto sme niekedy vytvárali vlastné triedy. Napríklad ak nastavujeme šírku nejakého elementu, máme k dispozícii takéto css triedy:

.w-25   /* 25% */
.w-50   /* 50% */
.w-75   /* 75% */
.w-100  /* 100% */
.w-auto /* auto */

Ak sme potrebovali 33% width, 90% width, alebo iné hodnoty, vytvorili sme vlastné CSS triedy, urobili override na $sizes mapu v nejakom vlastnom súbore, alebo sme nebodaj editovali priamo $sizes mapu v súbore premenných _variables.scss.

Vo verzii Bootstrap 5 máme k dispozícii čistejší a užitočnejší SASS nástroj, ako modifikovať existujúce, alebo pridať nové utility do nášho projektu, témy, alebo pluginu pre Bootstrap - utilities API:

$utilities: map-merge(
  (
    "width": (
      property: width,
      class: w,
      values: (
                33: 33%,
        90: 90%
      )
    ),
    "input-padding": (
      property: padding,
      class: ip,
      values: (
        0: 0,
        1: .3rem,
        2: .5rem,
        3: .7rem,
        4: .9rem,
        5: 1rem,
      )
    )
  ), $utilities);

Výsledkom takéhoto kódu budú nové css triedy utilít:

.w-33  /* nastaví width na 33% */
.w-99  /* nastaví width na 90% */
.ip-1  /* nastaví padding na .3rem */
.ip-2  /* nastaví padding na .5rem */
.ip-3  /* nastaví padding na .7rem */
.ip-4  /* nastaví padding na .9rem */
.ip-5  /* nastaví padding na 1rem */

Ostatné vylepšenia

Ikony

S alpha verziou Bootstrap 5 prichádza aj piata alpha verzia Bootstrap Icons. Je to sada viac ako 1000 ikon, ktoré sú nadizajnované tak, aby parádne ladili s Bootstrapom. Nifty funkcionalita je tiež SVG sprite, ktorá nám umožňuje vytvoriť vlastnú mapu SVG ikon a efektne ju používať v projekte bez toho, aby sme kód špinili samotným SVG zdrojovým kódom.

<svg class="bi" width="32" height="32" fill="currentColor">
  <use xlink:href="bootstrap-icons.svg#heart-fill"/>
</svg>

Osobne som veľkým fanúšikom Fontawesome ikon, ktoré obsahujú okrem enormne väčšieho množstva ikon a ich variantov aj veľmi užitočné spôsoby integrácie do projektov. Fontawesome nie sú však dostupné zdarma, preto možno v ďalšom projekte aj my v learn2code zvážime integráciu s Bootstrap ikonami.

Dokumentácia

Už na prvý pohľad je vidieť, že dokumentácia prešla zmenami. Tie však nie sú len vizuálne, ale vylepšený je aj samotný obsah. Orientácia medzi sekciami je vďaka novému postrannému menu rýchlejšia.

Jednotlivé sekcie obsahujú aj akési "overview", ktoré postupne pribúdajú do každej hlavnej sekcie dokumentácie. Aj tieto zmeny urýchľujú navigáciu v dokumentácii a hľadanie želanej informácie je takto rýchlejšie.

Farby

Pribudli tiež nové farebné odtiene a vylepšený bude aj ich kontrastný pomer.

Záver

Tento text nie je a ani nechcel byť kompletným diffom verzie 4 s novou verziou 5. Omnoho viac noviniek nájdeš v stále rastúcej dokumentácii k Bootstrap 5. Ak som na niečo dôležité zabudol, pokojne sa ozvi v komentári.


Photo

Lubomir Herko

#father #husband
#programming #ruby #javascript
#music #christian

4 nové online kurzy na Learn2Code

Novinky

Tento týždeň ti na Learn2Code prinášame 4 nové kurzy, v ktorých sme dali priestor niekoľkým novým témam. Sú to online kurzy zamerané predovšetkým na...

Vyhlásenie výsledkov súťaže #studujonline je tu!

Novinky

Aj ty si nám v uplynulých troch týždňoch poslal kreatívny príspevok, ako študuješ niektorý z našich kurzov? Čítaj teda ďalej a možno sa nájdeš medzi...

🔥 SÚŤAŽ 🔥 #studujonline s Learn2Code

Novinky

Súťaž #studujonline s Learn2Code Patríš k tým, ktorým na učenie nezostáva veľa času, a preto využívaš každú voľnú minútu? Študuješ v MHD, v práci, pri...