Bem i SCSS na przykladzie inuit.css

19
Dobre praktyki CSS, BEM i OOCSS na przykładzie inuit.css @MichalZalecki MichalRazorZalecki Michał Załęcki

description

Prezentacja przygotowana na Bydgoszcz Web Development Meetup #4. Prezentacja porusza tematykę dobrych praktyk CSS, BEM i OOCSS na przykładzie inuit.css.

Transcript of Bem i SCSS na przykladzie inuit.css

Page 1: Bem i SCSS na przykladzie inuit.css

Dobre praktyki CSS, BEM i OOCSS na przykładzie

inuit.css

@MichalZalecki

MichalRazorZalecki

Michał Załęcki

Page 2: Bem i SCSS na przykladzie inuit.css

Czym charakteryzuje się dobrze napisany kod CSS

• Kod jest łatwy w zarządzaniu

• Kod jest przejrzysty i łatwo się go czyta

• Kod jest skalowalny

Page 3: Bem i SCSS na przykladzie inuit.css

BEM (Block, Element, Modifier)

• block {}

• block__element {}

• block--modifier {}

Page 4: Bem i SCSS na przykladzie inuit.css

.person {}

.person--woman {}

.person__hand {}

.person__hand--left {}

.person__hand--right {}

Page 5: Bem i SCSS na przykladzie inuit.css

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

Page 6: Bem i SCSS na przykladzie inuit.css

Selektory stanów

.is-active

.is-hover

.is-dragged

Page 7: Bem i SCSS na przykladzie inuit.css

Selektory do pracy z JavaScript

.js-sortable

.js-is-active

.js-drag-and-drop

Page 8: Bem i SCSS na przykladzie inuit.css

Umiędzynarodowienie

• Język angielski to oczywistość, ale która odmiana?

• Bez różnicy?

• .secondary-color czy .secondary-colour?

Page 9: Bem i SCSS na przykladzie inuit.css

OOCSS

• .btn

• .btn--large

• .btn--natural

• .btn--negative

<a href="#" class="btn btn--negative btn--large“>

Page 10: Bem i SCSS na przykladzie inuit.css

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;

}

Page 11: Bem i SCSS na przykladzie inuit.css

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

Page 12: Bem i SCSS na przykladzie inuit.css

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

Page 13: Bem i SCSS na przykladzie inuit.css

inuit.css is a powerful little framework designed for serious developers

Page 14: Bem i SCSS na przykladzie inuit.css
Page 15: Bem i SCSS na przykladzie inuit.css

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

Page 16: Bem i SCSS na przykladzie inuit.css

Kiedy Bootstrap jest lepszym wyborem od inuit.css?

• potrzebujesz biblioteki komponentów, która dostarcza design

Page 17: Bem i SCSS na przykladzie inuit.css
Page 18: Bem i SCSS na przykladzie inuit.css

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