Code Monkey home page Code Monkey logo

design-system-checklist's Introduction

Design Systems Checklist

https://designsystemchecklist.com

An open-source checklist to help you plan, build and grow your design system.

Contributing

If you have any information to add to existing sections, please open a pull request.

  • Make sure your proposed content is a standard for at least multiple well-known design systems
  • Add reference links for each new checklist item you add
  • Follow the same tone of voice used across the checklist to make reading easier for visitors

Running locally

$ git clone [email protected]:ardakaracizmeli/design-system-checklist.git
$ cd design-system-checklist
$ npm install
$ npm start

Feedback

Feel free to open github issues or you can reach us directly at:

[email protected] [email protected]

design-system-checklist's People

Contributors

adansonia-7 avatar ardakaracizmeli avatar blvdmitry avatar brennanyoung avatar dependabot[bot] avatar janklever avatar lidaev avatar lobatolais avatar lucasaugustsof avatar raphaeladiniz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

design-system-checklist's Issues

Missing reference for best practise statement

Core / List / Divided variant states:
"Lists with dividers are the best practice advised by many platform guidelines (especially on mobile)."
I am unable to find the resources or sources that illustrates, verify or details this statement.
Checked: Material, Apple Human Interface Guidelines, Foundation, Bootstrap, Fluent, Equinor, DNB.

Should Tooling be solution neutral?

Hey big fan of the overall idea of this, one suggestion:
Under https://designsystemchecklist.com/category/tooling/ "Figma" is listed as checkbox. There are alternative tools out there to design teams such as Sketch, FramerX, AdobeXD and others. It shouldn't really matter which is used. At the moment it kind of reads like an advertisement Figma.
Was just wondering the thinking behind this, and whether it could be reworded to be more neutral.

Possible updates

What do you think about evolving the project even further? Adding new patterns, updating dependencies, and more?

Improvement: i18n

Can we do internationalization? I'm willing to do the pt-BR translation. Any idea on how so i can start a PR?

BTW, I'm loving this project! Already shared it across some ppl at my team and we're eager to start using!

Iconography: Naming and Accessibility

Small correction (or refinement) about icon names.

Name your icons based on what they are, not what they represent. For instance, a trash icon should be named trash, not delete. You can still add related keywords to improve discoverability.

Hmm. I pretty much disagree here. A standard "play" button icon should be called "play" not "triangle". Perhaps the checklist copy could be clearer about what is meant by naming? And what do I mean by naming?

I work primarily with accessibility, and have instructed our designers to make sure that all icons have an 'accessible name'. Our design system has a large collection of icons, and the Figma project associates each one with such a name. UI controls should always have accessible names, and if the control has an icon instead of a text label, the easiest way to do this is to name the icon itself.

We have gone so far as to hard-code these names into an aria-label on the SVG assets themselves. (You need to add role="img" as well for this trick to work). Here's an example, it's an icon used to label a button which clears an input field (circle with cross inside).

<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Clear" height="24px" width="24px">
<g fill="currentColor"><path d="M8.795 8.794a1.005 1.005 0 0 1 1.421 0L12 10.578l1.784-1.783a1.005 1.005 0 1 1 1.422 1.421L13.422 12l1.784 1.784a1.005 1.005 0 0 1-1.422 1.421L12 13.422l-1.784 1.784a1.005 1.005 0 0 1-1.421-1.422L10.579 12l-1.784-1.784a1.005 1.005 0 0 1 0-1.422Z"></path>
<path d="M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12s4.477 10 10 10 10-4.477 10-10Zm-2 0a8 8 0 1 1-16 0 8 8 0 0 1 16 0Z"></path>
</g>
</svg>`

If a dev uses those assets (e.g inside a <button>), they get an accessible name "for free".

This is only a partial solution to the problem of naming icons accessibly. An icon may be used in an unconventional way, requiring a different name, or may be "purely decorative" (in which case, wrap it in a div or span with aria-hidden="true") International versions will need to change the attribute value too.

But having a default accessible name is almost always better than no accessible name at all.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.