smacssPREPARING DRUPAL 8 CSS ORGANIZATION.
SMACSS in Drupal 8 is not required or a standard.
However, it is a best-practice.
Implementing SMACSS in Drupal 8 is a work-in-progress.
A NOTE TO THE READER.
hey,listen
Follow along: https://www.drupal.org/node/1887922
A LITTLE ABOUT MYSELF.
ericsembrat
Web Manager at the College of Engineering at
Georgia Tech.
President of the Atlanta Drupal User’s Group.
Doctoral student at Georgia State University.
Learn more: http://www.webbeh.com
cssorganizationTHE NEVER-ENDING STRUGGLE FOR SANITY.
CONTROL-F ALL DAY.
disorganized
CSS best-practices in Drupal 7 didn’t exist beyond basic
CSS practices.
So, many of your theme frameworks have lots of different
confusing CSS organization.
Go back in time: https://www.drupal.org/node/302199
Our old friend Zen (3.x).
Or, our newer friend - Zen (5.x).
(how I feel when navigating all the different
CSS structures to find relevant styles)
there’saneasierwayLET’S BRING SOME BEST-PRACTICES IN FRONT-END INTO DRUPAL.
smacssAll about the smacks.
SMACSS (pronounced “smacks”) is more style guide than rigid framework.
There is no library within here for you to download or install. SMACSS is a
way to examine your design process and as a way to fit those rigid
frameworks into a flexible thought process. It is an attempt to document
a consistent approach to site development when using CSS.
Scalable (and) 

Modular 

Architecture (for)
CSS
Buy the book: https://smacss.com/
SMACSS follows object-oriented programming (OO) in that its goals are to:
Increase the semantic value of a section of html and content
Decrease the expectation of a specific html structure
More generally, SMACSS’ focus is on locating and organizing patterns
throughout your CSS so that it is reusable and easier to segment and
adjust.
SMACSS’ design is intended to be a starting point (not an end-all) to
building a style guide and CSS standard.
Organization is not rigidly defined.
A NOTE TO THE READER.
hey,listen
base
layout
module
state
theme
base
Base rules are applied directly to elements through element selectors,
descendent selectors, child selectors, pseudo-classes, however not specific
class or ID selectors.
(remember reset.css? this is where that goes)
layout
Layout rules apply directly to the sizes and locations of your major
template components (header, footer, sidebar, main area).
module
Minor page components include navigation bars and widgets. They tend to
be inside layout components and even within other modules.
Modules should be designed so they can exist on their own, which gives
them greater flexibility in being combined and moved around to different
parts of the design without breaking the layout. With modules we do want
to avoid IDs and element selectors. More reuse means classes.
state
A state is something that augments and overrides all other styles.
States are generally applied to the same element as a layout rule or
applied to the same element as a base module class.
theme
A theme defines colors and images that give your application or site its
look and feel.
Themes can affect any of the primary types. It could override base styles
like default link colors. It could change module elements such as chrome
colors and borders. It could affect layout with different arrangements. It
could also alter how states look.
base
layout
module
state
theme
base
layout
module
state
theme
base
layout
component
state
theme
drupal8themes?SMACSS + Drupal for themers.
css/
base/
{base file name}.css
layout/
{layout file name}.css
component/
{component file name}.css
theme/
{theme file name}.css
File structure for Drupal 8 theme CSS:
Always separate Base, Layout, and Component
styles into their own files.
Drupal will aggregate these separate files into one
file, so there is no performance problem with this
practice.)
For complex themes, consider placing each
component or component family in its own file.
State rules, including media queries, should be
included with the component to which they
apply.
drupal8modules?SMACSS + Drupal for coders.
module_name.module.css: This file should hold the minimal styles needed
to get the module's functionality working. (layout, component state styles).
module_name.theme.css: This file should hold extra styles to make the
module's functionality aesthetically pleasing. (theme styles).
module_name.admin.css: This file should hold the minimal styles needed
to get the module's admin screens working. (layout, component state
styles).
On admin screens, the module may choose to load the *.module.css in
addition to the *.admin.css file.
module_name.admin.theme.css: This file should hold extra styles to make
the module's admin screens aesthetically pleasing. (theme styles).
File structure for Drupal 8 theme CSS:
Note: Modules should never have any base styles.
Drupal core's modules do not have any base
styles. Instead Drupal core uses the Normalize.css
library augmented with a drupal.base.css library.
helpwithsmacss?CSS preprocessors to the rescue.
Sass (and contributed plugins) help to encourage
consistency through the usage of mixins,
variables, loops, and libraries.
Mixins
Variables
Loops / Logic
Libraries
Partial Files
libsass
sass-globbing
css3 library (compass,
bourbon)
plugins as needed
cssfiles
sassfiles
libsass
sass-globbing
css3 library (compass,
bourbon)
plugins as needed
cssfiles
sassfiles
your css (as sass files)
compiled css files
Sass-globbing?
base layout component theme
questions?

More Related Content

PDF
SMACSS Your Sass Up
PDF
April 2016 - USG Web Tech Day - Let's Talk Drupal
PPTX
Theming Drupal: Beyond the Look and Feel
PPTX
Mdst 3559-02-01-html
PPTX
Smacss and bem
PPTX
Web topic 14 cascading style sheets
PDF
Introduction to XMLUI and Mirage Theming for DSpace 3
PDF
OOCSS, SMACSS or BEM?
SMACSS Your Sass Up
April 2016 - USG Web Tech Day - Let's Talk Drupal
Theming Drupal: Beyond the Look and Feel
Mdst 3559-02-01-html
Smacss and bem
Web topic 14 cascading style sheets
Introduction to XMLUI and Mirage Theming for DSpace 3
OOCSS, SMACSS or BEM?

Similar to April 2016 - MiniCamp Atlanta - SMACSS - Preparing Drupal 8 CSS Organization (20)

PDF
PSD to Theme: The SMACSS Way
PDF
We Need to Talk About CSS
PDF
018 CSS, BEM, SASS e boas práticas
PPTX
Architecture for css
PDF
OOCSS, SMACSS or BEM, what is the question...
PDF
CSS: a rapidly changing world
PDF
Future-proof styling in Drupal (8)
PDF
Create a landing page
PDF
What is Modular CSS?
PDF
Efficiently theming a multi-site Drupal 8 portal - Drupal Dev Days Seville 2017
PPTX
Scalable and Modular CSS FTW!
PDF
Tech Headline - CSS Naming Conventions: Improve your code with OOCSS, SMACSS,...
PDF
Css Systems
PPTX
SPS Oslo - Stop your SharePoint CSS becoming a di-sass-ter today!
PDF
More of less (take 2)
PDF
Object Oriented CSS for rapid, scalable and maintainable development
PDF
Structure Your SASS BADcamp 2013
PDF
Drupaldelphia Shortcuts Cheats And Cheap Stunts
PDF
Teams, styles and scalable applications
PDF
Perfect Styling - How to write better CSS
PSD to Theme: The SMACSS Way
We Need to Talk About CSS
018 CSS, BEM, SASS e boas práticas
Architecture for css
OOCSS, SMACSS or BEM, what is the question...
CSS: a rapidly changing world
Future-proof styling in Drupal (8)
Create a landing page
What is Modular CSS?
Efficiently theming a multi-site Drupal 8 portal - Drupal Dev Days Seville 2017
Scalable and Modular CSS FTW!
Tech Headline - CSS Naming Conventions: Improve your code with OOCSS, SMACSS,...
Css Systems
SPS Oslo - Stop your SharePoint CSS becoming a di-sass-ter today!
More of less (take 2)
Object Oriented CSS for rapid, scalable and maintainable development
Structure Your SASS BADcamp 2013
Drupaldelphia Shortcuts Cheats And Cheap Stunts
Teams, styles and scalable applications
Perfect Styling - How to write better CSS
Ad

More from Eric Sembrat (20)

PDF
WPCampus 2019 - Website Renewal Services
PDF
September 2018 - Georgia Tech - Science Communications Workshop - Building We...
PDF
USG Web Tech Day 2018 - Microsoft Teams, Collaboration, & You
PDF
USG Web Tech Day 2017 - CMS Tunnel Vision
PDF
USG Rock Eagle 2017 - PWP at 1000 Days
PDF
HighEdWeb 2017 - Unbundle Your Institution: Building a Web Ecosystem
PDF
January 2017 - WPCampus Online - Learning from Drupal: Implementing WordPress...
PDF
November 2016 - ECN - You're Speaking Drupalese to Me
PDF
November 2016 - Georgia Tech - Building a Research Website
PDF
October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...
PDF
October 2016 - edUi - Save Us, Self Service!
PDF
August 2016 - DrupalCorn - The Paragraphs Cake - Structured & Layered Content...
PDF
April 2016 - Atlanta WordPress Users Group - Child Themes
PDF
October 2015 - USG Rock Eagle - USGweb
PDF
October 2015 - USG Rock Eagle - Drupal 8
PDF
USG Rock Eagle - October 2015 - PWP at Georgia Tech
PDF
Atlanta Drupal Users Group - October 2015 - Success of the GT Redesign
PDF
August 2015 - Web Governance - PWP Introduction
PDF
Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics
PDF
Georgia Tech Drupal Users Group - March 2015
WPCampus 2019 - Website Renewal Services
September 2018 - Georgia Tech - Science Communications Workshop - Building We...
USG Web Tech Day 2018 - Microsoft Teams, Collaboration, & You
USG Web Tech Day 2017 - CMS Tunnel Vision
USG Rock Eagle 2017 - PWP at 1000 Days
HighEdWeb 2017 - Unbundle Your Institution: Building a Web Ecosystem
January 2017 - WPCampus Online - Learning from Drupal: Implementing WordPress...
November 2016 - ECN - You're Speaking Drupalese to Me
November 2016 - Georgia Tech - Building a Research Website
October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...
October 2016 - edUi - Save Us, Self Service!
August 2016 - DrupalCorn - The Paragraphs Cake - Structured & Layered Content...
April 2016 - Atlanta WordPress Users Group - Child Themes
October 2015 - USG Rock Eagle - USGweb
October 2015 - USG Rock Eagle - Drupal 8
USG Rock Eagle - October 2015 - PWP at Georgia Tech
Atlanta Drupal Users Group - October 2015 - Success of the GT Redesign
August 2015 - Web Governance - PWP Introduction
Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics
Georgia Tech Drupal Users Group - March 2015
Ad

Recently uploaded (20)

PDF
Hazard Identification & Risk Assessment .pdf
PDF
Τίμαιος είναι φιλοσοφικός διάλογος του Πλάτωνα
PPTX
What’s under the hood: Parsing standardized learning content for AI
PPTX
Core Concepts of Personalized Learning and Virtual Learning Environments
PDF
Journal of Dental Science - UDMY (2021).pdf
PDF
LIFE & LIVING TRILOGY- PART (1) WHO ARE WE.pdf
PPTX
Module on health assessment of CHN. pptx
PDF
LIFE & LIVING TRILOGY - PART (3) REALITY & MYSTERY.pdf
PPTX
Education and Perspectives of Education.pptx
PDF
Skin Care and Cosmetic Ingredients Dictionary ( PDFDrive ).pdf
PDF
BP 704 T. NOVEL DRUG DELIVERY SYSTEMS (UNIT 2).pdf
PDF
BP 704 T. NOVEL DRUG DELIVERY SYSTEMS (UNIT 1)
PDF
BP 505 T. PHARMACEUTICAL JURISPRUDENCE (UNIT 1).pdf
PDF
HVAC Specification 2024 according to central public works department
PDF
advance database management system book.pdf
PDF
My India Quiz Book_20210205121199924.pdf
PPTX
Share_Module_2_Power_conflict_and_negotiation.pptx
PDF
Vision Prelims GS PYQ Analysis 2011-2022 www.upscpdf.com.pdf
PDF
David L Page_DCI Research Study Journey_how Methodology can inform one's prac...
PPTX
Virtual and Augmented Reality in Current Scenario
Hazard Identification & Risk Assessment .pdf
Τίμαιος είναι φιλοσοφικός διάλογος του Πλάτωνα
What’s under the hood: Parsing standardized learning content for AI
Core Concepts of Personalized Learning and Virtual Learning Environments
Journal of Dental Science - UDMY (2021).pdf
LIFE & LIVING TRILOGY- PART (1) WHO ARE WE.pdf
Module on health assessment of CHN. pptx
LIFE & LIVING TRILOGY - PART (3) REALITY & MYSTERY.pdf
Education and Perspectives of Education.pptx
Skin Care and Cosmetic Ingredients Dictionary ( PDFDrive ).pdf
BP 704 T. NOVEL DRUG DELIVERY SYSTEMS (UNIT 2).pdf
BP 704 T. NOVEL DRUG DELIVERY SYSTEMS (UNIT 1)
BP 505 T. PHARMACEUTICAL JURISPRUDENCE (UNIT 1).pdf
HVAC Specification 2024 according to central public works department
advance database management system book.pdf
My India Quiz Book_20210205121199924.pdf
Share_Module_2_Power_conflict_and_negotiation.pptx
Vision Prelims GS PYQ Analysis 2011-2022 www.upscpdf.com.pdf
David L Page_DCI Research Study Journey_how Methodology can inform one's prac...
Virtual and Augmented Reality in Current Scenario

April 2016 - MiniCamp Atlanta - SMACSS - Preparing Drupal 8 CSS Organization

  • 1. smacssPREPARING DRUPAL 8 CSS ORGANIZATION.
  • 2. SMACSS in Drupal 8 is not required or a standard. However, it is a best-practice. Implementing SMACSS in Drupal 8 is a work-in-progress. A NOTE TO THE READER. hey,listen Follow along: https://www.drupal.org/node/1887922
  • 3. A LITTLE ABOUT MYSELF. ericsembrat Web Manager at the College of Engineering at Georgia Tech. President of the Atlanta Drupal User’s Group. Doctoral student at Georgia State University. Learn more: http://www.webbeh.com
  • 5. CONTROL-F ALL DAY. disorganized CSS best-practices in Drupal 7 didn’t exist beyond basic CSS practices. So, many of your theme frameworks have lots of different confusing CSS organization. Go back in time: https://www.drupal.org/node/302199
  • 6. Our old friend Zen (3.x).
  • 7. Or, our newer friend - Zen (5.x).
  • 8. (how I feel when navigating all the different CSS structures to find relevant styles)
  • 9. there’saneasierwayLET’S BRING SOME BEST-PRACTICES IN FRONT-END INTO DRUPAL.
  • 11. SMACSS (pronounced “smacks”) is more style guide than rigid framework. There is no library within here for you to download or install. SMACSS is a way to examine your design process and as a way to fit those rigid frameworks into a flexible thought process. It is an attempt to document a consistent approach to site development when using CSS. Scalable (and) 
 Modular 
 Architecture (for) CSS
  • 12. Buy the book: https://smacss.com/
  • 13. SMACSS follows object-oriented programming (OO) in that its goals are to: Increase the semantic value of a section of html and content Decrease the expectation of a specific html structure More generally, SMACSS’ focus is on locating and organizing patterns throughout your CSS so that it is reusable and easier to segment and adjust.
  • 14. SMACSS’ design is intended to be a starting point (not an end-all) to building a style guide and CSS standard. Organization is not rigidly defined. A NOTE TO THE READER. hey,listen
  • 16. base Base rules are applied directly to elements through element selectors, descendent selectors, child selectors, pseudo-classes, however not specific class or ID selectors. (remember reset.css? this is where that goes)
  • 17. layout Layout rules apply directly to the sizes and locations of your major template components (header, footer, sidebar, main area).
  • 18. module Minor page components include navigation bars and widgets. They tend to be inside layout components and even within other modules. Modules should be designed so they can exist on their own, which gives them greater flexibility in being combined and moved around to different parts of the design without breaking the layout. With modules we do want to avoid IDs and element selectors. More reuse means classes.
  • 19. state A state is something that augments and overrides all other styles. States are generally applied to the same element as a layout rule or applied to the same element as a base module class.
  • 20. theme A theme defines colors and images that give your application or site its look and feel. Themes can affect any of the primary types. It could override base styles like default link colors. It could change module elements such as chrome colors and borders. It could affect layout with different arrangements. It could also alter how states look.
  • 25. css/ base/ {base file name}.css layout/ {layout file name}.css component/ {component file name}.css theme/ {theme file name}.css File structure for Drupal 8 theme CSS:
  • 26. Always separate Base, Layout, and Component styles into their own files. Drupal will aggregate these separate files into one file, so there is no performance problem with this practice.)
  • 27. For complex themes, consider placing each component or component family in its own file. State rules, including media queries, should be included with the component to which they apply.
  • 29. module_name.module.css: This file should hold the minimal styles needed to get the module's functionality working. (layout, component state styles). module_name.theme.css: This file should hold extra styles to make the module's functionality aesthetically pleasing. (theme styles). module_name.admin.css: This file should hold the minimal styles needed to get the module's admin screens working. (layout, component state styles). On admin screens, the module may choose to load the *.module.css in addition to the *.admin.css file. module_name.admin.theme.css: This file should hold extra styles to make the module's admin screens aesthetically pleasing. (theme styles). File structure for Drupal 8 theme CSS:
  • 30. Note: Modules should never have any base styles. Drupal core's modules do not have any base styles. Instead Drupal core uses the Normalize.css library augmented with a drupal.base.css library.
  • 32. Sass (and contributed plugins) help to encourage consistency through the usage of mixins, variables, loops, and libraries.
  • 39. libsass sass-globbing css3 library (compass, bourbon) plugins as needed cssfiles sassfiles your css (as sass files) compiled css files