SlideShare a Scribd company logo
1 of 19
Download to read offline
Dobre praktyki CSS, BEM
i OOCSS na przykładzie
inuit.css
@MichalZalecki
MichalRazorZalecki
Michał Załęcki
Czym charakteryzuje się dobrze
napisany kod CSS
• Kod jest łatwy w zarządzaniu
• Kod jest przejrzysty i łatwo się go czyta
• Kod jest skalowalny
BEM (Block, Element, Modifier)
• block {}
• block__element {}
• block--modifier {}
.person {}
.person--woman {}
.person__hand {}
.person__hand--left {}
.person__hand--right {}
Sensownie nazwane selektory to
podstawa dobrego kodu CSS
• Postaraj się by selektory były jak najkrótsze
• Lecz nie rób tego kosztem przejrzystości kodu
• .user-avatar-link jest lepszym wyboremniż
.usr-avt-a
• Nie martw się o długość selektorów, gzip bardzo
dobrze radzi sobie z kompresją dobrze napisanego
kodu
Selektory stanów
.is-active
.is-hover
.is-dragged
Selektory do pracy z JavaScript
.js-sortable
.js-is-active
.js-drag-and-drop
Umiędzynarodowienie
• Język angielski to oczywistość, ale która odmiana?
• Bez różnicy?
• .secondary-color czy .secondary-colour?
OOCSS
• .btn
• .btn--large
• .btn--natural
• .btn--negative
<a href="#" class="btn btn--negative btn--large“>
Wielkość tekstu w em/rem dla
zwiększonej dostępności
@mixin font-size($font-size) {
font-size: $font-size + px;
font-size: $font-size / $base-font-size + rem;
}
ID w CSS ssie
• ID mają 255* razy wyższy priorytet niż klasy
• Stylowanie za pomocą ID może prowadzić do
nadmiernego korzystania z !important lub jeszcze
większej ilości ID
• Korzystanie z klas powoduje, że kod CSS jest bardziej
przenośny
* https://github.com/csswizardry/CSS-Guidelines#ids
Naprawiaj problemy, a nie
symptomy
• Nie używaj „magicznych” liczb
• Ograniczaj stylowanie warunkowe ([if lt IE 7], [if gt IE 8])
najlepiej do klasy nadawanej <html> (tj. w HTML5 Boilerplate)
• Narzędzia typu Prefixer nie są bezbłędne (np. brak –webkit- dla
backface-visibility) i często nadgorliwe (np. –moz- dla
border-radius)
• Korzystaj z caniuse.com i/lub funkcji i wstawek (SASS, LESS, Stylus
itd.), których poprawnego działania jesteś pewny
inuit.css is a powerful little framework designed for serious developers
Kiedy inuit.css jest lepszym
wyborem od Bootstrapa?
• potrzebujesz potężnej biblioteki obiektów i abstrakcji
• rozumiesz i doceniasz wartości OO kodu, który jest
skalowalny i przenośny
• znasz dobrze OOCSS i SCSS jak również znasz ogólne
zasady OO
Kiedy Bootstrap jest lepszym
wyborem od inuit.css?
• potrzebujesz biblioteki komponentów, która dostarcza
design
LESS, SASS, a może Compass do
tego?
• SCSS (orginalnie): https://github.com/csswizardry/inuit.css
• LESS: https://github.com/peterwilsoncc/inuit.css
• Compass: https://github.com/stephenway/compass-inuit
Źródła i przydane materiały
• https://github.com/csswizardry/CSS-Guidelines
• https://twitter.com/csswizardry
• https://github.com/inuitcss
• http://bem.info
• http://webroad.pl/html5-css3/2746-block-element-
modifier-w-css
• http://webroad.pl/?s=SASS+Compass

More Related Content

Viewers also liked

BDD with JBehave and Selenium
BDD with JBehave and SeleniumBDD with JBehave and Selenium
BDD with JBehave and SeleniumNikolay Vasilev
 
PreK, Policy, and Prevention: How High Quality PreK Can Have a Profound Impac...
PreK, Policy, and Prevention: How High Quality PreK Can Have a Profound Impac...PreK, Policy, and Prevention: How High Quality PreK Can Have a Profound Impac...
PreK, Policy, and Prevention: How High Quality PreK Can Have a Profound Impac...Accelify
 
39.2015.tt.bnnptnt
39.2015.tt.bnnptnt39.2015.tt.bnnptnt
39.2015.tt.bnnptntMèo Hoang
 
Big Data Technology - Solit 2015 Conference
Big Data Technology - Solit 2015 ConferenceBig Data Technology - Solit 2015 Conference
Big Data Technology - Solit 2015 ConferenceDmitry Tolpeko
 
Operation Theatre LED Light
Operation Theatre  LED LightOperation Theatre  LED Light
Operation Theatre LED LightTECHNOMED INDIA
 
Bxd 01 2015-tt-bxd-20032015.signed
Bxd 01 2015-tt-bxd-20032015.signedBxd 01 2015-tt-bxd-20032015.signed
Bxd 01 2015-tt-bxd-20032015.signedMèo Hoang
 
Thongtu01.2015.bkhdt
Thongtu01.2015.bkhdtThongtu01.2015.bkhdt
Thongtu01.2015.bkhdtMèo Hoang
 
もしも私がカドカワの川上量生CEOならどのようにして会社を成長させるか? -ニコニコ動画を持つ企業の経営戦略-
もしも私がカドカワの川上量生CEOならどのようにして会社を成長させるか? -ニコニコ動画を持つ企業の経営戦略-もしも私がカドカワの川上量生CEOならどのようにして会社を成長させるか? -ニコニコ動画を持つ企業の経営戦略-
もしも私がカドカワの川上量生CEOならどのようにして会社を成長させるか? -ニコニコ動画を持つ企業の経営戦略-Takashi Okada
 
Better Goals for Better Outcomes: Best Practices for Writing Measurable, Effe...
Better Goals for Better Outcomes: Best Practices for Writing Measurable, Effe...Better Goals for Better Outcomes: Best Practices for Writing Measurable, Effe...
Better Goals for Better Outcomes: Best Practices for Writing Measurable, Effe...Accelify
 
Nghị định 45/2015/NĐ-CP về đo đạc bản đồ
Nghị định 45/2015/NĐ-CP về đo đạc bản đồNghị định 45/2015/NĐ-CP về đo đạc bản đồ
Nghị định 45/2015/NĐ-CP về đo đạc bản đồMèo Hoang
 
46/2015/NĐ-CP về quản lý chất lượng công trình xây dựng
46/2015/NĐ-CP về quản lý chất lượng công trình xây dựng46/2015/NĐ-CP về quản lý chất lượng công trình xây dựng
46/2015/NĐ-CP về quản lý chất lượng công trình xây dựngMèo Hoang
 

Viewers also liked (13)

BDD with JBehave and Selenium
BDD with JBehave and SeleniumBDD with JBehave and Selenium
BDD with JBehave and Selenium
 
Object Oriented CSS
Object Oriented CSSObject Oriented CSS
Object Oriented CSS
 
PreK, Policy, and Prevention: How High Quality PreK Can Have a Profound Impac...
PreK, Policy, and Prevention: How High Quality PreK Can Have a Profound Impac...PreK, Policy, and Prevention: How High Quality PreK Can Have a Profound Impac...
PreK, Policy, and Prevention: How High Quality PreK Can Have a Profound Impac...
 
39.2015.tt.bnnptnt
39.2015.tt.bnnptnt39.2015.tt.bnnptnt
39.2015.tt.bnnptnt
 
Big Data Technology - Solit 2015 Conference
Big Data Technology - Solit 2015 ConferenceBig Data Technology - Solit 2015 Conference
Big Data Technology - Solit 2015 Conference
 
Operation Theatre LED Light
Operation Theatre  LED LightOperation Theatre  LED Light
Operation Theatre LED Light
 
Bxd 01 2015-tt-bxd-20032015.signed
Bxd 01 2015-tt-bxd-20032015.signedBxd 01 2015-tt-bxd-20032015.signed
Bxd 01 2015-tt-bxd-20032015.signed
 
Thongtu01.2015.bkhdt
Thongtu01.2015.bkhdtThongtu01.2015.bkhdt
Thongtu01.2015.bkhdt
 
もしも私がカドカワの川上量生CEOならどのようにして会社を成長させるか? -ニコニコ動画を持つ企業の経営戦略-
もしも私がカドカワの川上量生CEOならどのようにして会社を成長させるか? -ニコニコ動画を持つ企業の経営戦略-もしも私がカドカワの川上量生CEOならどのようにして会社を成長させるか? -ニコニコ動画を持つ企業の経営戦略-
もしも私がカドカワの川上量生CEOならどのようにして会社を成長させるか? -ニコニコ動画を持つ企業の経営戦略-
 
Better Goals for Better Outcomes: Best Practices for Writing Measurable, Effe...
Better Goals for Better Outcomes: Best Practices for Writing Measurable, Effe...Better Goals for Better Outcomes: Best Practices for Writing Measurable, Effe...
Better Goals for Better Outcomes: Best Practices for Writing Measurable, Effe...
 
Wprowadzenie do AngularJS
Wprowadzenie do AngularJSWprowadzenie do AngularJS
Wprowadzenie do AngularJS
 
Nghị định 45/2015/NĐ-CP về đo đạc bản đồ
Nghị định 45/2015/NĐ-CP về đo đạc bản đồNghị định 45/2015/NĐ-CP về đo đạc bản đồ
Nghị định 45/2015/NĐ-CP về đo đạc bản đồ
 
46/2015/NĐ-CP về quản lý chất lượng công trình xây dựng
46/2015/NĐ-CP về quản lý chất lượng công trình xây dựng46/2015/NĐ-CP về quản lý chất lượng công trình xây dựng
46/2015/NĐ-CP về quản lý chất lượng công trình xây dựng
 

Similar to Bem i SCSS na przykladzie inuit.css

Marta Sztybor - Zorientowany obiektowo CSS, czyli jak tworzyć layouty aplikac...
Marta Sztybor - Zorientowany obiektowo CSS, czyli jak tworzyć layouty aplikac...Marta Sztybor - Zorientowany obiektowo CSS, czyli jak tworzyć layouty aplikac...
Marta Sztybor - Zorientowany obiektowo CSS, czyli jak tworzyć layouty aplikac...The Awwwesomes
 
CSS. Witryny internetowe szyte na miarę. Autorytety informatyki. Wydanie II
CSS. Witryny internetowe szyte na miarę. Autorytety informatyki. Wydanie IICSS. Witryny internetowe szyte na miarę. Autorytety informatyki. Wydanie II
CSS. Witryny internetowe szyte na miarę. Autorytety informatyki. Wydanie IIWydawnictwo Helion
 
Less WordUp #2 - Wrocław 2013
Less WordUp #2 - Wrocław 2013Less WordUp #2 - Wrocław 2013
Less WordUp #2 - Wrocław 2013Tomasz Dziuda
 
W3 Total Cache - skuteczne przyśpieszanie WordPressa
W3 Total Cache - skuteczne przyśpieszanie WordPressaW3 Total Cache - skuteczne przyśpieszanie WordPressa
W3 Total Cache - skuteczne przyśpieszanie WordPressaBartosz Romanowski
 
Foundations of Foundation 6 - Jakub Włodaczyk (pl)
Foundations of Foundation 6 - Jakub Włodaczyk (pl)Foundations of Foundation 6 - Jakub Włodaczyk (pl)
Foundations of Foundation 6 - Jakub Włodaczyk (pl)Sunscrapers
 
Foundations of Foundation 6
Foundations of Foundation 6Foundations of Foundation 6
Foundations of Foundation 6Kuba Włodarczyk
 
Wyszukiwanie pełnotekstowe w SQL Server
Wyszukiwanie pełnotekstowe w SQL ServerWyszukiwanie pełnotekstowe w SQL Server
Wyszukiwanie pełnotekstowe w SQL ServerKamil Nowinski
 
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr BuckiPROIDEA
 
Architektura CSS - dobre i złe praktyki
Architektura CSS - dobre i złe praktykiArchitektura CSS - dobre i złe praktyki
Architektura CSS - dobre i złe praktykiJakub Wiśniewski
 
Roman Czarko-Wasiutycz- Projektowanie baz danych
Roman Czarko-Wasiutycz- Projektowanie baz danychRoman Czarko-Wasiutycz- Projektowanie baz danych
Roman Czarko-Wasiutycz- Projektowanie baz danychWomen in Technology Poland
 
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistomWordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistomTomasz Dziuda
 
Microsoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 rokuMicrosoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 rokuHighWheelSoftware
 
WordUp Łódź - Sage - Twoje szablony będą jak supermodelki
WordUp Łódź - Sage - Twoje szablony będą jak supermodelkiWordUp Łódź - Sage - Twoje szablony będą jak supermodelki
WordUp Łódź - Sage - Twoje szablony będą jak supermodelkiInterSynergy
 
Nowości w zakresie bezpieczeństwa w SQL Server 2016
Nowości w zakresie bezpieczeństwa w SQL Server 2016Nowości w zakresie bezpieczeństwa w SQL Server 2016
Nowości w zakresie bezpieczeństwa w SQL Server 2016Kamil Nowinski
 
Jak tworzyć motywy przyjazne użytkownikom i programistom?
Jak tworzyć motywy przyjazne użytkownikom i programistom?Jak tworzyć motywy przyjazne użytkownikom i programistom?
Jak tworzyć motywy przyjazne użytkownikom i programistom?Tomasz Dziuda
 
Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Divante
 
Jak sprawić aby google i twoja strona się polubiły ebiznes festiwal
Jak sprawić aby google i twoja strona się polubiły ebiznes festiwalJak sprawić aby google i twoja strona się polubiły ebiznes festiwal
Jak sprawić aby google i twoja strona się polubiły ebiznes festiwalRobert Stolarczyk
 
Grid960
Grid960Grid960
Grid9602Badek
 

Similar to Bem i SCSS na przykladzie inuit.css (20)

Marta Sztybor - Zorientowany obiektowo CSS, czyli jak tworzyć layouty aplikac...
Marta Sztybor - Zorientowany obiektowo CSS, czyli jak tworzyć layouty aplikac...Marta Sztybor - Zorientowany obiektowo CSS, czyli jak tworzyć layouty aplikac...
Marta Sztybor - Zorientowany obiektowo CSS, czyli jak tworzyć layouty aplikac...
 
CSS. Witryny internetowe szyte na miarę. Autorytety informatyki. Wydanie II
CSS. Witryny internetowe szyte na miarę. Autorytety informatyki. Wydanie IICSS. Witryny internetowe szyte na miarę. Autorytety informatyki. Wydanie II
CSS. Witryny internetowe szyte na miarę. Autorytety informatyki. Wydanie II
 
Less WordUp #2 - Wrocław 2013
Less WordUp #2 - Wrocław 2013Less WordUp #2 - Wrocław 2013
Less WordUp #2 - Wrocław 2013
 
W3 Total Cache - skuteczne przyśpieszanie WordPressa
W3 Total Cache - skuteczne przyśpieszanie WordPressaW3 Total Cache - skuteczne przyśpieszanie WordPressa
W3 Total Cache - skuteczne przyśpieszanie WordPressa
 
Foundations of Foundation 6 - Jakub Włodaczyk (pl)
Foundations of Foundation 6 - Jakub Włodaczyk (pl)Foundations of Foundation 6 - Jakub Włodaczyk (pl)
Foundations of Foundation 6 - Jakub Włodaczyk (pl)
 
Foundations of Foundation 6
Foundations of Foundation 6Foundations of Foundation 6
Foundations of Foundation 6
 
Wyszukiwanie pełnotekstowe w SQL Server
Wyszukiwanie pełnotekstowe w SQL ServerWyszukiwanie pełnotekstowe w SQL Server
Wyszukiwanie pełnotekstowe w SQL Server
 
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
 
Architektura CSS - dobre i złe praktyki
Architektura CSS - dobre i złe praktykiArchitektura CSS - dobre i złe praktyki
Architektura CSS - dobre i złe praktyki
 
Roman Czarko-Wasiutycz- Projektowanie baz danych
Roman Czarko-Wasiutycz- Projektowanie baz danychRoman Czarko-Wasiutycz- Projektowanie baz danych
Roman Czarko-Wasiutycz- Projektowanie baz danych
 
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistomWordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
 
Microsoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 rokuMicrosoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 roku
 
WordUp Łódź - Sage - Twoje szablony będą jak supermodelki
WordUp Łódź - Sage - Twoje szablony będą jak supermodelkiWordUp Łódź - Sage - Twoje szablony będą jak supermodelki
WordUp Łódź - Sage - Twoje szablony będą jak supermodelki
 
XHTML & CSS, WAI
XHTML & CSS, WAIXHTML & CSS, WAI
XHTML & CSS, WAI
 
Nowości w zakresie bezpieczeństwa w SQL Server 2016
Nowości w zakresie bezpieczeństwa w SQL Server 2016Nowości w zakresie bezpieczeństwa w SQL Server 2016
Nowości w zakresie bezpieczeństwa w SQL Server 2016
 
Jak tworzyć motywy przyjazne użytkownikom i programistom?
Jak tworzyć motywy przyjazne użytkownikom i programistom?Jak tworzyć motywy przyjazne użytkownikom i programistom?
Jak tworzyć motywy przyjazne użytkownikom i programistom?
 
Css
CssCss
Css
 
Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13
 
Jak sprawić aby google i twoja strona się polubiły ebiznes festiwal
Jak sprawić aby google i twoja strona się polubiły ebiznes festiwalJak sprawić aby google i twoja strona się polubiły ebiznes festiwal
Jak sprawić aby google i twoja strona się polubiły ebiznes festiwal
 
Grid960
Grid960Grid960
Grid960
 

Bem i SCSS na przykladzie inuit.css

  • 1. Dobre praktyki CSS, BEM i OOCSS na przykładzie inuit.css @MichalZalecki MichalRazorZalecki Michał Załęcki
  • 2. Czym charakteryzuje się dobrze napisany kod CSS • Kod jest łatwy w zarządzaniu • Kod jest przejrzysty i łatwo się go czyta • Kod jest skalowalny
  • 3. BEM (Block, Element, Modifier) • block {} • block__element {} • block--modifier {}
  • 4. .person {} .person--woman {} .person__hand {} .person__hand--left {} .person__hand--right {}
  • 5. Sensownie nazwane selektory to podstawa dobrego kodu CSS • Postaraj się by selektory były jak najkrótsze • Lecz nie rób tego kosztem przejrzystości kodu • .user-avatar-link jest lepszym wyboremniż .usr-avt-a • Nie martw się o długość selektorów, gzip bardzo dobrze radzi sobie z kompresją dobrze napisanego kodu
  • 7. Selektory do pracy z JavaScript .js-sortable .js-is-active .js-drag-and-drop
  • 8. Umiędzynarodowienie • Język angielski to oczywistość, ale która odmiana? • Bez różnicy? • .secondary-color czy .secondary-colour?
  • 9. OOCSS • .btn • .btn--large • .btn--natural • .btn--negative <a href="#" class="btn btn--negative btn--large“>
  • 10. Wielkość tekstu w em/rem dla zwiększonej dostępności @mixin font-size($font-size) { font-size: $font-size + px; font-size: $font-size / $base-font-size + rem; }
  • 11. ID w CSS ssie • ID mają 255* razy wyższy priorytet niż klasy • Stylowanie za pomocą ID może prowadzić do nadmiernego korzystania z !important lub jeszcze większej ilości ID • Korzystanie z klas powoduje, że kod CSS jest bardziej przenośny * https://github.com/csswizardry/CSS-Guidelines#ids
  • 12. Naprawiaj problemy, a nie symptomy • Nie używaj „magicznych” liczb • Ograniczaj stylowanie warunkowe ([if lt IE 7], [if gt IE 8]) najlepiej do klasy nadawanej <html> (tj. w HTML5 Boilerplate) • Narzędzia typu Prefixer nie są bezbłędne (np. brak –webkit- dla backface-visibility) i często nadgorliwe (np. –moz- dla border-radius) • Korzystaj z caniuse.com i/lub funkcji i wstawek (SASS, LESS, Stylus itd.), których poprawnego działania jesteś pewny
  • 13. inuit.css is a powerful little framework designed for serious developers
  • 14.
  • 15. Kiedy inuit.css jest lepszym wyborem od Bootstrapa? • potrzebujesz potężnej biblioteki obiektów i abstrakcji • rozumiesz i doceniasz wartości OO kodu, który jest skalowalny i przenośny • znasz dobrze OOCSS i SCSS jak również znasz ogólne zasady OO
  • 16. Kiedy Bootstrap jest lepszym wyborem od inuit.css? • potrzebujesz biblioteki komponentów, która dostarcza design
  • 17.
  • 18. LESS, SASS, a może Compass do tego? • SCSS (orginalnie): https://github.com/csswizardry/inuit.css • LESS: https://github.com/peterwilsoncc/inuit.css • Compass: https://github.com/stephenway/compass-inuit
  • 19. Źródła i przydane materiały • https://github.com/csswizardry/CSS-Guidelines • https://twitter.com/csswizardry • https://github.com/inuitcss • http://bem.info • http://webroad.pl/html5-css3/2746-block-element- modifier-w-css • http://webroad.pl/?s=SASS+Compass