SlideShare a Scribd company logo
SCSS Hacks
Caleb
Who I am
Content Outline
❏ What is SCSS
❏ Using SCSS in Visual Studio Code
❏ Linking SASS to Html
❏ SASS Variable
❏ Extending/ Inheritance
❏ Operators
❏ Mixins
❏ Import
❏ Demo
SCSS
“ Sassy Cascading Style Sheets (SCSS) uses block formatting like that of CSS. It
uses braces to denote code blocks and semicolons to separate lines within a
block. The indented syntax and SCSS files are traditionally given the extensions
.sass and .scss, respectively. “
Integrating SCSS with IDE (VS Code)
❏ 1. Install a SASS or Less Transpiler. Use either the Node-sass or less node.js
module
npm install -g node-sass less
❏ 2. Create a simple SASS or Less File
❏ 3. Create Tasks.json file
❏ 4. Run the build task.
Linking SCSS to Html file
<link rel="stylesheet/less" type="text/css" href="styles.less" /> <script
src="less.js" type="text/javascript"></script>
- Adding these 2 lines of code to link the less stylesheet to the html file.
Variables in SCSS (1)
❖ Variable names in SCSS start with $
❖ A variable declaration looks a lot like a property declaration: it’s written
<variable>: <expression>.
❖ Sass variables are imperative, which means if you use a variable and then
change its value, the earlier use will stay the same
Variables in SCSS (2)
❖ Sass variables, like all Sass identifiers, treat hyphens and
underscores as identical
❖ Sass provides the !default flag. This assigns a value to a variable
only if that variable isn’t defined or its value is null. Otherwise, the
existing value will be used. This way, users can set variables
before they import your library to customize its behavior.
Variables in SCSS (3)
❖ Variables declared at the top of a style sheet are global (Scoping)
❖ If you need to set a global variable’s value from within a local scope (such
as in a mixin), you can use the !global flag. A variable declaration flagged
as !global will always assign to the global scope. It cannot be used to
declare a new variable.
❖ The variable-exists() function returns whether a variable with the given
name exists in the current scope, and the global-variable-exists() function
does the same but only for the global scope.
SCSS (Extending/Inheritance)
Using @extend lets you share a set of CSS properties from one selector to
another.
Operators
❏ Colon : operator to define a variable. E.g.: $main-color: blue; (assigning a
color)
❏ Addition (+) operator can be used to concatenate string
❏ Equality Operator ( == ) can be used to test the type of the $font argument.
❏ Modulus Operator (&) can set the property of an element by evaluating an
expression
❏ Comparison Operator can be used to compare numbers
❏ Logical Operators allow us to test multiple conditions within a conditional
expression.
❏ Addition Operator allows us to concatenate strings.
Mixins
❏ Adding groups of CSS Declarations to reuse in a website.
❏ Values are passed in to make mixins more flexible.
❏ To create a mixin, use a @mixin declaration and name the mixin.
❏ A variable $property can be used for us to pass in our mixin of whatever
effects we want to achieve.
❏ After creating the mixin, we can use it as a CSS declaration starting with
@include.
Import (1)
Combine imported file and target file to only render a single CSS file onto the
browser.
Renders your page directly (multiple http requests in internet browsers in CSS)
// styles.scss example of import
@import ‘home/code’, ‘home/lists’;
- Mixins, Variables and functions from file are made available and all its
CSS is made available when the @import is declared.
.
Import (2)
SCSS imports file by URL, not by file path.
Users provide load path on implementation of imports.
Imports are always resolved relative to the current file first though. Load paths
are used only if the files imported are not found.
Advantages
©: KatikeK on Codepen
Advantages
Final Tips
“ SCSS is only powerful when you use a CSS preprocessor to convert SCSS files
to CSS files. CSS files determine how your website look. “
More Reading
1. Theming with SASS: An SCSS Tutorial by Fernando Rivas
2. SASS Documentation on SASS-lang website
3. SASS Guidelines by Hugo Giraudel (https://sass-guidelin.es)
4. 10+ Best Tools and Resources to Compile & Manage SASS, LESS, and Stylus
– CSS Preprocessors by Taisiya (Graygrids Article)
5. Leaner Style Sheet (LESS) documentation (http://lesscss.org/)
6. Custom Importers of node-sass (https://sass-lang.com/documentation/at-
rules/import)
Ad

More Related Content

What's hot (7)

High Performance Front-End Development
High Performance Front-End DevelopmentHigh Performance Front-End Development
High Performance Front-End Development
drywallbmb
 
Drag and drop file upload with Dropzone in CodeIgniter
Drag and drop file upload with Dropzone in CodeIgniterDrag and drop file upload with Dropzone in CodeIgniter
Drag and drop file upload with Dropzone in CodeIgniter
Yogesh singh
 
Internet and Web Technology (CLASS-14) [JSP] | NIC/NIELIT Web Technology
Internet and Web Technology (CLASS-14) [JSP] | NIC/NIELIT Web Technology Internet and Web Technology (CLASS-14) [JSP] | NIC/NIELIT Web Technology
Internet and Web Technology (CLASS-14) [JSP] | NIC/NIELIT Web Technology
Ayes Chinmay
 
Less css
Less cssLess css
Less css
Amit kumar
 
Node js getting started
Node js getting startedNode js getting started
Node js getting started
Pallavi Srivastava
 
What's a web page made of?
What's a web page made of?What's a web page made of?
What's a web page made of?
Charlie Allen
 
Documentation for installing swizzard cms
Documentation for installing swizzard cmsDocumentation for installing swizzard cms
Documentation for installing swizzard cms
Gary Dragul
 
High Performance Front-End Development
High Performance Front-End DevelopmentHigh Performance Front-End Development
High Performance Front-End Development
drywallbmb
 
Drag and drop file upload with Dropzone in CodeIgniter
Drag and drop file upload with Dropzone in CodeIgniterDrag and drop file upload with Dropzone in CodeIgniter
Drag and drop file upload with Dropzone in CodeIgniter
Yogesh singh
 
Internet and Web Technology (CLASS-14) [JSP] | NIC/NIELIT Web Technology
Internet and Web Technology (CLASS-14) [JSP] | NIC/NIELIT Web Technology Internet and Web Technology (CLASS-14) [JSP] | NIC/NIELIT Web Technology
Internet and Web Technology (CLASS-14) [JSP] | NIC/NIELIT Web Technology
Ayes Chinmay
 
What's a web page made of?
What's a web page made of?What's a web page made of?
What's a web page made of?
Charlie Allen
 
Documentation for installing swizzard cms
Documentation for installing swizzard cmsDocumentation for installing swizzard cms
Documentation for installing swizzard cms
Gary Dragul
 

Similar to Scss talk CSS Meetup (20)

SCSS Implementation
SCSS ImplementationSCSS Implementation
SCSS Implementation
Amey Parab
 
UNIT 3.ppt
UNIT 3.pptUNIT 3.ppt
UNIT 3.ppt
kavi806657
 
Syntactically Awesome Stylesheet - A workshop by Citytech Software
Syntactically Awesome Stylesheet - A workshop by Citytech SoftwareSyntactically Awesome Stylesheet - A workshop by Citytech Software
Syntactically Awesome Stylesheet - A workshop by Citytech Software
Ritwik Das
 
LESS(CSS Pre Processor) introduction
LESS(CSS Pre Processor) introductionLESS(CSS Pre Processor) introduction
LESS(CSS Pre Processor) introduction
rushi7567
 
CSS Methodology
CSS MethodologyCSS Methodology
CSS Methodology
Zohar Arad
 
HowTo_CSS
HowTo_CSSHowTo_CSS
HowTo_CSS
tutorialsruby
 
HowTo_CSS
HowTo_CSSHowTo_CSS
HowTo_CSS
tutorialsruby
 
css-tools
css-toolscss-tools
css-tools
Desarae Veit
 
Pfnp slides
Pfnp slidesPfnp slides
Pfnp slides
William Myers
 
Deep dive into sass
Deep dive into sassDeep dive into sass
Deep dive into sass
Knoldus Inc.
 
Sass_Cubet seminar
Sass_Cubet seminarSass_Cubet seminar
Sass_Cubet seminar
Cubet Techno Labs
 
Joes sass presentation
Joes sass presentationJoes sass presentation
Joes sass presentation
JoeSeckelman
 
Advanced sass
Advanced sassAdvanced sass
Advanced sass
Kianosh Pourian
 
Css
CssCss
Css
Balakumaran Arunachalam
 
Beautifying senc
Beautifying sencBeautifying senc
Beautifying senc
Rachana Upadhyay
 
Beautifying Sencha Touch
Beautifying Sencha TouchBeautifying Sencha Touch
Beautifying Sencha Touch
Neha Upadhyay
 
Css
CssCss
Css
NIRMAL FELIX
 
Css
CssCss
Css
Jahid Blackrose
 
TIBCO General Interface - CSS Guide
TIBCO General Interface - CSS GuideTIBCO General Interface - CSS Guide
TIBCO General Interface - CSS Guide
Rohan Chandane
 
Cordova training - Day 2 Introduction to CSS 3
Cordova training - Day 2 Introduction to CSS 3Cordova training - Day 2 Introduction to CSS 3
Cordova training - Day 2 Introduction to CSS 3
Binu Paul
 
Ad

Recently uploaded (20)

Google DeepMind’s New AI Coding Agent AlphaEvolve.pdf
Google DeepMind’s New AI Coding Agent AlphaEvolve.pdfGoogle DeepMind’s New AI Coding Agent AlphaEvolve.pdf
Google DeepMind’s New AI Coding Agent AlphaEvolve.pdf
derrickjswork
 
UX for Data Engineers and Analysts-Designing User-Friendly Dashboards for Non...
UX for Data Engineers and Analysts-Designing User-Friendly Dashboards for Non...UX for Data Engineers and Analysts-Designing User-Friendly Dashboards for Non...
UX for Data Engineers and Analysts-Designing User-Friendly Dashboards for Non...
UXPA Boston
 
Risk Analysis 101: Using a Risk Analyst to Fortify Your IT Strategy
Risk Analysis 101: Using a Risk Analyst to Fortify Your IT StrategyRisk Analysis 101: Using a Risk Analyst to Fortify Your IT Strategy
Risk Analysis 101: Using a Risk Analyst to Fortify Your IT Strategy
john823664
 
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
ICT Frame Magazine Pvt. Ltd.
 
UiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptx
UiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptxUiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptx
UiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptx
anabulhac
 
Dark Dynamism: drones, dark factories and deurbanization
Dark Dynamism: drones, dark factories and deurbanizationDark Dynamism: drones, dark factories and deurbanization
Dark Dynamism: drones, dark factories and deurbanization
Jakub Šimek
 
AI needs Hybrid Cloud - TEC conference 2025.pptx
AI needs Hybrid Cloud - TEC conference 2025.pptxAI needs Hybrid Cloud - TEC conference 2025.pptx
AI needs Hybrid Cloud - TEC conference 2025.pptx
Shikha Srivastava
 
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
SOFTTECHHUB
 
Building Connected Agents: An Overview of Google's ADK and A2A Protocol
Building Connected Agents:  An Overview of Google's ADK and A2A ProtocolBuilding Connected Agents:  An Overview of Google's ADK and A2A Protocol
Building Connected Agents: An Overview of Google's ADK and A2A Protocol
Suresh Peiris
 
May Patch Tuesday
May Patch TuesdayMay Patch Tuesday
May Patch Tuesday
Ivanti
 
AI and Meaningful Work by Pablo Fernández Vallejo
AI and Meaningful Work by Pablo Fernández VallejoAI and Meaningful Work by Pablo Fernández Vallejo
AI and Meaningful Work by Pablo Fernández Vallejo
UXPA Boston
 
Building a research repository that works by Clare Cady
Building a research repository that works by Clare CadyBuilding a research repository that works by Clare Cady
Building a research repository that works by Clare Cady
UXPA Boston
 
Harmonizing Multi-Agent Intelligence | Open Data Science Conference | Gary Ar...
Harmonizing Multi-Agent Intelligence | Open Data Science Conference | Gary Ar...Harmonizing Multi-Agent Intelligence | Open Data Science Conference | Gary Ar...
Harmonizing Multi-Agent Intelligence | Open Data Science Conference | Gary Ar...
Gary Arora
 
Is Your QA Team Still Working in Silos? Here's What to Do.
Is Your QA Team Still Working in Silos? Here's What to Do.Is Your QA Team Still Working in Silos? Here's What to Do.
Is Your QA Team Still Working in Silos? Here's What to Do.
marketing943205
 
Bridging AI and Human Expertise: Designing for Trust and Adoption in Expert S...
Bridging AI and Human Expertise: Designing for Trust and Adoption in Expert S...Bridging AI and Human Expertise: Designing for Trust and Adoption in Expert S...
Bridging AI and Human Expertise: Designing for Trust and Adoption in Expert S...
UXPA Boston
 
DNF 2.0 Implementations Challenges in Nepal
DNF 2.0 Implementations Challenges in NepalDNF 2.0 Implementations Challenges in Nepal
DNF 2.0 Implementations Challenges in Nepal
ICT Frame Magazine Pvt. Ltd.
 
Slack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teamsSlack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teams
Nacho Cougil
 
How Top Companies Benefit from Outsourcing
How Top Companies Benefit from OutsourcingHow Top Companies Benefit from Outsourcing
How Top Companies Benefit from Outsourcing
Nascenture
 
Scientific Large Language Models in Multi-Modal Domains
Scientific Large Language Models in Multi-Modal DomainsScientific Large Language Models in Multi-Modal Domains
Scientific Large Language Models in Multi-Modal Domains
syedanidakhader1
 
Understanding SEO in the Age of AI.pdf
Understanding SEO in the Age of AI.pdfUnderstanding SEO in the Age of AI.pdf
Understanding SEO in the Age of AI.pdf
Fulcrum Concepts, LLC
 
Google DeepMind’s New AI Coding Agent AlphaEvolve.pdf
Google DeepMind’s New AI Coding Agent AlphaEvolve.pdfGoogle DeepMind’s New AI Coding Agent AlphaEvolve.pdf
Google DeepMind’s New AI Coding Agent AlphaEvolve.pdf
derrickjswork
 
UX for Data Engineers and Analysts-Designing User-Friendly Dashboards for Non...
UX for Data Engineers and Analysts-Designing User-Friendly Dashboards for Non...UX for Data Engineers and Analysts-Designing User-Friendly Dashboards for Non...
UX for Data Engineers and Analysts-Designing User-Friendly Dashboards for Non...
UXPA Boston
 
Risk Analysis 101: Using a Risk Analyst to Fortify Your IT Strategy
Risk Analysis 101: Using a Risk Analyst to Fortify Your IT StrategyRisk Analysis 101: Using a Risk Analyst to Fortify Your IT Strategy
Risk Analysis 101: Using a Risk Analyst to Fortify Your IT Strategy
john823664
 
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
ICT Frame Magazine Pvt. Ltd.
 
UiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptx
UiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptxUiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptx
UiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptx
anabulhac
 
Dark Dynamism: drones, dark factories and deurbanization
Dark Dynamism: drones, dark factories and deurbanizationDark Dynamism: drones, dark factories and deurbanization
Dark Dynamism: drones, dark factories and deurbanization
Jakub Šimek
 
AI needs Hybrid Cloud - TEC conference 2025.pptx
AI needs Hybrid Cloud - TEC conference 2025.pptxAI needs Hybrid Cloud - TEC conference 2025.pptx
AI needs Hybrid Cloud - TEC conference 2025.pptx
Shikha Srivastava
 
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
SOFTTECHHUB
 
Building Connected Agents: An Overview of Google's ADK and A2A Protocol
Building Connected Agents:  An Overview of Google's ADK and A2A ProtocolBuilding Connected Agents:  An Overview of Google's ADK and A2A Protocol
Building Connected Agents: An Overview of Google's ADK and A2A Protocol
Suresh Peiris
 
May Patch Tuesday
May Patch TuesdayMay Patch Tuesday
May Patch Tuesday
Ivanti
 
AI and Meaningful Work by Pablo Fernández Vallejo
AI and Meaningful Work by Pablo Fernández VallejoAI and Meaningful Work by Pablo Fernández Vallejo
AI and Meaningful Work by Pablo Fernández Vallejo
UXPA Boston
 
Building a research repository that works by Clare Cady
Building a research repository that works by Clare CadyBuilding a research repository that works by Clare Cady
Building a research repository that works by Clare Cady
UXPA Boston
 
Harmonizing Multi-Agent Intelligence | Open Data Science Conference | Gary Ar...
Harmonizing Multi-Agent Intelligence | Open Data Science Conference | Gary Ar...Harmonizing Multi-Agent Intelligence | Open Data Science Conference | Gary Ar...
Harmonizing Multi-Agent Intelligence | Open Data Science Conference | Gary Ar...
Gary Arora
 
Is Your QA Team Still Working in Silos? Here's What to Do.
Is Your QA Team Still Working in Silos? Here's What to Do.Is Your QA Team Still Working in Silos? Here's What to Do.
Is Your QA Team Still Working in Silos? Here's What to Do.
marketing943205
 
Bridging AI and Human Expertise: Designing for Trust and Adoption in Expert S...
Bridging AI and Human Expertise: Designing for Trust and Adoption in Expert S...Bridging AI and Human Expertise: Designing for Trust and Adoption in Expert S...
Bridging AI and Human Expertise: Designing for Trust and Adoption in Expert S...
UXPA Boston
 
Slack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teamsSlack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teams
Nacho Cougil
 
How Top Companies Benefit from Outsourcing
How Top Companies Benefit from OutsourcingHow Top Companies Benefit from Outsourcing
How Top Companies Benefit from Outsourcing
Nascenture
 
Scientific Large Language Models in Multi-Modal Domains
Scientific Large Language Models in Multi-Modal DomainsScientific Large Language Models in Multi-Modal Domains
Scientific Large Language Models in Multi-Modal Domains
syedanidakhader1
 
Understanding SEO in the Age of AI.pdf
Understanding SEO in the Age of AI.pdfUnderstanding SEO in the Age of AI.pdf
Understanding SEO in the Age of AI.pdf
Fulcrum Concepts, LLC
 
Ad

Scss talk CSS Meetup

  • 3. Content Outline ❏ What is SCSS ❏ Using SCSS in Visual Studio Code ❏ Linking SASS to Html ❏ SASS Variable ❏ Extending/ Inheritance ❏ Operators ❏ Mixins ❏ Import ❏ Demo
  • 4. SCSS “ Sassy Cascading Style Sheets (SCSS) uses block formatting like that of CSS. It uses braces to denote code blocks and semicolons to separate lines within a block. The indented syntax and SCSS files are traditionally given the extensions .sass and .scss, respectively. “
  • 5. Integrating SCSS with IDE (VS Code) ❏ 1. Install a SASS or Less Transpiler. Use either the Node-sass or less node.js module npm install -g node-sass less ❏ 2. Create a simple SASS or Less File ❏ 3. Create Tasks.json file ❏ 4. Run the build task.
  • 6. Linking SCSS to Html file <link rel="stylesheet/less" type="text/css" href="styles.less" /> <script src="less.js" type="text/javascript"></script> - Adding these 2 lines of code to link the less stylesheet to the html file.
  • 7. Variables in SCSS (1) ❖ Variable names in SCSS start with $ ❖ A variable declaration looks a lot like a property declaration: it’s written <variable>: <expression>. ❖ Sass variables are imperative, which means if you use a variable and then change its value, the earlier use will stay the same
  • 8. Variables in SCSS (2) ❖ Sass variables, like all Sass identifiers, treat hyphens and underscores as identical ❖ Sass provides the !default flag. This assigns a value to a variable only if that variable isn’t defined or its value is null. Otherwise, the existing value will be used. This way, users can set variables before they import your library to customize its behavior.
  • 9. Variables in SCSS (3) ❖ Variables declared at the top of a style sheet are global (Scoping) ❖ If you need to set a global variable’s value from within a local scope (such as in a mixin), you can use the !global flag. A variable declaration flagged as !global will always assign to the global scope. It cannot be used to declare a new variable. ❖ The variable-exists() function returns whether a variable with the given name exists in the current scope, and the global-variable-exists() function does the same but only for the global scope.
  • 10. SCSS (Extending/Inheritance) Using @extend lets you share a set of CSS properties from one selector to another.
  • 11. Operators ❏ Colon : operator to define a variable. E.g.: $main-color: blue; (assigning a color) ❏ Addition (+) operator can be used to concatenate string ❏ Equality Operator ( == ) can be used to test the type of the $font argument. ❏ Modulus Operator (&) can set the property of an element by evaluating an expression ❏ Comparison Operator can be used to compare numbers ❏ Logical Operators allow us to test multiple conditions within a conditional expression. ❏ Addition Operator allows us to concatenate strings.
  • 12. Mixins ❏ Adding groups of CSS Declarations to reuse in a website. ❏ Values are passed in to make mixins more flexible. ❏ To create a mixin, use a @mixin declaration and name the mixin. ❏ A variable $property can be used for us to pass in our mixin of whatever effects we want to achieve. ❏ After creating the mixin, we can use it as a CSS declaration starting with @include.
  • 13. Import (1) Combine imported file and target file to only render a single CSS file onto the browser. Renders your page directly (multiple http requests in internet browsers in CSS) // styles.scss example of import @import ‘home/code’, ‘home/lists’; - Mixins, Variables and functions from file are made available and all its CSS is made available when the @import is declared. .
  • 14. Import (2) SCSS imports file by URL, not by file path. Users provide load path on implementation of imports. Imports are always resolved relative to the current file first though. Load paths are used only if the files imported are not found.
  • 17. Final Tips “ SCSS is only powerful when you use a CSS preprocessor to convert SCSS files to CSS files. CSS files determine how your website look. “
  • 18. More Reading 1. Theming with SASS: An SCSS Tutorial by Fernando Rivas 2. SASS Documentation on SASS-lang website 3. SASS Guidelines by Hugo Giraudel (https://sass-guidelin.es) 4. 10+ Best Tools and Resources to Compile & Manage SASS, LESS, and Stylus – CSS Preprocessors by Taisiya (Graygrids Article) 5. Leaner Style Sheet (LESS) documentation (http://lesscss.org/) 6. Custom Importers of node-sass (https://sass-lang.com/documentation/at- rules/import)

Editor's Notes

  • #6: Reference: https://code.visualstudio.com/docs/languages/css
  • #7: http://lesscss.org/ https://stackoverflow.com/questions/19215517/attaching-a-sass-scss-to-html-docs
  • #8: https://sass-lang.com/documentation/variables
  • #9: https://sass-lang.com/documentation/variables
  • #10: https://sass-lang.com/documentation/variables
  • #12: Reference: https://www.sitepoint.com/sass-basics-operators/
  • #14: https://sass-lang.com/documentation/at-rules/import