SlideShare a Scribd company logo
SMACSS
масштабируемая модульная
архитектура CSS



Александр Ахатов
Front-end Dev Lead
Зачем?

 Слайд 10 из 1111
Effect
• дублирующийся код
• запутанная структура
• тяжело поддерживать
• сложно масштабировать
• и т.д.




                 Слайд 11 из 1111
Cause
•   лень
•   нежелание разбираться в
    чужом коде
•   цейтнот
•   ОТСУТСТВИЕ СИСТЕМЫ
•   и т.д.




                   Слайд 100 из 1111
Что делать?




          Слайд 101 из 1111
Что делать?

   Слайд 110 из 1111
SMACSS
by Jonathan Snook




  Слайд 111 из 1111
Структура CSS


1. General
2. Layout
3. Module
4. State




             Слайд 1000 из 1111
General

•   html теги без классов и #ID
•   + reset.css




                     Слайд 1001 из 1111
Layout
         •   префикс .l- или #ID
         •   классы для position, float и display
         •   + grid.css




             Слайд 1010 из 1111
Module
         •   без префиксов (.module {...})
         •   подклассы и классы-модификаторы
             (.module-subclass {...})
         •   максимальная независимость как от
             структуры самого модуля так и от
             контекста




                Слайд 1011 из 1111
State
•   префикс .is-state
•   описание любого состояния отличающегося от
    дефолтного (.is-hidden, .is-active, .is-logged)
•   допускается использование !important (если оно
    оправданно)




                        Слайд 1100 из 1111
Сухой остаток
+ дополнительные уровни семантики
+ управляемый код
+ расширяемый код
+ возможность повторного использования

- это не панацея
- надо думать
- следовать правилам

                 Слайд 1101 из 1111
Ресурсы

SMACSS.com
и для общего развития
OOCSS, БЭМ, HTML5 Boilerplate,
normalize.css, Bootstrap, 960.gs, Eric Meyer
CSS Reset



                 Слайд 1110 из 1111
Вопросы?



      Задавайте умные вопросы.
       Получайте умные ответы.

 (меня зовут Александр, можно просто Саша)




                 Слайд 1111 из 1111
Александр Ахатов
 a.akhatov@sysiq.com
    alexander.akhatov

More Related Content

Viewers also liked

Реактивные интерфейсы с React.js и БЭМ: мастер-класс — Слава Аристов, Яндекс
Реактивные интерфейсы с React.js и БЭМ: мастер-класс — Слава Аристов, ЯндексРеактивные интерфейсы с React.js и БЭМ: мастер-класс — Слава Аристов, Яндекс
Реактивные интерфейсы с React.js и БЭМ: мастер-класс — Слава Аристов, ЯндексYandex
 
Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...
Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...
Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...
SQALab
 
Дэвид Флэнаган — Javascript (5 издание)
Дэвид Флэнаган — Javascript (5 издание)Дэвид Флэнаган — Javascript (5 издание)
Дэвид Флэнаган — Javascript (5 издание)
mlatushko
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Ontico
 
Доступность веб-сайтов: WWW для всех?
Доступность веб-сайтов: WWW для всех?Доступность веб-сайтов: WWW для всех?
Доступность веб-сайтов: WWW для всех?
Ecommerce Solution Provider SysIQ
 
Mastering Java ByteCode
Mastering Java ByteCodeMastering Java ByteCode
Mastering Java ByteCode
Ecommerce Solution Provider SysIQ
 
Правила хорошего SEO тона в Frontend разработке
Правила хорошего SEO тона в Frontend разработкеПравила хорошего SEO тона в Frontend разработке
Правила хорошего SEO тона в Frontend разработкеEcommerce Solution Provider SysIQ
 
Эффективный JavaScript - IQLab Frontend Fusion 2012
Эффективный  JavaScript - IQLab Frontend Fusion 2012Эффективный  JavaScript - IQLab Frontend Fusion 2012
Эффективный JavaScript - IQLab Frontend Fusion 2012
Ecommerce Solution Provider SysIQ
 
Frontend Servers and NGINX: What, Where and How
Frontend Servers and NGINX: What, Where and HowFrontend Servers and NGINX: What, Where and How
Frontend Servers and NGINX: What, Where and How
Ecommerce Solution Provider SysIQ
 

Viewers also liked (20)

Реактивные интерфейсы с React.js и БЭМ: мастер-класс — Слава Аристов, Яндекс
Реактивные интерфейсы с React.js и БЭМ: мастер-класс — Слава Аристов, ЯндексРеактивные интерфейсы с React.js и БЭМ: мастер-класс — Слава Аристов, Яндекс
Реактивные интерфейсы с React.js и БЭМ: мастер-класс — Слава Аристов, Яндекс
 
Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...
Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...
Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...
 
Дэвид Флэнаган — Javascript (5 издание)
Дэвид Флэнаган — Javascript (5 издание)Дэвид Флэнаган — Javascript (5 издание)
Дэвид Флэнаган — Javascript (5 издание)
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
 
Доступность веб-сайтов: WWW для всех?
Доступность веб-сайтов: WWW для всех?Доступность веб-сайтов: WWW для всех?
Доступность веб-сайтов: WWW для всех?
 
Mastering Java ByteCode
Mastering Java ByteCodeMastering Java ByteCode
Mastering Java ByteCode
 
IGears: Template Architecture and Principles
IGears: Template Architecture and PrinciplesIGears: Template Architecture and Principles
IGears: Template Architecture and Principles
 
QA evolution, in pictures
QA evolution, in picturesQA evolution, in pictures
QA evolution, in pictures
 
Lupan big enterprise ecommerce fusion 2013
Lupan   big enterprise ecommerce fusion 2013Lupan   big enterprise ecommerce fusion 2013
Lupan big enterprise ecommerce fusion 2013
 
QA evolution to the present day
QA evolution to the present dayQA evolution to the present day
QA evolution to the present day
 
Правила хорошего SEO тона в Frontend разработке
Правила хорошего SEO тона в Frontend разработкеПравила хорошего SEO тона в Frontend разработке
Правила хорошего SEO тона в Frontend разработке
 
Эффективный JavaScript - IQLab Frontend Fusion 2012
Эффективный  JavaScript - IQLab Frontend Fusion 2012Эффективный  JavaScript - IQLab Frontend Fusion 2012
Эффективный JavaScript - IQLab Frontend Fusion 2012
 
Manifest of modern engineers
Manifest of modern engineersManifest of modern engineers
Manifest of modern engineers
 
Seo and Marketing Requirements in Web Architecture
Seo and Marketing Requirements in Web ArchitectureSeo and Marketing Requirements in Web Architecture
Seo and Marketing Requirements in Web Architecture
 
User Behavior: Interacting With Important Website Elements
User Behavior: Interacting With Important Website ElementsUser Behavior: Interacting With Important Website Elements
User Behavior: Interacting With Important Website Elements
 
Developing for e commerce is important
Developing for e commerce is importantDeveloping for e commerce is important
Developing for e commerce is important
 
Getting to know magento
Getting to know magentoGetting to know magento
Getting to know magento
 
Frontend Servers and NGINX: What, Where and How
Frontend Servers and NGINX: What, Where and HowFrontend Servers and NGINX: What, Where and How
Frontend Servers and NGINX: What, Where and How
 
Speed Up Your Website
Speed Up Your WebsiteSpeed Up Your Website
Speed Up Your Website
 
External Widgets Performance
External Widgets PerformanceExternal Widgets Performance
External Widgets Performance
 

More from Ecommerce Solution Provider SysIQ

More from Ecommerce Solution Provider SysIQ (17)

Unexpected achievements 2013
Unexpected achievements 2013Unexpected achievements 2013
Unexpected achievements 2013
 
Java serialization
Java serializationJava serialization
Java serialization
 
All things php
All things phpAll things php
All things php
 
Developing for e commerce is important
Developing for e commerce is importantDeveloping for e commerce is important
Developing for e commerce is important
 
Magento code audit
Magento code auditMagento code audit
Magento code audit
 
User focused design
User focused designUser focused design
User focused design
 
Scalability and performance for e commerce
Scalability and performance for e commerceScalability and performance for e commerce
Scalability and performance for e commerce
 
non-blocking java script
non-blocking java scriptnon-blocking java script
non-blocking java script
 
Going global
Going globalGoing global
Going global
 
Going Global
Going GlobalGoing Global
Going Global
 
Quick Intro to Clean Coding
Quick Intro to Clean CodingQuick Intro to Clean Coding
Quick Intro to Clean Coding
 
Management and Communications (IPAA)
Management and Communications (IPAA)Management and Communications (IPAA)
Management and Communications (IPAA)
 
Databases on Client Side
Databases on Client SideDatabases on Client Side
Databases on Client Side
 
Testing schools overview
Testing schools overviewTesting schools overview
Testing schools overview
 
Interactive web prototyping
Interactive web prototypingInteractive web prototyping
Interactive web prototyping
 
Модульные сетки в реальном мире
Модульные сетки в реальном миреМодульные сетки в реальном мире
Модульные сетки в реальном мире
 
Understanding Annotations in Java
Understanding Annotations in JavaUnderstanding Annotations in Java
Understanding Annotations in Java
 

SMACSS - масштабируемая модульная архитектура css

  • 3. Effect • дублирующийся код • запутанная структура • тяжело поддерживать • сложно масштабировать • и т.д. Слайд 11 из 1111
  • 4. Cause • лень • нежелание разбираться в чужом коде • цейтнот • ОТСУТСТВИЕ СИСТЕМЫ • и т.д. Слайд 100 из 1111
  • 5. Что делать? Слайд 101 из 1111
  • 6. Что делать? Слайд 110 из 1111
  • 7. SMACSS by Jonathan Snook Слайд 111 из 1111
  • 8. Структура CSS 1. General 2. Layout 3. Module 4. State Слайд 1000 из 1111
  • 9. General • html теги без классов и #ID • + reset.css Слайд 1001 из 1111
  • 10. Layout • префикс .l- или #ID • классы для position, float и display • + grid.css Слайд 1010 из 1111
  • 11. Module • без префиксов (.module {...}) • подклассы и классы-модификаторы (.module-subclass {...}) • максимальная независимость как от структуры самого модуля так и от контекста Слайд 1011 из 1111
  • 12. State • префикс .is-state • описание любого состояния отличающегося от дефолтного (.is-hidden, .is-active, .is-logged) • допускается использование !important (если оно оправданно) Слайд 1100 из 1111
  • 13. Сухой остаток + дополнительные уровни семантики + управляемый код + расширяемый код + возможность повторного использования - это не панацея - надо думать - следовать правилам Слайд 1101 из 1111
  • 14. Ресурсы SMACSS.com и для общего развития OOCSS, БЭМ, HTML5 Boilerplate, normalize.css, Bootstrap, 960.gs, Eric Meyer CSS Reset Слайд 1110 из 1111
  • 15. Вопросы? Задавайте умные вопросы. Получайте умные ответы. (меня зовут Александр, можно просто Саша) Слайд 1111 из 1111