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

More Related Content

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

What's hot

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

Viewers also liked

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

Similar to Modular HTML & CSS Turbo Workshop

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

More from Shay Howe

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

Recently uploaded

PPTX
Staffing Board - MICU1111111111111111111
PPTX
Blue and Orange Colorful Playful Stop Bullying Campaign Presentation.pptx
PDF
Creating Magical CSS-Only Image Tilt Effects No JavaScript Required.pdf
PPTX
Chapt_4[1].ppt very interseting and important
PDF
Cultural dimensions and global web user interface design
PDF
Designing_the_AI_Cosmos_with_Indian_Values.pdf
PDF
4S-SKYlight 1 Steel pdf for aluminuim sheet .pdf
PPSX
Gas Turbine simulation in thermoflow software PRO Overview.ppsx
PPTX
Artificial Intelligence basic notes for engineering.pptx
PPTX
Become a Professional UI/UX Designer by Learning How to Create Beautiful, Use...
PPTX
solar system desing for multi level module
PPTX
Lectwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwure 8.pptx
PPTX
THEORY OF ARCHITECTURE - LECTURE NOTES - SYMBOLISM
PDF
Morgenbooster_Drakonheart_Designing_for_creative_kids.pdf
PDF
Chapter _4_Shaft Design_Key_Bearing_M_E_Design.pdf
PPTX
NETWORKING SECURITY PRESENTATION FROM ALI).pptx
PPTX
coverpage for acr on professional code of ethics.pptx
PDF
Art and Visual Perception: A PSYCHOLOGY OF THE CREATIVE EYE
PPTX
aaabbbcccdddeeeefffggghhcute kitties.pptx
PPTX
CH 12 FASHION DESIGN AND MERCHANDIZING.pptx
Staffing Board - MICU1111111111111111111
Blue and Orange Colorful Playful Stop Bullying Campaign Presentation.pptx
Creating Magical CSS-Only Image Tilt Effects No JavaScript Required.pdf
Chapt_4[1].ppt very interseting and important
Cultural dimensions and global web user interface design
Designing_the_AI_Cosmos_with_Indian_Values.pdf
4S-SKYlight 1 Steel pdf for aluminuim sheet .pdf
Gas Turbine simulation in thermoflow software PRO Overview.ppsx
Artificial Intelligence basic notes for engineering.pptx
Become a Professional UI/UX Designer by Learning How to Create Beautiful, Use...
solar system desing for multi level module
Lectwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwure 8.pptx
THEORY OF ARCHITECTURE - LECTURE NOTES - SYMBOLISM
Morgenbooster_Drakonheart_Designing_for_creative_kids.pdf
Chapter _4_Shaft Design_Key_Bearing_M_E_Design.pdf
NETWORKING SECURITY PRESENTATION FROM ALI).pptx
coverpage for acr on professional code of ethics.pptx
Art and Visual Perception: A PSYCHOLOGY OF THE CREATIVE EYE
aaabbbcccdddeeeefffggghhcute kitties.pptx
CH 12 FASHION DESIGN AND MERCHANDIZING.pptx

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