Movatterモバイル変換


[0]ホーム

URL:


Uploaded bymwrather
PDF, PPTX8,073 views

Modern Front-End Development

The presentation by Matthew Wrather at Drupal Camp LA 2013 covers the evolution of front-end development and highlights various tools including Sass for CSS preprocessing. Challenges such as managing numerous libraries and script tags, along with optimizing workflow using tools like Grunt, are discussed. The speaker emphasizes the importance of modern front-end frameworks and their utility in streamlining development processes.

Embed presentation

Download as PDF, PPTX
MODERN FRONT-ENDDEVELOPMENTDrupal Camp LA 2013!Matthew WratherWrather Creative
ABOUT ME• FreelanceDrupal Developer
and Web Generalist since 1997• Drupal• Mostsince 4.6Definitely Available for Work!
matt@wrathercreative.com
(510) WRA-THER
AGENDA1. Overview of the history of front-end development2. Review of some awesome tools3. The part you all came to see
Front-endDeveloper
SASS(and LESS, Stylus, etc.)!http://sass-lang.com
VARIABLES$blue: #3bbfce;
$margin: 16px;
/* CSS */


.content-navigation {
border-color: $blue;
color:
darken($blue, 9%);
}

.border {
padding: $margin / 2;
margin: $margin / 2;
border-color: $blue;
}
.content-navigation {
border-color: #3bbfce;
color: #2b9eab;
}

.border {
padding: 8px;
margin: 8px;
border-color: #3bbfce;
}
MIXINStable.hl {
margin: 2em 0;
td.ln {
text-align: right;
}
}
li {
font: {
family: serif;
weight: bold;
size: 1.2em;
}
}
/* CSS */

table.hl {
margin: 2em 0;
}
table.hl td.ln {
text-align: right;
}

li {
font-family: serif;
font-weight: bold;
font-size: 1.2em;
}
NESTING/EXTENDING@mixin left($dist) {
float: left;
margin-left: $dist;
}
#data {
float: left;
margin-left: 10px;
}#data {
@include left(10px);
}
error {
border: 1px #f00;
background: #fdd;
}
.badError {
@extend .error;
border-width: 3px;
}
.error, .badError {
border: 1px #f00;
background: #fdd;
}
.badError {
border-width: 3px;
}
COMPASS• Commonlyused mixins and @imports, including:• Typography(vertical rhythm with auto-calculation
of line-height and margin)• CSS3with vendor prefixes• Sprites(though honestly, we’re using icon fonts, right?)
FRONT-END FRAMEWORKS• Pre-build• Built-inCSS and JS to address 80% of use-cases grid systems (fixed/fluid)• Goodtype defaults, buttons, pretty forms, tables, codestyles…• Commonly-usedelements like nav bars, menus withdropdowns, thumbnail grids, etc.• Javascriptto power interactivity (menus, rotators)
FIRST PROBLEM:TOO MANY LIBRARIES• Howdo you get jQuery?• Visitthe website, click to download the package, open thezip, navigate, find the file that you want, copy it into thecodebase? Hell no!• Remember• Whatthe URL and wget? Hell no!about vendor libraries that have other vendor librariesas dependencies? Remember them? Hell no!
NEXT PROBLEM:TOO MANY <SCRIPT> TAGS• Sonow we’ve got all these things installed.• That’sa lot of scripts. Especially since we’re gooddevelopers and put our Backbone models, collections, andviews in separate files.• And• So…• Hellwe have to load them all in to the page.um…a lot of script tags? In a particular order?no!
<script data-main="scripts/main"src="scripts/require.js"></script>
// main.js!!index.htmlrequire(!["helper/util"],!function(util) {!!!scripts/main.jsrequire.js!helper/util.js// This function is called when!// scripts/helper/util.js!// is loaded.!!// If util.js calls define(),!// then this function is not fired!// until util's dependencies load. !!// The util argument will hold!// the module value for!// "helper/util".!!});
NEXT PROBLEM:TOO MANY THINGS TO DO• Wecompile SASS and squash it down to one script• Weoptimize images• Wecompile any Coffeescript to JS • Welint the javascript using jsHint to catch problems• Werun any automated tests• Weconcatenate and minify scripts and rewrite the scripttags in the HTML• Werun LiveReload (which requires a JS snippet on dev)
// gruntfile!!module.exports = function(grunt) {!// Project configuration.grunt.initConfig({pkg: grunt.file.readJSON('package.json'),uglify: {options: {banner: '/*! <%= pkg.name %> */n'},build: {src: 'src/<%= pkg.name %>.js',dest: 'build/<%= pkg.name %>.min.js'}}});package.json(used by npm)!Gruntfile!// Load the plugin that provides// the "uglify" task.grunt.loadNpmTasks('grunt-contrib-uglify');!// Default task(s).grunt.registerTask('default', ['uglify']);!};
NEXT PROBLEM:TOO MANY TOOLS!
One Toolto Rule The All
$ YO WEBAPP$%% Gruntfile.js$%% bower.json$%% node_modules/$%% package.json$%% test&$%% index.html&$%% lib/&'%% spec/$%% styles/&  '%% main.scss'%% app!$%% index.html$%% 404.html$%% favicon.ico$%% robots.txt
$%% bower_components/&   $%% jquery/&   $%% modernizr/&   '%% sass-bootstrap/$%% images/'%% scripts/   $%% app.js   $%% hello.coffee   $%% main.js   '%% vendor/
$ GRUNT BUILD$%% index.html$%% 404.html$%% robots.txt$%% favicon.ico$%% images&   $%% 5d462625.glyphicons-halflings-white.png&   '%% 9cc6609b.glyphicons-halflings.png$%% scripts&   $%% 349a65db.main.js&   '%% vendor&  '%% f7f27360.modernizr.js'%% styles'%% c04706fe.main.css
DEMO
THANK YOU!Matthew Wrather • @mwrathermatt@wrathercreative.com • (510) WRA-THER

Recommended

PDF
Front End Tooling and Performance - Codeaholics HK 2015
PDF
Front End Development - Beyond Javascript (Robin Cannon)
PDF
A modern front end development workflow for Magnolia at Atlassian
KEY
Why You Need a Front End Developer
PDF
Front End Best Practices
PPTX
Basics of Front End Web Dev PowerPoint
PDF
Front-End Frameworks: a quick overview
PPTX
HTML CSS and Web Development
PDF
Understand front end developer
PPTX
Doing More with LESS for CSS
PDF
Html for beginners
PDF
Responsive Web Design: Clever Tips and Techniques
KEY
HTML CSS & Javascript
PDF
Responsive & Responsible Web Design in DNN
PPTX
Word press development for non developers
PDF
How to use CSS3 in WordPress
KEY
What is Object Oriented CSS?
PDF
Bootstrap 3 Basic - Bangkok WordPress Meetup
KEY
It's a Mod World - A Practical Guide to Rocking Modernizr
PDF
Using Core Themes in Drupal 8
PDF
ActiveDOM
PPTX
iPhone Web Applications: HTML5, CSS3 & dev tips for iPhone development
PDF
Responsive Websites
PDF
Component Driven Design and Development
PDF
Introduction to web development
PDF
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
PDF
Web dev syllabus
PPT
Please dont touch-3.6-jsday
PDF
HTML, CSS & Javascript Architecture (extended version) - Jan Kraus
PPTX
Beyond DOMReady: Ultra High-Performance Javascript

More Related Content

PDF
Front End Tooling and Performance - Codeaholics HK 2015
PDF
Front End Development - Beyond Javascript (Robin Cannon)
PDF
A modern front end development workflow for Magnolia at Atlassian
KEY
Why You Need a Front End Developer
PDF
Front End Best Practices
PPTX
Basics of Front End Web Dev PowerPoint
PDF
Front-End Frameworks: a quick overview
PPTX
HTML CSS and Web Development
Front End Tooling and Performance - Codeaholics HK 2015
Front End Development - Beyond Javascript (Robin Cannon)
A modern front end development workflow for Magnolia at Atlassian
Why You Need a Front End Developer
Front End Best Practices
Basics of Front End Web Dev PowerPoint
Front-End Frameworks: a quick overview
HTML CSS and Web Development

What's hot

PDF
Understand front end developer
PPTX
Doing More with LESS for CSS
PDF
Html for beginners
PDF
Responsive Web Design: Clever Tips and Techniques
KEY
HTML CSS & Javascript
PDF
Responsive & Responsible Web Design in DNN
PPTX
Word press development for non developers
PDF
How to use CSS3 in WordPress
KEY
What is Object Oriented CSS?
PDF
Bootstrap 3 Basic - Bangkok WordPress Meetup
KEY
It's a Mod World - A Practical Guide to Rocking Modernizr
PDF
Using Core Themes in Drupal 8
PDF
ActiveDOM
PPTX
iPhone Web Applications: HTML5, CSS3 & dev tips for iPhone development
PDF
Responsive Websites
PDF
Component Driven Design and Development
PDF
Introduction to web development
PDF
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
PDF
Web dev syllabus
PPT
Please dont touch-3.6-jsday
Understand front end developer
Doing More with LESS for CSS
Html for beginners
Responsive Web Design: Clever Tips and Techniques
HTML CSS & Javascript
Responsive & Responsible Web Design in DNN
Word press development for non developers
How to use CSS3 in WordPress
What is Object Oriented CSS?
Bootstrap 3 Basic - Bangkok WordPress Meetup
It's a Mod World - A Practical Guide to Rocking Modernizr
Using Core Themes in Drupal 8
ActiveDOM
iPhone Web Applications: HTML5, CSS3 & dev tips for iPhone development
Responsive Websites
Component Driven Design and Development
Introduction to web development
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
Web dev syllabus
Please dont touch-3.6-jsday

Similar to Modern Front-End Development

PDF
HTML, CSS & Javascript Architecture (extended version) - Jan Kraus
PPTX
Beyond DOMReady: Ultra High-Performance Javascript
PDF
Web development - technologies and tools
PDF
Front End Workflow
PDF
Architektura html, css i javascript - Jan Kraus
PDF
World is changed. i feel it in the front end
PDF
Everything is Awesome - Cutting the Corners off the Web
PPT
Intro to-html-backbone
ODP
What grunt?
PDF
Tooling, theming, made easy
PDF
Real life-coffeescript
PDF
Grunt.js and Yeoman, Continous Integration
PPTX
Frontend Workflow
PDF
Optimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
PDF
Npm scripts
PPTX
How NOT to get lost in the current JavaScript landscape
PDF
JLPDevs - Optimization Tooling for Modern Web App Development
PDF
Web Projects: From Theory To Practice
PDF
Once upon a time, there were css, js and server-side rendering
KEY
Efficient theming in Drupal
HTML, CSS & Javascript Architecture (extended version) - Jan Kraus
Beyond DOMReady: Ultra High-Performance Javascript
Web development - technologies and tools
Front End Workflow
Architektura html, css i javascript - Jan Kraus
World is changed. i feel it in the front end
Everything is Awesome - Cutting the Corners off the Web
Intro to-html-backbone
What grunt?
Tooling, theming, made easy
Real life-coffeescript
Grunt.js and Yeoman, Continous Integration
Frontend Workflow
Optimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Npm scripts
How NOT to get lost in the current JavaScript landscape
JLPDevs - Optimization Tooling for Modern Web App Development
Web Projects: From Theory To Practice
Once upon a time, there were css, js and server-side rendering
Efficient theming in Drupal

Recently uploaded

PDF
The year in review - MarvelClient in 2025
PPTX
cybercrime in Information security .pptx
PDF
Usage Control for Process Discovery through a Trusted Execution Environment
PPTX
AI's Impact on Cybersecurity - Challenges and Opportunities
PDF
Decoding the DNA: The Digital Networks Act, the Open Internet, and IP interco...
PPTX
Cloud-and-AI-Platform-FY26-Partner-Playbook.pptx
PDF
Session 1 - Solving Semi-Structured Documents with Document Understanding
PDF
December Patch Tuesday
 
PDF
Greetings All Students Update 3 by Mia Corp
PPTX
From Backup to Resilience: How MSPs Are Preparing for 2026
 
PDF
Unser Jahresrückblick – MarvelClient in 2025
PPTX
Chapter 3 Introduction to number system.pptx
PDF
The major tech developments for 2026 by Pluralsight, a research and training ...
PDF
Day 1 - Cloud Security Strategy and Planning ~ 2nd Sight Lab ~ Cloud Security...
PPTX
Cybersecurity Best Practices - Step by Step guidelines
PPTX
Building Cyber Resilience for 2026: Best Practices for a Secure, AI-Driven Bu...
PDF
Day 5 - Red Team + Blue Team in the Cloud - 2nd Sight Lab Cloud Security Class
PDF
Accelerating Responsible AI Adoption in Public Sector and Private Organizations.
PPTX
Cybercrime in the Digital Age: Risks, Impact & Protection
PDF
Digit Expo 2025 - EICC Edinburgh 27th November
The year in review - MarvelClient in 2025
cybercrime in Information security .pptx
Usage Control for Process Discovery through a Trusted Execution Environment
AI's Impact on Cybersecurity - Challenges and Opportunities
Decoding the DNA: The Digital Networks Act, the Open Internet, and IP interco...
Cloud-and-AI-Platform-FY26-Partner-Playbook.pptx
Session 1 - Solving Semi-Structured Documents with Document Understanding
December Patch Tuesday
 
Greetings All Students Update 3 by Mia Corp
From Backup to Resilience: How MSPs Are Preparing for 2026
 
Unser Jahresrückblick – MarvelClient in 2025
Chapter 3 Introduction to number system.pptx
The major tech developments for 2026 by Pluralsight, a research and training ...
Day 1 - Cloud Security Strategy and Planning ~ 2nd Sight Lab ~ Cloud Security...
Cybersecurity Best Practices - Step by Step guidelines
Building Cyber Resilience for 2026: Best Practices for a Secure, AI-Driven Bu...
Day 5 - Red Team + Blue Team in the Cloud - 2nd Sight Lab Cloud Security Class
Accelerating Responsible AI Adoption in Public Sector and Private Organizations.
Cybercrime in the Digital Age: Risks, Impact & Protection
Digit Expo 2025 - EICC Edinburgh 27th November

Modern Front-End Development

  • 1.
    MODERN FRONT-ENDDEVELOPMENTDrupal CampLA 2013!Matthew WratherWrather Creative
  • 2.
    ABOUT ME• FreelanceDrupalDeveloper
and Web Generalist since 1997• Drupal• Mostsince 4.6Definitely Available for Work!
matt@wrathercreative.com
(510) WRA-THER
  • 3.
    AGENDA1. Overview ofthe history of front-end development2. Review of some awesome tools3. The part you all came to see
  • 4.
  • 5.
    SASS(and LESS, Stylus,etc.)!http://sass-lang.com
  • 6.
    VARIABLES$blue: #3bbfce;
$margin: 16px;
/*CSS */


.content-navigation {
border-color: $blue;
color:
darken($blue, 9%);
}

.border {
padding: $margin / 2;
margin: $margin / 2;
border-color: $blue;
}
.content-navigation {
border-color: #3bbfce;
color: #2b9eab;
}

.border {
padding: 8px;
margin: 8px;
border-color: #3bbfce;
}
  • 7.
    MIXINStable.hl {
margin: 2em0;
td.ln {
text-align: right;
}
}
li {
font: {
family: serif;
weight: bold;
size: 1.2em;
}
}
/* CSS */

table.hl {
margin: 2em 0;
}
table.hl td.ln {
text-align: right;
}

li {
font-family: serif;
font-weight: bold;
font-size: 1.2em;
}
  • 8.
    NESTING/EXTENDING@mixin left($dist) {
float:left;
margin-left: $dist;
}
#data {
float: left;
margin-left: 10px;
}#data {
@include left(10px);
}
error {
border: 1px #f00;
background: #fdd;
}
.badError {
@extend .error;
border-width: 3px;
}
.error, .badError {
border: 1px #f00;
background: #fdd;
}
.badError {
border-width: 3px;
}
  • 9.
    COMPASS• Commonlyused mixinsand @imports, including:• Typography(vertical rhythm with auto-calculation
of line-height and margin)• CSS3with vendor prefixes• Sprites(though honestly, we’re using icon fonts, right?)
  • 12.
    FRONT-END FRAMEWORKS• Pre-build•Built-inCSS and JS to address 80% of use-cases grid systems (fixed/fluid)• Goodtype defaults, buttons, pretty forms, tables, codestyles…• Commonly-usedelements like nav bars, menus withdropdowns, thumbnail grids, etc.• Javascriptto power interactivity (menus, rotators)
  • 15.
    FIRST PROBLEM:TOO MANYLIBRARIES• Howdo you get jQuery?• Visitthe website, click to download the package, open thezip, navigate, find the file that you want, copy it into thecodebase? Hell no!• Remember• Whatthe URL and wget? Hell no!about vendor libraries that have other vendor librariesas dependencies? Remember them? Hell no!
  • 17.
    NEXT PROBLEM:TOO MANY<SCRIPT> TAGS• Sonow we’ve got all these things installed.• That’sa lot of scripts. Especially since we’re gooddevelopers and put our Backbone models, collections, andviews in separate files.• And• So…• Hellwe have to load them all in to the page.um…a lot of script tags? In a particular order?no!
  • 18.
  • 19.
    // main.js!!index.htmlrequire(!["helper/util"],!function(util) {!!!scripts/main.jsrequire.js!helper/util.js//This function is called when!// scripts/helper/util.js!// is loaded.!!// If util.js calls define(),!// then this function is not fired!// until util's dependencies load. !!// The util argument will hold!// the module value for!// "helper/util".!!});
  • 20.
    NEXT PROBLEM:TOO MANYTHINGS TO DO• Wecompile SASS and squash it down to one script• Weoptimize images• Wecompile any Coffeescript to JS • Welint the javascript using jsHint to catch problems• Werun any automated tests• Weconcatenate and minify scripts and rewrite the scripttags in the HTML• Werun LiveReload (which requires a JS snippet on dev)
  • 22.
    // gruntfile!!module.exports =function(grunt) {!// Project configuration.grunt.initConfig({pkg: grunt.file.readJSON('package.json'),uglify: {options: {banner: '/*! <%= pkg.name %> */n'},build: {src: 'src/<%= pkg.name %>.js',dest: 'build/<%= pkg.name %>.min.js'}}});package.json(used by npm)!Gruntfile!// Load the plugin that provides// the "uglify" task.grunt.loadNpmTasks('grunt-contrib-uglify');!// Default task(s).grunt.registerTask('default', ['uglify']);!};
  • 23.
  • 25.
  • 27.
    $ YO WEBAPP$%%Gruntfile.js$%% bower.json$%% node_modules/$%% package.json$%% test&$%% index.html&$%% lib/&'%% spec/$%% styles/&  '%% main.scss'%% app!$%% index.html$%% 404.html$%% favicon.ico$%% robots.txt
$%% bower_components/&   $%% jquery/&   $%% modernizr/&   '%% sass-bootstrap/$%% images/'%% scripts/   $%% app.js   $%% hello.coffee   $%% main.js   '%% vendor/
  • 28.
    $ GRUNT BUILD$%%index.html$%% 404.html$%% robots.txt$%% favicon.ico$%% images&   $%% 5d462625.glyphicons-halflings-white.png&   '%% 9cc6609b.glyphicons-halflings.png$%% scripts&   $%% 349a65db.main.js&   '%% vendor&  '%% f7f27360.modernizr.js'%% styles'%% c04706fe.main.css
  • 29.
  • 30.
    THANK YOU!Matthew Wrather• @mwrathermatt@wrathercreative.com • (510) WRA-THER

[8]ページ先頭

©2009-2025 Movatter.jp