SlideShare a Scribd company logo
Front-End
                  Frameworks:
                a quick overview
Javier Cuevas
@javier_dev
Diacode.com
Front-End Development

HTML     CSS    Javascript
Frameworks
                                  Toolkits
                                  Libraries
              Front-End           Grid systems (CSS)
                                  Boilerplates (HTML)
                                  Syntatic Sugar
                                  ...
                Multiple names and approaches.
Same idea: make front-end development easier, faster, stronger.
Why do we need
 Front-End Superpowers?
• HTML is ugly and old.
• Javascript is ugly and old.
• CSS is not that ugly but is totally Anti-DRY.
• User Interfaces are each day more complex.
• Cross-browser compatibility.
• Device Heterogeneity: tablets, smartphones,
  desktops... A jungle of different screens.
HTML
HAML
        • Syntatic sugar for HTML and ERB (embedded Ruby).
        • HAML is for Ruby, but there are equivalents for other
             languages (SHPAML, GHRML).

        • White space aware syntax.
HAML                                    HTML
#profile                                <div id="profile">
  .left.column                            <div class="left column">
    #date= print_date                       <div id="date"><%= print_date %></div>
    %p.address= current_user.address        <p class="address"><%= current_user.address %></p>
  .right.column                           </div>
    #email= current_user.email            <div class="right column">
    #bio= current_user.bio                  <div id="email"><%= current_user.email %></div>
                                            <div id="bio"><%= current_user.bio %></div>
                                          </div>
                                        </div>

                                                                      http://bit.ly/VzHwc
CSS
SASS
• CSS on steroids: variables, mixins, nested rules and
       math functions.

• Two different syntaxes: .SCSS (new) and .SASS (old)
• SCSS/SASS is compiled to CSS on the server side.
SCSS                            CSS
$blue: #3bbfce;                 .content {
$margin: 16px;                    color: #3bbfce;
                                }
.content{
  color: $blue;                 .content p {
  p {                             padding: 8px;
    padding: $margin / 2;         margin: 8px;
    margin: $margin / 2;          border-color: #3bbfce;
    border-color: $blue;        }
  }
}                                                   http://bit.ly/3wRpzR
LESS
• Very similar to SASS.
• Main difference is that it gives you a “client side”
   version. This means LESS code is transformed to CSS
   into the browser client using Javascript.

• It does have a server side version too.
• Fans of SASS often are haters of LESS and viceversa.
• Some discussion about SASS vs LESS:
   http://wrangl.com/sass-v-less


                                              http://bit.ly/12gGr0
JAVASCRIPT
jQuery
• Do I have to tell you what is jQuery
  about? :)
• Briefly:
  jQuery is a Javascript library to easily
  change and animate the DOM (HTML
  nodes).
• I would say it’s a must in every project.
                                    http://jquery.com/
jQuery Mobile
• Despite of its name, it is more about the
  layout (user interface) and a bit less about
  Javascript superpowers.
• Is a whole framework to develop web
  applications for mobile devices by using
  HTML5 features.
• By using Phonegap you can embed your
  web mobile app into a native mobile app.
                              http://jquerymobile.com/
CoffeeScript
•   Is an alternative syntax for Javascript.

•   Coffeescript files compile into Javascript.

•   Basically offers syntactic sugar for JS.

•   Is white space aware, i.e. indentation instead of curly braces
    everywhere.

    CoffeScript                        Javascript
    $ ->                               $(function() {
      $("body").html "Hello!"             $("body").html("Hello!");
                                       })




                                                    http://coffeescript.org/
Modernizr
• Is a Javascript library allowing you to use CSS3
  & HTML5 while maintaining control over
  unsupported browsers.
• Detects what features are supported by the
  user’s browser.
• If some features are missing you can still use
  them by using “polyfills” (JS scripts that imitate
  HTML5/CSS3 features for older browsers).

                               http://www.modernizr.com/docs/
Handlebars
      • Is a Javascript template system.
      • Lets you populate data from JS (for instance AJAX
           responses) into HTML without having to write the
           chunk of HTML into the JS code.

      • Extends Mustache template system.
TEMPLATE               JAvASCRIPT                          OUTPUT
<div class="entry">    var context = {                     <div class="entry">
  <h1>{{title}}</h1>     title: "My New Post",               <h1>My New Post</h1>
  <div class="body">     body: "This is my first post!"}     <div class="body">
    {{body}}           var html    = template(context);        This is my first post!
  </div>                                                     </div>
</div>                                                     </div>



                                                              http://handlebarsjs.com/
Backbone
• Is a JavaScript framework that allows you to
   structure your Javascript code in an MVC (Model,
   View, Controller) fashion.

• Instead of storing data in HTML data attributes,
   store them into JS Models.

• Views (HTML) change when models change.
• Using it together with Node.js (JS on the server
   side), you can share code between client and server,
   i.e. same models in both sides.


                                           http://bit.ly/dk9Eki
Spine
• Same idea than Backbone: MVC for Javascript
• It’s pretty light weight.
• Has a mobile extension (Spine Mobile), that can be
   combined with Phonegap to build “native” mobile
   apps.

• It’s written in CoffeeScript, so if you don’t know
   CoffeeScript it could be harder to use it.

• There is an O’Reilly book by the author of Spine
   http://oreil.ly/pbxy4I

                                            http://bit.ly/tozpso
HTML + CSS + JS
HTML5 Boilerplate
•   Gives you a starting point for a new web app.
•   Is a package that includes several useful things ready to use:
    •   CSS resets
    •   jQuery
    •   Modernizr
    •   Layout with HTML5 doctype
    •   Cross-browser compatibility (even IE6 with Chrome Frame)
    •   Mobile browser-optimization
    •   Google Analytics snippet
    •   .htaccess optimizations
    •   ....
                                                      http://bit.ly/8Xe4wy
Twitter Bootstrap
• Developed by Twitter’s programmers.
• Includes:
 • Grid system with support for Responsive Design.
 • CSS classes for buttons, forms, tables, icons,
     navigation bars, labels, badges, progress bars, etc.

  • Javascript UI widgets: modals, menu dropdowns,
     images slider, accordions, alerts, notifications, etc.

• Highly customizable using LESS.
                                               http://bit.ly/q2G9Mm
Zurb Foundation
•   Very similar to Twitter Bootstrap. Made by Zurb.

•   Zurb’s developers stand very hard for some relevant ideas:

    •   960 pixels designs are dead.

    •   Develop a specific mobile version of your site is painful,
        so you must go for Responsive Design.

    •   With a tool like Zurb Foundation you can do
        Rapid Prototyping in HTML5 (no more vector
        wireframes).
        http://foundation.zurb.com/prototyping.php
        http://www.youtube.com/watch?v=V2EjipWZ7co

                                                     http://bit.ly/p9rfyt
There are hundred
of tools like these.
Some of them are
even more complex
    and exotic.
Learning all of them
   is impossible.
Don’t be afraid of
trying new things.
Use the ones you feel
will help you out and
 let the hype aside.
Thanks for coming!
Ad

More Related Content

What's hot (20)

Html and css presentation
Html and css presentationHtml and css presentation
Html and css presentation
umesh patil
 
Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | Introduction
JohnTaieb
 
ppt of web development for diploma student
ppt of web development for diploma student ppt of web development for diploma student
ppt of web development for diploma student
Abhishekchauhan863165
 
Introduction to Bootstrap
Introduction to BootstrapIntroduction to Bootstrap
Introduction to Bootstrap
Ron Reiter
 
Bootstrap PPT by Mukesh
Bootstrap PPT by MukeshBootstrap PPT by Mukesh
Bootstrap PPT by Mukesh
Mukesh Kumar
 
Front-end development introduction (HTML, CSS). Part 1
Front-end development introduction (HTML, CSS). Part 1Front-end development introduction (HTML, CSS). Part 1
Front-end development introduction (HTML, CSS). Part 1
Oleksii Prohonnyi
 
Introduction to HTML5
Introduction to HTML5Introduction to HTML5
Introduction to HTML5
Gil Fink
 
Difference between-web-designing-and-web-development
Difference between-web-designing-and-web-developmentDifference between-web-designing-and-web-development
Difference between-web-designing-and-web-development
Global Media Insight
 
Introduction to HTML5
Introduction to HTML5Introduction to HTML5
Introduction to HTML5
IT Geeks
 
Web Development Presentation
Web Development PresentationWeb Development Presentation
Web Development Presentation
TurnToTech
 
Angular tutorial
Angular tutorialAngular tutorial
Angular tutorial
Rohit Gupta
 
Tech talk on Tailwind CSS
Tech talk on Tailwind CSSTech talk on Tailwind CSS
Tech talk on Tailwind CSS
Squareboat
 
Web development using javaScript, React js, Node js, HTML, CSS and SQL
Web development using javaScript, React js, Node js, HTML, CSS and SQLWeb development using javaScript, React js, Node js, HTML, CSS and SQL
Web development using javaScript, React js, Node js, HTML, CSS and SQL
Jayant Surana
 
Html5 tutorial for beginners
Html5 tutorial for beginnersHtml5 tutorial for beginners
Html5 tutorial for beginners
Singsys Pte Ltd
 
Ppt of web development
Ppt of web developmentPpt of web development
Ppt of web development
bethanygfair
 
Intro to Front End Frameworks
 Intro to Front End Frameworks Intro to Front End Frameworks
Intro to Front End Frameworks
Product School
 
Angular - Chapter 4 - Data and Event Handling
 Angular - Chapter 4 - Data and Event Handling Angular - Chapter 4 - Data and Event Handling
Angular - Chapter 4 - Data and Event Handling
WebStackAcademy
 
Html / CSS Presentation
Html / CSS PresentationHtml / CSS Presentation
Html / CSS Presentation
Shawn Calvert
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
Russ Weakley
 
Cascading Style Sheets (CSS) help
Cascading Style Sheets (CSS) helpCascading Style Sheets (CSS) help
Cascading Style Sheets (CSS) help
casestudyhelp
 
Html and css presentation
Html and css presentationHtml and css presentation
Html and css presentation
umesh patil
 
Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | Introduction
JohnTaieb
 
ppt of web development for diploma student
ppt of web development for diploma student ppt of web development for diploma student
ppt of web development for diploma student
Abhishekchauhan863165
 
Introduction to Bootstrap
Introduction to BootstrapIntroduction to Bootstrap
Introduction to Bootstrap
Ron Reiter
 
Bootstrap PPT by Mukesh
Bootstrap PPT by MukeshBootstrap PPT by Mukesh
Bootstrap PPT by Mukesh
Mukesh Kumar
 
Front-end development introduction (HTML, CSS). Part 1
Front-end development introduction (HTML, CSS). Part 1Front-end development introduction (HTML, CSS). Part 1
Front-end development introduction (HTML, CSS). Part 1
Oleksii Prohonnyi
 
Introduction to HTML5
Introduction to HTML5Introduction to HTML5
Introduction to HTML5
Gil Fink
 
Difference between-web-designing-and-web-development
Difference between-web-designing-and-web-developmentDifference between-web-designing-and-web-development
Difference between-web-designing-and-web-development
Global Media Insight
 
Introduction to HTML5
Introduction to HTML5Introduction to HTML5
Introduction to HTML5
IT Geeks
 
Web Development Presentation
Web Development PresentationWeb Development Presentation
Web Development Presentation
TurnToTech
 
Angular tutorial
Angular tutorialAngular tutorial
Angular tutorial
Rohit Gupta
 
Tech talk on Tailwind CSS
Tech talk on Tailwind CSSTech talk on Tailwind CSS
Tech talk on Tailwind CSS
Squareboat
 
Web development using javaScript, React js, Node js, HTML, CSS and SQL
Web development using javaScript, React js, Node js, HTML, CSS and SQLWeb development using javaScript, React js, Node js, HTML, CSS and SQL
Web development using javaScript, React js, Node js, HTML, CSS and SQL
Jayant Surana
 
Html5 tutorial for beginners
Html5 tutorial for beginnersHtml5 tutorial for beginners
Html5 tutorial for beginners
Singsys Pte Ltd
 
Ppt of web development
Ppt of web developmentPpt of web development
Ppt of web development
bethanygfair
 
Intro to Front End Frameworks
 Intro to Front End Frameworks Intro to Front End Frameworks
Intro to Front End Frameworks
Product School
 
Angular - Chapter 4 - Data and Event Handling
 Angular - Chapter 4 - Data and Event Handling Angular - Chapter 4 - Data and Event Handling
Angular - Chapter 4 - Data and Event Handling
WebStackAcademy
 
Html / CSS Presentation
Html / CSS PresentationHtml / CSS Presentation
Html / CSS Presentation
Shawn Calvert
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
Russ Weakley
 
Cascading Style Sheets (CSS) help
Cascading Style Sheets (CSS) helpCascading Style Sheets (CSS) help
Cascading Style Sheets (CSS) help
casestudyhelp
 

Similar to Front-End Frameworks: a quick overview (20)

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
Erin M. Kidwell
 
Java script
Java scriptJava script
Java script
umesh patil
 
Java script
Java scriptJava script
Java script
sanjay joshi
 
About Best friends - HTML, CSS and JS
About Best friends - HTML, CSS and JSAbout Best friends - HTML, CSS and JS
About Best friends - HTML, CSS and JS
Naga Harish M
 
It's a Mod World - A Practical Guide to Rocking Modernizr
It's a Mod World - A Practical Guide to Rocking ModernizrIt's a Mod World - A Practical Guide to Rocking Modernizr
It's a Mod World - A Practical Guide to Rocking Modernizr
Michael Enslow
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Review
netc2012
 
GR8Conf 2011: Building Progressive UIs with Grails
GR8Conf 2011: Building Progressive UIs with GrailsGR8Conf 2011: Building Progressive UIs with Grails
GR8Conf 2011: Building Progressive UIs with Grails
GR8Conf
 
Intro JavaScript
Intro JavaScriptIntro JavaScript
Intro JavaScript
koppenolski
 
Survive JavaScript - Strategies and Tricks
Survive JavaScript - Strategies and TricksSurvive JavaScript - Strategies and Tricks
Survive JavaScript - Strategies and Tricks
Juho Vepsäläinen
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. Control
Christian Heilmann
 
GDG-USAR Tech winter break 2024 USAR.pdf
GDG-USAR Tech winter break 2024 USAR.pdfGDG-USAR Tech winter break 2024 USAR.pdf
GDG-USAR Tech winter break 2024 USAR.pdf
raiaryan174
 
Intro to mobile web application development
Intro to mobile web application developmentIntro to mobile web application development
Intro to mobile web application development
zonathen
 
Introduction to Jquery
Introduction to JqueryIntroduction to Jquery
Introduction to Jquery
Gurpreet singh
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX Designers
Ashlimarie
 
Making Of PHP Based Web Application
Making Of PHP Based Web ApplicationMaking Of PHP Based Web Application
Making Of PHP Based Web Application
Sachin Walvekar
 
Webpack and Web Performance Optimization
Webpack and Web Performance OptimizationWebpack and Web Performance Optimization
Webpack and Web Performance Optimization
Chen-Tien Tsai
 
Untangling the web - fall2017 - class 4
Untangling the web - fall2017 - class 4Untangling the web - fall2017 - class 4
Untangling the web - fall2017 - class 4
Derek Jacoby
 
Ease into HTML5 and CSS3
Ease into HTML5 and CSS3Ease into HTML5 and CSS3
Ease into HTML5 and CSS3
Brian Moon
 
Html5 public
Html5 publicHtml5 public
Html5 public
doodlemoonch
 
Bootstrap [part 1]
Bootstrap [part 1]Bootstrap [part 1]
Bootstrap [part 1]
Ghanshyam Patel
 
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
Erin M. Kidwell
 
About Best friends - HTML, CSS and JS
About Best friends - HTML, CSS and JSAbout Best friends - HTML, CSS and JS
About Best friends - HTML, CSS and JS
Naga Harish M
 
It's a Mod World - A Practical Guide to Rocking Modernizr
It's a Mod World - A Practical Guide to Rocking ModernizrIt's a Mod World - A Practical Guide to Rocking Modernizr
It's a Mod World - A Practical Guide to Rocking Modernizr
Michael Enslow
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Review
netc2012
 
GR8Conf 2011: Building Progressive UIs with Grails
GR8Conf 2011: Building Progressive UIs with GrailsGR8Conf 2011: Building Progressive UIs with Grails
GR8Conf 2011: Building Progressive UIs with Grails
GR8Conf
 
Intro JavaScript
Intro JavaScriptIntro JavaScript
Intro JavaScript
koppenolski
 
Survive JavaScript - Strategies and Tricks
Survive JavaScript - Strategies and TricksSurvive JavaScript - Strategies and Tricks
Survive JavaScript - Strategies and Tricks
Juho Vepsäläinen
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. Control
Christian Heilmann
 
GDG-USAR Tech winter break 2024 USAR.pdf
GDG-USAR Tech winter break 2024 USAR.pdfGDG-USAR Tech winter break 2024 USAR.pdf
GDG-USAR Tech winter break 2024 USAR.pdf
raiaryan174
 
Intro to mobile web application development
Intro to mobile web application developmentIntro to mobile web application development
Intro to mobile web application development
zonathen
 
Introduction to Jquery
Introduction to JqueryIntroduction to Jquery
Introduction to Jquery
Gurpreet singh
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX Designers
Ashlimarie
 
Making Of PHP Based Web Application
Making Of PHP Based Web ApplicationMaking Of PHP Based Web Application
Making Of PHP Based Web Application
Sachin Walvekar
 
Webpack and Web Performance Optimization
Webpack and Web Performance OptimizationWebpack and Web Performance Optimization
Webpack and Web Performance Optimization
Chen-Tien Tsai
 
Untangling the web - fall2017 - class 4
Untangling the web - fall2017 - class 4Untangling the web - fall2017 - class 4
Untangling the web - fall2017 - class 4
Derek Jacoby
 
Ease into HTML5 and CSS3
Ease into HTML5 and CSS3Ease into HTML5 and CSS3
Ease into HTML5 and CSS3
Brian Moon
 
Ad

More from Diacode (13)

CI/CD with Kubernetes, Helm & Wercker (#madScalability)
CI/CD with Kubernetes, Helm & Wercker (#madScalability)CI/CD with Kubernetes, Helm & Wercker (#madScalability)
CI/CD with Kubernetes, Helm & Wercker (#madScalability)
Diacode
 
Phoenix for Rails Devs
Phoenix for Rails DevsPhoenix for Rails Devs
Phoenix for Rails Devs
Diacode
 
Introduction to Elixir
Introduction to ElixirIntroduction to Elixir
Introduction to Elixir
Diacode
 
Startup nomads
Startup nomadsStartup nomads
Startup nomads
Diacode
 
Ruby on Rails & TDD con RSpec
Ruby on Rails & TDD con RSpecRuby on Rails & TDD con RSpec
Ruby on Rails & TDD con RSpec
Diacode
 
Hacking your bank with Ruby and reverse engineering (Madrid.rb)
Hacking your bank with Ruby and reverse engineering (Madrid.rb)Hacking your bank with Ruby and reverse engineering (Madrid.rb)
Hacking your bank with Ruby and reverse engineering (Madrid.rb)
Diacode
 
TLKR.io @ Betabeers Madrid
TLKR.io @ Betabeers MadridTLKR.io @ Betabeers Madrid
TLKR.io @ Betabeers Madrid
Diacode
 
Métricas para hacer crecer tu proyecto
Métricas para hacer crecer tu proyectoMétricas para hacer crecer tu proyecto
Métricas para hacer crecer tu proyecto
Diacode
 
Métricas para hacer crecer tu proyecto
Métricas para hacer crecer tu proyectoMétricas para hacer crecer tu proyecto
Métricas para hacer crecer tu proyecto
Diacode
 
Presentación de Kogi
Presentación de KogiPresentación de Kogi
Presentación de Kogi
Diacode
 
Educación: The Next Big Thing
Educación: The Next Big ThingEducación: The Next Big Thing
Educación: The Next Big Thing
Diacode
 
Taller de Introducción a Ruby on Rails (2ª parte)
Taller de Introducción a Ruby on Rails (2ª parte)Taller de Introducción a Ruby on Rails (2ª parte)
Taller de Introducción a Ruby on Rails (2ª parte)
Diacode
 
Taller de Introducción a Ruby on Rails
Taller de Introducción a Ruby on RailsTaller de Introducción a Ruby on Rails
Taller de Introducción a Ruby on Rails
Diacode
 
CI/CD with Kubernetes, Helm & Wercker (#madScalability)
CI/CD with Kubernetes, Helm & Wercker (#madScalability)CI/CD with Kubernetes, Helm & Wercker (#madScalability)
CI/CD with Kubernetes, Helm & Wercker (#madScalability)
Diacode
 
Phoenix for Rails Devs
Phoenix for Rails DevsPhoenix for Rails Devs
Phoenix for Rails Devs
Diacode
 
Introduction to Elixir
Introduction to ElixirIntroduction to Elixir
Introduction to Elixir
Diacode
 
Startup nomads
Startup nomadsStartup nomads
Startup nomads
Diacode
 
Ruby on Rails & TDD con RSpec
Ruby on Rails & TDD con RSpecRuby on Rails & TDD con RSpec
Ruby on Rails & TDD con RSpec
Diacode
 
Hacking your bank with Ruby and reverse engineering (Madrid.rb)
Hacking your bank with Ruby and reverse engineering (Madrid.rb)Hacking your bank with Ruby and reverse engineering (Madrid.rb)
Hacking your bank with Ruby and reverse engineering (Madrid.rb)
Diacode
 
TLKR.io @ Betabeers Madrid
TLKR.io @ Betabeers MadridTLKR.io @ Betabeers Madrid
TLKR.io @ Betabeers Madrid
Diacode
 
Métricas para hacer crecer tu proyecto
Métricas para hacer crecer tu proyectoMétricas para hacer crecer tu proyecto
Métricas para hacer crecer tu proyecto
Diacode
 
Métricas para hacer crecer tu proyecto
Métricas para hacer crecer tu proyectoMétricas para hacer crecer tu proyecto
Métricas para hacer crecer tu proyecto
Diacode
 
Presentación de Kogi
Presentación de KogiPresentación de Kogi
Presentación de Kogi
Diacode
 
Educación: The Next Big Thing
Educación: The Next Big ThingEducación: The Next Big Thing
Educación: The Next Big Thing
Diacode
 
Taller de Introducción a Ruby on Rails (2ª parte)
Taller de Introducción a Ruby on Rails (2ª parte)Taller de Introducción a Ruby on Rails (2ª parte)
Taller de Introducción a Ruby on Rails (2ª parte)
Diacode
 
Taller de Introducción a Ruby on Rails
Taller de Introducción a Ruby on RailsTaller de Introducción a Ruby on Rails
Taller de Introducción a Ruby on Rails
Diacode
 
Ad

Recently uploaded (20)

Buckeye Dreamin' 2023: De-fogging Debug Logs
Buckeye Dreamin' 2023: De-fogging Debug LogsBuckeye Dreamin' 2023: De-fogging Debug Logs
Buckeye Dreamin' 2023: De-fogging Debug Logs
Lynda Kane
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Leading AI Innovation As A Product Manager - Michael Jidael
Leading AI Innovation As A Product Manager - Michael JidaelLeading AI Innovation As A Product Manager - Michael Jidael
Leading AI Innovation As A Product Manager - Michael Jidael
Michael Jidael
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Datastucture-Unit 4-Linked List Presentation.pptx
Datastucture-Unit 4-Linked List Presentation.pptxDatastucture-Unit 4-Linked List Presentation.pptx
Datastucture-Unit 4-Linked List Presentation.pptx
kaleeswaric3
 
Asthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdfAsthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdf
VanessaRaudez
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018
#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018
#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018
Lynda Kane
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Automation Hour 1/28/2022: Capture User Feedback from Anywhere
Automation Hour 1/28/2022: Capture User Feedback from AnywhereAutomation Hour 1/28/2022: Capture User Feedback from Anywhere
Automation Hour 1/28/2022: Capture User Feedback from Anywhere
Lynda Kane
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Rock, Paper, Scissors: An Apex Map Learning Journey
Rock, Paper, Scissors: An Apex Map Learning JourneyRock, Paper, Scissors: An Apex Map Learning Journey
Rock, Paper, Scissors: An Apex Map Learning Journey
Lynda Kane
 
Hands On: Create a Lightning Aura Component with force:RecordData
Hands On: Create a Lightning Aura Component with force:RecordDataHands On: Create a Lightning Aura Component with force:RecordData
Hands On: Create a Lightning Aura Component with force:RecordData
Lynda Kane
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Buckeye Dreamin' 2023: De-fogging Debug Logs
Buckeye Dreamin' 2023: De-fogging Debug LogsBuckeye Dreamin' 2023: De-fogging Debug Logs
Buckeye Dreamin' 2023: De-fogging Debug Logs
Lynda Kane
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Leading AI Innovation As A Product Manager - Michael Jidael
Leading AI Innovation As A Product Manager - Michael JidaelLeading AI Innovation As A Product Manager - Michael Jidael
Leading AI Innovation As A Product Manager - Michael Jidael
Michael Jidael
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Datastucture-Unit 4-Linked List Presentation.pptx
Datastucture-Unit 4-Linked List Presentation.pptxDatastucture-Unit 4-Linked List Presentation.pptx
Datastucture-Unit 4-Linked List Presentation.pptx
kaleeswaric3
 
Asthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdfAsthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdf
VanessaRaudez
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018
#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018
#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018
Lynda Kane
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Automation Hour 1/28/2022: Capture User Feedback from Anywhere
Automation Hour 1/28/2022: Capture User Feedback from AnywhereAutomation Hour 1/28/2022: Capture User Feedback from Anywhere
Automation Hour 1/28/2022: Capture User Feedback from Anywhere
Lynda Kane
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Rock, Paper, Scissors: An Apex Map Learning Journey
Rock, Paper, Scissors: An Apex Map Learning JourneyRock, Paper, Scissors: An Apex Map Learning Journey
Rock, Paper, Scissors: An Apex Map Learning Journey
Lynda Kane
 
Hands On: Create a Lightning Aura Component with force:RecordData
Hands On: Create a Lightning Aura Component with force:RecordDataHands On: Create a Lightning Aura Component with force:RecordData
Hands On: Create a Lightning Aura Component with force:RecordData
Lynda Kane
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 

Front-End Frameworks: a quick overview

  • 1. Front-End Frameworks: a quick overview Javier Cuevas @javier_dev Diacode.com
  • 2. Front-End Development HTML CSS Javascript
  • 3. Frameworks Toolkits Libraries Front-End Grid systems (CSS) Boilerplates (HTML) Syntatic Sugar ... Multiple names and approaches. Same idea: make front-end development easier, faster, stronger.
  • 4. Why do we need Front-End Superpowers? • HTML is ugly and old. • Javascript is ugly and old. • CSS is not that ugly but is totally Anti-DRY. • User Interfaces are each day more complex. • Cross-browser compatibility. • Device Heterogeneity: tablets, smartphones, desktops... A jungle of different screens.
  • 6. HAML • Syntatic sugar for HTML and ERB (embedded Ruby). • HAML is for Ruby, but there are equivalents for other languages (SHPAML, GHRML). • White space aware syntax. HAML HTML #profile <div id="profile"> .left.column <div class="left column"> #date= print_date <div id="date"><%= print_date %></div> %p.address= current_user.address <p class="address"><%= current_user.address %></p> .right.column </div> #email= current_user.email <div class="right column"> #bio= current_user.bio <div id="email"><%= current_user.email %></div> <div id="bio"><%= current_user.bio %></div> </div> </div> http://bit.ly/VzHwc
  • 7. CSS
  • 8. SASS • CSS on steroids: variables, mixins, nested rules and math functions. • Two different syntaxes: .SCSS (new) and .SASS (old) • SCSS/SASS is compiled to CSS on the server side. SCSS CSS $blue: #3bbfce; .content { $margin: 16px; color: #3bbfce; } .content{ color: $blue; .content p { p { padding: 8px; padding: $margin / 2; margin: 8px; margin: $margin / 2; border-color: #3bbfce; border-color: $blue; } } } http://bit.ly/3wRpzR
  • 9. LESS • Very similar to SASS. • Main difference is that it gives you a “client side” version. This means LESS code is transformed to CSS into the browser client using Javascript. • It does have a server side version too. • Fans of SASS often are haters of LESS and viceversa. • Some discussion about SASS vs LESS: http://wrangl.com/sass-v-less http://bit.ly/12gGr0
  • 11. jQuery • Do I have to tell you what is jQuery about? :) • Briefly: jQuery is a Javascript library to easily change and animate the DOM (HTML nodes). • I would say it’s a must in every project. http://jquery.com/
  • 12. jQuery Mobile • Despite of its name, it is more about the layout (user interface) and a bit less about Javascript superpowers. • Is a whole framework to develop web applications for mobile devices by using HTML5 features. • By using Phonegap you can embed your web mobile app into a native mobile app. http://jquerymobile.com/
  • 13. CoffeeScript • Is an alternative syntax for Javascript. • Coffeescript files compile into Javascript. • Basically offers syntactic sugar for JS. • Is white space aware, i.e. indentation instead of curly braces everywhere. CoffeScript Javascript $ -> $(function() { $("body").html "Hello!" $("body").html("Hello!"); }) http://coffeescript.org/
  • 14. Modernizr • Is a Javascript library allowing you to use CSS3 & HTML5 while maintaining control over unsupported browsers. • Detects what features are supported by the user’s browser. • If some features are missing you can still use them by using “polyfills” (JS scripts that imitate HTML5/CSS3 features for older browsers). http://www.modernizr.com/docs/
  • 15. Handlebars • Is a Javascript template system. • Lets you populate data from JS (for instance AJAX responses) into HTML without having to write the chunk of HTML into the JS code. • Extends Mustache template system. TEMPLATE JAvASCRIPT OUTPUT <div class="entry"> var context = { <div class="entry"> <h1>{{title}}</h1> title: "My New Post", <h1>My New Post</h1> <div class="body"> body: "This is my first post!"} <div class="body"> {{body}} var html = template(context); This is my first post! </div> </div> </div> </div> http://handlebarsjs.com/
  • 16. Backbone • Is a JavaScript framework that allows you to structure your Javascript code in an MVC (Model, View, Controller) fashion. • Instead of storing data in HTML data attributes, store them into JS Models. • Views (HTML) change when models change. • Using it together with Node.js (JS on the server side), you can share code between client and server, i.e. same models in both sides. http://bit.ly/dk9Eki
  • 17. Spine • Same idea than Backbone: MVC for Javascript • It’s pretty light weight. • Has a mobile extension (Spine Mobile), that can be combined with Phonegap to build “native” mobile apps. • It’s written in CoffeeScript, so if you don’t know CoffeeScript it could be harder to use it. • There is an O’Reilly book by the author of Spine http://oreil.ly/pbxy4I http://bit.ly/tozpso
  • 18. HTML + CSS + JS
  • 19. HTML5 Boilerplate • Gives you a starting point for a new web app. • Is a package that includes several useful things ready to use: • CSS resets • jQuery • Modernizr • Layout with HTML5 doctype • Cross-browser compatibility (even IE6 with Chrome Frame) • Mobile browser-optimization • Google Analytics snippet • .htaccess optimizations • .... http://bit.ly/8Xe4wy
  • 20. Twitter Bootstrap • Developed by Twitter’s programmers. • Includes: • Grid system with support for Responsive Design. • CSS classes for buttons, forms, tables, icons, navigation bars, labels, badges, progress bars, etc. • Javascript UI widgets: modals, menu dropdowns, images slider, accordions, alerts, notifications, etc. • Highly customizable using LESS. http://bit.ly/q2G9Mm
  • 21. Zurb Foundation • Very similar to Twitter Bootstrap. Made by Zurb. • Zurb’s developers stand very hard for some relevant ideas: • 960 pixels designs are dead. • Develop a specific mobile version of your site is painful, so you must go for Responsive Design. • With a tool like Zurb Foundation you can do Rapid Prototyping in HTML5 (no more vector wireframes). http://foundation.zurb.com/prototyping.php http://www.youtube.com/watch?v=V2EjipWZ7co http://bit.ly/p9rfyt
  • 22. There are hundred of tools like these.
  • 23. Some of them are even more complex and exotic.
  • 24. Learning all of them is impossible.
  • 25. Don’t be afraid of trying new things.
  • 26. Use the ones you feel will help you out and let the hype aside.