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

Drupalcon 2017: Pattern Language: Pattern Libraries in the Wild

Drupalcon 2017: Pattern Language: Pattern Libraries in the Wild

dirtystylus

April 26, 2017
Tweet

More Decks by dirtystylus

Other Decks in Technology

Transcript

  1. Baltimore
    Drupalcon 2017
    Pattern Language: Pattern
    Libraries in the Wild

    View Slide

  2. Hi.
    Mark Llobrera
    Technology Director, Bluecadet Philadelphia
    @dirtystylus
    @bluecadet

    View Slide

  3. Descriptive, Not
    Prescriptive
    I’m not telling you how to do this
    stuff. But I hope all of this helps.

    View Slide

  4. BRIC
    bricartsmedia.org

    View Slide

  5. Science Friday
    sciencefriday.com

    View Slide

  6. Institute for Advanced Study
    ias.edu

    View Slide

  7. Albright-Knox Art Gallery
    albrightknox.org

    View Slide

  8. Patterns (Components)
    are a bit of Big Deal

    View Slide

  9. Why?

    View Slide

  10. Why?
    —We want to create visually interesting layouts that
    help support our content.

    View Slide

  11. (And)
    —We want to reduce complexity
    —We want to encourage consistency
    —We want to support flexibility

    View Slide

  12. We’ve got design techniques:
    —Style Tiles: styletil.es
    —Element Collages: v3.danielmall.com/articles/rif-
    element-collages/

    View Slide

  13. We’ve got CMS structures to enable this:
    —Matrix (Expression Engine, Craft)
    —ACF FCF (WordPress)
    —Paragraphs (Drupal)

    View Slide

  14. We’ve got Pattern Library frameworks
    Pattern Lab: patternlab.io
    Fractal: fractal.build
    (See styleguides.io for more.)

    View Slide

  15. We’ve got an entire books on ways to do this:
    —Front-End Style Guides by Anna Debenham
    —Atomic Design by Brad Frost
    —Modular Web Design by Nathan Curtis

    View Slide

  16. So What’s
    the Problem?

    View Slide

  17. The Problem is Us.
    More specifically, humans.
    Even more specifically, language.

    View Slide

  18. Small Goals
    If you can talk about specific things
    using the same words,
    you’ve accomplished something.

    View Slide

  19. …we should start with
    language, not interfaces1
    — Alla Kholmatova
    1 “The Language of Modular Design” by Alla Kholmatova

    View Slide

  20. —Establish consensus
    —Name modules (components) by function, not
    position

    View Slide

  21. Do this together.

    View Slide

  22. Multi-disciplinary teams
    —content person
    —designer
    —developer
    —(creative director)

    View Slide

  23. Consensus > Best Laid
    Plans

    View Slide

  24. Example:
    —“Billboard” vs “Promo”
    —“Callout” vs “House Ad”
    Sometimes you have to adopt
    language
    to move forward.

    View Slide

  25. Liminal Spaces
    (In-between)

    View Slide

  26. …when thinking about
    patterns, content
    strategists are primarily
    thinking about Content
    patterns,

    View Slide

  27. designers are primarily
    thinking about Display
    patterns, and

    View Slide

  28. front-end developers are
    responsible for bringing
    the two together.2
    — Daniel Mall
    2 “Content & Display Patterns” by Daniel Mall

    View Slide

  29. Content Patterns
    —Words
    —Post-Its / notecards
    —With lots of tape
    —Helpful question: what does this need to be
    successful/complete?

    View Slide

  30. This can get messy.

    View Slide

  31. This can get messy.

    View Slide

  32. View Slide

  33. Display Patterns
    —Wires, usually
    —Low-res or high-res? Up to the designer
    —Combine design snippets with wires to run
    design/concept exploration on a parallel track

    View Slide

  34. Problems with Doing This in Sequence
    —All the cards can be too abstract
    —Wires alone hide complexity
    —People absorb info differently. There’s a chicken/
    egg problem.

    View Slide

  35. Work in the middle
    —Mash your Content and Design Patterns together
    early

    View Slide

  36. Cards and Wires

    View Slide

  37. Cards and Wires

    View Slide

  38. Derive Your Patterns

    View Slide

  39. Derive Your Patterns

    View Slide

  40. Work in the middle
    —Mash your Content and Design Patterns together
    early
    —Cut up your wireframes, and start stacking similar
    modules/components. That allows you to start
    seeing redundancy

    View Slide

  41. Get Into the
    Browser Early

    View Slide

  42. View Slide

  43. View Slide

  44. Photo: Justin Grimes (https://www.flickr.com/photos/notbrucelee/5696237908/) CC BY-SA 2.0

    View Slide

  45. Show Patterns
    in Context

    View Slide

  46. —Have an opinion: is this visual pattern appropriate
    for this content type?
    —Situate your components in a scenario
    —If your collective team understands the small
    pattern, they also need to understand its interplay
    with other patterns
    —Build “Presets” for your client—can be in your
    documentation, can be unpublished nodes to
    clone in the CMS admin

    View Slide

  47. Example Pattern
    Documentation

    View Slide

  48. Pattern Index

    View Slide

  49. View Slide

  50. Pattern Context

    View Slide

  51. View Slide

  52. Template Combinations

    View Slide

  53. View Slide

  54. Combinations
    —Cards <—> Wires
    —Small Pattern <—> Collection of Patterns

    View Slide

  55. Narrow the
    abstraction gap

    View Slide

  56. Hooking up to the CMS

    View Slide

  57. (Possibly) Helpful Translations
    —Content Pattern == Content Type or Paragraph
    Bundle
    —Display Pattern == template (tpl/twig) file
    —Collection == Page/Node/View template

    View Slide

  58. Shortcodes
    drupal.org/project/shortcode
    Use this for WYSIWYG stuff that doesn’t have a ton
    of structure.
    —Pull Quotes
    —Tables
    —Lists
    —Images (L/R/C, Full-bleed)

    View Slide

  59. WYSIWYG Style
    Preset

    View Slide

  60. Paragraphs
    —drupal.org/project/paragraphs
    —We came in sideways via Matrix (Expression
    Engine, Craft) and ACF Flexible Content Field
    (WordPress)
    —I hate the name, but they are super useful
    —Structured data, with flexibility

    View Slide

  61. Mapping to
    Paragraph
    Bundles

    View Slide

  62. Example: Princeton
    Admission
    Flexible Grid

    View Slide

  63. View Slide

  64. —Flex Grid Row: Full
    —Flex Grid Row: Half plus Half
    —Flex Grid Row: Half plus
    Quarter
    —Flex Grid Row: Quarter plus
    Half

    View Slide

  65. —Flex Grid Column: Full Width Custom
    —Flex Grid Column: Full Width - Image Left
    —Flex Grid Column: Full Width - Image Right

    View Slide

  66. —Flex Grid Column: Half Width - Split Image Left
    —Flex Grid Column: Half Width - Split Image Right
    —Flex Grid Column: Half Width - Image
    —Flex Grid Column: Half Width - Text
    —Flex Grid Column: Half Width Video Custom
    —Flex Grid Column: Half Width Custom
    —Flex Grid Column: Half Width News and
    Announcements

    View Slide

  67. —Flex Grid Column: Quarter Width Custom
    —Flex Grid Column: Quarter - Image
    —Flex Grid Column: Quarter - Text

    View Slide

  68. 17(!!)

    View Slide

  69. What can you do?

    View Slide

  70. Building a Cake (Site)
    in Layers

    View Slide

  71. View Slide

  72. View Slide

  73. View Slide

  74. View Slide

  75. View Slide

  76. Building a Cake (Site)
    in Slices

    View Slide

  77. View Slide

  78. View Slide

  79. View Slide

  80. View Slide

  81. View Slide

  82. View Slide

  83. View Slide

  84. View Slide

  85. Give the Complexity
    Time to Settle In

    View Slide

  86. Focused Practice

    View Slide

  87. View Slide

  88. Next Steps/Hopes and Dreams
    —Getting context into the CMS authoring
    environment
    —Follow Eileen Webb’s work (@webmeadow) on
    Authoring Experience (AX)

    View Slide

  89. twitter.com/webmeadow/status/
    809074672012660736

    View Slide

  90. View Slide

  91. Holy Grail
    —Style Guide -> CMS -> Style Guide
    —Visual, contextual cues in edit form

    View Slide

  92. To Recap
    —Start with language
    —Work in the middle/narrow the abstraction gap
    —Show things in context
    —Build in slices—get your client focused practice in
    their CMS

    View Slide

  93. Thank you.

    View Slide

  94. Join Us for Contribution
    Sprints

    View Slide

  95. First-Time Sprinter Workshop:
    9:00am-12:00pm, Room: 307-308
    Mentored Core Sprint:
    9:00am-12:00pm, Room: 301-303
    General Sprints:
    9:00am-6:00pm, Room: 309-310

    View Slide

  96. Mark Llobrera
    Technology Director, Bluecadet Philadelphia
    @dirtystylus
    @bluecadet
    https://events.drupal.org/node/17514

    View Slide