Frontend Developer Tools
Dustin Tauer
dustin@easelsolutions.com
Slides / Files
https://github.com/dtauer/infotec2018-tools
Categories of Tools
Code Editors
CSS Preprocessors
JavaScript Transpilers
HTML Templating Languages
Build Tools
Testing Resources
Code Editors
Why?
- Knows frontend code
- Terminal/command line integration
- Extensions
- Features (like multiple cursors, Emmet)
Some Options
CSS Preprocessors
Sass/SCSS Example
nav {
ul {
margin: 0;
padding: 0;
list-style: none;
}
li { display: inline-block; }
a {
display: block;
padding: 6px 12px;
text-decoration: none;
}
}
nav ul {
margin: 0;
padding: 0;
list-style: none;
}
nav li {
display: inline-block;
}
nav a {
display: block;
padding: 6px 12px;
text-decoration: none;
}
Sass/SCSS Example
@mixin border-radius($radius) {
-webkit-border-radius: $radius;
-moz-border-radius: $radius;
-ms-border-radius: $radius;
border-radius: $radius;
}
.box { @include border-radius(10px); }
.box {
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
-ms-border-radius: 10px;
border-radius: 10px;
}
JavaScript Transpilers
Why?
Code with the latest and greatest JavaScript features without losing browser support.
Babel
HTML Template Languages
Why?
We still don't have a good [native] solution for HTML templates.
Some Options
HTML Template Languages
.wrapper
section.top
header.hero
h1 Camera Sale!
p Everything must go!
.cta.cta1
p.price $899
p Cannon 80D
.cta.cta2
p.price $50
p Nifty 50
<div class="wrapper">
<section class="top">
<header class="hero">
<h1>Camera Sale!</h1>
<p>Everything must go</p>
</header>
<div class="cta cta1">
<p class="price">$899</p>
<p>Cannon 80D</p>
</div>
<div class="cta cta2">
<p class="price">$50</p>
<p>Nifty 50</p>
</div>
</section>
</div
HTML Template Languages
extends includes/_layout
block content
section.about
img(src="images/camera.png", alt="Camera")
header
nav
block content
p The page content goes here
footer
_layout.pug
about.pug
Build Tools
Why?
- Compile/Transform all our fancy code
- Bundle/Deploy Code
- Install Modules
- Dependency Management and Code Splitting
Some Options
Install Modules with Node/NPM
<script src="https://code.jquery.com/jquery.min.js"></script>
<script>
$('.menu').show();
</script>
The traditional way of working with JavaScript
Install Modules with Node/NPM
$ npm install jquery
import $ from 'jquery';
// or
const $ = require('jquery');
// then
$('menu').show();
Command Line
scripts.js
Install Modules with Node/NPM
$ npm install gulp gulp-sass autoprefixer
Adding Build Tools
Gulp Example
https://github.com/dtauer/infotec2018-tools
Testing Tools
Why?
There are a lot of browsers and environments to test these days.
Browserstack can Help
Questions?
Frontend Developer Tools
By Dustin Tauer
Frontend Developer Tools
- 1,149