Giter VIP home page Giter VIP logo

react-europe-talk-2018's Introduction

The Case for Whimsy

React Europe 2018 talk by Josh Comeau

This repository contains the slides and related code for my React Europe 2018 talk.

Sadly, it's a bit disorganized (I thought I'd have time to organize everything, but then suddenly it was the conference ๐Ÿ˜จ). This README aims to help you navigate, to explore all the ideas I shared in my talk.

Recording

Watch on Youtube

Slides

This repo also holds the code for all the slides. It's super messy, but the presentation mostly lives in src/presentation.js.

You can also check out the components used for the live examples in src/components. Some highlights:

  • WibblyWobblyCircle - A floating, warbly circle.
  • TitleParticles - A few slides in, I introduce the talk. The intro slide has these floating self-drawing particle things, described by the components in this directory.
  • FoldConcept - While the actual <Foldable /> component is described below under Whimsical Mail Client, this is the code for the concept fold. Might be easier to follow, although you almost definitely want to use the <Foldable /> code below for your own apps.

Confetti

The talk features a confetti rain.

For the demo, play with it here.

For the code, it lives in this repo. Here are some links:

Additionally, the live-editable examples can be found here.

Whimsical Mail Client

The talk also featuers a fictitious email client.

You can play with the demo

Please note: the code is not production-ready. This is not a real application, and it hasn't been thoroughly tested. There may be bugs if you deviate from the happy-path stuff done in the talk.

As for the components, they're messier than the ones in the talk, and not very well commented. If you have any questions, please do reach out to me on Twitter.

The code for that project lives in a separate repo, and the code is split among a number of different files:

  • NodeProvider - a context-driven helper to capture and use references to DOM nodes.
  • Foldable - A behavioural component that lets you tri-fold its children like a letter.
  • Transport - A behavioural component that moves its children between specified DOM nodes, based on a provided status.
  • ComposeEmailContainer - The container for the "compose email" modal. Uses Foldable and Transport to do the neat animations.
  • EtchASketchShaker - The cute shake-to-clear animation used when clicking "clear".
  • Scoocher - I didn't really mention this in the talk, but there's a fun little underline for the top-left navigation tabs that "scooches" around to indicate the selected tab.
  • NotificationDot - Also not mentioned, but there's a cute little indicator dot for tabs with unread messages.

I took inspiration from Tobias Ahlin's fantastic blog post on Meaningful Motion with Action-Driven Animation. Highly-recommended reading.

Accessibility

Whimsical touches are great fun, and are valuable to the user experience, but they aren't critical. Making sure your site works for folks with disabilities is a far greater priority.

For learning about accessibility, I'd recommend Google's Web Fundamentals course.

Some additional resources:

Other Cool Things

My talk mentions WebRender, Firefox's new rendering engine. Lin Clark has a wonderful intro article on the subject.

Another really exciting thing coming up is Houdini, a collection of CSS innovations. Read more about CSS Paint and CSS Layout.

react-europe-talk-2018's People

Contributors

joshwcomeau avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.