SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
Haml and Sass
 Put your markup on a diet




                             1
(X)HTML is unwieldy
  •   Repetition

      •   Closing tags

      •   id and class everywhere

  •   Arbitrary formatting

      •   Indentation not enforced

      •   Hard to see the structure

  •   Accident-prone

                                      2
Case in point
                3
Case in point
                3
CSS is not much better

  •   More repetition

      •   Nested Selectors

      •   padding-left, padding-right, etc.

  •   No consistent formatting




                                              4
Haml and Sass to the rescue!
                               5
What is Haml?

•   XHTML Abstraction Markup Language

•   Markup that describes XHTML

•   Nesting through indentation (like Python)

•   Convenient shortcuts for common elements and attributes

•   Guiding principle: Markup should be beautiful



                                                              6
What is Sass?

•   CSS compliment to Haml

•   Nesting through indentation

•   Named constants

•   Calculated values




                                  7
Examples



           8
XHTML
<!DOCTYPE html PUBLIC quot;-//W3C//DTD XHTML 1.0 Transitional//ENquot; quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdquot;>
<html lang=”en” xml:lang=”en” xmlns=”http://www.w3.org/1999/xhtml”>
    <head>
        <title>XHTML Example</title>
    </head>
    <body>
        <div id=”container”>
            <div id=”header”>
                <h1 class=”pagetitle”>XHTML Example</h1>
            </div>
            <div id=”content”>
                <span class=”announcement”>BarCamp is coming to Nashville on August 18th!</span>
                <p class=”normaltext”>Lorem ipsum...</p>
            </div>
            <div id=”footer”>
                <span class=”copyright”>(c) 2007 Example Industries</span>
            </div>
        </div>
    </body>
</html>




                                                                                                                            9
XHTML (even uglier, but legal)
<!DOCTYPE html PUBLIC quot;-//W3C//DTD XHTML 1.0 Transitional//ENquot; quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdquot;>
<html lang=”en” xml:lang=”en” xmlns=”http://www.w3.org/1999/xhtml”><head>
<title>XHTML Example</title></head>
<body>
    <div id=”container”><div id=”header”>
            <h1 class=”pagetitle”>XHTML Example</h1>
            </div>
<div id=”content”>
    <span class=”announcement”>BarCamp is coming to Nashville on August 18th!</span><p class=”normaltext”>Lorem ipsum...
    </p>
</div>

    <div id=”footer”><span class=”copyright”>
        (c) 2007 Example Industries</span></div>
</div>
            </body>
</html>




                                                                                                                            10
Haml
!!!
%html{ :lang => ”en”, ‘xml:lang’ => ”en”, :xmlns => ”http://www.w3.org/1999/xhtml” }
  %head
    %title Haml Example
  %body
    #container
      #header
        %h1.pagetitle Haml Example
      #content
        %span.announcement BarCamp is coming to Nashville on August 18th!
        %p.normaltext Lorem ipsum...
      #footer
        %span.copyright (c) 2007 Example Industries




                                                                                       11
CSS
body {
  font-family: Helvetica, Arial, sans-serif;
  font-size: .8em;
  background-color: #ffffff;
}
a{
  text-decoration: none;
  color: #00ff00;
}
a:hover {
  text-decoration: underline;
  color: #0000ff;
}
#container {
  width: 760px;
}
#header {
  border-bottom: 1px solid #000000;
  border-top: 1px solid #000000;
  background-color: #ff0000;
}
#header h1 {
  font-size: 1.5em;
  font-weight: bold;
}
#footer {
  font-size: .5em;
  background-color: #ff0000;
}
.copyright {
  font-style: italic;
}




                                               12
Sass
!highlight = #ff0000
!headborder = #000000

body
  :font
     :family Helvetica, Arial, sans-serif
     :size .8em
  :background-color #ffffff
a
  :text-decoration none
  :color #00ff00
  &:hover
     :text-decoration underline
     :color #0000ff
#container
  :width 760px
#header
  :border
     :bottom 1px solid !headborder
     :top 1px solid !headborder
  :background-color !highlight
  h1
     :font
       :size 1.5em
       :weight bold
#footer
  :font-size .5em
  :background-color: !highlight
.copyright
  :font-style italic




                                            13
Drawbacks


•   Another markup syntax to learn... but it’s easy.

•   Ruby (on Rails) only... for now

•   Speed... but it doesn’t matter




                                                       14
Learn more


http://haml.hamptoncatlin.com




                                15

Weitere ähnliche Inhalte

Andere mochten auch (7)

08 17 07
08 17 0708 17 07
08 17 07
 
Meu Brasil
Meu BrasilMeu Brasil
Meu Brasil
 
Alumnos Que Ingresaron En 2004
Alumnos Que Ingresaron En 2004Alumnos Que Ingresaron En 2004
Alumnos Que Ingresaron En 2004
 
杜拜除帆船飯店外還有更棒的
杜拜除帆船飯店外還有更棒的杜拜除帆船飯店外還有更棒的
杜拜除帆船飯店外還有更棒的
 
Mobile Monday Delhi - Fourth Edition
Mobile Monday Delhi - Fourth EditionMobile Monday Delhi - Fourth Edition
Mobile Monday Delhi - Fourth Edition
 
健保花費
健保花費健保花費
健保花費
 
Dios te dice
Dios te diceDios te dice
Dios te dice
 

Ähnlich wie Haml And Sass: Put your markup on a diet

Html Css
Html CssHtml Css
Html Css
pumas26
 
Web Design Bootcamp - Day1
Web Design Bootcamp - Day1Web Design Bootcamp - Day1
Web Design Bootcamp - Day1
Aslam Najeebdeen
 
01 Introduction To CSS
01 Introduction To CSS01 Introduction To CSS
01 Introduction To CSS
crgwbr
 

Ähnlich wie Haml And Sass: Put your markup on a diet (20)

Html Css
Html CssHtml Css
Html Css
 
HTML5 and CSS3 for Teachers
HTML5 and CSS3 for TeachersHTML5 and CSS3 for Teachers
HTML5 and CSS3 for Teachers
 
Haml And Sass
Haml And SassHaml And Sass
Haml And Sass
 
Killing the Angle Bracket
Killing the Angle BracketKilling the Angle Bracket
Killing the Angle Bracket
 
Html5, css3, canvas, svg and webgl
Html5, css3, canvas, svg and webglHtml5, css3, canvas, svg and webgl
Html5, css3, canvas, svg and webgl
 
Web Design Bootcamp - Day1
Web Design Bootcamp - Day1Web Design Bootcamp - Day1
Web Design Bootcamp - Day1
 
Standardizing the Web: A Look into the Why of Web Standards
Standardizing the Web: A Look into the Why of Web StandardsStandardizing the Web: A Look into the Why of Web Standards
Standardizing the Web: A Look into the Why of Web Standards
 
Markup As An Api
Markup As An ApiMarkup As An Api
Markup As An Api
 
Professional Css
Professional CssProfessional Css
Professional Css
 
When To Use Ruby On Rails
When To Use Ruby On RailsWhen To Use Ruby On Rails
When To Use Ruby On Rails
 
The Future of CSS
The Future of CSSThe Future of CSS
The Future of CSS
 
Choosing a Templating System
Choosing a Templating SystemChoosing a Templating System
Choosing a Templating System
 
01 Introduction To CSS
01 Introduction To CSS01 Introduction To CSS
01 Introduction To CSS
 
HTML Web Devlopment presentation css.ppt
HTML Web Devlopment presentation css.pptHTML Web Devlopment presentation css.ppt
HTML Web Devlopment presentation css.ppt
 
css.ppt
css.pptcss.ppt
css.ppt
 
css.ppt
css.pptcss.ppt
css.ppt
 
Html frames
Html framesHtml frames
Html frames
 
Responsive Web Design & Typography
Responsive Web Design & TypographyResponsive Web Design & Typography
Responsive Web Design & Typography
 
Basics of Rich Internet Applications
Basics of Rich Internet ApplicationsBasics of Rich Internet Applications
Basics of Rich Internet Applications
 
Html css
Html cssHtml css
Html css
 

Kürzlich hochgeladen

Kürzlich hochgeladen (20)

Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Haml And Sass: Put your markup on a diet

  • 1. Haml and Sass Put your markup on a diet 1
  • 2. (X)HTML is unwieldy • Repetition • Closing tags • id and class everywhere • Arbitrary formatting • Indentation not enforced • Hard to see the structure • Accident-prone 2
  • 5. CSS is not much better • More repetition • Nested Selectors • padding-left, padding-right, etc. • No consistent formatting 4
  • 6. Haml and Sass to the rescue! 5
  • 7. What is Haml? • XHTML Abstraction Markup Language • Markup that describes XHTML • Nesting through indentation (like Python) • Convenient shortcuts for common elements and attributes • Guiding principle: Markup should be beautiful 6
  • 8. What is Sass? • CSS compliment to Haml • Nesting through indentation • Named constants • Calculated values 7
  • 10. XHTML <!DOCTYPE html PUBLIC quot;-//W3C//DTD XHTML 1.0 Transitional//ENquot; quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdquot;> <html lang=”en” xml:lang=”en” xmlns=”http://www.w3.org/1999/xhtml”> <head> <title>XHTML Example</title> </head> <body> <div id=”container”> <div id=”header”> <h1 class=”pagetitle”>XHTML Example</h1> </div> <div id=”content”> <span class=”announcement”>BarCamp is coming to Nashville on August 18th!</span> <p class=”normaltext”>Lorem ipsum...</p> </div> <div id=”footer”> <span class=”copyright”>(c) 2007 Example Industries</span> </div> </div> </body> </html> 9
  • 11. XHTML (even uglier, but legal) <!DOCTYPE html PUBLIC quot;-//W3C//DTD XHTML 1.0 Transitional//ENquot; quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdquot;> <html lang=”en” xml:lang=”en” xmlns=”http://www.w3.org/1999/xhtml”><head> <title>XHTML Example</title></head> <body> <div id=”container”><div id=”header”> <h1 class=”pagetitle”>XHTML Example</h1> </div> <div id=”content”> <span class=”announcement”>BarCamp is coming to Nashville on August 18th!</span><p class=”normaltext”>Lorem ipsum... </p> </div> <div id=”footer”><span class=”copyright”> (c) 2007 Example Industries</span></div> </div> </body> </html> 10
  • 12. Haml !!! %html{ :lang => ”en”, ‘xml:lang’ => ”en”, :xmlns => ”http://www.w3.org/1999/xhtml” } %head %title Haml Example %body #container #header %h1.pagetitle Haml Example #content %span.announcement BarCamp is coming to Nashville on August 18th! %p.normaltext Lorem ipsum... #footer %span.copyright (c) 2007 Example Industries 11
  • 13. CSS body { font-family: Helvetica, Arial, sans-serif; font-size: .8em; background-color: #ffffff; } a{ text-decoration: none; color: #00ff00; } a:hover { text-decoration: underline; color: #0000ff; } #container { width: 760px; } #header { border-bottom: 1px solid #000000; border-top: 1px solid #000000; background-color: #ff0000; } #header h1 { font-size: 1.5em; font-weight: bold; } #footer { font-size: .5em; background-color: #ff0000; } .copyright { font-style: italic; } 12
  • 14. Sass !highlight = #ff0000 !headborder = #000000 body :font :family Helvetica, Arial, sans-serif :size .8em :background-color #ffffff a :text-decoration none :color #00ff00 &:hover :text-decoration underline :color #0000ff #container :width 760px #header :border :bottom 1px solid !headborder :top 1px solid !headborder :background-color !highlight h1 :font :size 1.5em :weight bold #footer :font-size .5em :background-color: !highlight .copyright :font-style italic 13
  • 15. Drawbacks • Another markup syntax to learn... but it’s easy. • Ruby (on Rails) only... for now • Speed... but it doesn’t matter 14