CSS CAMP conference for

Web Designers and Web Developers

DISCLAIMER

Resources are from the speakers at the conference

Tatiana Mac

Building Socially-Inclusive Design Systems

Tiny Face app

Tatiana Mac

Building Socially-Inclusive Design Systems

Male

Female

Truth

False

=

=

Non-binary

=

Non-existent

Tatiana Mac

Building Socially-Inclusive Design Systems

Component-Based

Reducing design elements to the smallest replicable unit

We make mistakes and we should:

-Give no excuses (It's not about us)
-Apologize properly

-Make a plan to fix it

-Remember for next time

Tatiana Mac

Building Socially-Inclusive Design Systems

Dropdown

Form pattern

Product registration

Atom

Molecule

Organism

Products

Industry

Beings

Ecosystem

Intent

             does not

erase              

Impact

 Intent does not

erase Impact

Designer

User

Tatiana Mac

Building Socially-Inclusive Design Systems

Positive feedback loop

Design

Feedback

Research

Research, proactive

, reactive

REALITY - THEORY

IMPACT - INTENT

Tatiana Mac

Building Socially-Inclusive Design Systems

Comprehensive

All elements are present,

all users are present

INCLUSION

Cooperative

Adaptable

Tatiana Mac

Building Socially-Inclusive Design Systems

The rest of us

Minorities

Component -based

Comprehensive

Cooperative

Accesible

Inclusive

Adaptable

Innovative

Creative

Interdiscipliary

JasonPamental

0
 Advanced issues found

Dynamic Typographic Systems with Variable Fonts

Type is the voice of our words

It's how 'we' hear what we read

  • Dynamic typography
  • Custom properties
  • Calculation
0
 Advanced issues found
 

Jason Pamental

Variable Font

Is a single font file that behaves like multiple fonts 

Dynamic Typographic Systems with Variable Fonts

-John Hudson

https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide

Jason Pamental

Dynamic Typographic Systems with Variable Fonts

Jason Pamental

Dynamic Typographic Systems with Variable Fonts

Scale font-size & line-height

Viewport is not recommended because it becomes zoomable for the user as soon as you scale it by 1px

Note

font stretch

Jason Pamental

Dynamic Typographic Systems with Variable Fonts

calc( [size-min]em + ( [size-max] - [size-min] ) * ((100vw - [start]em ) / ( [stop] - [start] )));

Jason Pamental

Dynamic Typographic Systems with Variable Fonts

Please scale from 2.25em on small screens up to 5em on largest ones, starting at viewport width of 25em and stopping at 75emor larger

Jason Pamental

Dynamic Typographic Systems with Variable Fonts

Dyslexics suffer from "crowding"

More word spacing and letter spacing increases readability at 50%

--text-GRAD : add more contrast without changing or adding more space to the text block

Cassie Evans

Interactive Web Animations with SVG

is not only images but a markup language

has a DOM

SVG  

Illustrations that you can manipulate with code!

Cassie Evans

Interactive Web Animations with SVG

This pen by Julia Muzafarova

Cassie Evans

Interactive Web Animations with SVG

People learn in different ways!!

Cassie Evans

Interactive Web Animations with SVG

Cassie Evans

Interactive Web Animations with SVG

Tools

Cassie Evans

Interactive Web Animations with SVG

Tools

Cassie Evans

Interactive Web Animations with SVG

Cassie Evans

Interactive Web Animations with SVG

transform-origin

Cassie Evans

Interactive Web Animations with SVG

Compatibility!

JS animations libraries

Cassie Evans

Interactive Web Animations with SVG

Greensock plugins

Cassie Evans

Interactive Web Animations with SVG

Tweening

Cassie Evans

Interactive Web Animations with SVG

Cassie Evans

Interactive Web Animations with SVG

const findFace = async () => {

    const myWebcamFeed = document.querySelector('.player');
    const faceDetector = new FaceDetector();

    try {

        const faces = await faceDetector.detect(myWebcamFeed);
	
        console.log(faces);

    } catch (error) {
        console.log("oops, something went wrong with face detection")
    };
}

Oliver Turner

When Houdini met Goldblum

Houdini is a toolbox that future-proof styling

Lower-level API's

worklets

PaintAPI

Animation

Layout

{

Oliver Turner

When Houdini met Goldblum

.app__header {
  background-image: linear-gradient(#e66465, #9198e5);
}
:root {
  --gradientStart: #e66465;
  --gradientEnd: #9198e5;
}
 
.app__header {
  background-image: linear-gradient(
    var(--gradientStart), 
    var(--gradientEnd)
  );
}

Oliver Turner

When Houdini met Goldblum

Oliver Turner

When Houdini met Goldblum

Oliver Turner

When Houdini met Goldblum

Oliver Turner

When Houdini met Goldblum

CSS is a type language: it's declarative like ReactJS

It's great for performance

CSS vs JS

Stéphanie Walter

Mind over Matter: Optimize Performance Without Code

Stéphanie Walter

Optimize Performance Without Code

Speed perception impacts user satisfaction

0-300ms

Instant UI Visual Response

 

Stéphanie Walter

Optimize Performance Without Code

300ms - 1sec

Torelable

2sec - 5sec

It's fine! The system is working!

And while they wait...

Stéphanie Walter

Optimize Performance Without Code

+5sec

Just explain why!

Stéphanie Walter

Optimize Performance Without Code

lt looks fast!

Opacity + transform

Stéphanie Walter

Optimize Performance Without Code

Optimistic UIs!

Stéphanie Walter

Optimize Performance Without Code

Smart User distractions

Stéphanie Walter

Optimize Performance Without Code

Mental Model

Adam Argyle

Apps too fast: how to change the pace for better UX

Pace over speed => reduce anxiety

Speed standard?

Adam Argyle

How to change the pace for better UX

Snappy | Instant | Elastic

Plush | FLuid | Soft

Adam Argyle

How to change the pace for better UX

Ease

  • 50-200ms for short distances
  • 200-350ms for longer distances

Adam Argyle

How to change the pace for better UX

Strategies

  • Passive vs active waiting time

Designs need white space / UX needs time

Adam Argyle

How to change the pace for better UX

Strategies

  • Time is value

Designs need white space / UX needs time

WRONG | CHEAP | UNREAL

Adam Argyle

How to change the pace for better UX

Strategies

  • Time is value

Designs need white space / UX needs time

BUY TIME

Distraction

Validation

Feedback

Adam Argyle

How to change the pace for better UX

Strategies

  • Time based feedback

Designs need to guide / UX needs to follow

Microseconds adding value

Adam Argyle

How to change the pace for better UX

Strategies

  • Interruptible

Designs need to guide / UX needs to follow

Adam Argyle

How to change the pace for better UX

Strategies

You must register
before you can vote"

Designs need to speak / UX needs to listen

Register to vote"

Adam Argyle

How to change the pace for better UX

Strategies

Designs need to report / UX needs to respond

Feedback to actions

Respond

Animate

Idle

Load

Adam Argyle

How to change the pace for better UX

Strategies

Designs need to report / UX needs to respond

Feedback to actions

Respond

Animate

Idle

Load

Sergei Kriger

Time control in Web Accesibility

aria-live="polite | assertive | off"





POLITE

ASSERTIVE

Sergei Kriger

Time control in Web Accesibility

<div role="status" aria-live="polite"></div>
<div role="alert" aria-live="assertive"></div>

Compatibility

Sergei Kriger

Time control in Web Accesibility

el.focus();

User Action

Asynchronous options

<div tabindex="0 | 1 | 2 | ...">

Sergei Kriger

Time control in Web Accesibility

Harry Roberts

More than you ever wanted to know about Resource Hints

RESOURCE HINTS

Single lines of HTML that will dramatically improve the performace of the website

"[Walmart] every 100ms improvement

also resulted in up to 1% increase in revenue"

Harry Roberts

Resource Hints

"Every trip to a new origin carries overhead (DNS, TCP, TLS)

Deal with this ahead of time for known third-party origins

Analytics services, font providers, ad networks, etc..."

Harry Roberts

Resource Hints

Harry Roberts

Resource Hints

DNS prefetch

Pre-connect when you know the IP but not the URL

Prefetch

Download a file needed for subsequent navigation.

Storage it in the HTTP cache

It will never interfere with the current page.
Doesn't work in IE9

<link rel="dns-prefetch" href="//example.com">
<link rel="prefetch" href="//example.com/next-page.html" as="document">
<link rel="prefetch" href="/library.js" as="script">

Harry Roberts

Resource Hints

Pre connect

When you know the domain but not the URL

<link rel="preconnect" href="//example.com">

Harry Roberts

Resource Hints

pre-connect with DNS fallback

<link rel="preconnect dns-prefetch" href="//example.com">
<link rel="preconnect" href="//example.com">
<link rel="dns-prefetch" href="//example.com">

Harry Roberts

Resource Hints

Preload

It's no longer a hint, it's a mandatory fetch

Harry Roberts

Resource Hints

Harry Roberts

Resource Hints

Prerender

Download and build entire websites in the background

Add impressions & page visits go up

Harry Roberts

Resource Hints

AS attribute

Helps priotization

<link rel="preload" href="fonts.com" as="font" type="font" crossorigin />

Lara Schenck

Writing CSS Algorithms

Is CSS a programming language?

Lara Schenck

Writing CSS Algorithms

Lara Schenck

Writing CSS Algorithms

Test the design

More CSS

 

Lara Schenck

Writing CSS Algorithms

Lara Schenck

Writing CSS Algorithms

HOW TO WRITE A CSS ALGORITHM

  • Plan
  • Brute force solution
  • Walkthrough
  • Optimize solution

Lara Schenck

Writing CSS Algorithms

Write CSS

Test it

Refactor

Lara Schenck

Writing CSS Algorithms

Unit test in CSS

Integration test in CSS

Lara Schenck

Writing CSS Algorithms

THANK YOU!

CSS CAMP 2019

By mjhr

CSS CAMP 2019

  • 464