DEV Community

Cover image for Design Systems (Part II: Design Language)

Design Systems (Part II: Design Language)

Emma Bostian ✨ on July 26, 2019

In part one we took a look at the foundations of Design Systems. If you haven't read that yet, I suggest you check it out! In this post we'll delv...
Collapse
 
venikx profile image
Kevin Rangel

Hi Emma,

Great post once again. Learning a lot about design systems due to your talks! I had a couple questions related to design system.

  1. Can consistency and flexibility co-exist?
  2. How/when do you draw the line between flexibility VS consistency?
  3. What would be an example of too much flexibility in a design system?

For example, there is a lib called, styled-system, which makes it possible to expose marginRight, marginLeft, ..., paddingLeft, paddingRight, ... to the "consumer" of the design system, but I'm not sure if that's such a good idea. It feels wrong, but I can't really express why and I might be wrong about it.

Thank you for everything you do!
Kind regards,
Kevin

Collapse
 
emmabostian profile image
Emma Bostian ✨

Hey Kevin!

You can absolutely maintain consistency with flexibility; it's all about providing boundaries for said flexibility. For example, allow teams to customize the theme/color palette for different products. So they won't be able to go rogue and add random colors, but they have flexibility to choose options within our bounds.

Too much flexibility is letting developers add custom/rogue values for things :).

Collapse
 
venikx profile image
Kevin Rangel

What about how a component acts on it's surroundings. Like the padding or margin of an icon. Would you expose marginRight, etc or preferably a prop called "dense", which either makes the spacing tight or "normal" rather than giving straight access to modify the internal margin's.

Thread Thread
 
emmabostian profile image
Emma Bostian ✨

You can create a spacing mixin/partial if using Sass to allow developers to add specific values for padding/margin. We use a multiple of 4 and have defined variables to help with this :)

Thread Thread
 
venikx profile image
Kevin Rangel

That helps! Thank you! :)

Collapse
 
gaui profile image
Gudjon

Instead of thinking about elements and components, I like Atomic Design methodology and thinking in terms of atoms, molecules and organisms.

Collapse
 
joelbonetr profile image
JoelBonetR 🥇

I think atomic design can't be properly used on a real project, at least 100%, as you will need different styling for same elements on different parts of a view.
Moreover you'll need those atoms to convert into usable components after all, it simply adds a step, just for adding coherence on a team (i mean avoid everyone to design components as they like instead on keeping same definitions).

Even those facts, Atomic Design is needed nowadays and its useful for many reasons, coherence (as i already said), easy-to-port as front-end framework and easy to generate a theme over it with few overrides (if well implemented).

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao

This is a really awesome article I really learnt a lot from it. My question is how do get people onboard to refine or upgrade when you don't have a dedicated designer in your company especially when it's a small startup that does not have any designers?

Collapse
 
gugadev profile image
Gustavo Garsaky • Edited

Thanks for share this great series, Emma. I have a question respect to the order of the steps. If I don't have an existing application it implies that I can't do a UI audit and without it we can't prioritize accurately. So, what factors do I need to be aware for?

Thanks.

Collapse
 
frankdspeed profile image
Frank Lemanschik • Edited

Ah Your talking about so-called style guides right? bitovi.com/blog/style-guide-driven...

Next time you should maybe apply and use the terms that are known by the industry

Collapse
 
elizabethschafer profile image
Elizabeth Schafer

This is great, thanks for writing this up!

Collapse
 
voidjuneau profile image
Juneau Lim

This is a huge area for certain.
Thank you for the post! This series is a good summary of the gigantic field.

Collapse
 
moughamir profile image
Mohamed Moughamir

Do you recommend creating your own Design System, or use existing ones ?

Collapse
 
karshil2309 profile image
Karshil sheth

As a Entry level engineer in software industry, do I need to start with design or should I start with database first?

Collapse
 
monu180 profile image
Monu Kumar

In-depth information.

Collapse
 
kayla profile image
Kayla Sween

This was a great read! I've almost always been on the maintaining end of a design system, so it's really insightful to read about getting one set up. Thanks, Emma! Can't wait for the next one!

Collapse
 
bernardbaker profile image
Bernard Baker

Great article @emmabostian . Did you take this investigation any further?

Collapse
 
chrisachard profile image
Chris Achard

Do you have any advice for how to share your design system with your team (what tools to use, etc) - and how to get and gather feedback from stakeholders?

Thanks for the post!