Haml And Sass: Put your markup on a diet

16
Haml and Sass Put your markup on a diet 1

description

Presentation I gave at BarCamp Nashville about Haml and Sass.

Transcript of Haml And Sass: Put your markup on a diet

Page 1: Haml And Sass: Put your markup on a diet

Haml and SassPut your markup on a diet

1

Page 2: Haml And Sass: Put your markup on a diet

(X)HTML is unwieldy• Repetition

• Closing tags

• id and class everywhere

• Arbitrary formatting

• Indentation not enforced

• Hard to see the structure

• Accident-prone

2

Page 3: Haml And Sass: Put your markup on a diet

Case in point3

Page 4: Haml And Sass: Put your markup on a diet

Case in point3

Page 5: Haml And Sass: Put your markup on a diet

CSS is not much better

• More repetition

• Nested Selectors

• padding-left, padding-right, etc.

• No consistent formatting

4

Page 6: Haml And Sass: Put your markup on a diet

Haml and Sass to the rescue!5

Page 7: Haml And Sass: Put your markup on a diet

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

Page 8: Haml And Sass: Put your markup on a diet

What is Sass?

• CSS compliment to Haml

• Nesting through indentation

• Named constants

• Calculated values

7

Page 9: Haml And Sass: Put your markup on a diet

Examples

8

Page 10: Haml And Sass: Put your markup on a diet

XHTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><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

Page 11: Haml And Sass: Put your markup on a diet

XHTML (even uglier, but legal)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><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

Page 12: Haml And Sass: Put your markup on a diet

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

Page 13: Haml And Sass: Put your markup on a diet

CSSbody { 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

Page 14: Haml And Sass: Put your markup on a diet

Sass!highlight = #ff0000!headborder = #000000

body :font :family Helvetica, Arial, sans-serif :size .8em :background-color #ffffffa :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

Page 15: Haml And Sass: Put your markup on a diet

Drawbacks

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

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

• Speed... but it doesn’t matter

14

Page 16: Haml And Sass: Put your markup on a diet

Learn more

http://haml.hamptoncatlin.com

15