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

Elements of web design

Jerry Jäppinen
November 22, 2019

Elements of web design

Jerry Jäppinen

November 22, 2019
Tweet

More Decks by Jerry Jäppinen

Other Decks in Design

Transcript

  1. Open platform Everything on the web... • is open and

    public (source code and assets) • can be manipulated by end-users • can be manipulated by browsers • can be manipulated by extensions • can be linked and embedded on other services
  2. Devices • Phones • Tablets • Laptops • Desktops •

    Smart TVs • Smart watches • Screen readers • Outdoor displays • E-readers • Printers • Game consoles • Smart fridges
  3. Screens • Matte vs glossy • High vs low-DPI •

    OLED vs LCD • E-ink • SDR vs HDR • Viewing angles • Color reproduction
  4. Browser chrome • Pages are (typically) continuous and dynamically sized

    • Elements within a page can scroll • Horizontal vs. vertical • Free scrolling vs. paginated vs. automatic
  5. Input devices • Cursor • Touch • Touch pad •

    Scroll wheels • Keyboard • Game pads Each have their own best practices and design considerations (hit area size, hover feedback, common errors etc.)
  6. Operating systems • Dark vs light theme • Native input

    elements • Security controls and limitations • Platform conventions • Design and style
  7. Viewport size • Screen and window sizes vary between devices

    • Viewport size on one device varies • User can change viewport size in one session • Mobile first?
  8. Scrolling • Pages are continuous and dynamically sized • Elements

    within a page can scroll • Horizontal vs. vertical • Free scrolling vs. paginated vs. automatic
  9. Native rendering A browser renders graphics natively Every object can

    have properties Different objects support different properties
  10. Non-native Every pixel is predefined No run-time manipulation with user

    interaction Native Browser has data on individual elements, composing the final rendering Design can be manipulated and tied to user interaction
  11. The box model This is a box It has properties

    Properties take up space framer.com/blog/posts/ box-model
  12. Layout model • Inline • Block • Flex • Grid

    • Absolute • Fixed • Canvas * • SVG * • Usually elements don't "float" • Columns and grids mean something different from print • Baseline grids don't exist • Everything is nested boxes • ...except inline elements • * Canvas/SVG
  13. Layout with columns? • Traditional (e.g. 12-column) layout grids don't

    work well in web • No native column grids, only hacks • Web layouts are dynamic and responsive • Design tool for web: https://webflow.com/
  14. Element properties • Dimensions • Position • Background color •

    Background image • Font family • Border • Transformation • Layout • Overflow and scrolling • Opacity • Text indentation • Shadows • Border radius • ... https://www.quackit.com/css/properties/
  15. Colors • Hex • RGB(A) • HSL(A) • Keywords •

    Run-time variable support • Gradients
  16. Units • px • vh • vw • vmin •

    vmax • pt • pc • cm • mm • in • % • em • rem • ex • ch https://webdesign.tutsplus.com/articles/7-css-units-you-might-not-know-about--cms-22573
  17. Font sizing • Points or pixels are fixed units •

    em and rem are context-sensitive and can be scaled • vw and vh are dependent on viewport size
  18. Typography • Text flow can't be totally manually controlled •

    Ahead of mobile platforms • Some great typographic controls, better than you think • Super/subscript • Text directions • See ruby annotations
  19. Font sizing • You can use any unit to define

    font sizes • Why is a piece of text the size it is? • Is it relative to... • screen size? • parent element's font size? • our place in the universe?
  20. Variable fonts • New! • Completely dynamic font properties •

    Can be smoothly adjusted run-time • → animation • → interaction • https://v-fonts.com/
  21. Moving image • Native animations • Native transitions • Native

    & streaming video • JavaScript-powered anything • WebGL • https://easings.net/en
  22. Bitmaps • Multiple bitmap formats supported • Can be adjusted

    with filters (blur, greyscale...) • Can be cropped and resized in client • Servers can most things clients can't (reduce file size, apply more filters...) • Can be analyzed with code • Find dominant colors, faces etc.
  23. SVG • "Native" vector format • SVG is XML is

    HTML • Supports text • Supports CSS and JavaScript and animations • Many libraries build on top of SVG • Flexible, highly optimised
  24. Filters Rendering of elements can be changed with filters •

    Blur • Hue • Saturation • Color inversion • Contrast • Brightness
  25. Canvas A frame within a page that can be used

    for "raw" drawing and rendering Elements can be manipulated with code Supports 2D and real 3D
  26. 3D Web elements are 2D With stacking order (z-index) With

    transformations With perspective Better 3D support can be achieved with • JavaScript libraries • SVG • WebGL and shaders
  27. Context matters • Web sites • Emails • Banners •

    Rich app components • Screen readers • RSS and web readers
  28. Loading times • A web page is a collection of

    files • Each file must be delivered from server to browser • Sometimes loading some or all assets fail • Consider loading times in design decisions • Design solutions can hide loading times or make them more tolerable • Loading times impact conversion €€€
  29. O ffl ine • Network conditions are never stable •

    Assets can be cached or explicitly stored for offline use • Does the design rely on constant connectivity? • What use cases work without a connection? • Is initial loading fast enough for an unstable connection?
  30. Localisation • Can't directly control date and time formatting •

    Not all fonts support all languages • OS language • Text direction varies with language • Input devices are different across countries • User expectations and capabilities
  31. Sitemaps and navigation • Usability • Overall scope of the

    site • Navigation interactions • Current location within site • Sitemap for search engines and other external services • Structured data • Layout structure within a page
  32. Embedded documents • A web page is called a document

    • A document can link to other documents • A document can embed another document • Mobile apps with web views • HTML banners • Streaming video players • Contact forms • Maps • Social plugins
  33. Rich components • Web is almost on par with mobile

    apps • Barring specialised use cases (machine learning, camera, connectivity) • Web experiences are not static • A web page is not just a "canvas for painting" • Live components with life cycle, behavior, interaction • Traditionally relied on native form elements • Now completely custom-build components are commonplace
  34. Dynamic content • Most web services are maintained for a

    long time • CMSs manage updates and translations • Designers usually work with draft content • Content will be changed and added after release • Designers set the rules and framing for dynamic content • Structured content vs. layout management
  35. Structured content People are managed in CMS. How they are

    presented is up to design. Publishing system "Pages are managed in CMS. What modules or components are available, is up to design."
  36. Audio • Supported quite well on the web • Rarely

    used by convention • Useful for specific use cases and explicit need • Users might have audio channel reserved or disabled
  37. Progressive enhancement • Nothing works exactly the same everywhere •

    High backwards compatibility • Fallbacks for fancier features • Progressive enhancement vs. graceful degradation • Network quality (e.g. long loading times) • Device performance (e.g. slow effects) • Browser features and bugs (e.g. lazy loading) • OS features (e.g. video autoplay)
  38. Progressive enhancement • What can I do right now? •

    https://caniuse.com/ • What can I expect in the near future? • https://webkit.org/status/#? status=under%20consideration,in%20development, supported%20in%20preview • E.g. real vertical grid control: https:// drafts.csswg.org/css-rhythm/
  39. Connected services • Example • Web site shared on a

    social network • Web site saved to home screen • Web is connected: web site is not just a web site • Users and platforms have freedom • They determine how your web site is used • Browsers and other services scrape web sites continuously
  40. Meta info • Web sites use meta tags and manifest

    files • Structure of content (web app, site, AMP, article...) • Machine-readable content (event dates, blog authors...) • How content should be presented (mobile status bar, dark mode...)
  41. Accessibility • Web is an open, universal platform • Most

    of us have two eyes and 10 fingers • Most people. • Some rely on aids to use digital services • Some have impairments • Some are not familiar with the target platform or conventions • Some services are experienced in less traditional environments
  42. URLs • URLs need to be user friendly • They

    should be canonical • They shouldn't be too long • They can encode information that's important
  43. Persistence How can user's experience persist when they visit a

    web service multiple times? • URLs • Cookies • LocalStorage • Server-side storage
  44. Auditing • Always audit your work! • For the user,

    end result matters - not the design on paper • Be ready to make changes when it doesn't work in practice
  45. Tools • Content analysis: https://www.similarweb.com/ • Google's Lighthouse: https://developers.google.com/speed/ pagespeed/insights/

    • Pingdom's speed test: https://tools.pingdom.com/ • Mobile test: https://search.google.com/test/mobile-friendly • https://www.thinkwithgoogle.com/feature/testmysite • https://gtmetrix.com/ • https://app.neilpatel.com/en/seo_analyzer/ • https://yellowlab.tools
  46. HTML • HTML is structured content • CSS determines how

    HTML elements should be rendered by a browser • HTML and CSS are declarative languages • https://html.spec.whatwg.org/#toc-semantics
  47. CSS

  48. Vue

  49. PHP

  50. SEO