Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building a modern UI

Building a modern UI

Having a good user interface is no longer a luxury. Ugly websites and apps are increasingly being replaced by beautiful ones. But if you are not a designer, how do you go about building a good UI (without hiring a designer)?

In this talk, we’ll walk through some of the modern tools, frameworks, and resources to bootstrap amazing UIs (and yes, Twitter Bootstrap is one of them, but it’s only part of the equation).

Here are some of the tools we will be covering: Bootstrap, Bootstrap Themes, SVG, HTML5, CSS3, ReactJS, Less, Sass, and a few more.

You will leave this talk with a good understanding of how to start building a stunning front end for your next killer project!

Caleb Madrigal

July 24, 2015
Tweet

Other Decks in Design

Transcript

  1. My answer 5 years ago Option 1: Use a CMS

    with Themes, and modify Themes 1. Find a theme which is similar to what you want 2. Modify it 3. Try to shoehorn your data model into the CMS
  2. My answer 5 years ago Option 2: Photoshop-originating / sliced

    images 1. Designer creates website design in Photoshop 2. Either designer or programmer slice up images 3. Programmer tries to get pixel-for-pixel emulation of photoshop images implemented in HTML/CSS/JS
  3. Bootstrap Themes Templates built on Bootstrap What’s awesome here is

    that, it’s just plain old HTML/JS/CSS, so you can actually have full control over your UI and app. Sources: https://wrapbootstrap.com/ http://bootstrapzero.com/ http://startbootstrap.com/ http://bootswatch.com/
  4. Reason to steal #2: Affordance How many teapots have you

    seen that don't follow this rough pattern? A million dollar word meaning roughly "is obvious to use". Where on the screen should you look for the "logout" button?
  5. Reason to steal #3: "Everyone is doing it" Example: websites

    that have both service consumers and service providers...
  6. SVG Making your own SVG icons is easy with apps

    like iDraw Sketch 3 Adobe Illustrator Inkscape (Open Source!)
  7. Single-Page Apps If you are developing a web app (vs

    a website), you probably should build a Single-Page App (SPA) What are they? There is only 1 real page Each "page" is actually a div rendered by javascript (often retrieved with AJAX).
  8. Caveats to SPAs Their content often can't be indexed by

    search engines (except maybe the initial page) There can be flickering effects (since rendering is client-side) DO NOT build your website as a SPA if it really doesn't need to be, just because it is the "new way". Many websites would be worse as an SPA (like Wikipedia).
  9. If you build a Single-Page App, I recommend React. Benefits

    of React: Uni-directional data flow Functional programming-style rendering When a new piece of data comes in, the entire UI is re-rendered from the top-down But only in the Virtual DOM - so it is easy to reason about, but fast to run Potentially: easy native mobile apps with React Native (yet to be really tested in the wild) Component-based "Custom elements" comprised of both their DOM structure and scripts This sounds bad, but I think it has merit.
  10. Web Components Standard https://en.wikipedia.org/wiki/Web_Components http://www.w3.org/TR/components-intro/ Web Components is a new

    standard for reusable custom HTML elements, encapsulating HTML, CSS, and JS. Polymer (https://www.polymer-project.org) is a helper library for Web Components.
  11. Bower Package management for web dependencies. To install and save

    to the bower.son file: "bower install --save FileSaver" Example bower.json file:
  12. Grunt/Gulp Automation of mundane tasks like: Minification Linting (especially helpful

    for Javascript) Test server (with auto reload on change) Running unit tests
  13. Yeoman generators http://yeoman.io/generators/ Good way to bootstrap a project. Can

    give you: Grunt configured Bower configured Test harnesses Skeleton layout