Sass
Sass
CSS
CSS

Organizace CSS a SASS - Sass 7-1 Architektúra

Patrik KeblušekPatrik Keblušek,

Správná struktura složek a souborů je klíčovým aspektem při vývoji přehledných a udržitelných projektů. Špatné rozčlenění může vést k hodinám času navíc, k většímu stresu a nepohody vývojářů, a to hlavně na větších projektech.

Sass 7-1 Architecture je jedním ze způsobů, jak udržovat vaše CSSka organizované. Tato architektura představuje 7 složek a 1 soubor. Ze zmíněných 7 složek se includují/importují CSS soubory do 1 SASS souboru, který se dále kompiluje do klasického CSS.

Pojďme se spolu podívat na to, jak vypadá struktura souborů.

sass/
   abstracts/
      _variables.scss
      _colors.scss
      _mixins.scss
   vendors/
      _bootstrap.scss
   base/
      _base.scss
      _reset.scss
      _typography.scss
   layout/
      _footer.scss
      _header.scss
      _sidebar.scss
   components/
      _article.scss
      _button.scss
      _modal.scss
      _login.scss
   pages/
      _blog.scss
      _about-us.scss
   themes/
      _dark.scss
      _light.scss
   main.scss

Teď si pojďme rozebrat jednotlivé složky, což přesně kam patří.

Abstracts

Abstracts neobsahují styly, jedná se o složku, kam se ukledají různé „pomocnésoubory pro ostatní .scss, to znamená barvy, mixiny nebo funkce.

Vendors

Do této složky dáváme CSSka třetích stran, jako například Bootstrap nebo Bulma.

Base

Do složky base patří základní styly pro náš web. To znamená, že to může být například typografie, reset/ normalize, nastavení dokumentu/body nebo nastavení základních HTML elementů (ul, li, section, li).

Layout

Do layoutu patří styly, které pečují o rozložení stránky jako takové. Můžete si sem vytvořit globální helpre pro container, wrappre, grid nebo flex systém.

Components

Složka components by měla obsahovat styly pro jednotlivé komponety, například pro článek. Aby byly styly ke komponentě snadno dohledatelné, doporučuji nazvat css soubor stejně jako máte nazvanou komponentu v HTML.

Pages

Žádná stránka není identická s tou předchozí, máte-li však rozdíly větší na jedné stránce nebo specifické styly pro danou stránku, tak si je můžete uložit do složky pages.

Themes

Themes možná ve svém projektu nevyužijete, ale pokud máte na webu například dark/light mód, tak se vám určitě může pro tyto účely hodit.

Na každý soubor z 7 složek výše pak uděláte @import / @use do main.scss.

@use 'abstracts/_variables';
@use 'abstracts/_colors';
@use 'abstracts/_mixins';

@use 'vendors/_bootstrap';

@use 'base/_base';
@use 'base/_reset';
@use 'base/_typography';

@use 'layout/_footer.scss';
@use 'layout/_header.scss';
@use 'layout/_sidebar.scss';

@use 'components/_article.scss';
@use 'components/_button.scss';
@use 'components/_modal.scss';
@use 'components/_login.scss';

@use 'pages/_blog.scss';
@use 'pages/_about-us.scss';

@use 'themes/_dark.scss';
@use 'themes/_light.scss';

Pokud nerozumíte zápisu @use, tak se jedná o způsob vkládání csska podobně jako je to u importu. Ten je ale dnes již deprecated a neměli byste jej používat. Pro použití @use připravuji nový článek.

Jak to postavit ještě o úroveň výš?

Sass 7-1 architekturou to samozřejmě nekončí. Ideální je, když dále stavíte projekt na BEM technologií, o kterém jsem psal článek minule. Přečíst si jej můžete zde. Díky BEMu a 7-1 architektuře vám vznikne velmi solidní základ pro malé i velké projekty, s nímž určitě chybu neuděláte a přesně tento styl používáme i zde na ForDevs.cz.