Movatterモバイル変換


[0]ホーム

URL:


Shay Howe, profile picture
Uploaded byShay Howe
PDF, PPTX267 views

Modular HTML & CSS Turbo Workshop

The document outlines a workshop on modular HTML and CSS conducted by Shay Howe and Darby Frey, focusing on addressing common issues in web development such as scalability, maintainability, and code organization. It emphasizes best practices like avoiding unnecessary classes and using specific techniques like SCSS for better modular design. The workshop covers methodologies for structuring code, accommodating content, and optimizing performance with practical examples and recommendations.

Embed presentation

Download as PDF, PPTX
TACTICALHTML & CSSMODULARHTML & CSSTURBO WORKSHOPShay Howe@shayhowelearn.shayhowe.comDarby Frey@darbyfreydarbyfrey.com
@shayhowe & @darbyfreyModular HTML & CSSShay Howe@shayhowelearn.shayhowe.comDarby Frey@darbyfreydarbyfrey.com
@shayhowe & @darbyfreyModular HTML & CSS1. The Problem2. Groundwork3. Assembling Layout4. Accommodating Content5. Turbo with SCSS6. OnwardOUR SCHEDULE
@shayhowe & @darbyfreyModular HTML & CSSTHEPROBLEM
The Gust by Willem van de Velde the Younger
@shayhowe & @darbyfreyModular HTML & CSSCOMMON PROBLEMS• Websites have difficulty scaling• Code becomes brittle• Files and code bases begin to swell
@shayhowe & @darbyfreyModular HTML & CSSWHAT’S WRONG• Best practices aren’t exactly best practices• Standards need to evolve
@shayhowe & @darbyfreyModular HTML & CSSBEST BAD PRACTICES• Avoid extra elements• Avoid classes• Leverage type selectors• Leverage descendent selectors
@shayhowe & @darbyfreyModular HTML & CSSBEST BAD PRACTICESAvoiding classessection  ul#nav  li  {...}section:nth-­‐child(2)  div:nth-­‐child(7)  >  a  {...}Leveraging selectorsa.btn  {...}#main  a.btn  {...}#main  div.feature  a.btn  {...}
@shayhowe & @darbyfreyModular HTML & CSSBEST BAD PRACTICESBad#contact  li:nth-­‐child(1)  input,#contact  li:nth-­‐child(2)  input  {    width:  160px;}#contact  li:nth-­‐child(3)  textarea  {    width:  280px;}
@shayhowe & @darbyfreyModular HTML & CSSBEST BAD PRACTICESGood.col-­‐1  {    width:  160px;}.col-­‐2  {    width:  280px;}
@shayhowe & @darbyfreyModular HTML & CSSSPECIFICITY?• Specificity determines which styles are applied• Each selector has a specificity weight• High specificity beats low specificity• Low specificity is key
@shayhowe & @darbyfreyModular HTML & CSSMEASURING SPECIFICITYFormula• IDs, Classes/Pseudo-classes/Attributes, ElementsHigh Specificity (Bad)#primary  #main  div.gallery  figure.mediaIDs: 2, Classes: 2, Elements: 2 — Compiled: 2–2–2Low Specificity (Good).gallery-­‐mediaIDs: 0, Classes: 1, Elements: 0 — Compiled: 0–1–0
@shayhowe & @darbyfreyModular HTML & CSS
@shayhowe & @darbyfreyModular HTML & CSSWATCH SPECIFICITY• Be explicit• Keep specificity low• Never use IDs or !important• Avoid nested selectors (#main  .spotlight  strong  span)
@shayhowe & @darbyfreyModular HTML & CSSWATCH SPECIFICITYBad#primary  #main  div.gallery  {    text-­‐transform:  uppercase;}#primary  #main  div.gallery  figure.media  {    background:  #ccc;}
@shayhowe & @darbyfreyModular HTML & CSSWATCH SPECIFICITYGood.gallery  {    text-­‐transform:  uppercase;}.gallery-­‐media  {    background:  #ccc;}
Parade of the Black Sea Fleet by Ivan Aivazovsky
@shayhowe & @darbyfreyModular HTML & CSSMAINTAINABILITYCode must be...• Organized• Modular• Performant
@shayhowe & @darbyfreyModular HTML & CSSMETHODOLOGIESOOCSS• Object-Oriented CSSFrom Nicole Sullivan – oocss.orgSMACSS• Scalable and Modular Architecture for CSSFrom Jonathan Snook – smacss.com
@shayhowe & @darbyfreyModular HTML & CSSGROUNDWORK
@shayhowe & @darbyfreyModular HTML & CSSREUSE CODE• Do not duplicate code• Remove old code• Defer loading subsequent styles
@shayhowe & @darbyfreyModular HTML & CSSREUSE CODEBad.news  {    background:  #eee;    color:  #666;}.social  {    background:  #eee;    color:  #666;}
@shayhowe & @darbyfreyModular HTML & CSSREUSE CODEGood.news,.social  {    background:  #eee;    color:  #666;}Better.feat-­‐box  {    background:  #eee;    color:  #666;}
@shayhowe & @darbyfreyModular HTML & CSSUSE CLASSES• Write understandable class names• Avoid unnecessary nesting• Use same strength specificity
@shayhowe & @darbyfreyModular HTML & CSSUSE CLASSESBad.feat-­‐box  .callout  .pr  {    font-­‐size:  12px;}.feat-­‐box  .callout  .pr  .un  {    color:  #39f;}
@shayhowe & @darbyfreyModular HTML & CSSUSE CLASSESGood.feat-­‐box  .price  {    font-­‐size:  12px;}.feat-­‐box  .unit  {    color:  #39f;}
@shayhowe & @darbyfreyModular HTML & CSSUSE CLASSESBad.btn.large  {    font-­‐size:  24px;        padding:  15px  30px;}<div  class="btn  large">...</div>
@shayhowe & @darbyfreyModular HTML & CSSUSE CLASSESGood.btn-­‐large  {    font-­‐size:  24px;    padding:  15px  30px;}<div  class="btn-­‐large">...</div>
@shayhowe & @darbyfreyModular HTML & CSSASSEMBLINGLAYOUT
@shayhowe & @darbyfreyModular HTML & CSSABSTRACT STRUCTURE• Separate presentation (or theme) from layout• Create an object layer for layout• Create a skin layer for theme• Use a grid
@shayhowe & @darbyfreyModular HTML & CSSABSTRACT STRUCTUREBad.news  {    background:  #eee;    color:  #666;    margin:  0  10px;    width:  400px;}<div  class="news">...</div>
@shayhowe & @darbyfreyModular HTML & CSSABSTRACT STRUCTUREGood.grid-­‐4  {    margin:  0  10px;    width:  400px;}.feat-­‐box  {    background:  #eee;    color:  #666;}<div  class="grid-­‐4  feat-­‐box">...</div>
@shayhowe & @darbyfreyModular HTML & CSSTRANSPARENTIZE ELEMENTS• Stylize elements to be transparent• Keep visual properties apart from layoutproperties
@shayhowe & @darbyfreyModular HTML & CSSTRANSPARENTIZE ELEMENTSBad.pagination  {    border-­‐radius:  5px;    border:  1px  solid  #eee;    margin:  0  10px;    width:  620px;}<ul  class="pagination">...</ul>
@shayhowe & @darbyfreyModular HTML & CSSTRANSPARENTIZE ELEMENTSGood.grid-­‐8  {    margin:  0  10px;    width:  620px;}.offset-­‐box  {    border-­‐radius:  5px;    border:  1px  solid  #eee;}<ul  class="grid-­‐8  offset-­‐box">...</ul>
@shayhowe & @darbyfreyModular HTML & CSSCREATE ADAPTABLE LAYOUTS• Height and width should be flexible• Height should extend with content• Width should extend with a grid
@shayhowe & @darbyfreyModular HTML & CSSCREATE ADAPTABLE LAYOUTSBad#main  {    float:  left;    margin:  0  10px;    width:  620px;}#aside  {    float:  left;    margin:  0  10px;    width:  300px;}
@shayhowe & @darbyfreyModular HTML & CSSCREATE ADAPTABLE LAYOUTSGood.grid-­‐4,.grid-­‐8  {    float:  left;    margin:  0  10px;}.grid-­‐4  {    width:  300px;}.grid-­‐8  {    width:  620px;}
@shayhowe & @darbyfreyModular HTML & CSSASSEMBLING LAYOUTIN PRACTICEhttp://bit.ly/modular-html-css
@shayhowe & @darbyfreyModular HTML & CSSACCOMMODATINGCONTENT
@shayhowe & @darbyfreyModular HTML & CSSSEPARATE CONTENT• Separate content from container• Stylize content regardless of container
@shayhowe & @darbyfreyModular HTML & CSSSEPARATE CONTENTBad.alert  {    background:  #f2dede;    border-­‐radius:  10px;    color:  #b94a48;    padding:  10px  20px;}<div  class="alert">...</div>
@shayhowe & @darbyfreyModular HTML & CSSSEPARATE CONTENTGood.alert  {    border-­‐radius:  10px;    padding:  10px  20px;}.alert-­‐error  {    background:  #f2dede;    color:  #b94a48;}<div  class="alert  alert-­‐error">...</div>
@shayhowe & @darbyfreyModular HTML & CSSAVOID PARENT DEPENDENCY• Remove parent container dependency• Decouple CSS from HTML• Create components to be used anywhere
@shayhowe & @darbyfreyModular HTML & CSSAVOID PARENT DEPENDENCYBad.feat-­‐box  {    background:  #eee;}article  .feat-­‐box  {    background:  #fff;}<article>    <div  class="feat-­‐box">...</div></article>
@shayhowe & @darbyfreyModular HTML & CSSAVOID PARENT DEPENDENCYGood.feat-­‐box  {    background:  #eee;}.feat-­‐box-­‐alt  {    background:  #fff;}<article>    <div  class="feat-­‐box-­‐alt">...</div></article>
@shayhowe & @darbyfreyModular HTML & CSSFAVOR SEMANTICS• Allow elements to adapt• Uses individual classes to extend modules
@shayhowe & @darbyfreyModular HTML & CSSFAVOR SEMANTICSBad.feat-­‐box  h2  {    color:  #f60;    font:  18px  Helvetica,  sans-­‐serif;}<div  class="feat-­‐box">    <h2>...</h2></div>
@shayhowe & @darbyfreyModular HTML & CSSFAVOR SEMANTICSGood.feat-­‐subhead  {    color:  #f60;    font:  18px  Helvetica,  sans-­‐serif;}<div  class="feat-­‐box">    <h2  class="feat-­‐subhead">...</h2></div>
@shayhowe & @darbyfreyModular HTML & CSSACCOMMODATING CONTENTIN PRACTICEhttp://bit.ly/modular-html-css
@shayhowe & @darbyfreyModular HTML & CSSTURBOWITH SCSS
@shayhowe & @darbyfreyModular HTML & CSSSETUP
@shayhowe & @darbyfreyModular HTML & CSSSCSS• CSS preprocessor• Extension of CSS3• Compiled using Ruby• Adds nested rules, variables, mixins, selectorinheritance, and more
@shayhowe & @darbyfreyModular HTML & CSSSCSSSCSS Syntax.new  {    color:  #f60;    .item  {        font-­‐size:  24px;    }}Compiled CSS.new  {    color:  #f60;}.new  .item  {    font-­‐size:  24px;}
@shayhowe & @darbyfreyModular HTML & CSSSCSS VS. SASSSCSS Syntax.new  {    color:  #f60;    .item  {        font-­‐size:  24px;    }}Sass Syntax.new    color:  #f60    .item        font-­‐size:  24px
@shayhowe & @darbyfreyModular HTML & CSSCOMPASS• Built on top of Sass• Includes reusable patterns• Provides cross browser CSS3 mixins
@shayhowe & @darbyfreyModular HTML & CSSSCOUT APP• GUI for compiling Sass and Compass• Available for both Mac and Windows
@shayhowe & @darbyfreyModular HTML & CSSSETUPIN PRACTICEhttp://bit.ly/modular-html-css
@shayhowe & @darbyfreyModular HTML & CSSORGANIZATION
@shayhowe & @darbyfreyModular HTML & CSSTECHNIQUESettings• Utility styles (Extends, Mixins, Variables)Base• Core styles for entire site (Layout, Typography)Components• UI concepts & design patterns (Buttons, List, Navigation)Modules• Business logic (Aside, Header, Footer)
@shayhowe & @darbyfreyModular HTML & CSSTECHNIQUE
@shayhowe & @darbyfreyModular HTML & CSSPARTIALS• Must begin with an underscore, _• Must have a file extension of .scss, not .css.scss
@shayhowe & @darbyfreyModular HTML & CSSIMPORTSworkshop.css.scss//  Compass@import  "compass/css3";//  Settings@import  "settings/variables";//  Base@import  "base/layout";...
@shayhowe & @darbyfreyModular HTML & CSSORGANIZATIONIN PRACTICEhttp://bit.ly/modular-html-css
@shayhowe & @darbyfreyModular HTML & CSSSETTINGS
@shayhowe & @darbyfreyModular HTML & CSSVARIABLES• Allow common values to be shared• Assigned with a dollar sign, name, colon, and value• May be a number, string, boolean, null, or multiplecomma separated values
@shayhowe & @darbyfreyModular HTML & CSSVARIABLESSCSS Syntax$font-­‐base:  14px;$sans-­‐serif:  "Open  Sans",  sans-­‐serif;p  {    font:  $font-­‐base  $sans-­‐serif;}Compiled CSSp  {    font:  14px  "Open  Sans",  sans-­‐serif;}
@shayhowe & @darbyfreyModular HTML & CSSEXTENDS• Share common styles without duplicating them• Keep code weight low• Generates detailed selectors• Assigned with the @extend  rule followed by theselector
@shayhowe & @darbyfreyModular HTML & CSSEXTENDSSCSS Syntax.alert  {    border-­‐radius:  10px;}.alert-­‐error  {    @extend  .alert;    color:  #b94a48;}.alert-­‐success  {    @extend  .alert;    color:  #468847;}Compiled CSS.alert,.alert-­‐error,.alert-­‐success  {    border-­‐radius:  10px;}.alert-­‐error  {    color:  #b94a48;}.alert-­‐success  {    color:  #468847;}
@shayhowe & @darbyfreyModular HTML & CSSPLACEHOLDERS• Similar to extends• Selector is assigned with a percentage sign• Extended selector is not output, only the styles
@shayhowe & @darbyfreyModular HTML & CSSPLACEHOLDERSSCSS Syntax%alert  {    border-­‐radius:  10px;}.alert-­‐error  {    @extend  %alert;    color:  #b94a48;}.alert-­‐success  {    @extend  %alert;    color:  #468847;}Compiled CSS.alert-­‐error,.alert-­‐success  {    border-­‐radius:  10px;}.alert-­‐error  {    color:  #b94a48;}.alert-­‐success  {    color:  #468847;}
@shayhowe & @darbyfreyModular HTML & CSSMIXINS• Share similar styles based off given arguments• Duplicates properties, providing different values• Assigned with the @mixin  rule followed by thename and arguments
@shayhowe & @darbyfreyModular HTML & CSSMIXINSSCSS Syntax@mixin  btn($color)  {      color:  $color;}.btn  {    @mixin  btn(#f60);}Compiled CSS.btn  {    color:  #f60;}
@shayhowe & @darbyfreyModular HTML & CSSSETTINGSIN PRACTICEhttp://bit.ly/modular-html-css
@shayhowe & @darbyfreyModular HTML & CSSREFACTOR
@shayhowe & @darbyfreyModular HTML & CSSCOMMENTS• Two different types of comments• Standard CSS comments as normal• Silent comments, assigned with two forwardslashes, not compiled in the output
@shayhowe & @darbyfreyModular HTML & CSSCOMMENTSSCSS Syntax/*  Normal  comment  */.awesome  {    color:  #3276b1;}//  Omitted  comment.very-­‐awesome  {    color:  #47a447;}Compiled CSS/*  Normal  comment  */.awesome  {    color:  #3276b1;}.very-­‐awesome  {    color:  #47a447;}
@shayhowe & @darbyfreyModular HTML & CSSPARENT SELECTOR• Add styles to a previous selector• Commonly used with pseudo classes• Assigned with an ampersand• May also be used as the key selector
@shayhowe & @darbyfreyModular HTML & CSSPARENT SELECTORSCSS Syntaxa  {    color:  #8ec63f;    &:hover  {        color:  #f7941d;    }}Compiled CSSa  {    color:  #8ec63f;}a:hover  {    color:  #f7941d;}
@shayhowe & @darbyfreyModular HTML & CSSINTERPOLATION• Occasionally SCSS need to be interpolated• Most commonly happens as part of a class name,property name, or inside a string plain text• Assigned by placing the value inside #{...}
@shayhowe & @darbyfreyModular HTML & CSSINTERPOLATIONSCSS Syntax$logo:  twitter;$offset:  left;.#{$logo}  {    #{$offset}:  20px;}Compiled CSS.twitter  {    left:  20px;}
@shayhowe & @darbyfreyModular HTML & CSSREFACTORIN PRACTICEhttp://bit.ly/modular-html-css
@shayhowe & @darbyfreyModular HTML & CSSCOMPILE
@shayhowe & @darbyfreyModular HTML & CSSOUTPUT STYLES• SCSS has multiple output styles• Nested or expanded is best for development• Compact or compressed is best for production
@shayhowe & @darbyfreyModular HTML & CSSCOMPILEIN PRACTICEhttp://bit.ly/modular-html-css
@shayhowe & @darbyfreyModular HTML & CSSONWARD
Ships on the Roadstead by Willem van de Velde the Younger
@shayhowe & @darbyfreyModular HTML & CSSAPPROACH• Stop thinking about pages• Start thinking about components• Take visual inventory
@shayhowe & @darbyfreyModular HTML & CSSTHEMES• Decouple HTML and CSS• Separate presentation from layout• Separate content from container• Extend elements with classes
@shayhowe & @darbyfreyModular HTML & CSSOUTCOMES• Maintainability!• Reusable code, less duplication• Flexibility and extensibility• Improved standards
@shayhowe & @darbyfreyModular HTML & CSSWHAT’S NEXTBuild a style guide• Twitter Bootstrap, Zurb FoundationReview methodologies• OOCSS, SMACSSTest your code• CSS Lint, Inspector, PageSpeed
@shayhowe & @darbyfreyModular HTML & CSSTHANK YOU!Questions?@shayhowe@darbyfrey

Recommended

PDF
Modular HTML, CSS, & JS Workshop
PDF
Modular HTML & CSS
KEY
Slow kinda sucks
PDF
Html:css crash course (4:5)
KEY
2022 HTML5: The future is now
KEY
Joomla! Day Chicago 2011 - Templating the right way - Jonathan Shroyer
PDF
TOSSUG HTML5 讀書會 新標籤與表單
PDF
PDF
The Future Of CSS
PPTX
HTML/CSS Web Blog Example
PPTX
Web 102 INtro to CSS
PPTX
Introduction to HTML5
PDF
Progressive Prototyping w/HTML5, CSS3 and jQuery
PDF
Intro to CSS
PDF
CSS pattern libraries
PDF
CSS - OOCSS, SMACSS and more
PDF
Code & Design your first website 4/18
PDF
Code &amp; design your first website (3:16)
PPTX
Blog HTML example for IML 295
PPTX
Rapid and Responsive - UX to Prototype with Bootstrap
PDF
HTML5, just another presentation :)
ZIP
Html5 public
PDF
Quality Development with CSS3
PDF
Advanced CSS Troubleshooting & Efficiency
PPT
Cssbestpracticesjstyleguidejandtips 150830184202-lva1-app6892
PDF
Html5 ux london
PDF
CSS Frameworks
PDF
Prototyping w/HTML5 and CSS3
PDF
Talk Web Design: Get Ready For CSS Grid Layout
PPT
Technology and Innovation Management

More Related Content

PDF
Modular HTML, CSS, & JS Workshop
PDF
Modular HTML & CSS
KEY
Slow kinda sucks
PDF
Html:css crash course (4:5)
KEY
2022 HTML5: The future is now
KEY
Joomla! Day Chicago 2011 - Templating the right way - Jonathan Shroyer
PDF
TOSSUG HTML5 讀書會 新標籤與表單
PDF
Modular HTML, CSS, & JS Workshop
Modular HTML & CSS
Slow kinda sucks
Html:css crash course (4:5)
2022 HTML5: The future is now
Joomla! Day Chicago 2011 - Templating the right way - Jonathan Shroyer
TOSSUG HTML5 讀書會 新標籤與表單

What's hot

PDF
The Future Of CSS
PPTX
HTML/CSS Web Blog Example
PPTX
Web 102 INtro to CSS
PPTX
Introduction to HTML5
PDF
Progressive Prototyping w/HTML5, CSS3 and jQuery
PDF
Intro to CSS
PDF
CSS pattern libraries
PDF
CSS - OOCSS, SMACSS and more
PDF
Code & Design your first website 4/18
PDF
Code &amp; design your first website (3:16)
PPTX
Blog HTML example for IML 295
PPTX
Rapid and Responsive - UX to Prototype with Bootstrap
PDF
HTML5, just another presentation :)
ZIP
Html5 public
PDF
Quality Development with CSS3
PDF
Advanced CSS Troubleshooting & Efficiency
PPT
Cssbestpracticesjstyleguidejandtips 150830184202-lva1-app6892
PDF
Html5 ux london
PDF
CSS Frameworks
PDF
Prototyping w/HTML5 and CSS3
The Future Of CSS
HTML/CSS Web Blog Example
Web 102 INtro to CSS
Introduction to HTML5
Progressive Prototyping w/HTML5, CSS3 and jQuery
Intro to CSS
CSS pattern libraries
CSS - OOCSS, SMACSS and more
Code & Design your first website 4/18
Code &amp; design your first website (3:16)
Blog HTML example for IML 295
Rapid and Responsive - UX to Prototype with Bootstrap
HTML5, just another presentation :)
Html5 public
Quality Development with CSS3
Advanced CSS Troubleshooting & Efficiency
Cssbestpracticesjstyleguidejandtips 150830184202-lva1-app6892
Html5 ux london
CSS Frameworks
Prototyping w/HTML5 and CSS3

Viewers also liked

PDF
Talk Web Design: Get Ready For CSS Grid Layout
PPT
Technology and Innovation Management
PPT
Practical Malware Analysis: Ch 7: Analyzing Malicious Windows Programs
PPS
Technology strategy
DOC
anu new resume.resume
PDF
Cantilever type switch design
PDF
Measuring the ROI of Informal Learning - Brandon Hall Group & Docebo
PPTX
Isp Final Gr Presentation
 
PPTX
Arnold schwarnzenegger
PPT
1auditconcepts
ODP
Tandaa Kenya Moses Kemibaro
PPTX
Ppt beleidsnota 74 september 2014-de zeven hoofdzonden van overheidsingrijpen...
 
PPTX
Ondernemen voor een betere wereld
 
PPTX
Traabajo tics
PDF
C4.compressed
Talk Web Design: Get Ready For CSS Grid Layout
Technology and Innovation Management
Practical Malware Analysis: Ch 7: Analyzing Malicious Windows Programs
Technology strategy
anu new resume.resume
Cantilever type switch design
Measuring the ROI of Informal Learning - Brandon Hall Group & Docebo
Isp Final Gr Presentation
 
Arnold schwarnzenegger
1auditconcepts
Tandaa Kenya Moses Kemibaro
Ppt beleidsnota 74 september 2014-de zeven hoofdzonden van overheidsingrijpen...
 
Ondernemen voor een betere wereld
 
Traabajo tics
C4.compressed

Similar to Modular HTML & CSS Turbo Workshop

PPT
Web design-workflow
PPTX
Css methods architecture
PDF
Create a landing page
PDF
Evolution of CSS
PPT
Chapter 6 - Web Design
PDF
Creative Web 02 - HTML & CSS Basics
PPTX
CSS Architecture: Writing Maintainable CSS
PPT
Make Css easy(part:2) : easy tips for css(part:2)
KEY
What is Object Oriented CSS?
PDF
Modular HTML & CSS Workshop
ZIP
OOCSS for Javascript pirates at jQueryPgh meetup
KEY
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective, Ajax ...
PDF
What is Modular CSS?
PDF
Jonathan Snook - Falling to pieces: the componentization of the web
PDF
Organize Your Website With Advanced CSS Tricks
PPTX
Rock Solid CSS Architecture
KEY
The Fast And The Fabulous
PDF
Scalable CSS You and Your Back-End Coders Can Love - @CSSConf Asia 2014
PDF
Ch. 3 HTML5, CIS 110 13F
 
PDF
OOCSS Lightening Talk
Web design-workflow
Css methods architecture
Create a landing page
Evolution of CSS
Chapter 6 - Web Design
Creative Web 02 - HTML & CSS Basics
CSS Architecture: Writing Maintainable CSS
Make Css easy(part:2) : easy tips for css(part:2)
What is Object Oriented CSS?
Modular HTML & CSS Workshop
OOCSS for Javascript pirates at jQueryPgh meetup
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective, Ajax ...
What is Modular CSS?
Jonathan Snook - Falling to pieces: the componentization of the web
Organize Your Website With Advanced CSS Tricks
Rock Solid CSS Architecture
The Fast And The Fabulous
Scalable CSS You and Your Back-End Coders Can Love - @CSSConf Asia 2014
Ch. 3 HTML5, CIS 110 13F
 
OOCSS Lightening Talk

More from Shay Howe

PDF
An Intro to HTML & CSS
PDF
The Web Design Process: A Strategy for Success
PDF
UI Design with HTML5 & CSS3
PDF
Quality Development with HTML5
PDF
HTML5 Semantics
PDF
Yes, Designer, You CAN Be a Product Leader
PDF
How Constraints Cultivate Growth
PDF
Collaboration Practices
PDF
Writing for the Web: The Right Strategy
An Intro to HTML & CSS
The Web Design Process: A Strategy for Success
UI Design with HTML5 & CSS3
Quality Development with HTML5
HTML5 Semantics
Yes, Designer, You CAN Be a Product Leader
How Constraints Cultivate Growth
Collaboration Practices
Writing for the Web: The Right Strategy

Recently uploaded

PPTX
coverpage for acr on professional code of ethics.pptx
PDF
[BROCHURE] Italy Tour Project | @SlideON
PDF
4S-SKYlight 1 Steel pdf for aluminuim sheet .pdf
PDF
SYS Office Portfolio - Trust the SYStem!
PPTX
solar system desing for multi level module
PDF
Designing_the_AI_Cosmos_with_Indian_Values.pdf
PDF
Art and Visual Perception: A PSYCHOLOGY OF THE CREATIVE EYE
PDF
Advanced Computational Intelligence: An International Journal (ACII)
PPTX
NETWORKING SECURITY PRESENTATION FROM ALI).pptx
PPTX
THEORY OF ARCHITECTURE - LECTURE NOTES - SYMBOLISM
PPTX
CH 12 FASHION DESIGN AND MERCHANDIZING.pptx
PDF
induction and two in one event with party
PPSX
Gas Turbine simulation in thermoflow software PRO Overview.ppsx
PDF
Casual Winter Collection 2024-25 Style Guid
 
PPTX
Dropshare 6.8.0 Crack for macOS Download
PPTX
Artificial Intelligence basic notes for engineering.pptx
PDF
Farm-structures-housing-cow-calves-youngstock_compressed.pdf
PPTX
Become a Professional UI/UX Designer by Learning How to Create Beautiful, Use...
PPTX
Chapter4_Initiation_of_Sediment_Motion_v2[1].pptx
PDF
12 Mobile App UI:UX Design Best Practices Updated 2025.pdf
coverpage for acr on professional code of ethics.pptx
[BROCHURE] Italy Tour Project | @SlideON
4S-SKYlight 1 Steel pdf for aluminuim sheet .pdf
SYS Office Portfolio - Trust the SYStem!
solar system desing for multi level module
Designing_the_AI_Cosmos_with_Indian_Values.pdf
Art and Visual Perception: A PSYCHOLOGY OF THE CREATIVE EYE
Advanced Computational Intelligence: An International Journal (ACII)
NETWORKING SECURITY PRESENTATION FROM ALI).pptx
THEORY OF ARCHITECTURE - LECTURE NOTES - SYMBOLISM
CH 12 FASHION DESIGN AND MERCHANDIZING.pptx
induction and two in one event with party
Gas Turbine simulation in thermoflow software PRO Overview.ppsx
Casual Winter Collection 2024-25 Style Guid
 
Dropshare 6.8.0 Crack for macOS Download
Artificial Intelligence basic notes for engineering.pptx
Farm-structures-housing-cow-calves-youngstock_compressed.pdf
Become a Professional UI/UX Designer by Learning How to Create Beautiful, Use...
Chapter4_Initiation_of_Sediment_Motion_v2[1].pptx
12 Mobile App UI:UX Design Best Practices Updated 2025.pdf

Modular HTML & CSS Turbo Workshop

  • 1.
    TACTICALHTML & CSSMODULARHTML& CSSTURBO WORKSHOPShay Howe@shayhowelearn.shayhowe.comDarby Frey@darbyfreydarbyfrey.com
  • 2.
    @shayhowe & @darbyfreyModularHTML & CSSShay Howe@shayhowelearn.shayhowe.comDarby Frey@darbyfreydarbyfrey.com
  • 3.
    @shayhowe & @darbyfreyModularHTML & CSS1. The Problem2. Groundwork3. Assembling Layout4. Accommodating Content5. Turbo with SCSS6. OnwardOUR SCHEDULE
  • 4.
    @shayhowe & @darbyfreyModularHTML & CSSTHEPROBLEM
  • 5.
    The Gust byWillem van de Velde the Younger
  • 6.
    @shayhowe & @darbyfreyModularHTML & CSSCOMMON PROBLEMS• Websites have difficulty scaling• Code becomes brittle• Files and code bases begin to swell
  • 7.
    @shayhowe & @darbyfreyModularHTML & CSSWHAT’S WRONG• Best practices aren’t exactly best practices• Standards need to evolve
  • 8.
    @shayhowe & @darbyfreyModularHTML & CSSBEST BAD PRACTICES• Avoid extra elements• Avoid classes• Leverage type selectors• Leverage descendent selectors
  • 9.
    @shayhowe & @darbyfreyModularHTML & CSSBEST BAD PRACTICESAvoiding classessection  ul#nav  li  {...}section:nth-­‐child(2)  div:nth-­‐child(7)  >  a  {...}Leveraging selectorsa.btn  {...}#main  a.btn  {...}#main  div.feature  a.btn  {...}
  • 10.
    @shayhowe & @darbyfreyModularHTML & CSSBEST BAD PRACTICESBad#contact  li:nth-­‐child(1)  input,#contact  li:nth-­‐child(2)  input  {    width:  160px;}#contact  li:nth-­‐child(3)  textarea  {    width:  280px;}
  • 11.
    @shayhowe & @darbyfreyModularHTML & CSSBEST BAD PRACTICESGood.col-­‐1  {    width:  160px;}.col-­‐2  {    width:  280px;}
  • 12.
    @shayhowe & @darbyfreyModularHTML & CSSSPECIFICITY?• Specificity determines which styles are applied• Each selector has a specificity weight• High specificity beats low specificity• Low specificity is key
  • 13.
    @shayhowe & @darbyfreyModularHTML & CSSMEASURING SPECIFICITYFormula• IDs, Classes/Pseudo-classes/Attributes, ElementsHigh Specificity (Bad)#primary  #main  div.gallery  figure.mediaIDs: 2, Classes: 2, Elements: 2 — Compiled: 2–2–2Low Specificity (Good).gallery-­‐mediaIDs: 0, Classes: 1, Elements: 0 — Compiled: 0–1–0
  • 14.
  • 15.
    @shayhowe & @darbyfreyModularHTML & CSSWATCH SPECIFICITY• Be explicit• Keep specificity low• Never use IDs or !important• Avoid nested selectors (#main  .spotlight  strong  span)
  • 16.
    @shayhowe & @darbyfreyModularHTML & CSSWATCH SPECIFICITYBad#primary  #main  div.gallery  {    text-­‐transform:  uppercase;}#primary  #main  div.gallery  figure.media  {    background:  #ccc;}
  • 17.
    @shayhowe & @darbyfreyModularHTML & CSSWATCH SPECIFICITYGood.gallery  {    text-­‐transform:  uppercase;}.gallery-­‐media  {    background:  #ccc;}
  • 18.
    Parade of theBlack Sea Fleet by Ivan Aivazovsky
  • 19.
    @shayhowe & @darbyfreyModularHTML & CSSMAINTAINABILITYCode must be...• Organized• Modular• Performant
  • 20.
    @shayhowe & @darbyfreyModularHTML & CSSMETHODOLOGIESOOCSS• Object-Oriented CSSFrom Nicole Sullivan – oocss.orgSMACSS• Scalable and Modular Architecture for CSSFrom Jonathan Snook – smacss.com
  • 21.
    @shayhowe & @darbyfreyModularHTML & CSSGROUNDWORK
  • 22.
    @shayhowe & @darbyfreyModularHTML & CSSREUSE CODE• Do not duplicate code• Remove old code• Defer loading subsequent styles
  • 23.
    @shayhowe & @darbyfreyModularHTML & CSSREUSE CODEBad.news  {    background:  #eee;    color:  #666;}.social  {    background:  #eee;    color:  #666;}
  • 24.
    @shayhowe & @darbyfreyModularHTML & CSSREUSE CODEGood.news,.social  {    background:  #eee;    color:  #666;}Better.feat-­‐box  {    background:  #eee;    color:  #666;}
  • 25.
    @shayhowe & @darbyfreyModularHTML & CSSUSE CLASSES• Write understandable class names• Avoid unnecessary nesting• Use same strength specificity
  • 26.
    @shayhowe & @darbyfreyModularHTML & CSSUSE CLASSESBad.feat-­‐box  .callout  .pr  {    font-­‐size:  12px;}.feat-­‐box  .callout  .pr  .un  {    color:  #39f;}
  • 27.
    @shayhowe & @darbyfreyModularHTML & CSSUSE CLASSESGood.feat-­‐box  .price  {    font-­‐size:  12px;}.feat-­‐box  .unit  {    color:  #39f;}
  • 28.
    @shayhowe & @darbyfreyModularHTML & CSSUSE CLASSESBad.btn.large  {    font-­‐size:  24px;        padding:  15px  30px;}<div  class="btn  large">...</div>
  • 29.
    @shayhowe & @darbyfreyModularHTML & CSSUSE CLASSESGood.btn-­‐large  {    font-­‐size:  24px;    padding:  15px  30px;}<div  class="btn-­‐large">...</div>
  • 30.
    @shayhowe & @darbyfreyModularHTML & CSSASSEMBLINGLAYOUT
  • 31.
    @shayhowe & @darbyfreyModularHTML & CSSABSTRACT STRUCTURE• Separate presentation (or theme) from layout• Create an object layer for layout• Create a skin layer for theme• Use a grid
  • 32.
    @shayhowe & @darbyfreyModularHTML & CSSABSTRACT STRUCTUREBad.news  {    background:  #eee;    color:  #666;    margin:  0  10px;    width:  400px;}<div  class="news">...</div>
  • 33.
    @shayhowe & @darbyfreyModularHTML & CSSABSTRACT STRUCTUREGood.grid-­‐4  {    margin:  0  10px;    width:  400px;}.feat-­‐box  {    background:  #eee;    color:  #666;}<div  class="grid-­‐4  feat-­‐box">...</div>
  • 34.
    @shayhowe & @darbyfreyModularHTML & CSSTRANSPARENTIZE ELEMENTS• Stylize elements to be transparent• Keep visual properties apart from layoutproperties
  • 35.
    @shayhowe & @darbyfreyModularHTML & CSSTRANSPARENTIZE ELEMENTSBad.pagination  {    border-­‐radius:  5px;    border:  1px  solid  #eee;    margin:  0  10px;    width:  620px;}<ul  class="pagination">...</ul>
  • 36.
    @shayhowe & @darbyfreyModularHTML & CSSTRANSPARENTIZE ELEMENTSGood.grid-­‐8  {    margin:  0  10px;    width:  620px;}.offset-­‐box  {    border-­‐radius:  5px;    border:  1px  solid  #eee;}<ul  class="grid-­‐8  offset-­‐box">...</ul>
  • 37.
    @shayhowe & @darbyfreyModularHTML & CSSCREATE ADAPTABLE LAYOUTS• Height and width should be flexible• Height should extend with content• Width should extend with a grid
  • 38.
    @shayhowe & @darbyfreyModularHTML & CSSCREATE ADAPTABLE LAYOUTSBad#main  {    float:  left;    margin:  0  10px;    width:  620px;}#aside  {    float:  left;    margin:  0  10px;    width:  300px;}
  • 39.
    @shayhowe & @darbyfreyModularHTML & CSSCREATE ADAPTABLE LAYOUTSGood.grid-­‐4,.grid-­‐8  {    float:  left;    margin:  0  10px;}.grid-­‐4  {    width:  300px;}.grid-­‐8  {    width:  620px;}
  • 40.
    @shayhowe & @darbyfreyModularHTML & CSSASSEMBLING LAYOUTIN PRACTICEhttp://bit.ly/modular-html-css
  • 41.
    @shayhowe & @darbyfreyModularHTML & CSSACCOMMODATINGCONTENT
  • 42.
    @shayhowe & @darbyfreyModularHTML & CSSSEPARATE CONTENT• Separate content from container• Stylize content regardless of container
  • 43.
    @shayhowe & @darbyfreyModularHTML & CSSSEPARATE CONTENTBad.alert  {    background:  #f2dede;    border-­‐radius:  10px;    color:  #b94a48;    padding:  10px  20px;}<div  class="alert">...</div>
  • 44.
    @shayhowe & @darbyfreyModularHTML & CSSSEPARATE CONTENTGood.alert  {    border-­‐radius:  10px;    padding:  10px  20px;}.alert-­‐error  {    background:  #f2dede;    color:  #b94a48;}<div  class="alert  alert-­‐error">...</div>
  • 45.
    @shayhowe & @darbyfreyModularHTML & CSSAVOID PARENT DEPENDENCY• Remove parent container dependency• Decouple CSS from HTML• Create components to be used anywhere
  • 46.
    @shayhowe & @darbyfreyModularHTML & CSSAVOID PARENT DEPENDENCYBad.feat-­‐box  {    background:  #eee;}article  .feat-­‐box  {    background:  #fff;}<article>    <div  class="feat-­‐box">...</div></article>
  • 47.
    @shayhowe & @darbyfreyModularHTML & CSSAVOID PARENT DEPENDENCYGood.feat-­‐box  {    background:  #eee;}.feat-­‐box-­‐alt  {    background:  #fff;}<article>    <div  class="feat-­‐box-­‐alt">...</div></article>
  • 48.
    @shayhowe & @darbyfreyModularHTML & CSSFAVOR SEMANTICS• Allow elements to adapt• Uses individual classes to extend modules
  • 49.
    @shayhowe & @darbyfreyModularHTML & CSSFAVOR SEMANTICSBad.feat-­‐box  h2  {    color:  #f60;    font:  18px  Helvetica,  sans-­‐serif;}<div  class="feat-­‐box">    <h2>...</h2></div>
  • 50.
    @shayhowe & @darbyfreyModularHTML & CSSFAVOR SEMANTICSGood.feat-­‐subhead  {    color:  #f60;    font:  18px  Helvetica,  sans-­‐serif;}<div  class="feat-­‐box">    <h2  class="feat-­‐subhead">...</h2></div>
  • 51.
    @shayhowe & @darbyfreyModularHTML & CSSACCOMMODATING CONTENTIN PRACTICEhttp://bit.ly/modular-html-css
  • 52.
    @shayhowe & @darbyfreyModularHTML & CSSTURBOWITH SCSS
  • 53.
  • 54.
    @shayhowe & @darbyfreyModularHTML & CSSSCSS• CSS preprocessor• Extension of CSS3• Compiled using Ruby• Adds nested rules, variables, mixins, selectorinheritance, and more
  • 55.
    @shayhowe & @darbyfreyModularHTML & CSSSCSSSCSS Syntax.new  {    color:  #f60;    .item  {        font-­‐size:  24px;    }}Compiled CSS.new  {    color:  #f60;}.new  .item  {    font-­‐size:  24px;}
  • 56.
    @shayhowe & @darbyfreyModularHTML & CSSSCSS VS. SASSSCSS Syntax.new  {    color:  #f60;    .item  {        font-­‐size:  24px;    }}Sass Syntax.new    color:  #f60    .item        font-­‐size:  24px
  • 57.
    @shayhowe & @darbyfreyModularHTML & CSSCOMPASS• Built on top of Sass• Includes reusable patterns• Provides cross browser CSS3 mixins
  • 58.
    @shayhowe & @darbyfreyModularHTML & CSSSCOUT APP• GUI for compiling Sass and Compass• Available for both Mac and Windows
  • 59.
    @shayhowe & @darbyfreyModularHTML & CSSSETUPIN PRACTICEhttp://bit.ly/modular-html-css
  • 60.
    @shayhowe & @darbyfreyModularHTML & CSSORGANIZATION
  • 61.
    @shayhowe & @darbyfreyModularHTML & CSSTECHNIQUESettings• Utility styles (Extends, Mixins, Variables)Base• Core styles for entire site (Layout, Typography)Components• UI concepts & design patterns (Buttons, List, Navigation)Modules• Business logic (Aside, Header, Footer)
  • 62.
  • 63.
    @shayhowe & @darbyfreyModularHTML & CSSPARTIALS• Must begin with an underscore, _• Must have a file extension of .scss, not .css.scss
  • 64.
    @shayhowe & @darbyfreyModularHTML & CSSIMPORTSworkshop.css.scss//  Compass@import  "compass/css3";//  Settings@import  "settings/variables";//  Base@import  "base/layout";...
  • 65.
    @shayhowe & @darbyfreyModularHTML & CSSORGANIZATIONIN PRACTICEhttp://bit.ly/modular-html-css
  • 66.
  • 67.
    @shayhowe & @darbyfreyModularHTML & CSSVARIABLES• Allow common values to be shared• Assigned with a dollar sign, name, colon, and value• May be a number, string, boolean, null, or multiplecomma separated values
  • 68.
    @shayhowe & @darbyfreyModularHTML & CSSVARIABLESSCSS Syntax$font-­‐base:  14px;$sans-­‐serif:  "Open  Sans",  sans-­‐serif;p  {    font:  $font-­‐base  $sans-­‐serif;}Compiled CSSp  {    font:  14px  "Open  Sans",  sans-­‐serif;}
  • 69.
    @shayhowe & @darbyfreyModularHTML & CSSEXTENDS• Share common styles without duplicating them• Keep code weight low• Generates detailed selectors• Assigned with the @extend  rule followed by theselector
  • 70.
    @shayhowe & @darbyfreyModularHTML & CSSEXTENDSSCSS Syntax.alert  {    border-­‐radius:  10px;}.alert-­‐error  {    @extend  .alert;    color:  #b94a48;}.alert-­‐success  {    @extend  .alert;    color:  #468847;}Compiled CSS.alert,.alert-­‐error,.alert-­‐success  {    border-­‐radius:  10px;}.alert-­‐error  {    color:  #b94a48;}.alert-­‐success  {    color:  #468847;}
  • 71.
    @shayhowe & @darbyfreyModularHTML & CSSPLACEHOLDERS• Similar to extends• Selector is assigned with a percentage sign• Extended selector is not output, only the styles
  • 72.
    @shayhowe & @darbyfreyModularHTML & CSSPLACEHOLDERSSCSS Syntax%alert  {    border-­‐radius:  10px;}.alert-­‐error  {    @extend  %alert;    color:  #b94a48;}.alert-­‐success  {    @extend  %alert;    color:  #468847;}Compiled CSS.alert-­‐error,.alert-­‐success  {    border-­‐radius:  10px;}.alert-­‐error  {    color:  #b94a48;}.alert-­‐success  {    color:  #468847;}
  • 73.
    @shayhowe & @darbyfreyModularHTML & CSSMIXINS• Share similar styles based off given arguments• Duplicates properties, providing different values• Assigned with the @mixin  rule followed by thename and arguments
  • 74.
    @shayhowe & @darbyfreyModularHTML & CSSMIXINSSCSS Syntax@mixin  btn($color)  {      color:  $color;}.btn  {    @mixin  btn(#f60);}Compiled CSS.btn  {    color:  #f60;}
  • 75.
    @shayhowe & @darbyfreyModularHTML & CSSSETTINGSIN PRACTICEhttp://bit.ly/modular-html-css
  • 76.
  • 77.
    @shayhowe & @darbyfreyModularHTML & CSSCOMMENTS• Two different types of comments• Standard CSS comments as normal• Silent comments, assigned with two forwardslashes, not compiled in the output
  • 78.
    @shayhowe & @darbyfreyModularHTML & CSSCOMMENTSSCSS Syntax/*  Normal  comment  */.awesome  {    color:  #3276b1;}//  Omitted  comment.very-­‐awesome  {    color:  #47a447;}Compiled CSS/*  Normal  comment  */.awesome  {    color:  #3276b1;}.very-­‐awesome  {    color:  #47a447;}
  • 79.
    @shayhowe & @darbyfreyModularHTML & CSSPARENT SELECTOR• Add styles to a previous selector• Commonly used with pseudo classes• Assigned with an ampersand• May also be used as the key selector
  • 80.
    @shayhowe & @darbyfreyModularHTML & CSSPARENT SELECTORSCSS Syntaxa  {    color:  #8ec63f;    &:hover  {        color:  #f7941d;    }}Compiled CSSa  {    color:  #8ec63f;}a:hover  {    color:  #f7941d;}
  • 81.
    @shayhowe & @darbyfreyModularHTML & CSSINTERPOLATION• Occasionally SCSS need to be interpolated• Most commonly happens as part of a class name,property name, or inside a string plain text• Assigned by placing the value inside #{...}
  • 82.
    @shayhowe & @darbyfreyModularHTML & CSSINTERPOLATIONSCSS Syntax$logo:  twitter;$offset:  left;.#{$logo}  {    #{$offset}:  20px;}Compiled CSS.twitter  {    left:  20px;}
  • 83.
    @shayhowe & @darbyfreyModularHTML & CSSREFACTORIN PRACTICEhttp://bit.ly/modular-html-css
  • 84.
  • 85.
    @shayhowe & @darbyfreyModularHTML & CSSOUTPUT STYLES• SCSS has multiple output styles• Nested or expanded is best for development• Compact or compressed is best for production
  • 86.
    @shayhowe & @darbyfreyModularHTML & CSSCOMPILEIN PRACTICEhttp://bit.ly/modular-html-css
  • 87.
  • 88.
    Ships on theRoadstead by Willem van de Velde the Younger
  • 89.
    @shayhowe & @darbyfreyModularHTML & CSSAPPROACH• Stop thinking about pages• Start thinking about components• Take visual inventory
  • 90.
    @shayhowe & @darbyfreyModularHTML & CSSTHEMES• Decouple HTML and CSS• Separate presentation from layout• Separate content from container• Extend elements with classes
  • 91.
    @shayhowe & @darbyfreyModularHTML & CSSOUTCOMES• Maintainability!• Reusable code, less duplication• Flexibility and extensibility• Improved standards
  • 92.
    @shayhowe & @darbyfreyModularHTML & CSSWHAT’S NEXTBuild a style guide• Twitter Bootstrap, Zurb FoundationReview methodologies• OOCSS, SMACSSTest your code• CSS Lint, Inspector, PageSpeed
  • 93.
    @shayhowe & @darbyfreyModularHTML & CSSTHANK YOU!Questions?@shayhowe@darbyfrey

[8]ページ先頭

©2009-2025 Movatter.jp