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
Agentic Design Workflowを育てる 「三層デザインハーネス」の現在地
sayadesign2
0
530
自社プロダクトのUIをAIが再現するデザインビルドシステム
toy1618
0
940
もう迷わない!“なんとなく”を卒業するフォントの選び方【村田俊英】
toshihidemurata
0
960
染み出し好きの、 染み出しコントロール論
mukai_takeru
0
470
凡庸を落とすハーネス
hiromimaeo
2
900
Bet AI Day 2026丨デザインハーネス:専門職の判断基準をコードのように運用する
layerx
PRO
4
4.6k
Luna's Light
shemeetscity
0
140
PAMPHLET.pdf
mhand01
0
1.8k
Jun Wei | Information Design & Presentation Portfolio
wjw100788
PRO
0
100
Claudeもくもく会、はじめませんか?
yusukeiyoda
0
230
エンジニアでも捗る デザイナー的思考入門(bitA Edit 新ver)
tinykitten
1
530
富山デザイン勉強会_プレゼンテーション.pdf
keita_yoshikawa
0
150
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1369
210k
The SEO identity crisis: Don't let AI make you average
varn
0
560
Done Done
chrislema
186
16k
What's in a price? How to price your products and services
michaelherold
247
13k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
280
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
240
Agile that works and the tools we love
rasmusluckow
331
22k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
460
Typedesign – Prime Four
hannesfritz
42
3.2k
Building an army of robots
kneath
307
46k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
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