-
Notifications
You must be signed in to change notification settings - Fork 224
Naming of Things
Viljami Salminen edited this page Sep 29, 2018
·
16 revisions
We use the names to communicate about Tokens
, Elements
, Patterns
and Templates
. Hence, they must be short, meaningful and pronounceable. Each name must be:
- Verb Rather Than Noun: To understand the purpose, focus on what it does rather than what you think it is. This helps us broaden potential use cases as well as define its purpose more accurately.
- Meaningful: Not over specific, not overly abstract.
- Short: Maximum of 2 or 3 words.
- Pronounceable: We want to be able talk about them.
- Capitalized: We recommend naming components with a capital letter, so that they are not mistaken for an HTML tag.
- Custom element spec compliant: Don’t use reserved names. Reserved names include:
* annotation-xml * color-profile
* font-face * font-face-src
* font-face-uri * font-face-format
* font-face-name * missing-glyph
There are a few rules around prefixing things, that you’ll want to follow to keep the system consistent:
-
Tokens: Token names always start with a category name and a hyphen. For example
color-
orspace-
. If you have subcategories, include them in the naming as well and separate with hyphen, Example:color-primary-
orcolor-secondary-
. - Element, Pattern & Templates: Names don’t have a prefix, but should be compatible with existing and future HTML elements and start with a capital letter.
Vue Design System uses the following convention:
-
Default: The default unit is always called
medium (m)
. -
Smaller than default: When you want to define a size that is smaller than
medium
it should be named eithersmall (s)
,x-small (xs)
,xx-small (xxs)
and so on. -
Larger than default: When you want to define a size that is larger than
medium
we uselarge (l)
,x-large (xl)
,xx-large (xxl)
and so on. A concrete example of this looks like:
size_xxl:
value: "64px"
size_xl:
value: "48px"
size_l:
value: "24px"
size_m:
value: "16px"
size_s:
value: "13px"
size_xs:
value: "11px"
size_xxs:
value: "8px"
Vue Design System uses the following convention:
-
Default: The default base color is always called
color-{name}
. -
Darker than default: When you want to define a shade, use either
color-{name}-dark
,color-{name}-darker
orcolor-{name}-darkest
. -
Lighter than default: When you want to define a tint, use
color-{name}-light
,color-{name}-lighter
,color-{name}-lightest
and so on. A concrete example of this looks like:
color_red_darker:
value: "hsla(7, 83%, 33%, 1)"
color_red_dark:
value: "hsla(7, 83%, 43%, 1)"
color_red:
value: "hsla(7, 83%, 53%, 1)"
color_red_light:
value: "hsla(7, 83%, 63%, 1)"
color_red_lighter:
value: "hsla(7, 83%, 73%, 1)"
Read also Terminology section which is closely tied to “Naming of Things”.
- Getting Started: How to install and run Vue Design System.
- Terminology: Introduction to the system concepts and its hierarchy.
- Naming of Things: Naming is hard, so it’s good to have clear guidelines.
- Directory Structure: What goes where and why.
-
Working with the System: Concrete examples on how to work with
Tokens
,Elements
,Patterns
andTemplates
. - Editing Living Documentation: How to customize the living system documentation.
- Spacing: A framework for creating a predictable and harmonious spacing.
- Component Status: Clear labels that reflect the state of completion.
- Component QA: How to review new components and keep the quality high.
- Contributing: A set of guidelines for contributing to the system.
- Code of Conduct: By participating you agree to abide by its terms.
- Frequently Asked Questions: How to use icons, how to use font-face, etc.
- Changelog: See releases pafge for the full changelog.