SlideShare a Scribd company logo
1 of 80
Building Mobile Web Apps
  📱   with LESS / Sass / Stylus




Speed up your front-end workflow with CSS
preprocessors.



                         Mobile Camp Los Angeles
     Jake Johnson
                                 October 18, 2012
Kansas City, MO
[ Delicious stack of ribs intentionally removed due to presentation timing ]




BBQ Capital of the World
Clean HTML & CSS
Empower developers to go
    further, faster.
+


CSS3 Mixins, Automatic Spriting, Reusable
                Patterns
If you like Compass use Sass.
If you want max speed use Stylus.
Overview

1 Getting Started

2 Sass Essentials

3 Placeholders & Style Patterns

4 Compass Essentials

5 The Future: OOCSS & SMACSS
Why I ♥              Sass

Clean, beautiful syntax.

Reusable mixins and patterns.
Responsive design is much

easier.
Speeds up my workflow.
FYI... it’s Sass not SASS!
Getting Started
sudo gem install compass
compass create
compass watch




http://incident57.com/codekit/   http://mhs.github.com/scout-app/

http://livereload.com/           http://smalify.net/

http://compass.handlino.com/
Variables
VARIABLES IN ACTION


Color Schemes
VARIABLES IN ACTION


Background URL Paths
VARIABLES IN ACTION


Default Dimensions
VARIABLES IN ACTION


Quick Layout Switching
Operations
 +   -   *   /   %
OPERATIONS IN ACTION

Responsive Web Design Formula

    Target / Context =
          Result



config.rb


http://www.alistapart.com/articles/fluidgrids/
OPERATIONS IN ACTION

Math and Variables
OPERATIONS IN ACTION

String Operations
Functions
Useful Functions
round(), ceil(), floor(), min(), max()

lighten($navyblue, 50%)

darken($maplesyrup, 40%)

saturate() / desaturate()

transparentize(#000, 20%)


http://sass-lang.com/docs/yardoc/Sass/Script/Functions.html
Nesting
Nesting Selectors
Nesting Properties
Parent References
(Before)
& Before Selector Decorations:
Great for pseudo-classes like :hover, :active, :focus,
etc.
Parent References
(Before)
Good for classes too, especially for toggling
animations.
Parent References
(After)
& After Selector Decorations:
& just repeats the parent selector. What if you place
it after the selector?
Parent References
(After)
“With great power comes
  great responsibility.”
The Inception Rule
Don’t go more than 4 levels
deep.
http://thesassway.com/beginner/the-
inception-rule

The Problem:

body                  body   { ... }
                      body   div.content   div.container   { ... }
 div.container        body   div.content   div.container   div.articles   { ... }
  div.content         body   div.content   div.container   div.articles   > div.post   { ... }
    div.articles      body   div.content   div.container   div.articles   > div.post   div.title { ... }
     & > div.post     body   div.content   div.container   div.articles   > div.post   div.title h1 { ... }
                      body   div.content   div.container   div.articles   > div.post   div.title h1 a { ... }
       div.title      body   div.content   div.container   div.articles   > div.post   div.content { ... }
        h1            body   div.content   div.container   div.articles   > div.post   div.content p { ... }
          a           body   div.content   div.container   div.articles   > div.post   div.content ul { ... }
       div.content    body   div.content   div.container   div.articles   > div.post   div.content ul li { ... }
                      body   div.content   div.container   div.articles   > div.post   div.author { ... }
        p
                      body   div.content   div.container   div.articles   > div.post   div.author a.display { ... }
        ul            body   div.content   div.container   div.articles   > div.post   div.author a.display img { ... }
          li          body   div.content   div.container   div.articles   > div.post   div.author h4 { ... }
       div.author     body   div.content   div.container   div.articles   > div.post   div.author h4 a { ... }
        a.display     body   div.content   div.container   div.articles   > div.post   div.author p { ... }
                      body   div.content   div.container   div.articles   > div.post   div.author p a { ... }
          img         body   div.content   div.container   div.articles   > div.post   div.author ul { ... }
        h4            body   div.content   div.container   div.articles   > div.post   div.author ul li { ... }
          a
        p
          a
The Inception Rule
“But the rendering performance and file size isn’t
that big of a deal.”

Your styles are chained to the DOM, making
maintenance more difficult.

1) Focus on reusability for different contexts.
2) Reduce the # of selectors as much as you can.

Lower File Size, Better Rendering Performance,
Easier Maintenance. Get in the habit!
Google’s Recommendations
Avoid a universal key selector.



Make your rules as specific as possible.
Class and ID selectors over tag selectors.
You can still use tag selectors, but try to make them top level.

Remove redundant qualifiers.




https://developers.google.com/speed/docs/best-practices/rendering#UseEfficientCSSSelectors
Take the next two with a
     grain of salt...
Google’s Recommendations
Avoid using descendant selectors, especially
those that specify redundant ancestors.



Use class selectors instead of descendant
selectors.




https://developers.google.com/speed/docs/best-practices/rendering#UseEfficientCSSSelectors
Just do the best you can.
Selector Inheritance
     (@extend)
Inherit Styles without Duplicating
@EXTEND IN ACTION


Properties
Inherit Styles without Duplicating
@EXTEND IN ACTION


Properties
Arguments
Mixins   @content Blocks
         Injects into your rules
MIXIN EXAMPLES


Simple Media Queries
MIXIN EXAMPLES


Rem Font Sizing
Em: Size is relative to the parent element.
Rem: Size is relative to the root element <html>.
MIXIN EXAMPLES


Font Family Sets
MIXIN EXAMPLES


Font Weight Sets
MIXIN EXAMPLES


Image Replacement




http://nicolasgallagher.com/another-css-image-replacement-technique/
MIXIN EXAMPLES


Margin / Padding Resets
Placeholders
Inherit Styles without Duplicating
@EXTEND IN ACTION


Properties
Placeholder Example
Similar to class @extends, but silent. No code bloat.
Use as style patterns. Non-semantic CSS modules.
Placeholder vs. Class
@extend
Placeholder (Silent)   Class @extend
Less Class Bloat

    DRY Sass

DRY Compiled CSS
Advantages of Placeholders vs.
Mixins

Combined with Selectors, Not Injected

Leaner Compiled CSS

Use Mixins for @content Support
COMPASS MIXINS


Cross-Browser CSS3
Appearance          Font Face
Background Clip     Hyphenation
Background Origin   Images / Gradients
Background Size     Inline Block
Border Radius       Opacity
Box (Flex Box)      CSS Regions
Box Shadow          Text Shadow
Box Sizing          Transform
Columns             Transition
Filter
COMPASS MIXINS


CSS3 for Mobile
+box-sizing(border-
                      Flex Box for Portrait
box)
                          & Landscape
                        Variable Widths
COMPASS FUNCTIONS


Helper Functions
adjust-lightness()    image-height()       stylesheet-url()
adjust-saturation()   image-url()          scale-lightness()
append-selector()     inline-font-files()   shade()
color-stops()         inline-image()       tan()
cos()                 log()                tint()
css2-fallback()       nest()               -css2()
e()                   pow()                -moz()
elements-of-type()    prefix()              -ms()
enumerate()           prefixed()            -o()
font-files()           pi()                 -pie()
font-url()            sin()                -svg()
headings()            sqrt()               -webkit()
image-width()
COMPASS MIXINS


Automatic Spriting
COMPASS MIXINS


Typography
Links            Lists               Text

Hover Link       Bullets             Ellipsis
Link Colors      Horizontal List     Force Wrap
Unstyled Link    Inline-Block List   No Wrap
                 Inline List         Text Replacement
COMPASS MIXINS


General Utilities


+Clearfix
 Float           Hacks   Minimums   Reset   Tag
 Cloud
OOCSS: Object Oriented
        CSS
Faster Websites         Easier Maintenance


        Rapid Iteration & Testing
Principle #1

Separate Structure and Skin
Principle #2

Separate Container and Content
Avoid Complicated Nesting




What we’ve been learning all along!
OOCSS Basic Tips


Don’t make your base element styles dependent
on its surrounding DOM.


Add semantic classes to elements and use Sass
placeholder patterns to skin.


You can still use IDs in your markup for
JavaScript. Use classes for reusability.
http://csslint.net/
Going Further
      http://smacss.com/book/
https://github.com/stubbornella/oocss
Thank You!


    ✉
jake@divshot.com   @jakejohnson

More Related Content

What's hot

Ingo Muschenetz: Titanium Studio Deep Dive
Ingo Muschenetz: Titanium Studio Deep DiveIngo Muschenetz: Titanium Studio Deep Dive
Ingo Muschenetz: Titanium Studio Deep DiveAxway Appcelerator
 
CSS3: Ripe and Ready to Respond
CSS3: Ripe and Ready to RespondCSS3: Ripe and Ready to Respond
CSS3: Ripe and Ready to RespondDenise Jacobs
 
Grok Drupal (7) Theming - 2011 Feb update
Grok Drupal (7) Theming - 2011 Feb updateGrok Drupal (7) Theming - 2011 Feb update
Grok Drupal (7) Theming - 2011 Feb updateLaura Scott
 
CSS Walktrough Internship Course
CSS Walktrough Internship CourseCSS Walktrough Internship Course
CSS Walktrough Internship CourseZoltan Iszlai
 
Wrangling the CSS Beast with Sass
Wrangling the CSS Beast  with SassWrangling the CSS Beast  with Sass
Wrangling the CSS Beast with SassRob Friesel
 
HTML and CSS crash course!
HTML and CSS crash course!HTML and CSS crash course!
HTML and CSS crash course!Ana Cidre
 
New Elements & Features in CSS3
New Elements & Features in CSS3New Elements & Features in CSS3
New Elements & Features in CSS3Jamshid Hashimi
 
CSS for basic learner
CSS for basic learnerCSS for basic learner
CSS for basic learnerYoeung Vibol
 
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...Jer Clarke
 
HTML/CSS Crash Course (april 4 2017)
HTML/CSS Crash Course (april 4 2017)HTML/CSS Crash Course (april 4 2017)
HTML/CSS Crash Course (april 4 2017)Daniel Friedman
 
Intro to OOCSS Workshop
Intro to OOCSS WorkshopIntro to OOCSS Workshop
Intro to OOCSS WorkshopJulie Cameron
 
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4Erin M. Kidwell
 

What's hot (20)

Ingo Muschenetz: Titanium Studio Deep Dive
Ingo Muschenetz: Titanium Studio Deep DiveIngo Muschenetz: Titanium Studio Deep Dive
Ingo Muschenetz: Titanium Studio Deep Dive
 
Css 3
Css 3Css 3
Css 3
 
Css 3
Css 3Css 3
Css 3
 
Intro to CSS3
Intro to CSS3Intro to CSS3
Intro to CSS3
 
CSS3: Ripe and Ready to Respond
CSS3: Ripe and Ready to RespondCSS3: Ripe and Ready to Respond
CSS3: Ripe and Ready to Respond
 
Sass
SassSass
Sass
 
Introduction 2 css
Introduction 2 cssIntroduction 2 css
Introduction 2 css
 
Hardcore CSS
Hardcore CSSHardcore CSS
Hardcore CSS
 
Demystifying WordPress Conditional Tags
Demystifying WordPress Conditional TagsDemystifying WordPress Conditional Tags
Demystifying WordPress Conditional Tags
 
Grok Drupal (7) Theming - 2011 Feb update
Grok Drupal (7) Theming - 2011 Feb updateGrok Drupal (7) Theming - 2011 Feb update
Grok Drupal (7) Theming - 2011 Feb update
 
CSS Walktrough Internship Course
CSS Walktrough Internship CourseCSS Walktrough Internship Course
CSS Walktrough Internship Course
 
Css
CssCss
Css
 
Wrangling the CSS Beast with Sass
Wrangling the CSS Beast  with SassWrangling the CSS Beast  with Sass
Wrangling the CSS Beast with Sass
 
HTML and CSS crash course!
HTML and CSS crash course!HTML and CSS crash course!
HTML and CSS crash course!
 
New Elements & Features in CSS3
New Elements & Features in CSS3New Elements & Features in CSS3
New Elements & Features in CSS3
 
CSS for basic learner
CSS for basic learnerCSS for basic learner
CSS for basic learner
 
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
 
HTML/CSS Crash Course (april 4 2017)
HTML/CSS Crash Course (april 4 2017)HTML/CSS Crash Course (april 4 2017)
HTML/CSS Crash Course (april 4 2017)
 
Intro to OOCSS Workshop
Intro to OOCSS WorkshopIntro to OOCSS Workshop
Intro to OOCSS Workshop
 
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
 

Similar to Sass Essentials at Mobile Camp LA

CSS Methodology
CSS MethodologyCSS Methodology
CSS MethodologyZohar Arad
 
Slow kinda sucks
Slow kinda sucksSlow kinda sucks
Slow kinda sucksTim Wright
 
Structuring your CSS for maintainability: rules and guile lines to write CSS
Structuring your CSS for maintainability: rules and guile lines to write CSSStructuring your CSS for maintainability: rules and guile lines to write CSS
Structuring your CSS for maintainability: rules and guile lines to write CSSSanjoy Kr. Paul
 
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017 So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017 Evan Mullins
 
Customizing the look and-feel of DSpace
Customizing the look and-feel of DSpaceCustomizing the look and-feel of DSpace
Customizing the look and-feel of DSpaceBharat Chaudhari
 
HTML and CSS Coding Standards
HTML and CSS Coding StandardsHTML and CSS Coding Standards
HTML and CSS Coding StandardsSaajan Maharjan
 
GDI Seattle Intermediate HTML and CSS Class 1
GDI Seattle Intermediate HTML and CSS Class 1GDI Seattle Intermediate HTML and CSS Class 1
GDI Seattle Intermediate HTML and CSS Class 1Heather Rock
 
Web Programming& Scripting Lab
Web Programming& Scripting LabWeb Programming& Scripting Lab
Web Programming& Scripting LabSwapnali Pawar
 
Styling Components with JavaScript: MelbCSS Edition
Styling Components with JavaScript: MelbCSS EditionStyling Components with JavaScript: MelbCSS Edition
Styling Components with JavaScript: MelbCSS Editionbensmithett
 
The CSS Handbook
The CSS HandbookThe CSS Handbook
The CSS Handbookjackchenvlo
 
Css for Development
Css for DevelopmentCss for Development
Css for Developmenttsengsite
 
Intro to CSS Selectors in Drupal
Intro to CSS Selectors in DrupalIntro to CSS Selectors in Drupal
Intro to CSS Selectors in Drupalcgmonroe
 

Similar to Sass Essentials at Mobile Camp LA (20)

CSS Methodology
CSS MethodologyCSS Methodology
CSS Methodology
 
Slow kinda sucks
Slow kinda sucksSlow kinda sucks
Slow kinda sucks
 
HTML CSS & Javascript
HTML CSS & JavascriptHTML CSS & Javascript
HTML CSS & Javascript
 
Structuring your CSS for maintainability: rules and guile lines to write CSS
Structuring your CSS for maintainability: rules and guile lines to write CSSStructuring your CSS for maintainability: rules and guile lines to write CSS
Structuring your CSS for maintainability: rules and guile lines to write CSS
 
Fewd week2 slides
Fewd week2 slidesFewd week2 slides
Fewd week2 slides
 
Css3
Css3Css3
Css3
 
Pfnp slides
Pfnp slidesPfnp slides
Pfnp slides
 
HowTo_CSS
HowTo_CSSHowTo_CSS
HowTo_CSS
 
HowTo_CSS
HowTo_CSSHowTo_CSS
HowTo_CSS
 
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017 So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
 
Customizing the look and-feel of DSpace
Customizing the look and-feel of DSpaceCustomizing the look and-feel of DSpace
Customizing the look and-feel of DSpace
 
HTML and CSS Coding Standards
HTML and CSS Coding StandardsHTML and CSS Coding Standards
HTML and CSS Coding Standards
 
GDI Seattle Intermediate HTML and CSS Class 1
GDI Seattle Intermediate HTML and CSS Class 1GDI Seattle Intermediate HTML and CSS Class 1
GDI Seattle Intermediate HTML and CSS Class 1
 
Death of a Themer
Death of a ThemerDeath of a Themer
Death of a Themer
 
Web Programming& Scripting Lab
Web Programming& Scripting LabWeb Programming& Scripting Lab
Web Programming& Scripting Lab
 
Styling Components with JavaScript: MelbCSS Edition
Styling Components with JavaScript: MelbCSS EditionStyling Components with JavaScript: MelbCSS Edition
Styling Components with JavaScript: MelbCSS Edition
 
CSS Overview
CSS OverviewCSS Overview
CSS Overview
 
The CSS Handbook
The CSS HandbookThe CSS Handbook
The CSS Handbook
 
Css for Development
Css for DevelopmentCss for Development
Css for Development
 
Intro to CSS Selectors in Drupal
Intro to CSS Selectors in DrupalIntro to CSS Selectors in Drupal
Intro to CSS Selectors in Drupal
 

Recently uploaded

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 

Sass Essentials at Mobile Camp LA

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n