atlanta drupal user's group - april 2015 - sasstronauts: advanced sass topics

125
Sasstronauts Advanced Sass Usage, Plugins, Mixins, Tips, Tricks Atlanta Drupal User’s Group - April 2015 Eric Scott Sembrat - Georgia Institute of Technology

Upload: eric-sembrat

Post on 16-Jul-2015

103 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

SasstronautsAdvanced Sass Usage, Plugins, Mixins, Tips, Tricks

Atlanta Drupal User’s Group - April 2015Eric Scott Sembrat - Georgia Institute of Technology

Page 2: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics
Page 3: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Our Mission Plan0The prime directive in the short time we have here.

Page 4: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics
Page 5: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

1. Mission Control: Sass as it Stands Today

3. Duct tape: Plugins & Must-Haves

4. Sassineering: Mixins & Libraries

5. Forecast: The Future of Sass

6. Docking: Drupal Support

2. Blueprints: Architecting Sass Projects

Page 6: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Remember SyntaxATTN

http://sassnotsass.com/

Page 7: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Play with Sass Today!ATTN

http://sassmeister.com/

Page 8: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Atlanta Tech Chatstech404

http://tech404.io/

Page 9: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics
Page 10: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Introductions0A little personal information, before all the sass.

Page 11: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics
Page 12: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Eric SembratWeb Manager - College of Engineering - Georgia Tech

Graduate Student - Learning Technologies - Georgia State

Nerd Extraordinaire

Page 13: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Eric SembratWeb Manager - College of Engineering - Georgia Tech

Graduate Student - Learning Technologies - Georgia State

Nerd Extraordinaire

@esembratTweet at me, bro.

Page 14: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Eric SembratWeb Manager - College of Engineering - Georgia Tech

Graduate Student - Learning Technologies - Georgia State

Nerd Extraordinaire

http://www.ericembrat.comLearn more!

@esembratTweet at me, bro.

Page 15: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics
Page 16: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Mission Control1The state of the Sass Mission in 2015.

Page 17: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

2015 Galactic Report Card

Page 18: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

2015 Galactic Report Card

Page 19: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

2015 Galactic Report Card(no pressure)

Page 20: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

2014 Release Strategy

Sass 3.3 (March 2014)

Sass 3.4 (August 2014)

libsass

Page 21: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

2014 Release Strategy

Sass 3.3 (March 2014)

Sass 3.4 (August 2014)

libsass

Page 22: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

2014 Release Strategy

Sass 3.3 (March 2014)

Sass 3.4 (August 2014)

libsass

Page 23: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Release Details3.3

Data structures, ahoy!Sass Maps

Giving power to browsers.CSS Source Maps

SMACSS, BEM, OOCSS.Suffix Class Support

Squashing those issues.Bug Fixes

Page 24: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

$map: (key1: value1, key2: value2, key3: value3);

$gt-color-map: (gold: #EEB221, navy: #023d7b,

oldgold: #C59353);

@each $ref, $bgcolor in $gt-color-map { .class-name-#{$ref} {

background: $bgcolor; }

}

.class-name-gold { background: #EEB221; }

Page 25: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

For preprocessors that support CSS source maps (like Sass), DevTools lets you live-edit your preprocessor source files in the Sources

panel, and view the results without having to leave DevTools or refresh the page. When you inspect an element whose styles are provided by a generated CSS file, the Elements panel displays a

link to the original source file, not the generated .css file.

Page 26: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

2014 Release Strategy

Sass 3.3 (March 2014)

Sass 3.4 (August 2014)

libsass

Page 27: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

2014 Release Strategy

Sass 3.3 (March 2014)

Sass 3.4 (August 2014)

libsass

Page 28: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Release Details3.4

Programmatically selected!Selector Functions

Power to the &.SassScript Update

All the new colors.Color Updates

Squashing those issues.Bug Fixes

Page 29: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

You have a function to do anything you want; whether it be appending a

selector to another selector, nesting a selector under another selector, replacing a selector within another

selector, unifying selectors, and more.

selector-append() selector-nest()

selector-extend() selector-replace()

selector-unify() selector-parse()

is-superselector() simple-selectors()

Page 30: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

2014 Release Strategy

Sass 3.3 (March 2014)

Sass 3.4 (August 2014)

libsass

Page 31: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

2014 Release Strategy

Sass 3.3 (March 2014)

Sass 3.4 (August 2014)

libsass

Page 32: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics
Page 33: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics
Page 34: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Initiative to port Sass to a more flexible platform.Mostly compatible with Ruby Sass today, with a few quirks and missing features.

3.0

3.1

3.2

3.3

3.4

Most basic Sass implementations & functions.

All basic specs match Ruby Sass 3.4.

All the edge case fixes.

Locating those last little issues.

Full library compatibility. Compass, here we come!

Page 35: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Initiative to port Sass to a more flexible platform.Mostly compatible with Ruby Sass today, with a few quirks and missing features.

3.0

3.1

3.2

3.3

3.4

Most basic Sass implementations & functions.

All basic specs match Ruby Sass 3.4.

All the edge case fixes.

Locating those last little issues.

Full library compatibility. Compass, here we come!

Page 36: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics
Page 37: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Speedy CompilationWeb App Compatibility

Page 38: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Speedy CompilationWeb App Compatibility

Sticky syntax issuesLibraries support TBDEdge functions WIP

Page 39: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Speedy CompilationWeb App Compatibility

Sticky syntax issuesLibraries support TBDEdge functions WIP

Page 40: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

2014 Release Strategy

Sass 3.3 (March 2014)

Sass 3.4 (August 2014)

libsass

Page 41: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

2014 Release Strategy

Sass 3.3 (March 2014)

Sass 3.4 (August 2014)

libsass

Page 42: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

2014 Release Strategy

Sass 3.3 (March 2014)

Sass 3.4 (August 2014)

libsass

Page 43: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

2014 Release Strategy

Sass 3.3 (March 2014)

Sass 3.4 (August 2014)

libsass

Page 44: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

2014 Release Strategy

Sass 3.3 (March 2014)

Sass 3.4 (August 2014)

libsass

Page 45: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

2014 Release Strategy

Sass 3.3 (March 2014)

Sass 3.4 (August 2014)

libsass

Page 46: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics
Page 47: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Blueprints2Designing your Sass / CSS infrastructure and architecture.

Page 48: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

3 CSS Organizational Architectures

Page 49: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

3 CSS Organizational Architectures

SMACSSStands for the Scalable and

Modular Architecture for CSS.

“SMACSS is a way to examine your design process and as a way

to fit those rigid frameworks into a

flexible thought process.”

OOCSSObject-Oriented CSS

“… An approach for writing CSS that’s fast,

maintainable, and standards-based. It adds much needed

predictability to CSS.”

Block, Element, Modifier.

“…A set of front-end development techniques and tools, that allow us to build websites quickly and maintain them over a long time.”

BEM

Page 50: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

.block__element—modifier

Page 51: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

.block__element—modifier

Block, Element, Modifier.

“…A set of front-end development techniques and tools, that allow us to build websites quickly and maintain them over a long time.”

BEM

Page 52: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

.block__element—modifier

.person

.person__hand .person__foot

Page 53: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

.block__element—modifier

.person

.person__hand .person__foot

Page 54: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

.block__element—modifier

.person

.person__hand .person__foot

.person

.person__hand—ring .person—foot—heels

Page 55: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

.block__element—modifier

.person

.person__hand .person__foot

.person

.person—female__hand .person—female__foot.person {

color: red;

&__hand { color: black;

&—ring {color: purple;}

} }

Page 56: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

.person—female

.block__element—modifier

.person

.person__hand .person__foot.person {

color: red;

&__hand { color: black;

&—ring {color: purple;}

} }

Page 57: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

.person—female

.block__element—modifier

.person

.person__hand .person__foot

.nav__list__item—active

.person { color: red;

&__hand { color: black;

&—ring {color: purple;}

} }

.nav { color: white;

&__list__item { color: gold;

&—active {color: blue;}

} }

Page 58: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

SMACSS in Sass

Page 59: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

SMACSSStands for the Scalable and

Modular Architecture for CSS.

“SMACSS is a way to examine your design process and as a way

to fit those rigid frameworks into a

flexible thought process.”

SMACSS in Sass

Page 60: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics
Page 61: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics
Page 62: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

5 Categorizations of CSS Rules

Base: Your single element selectors.

Layout: A section of your page (footer).

Module: A reusable part of your page (callouts, sidebar).

State: Statuses for modules, layouts (mobile, active).

Theme: Responsible for the look-and-feel.

Page 63: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

How Sass Fits in

Mixins & Organization Galore

Page 64: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

output.css

output.scss

_base.scss _layout.scss _module.scss _state.scss _theme.scss

/_base/* /_layout/* /_module/* /_state/* /_theme/*

Page 65: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

output.css

output.scss

_base.scss _layout.scss _module.scss _state.scss _theme.scss

/_base/* /_layout/* /_module/* /_state/* /_theme/*Customized for your own project!

Page 66: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

\

sass: +gt:

_colors.scss _config.scss _fonts.scss font-awesome: [font-awesome files here] mixin: _example.scss

+includes:_pages: _theme:

font-awesome.scss global.scss gt-ckeditor.scss partials: _admin: __example.scss _pages: __example.scss _theme: __example.scss

Page 67: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

\

sass: +gt:

_colors.scss _config.scss _fonts.scss font-awesome: [font-awesome files here] mixin: _example.scss

+includes:_pages: _theme:

font-awesome.scss global.scss gt-ckeditor.scss partials: _admin: __example.scss _pages: __example.scss _theme: __example.scss

Page 68: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

OOCSS in Sass

Page 69: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

OOCSS in Sass

OOCSSObject-Oriented CSS

“… An approach for writing CSS that’s fast,

maintainable, and standards-based. It adds much needed

predictability to CSS.”

Page 70: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

2 Principles of OOCSS

Separate structure and skin.

Separate container and content.

Page 71: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Separate structure and skin.

Define repeating visual features as separate “skins” that you can mix-and-match with your various objects to achieve a large amount of visual variety without much code.

@mixin and @include to the rescue!

Page 72: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Separate container and content.

An object should look the same no matter where you put it.

Page 73: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Go Your Own Way

Page 74: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics
Page 75: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Duct Tape3Must have plugins for Sassification.

Page 76: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Plugin

Mixin

Page 77: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Sass-Globbing: The Partial Whisperer

Adds the ability for Sass to have wildcard partial importing from a directory.

Like CSS, importing follows an alphanumerical ordering.

https://github.com/chriseppstein/sass-globbing

Page 78: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Breakpoint: Simple Media Queries

Demystifies and simplifies the process of building media queries by allowing them to be embedded into your Sass.

https://github.com/at-import/breakpoint

1. Define your media query:

$gt-width-tablet: 816px; $query-tablet: (max-width $gt-width-tablet);

2. Use your media query:

.node .field-body { float: left; font-size: 12pt; @include breakpoint($query-tablet){ float: none; font-size: 20pt; } }

Page 79: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Breakpoint: Simple Media Queries

Demystifies and simplifies the process of building media queries by allowing them to be embedded into your Sass.

https://github.com/at-import/breakpoint

1. Define your media query:

$gt-width-tablet: 816px; $query-tablet: (max-width $gt-width-tablet);

2. Use your media query:

.node .field-body { float: left; font-size: 12pt; @include breakpoint($query-tablet){ float: none; font-size: 20pt; } }

Page 80: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

BEM Constructor: Speed up BEM!

Provides an easy avenue for defining, extending, and standardizing BEM formatting in a Sass project!

https://github.com/danielguillan/bem-constructor

“If constructing objects programmatically seems too verbose or abstract to you that's perfectly OK. This tool is not for everybody.”

“However if you need to enforce a strict way of writing BEM objects in your project, want to make sure they won't mutate and thus produce

more secure CSS, then this tool might help you.”

Page 81: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

All of the Grids: Foundational Layouts!

Bootstrap, susy, Neat, singularity, and more!

Page 82: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

All of the Grids: Foundational Layouts!

Bootstrap, susy, Neat, singularity, and more!

Page 83: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Compass: Too Big to Fail

Large plugin for Sass to provide typography, CSS3, and Sass-helper utilities.

http://compass-style.org/

Page 84: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Bourbon: A Nice Cold Glass of CSS3

Compares as a lite version of Compass. Bourbon handles CSS3, a few golden utilities like a champ.

http://bourbon.io/

Page 85: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

There’s a lot more.But wait…

Page 86: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Sache: Sass Plugin Repository

http://www.sache.in/

Search through all accessible and published Sass plugins.

Page 87: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Sache: Sass Plugin Repository

http://www.sache.in/

Search through all accessible and published Sass plugins.

Page 88: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics
Page 89: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Sassineering4Mixins are what makes Sass truly spicy.

Page 90: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

@mixin colourText { color: #aaa; }

Page 91: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

@include colourText();

Page 92: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

@mixin colourText() { @include colourTextBrown();}

Page 93: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

@mixin colourText($colour) { color: $colour;}

Page 94: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

@mixin colourText($colour: #aaa) { color: $colour;}

Page 95: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

@mixin colourText($colour: #aaa) { color: $colour; @if lightness($colour) < 50% { @include text-shadow(0, 1, 0, #FFF); } @else { @include text-shadow(0, 1, 0, #000); } }

Page 96: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

@mixin colourText($colour: #aaa) { color: $colour; @if lightness($colour) < 50% { @include text-shadow(0, 1, 0, #FFF); } @else { @include text-shadow(0, 1, 0, #000); } }

Page 97: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

@mixin colourText($colour: #aaa, $textShadow…) { color: $colour; @if lightness($colour) < 50% { @include text-shadow(0, 1, 0, #FFF); } @else { @include text-shadow(0, 1, 0, #000); } }

Page 98: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

@mixin colourText($colour: #aaa, $textShadow…) { color: $colour; @if lightness($colour) < 50% { @include text-shadow($textShadow); } @else { @include text-shadow($textShadow); } }

Page 99: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

@mixin colourText($colour: #aaa, $textShadow…) { color: $colour; @if lightness($colour) < 50% { @include text-shadow($textShadow); } @else { @include text-shadow($textShadow); } }

Page 100: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

@mixin colourText($colour: #aaa, $textShadow…) { color: $colour; @if lightness($colour) < 50% { @include text-shadow($textShadow); } @else { @include text-shadow($textShadow); } }

Variable-length argument as data list.

Page 101: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

@mixin colourText($colour: #aaa, $textShadow…) { color: $colour; @if lightness($colour) < 50% { @include text-shadow($textShadow); } @else { @include text-shadow($textShadow); } }

Page 102: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

@mixin colourText($colour: #aaa, $textShadow…) { color: $colour; @if lightness($colour) < 50% { @include text-shadow($textShadow); } @else { @include text-shadow($textShadow); } }

Data list can be used for arguments.

Page 103: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

$vars: (color: #aaa, textShadow: (0 0 1 #aaa, 0 0 -1 #fff); @include colourText($vars);

@mixin colourText($colour: #aaa, $textShadow…) { color: $colour; @if lightness($colour) < 50% { @include text-shadow($textShadow); } @else { @include text-shadow($textShadow); } }

Page 104: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

@include colourText() { @include colourText();}

Mixin Recursion3.3

Page 105: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics
Page 106: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Forecasting5Where is Sass going in the future?

Page 107: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics
Page 108: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics
Page 109: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

The next episode…4.0

1. Reject invalid function names. 2. Unitless/Unitful value comparison. 3. Allow auto ‘index’ file import from

folder. 4. One-time import library files.

https://github.com/sass/sass/milestones/4.0

Page 110: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

The next episode…4.0

1. Reject invalid function names. 2. Unitless/Unitful value comparison. 3. Allow auto ‘index’ file import from

folder. 4. One-time import library files.

https://github.com/sass/sass/milestones/4.0

Let’s see what Camp Sass brings!

Page 111: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics
Page 112: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Docking6How does Drupal support Sass? What about Drupal 8? 9? 10?

Page 113: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

After an epic debate of Sass vs. LESS, it seems that Sass has won out and will be adopted as

WordPress’ CSS preprocessor moving forward.

Page 114: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

After an epic debate of Sass vs. LESS, it seems that Sass has won out and will be adopted as

WordPress’ CSS preprocessor moving forward.

Page 115: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

CSS Preprocessor libraries in core have not been included.

8.x? 9.x? 10.x?

Page 116: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

CSS Preprocessor libraries in core have not been included.

8.x? 9.x? 10.x?

Page 117: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Most major theme frameworks in Drupal now support CSS preprocessing via Sass.

Page 118: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

SASS/SCSS Module

https://www.drupal.org/project/sass

1. Doesn’t support libSass. 2. Doesn’t use Library API. 3. Site shows no CSS if compile

fails. 4. Yelled SASS instead of

spelled Sass.

1. CSS Aggregation functionality. 2. Compiles Sass server-side.

Page 119: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Compass Module

https://www.drupal.org/project/compass

1. Forces user into Compass. 2. Doesn’t support libSass (?). 3. Doesn’t use Library API (?).

1. Compass support out of the box.

Page 120: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Benefit of Sass Server Side?

Page 121: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics
Page 122: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics
Page 123: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

Best bet: wait on libSass.

Page 124: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

www.linkedin.com/in/ericsembrat/en

LinkedIn

@esembratTwitter

www.ericsembrat.com

Blog

Slides available online! Reach out to me with any questions.

Thanks for Attending!

Page 125: Atlanta Drupal User's Group - April 2015 - Sasstronauts: Advanced Sass Topics

www.linkedin.com/in/ericsembrat/en

LinkedIn

@esembratTwitter

www.ericsembrat.com

Blog

Slides available online! Reach out to me with any questions.

Thanks for Attending!