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

Building design systems at GitHub

Diana
December 15, 2016

Building design systems at GitHub

A lightning talk for the Design Systems Coalition NYC meetup covering where we started and some of the lessons learned this year.

Diana

December 15, 2016
Tweet

More Decks by Diana

Other Decks in Design

Transcript

  1. Building design
    systems at GitHub
    Diana Mounter
    @broccolini

    View Slide

  2. Style guide status:
    End of 2015

    View Slide

  3. primercss.io
    Primer
    modules

    View Slide

  4. primercss.io github.com
    GitHub app
    Primer
    modules

    View Slide

  5. primercss.io github.com
    GitHub app
    More CSS
    Primer
    modules

    View Slide

  6. More CSS
    Primer
    modules
    Problems
    No docs
    }

    View Slide

  7. Problems
    • Piles and piles of CSS that does the same thing
    • Inconsistent styles
    • Inconsistent naming conventions

    View Slide

  8. This made our CSS:
    • Hard to maintain
    • Hard to de-bug
    • Hard to design & prototype with

    View Slide

  9. Which led to:
    • Bugs in production
    • Lengthy design-to-development times
    • Inconsistencies in the user experience

    View Slide

  10. A grassroots
    design systems team

    View Slide

  11. Core Maintainers Contributors

    View Slide

  12. Quick wins, big impact

    View Slide

  13. h1
    h2
    h3
    Utilities
    Single-purpose classes that do one thing well.

    View Slide

  14. Custom CSS Re-usable CSS
    Custom CSS
    Custom CSS
    Custom CSS
    Custom CSS
    Custom CSS
    Custom CSS
    Custom CSS
    Custom CSS
    Re-usable CSS
    Re-usable CSS

    View Slide

  15. Custom CSS Re-usable CSS
    Custom CSS
    Custom CSS
    Re-usable CSS
    Re-usable CSS
    Re-usable CSS
    Re-usable CSS
    Re-usable CSS

    View Slide

  16. Started to build systems

    View Slide

  17. 16 breaks down
    8 8
    4 4
    4 4
    2 2
    2 2
    2 2
    2 2
    Spacing scale

    View Slide

  18. 16 breaks down, and adds up to whole
    numbers more easily.
    32 32
    32 32
    32 32
    32 32
    64 64
    64 64
    128 128
    64

    View Slide

  19. Then we ruined
    everyone’s lives

    View Slide

  20. View Slide

  21. View Slide

  22. Typography scale
    Type scales based on powers of two often
    end up in more sensible numbers.

    View Slide

  23. Typography scale

    View Slide

  24. 17.5

    View Slide

  25. Brent Jackson
    http://jxnblk.com/writing/posts/mathematical-web-typography/
    Mathematical Web
    Typography

    View Slide

  26. Clear and consistent
    naming convention

    View Slide

  27. Adam Morse
    CSS and Scalability
    "If I’m reading html, I
    want to know what the
    css is going to do.”

    View Slide



  28. Saved!

    View Slide

  29. .text-gray-dark
    .text-gray
    .text-gray-light
    .bg-blue-dark
    .bg-blue
    .bg-blue-light
    .btn
    .btn--small
    .btn--green-dark
    .card
    .card--small
    .card--large

    View Slide

  30. What’s important for your
    naming convention?
    • Searchablity
    • Clarity
    • Scannability
    • Intention

    View Slide

  31. Documentation

    View Slide

  32. primercss.io github.com
    GitHub app
    More CSS
    Primer
    modules
    More CSS No docs
    }

    View Slide

  33. primercss.io github.com
    GitHub app
    More CSS
    Primer
    modules

    View Slide

  34. A company style guide
    has different needs to an
    open-source framework

    View Slide

  35. All the CSS and all the
    docs in one place

    View Slide

  36. Style guide github.com
    GitHub app
    Custom
    CSS
    Primer
    modules

    View Slide

  37. Primer is our CSS framework

    View Slide

  38. Primer is our CSS framework
    The style guide is documentation
    on how to use Primer

    View Slide

  39. Principles

    View Slide

  40. Sure!
    You’re gonna make it OOCSS/
    functional/atomic/BEM right?

    View Slide

  41. When you actually see the code.

    View Slide

  42. Lots of arguments
    vibrant discussions

    View Slide

  43. Principle led development!

    View Slide

  44. Write down your principles!

    View Slide

  45. Sometimes it can feel like
    Sisyphean task

    View Slide

  46. Break it down

    View Slide

  47. THE
    AWESOME
    COMPONE
    NT
    Show and tell

    View Slide

  48. Communication

    View Slide

  49. 58 comments

    View Slide

  50. Explain the why 

    behind the what

    View Slide

  51. Communicate to more people
    more often

    View Slide

  52. View Slide

  53. Make changes and
    status clear & obvious

    View Slide

  54. View Slide

  55. View Slide

  56. View Slide

  57. View Slide

  58. Seek feedback

    View Slide

  59. View Slide

  60. View Slide

  61. Respond in a timely manner, and

    View Slide

  62. Respond in a timely manner, and
    don’t wait for them to call you

    View Slide

  63. View Slide

  64. View Slide

  65. View Slide

  66. View Slide

  67. View Slide

  68. What next?

    View Slide

  69. Audit components

    View Slide

  70. Make it public
    DRAFT

    View Slide

  71. Hopes for the future…

    View Slide

  72. Style guide driven design

    View Slide

  73. Where does design happen?

    View Slide

  74. “Design decisions run all the
    way through a product, like
    mould in a good cheese”
    Cenny D
    What design sprints are good for

    View Slide

  75. Figma
    Sketch Pen & paper
    Prototyping
    in code
    Production
    implementation
    Photoshop
    Usability testing
    Where does design happen?
    Prototyping
    in InVision

    View Slide

  76. How can design systems
    be in all those places?

    View Slide

  77. Thank you.

    View Slide