haml / sass and compass

Post on 28-Nov-2014

5.585 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

HAML / SASS and COMPASSA presentation held at the rails usergroup hamburg meetup march 2009.

TRANSCRIPT

HAML und SASS(und COMPASS)markup haiku vs. syntactically awesome stylesheets

Tobias Adam, Jan Krutischmindmatters GmbH & Co. KG

Donnerstag, 12. März 2009

HAML

Donnerstag, 12. März 2009

(X)HTML Abstraction Markup Language

Donnerstag, 12. März 2009

(X)HTML Abstraction Markup Language

?!

Donnerstag, 12. März 2009

Why oh why?

Donnerstag, 12. März 2009

ERB = HTML = Tag-Suppe

Donnerstag, 12. März 2009

Donnerstag, 12. März 2009

HTML-Tags = Redundant

Donnerstag, 12. März 2009

<div>

</div>

Donnerstag, 12. März 2009

<div>

</div>Redundant!

Donnerstag, 12. März 2009

ERB = Zu Nachsichtig

Donnerstag, 12. März 2009

<%= render :partial => 'head' %>...<%= render :partial => 'foot' %>

<body>

</body>

index.erb

_head.erb

_foot.erb

Donnerstag, 12. März 2009

Donnerstag, 12. März 2009

installation als rails plugin

Donnerstag, 12. März 2009

> gem install haml> cd rails_app> haml --rails .

Donnerstag, 12. März 2009

Butter bei die Fische!

Donnerstag, 12. März 2009

Einfache Tags

Donnerstag, 12. März 2009

%table %tr %td Hey there

Donnerstag, 12. März 2009

%table %tr %td Hey there

Magic!

<table> <tr> <td>Hey there</td> </tr></table>

Donnerstag, 12. März 2009

Selbstschließende Tags

Donnerstag, 12. März 2009

%foo/

<foo/>

Magic!

Donnerstag, 12. März 2009

Automatisch für:‣meta‣ img‣ link‣ script‣ br‣ hr

Donnerstag, 12. März 2009

Whitespace-Kontrolle

Donnerstag, 12. März 2009

%blockquote< %div Foo!

Magic!

<blockquote><div> Foo!</div></blockquote>

Donnerstag, 12. März 2009

%img%img>%img

Magic!

<img /><img /><img />

Donnerstag, 12. März 2009

Tag-Attribute

Donnerstag, 12. März 2009

%head{ :name => "doc_head" } %script{ 'type' => "text/" + "javascript", :src => "javascripts/script_#{2 + 7}" }

<head name='doc_head'> <script src='/docs/rdoc/javascripts/script_9' type='text/javascript'> </script></head>

Magic!

Donnerstag, 12. März 2009

Attribut-Helper

Donnerstag, 12. März 2009

def html_attrs(lang = 'en-US') { :xmlns => "http://www.w3.org/1999/xhtml", 'xml:lang' => lang, :lang => lang }end

Donnerstag, 12. März 2009

%html{html_attrs('de-de')}

<html lang='de-de' xml:lang='de-de' xmlns='http://www.w3.org/1999/xhtml'></html>

Magic!

Donnerstag, 12. März 2009

IDs und Classes

Donnerstag, 12. März 2009

#eins .zwei #drei.vier Hallo!

<div id="eins"> <div class="zwei"> <div id="drei" class="vier">Hallo!</div> </div></div>

Magic!

Donnerstag, 12. März 2009

Auto-ID's und Klassen

Donnerstag, 12. März 2009

%ul %li[@book, :foo] Book

<ul> <li class="foo_book" id="foo_book_1"> Book </li></ul>

Magic!

Donnerstag, 12. März 2009

Ruby FTW!

Donnerstag, 12. März 2009

%p= "Yay".downcase

<p>yay</p>

Magic!

Donnerstag, 12. März 2009

%p&= "<b>Yay</b>".downcase

<p>&lt;b&gt;yay&lt;/b&gt;</p>

Magic!

Donnerstag, 12. März 2009

%p== #{n} Followers

<p>120231373274987476 Followers</p>

Magic!

Donnerstag, 12. März 2009

- [1,2,3].each do |i| %p= i

<p>1</p><p>2</p><p>3</p>

Magic!

Donnerstag, 12. März 2009

Filter

Donnerstag, 12. März 2009

:markdown Header ======

Hallo, *Welt*

<h1>Header</h1>

<p>Hallo, <em>Welt</em>

Magic!

Donnerstag, 12. März 2009

Filter‣ plain‣ javascript‣ escaped‣ ruby‣ preserve‣ erb

‣ sass‣ textile‣markdown‣maruku‣ roll yer own

Donnerstag, 12. März 2009

Kommentare

Donnerstag, 12. März 2009

/ this is a comment

<!-- This is a comment -->

Magic!

Donnerstag, 12. März 2009

/[if IE] a {:href => 'http://www.getfirefox.com/' } Get Firefox!

<!--[if IE]> <a href="http://www.getfirefox.com/"> Get Firefox! </a> <![endif]-->

Magic!

Donnerstag, 12. März 2009

-# this is a comment

Donnerstag, 12. März 2009

-# this is a comment

Magic!

Donnerstag, 12. März 2009

But wait, there's more!

Donnerstag, 12. März 2009

SASS

Donnerstag, 12. März 2009

Syntactically Awesome StyleSheets

Donnerstag, 12. März 2009

Warum?

Donnerstag, 12. März 2009

Donnerstag, 12. März 2009

Keine Variablen

Donnerstag, 12. März 2009

Keine Abstraktionen

Donnerstag, 12. März 2009

Keine echten Kaskadierungen

Donnerstag, 12. März 2009

installation als rails-plugin

Donnerstag, 12. März 2009

> gem install haml> cd rails_app> haml --rails .

Donnerstag, 12. März 2009

stylesheets/sass/screen.sass

stylesheets/screen.css

Magic!

Donnerstag, 12. März 2009

Die Basics

Donnerstag, 12. März 2009

Die Basics, Die!

Donnerstag, 12. März 2009

#main :color #0f0 :width 300px p :color #030

#main { color: #0f0; width: 300px; } #main p { color: #030; }

Magic!

Donnerstag, 12. März 2009

#main color: #0f0 width: 300px p color: #030

#main { color: #0f0; width: 300px; } #main p { color: #030; }

Magic!

alternative syntax

Donnerstag, 12. März 2009

(eventuell besser in situationen mit migrationshintergrund)

Donnerstag, 12. März 2009

Elternreferenz

Donnerstag, 12. März 2009

"Elternreferenz"

Donnerstag, 12. März 2009

link color: #0f0 &:hover color: #0ff

a { color: #0f0; } a:hover { color: #0ff; }

Magic!

Donnerstag, 12. März 2009

Zusammengesetzte Styles

Donnerstag, 12. März 2009

.box :border :top 1px solid black :bottom 5px solid black

.box { border-top: 1px solid black; border-bottom: 5px solid black; }

Magic!

Donnerstag, 12. März 2009

Konstanten

Donnerstag, 12. März 2009

!bg_color = #002244body :background-color = !bg_color

body { background-color: #002244; }

Magic!

Donnerstag, 12. März 2009

!bg_color = #002244body :background-color = !bg_color

body { background-color: #002244; }

Magic!

Achtung!

Donnerstag, 12. März 2009

Arithmetik

Donnerstag, 12. März 2009

!bg_color = #002244body :background-color = !bg_color + #020202

body { background-color: #022446; }

Magic!

Donnerstag, 12. März 2009

Mixins

Donnerstag, 12. März 2009

=standard-border :border 1px solid black :padding 5px #main +standard-border

#main { border: 1px solid black; padding: 5px; }

Magic!

Donnerstag, 12. März 2009

@import

Donnerstag, 12. März 2009

Output Styles

Donnerstag, 12. März 2009

.box{border-top:1px solid black;border-bottom:5px solid black}body{background-color:#002244}#main{color:lime;p-background-color:lime;p-color:#000000}#main{border:1px solid black;padding:5px}

:compressed

Donnerstag, 12. März 2009

Ausblick (HAML Edge)

Donnerstag, 12. März 2009

Mixin-Argumente

Donnerstag, 12. März 2009

=grid-unit-base(!gutter_width = 50px)

Donnerstag, 12. März 2009

Kontrollstrukturen

Donnerstag, 12. März 2009

@for !n from 1 through 15 .grid_#{!n} +grid-width(!n, 15, 200px)

Donnerstag, 12. März 2009

!last = true@if !last +last@else :margin-right = 20px

Donnerstag, 12. März 2009

COMPASS

Donnerstag, 12. März 2009

CSS Meta Framework

Donnerstag, 12. März 2009

CSS-Frameworks

‣ Blueprint‣ YUI-Grids‣ 960.gs (als Plugin)‣ YAML (geplant?)

Donnerstag, 12. März 2009

COMPASS-Module

‣ Reset‣ Utilities‣ Layout

Donnerstag, 12. März 2009

Installation

Donnerstag, 12. März 2009

> git clone git://github.com/nex3/haml.git> cd haml> sudo rake install

> gem sources --add http://gems.github.com/ > sudo gem install chriseppstein-compass

Donnerstag, 12. März 2009

Rails-Integration

Donnerstag, 12. März 2009

> compass --rails .

Donnerstag, 12. März 2009

app/stylesheets/foo.sass

public/stylesheets/compiled/foo.css

Magic!

Donnerstag, 12. März 2009

Beispiel (Blueprint)

Donnerstag, 12. März 2009

artist_header logo_header

bodybody

footerfooter

header

Donnerstag, 12. März 2009

!!! Strict%html{html_attrs('de-de')} %head = stylesheet_link_tag 'compiled/screen.css' /[if IE] = stylesheet_link_tag 'compiled/ie.css' %body .container #header.span-24 #artist_header.span-6 %h1 Foo #logo_header.span-18.last %h2 Bar #body.span-24 = yield #footer.span-24

Donnerstag, 12. März 2009

!!! Strict%html{html_attrs('de-de')} %head = stylesheet_link_tag 'compiled/screen.css' /[if IE] = stylesheet_link_tag 'compiled/ie.css' %body #container #header #artist_header %h1 Foo #logo_header %h2 Bar #body = yield #footer

Donnerstag, 12. März 2009

@import compass/reset.sass@import blueprint/modules/grid.sass

#container +container

#header +column(24, true) #artist_header +column(6)

#logo_header +column(18, true)

#body +column(24, true) #footer +column(24, true)

Donnerstag, 12. März 2009

Flexible Grid-Definition

Donnerstag, 12. März 2009

@import compass/reset.sass@import blueprint/modules/grid.sass

!blueprint_grid_columns = 10!blueprint_grid_width = 60px!blueprint_grid_margin = 10px

#container +container

#header +column(24, true) #artist_header +column(6)

#logo_header +column(18, true)

#body +column(24, true) #footer +column(24, true)

Donnerstag, 12. März 2009

Wegweiser -->

Donnerstag, 12. März 2009

// Clearing floats without extra markup// Simple Clearing of Floats// [...]=clearfix :overflow auto :overflow -moz-scrollbars-none // This makes ie6 get layout :display inline-block // and this puts it back to block & :display block

discuss.

Donnerstag, 12. März 2009

// Hides html text and replaces it with an image.// If you use this on an inline element, you will// need to change the display to block or inline-block.=replace-text( !img, !x = 50%, !y = 50% ) :text-indent -9999em :overflow hidden :background :image= url(!img) :repeat no-repeat :position= !x !y

Donnerstag, 12. März 2009

Diskussion

Donnerstag, 12. März 2009

Meta-Frameworksinnvoll?

Donnerstag, 12. März 2009

COMPASS = Work in Progress

Donnerstag, 12. März 2009

Wird debugging im Browser schwieriger?

(Ist der Output zu un-dry?)

Donnerstag, 12. März 2009

Nicht für jedes Umfeld geeignet?

Donnerstag, 12. März 2009

top related