Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Sass Basics #2
Search
jina
April 22, 2014
Design
210
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Sass Basics #2
A beginner-level presentation I gave internally at work to teach the basics of Sass.
jina
April 22, 2014
More Decks by jina
See All by jina
Design Systems are for People
jina
1
1k
Design Tokens in Design Systems
jina
9
29k
Designing a Design System
jina
34
7.8k
Living Design Systems
jina
42
2.5M
Lightning Design System
jina
6
710
Sass & Style Guides
jina
11
530
Designing for Enterprise
jina
4
260
Refactoring Web Interfaces
jina
20
1k
In Search of the Single Source of Truth
jina
1
450
Other Decks in Design
See All in Design
root COMPANY DECK / We are hiring!
root_recruit
4
30k
富山デザイン勉強会_プレゼンテーション.pdf
keita_yoshikawa
0
150
Design dependencies
teba_eleven
0
170
速く作れるかではなく、速く学べるか ― 学習ループを回すパイロットの途中報告
nagata03
0
680
Kouseki | CREATIVE CLASS成果物
yuri9911
0
230
ボタンUIの冪等性の話をしたらVimmerに刺さっちゃった
ottatto
3
1.8k
JBUG大阪#9_登壇資料_引き継ぎで困らないためのBacklogWikiの整え方_ミスと属人化を防ぐために、 “次の人が動ける状態”をどう残すか
webnaut
2
260
The Art of Caring
klemens
0
470
TOPOSTOPOS
shoheyey
0
220
凡庸を落とすハーネス
hiromimaeo
2
920
“なんとなくFigma”から一歩先へ。AI時代も活きるWeb制作フロー
ayumidesign
0
240
「惜しいデザイン」 を生み出さないための AIレビューループ
0b1tk
3
4.5k
Featured
See All Featured
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
250
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
820
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
900
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Color Theory Basics | Prateek | Gurzu
gurzu
1
470
Evolving SEO for Evolving Search Engines
ryanjones
0
300
BBQ
matthewcrist
89
10k
Navigating Weather and Climate Data
rabernat
0
530
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
440
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
500
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Transcript
JINA BOLTON SENIOR PRODUCT DESIGNER SALESFORCE UX Sass Basics #2
…PREVIOUSLY IN Sass Basics #1 INTRODUCTION TO SASS COMMENTING NESTING
VARIABLES
Sass Basics #2 INTRODUCTION TO MIXINS PASSING ARGUMENTS CONTENT BLOCKS
MIXIN LIBRARIES
SASSMEISTER.COM
CSS Output SCSS .thingy { background: #eee; color: #444; }
@mixin module { background: #eee; color: #444; } .thingy { @include module; }
Sass SCSS =module background: #eee color: #444 @mixin module {
background: #eee; color: #444; }
You can nest selectors in a mixin.
CSS Output SCSS .thingy { background: #eee; } .thingy .this
{ color: #444; } @mixin module { background: #eee; .this { color: #444; } } .thingy { @include module; }
You can include mixins outside of rules…
CSS Output SCSS .this { color: #444; } .that {
color: #444; } @mixin module { .this { color: #444; } .that { color: #ccc; } } @include module;
…unless you directly define properties or parent selectors.
CSS Output SCSS Invalid CSS after "...lor: #ccc; }} ":
expected "{", was "@include module;" @mixin module { color: #444; &.that { color: #ccc; } } @include module;
You can include other mixins in mixins.
CSS Output SCSS .thingy { background: #222; color: #ccc; }
.thingy a { color: #fff; } @mixin dark-theme { background: #222; color: #ccc; } @mixin module { @include dark-theme; a { color: #fff; } } .thingy { @include module; }
You can pass in arguments.
CSS Output SCSS .thingy1 { background: #eee; color: #444; }
.thingy2 { background: #eee; color: purple; } .thingy3 { background: green; color: red; } .thingy4 { background: blue; color: #444; } @mixin module($text: #444, $background: #eee) { background: $background; color: $text; } .thingy1 { @include module; } .thingy2 { @include module(purple); } .thingy3 { @include module(red, green); } .thingy4 { @include module($background: blue); }
You can pass in content blocks.
CSS Output SCSS * html .thingy1 { display: inline; }
@mixin ie6-only { * html { @content; } } @include ie6-only { .thingy1 { display: inline; } }
With great power, comes great responsibility ;-)
Every time you use a Mixin, you output that code
again.
SASS-LANG.COM
USE SASSMEISTER TO EXPERIMENT WITH MIXINS. BUILD A BASIC MIXIN
LIBRARY NEXT WEEK: EXTENDING & PLACEHOLDER SELECTORS your homework