Fronteers 2014 – Report from the conference – Getting nowhere with css best practices



Fronteers 2014 – Report from the conference – Getting nowhere with css best practices

0 0


fronteers-slides


On Github lipina / fronteers-slides

Fronteers 2014

Report from the conference

Created by Alla Lipina

Getting nowhere with css best practices

by Heydon Pickering

Some ideas

Code quality is far more important then best practise topics

Code quality topics - readability, maintainability and flexibility

Make things accessible using aria attributes

ARIA stands for Accessible Rich Internet Applications.

Use Aria states, there’s a lot of them, so there’s almost no excuse to use class names.

Use correct HTML elements and aria attributes instead of classes for everything

There’s a lot of elements out there and they bring semantics to your code. Including aria attributes like role=“navigation”instead of .main-nav makes your HTML more accessible.

Making maps - the role of frontend infrastructure at Etsy

by Daniel Espeset

Some insites from the company

  • Anybody can touch anything, everyone deploys
  • Continuous deployment
  • Designers at Etsy write and push code as well
  • Features are all A/B tested in a prototype phase
  • Build and open sourse a lot of tools

Problems they faced

  • Supporting the fast growing codebase (refactor, delete, test)
  • Dependencies between JS CSS (built Ranger)
  • Detects unused CSS on the production server (built Shrinkray)
  • Color definitions have grown out of control (Moving to SASS)
  • A small script called Shrinkray detects unused CSS on the production server (1% of users will have the script loaded)

Do we need to write markup?

by Nathan Ford

We can make HTML easier to grasp for people in other professions.

He build a tool which you can use to create HTML trees by dragging and dropping HTML nodes. It enforces semantics and has validation build in, it’s an interface for learning and pushing smart defaults.

Pushing the real-time web forward

by Arnout Kazemier

A talk about all sorts of bugs encountered when doing async client server communication.

Talk summary

  • Using WebSocket is a hard way to go (lot of bugs)
  • EventSource? - not supported in IE...
  • For now, it might be a good plan to use something like socket.io
  • For the future, WebRTC might be the way to go

State of the Animation 2014

by Rachel Nabors

There’s some excellent animation libraries out there:

Gaming in the browser

by Thomas Palef, Luc Bloom and Dominic Szablewski

WebRTC: a front-end perspective

by Shwetank Dixit

Some great tools

  • Sqwiggle uses WebRTC to allow you to communicate and collaborate with others on the web.

Offline first: faster, more fun, and more robust (web) apps

by Alex Feyerke

Main Ideas

Mobile is normal, no connection is normal. Connections fail.

People take screenshots of their apps because they don’t trust the app to retain their data.

We should develop smart apps that pre-empt user needs.

///

Offline is the new standard. Progressive Enhancement has a new starting point.

What building apps Offline First means in terms of interfaces, in terms of your application's structure, and in terms of the experiences your users could have with it.

Hoddie

There is a great tool Hoodie that can help you with going offline. Hoodie apps talk to a local hoodie store object which talks to localStorage (could store somewhere else also) which is synced with a REST service. So if the REST service is not there, a part of the data still is locally available. It uses CoucheDB to sync data between client and server.

References:

Vertical Slides

Slides can be nested inside of other slides, try pressing down.

Basement Level 1

Press down or up to navigate.

Basement Level 2

Cornify

Basement Level 3

That's it, time to go back up.

Point of View

Press ESC to enter the slide overview.

Hold down alt and click on any element to zoom in on it using zoom.js. Alt + click anywhere to zoom back out.

Markdown support

For those of you who like that sort of thing. Instructions and a bit more info available here.

<section data-markdown>
  ## Markdown support

  For those of you who like that sort of thing.
  Instructions and a bit more info available [here](https://github.com/hakimel/reveal.js#markdown).
</section>

Transition Styles

You can select from different transitions, like: Cube - Page - Concave - Zoom - Linear - Fade - None - Default

Themes

Reveal.js comes with a few themes built in: Default - Sky - Beige - Simple - Serif - Night Moon - Solarized

* Theme demos are loaded after the presentation which leads to flicker. In production you should load your theme in the <head> using a <link>.

Global State

Set data-state="something" on a slide and "something" will be added as a class to the document element when the slide is open. This lets you apply broader style changes, like switching the background.

Custom Events

Additionally custom events can be triggered on a per slide basis by binding to the data-state name.

Reveal.addEventListener( 'customevent', function() {
	console.log( '"customevent" has fired' );
} );

Slide Backgrounds

Set data-background="#007777" on a slide to change the full page background to the given color. All CSS color formats are supported.

Image Backgrounds

<section data-background="image.png">

Repeated Image Backgrounds

<section data-background="image.png" data-background-repeat="repeat" data-background-size="100px">

Background Transitions

Pass reveal.js the backgroundTransition: 'slide' config argument to make backgrounds slide rather than fade.

Background Transition Override

You can override background transitions per slide by using data-background-transition="slide".

Clever Quotes

These guys come in two forms, inline: “The nice thing about standards is that there are so many to choose from” and block:

“For years there has been a theory that millions of monkeys typing at random on millions of typewriters would reproduce the entire works of Shakespeare. The Internet has proven this theory to be untrue.”

Pretty Code

function linkify( selector ) {
  if( supports3DTransforms ) {

    var nodes = document.querySelectorAll( selector );

    for( var i = 0, len = nodes.length; i < len; i++ ) {
      var node = nodes[i];

      if( !node.className ) {
        node.className += ' roll';
      }
    }
  }
}

Courtesy of highlight.js.

Intergalactic Interconnections

You can link between slides internally, like this.

Fragmented Views

Hit the next arrow...

... to step through ...

any type of view fragments This slide has fragments which are also stepped through in the notes window.

Fragment Styles

There's a few styles of fragments, like:

grow

shrink

roll-in

fade-out

highlight-red

highlight-green

highlight-blue

current-visible

highlight-current-blue

Spectacular image!

Export to PDF

Presentations can be exported to PDF, below is an example that's been uploaded to SlideShare.

Take a Moment

Press b or period on your keyboard to enter the 'paused' mode. This mode is helpful when you want to take distracting slides off the screen during a presentation.

Stellar Links

THE END

BY Hakim El Hattab / hakim.se