Resources are from the speakers at the conference
Building Socially-Inclusive Design Systems
Tiny Face app
Tatiana Mac
Male
Female
Truth
False
=
=
Non-binary
=
Non-existent
Tatiana Mac
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
Dropdown
Form pattern
Product registration
Atom
Molecule
Organism
Products
Industry
Beings
Ecosystem
Designer
User
Tatiana Mac
Design
Feedback
Research
Research, proactive
, reactive
REALITY - THEORY
IMPACT - INTENT
Tatiana Mac
All elements are present,
all users are present
INCLUSION
Adaptable
Tatiana Mac
The rest of us
Minorities
Component -based
Comprehensive
Cooperative
Accesible
Inclusive
Adaptable
Innovative
Creative
Interdiscipliary
Dynamic Typographic Systems with Variable Fonts
Jason Pamental
Is a single font file that behaves like multiple fonts
-John Hudson
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide
Jason Pamental
Jason Pamental
Viewport is not recommended because it becomes zoomable for the user as soon as you scale it by 1px
Jason Pamental
calc( [size-min]em + ( [size-max] - [size-min] ) * ((100vw - [start]em ) / ( [stop] - [start] )));
Jason Pamental
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
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
Interactive Web Animations with SVG
is not only images but a markup language
has a DOM
Cassie Evans
This pen by Julia Muzafarova
Cassie Evans
People learn in different ways!!
Cassie Evans
Cassie Evans
Tools
Cassie Evans
Tools
Cassie Evans
Cassie Evans
transform-origin
Cassie Evans
Cassie Evans
Greensock plugins
Cassie Evans
Tweening
Cassie Evans
Cassie Evans
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")
};
}
When Houdini met Goldblum
Houdini is a toolbox that future-proof styling
Lower-level API's
worklets
PaintAPI
Animation
Layout
{
Oliver Turner
.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
Oliver Turner
Oliver Turner
Oliver Turner
CSS is a type language: it's declarative like ReactJS
It's great for performance
CSS vs JS
Mind over Matter: Optimize Performance Without Code
Stéphanie Walter
Speed perception impacts user satisfaction
0-300ms
Instant UI Visual Response
Stéphanie Walter
300ms - 1sec
Torelable
2sec - 5sec
It's fine! The system is working!
And while they wait...
Stéphanie Walter
+5sec
Just explain why!
Stéphanie Walter
lt looks fast!
Opacity + transform
Stéphanie Walter
Optimistic UIs!
Stéphanie Walter
Smart User distractions
Stéphanie Walter
Mental Model
Apps too fast: how to change the pace for better UX
Pace over speed => reduce anxiety
Speed standard?
Adam Argyle
Snappy | Instant | Elastic
Plush | FLuid | Soft
Adam Argyle
Adam Argyle
Designs need white space / UX needs time
Adam Argyle
Designs need white space / UX needs time
WRONG | CHEAP | UNREAL
Adam Argyle
Designs need white space / UX needs time
BUY TIME
Distraction
Validation
Feedback
Adam Argyle
Designs need to guide / UX needs to follow
Microseconds adding value
Adam Argyle
Designs need to guide / UX needs to follow
Adam Argyle
You must register
before you can vote"
Designs need to speak / UX needs to listen
Register to vote"
Adam Argyle
Designs need to report / UX needs to respond
Feedback to actions
Adam Argyle
Designs need to report / UX needs to respond
Feedback to actions
Time control in Web Accesibility
aria-live="polite | assertive | off"
POLITE
ASSERTIVE
Sergei Kriger
<div role="status" aria-live="polite"></div>
<div role="alert" aria-live="assertive"></div>
Compatibility
Sergei Kriger
el.focus();
User Action
Asynchronous options
<div tabindex="0 | 1 | 2 | ...">
Sergei Kriger
More than you ever wanted to know about 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
"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
Harry Roberts
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
Pre connect
When you know the domain but not the URL
<link rel="preconnect" href="//example.com">
Harry Roberts
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
Preload
It's no longer a hint, it's a mandatory fetch
Harry Roberts
Harry Roberts
Prerender
Download and build entire websites in the background
Add impressions & page visits go up
Harry Roberts
AS attribute
Helps priotization
<link rel="preload" href="fonts.com" as="font" type="font" crossorigin />
Writing CSS Algorithms
Is CSS a programming language?
Lara Schenck
Lara Schenck
Test the design
More CSS
Lara Schenck
Lara Schenck
HOW TO WRITE A CSS ALGORITHM
Lara Schenck
Write CSS
Test it
Refactor
Lara Schenck
Unit test in CSS
Integration test in CSS
Lara Schenck