http://www.slideshare.net/SaraSoueidan/svg-for-web-designers-and-developers
Author of:
- Coddrops CSS Reference
- Smashing Book 5
SVG articles: sarasoueidan.com/articles
Don't avoid SVG just to support IE8, use a fallback. SVG is best for user controls, logos, icons, and illustrations.
- Icon Systems
- Ad Banners
- Infographics
- Data Visualizations
- Animated Illustrations
- Filter effects
- Simple UI shapes
Usually a knowledge gap between designers and developers around exported SVG code.
Simple shapes are easier to manage/maintain/animate (instead of paths).
Simplify paths:
- Each point is a pair of points in the path data
Combine paths where possible, if you don't need to animate them seperately.
Use good grouping, layering, and naming conventions.
Keep width and height attributes on <svg>
SVGO - a tool for optimizing SVG code
SVG JS animation library
- GreenSock Animation Platform (GSAP)
- Snap.svg
- Velocity.js
@brendamarienyc Stickers! Girl Develop It!
http://brendastorer.com/presentations/2015-10-CSSDevConf-SVGs/#intro
SVG has similarities to HTML:
- Unicode chars
- elements, tags, attr
- white space not important
- nesting
- bitmaps, anchors, text
SVG adds shapes, paths, opacity, gradients, rotation, animation
- semantic meatning for the name of the element and children
- value can be any string, usually url
xmlsn:xlink
just a unique identifier
- Units can be em, ex (height of x character), px, pt, pc
- Shapes inside of svgs use/inherit same units
- start x, start y, end x, end y
- starts at top left corner
Has a width, height, rx, ry (rounded edges), fill, and stroke
Has radius (r), cx and cy (coordinates)
Adds rx and ry to circle
Two sets of points (x1, y1, x2, y2)
Series of points: points
d for draw Has types of lines: (uppercase referes to viewport, lower refers to where last thing stopped drawing)
- M/m = moveto(x,y)
- L/l = lineto(x,y)
- A/a = arc
- C/c = curveto
- Z/z = close_path
- rx, ry
- x-axis-rotation sets rotation of arches
- large-arc-flag is boolean
- sweep-flag, clockwise or counterclockwise
Resources:
- SVG Compressed by Jakob Jenkov
- scriptdraw.com
- Pocket Guide to SVG by Joni
http://talks.brennaobrien.com/svg-typography No auto line-wrapping
-absolute positioning with x/y -relative positioning with dx/dy
viewBox + flexible container
set text along arbitrary path
definte reusable svg componants
SVG on MDN jenkov.com SVG Tutorials talks.brennaobrien.com/svg-typography
https://philipwalton.github.io/talks/2015-10-26/
Why care about web components?
- managing global names
- scoping/isolating styles
- specificity conflicts
- unpredictable matching
- managing dependencies
- removing unused code
CSS selectors determine how scalable code is
What are bad selectors?
- casts a wide net, likely clashes
CSS operates on too much DOM
How to change CSS to make it harder to screw up? What is CSS missing?
- scope or isolate styles to set of DOM nodes
- abstract implementation details
- bundle a set of styles with markup and logic that depends on them
Hooray web components!
Benefits of platform-based solutions
- no extra knowledge neeeded
- no dependencies
- interoperability
- Subtree of DOM nodes that you can create on any HTML element
- Shadow nodes are private
- initally defined as JS classes
- extend HTMLElement then registered on document
- typically create a shadow root
way to package custom elements and dependencies
inert bits of DOM, not processed by the browser
github.com/philipwalton/talks http://zastrow.co/speaking/css-dev-conf-2015/
https://www.dropbox.com/s/yfn2vw8bjfmyyiu/visual-regression.pdf?dl=0
Basically testing pixels, not css or html (at it's purest form)
- Comparison
- Baseline
VR Testing isn't good at distinguishing change in content vs. change in styles.
https://speakerdeck.com/jina/designing-a-design-system
- Style guides
- Zombie style guides, unmaintened and unused
Style guides must be living in order to be useful
Single source of truth: DRY principle
- design tokens, units of design that make guides scalable
Design system should align your whole team
- Clarity
- Efficiency
- Consistency
- Beauty
Provide devs scalable and accessible code early in dev cycle to empower them.
Clarity > Brevity
speakerdeck.com/jina/designing-a-design-system
http://www.slideshare.net/valhead/designing-meaningful-animation
Great UI animation has both purpose and style!
Using principles of animation from Disney Animation book, summarized in a tumblr blog.
Create animation that feels a bit real, makes it feel relatable and familiar.
Timing = duration
Spacing is more like the changes in speed, or easing.
Makes animtated objects appear to obey the laws of physics.
Establishes mood, emotion, and reaction.
Everything is better with cubic-beziers
Not everything stops at once Overshoot the target a bit
Additional action to exagerate/accentuate/support primary action.
Designing all animations to feel logical and related
Similar objects should move in similar ways
Entrances inform exits
- comes in from bottom, should leave from the bottom
Matching velocities creates relationships between objects
Cohesive over consistent
- find star interaction
- model real world things
- match design adjectives to animation styles
- follow through -> energetic, friendly, bold, excited
- squash and stretch -> playful
- smaller movements -> calm and subtle
- opacity and blurs -> soft, stable, quiet
Aim to build your own animation library, for consistency
- document categories of animation
- Document your building blocks
- opacity, scale, color, depth, position, rotation
uianimationnewsletter.com @vlh
@Jcutrell @developertea @whiteboardis
- use double pipes
||
Time-dimensional
- current
- current(s)
- past
- future
Not yet supported.
drop
(active, valid, invalid)- all :drop classes select the drop target, not the draggable item
read-write
,read-only
placeholder-shown
default
indeterminate
, could have value, but doesn't yetin-range/out-of-range
, any element that has a max/min attribute set'valid/invalid
, can use regex ininput pattern
attributeuser-invalid
, same as valid/invalid, only after user has interacted with that inputrequired
/optional
, tied to presence of required attributeblank
, matches things that have only whitespacedir(ltr)
lang(zh)
,any-link
scope
[foo="bar" i]
, case insesitivityE >> F
, descendant combinatornot(s1, s2
has(s1, s2)
, (doesn't ever work in browser CSS), selection based on cabinetsmatches(s1, s2)
https://github.com/ecarlisle/bower-power http://www.slideshare.net/ericcarlisle/bower-power-54549427
KISS - Kill It & Start Screaming/Keep It Stunningly Simple
- efficent, cheaper, better products, happier teams
- Maintains dependency manifest
- Fetches them when you need it
- Tracks Dependencies
- Integrates with everything
Many similarities, unique strengths
Bower:
- Abstracts, separates concerns
- Uses a flat dependency tree
- Lives and breathes git
- establishes accountability
Often, more than expected gets installed
- usually gets the whole github repo of project
- you might discover something that way
- you can use anything you need
- add bower_components to .gitignore
https://speakerdeck.com/marcelosomers/fight-the-zombie-pattern-library-css-dev-conf-2015 http://j.mp/zombie-library-cssdevconf
@marcelosomers
How do you keep building interfaces knowing that's what the world is like?
Build systems not pages
Each deliverable is a design system.
Design with patterns
Design process breaks down with distributed devlopment
Have a pattern library early to cut down on wasted artifacts.
- Base styles
- Components
- Page templates
CSS Documentation
- KSS
Static Site Generation
- Pattern Lab
Integrated
- SourceJS
PatternPack
https://speakerdeck.com/davatron5000/the-art-of-being-wrong shoptalkshow.com godaytrip.com
Sometimes, ideas need to die after they become wrong (a.k.a. outdated)
- Have a really strong opinion on a really niche topic
- Measure whatever can be easily measured. This is cool, as far it goes
- Disregard that which can't be easily measured, or give an arbitrary value, which is artificial and misleading
- presume that which can't be measured easily isn't very important. Blindness
- That which can't be measured isn't real. Suicide.
Well, actually...
- Responsible Data Visualization by Amanda Cheung
- The Dark Arts of Light Speed by Henri Helvetica
- No Pain No Gain by Stacy Kvernmo
- React Inline Styles and the Future of CSS by Alex Lande
- DOM Features You Didn’t Know Existed by Louis Lazaris
- SMACSS Your Sass Up by Mina Markham
- acCeSSibility by Heather Migliorisi
- Smoothly Migrating to Flexbox by Charlie Park
- CSS Architecture by Jonathan Snook
- Deep Dive into Animation by Estelle Weyl
- Container-based RWD with Element Queries by Philip Zastrow
- Designing Complex SVG Animations by Sarah Drasner
- Exploring Fractals in CSS by Gregor Adams
- Fostering an “Open-Source” Front-end Culture at Work by Kevin Lamping