SlideShare ist ein Scribd-Unternehmen logo
1 von 89
Wir leben TYPO3




      CSS effektiver schreiben
                  Sass/SCSS und Compass
Wir leben TYPO3                                in2code.de
Was machen die bei in2code

Wir unterstützen TYPO3-,
Internet- und Full-Service
Agenturen genauso wie große
und mittelgroße Firmen, die
auf TYPO3 Spezialwissen
angewiesen sind.




Wir leben TYPO3               in2code.de
Was ist
                  Sass und SCSS



Wir leben TYPO3                   in2code.de
Bedeutung und Funktion

• Metasprache zum Kompilieren von CSS
• existiert seit 2007
• bedeutet „Syntactically Awesome Stylesheets“
• SCSS (Sassy CSS = freches CSS) wird ab Sass 3.0
   unterstützt und basiert auf CSS3
• Sass/SCSS wird mit dem HAML-Compiler
   (Werkzeug in Ruby geschrieben) in CSS gewandelt
• Kostenlos, unter www.sass-lang.com gibt’s mehr


Wir leben TYPO3                                  in2code.de
Warum
                  Sass und SCSS



Wir leben TYPO3                   in2code.de
Nachteile von normalem CSS

• CSS kann schnell unübersichtlich werden:
    • Eigenschaften wiederholen sich häufig
    • CSS wird oft doppelt geschrieben
• CSS umständlich bei einer globalen Änderung
• keine einheitliche Formatierung
• Performanceeinbußen bei Importen




Wir leben TYPO3                                 in2code.de
Vorteile von Sass/SCSS

• grundsätzliche Wert können zentral definiert werden
• SASS kann rechnen (z.B. Farben, Größen und Abstände)
• einmal eingetragene Eigenschaften können immer wieder
   benutzt werden
• Compiler optimiert das generierte CSS
• Compiler prüft auf korrekte Syntax, erkennt Schreibfehler
• Importe ohne Performanceeinbußen
• übersichtlichere, einheitliche Schreibweise


Wir leben TYPO3                                  in2code.de
Unterschiede
                   Sass/SCSS



Wir leben TYPO3                  in2code.de
SASS

• klassische Syntax, Focus auf
   Minimalisierung
• verzichtet auf Klammern
• benötigt keine Semikolon
• arbeitet mit Einrückungen
   (immer 4 Leerzeichen,
   keine Tabs)




Wir leben TYPO3                  in2code.de
SCSS

• Schreibweise basiert auf
   normalen CSS
• verwendet Klammern und
   Semikolon
• normales CSS kann einfach
   einkopiert werden




Wir leben TYPO3               in2code.de
Hinweis

In einem Projekt kann man Sass
und SCSS auch gemischt
verwenden!




Wir leben TYPO3                  in2code.de
So geht’s!




Wir leben TYPO3                in2code.de
Installation

1. Ruby und HAML installieren
    Windows: http://rubyinstaller.org/downloads/
    OSX: schon installiert
2. Sass-Unterstützung von HAML installieren
    Ruby-Konsole (Windows) bzw. Terminal (OSX) öffnen
    gem install sass (Windows) bzw.
    sudo gem install sass (OSX)




Wir leben TYPO3                                    in2code.de
Compilieren

3. Um eine Datei zu kompilieren in der Ruby-
    Konsole/Terminal in das Verzeichnis wechseln und die
    Überwachung starten mit
    sass --watch dateiname.scss:dateiname.css
4. Ganze Verzeichnisse können auch überwacht werden:
    sass --watch ordername/scss:ordnername/css
    Unter Windows mit  anstatt / arbeiten!




Wir leben TYPO3                                 in2code.de
Compilieren

Optionen:
Mit der Option --style kann man die CSS Datei auch
compressed oder compact kompilieren lassen.




Wir leben TYPO3                               in2code.de
Was kann es:
                   Variablen



Wir leben TYPO3                  in2code.de
Variablen können definiert
und projektweit verwendet
werden, z.B.
• Farben
• Größen
• Abstände
• Fonts
• usw.


Wir leben TYPO3              in2code.de
Was kann es:
                    Nesting



Wir leben TYPO3                  in2code.de
• Übersichtliche Strukturierung durch Einrückung und
   Verschachtelung von Tags, IDs und Klassen


• Linkattribute (hover usw.) lassen sich innerhalb des
   SCSS referenzieren




Wir leben TYPO3                                  in2code.de
SCSS              wird zu CSS:




Wir leben TYPO3                  in2code.de
• Sehr praktisch: Mediaqueries direkt in der
   entsprechenden Klasse schreiben

SCSS                             wird zu CSS:




Wir leben TYPO3                                 in2code.de
Was kann es:
      Selektoren kombinieren



Wir leben TYPO3           in2code.de
Alle bekannten CSS-Selektoren können verwendet
werden! Z.B. >     ~   + usw.



Platzhalterfunktion durch & (Ampersand)
Dieses holt den Elternselektor in den aktuellen Selektor.




Wir leben TYPO3                                   in2code.de
SCSS              wird zu CSS:




Wir leben TYPO3                  in2code.de
Was kann es:
                   Rechnen



Wir leben TYPO3                  in2code.de
SCSS

• einfache mathematische
   Rechnungen


• Farben können
   berechnet werden
                           wird zu CSS:




Wir leben TYPO3                           in2code.de
Weiter Funktionen zur Farbberechnung

• Farben mischen mit mix
• Sättigung ändern mit saturate
• Transparenz mit transparentize berechnen
• u.v.m


Alle Funktionen unter
http://sass-lang.com/docs/yardoc/Sass/Script/Functions.html




Wir leben TYPO3                                 in2code.de
Was kann es:
                   @extend



Wir leben TYPO3                  in2code.de
SCSS

Komplette Definitionen von
Selektoren können in neue
Selektoren vererbt werden.
ACHTUNG:
Auch Eigenschaften von
Nested-Elementen werden         wird zu CSS:

mitvererbt. Deshalb immer nur
eine Regel vererben!


Wir leben TYPO3                                in2code.de
Was kann es:
         @mixin und @include



Wir leben TYPO3            in2code.de
SCSS

wiederkehrende Angaben
können mit
@mixin definiert und mit
@include immer wieder
verwendet werden
(sinnvoll für Standard-    wird zu CSS:

formatierungen
z.B. runde Ecken)…


Wir leben TYPO3                           in2code.de
SCSS

… zusätzlich
können auch hier
Variablen definiert
werden um z.B.
die gerundeten
Ecken flexibler zu    wird zu CSS:

gestalten




Wir leben TYPO3                      in2code.de
ACHTUNG:
Die Vendor-Prefixes für
border-radius sind veraltet!
Die Angabe border-radius
alleine reicht auch!




Wir leben TYPO3                in2code.de
Was kann es:
                   @import



Wir leben TYPO3                  in2code.de
Gegen über @import in CSS werden importierte Dateien
mit in die Datei „einkompiliert“!
Dadurch keine Performanceeinbußen wie in CSS durch
zusätzliche HTTP-Referrers.
Mit @import in Sass kann ein Projekt optimial
strukturiert werden.




Wir leben TYPO3                                 in2code.de
Echte Imports mit @import


• wiederkehrende Angaben/Variablen können in eigene
   Datei gespeichert werden
• Aufsplittung in kleine „Bereiche“ mit sinnvoller Benennung


@import „dateiname“;
Importiert den Inhalt angegebenen Datei beim Kompilieren
an dieser Stelle.




Wir leben TYPO3                                  in2code.de
Strukturierung mit @import


Hinweis:
Dateien mit Unterstrich werden
vom Compiler nicht konvertiert.
Sinnvoll bei Dateien, die mit
@import beim Kompilieren
inkludiert werden.




Wir leben TYPO3                   in2code.de
Strukturierung mit @import


Inhalt der Datei
questclub.scss




Wir leben TYPO3              in2code.de
Strukturierung mit @import


Wird kompiliert zu:




Wir leben TYPO3              in2code.de
Was kann es:
                  @if und @else



Wir leben TYPO3                   in2code.de
CSS wird abhängig von einer Variable erzeugt
SCSS                                wird zu CSS:




Wir leben TYPO3                                in2code.de
Was kann es:
                     @for



Wir leben TYPO3                  in2code.de
Berechnungen durch eine FOR-Schleife (z.B. Überschriften)


SCSS                               wird zu CSS:




Wir leben TYPO3                                in2code.de
Was kann es:
                    @each



Wir leben TYPO3                  in2code.de
SCSS


Berechnungen
durch eine
EACH-Schleife
                  wird zu CSS:




Wir leben TYPO3                  in2code.de
Was kann es:
       @function und @return



Wir leben TYPO3           in2code.de
SCSS


Eigene Funktionen
können mit
@function und
@return
geschrieben          wird zu CSS:

werden.

Verrückte Spielereien mit Funktionen und Schatten unter:
http://sassymothereffingtextshadow.com/

Wir leben TYPO3                                 in2code.de
Was kann es:
        Kommentarfunktionen



Wir leben TYPO3           in2code.de
SCSS


Es gibt zwei Arten von
Kommentaren:
• Globale Kommentare /* */
   (werden auch ins CSS
   geschrieben)
                             wird zu CSS:
• Interne Kommentar //
   (werden nicht ins CSS
   kompiliert)


Wir leben TYPO3                         in2code.de
Debugging




Wir leben TYPO3               in2code.de
Rückmeldung bei einem Fehler

• in der Ruby-Konsole
   beim Konvertieren
• beim Reload der HTML-
   Seite am Seitenbeginn
   (da in CSS-Datei)




Wir leben TYPO3                in2code.de
Was ist
                  Compass



Wir leben TYPO3              in2code.de
Compass erweitert Sass




Compass ist ein Framework für Sass.
Es erweitert Sass um etliche CSS3 Funktionen und nützliche
CSS Features.


Beispiele:
• Einfachste Anwendung von Sprites
• CSS3 für alle Browser in einer Zeile


Wir leben TYPO3                                in2code.de
So geht’s!




Wir leben TYPO3                in2code.de
Installation von Compass

Sass muss installiert sein (aber das haben wir schon)
Ruby-Konsole (Windows) bzw. Terminal (OSX) öffnen
gem install compass (Windows) bzw.
sudo gem install compass (OSX)


Fertig!




Wir leben TYPO3                                  in2code.de
Neues Projekt anlegen

compass create <projektname>
Legt ein neues Projekt an.


Compass erstellt folgende Struktur:




Wir leben TYPO3                       in2code.de
Projekt konfigurieren

Die config.rb ist die Konfigurationsdatei für Compass.




Wir leben TYPO3                              in2code.de
Meine Konfiguration




Wir leben TYPO3       in2code.de
Compass in Sass importieren

Das es sich bei Compass um „Sass-Mixins“ handelt, müssen
wir diese zuerst in unseren Sass-Dateien importieren um die
Funktionen nutzen zu können:
@import „compass“
Hier werden alle Compass-Funktionen importiert.
@import „compass/css3“
Importiert z.B. nur die CSS3-Mixins




Wir leben TYPO3                                   in2code.de
Compass nutzen

Grundsätzlich werden Compass-Mixins mit
@include <mixin-name>
innerhalb eines Selektors in der Sass-Datei aufgerufen.


Alle „Features“ gibt es unter.
http://compass-style.org/reference/compass/




Wir leben TYPO3                                  in2code.de
Cross-Browser Support konfigurieren

Das Verhalten von Compass kann beeinflussen. Z.B:
$experimental-support-for-svg: true;
innerhalb einer Sass-Datei eines Projekts aktiviert das
Generieren von SVG-Hintergründen für IE, der keinen
Background-Gradient kann.


Alle „Features“ gibt es unter:
http://compass-style.org/reference/compass/support/


Wir leben TYPO3                                   in2code.de
Die coolsten Features:
             CSS3 Mixins



Wir leben TYPO3             in2code.de
Beispiel: Text-Shadow und Background-Gradient

SCSS




Online-Demo: http://codepen.io/Huaba/full/LiqJe


Wir leben TYPO3                                   in2code.de
Beispiel: Text-Shadow und Background-Gradient

wird zu CSS:




Online-Demo: http://codepen.io/Huaba/full/LiqJe


Wir leben TYPO3                                   in2code.de
Beispiel: Text-Shadow und Background-Gradient

Sieht dann so aus:




Online-Demo: http://codepen.io/Huaba/full/LiqJe


Wir leben TYPO3                                   in2code.de
Alle CSS3 Mixins findet
man unter:
http://compass-
style.org/reference/compass/
css3/




Wir leben TYPO3                in2code.de
Die coolsten Features:
             Link-Colors



Wir leben TYPO3             in2code.de
SCSS


In Compass
kann man                       wird zu CSS:
Linkfarben in
einer einzigen
Zeile angeben:




Online-Demo: http://codepen.io/Huaba/full/ojHFv


Wir leben TYPO3                                   in2code.de
Die coolsten Features:
               Helpers



Wir leben TYPO3             in2code.de
Image URL

Anstatt url kann man Compass die Pfade mit image-url
anpassen lassen. Somit können später Verzeichnisse
problemlos umbenannt werden.

SCSS



wird zu CSS:



Wir leben TYPO3                               in2code.de
Image Dimension Helpers

Mit image-height und image-width können die Höhe
und Breite von Bildern ausgelesen werden.


Mit inline-image(„bildname.png“) kann man Bilder
auch als Inlinebilder berechnen lassen.




Wir leben TYPO3                             in2code.de
Image Dimension Helpers

SCSS




wird zu CSS:




Wir leben TYPO3           in2code.de
Image Dimension Helpers

Dateien im System:        Sieht dann so aus:




vdr.jpg




speaker.png


Wir leben TYPO3                            in2code.de
Die coolsten Features:
           Sprites – i love it



Wir leben TYPO3             in2code.de
Basic Usage

Dateien im Projekt
                     Hiermit wird die Spritemap
                     und die dazugehörigen
                     CSS-Klassen automatisch
                     erzeugt.


SCSS




Wir leben TYPO3                       in2code.de
Basic Usage

wird zu CSS:




                  …und diesem Sprite:




Wir leben TYPO3                    in2code.de
Basic Usage


Nun können die erzeugten Klassen bei Bedarf erweitert
werden und im HTML-Markup verwendet werden:
<p class=„icons-first“>Zum Anfang</p>


Sieht dann so aus:




Wir leben TYPO3                                in2code.de
Selector Control


Im SCSS können die Sprites ebenso in eigenen Klassen
verwendet werden:
.zum-anfang {
    @include icons-sprite(first);
}

Sieht dann so aus:




Wir leben TYPO3                              in2code.de
Selector Control


Falls man ein einziges Sprite verschieben/korrigieren muss
(nicht die ganze Map!):
.zum-anfang {
    @include icons-sprite(first,false,10,0);




                                  Bildname




                                                         geben
                                              Breite+Höhe des
                                             Sprites der Klasse


                                                                  X-Versatz

                                                                              Y-Versatz
}

Sieht dann so aus:




Wir leben TYPO3                                                     in2code.de
Magic Selector

Dateien im Projekt
                     Hiermit werden Spritemaps
                     und CSS inklusive der
                     jeweiligen Zustände für
                     hover, active usw. erzeugt.
SCSS
                     Erkannt werden diese
                     anhand der Dateinamen.




Wir leben TYPO3                       in2code.de
Magic Selector

wird zu CSS:




…und diesem Sprite:

Wir leben TYPO3       in2code.de
Sprites konfigurieren


Einige Einstellmöglichkeiten:
$<map>-spacing                   //Abstände in px um die Sprites
$<map>-<sprite>-spacing          //Abstände um ein best. Sprites
$<map>-layout                    //Layout der Map: horizontal,
                                    diagonal oder smart ist möglich



Mehr Optionen unter:
http://compass-style.org/help/tutorials/spriting/customization-options/




Wir leben TYPO3                                              in2code.de
Compass erweitern




Wir leben TYPO3                in2code.de
Compass mit Plugins erweitern


Compass kann mit Plugins erweitert werden!
Viele Plugins unter: http://bit.ly/fAzE7b


Ein Beispiel: RGBAPNG-Plugin:
https://github.com/aaronrussell/compass-rgbapng
Dieses Plugin bringt Cross-Browser Support für RGBA.




Wir leben TYPO3                                   in2code.de
Compass mit Plugins erweitern


Installation mit: gem install compass-rgbapng
Auf Mac: sudo gem install compass-rgbapng
Anschließend in der config.rb hinzufügen:
require „rgbapng“


Verwendung im SCSS mit




Wir leben TYPO3                             in2code.de
Compass mit Plugins erweitern


Erzeugt dieses CSS:




Und dies im Dateisystem:




Wir leben TYPO3                 in2code.de
Links




Wir leben TYPO3           in2code.de
Weitere Hilfe im Netz

Sass: http://www.sass-lang.com
Sass Examples: http://thesassway.com
Compass: http://www.compass-style.org
Plugins für Compass: http://bit.ly/fAzE7b
Rubyinstaller für Windows: http://www.rubyinstaller.org




Wir leben TYPO3                                   in2code.de
Und? Nicht cool?

                       Fragen?
                  Dann Happy Styling

                    Martin Huber


Wir leben TYPO3                        in2code.de

Weitere ähnliche Inhalte

Ähnlich wie Sass/SCSS und Compass - CSS effektiver schreiben 2.0

Responsive Web Design mit TYPO3
Responsive Web Design mit TYPO3Responsive Web Design mit TYPO3
Responsive Web Design mit TYPO3Martin Huber
 
Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11Noël Bossart
 
Language Workbench
Language WorkbenchLanguage Workbench
Language Workbenchzensor
 
Einführung XHTML CSS JS // IT 07-10
Einführung XHTML CSS JS // IT 07-10Einführung XHTML CSS JS // IT 07-10
Einführung XHTML CSS JS // IT 07-10Noël Bossart
 
Der Schmetterlingseffekt - CSS in größeren Projekten
Der Schmetterlingseffekt - CSS in größeren ProjektenDer Schmetterlingseffekt - CSS in größeren Projekten
Der Schmetterlingseffekt - CSS in größeren ProjektenOPEN KNOWLEDGE GmbH
 
Anforderungen an Thesauri im Semantic Web
Anforderungen an Thesauri im Semantic WebAnforderungen an Thesauri im Semantic Web
Anforderungen an Thesauri im Semantic WebJoachim Neubert
 
APEX 5.1 Ui design crashkurs
APEX 5.1 Ui design crashkursAPEX 5.1 Ui design crashkurs
APEX 5.1 Ui design crashkursSteven Grzbielok
 
Modularisierung von Webseiten
Modularisierung von WebseitenModularisierung von Webseiten
Modularisierung von WebseitenJens Grochtdreis
 
Eigene Themes from Scratch
Eigene Themes from ScratchEigene Themes from Scratch
Eigene Themes from ScratchStefan Fröhlich
 
Backendlayout mit FLUID-Templates
Backendlayout mit FLUID-TemplatesBackendlayout mit FLUID-Templates
Backendlayout mit FLUID-TemplatesMarcus Schwemer
 
CSS Basics and Box Model // MM 08-11
CSS Basics and Box Model // MM 08-11CSS Basics and Box Model // MM 08-11
CSS Basics and Box Model // MM 08-11Noël Bossart
 
Sh optifind praesentation_20130311
Sh optifind praesentation_20130311Sh optifind praesentation_20130311
Sh optifind praesentation_20130311Stefan Moises
 
Alle Änderungen zu TYPO3 6.0
Alle Änderungen zu TYPO3 6.0Alle Änderungen zu TYPO3 6.0
Alle Änderungen zu TYPO3 6.0Alex Kellner
 
Sass & Compass - CSS für Fortgeschrittene
Sass & Compass - CSS für FortgeschritteneSass & Compass - CSS für Fortgeschrittene
Sass & Compass - CSS für FortgeschritteneWolfgang Wagner
 
Drupal 7 auf Amazon Web Services
Drupal 7 auf Amazon Web ServicesDrupal 7 auf Amazon Web Services
Drupal 7 auf Amazon Web ServicesSven Paulus
 

Ähnlich wie Sass/SCSS und Compass - CSS effektiver schreiben 2.0 (20)

Responsive Web Design mit TYPO3
Responsive Web Design mit TYPO3Responsive Web Design mit TYPO3
Responsive Web Design mit TYPO3
 
Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11
 
Language Workbench
Language WorkbenchLanguage Workbench
Language Workbench
 
Gutenberg Theme Entwicklung leicht gemacht
Gutenberg Theme Entwicklung leicht gemachtGutenberg Theme Entwicklung leicht gemacht
Gutenberg Theme Entwicklung leicht gemacht
 
Einführung XHTML CSS JS // IT 07-10
Einführung XHTML CSS JS // IT 07-10Einführung XHTML CSS JS // IT 07-10
Einführung XHTML CSS JS // IT 07-10
 
Der Schmetterlingseffekt - CSS in größeren Projekten
Der Schmetterlingseffekt - CSS in größeren ProjektenDer Schmetterlingseffekt - CSS in größeren Projekten
Der Schmetterlingseffekt - CSS in größeren Projekten
 
Anforderungen an Thesauri im Semantic Web
Anforderungen an Thesauri im Semantic WebAnforderungen an Thesauri im Semantic Web
Anforderungen an Thesauri im Semantic Web
 
APEX 5.1 Ui design crashkurs
APEX 5.1 Ui design crashkursAPEX 5.1 Ui design crashkurs
APEX 5.1 Ui design crashkurs
 
Modularisierung von Webseiten
Modularisierung von WebseitenModularisierung von Webseiten
Modularisierung von Webseiten
 
Einführung in YAML4
Einführung in YAML4Einführung in YAML4
Einführung in YAML4
 
XHTML
XHTMLXHTML
XHTML
 
Eigene Themes from Scratch
Eigene Themes from ScratchEigene Themes from Scratch
Eigene Themes from Scratch
 
Backendlayout mit FLUID-Templates
Backendlayout mit FLUID-TemplatesBackendlayout mit FLUID-Templates
Backendlayout mit FLUID-Templates
 
CSS Basics and Box Model // MM 08-11
CSS Basics and Box Model // MM 08-11CSS Basics and Box Model // MM 08-11
CSS Basics and Box Model // MM 08-11
 
Contao und CSS
Contao und CSS Contao und CSS
Contao und CSS
 
Sh optifind praesentation_20130311
Sh optifind praesentation_20130311Sh optifind praesentation_20130311
Sh optifind praesentation_20130311
 
Alle Änderungen zu TYPO3 6.0
Alle Änderungen zu TYPO3 6.0Alle Änderungen zu TYPO3 6.0
Alle Änderungen zu TYPO3 6.0
 
Moderner Webentwicklungs-Workflow
Moderner Webentwicklungs-WorkflowModerner Webentwicklungs-Workflow
Moderner Webentwicklungs-Workflow
 
Sass & Compass - CSS für Fortgeschrittene
Sass & Compass - CSS für FortgeschritteneSass & Compass - CSS für Fortgeschrittene
Sass & Compass - CSS für Fortgeschrittene
 
Drupal 7 auf Amazon Web Services
Drupal 7 auf Amazon Web ServicesDrupal 7 auf Amazon Web Services
Drupal 7 auf Amazon Web Services
 

Sass/SCSS und Compass - CSS effektiver schreiben 2.0

  • 1. Wir leben TYPO3 CSS effektiver schreiben Sass/SCSS und Compass Wir leben TYPO3 in2code.de
  • 2. Was machen die bei in2code Wir unterstützen TYPO3-, Internet- und Full-Service Agenturen genauso wie große und mittelgroße Firmen, die auf TYPO3 Spezialwissen angewiesen sind. Wir leben TYPO3 in2code.de
  • 3. Was ist Sass und SCSS Wir leben TYPO3 in2code.de
  • 4. Bedeutung und Funktion • Metasprache zum Kompilieren von CSS • existiert seit 2007 • bedeutet „Syntactically Awesome Stylesheets“ • SCSS (Sassy CSS = freches CSS) wird ab Sass 3.0 unterstützt und basiert auf CSS3 • Sass/SCSS wird mit dem HAML-Compiler (Werkzeug in Ruby geschrieben) in CSS gewandelt • Kostenlos, unter www.sass-lang.com gibt’s mehr Wir leben TYPO3 in2code.de
  • 5. Warum Sass und SCSS Wir leben TYPO3 in2code.de
  • 6. Nachteile von normalem CSS • CSS kann schnell unübersichtlich werden: • Eigenschaften wiederholen sich häufig • CSS wird oft doppelt geschrieben • CSS umständlich bei einer globalen Änderung • keine einheitliche Formatierung • Performanceeinbußen bei Importen Wir leben TYPO3 in2code.de
  • 7. Vorteile von Sass/SCSS • grundsätzliche Wert können zentral definiert werden • SASS kann rechnen (z.B. Farben, Größen und Abstände) • einmal eingetragene Eigenschaften können immer wieder benutzt werden • Compiler optimiert das generierte CSS • Compiler prüft auf korrekte Syntax, erkennt Schreibfehler • Importe ohne Performanceeinbußen • übersichtlichere, einheitliche Schreibweise Wir leben TYPO3 in2code.de
  • 8. Unterschiede Sass/SCSS Wir leben TYPO3 in2code.de
  • 9. SASS • klassische Syntax, Focus auf Minimalisierung • verzichtet auf Klammern • benötigt keine Semikolon • arbeitet mit Einrückungen (immer 4 Leerzeichen, keine Tabs) Wir leben TYPO3 in2code.de
  • 10. SCSS • Schreibweise basiert auf normalen CSS • verwendet Klammern und Semikolon • normales CSS kann einfach einkopiert werden Wir leben TYPO3 in2code.de
  • 11. Hinweis In einem Projekt kann man Sass und SCSS auch gemischt verwenden! Wir leben TYPO3 in2code.de
  • 12. So geht’s! Wir leben TYPO3 in2code.de
  • 13. Installation 1. Ruby und HAML installieren Windows: http://rubyinstaller.org/downloads/ OSX: schon installiert 2. Sass-Unterstützung von HAML installieren Ruby-Konsole (Windows) bzw. Terminal (OSX) öffnen gem install sass (Windows) bzw. sudo gem install sass (OSX) Wir leben TYPO3 in2code.de
  • 14. Compilieren 3. Um eine Datei zu kompilieren in der Ruby- Konsole/Terminal in das Verzeichnis wechseln und die Überwachung starten mit sass --watch dateiname.scss:dateiname.css 4. Ganze Verzeichnisse können auch überwacht werden: sass --watch ordername/scss:ordnername/css Unter Windows mit anstatt / arbeiten! Wir leben TYPO3 in2code.de
  • 15. Compilieren Optionen: Mit der Option --style kann man die CSS Datei auch compressed oder compact kompilieren lassen. Wir leben TYPO3 in2code.de
  • 16. Was kann es: Variablen Wir leben TYPO3 in2code.de
  • 17. Variablen können definiert und projektweit verwendet werden, z.B. • Farben • Größen • Abstände • Fonts • usw. Wir leben TYPO3 in2code.de
  • 18. Was kann es: Nesting Wir leben TYPO3 in2code.de
  • 19. • Übersichtliche Strukturierung durch Einrückung und Verschachtelung von Tags, IDs und Klassen • Linkattribute (hover usw.) lassen sich innerhalb des SCSS referenzieren Wir leben TYPO3 in2code.de
  • 20. SCSS wird zu CSS: Wir leben TYPO3 in2code.de
  • 21. • Sehr praktisch: Mediaqueries direkt in der entsprechenden Klasse schreiben SCSS wird zu CSS: Wir leben TYPO3 in2code.de
  • 22. Was kann es: Selektoren kombinieren Wir leben TYPO3 in2code.de
  • 23. Alle bekannten CSS-Selektoren können verwendet werden! Z.B. > ~ + usw. Platzhalterfunktion durch & (Ampersand) Dieses holt den Elternselektor in den aktuellen Selektor. Wir leben TYPO3 in2code.de
  • 24. SCSS wird zu CSS: Wir leben TYPO3 in2code.de
  • 25. Was kann es: Rechnen Wir leben TYPO3 in2code.de
  • 26. SCSS • einfache mathematische Rechnungen • Farben können berechnet werden wird zu CSS: Wir leben TYPO3 in2code.de
  • 27. Weiter Funktionen zur Farbberechnung • Farben mischen mit mix • Sättigung ändern mit saturate • Transparenz mit transparentize berechnen • u.v.m Alle Funktionen unter http://sass-lang.com/docs/yardoc/Sass/Script/Functions.html Wir leben TYPO3 in2code.de
  • 28. Was kann es: @extend Wir leben TYPO3 in2code.de
  • 29. SCSS Komplette Definitionen von Selektoren können in neue Selektoren vererbt werden. ACHTUNG: Auch Eigenschaften von Nested-Elementen werden wird zu CSS: mitvererbt. Deshalb immer nur eine Regel vererben! Wir leben TYPO3 in2code.de
  • 30. Was kann es: @mixin und @include Wir leben TYPO3 in2code.de
  • 31. SCSS wiederkehrende Angaben können mit @mixin definiert und mit @include immer wieder verwendet werden (sinnvoll für Standard- wird zu CSS: formatierungen z.B. runde Ecken)… Wir leben TYPO3 in2code.de
  • 32. SCSS … zusätzlich können auch hier Variablen definiert werden um z.B. die gerundeten Ecken flexibler zu wird zu CSS: gestalten Wir leben TYPO3 in2code.de
  • 33. ACHTUNG: Die Vendor-Prefixes für border-radius sind veraltet! Die Angabe border-radius alleine reicht auch! Wir leben TYPO3 in2code.de
  • 34. Was kann es: @import Wir leben TYPO3 in2code.de
  • 35. Gegen über @import in CSS werden importierte Dateien mit in die Datei „einkompiliert“! Dadurch keine Performanceeinbußen wie in CSS durch zusätzliche HTTP-Referrers. Mit @import in Sass kann ein Projekt optimial strukturiert werden. Wir leben TYPO3 in2code.de
  • 36. Echte Imports mit @import • wiederkehrende Angaben/Variablen können in eigene Datei gespeichert werden • Aufsplittung in kleine „Bereiche“ mit sinnvoller Benennung @import „dateiname“; Importiert den Inhalt angegebenen Datei beim Kompilieren an dieser Stelle. Wir leben TYPO3 in2code.de
  • 37. Strukturierung mit @import Hinweis: Dateien mit Unterstrich werden vom Compiler nicht konvertiert. Sinnvoll bei Dateien, die mit @import beim Kompilieren inkludiert werden. Wir leben TYPO3 in2code.de
  • 38. Strukturierung mit @import Inhalt der Datei questclub.scss Wir leben TYPO3 in2code.de
  • 39. Strukturierung mit @import Wird kompiliert zu: Wir leben TYPO3 in2code.de
  • 40. Was kann es: @if und @else Wir leben TYPO3 in2code.de
  • 41. CSS wird abhängig von einer Variable erzeugt SCSS wird zu CSS: Wir leben TYPO3 in2code.de
  • 42. Was kann es: @for Wir leben TYPO3 in2code.de
  • 43. Berechnungen durch eine FOR-Schleife (z.B. Überschriften) SCSS wird zu CSS: Wir leben TYPO3 in2code.de
  • 44. Was kann es: @each Wir leben TYPO3 in2code.de
  • 45. SCSS Berechnungen durch eine EACH-Schleife wird zu CSS: Wir leben TYPO3 in2code.de
  • 46. Was kann es: @function und @return Wir leben TYPO3 in2code.de
  • 47. SCSS Eigene Funktionen können mit @function und @return geschrieben wird zu CSS: werden. Verrückte Spielereien mit Funktionen und Schatten unter: http://sassymothereffingtextshadow.com/ Wir leben TYPO3 in2code.de
  • 48. Was kann es: Kommentarfunktionen Wir leben TYPO3 in2code.de
  • 49. SCSS Es gibt zwei Arten von Kommentaren: • Globale Kommentare /* */ (werden auch ins CSS geschrieben) wird zu CSS: • Interne Kommentar // (werden nicht ins CSS kompiliert) Wir leben TYPO3 in2code.de
  • 51. Rückmeldung bei einem Fehler • in der Ruby-Konsole beim Konvertieren • beim Reload der HTML- Seite am Seitenbeginn (da in CSS-Datei) Wir leben TYPO3 in2code.de
  • 52. Was ist Compass Wir leben TYPO3 in2code.de
  • 53. Compass erweitert Sass Compass ist ein Framework für Sass. Es erweitert Sass um etliche CSS3 Funktionen und nützliche CSS Features. Beispiele: • Einfachste Anwendung von Sprites • CSS3 für alle Browser in einer Zeile Wir leben TYPO3 in2code.de
  • 54. So geht’s! Wir leben TYPO3 in2code.de
  • 55. Installation von Compass Sass muss installiert sein (aber das haben wir schon) Ruby-Konsole (Windows) bzw. Terminal (OSX) öffnen gem install compass (Windows) bzw. sudo gem install compass (OSX) Fertig! Wir leben TYPO3 in2code.de
  • 56. Neues Projekt anlegen compass create <projektname> Legt ein neues Projekt an. Compass erstellt folgende Struktur: Wir leben TYPO3 in2code.de
  • 57. Projekt konfigurieren Die config.rb ist die Konfigurationsdatei für Compass. Wir leben TYPO3 in2code.de
  • 58. Meine Konfiguration Wir leben TYPO3 in2code.de
  • 59. Compass in Sass importieren Das es sich bei Compass um „Sass-Mixins“ handelt, müssen wir diese zuerst in unseren Sass-Dateien importieren um die Funktionen nutzen zu können: @import „compass“ Hier werden alle Compass-Funktionen importiert. @import „compass/css3“ Importiert z.B. nur die CSS3-Mixins Wir leben TYPO3 in2code.de
  • 60. Compass nutzen Grundsätzlich werden Compass-Mixins mit @include <mixin-name> innerhalb eines Selektors in der Sass-Datei aufgerufen. Alle „Features“ gibt es unter. http://compass-style.org/reference/compass/ Wir leben TYPO3 in2code.de
  • 61. Cross-Browser Support konfigurieren Das Verhalten von Compass kann beeinflussen. Z.B: $experimental-support-for-svg: true; innerhalb einer Sass-Datei eines Projekts aktiviert das Generieren von SVG-Hintergründen für IE, der keinen Background-Gradient kann. Alle „Features“ gibt es unter: http://compass-style.org/reference/compass/support/ Wir leben TYPO3 in2code.de
  • 62. Die coolsten Features: CSS3 Mixins Wir leben TYPO3 in2code.de
  • 63. Beispiel: Text-Shadow und Background-Gradient SCSS Online-Demo: http://codepen.io/Huaba/full/LiqJe Wir leben TYPO3 in2code.de
  • 64. Beispiel: Text-Shadow und Background-Gradient wird zu CSS: Online-Demo: http://codepen.io/Huaba/full/LiqJe Wir leben TYPO3 in2code.de
  • 65. Beispiel: Text-Shadow und Background-Gradient Sieht dann so aus: Online-Demo: http://codepen.io/Huaba/full/LiqJe Wir leben TYPO3 in2code.de
  • 66. Alle CSS3 Mixins findet man unter: http://compass- style.org/reference/compass/ css3/ Wir leben TYPO3 in2code.de
  • 67. Die coolsten Features: Link-Colors Wir leben TYPO3 in2code.de
  • 68. SCSS In Compass kann man wird zu CSS: Linkfarben in einer einzigen Zeile angeben: Online-Demo: http://codepen.io/Huaba/full/ojHFv Wir leben TYPO3 in2code.de
  • 69. Die coolsten Features: Helpers Wir leben TYPO3 in2code.de
  • 70. Image URL Anstatt url kann man Compass die Pfade mit image-url anpassen lassen. Somit können später Verzeichnisse problemlos umbenannt werden. SCSS wird zu CSS: Wir leben TYPO3 in2code.de
  • 71. Image Dimension Helpers Mit image-height und image-width können die Höhe und Breite von Bildern ausgelesen werden. Mit inline-image(„bildname.png“) kann man Bilder auch als Inlinebilder berechnen lassen. Wir leben TYPO3 in2code.de
  • 72. Image Dimension Helpers SCSS wird zu CSS: Wir leben TYPO3 in2code.de
  • 73. Image Dimension Helpers Dateien im System: Sieht dann so aus: vdr.jpg speaker.png Wir leben TYPO3 in2code.de
  • 74. Die coolsten Features: Sprites – i love it Wir leben TYPO3 in2code.de
  • 75. Basic Usage Dateien im Projekt Hiermit wird die Spritemap und die dazugehörigen CSS-Klassen automatisch erzeugt. SCSS Wir leben TYPO3 in2code.de
  • 76. Basic Usage wird zu CSS: …und diesem Sprite: Wir leben TYPO3 in2code.de
  • 77. Basic Usage Nun können die erzeugten Klassen bei Bedarf erweitert werden und im HTML-Markup verwendet werden: <p class=„icons-first“>Zum Anfang</p> Sieht dann so aus: Wir leben TYPO3 in2code.de
  • 78. Selector Control Im SCSS können die Sprites ebenso in eigenen Klassen verwendet werden: .zum-anfang { @include icons-sprite(first); } Sieht dann so aus: Wir leben TYPO3 in2code.de
  • 79. Selector Control Falls man ein einziges Sprite verschieben/korrigieren muss (nicht die ganze Map!): .zum-anfang { @include icons-sprite(first,false,10,0); Bildname geben Breite+Höhe des Sprites der Klasse X-Versatz Y-Versatz } Sieht dann so aus: Wir leben TYPO3 in2code.de
  • 80. Magic Selector Dateien im Projekt Hiermit werden Spritemaps und CSS inklusive der jeweiligen Zustände für hover, active usw. erzeugt. SCSS Erkannt werden diese anhand der Dateinamen. Wir leben TYPO3 in2code.de
  • 81. Magic Selector wird zu CSS: …und diesem Sprite: Wir leben TYPO3 in2code.de
  • 82. Sprites konfigurieren Einige Einstellmöglichkeiten: $<map>-spacing //Abstände in px um die Sprites $<map>-<sprite>-spacing //Abstände um ein best. Sprites $<map>-layout //Layout der Map: horizontal, diagonal oder smart ist möglich Mehr Optionen unter: http://compass-style.org/help/tutorials/spriting/customization-options/ Wir leben TYPO3 in2code.de
  • 83. Compass erweitern Wir leben TYPO3 in2code.de
  • 84. Compass mit Plugins erweitern Compass kann mit Plugins erweitert werden! Viele Plugins unter: http://bit.ly/fAzE7b Ein Beispiel: RGBAPNG-Plugin: https://github.com/aaronrussell/compass-rgbapng Dieses Plugin bringt Cross-Browser Support für RGBA. Wir leben TYPO3 in2code.de
  • 85. Compass mit Plugins erweitern Installation mit: gem install compass-rgbapng Auf Mac: sudo gem install compass-rgbapng Anschließend in der config.rb hinzufügen: require „rgbapng“ Verwendung im SCSS mit Wir leben TYPO3 in2code.de
  • 86. Compass mit Plugins erweitern Erzeugt dieses CSS: Und dies im Dateisystem: Wir leben TYPO3 in2code.de
  • 87. Links Wir leben TYPO3 in2code.de
  • 88. Weitere Hilfe im Netz Sass: http://www.sass-lang.com Sass Examples: http://thesassway.com Compass: http://www.compass-style.org Plugins für Compass: http://bit.ly/fAzE7b Rubyinstaller für Windows: http://www.rubyinstaller.org Wir leben TYPO3 in2code.de
  • 89. Und? Nicht cool? Fragen? Dann Happy Styling Martin Huber Wir leben TYPO3 in2code.de