Elegant CSS Design In Drupal: LESS vs Sass

Mediacurrent
MediacurrentPartner, VP Client Services um Mediacurrent
Elegant CSS In Drupal
          LESS vs SASS
By Dante Taylor
Mediacurrent Creative Director
              @ThemeMaster
Key Assumptions
 Have basic understanding of CSS principles

 Have basic understanding of procedural languages

 Looking to speed up writing custom CSS
What is LESS & Sass?
 Statements below were taken from Sass website “About
  Page”, but holds true for for both LESS and Sass

 Sass is a meta-language on top of CSS that’s used to
  describe the style of a document cleanly and structurally, with
  more power than flat CSS allows.

 Sass both provides a simpler, more elegant syntax for CSS
  and implements various features that are useful for creating
  manageable stylesheets.


                                                @http://sass-lang.com/about.html
Elegant CSS Design In Drupal: LESS vs Sass
What problems does LESS
& Sass solve?
 Create reusable code to use on any project
 Use variables and functions like PHP (Mixins + Parametric
  Mixins)
 Accepts math operations and computations inline
 Change scope like PHP and other popular procedural
  languages
 Evaluate JavaScript inline
 Create nested syntax and CSS declaration blocks


                                                Source: http://drupal.org
You May Be Thinking
 Who would create something with so much awesomeness
  baked right in?
 Who uses LESS and Sass?
 How much of extra work is this to use with Drupal?
 Is it worth my time to learn?
 What is the easiest way to get started?
Meet The Creators




Alexis Sellier (CloudHead)   Hampton Catlin                 Nathan Weizenbaum
LESS Creator                 SASS Original Creator          SASS 2.0+ Creator

http://bit.ly/LJFTh6         http://www.hamptoncatlin.com   https://twitter.com/nex3
What are key differences?
 Main difference between the two is how they are
  processed

 LESS - Is a JavaScript library and typically processed
  client-side

 Sass - Typically runs on Ruby and is processed server
  side.(PHPSass Script with Prepro Module allows Drupal
  to process it via php without Ruby)


                                                Source: http://drupal.org
What are key differences?
 LESS can evaluate JavaScript inline

 LESS is easier to use. SASS appears to have more
  options to create complex MIXINS (functions). This is a
  highly debated point. @http://wrangl.com/sass-v-less

 (CAUTION: Statement above has been known to cause
  comment wars.YOU HAVE BEEN WARNED.Use with
  EXTREME CAUTION!)
Who uses LESS & Sass?
 LESS Github 6,073+ Watch and 848+ Fork
  @https://github.com/cloudhead/less.js

 SASS Github 1,218+ Watch and 155+ Fork
  @https://github.com/nex3/sass

 SASS appears to have more active contributors

 GitHub: 5 to 1 seem to watch and fork LESS over SASS
  @http://bit.ly/Nk4xaf (LESS vs SASS Google trend since
  2009)
                                             Source: http://drupal.org
Who uses LESS & Sass
 Drupal: 5 to 1 seem to install LESS over SASS in Drupal
  Community (sample taken over 4 week period, Jun 10 -
  Jul 1, from member who run the update status module)
  @http://drupal.org/project/usage

 SASS Built themes
  (Zen, AdaptiveTheme, Basic, Boilerplate, Sasson, Aurora
  )



                                              Source: http://drupal.org
Drupal with LESS & Sass
 LESS Module @http://drupal.org/project/less

 SASS@http://drupal.org/project/sassy
  + PrePro Module @http://www.drupal.org/project/prepro
  + PHPSass@http://github.com/richthegeek/phpsass/downloads
  + Libraries API Module @http://www.drupal.org/project/libraries
Elegant CSS Design In Drupal: LESS vs Sass
Elegant CSS Design In Drupal: LESS vs Sass
Elegant CSS Design In Drupal: LESS vs Sass
Key Concepts
   Variables                    String Interpolation
   Mixins                       Escaping
   Parametric Mixins            JavaScript Evaluation (LESS
   Selector Inheritance          Only)
   Nested Rules                 Output Formatting
   Color Functions
   Conditions And Controls
   Namespaces
   Scope
   Importing




                                                Smashing Magazine @http://bit.ly/n01ySn
Variables

       Sass              Less

  $red: #ff0000;   @red: #ff0000;




                                Source: http://drupal.org
Mixins
                 Sass                                      Less
@mixin perspective ($value: 1000) {   .perspective (@value: 1000) {
  -webkit-perspective: $value;          -webkit-perspective: @value;
  -moz-perspective: $value;             -moz-perspective: @value;
  -ms-perspective: $value;              -ms-perspective: @value;
  perspective: $value;                  perspective: @value;
}                                     }


.transform {                           .transform {
   @include perspective (2000);         .perspective (2000);
}                                      }




                                                                   Source: http://drupal.org
Selector Inheritance
              Sass          Less

.border {

}
  border: 1px solid #fff;
                            N/A
.box {
  @extend .border;
}

          Prints
.border, .box {
border: 1px solid #fff;
}
                                   Source: http://drupal.org
Nested Rules
              Sass                               Less

.box {                              .box {
  @extend .border;                  &.selector {
                                        background: #000;
&.selector {                          }
    background: #000;               }
  }
}

              Prints                             Prints
.border.selector, .box.selector {   .box.selector {
border: 1px solid #000;             border: 1px solid #000;
}                                   }
Color Functions
                    Sass                              Less

adjust-hue(#cc3, 20deg) => #9c3    saturate(#cc3, 10%) => #d9d926
saturate(#cc3, 10%) => #d9d926     desaturate(#cc3, 10%) => #bfbf40
desaturate(#cc3, 10%) => #bfbf40   lighten(#cc3, 10%) => #d6d65c
lighten(#cc3, 10%) => #d6d65c      darken(#cc3, 10%) => #a3a329
darken(#cc3, 10%) => #a3a329
                                   @http://bit.ly/fzdbZK
@see http://bit.ly/nyBv1M
Conditionals
             Sass                  Less

/* Sample Sass "if" statement */
@if lightness($color) > 30% {

}
  background-color: #000;          N/A
@else {
  background-color: #fff;
} /* Sample Sass "for" loop */

@for $i from 1px to 10px {
  .border-#{i} {
  border: $i solid blue; }
}
                                          http://bit.ly/n01ySn
Final Thoughts
 Both LESS and Sass allow you to save time and give
  you the ability to reuse code

 Drupal 8 will most likely use Sass as its CSS
  Processor/Meta Language

 CSS has evolved and LESS and Sass are examples of
  the new standards
Resources
   http://bit.ly/n01ySn (LESS vs Sass compared)
   http://lesscss.org (About Less)
   http://drupal.org/project/sassy (SASS Drupal Project)
   http://bit.ly/mRjV5t (Sass presentation DrupalCon Dever 2012)
   http://bit.ly/OQttYb (Sassy 101 PDF)
   http://compass-style.org (CSS Framework)
   http://foundation.zurb.com (CSS Framework)
   http://twitter.github.com/bootstrap (CSS Framework)
   http://compass.handlino.com (Compass App)
   http://www.manning.com/netherland (Sass and Compass in Action)
   http://drupal.org/project/twitter_bootstrap (Twitter Bootstrap Drupal Project)
Thanks!
Remember not to panic
  & clear your cache!
Mediacurrent helps organizations architect custom websites by
leveraging our proven processes and deep expertise in Drupal.




              @mediacurrentmediacurrent.com
1 von 27

Recomendados

CSS Preprocessors: LESS is more or look SASS-y trying von
CSS Preprocessors: LESS is more or look SASS-y tryingCSS Preprocessors: LESS is more or look SASS-y trying
CSS Preprocessors: LESS is more or look SASS-y tryingJames Cryer
1.9K views19 Folien
Write LESS. DO more. von
Write LESS. DO more.Write LESS. DO more.
Write LESS. DO more.Eugene Nor
658 views30 Folien
Drupal & CSS Preprocessors von
Drupal & CSS PreprocessorsDrupal & CSS Preprocessors
Drupal & CSS Preprocessorskdmarks
8.5K views40 Folien
An Introduction to CSS Preprocessors (SASS & LESS) von
An Introduction to CSS Preprocessors (SASS & LESS)An Introduction to CSS Preprocessors (SASS & LESS)
An Introduction to CSS Preprocessors (SASS & LESS)Folio3 Software
1.6K views51 Folien
Sass and compass workshop von
Sass and compass workshopSass and compass workshop
Sass and compass workshopShaho Toofani
982 views171 Folien
Bringing sexy back to CSS: SASS/SCSS, LESS and Compass von
Bringing sexy back to CSS: SASS/SCSS, LESS and CompassBringing sexy back to CSS: SASS/SCSS, LESS and Compass
Bringing sexy back to CSS: SASS/SCSS, LESS and CompassClaudina Sarahe
3K views28 Folien

Más contenido relacionado

Was ist angesagt?

Scalable Event Analytics with MongoDB & Ruby on Rails von
Scalable Event Analytics with MongoDB & Ruby on RailsScalable Event Analytics with MongoDB & Ruby on Rails
Scalable Event Analytics with MongoDB & Ruby on RailsJared Rosoff
28.3K views45 Folien
Introduction to SASS von
Introduction to SASSIntroduction to SASS
Introduction to SASSJon Dean
13K views21 Folien
Rupy2012 ArangoDB Workshop Part2 von
Rupy2012 ArangoDB Workshop Part2Rupy2012 ArangoDB Workshop Part2
Rupy2012 ArangoDB Workshop Part2ArangoDB Database
3.2K views17 Folien
Compass, Sass, and the Enlightened CSS Developer von
Compass, Sass, and the Enlightened CSS DeveloperCompass, Sass, and the Enlightened CSS Developer
Compass, Sass, and the Enlightened CSS DeveloperWynn Netherland
3K views116 Folien
Organizing & Simplifying CSS [with Sass] von
Organizing & Simplifying CSS [with Sass]Organizing & Simplifying CSS [with Sass]
Organizing & Simplifying CSS [with Sass]Matt Puchlerz
1.1K views53 Folien
Simplifying CSS With Sass von
Simplifying CSS With SassSimplifying CSS With Sass
Simplifying CSS With SassThomas Reynolds
2.6K views32 Folien

Was ist angesagt?(12)

Scalable Event Analytics with MongoDB & Ruby on Rails von Jared Rosoff
Scalable Event Analytics with MongoDB & Ruby on RailsScalable Event Analytics with MongoDB & Ruby on Rails
Scalable Event Analytics with MongoDB & Ruby on Rails
Jared Rosoff28.3K views
Introduction to SASS von Jon Dean
Introduction to SASSIntroduction to SASS
Introduction to SASS
Jon Dean13K views
Compass, Sass, and the Enlightened CSS Developer von Wynn Netherland
Compass, Sass, and the Enlightened CSS DeveloperCompass, Sass, and the Enlightened CSS Developer
Compass, Sass, and the Enlightened CSS Developer
Wynn Netherland3K views
Organizing & Simplifying CSS [with Sass] von Matt Puchlerz
Organizing & Simplifying CSS [with Sass]Organizing & Simplifying CSS [with Sass]
Organizing & Simplifying CSS [with Sass]
Matt Puchlerz1.1K views
Pacific Northwest Drupal Summit: Basic & SASS von Steve Krueger
Pacific Northwest Drupal Summit: Basic & SASSPacific Northwest Drupal Summit: Basic & SASS
Pacific Northwest Drupal Summit: Basic & SASS
Steve Krueger1.5K views
Hadoopソースコードリーディング第3回 Hadopo MR + Cassandra von Ryu Kobayashi
Hadoopソースコードリーディング第3回 Hadopo MR + CassandraHadoopソースコードリーディング第3回 Hadopo MR + Cassandra
Hadoopソースコードリーディング第3回 Hadopo MR + Cassandra
Ryu Kobayashi1.8K views

Similar a Elegant CSS Design In Drupal: LESS vs Sass

Dallas Drupal Days 2012 - Introduction to less sass-compass von
Dallas Drupal Days 2012  - Introduction to less sass-compassDallas Drupal Days 2012  - Introduction to less sass-compass
Dallas Drupal Days 2012 - Introduction to less sass-compassChris Lee
2K views41 Folien
SASS, Compass, Gulp, Greensock von
SASS, Compass, Gulp, GreensockSASS, Compass, Gulp, Greensock
SASS, Compass, Gulp, GreensockMarco Pinheiro
1.3K views43 Folien
Simple introduction Sass von
Simple introduction SassSimple introduction Sass
Simple introduction SassZeeshan Ahmed
501 views26 Folien
UNIT 3.ppt von
UNIT 3.pptUNIT 3.ppt
UNIT 3.pptkavi806657
11 views99 Folien
Authoring Stylesheets with Compass & Sass von
Authoring Stylesheets with Compass & SassAuthoring Stylesheets with Compass & Sass
Authoring Stylesheets with Compass & Sasschriseppstein
5K views59 Folien
SASS is more than LESS von
SASS is more than LESSSASS is more than LESS
SASS is more than LESSItai Koren
1.2K views32 Folien

Similar a Elegant CSS Design In Drupal: LESS vs Sass(20)

Dallas Drupal Days 2012 - Introduction to less sass-compass von Chris Lee
Dallas Drupal Days 2012  - Introduction to less sass-compassDallas Drupal Days 2012  - Introduction to less sass-compass
Dallas Drupal Days 2012 - Introduction to less sass-compass
Chris Lee2K views
SASS, Compass, Gulp, Greensock von Marco Pinheiro
SASS, Compass, Gulp, GreensockSASS, Compass, Gulp, Greensock
SASS, Compass, Gulp, Greensock
Marco Pinheiro1.3K views
Authoring Stylesheets with Compass & Sass von chriseppstein
Authoring Stylesheets with Compass & SassAuthoring Stylesheets with Compass & Sass
Authoring Stylesheets with Compass & Sass
chriseppstein5K views
SASS is more than LESS von Itai Koren
SASS is more than LESSSASS is more than LESS
SASS is more than LESS
Itai Koren1.2K views
Bliblidotcom - SASS Introduction von Irfan Maulana
Bliblidotcom - SASS IntroductionBliblidotcom - SASS Introduction
Bliblidotcom - SASS Introduction
Irfan Maulana977 views
@Agawish creating a stunning ui with oracle adf faces, using sass von Amr Gawish
@Agawish   creating a stunning ui with oracle adf faces, using sass@Agawish   creating a stunning ui with oracle adf faces, using sass
@Agawish creating a stunning ui with oracle adf faces, using sass
Amr Gawish2.7K views
Intro to Sass for WordPress Developers von Suzette Franck
Intro to Sass for WordPress DevelopersIntro to Sass for WordPress Developers
Intro to Sass for WordPress Developers
Suzette Franck1.3K views
Advanced sass/compass von Nick Cooley
Advanced sass/compassAdvanced sass/compass
Advanced sass/compass
Nick Cooley6.1K views
Sass:-Syntactically Awesome Stylesheet by Shafeeq von DignitasDigital1
Sass:-Syntactically Awesome Stylesheet by ShafeeqSass:-Syntactically Awesome Stylesheet by Shafeeq
Sass:-Syntactically Awesome Stylesheet by Shafeeq
DignitasDigital1629 views
Syntactically awesome stylesheets (Sass) von Tahmina Khatoon
Syntactically awesome stylesheets (Sass)Syntactically awesome stylesheets (Sass)
Syntactically awesome stylesheets (Sass)
Tahmina Khatoon2.5K views
Drupal+LESS | PHDUG Drupal Developers Day 2012 von Albert Causing
Drupal+LESS | PHDUG Drupal Developers Day 2012Drupal+LESS | PHDUG Drupal Developers Day 2012
Drupal+LESS | PHDUG Drupal Developers Day 2012
Albert Causing1K views
Preprocessor presentation von Mario Noble
Preprocessor presentationPreprocessor presentation
Preprocessor presentation
Mario Noble1.3K views

Más de Mediacurrent

Penn State News: Pivoting to Decoupled Drupal with Gatsby von
Penn State News: Pivoting to Decoupled Drupal with GatsbyPenn State News: Pivoting to Decoupled Drupal with Gatsby
Penn State News: Pivoting to Decoupled Drupal with GatsbyMediacurrent
551 views29 Folien
Evolving How We Measure Digital Success in Higher Ed von
Evolving How We Measure Digital Success in Higher EdEvolving How We Measure Digital Success in Higher Ed
Evolving How We Measure Digital Success in Higher EdMediacurrent
670 views29 Folien
Penn State scales static Drupal to new heights von
Penn State scales static Drupal to new heightsPenn State scales static Drupal to new heights
Penn State scales static Drupal to new heightsMediacurrent
854 views30 Folien
Delivering Meaningful Digital Experiences in Higher Ed von
Delivering Meaningful Digital Experiences in Higher EdDelivering Meaningful Digital Experiences in Higher Ed
Delivering Meaningful Digital Experiences in Higher EdMediacurrent
544 views34 Folien
Content Strategy: Building Connections with Your Audience von
Content Strategy: Building Connections with Your AudienceContent Strategy: Building Connections with Your Audience
Content Strategy: Building Connections with Your AudienceMediacurrent
987 views24 Folien
Decoupled Drupal and Gatsby in the Real World von
Decoupled Drupal and Gatsby in the Real WorldDecoupled Drupal and Gatsby in the Real World
Decoupled Drupal and Gatsby in the Real WorldMediacurrent
790 views25 Folien

Más de Mediacurrent(20)

Penn State News: Pivoting to Decoupled Drupal with Gatsby von Mediacurrent
Penn State News: Pivoting to Decoupled Drupal with GatsbyPenn State News: Pivoting to Decoupled Drupal with Gatsby
Penn State News: Pivoting to Decoupled Drupal with Gatsby
Mediacurrent551 views
Evolving How We Measure Digital Success in Higher Ed von Mediacurrent
Evolving How We Measure Digital Success in Higher EdEvolving How We Measure Digital Success in Higher Ed
Evolving How We Measure Digital Success in Higher Ed
Mediacurrent670 views
Penn State scales static Drupal to new heights von Mediacurrent
Penn State scales static Drupal to new heightsPenn State scales static Drupal to new heights
Penn State scales static Drupal to new heights
Mediacurrent854 views
Delivering Meaningful Digital Experiences in Higher Ed von Mediacurrent
Delivering Meaningful Digital Experiences in Higher EdDelivering Meaningful Digital Experiences in Higher Ed
Delivering Meaningful Digital Experiences in Higher Ed
Mediacurrent544 views
Content Strategy: Building Connections with Your Audience von Mediacurrent
Content Strategy: Building Connections with Your AudienceContent Strategy: Building Connections with Your Audience
Content Strategy: Building Connections with Your Audience
Mediacurrent987 views
Decoupled Drupal and Gatsby in the Real World von Mediacurrent
Decoupled Drupal and Gatsby in the Real WorldDecoupled Drupal and Gatsby in the Real World
Decoupled Drupal and Gatsby in the Real World
Mediacurrent790 views
A Better Way to Build and Manage Sites with Rain for Drupal 9 von Mediacurrent
A Better Way to Build and Manage Sites with Rain for Drupal 9A Better Way to Build and Manage Sites with Rain for Drupal 9
A Better Way to Build and Manage Sites with Rain for Drupal 9
Mediacurrent1.3K views
Drupal Security: What You Need to Know von Mediacurrent
Drupal Security: What You Need to KnowDrupal Security: What You Need to Know
Drupal Security: What You Need to Know
Mediacurrent660 views
Leveraging Design Systems to Streamline Web Projects von Mediacurrent
Leveraging Design Systems to Streamline Web ProjectsLeveraging Design Systems to Streamline Web Projects
Leveraging Design Systems to Streamline Web Projects
Mediacurrent1.1K views
Reimagining Your Higher Ed Web Strategy von Mediacurrent
Reimagining Your Higher Ed Web StrategyReimagining Your Higher Ed Web Strategy
Reimagining Your Higher Ed Web Strategy
Mediacurrent1.2K views
How to Digitally Transform Higher Ed with Drupal von Mediacurrent
How to Digitally Transform Higher Ed with DrupalHow to Digitally Transform Higher Ed with Drupal
How to Digitally Transform Higher Ed with Drupal
Mediacurrent1.2K views
Is my website accessible? Common mistakes (and how to fix them) von Mediacurrent
Is my website accessible? Common mistakes (and how to fix them)Is my website accessible? Common mistakes (and how to fix them)
Is my website accessible? Common mistakes (and how to fix them)
Mediacurrent1.5K views
Managing Images In Large Scale Drupal 8 & 9 Websites von Mediacurrent
Managing Images In Large Scale Drupal 8 & 9 WebsitesManaging Images In Large Scale Drupal 8 & 9 Websites
Managing Images In Large Scale Drupal 8 & 9 Websites
Mediacurrent1.6K views
Paragraphs v Layout Builder - The Final Showdown von Mediacurrent
Paragraphs v Layout Builder - The Final ShowdownParagraphs v Layout Builder - The Final Showdown
Paragraphs v Layout Builder - The Final Showdown
Mediacurrent3.5K views
MagMutual.com: On the JAMStack with Gatsby and Drupal 8 von Mediacurrent
 MagMutual.com: On the JAMStack with Gatsby and Drupal 8 MagMutual.com: On the JAMStack with Gatsby and Drupal 8
MagMutual.com: On the JAMStack with Gatsby and Drupal 8
Mediacurrent1.6K views
Creating an Organizational Culture of Giving Back to Drupal von Mediacurrent
Creating an Organizational Culture of Giving Back to DrupalCreating an Organizational Culture of Giving Back to Drupal
Creating an Organizational Culture of Giving Back to Drupal
Mediacurrent1.5K views
Level Up Your Team: Front-End Development Best Practices von Mediacurrent
Level Up Your Team: Front-End Development Best PracticesLevel Up Your Team: Front-End Development Best Practices
Level Up Your Team: Front-End Development Best Practices
Mediacurrent873 views
Best Practices for Moving to Drupal 9 von Mediacurrent
Best Practices for Moving to Drupal 9Best Practices for Moving to Drupal 9
Best Practices for Moving to Drupal 9
Mediacurrent1.9K views
How to Prove Marketing ROI: Overcoming Digital Marketing Challenges von Mediacurrent
How to Prove Marketing ROI: Overcoming Digital Marketing ChallengesHow to Prove Marketing ROI: Overcoming Digital Marketing Challenges
How to Prove Marketing ROI: Overcoming Digital Marketing Challenges
Mediacurrent1.7K views
Prepare Your Drupal 9 Action Plan von Mediacurrent
Prepare Your Drupal 9 Action Plan Prepare Your Drupal 9 Action Plan
Prepare Your Drupal 9 Action Plan
Mediacurrent2.6K views

Último

Mini-Track: AI and ML in Network Operations Applications von
Mini-Track: AI and ML in Network Operations ApplicationsMini-Track: AI and ML in Network Operations Applications
Mini-Track: AI and ML in Network Operations ApplicationsNetwork Automation Forum
10 views24 Folien
Uni Systems for Power Platform.pptx von
Uni Systems for Power Platform.pptxUni Systems for Power Platform.pptx
Uni Systems for Power Platform.pptxUni Systems S.M.S.A.
56 views21 Folien
SAP Automation Using Bar Code and FIORI.pdf von
SAP Automation Using Bar Code and FIORI.pdfSAP Automation Using Bar Code and FIORI.pdf
SAP Automation Using Bar Code and FIORI.pdfVirendra Rai, PMP
23 views38 Folien
Case Study Copenhagen Energy and Business Central.pdf von
Case Study Copenhagen Energy and Business Central.pdfCase Study Copenhagen Energy and Business Central.pdf
Case Study Copenhagen Energy and Business Central.pdfAitana
16 views3 Folien
PharoJS - Zürich Smalltalk Group Meetup November 2023 von
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023Noury Bouraqadi
127 views17 Folien
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive von
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveNetwork Automation Forum
31 views35 Folien

Último(20)

Case Study Copenhagen Energy and Business Central.pdf von Aitana
Case Study Copenhagen Energy and Business Central.pdfCase Study Copenhagen Energy and Business Central.pdf
Case Study Copenhagen Energy and Business Central.pdf
Aitana16 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 von Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi127 views
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive von Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Future of AR - Facebook Presentation von ssuserb54b561
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
ssuserb54b56114 views
Data Integrity for Banking and Financial Services von Precisely
Data Integrity for Banking and Financial ServicesData Integrity for Banking and Financial Services
Data Integrity for Banking and Financial Services
Precisely21 views
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 von IttrainingIttraining
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
Powerful Google developer tools for immediate impact! (2023-24) von wesley chun
Powerful Google developer tools for immediate impact! (2023-24)Powerful Google developer tools for immediate impact! (2023-24)
Powerful Google developer tools for immediate impact! (2023-24)
wesley chun10 views
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... von Bernd Ruecker
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker37 views
STPI OctaNE CoE Brochure.pdf von madhurjyapb
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdf
madhurjyapb14 views
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... von TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc10 views

Elegant CSS Design In Drupal: LESS vs Sass

  • 1. Elegant CSS In Drupal LESS vs SASS
  • 2. By Dante Taylor Mediacurrent Creative Director @ThemeMaster
  • 3. Key Assumptions  Have basic understanding of CSS principles  Have basic understanding of procedural languages  Looking to speed up writing custom CSS
  • 4. What is LESS & Sass?  Statements below were taken from Sass website “About Page”, but holds true for for both LESS and Sass  Sass is a meta-language on top of CSS that’s used to describe the style of a document cleanly and structurally, with more power than flat CSS allows.  Sass both provides a simpler, more elegant syntax for CSS and implements various features that are useful for creating manageable stylesheets. @http://sass-lang.com/about.html
  • 6. What problems does LESS & Sass solve?  Create reusable code to use on any project  Use variables and functions like PHP (Mixins + Parametric Mixins)  Accepts math operations and computations inline  Change scope like PHP and other popular procedural languages  Evaluate JavaScript inline  Create nested syntax and CSS declaration blocks Source: http://drupal.org
  • 7. You May Be Thinking  Who would create something with so much awesomeness baked right in?  Who uses LESS and Sass?  How much of extra work is this to use with Drupal?  Is it worth my time to learn?  What is the easiest way to get started?
  • 8. Meet The Creators Alexis Sellier (CloudHead) Hampton Catlin Nathan Weizenbaum LESS Creator SASS Original Creator SASS 2.0+ Creator http://bit.ly/LJFTh6 http://www.hamptoncatlin.com https://twitter.com/nex3
  • 9. What are key differences?  Main difference between the two is how they are processed  LESS - Is a JavaScript library and typically processed client-side  Sass - Typically runs on Ruby and is processed server side.(PHPSass Script with Prepro Module allows Drupal to process it via php without Ruby) Source: http://drupal.org
  • 10. What are key differences?  LESS can evaluate JavaScript inline  LESS is easier to use. SASS appears to have more options to create complex MIXINS (functions). This is a highly debated point. @http://wrangl.com/sass-v-less  (CAUTION: Statement above has been known to cause comment wars.YOU HAVE BEEN WARNED.Use with EXTREME CAUTION!)
  • 11. Who uses LESS & Sass?  LESS Github 6,073+ Watch and 848+ Fork @https://github.com/cloudhead/less.js  SASS Github 1,218+ Watch and 155+ Fork @https://github.com/nex3/sass  SASS appears to have more active contributors  GitHub: 5 to 1 seem to watch and fork LESS over SASS @http://bit.ly/Nk4xaf (LESS vs SASS Google trend since 2009) Source: http://drupal.org
  • 12. Who uses LESS & Sass  Drupal: 5 to 1 seem to install LESS over SASS in Drupal Community (sample taken over 4 week period, Jun 10 - Jul 1, from member who run the update status module) @http://drupal.org/project/usage  SASS Built themes (Zen, AdaptiveTheme, Basic, Boilerplate, Sasson, Aurora ) Source: http://drupal.org
  • 13. Drupal with LESS & Sass  LESS Module @http://drupal.org/project/less  SASS@http://drupal.org/project/sassy + PrePro Module @http://www.drupal.org/project/prepro + PHPSass@http://github.com/richthegeek/phpsass/downloads + Libraries API Module @http://www.drupal.org/project/libraries
  • 17. Key Concepts  Variables  String Interpolation  Mixins  Escaping  Parametric Mixins  JavaScript Evaluation (LESS  Selector Inheritance Only)  Nested Rules  Output Formatting  Color Functions  Conditions And Controls  Namespaces  Scope  Importing Smashing Magazine @http://bit.ly/n01ySn
  • 18. Variables Sass Less $red: #ff0000; @red: #ff0000; Source: http://drupal.org
  • 19. Mixins Sass Less @mixin perspective ($value: 1000) { .perspective (@value: 1000) { -webkit-perspective: $value; -webkit-perspective: @value; -moz-perspective: $value; -moz-perspective: @value; -ms-perspective: $value; -ms-perspective: @value; perspective: $value; perspective: @value; } } .transform { .transform { @include perspective (2000); .perspective (2000); } } Source: http://drupal.org
  • 20. Selector Inheritance Sass Less .border { } border: 1px solid #fff; N/A .box { @extend .border; } Prints .border, .box { border: 1px solid #fff; } Source: http://drupal.org
  • 21. Nested Rules Sass Less .box { .box { @extend .border; &.selector { background: #000; &.selector { } background: #000; } } } Prints Prints .border.selector, .box.selector { .box.selector { border: 1px solid #000; border: 1px solid #000; } }
  • 22. Color Functions Sass Less adjust-hue(#cc3, 20deg) => #9c3 saturate(#cc3, 10%) => #d9d926 saturate(#cc3, 10%) => #d9d926 desaturate(#cc3, 10%) => #bfbf40 desaturate(#cc3, 10%) => #bfbf40 lighten(#cc3, 10%) => #d6d65c lighten(#cc3, 10%) => #d6d65c darken(#cc3, 10%) => #a3a329 darken(#cc3, 10%) => #a3a329 @http://bit.ly/fzdbZK @see http://bit.ly/nyBv1M
  • 23. Conditionals Sass Less /* Sample Sass "if" statement */ @if lightness($color) > 30% { } background-color: #000; N/A @else { background-color: #fff; } /* Sample Sass "for" loop */ @for $i from 1px to 10px { .border-#{i} { border: $i solid blue; } } http://bit.ly/n01ySn
  • 24. Final Thoughts  Both LESS and Sass allow you to save time and give you the ability to reuse code  Drupal 8 will most likely use Sass as its CSS Processor/Meta Language  CSS has evolved and LESS and Sass are examples of the new standards
  • 25. Resources  http://bit.ly/n01ySn (LESS vs Sass compared)  http://lesscss.org (About Less)  http://drupal.org/project/sassy (SASS Drupal Project)  http://bit.ly/mRjV5t (Sass presentation DrupalCon Dever 2012)  http://bit.ly/OQttYb (Sassy 101 PDF)  http://compass-style.org (CSS Framework)  http://foundation.zurb.com (CSS Framework)  http://twitter.github.com/bootstrap (CSS Framework)  http://compass.handlino.com (Compass App)  http://www.manning.com/netherland (Sass and Compass in Action)  http://drupal.org/project/twitter_bootstrap (Twitter Bootstrap Drupal Project)
  • 26. Thanks! Remember not to panic & clear your cache!
  • 27. Mediacurrent helps organizations architect custom websites by leveraging our proven processes and deep expertise in Drupal. @mediacurrentmediacurrent.com

Hinweis der Redaktion

  1. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  2. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  3. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  4. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  5. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  6. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  7. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  8. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  9. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  10. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  11. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  12. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  13. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  14. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  15. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  16. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  17. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  18. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  19. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  20. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  21. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  22. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  23. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite
  24. Outline:• Maintainer of Display Suite• Display Purpose • Potential Use Cases• What are display modes?• How do you create new display modes?• What are Dynamic Fields• What are Block Fields?• Display Suite Override Templates• DS Custom Layouts• Display Suite Extras Full Reset Minimal Expert• Display • Panels vs. Display Suite