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
220
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
720
Sass & Style Guides
jina
11
540
Designing for Enterprise
jina
4
270
Refactoring Web Interfaces
jina
20
1.1k
In Search of the Single Source of Truth
jina
1
450
Other Decks in Design
See All in Design
インターンから2年新卒フロントエンドエンジニアから見たサイボウズのアクセシビリティ
taku10101
0
200
Jun Wei | Information Design & Presentation Portfolio
wjw100788
PRO
0
210
PLATEAUで白い街を作る
aikautau
0
240
工房としてのAI ── デザイナー、作家、ビルダー
hiranotomoki
0
550
AI-Slopなデザインを生まないためのデザインプロセス戦略
takanorip
10
6.5k
1000人規模の組織でデザインハーネスを導入するための第一歩
pkshadeck
PRO
5
4.5k
言語化しきれなくてもいい〜勉強会を「完璧な成果を出す場」から「不確実な刺激と体験を持ち帰る場へ〜
hott3
0
190
2026/8/20 Polaris15周年イベント 『共創の場をつくる』 〜 誰もが『心地よく暮らし、心地よくはたらく』ことを選択できる社会へ 〜 関係性から地域をつくりなおす共創の土壌づくり〜リビングラボの事例を通じて〜
a2k
0
110
個人理念(自分の言葉)の言語化ワークショップ
kakukoki
1
450
UNION TEC GROUP | 2026' Project Portfolio
uniontec2000
0
140
[Unity] VAT×VFX Graphがいま個人的にアツイという話
sakiyama
0
140
Jun Wei Portfolio 2026
wjw100788
PRO
1
420
Featured
See All Featured
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
500
Ruling the World: When Life Gets Gamed
codingconduct
0
430
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
580
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
121
120k
Making Projects Easy
brettharned
120
6.8k
Facilitating Awesome Meetings
lara
57
7.2k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
670
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.6k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
600
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.4k
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