From 5bc017ab10d1b9c230580383c57f5f851329f5c8 Mon Sep 17 00:00:00 2001 From: Matthew Dingee <52176351+humancompanion-usds@users.noreply.github.com> Date: Wed, 4 Oct 2023 17:37:46 -0400 Subject: [PATCH 1/3] Adds a page on creating components in Figma. [Fixes 2119] --- src/_about/designers/creating-components.md | 188 ++++++++++++++++++ src/_about/designers/index.md | 1 + src/images/about/designers/figma/colors.png | Bin 0 -> 15618 bytes .../designers/figma/component-config.png | Bin 0 -> 22782 bytes .../about/designers/figma/spacing-logo.png | Bin 0 -> 2527 bytes .../about/designers/figma/type-settings.png | Bin 0 -> 13222 bytes 6 files changed, 189 insertions(+) create mode 100644 src/_about/designers/creating-components.md create mode 100644 src/images/about/designers/figma/colors.png create mode 100644 src/images/about/designers/figma/component-config.png create mode 100644 src/images/about/designers/figma/spacing-logo.png create mode 100644 src/images/about/designers/figma/type-settings.png diff --git a/src/_about/designers/creating-components.md b/src/_about/designers/creating-components.md new file mode 100644 index 000000000..994bd071a --- /dev/null +++ b/src/_about/designers/creating-components.md @@ -0,0 +1,188 @@ +--- +layout: documentation +title: Creating components +permalink: /about/designers/creating-components +has-parent: /about/designers/ +intro-text: A guide to creating components in Figma at VA. Following this guide ensures that any component you contribute will meet the quality standards set by the Design System. +anchors: + - anchor: Setup + - anchor: Documentation and naming + - anchor: Construction + - anchor: Design tokens + - anchor: Visual quality + - anchor: Quality assurance +--- + +## Setup + +All components should have "Simplify all instances" checked. It helps reduce visual clutter when designers are using the components. + +{% include component-example.html alt="Figma Component configuration." file="/images/about/designers/figma/component-config.png" caption="Turn on Simplify all instances in Component Configuration." %} + +## Documentation and naming + +* **Add a link to documentation on design.va.gov.** +* **Make sure the name matches the component name displayed in Storybook.** + +## Construction + +### Auto layout + +* [Learn about using auto layout](https://help.figma.com/hc/en-us/articles/5731482952599-Using-auto-layout) +* [Explore auto layout properties](https://help.figma.com/hc/en-us/articles/360040451373-Explore-auto-layout-properties) +* **Components must be set up to automatically resize vertically as text changes.** Typically, a component’s height will need to be set to “hug” to accomplish this. +* **Components must be set up for responsive widths.** Here are some potential ways to achieve this: + * Variant widths may need to be set to "fill" at 1024px for desktop or 320px for mobile (Note: "fill" will only be available if this component is within a container.) + * Constraints may need to be set to "left and right" or "scale". +* **Autolayout properties may need to be customized depending on the component's design.** + +### Properties + +* [Explore component properties](https://help.figma.com/hc/en-us/articles/5579474826519-Explore-component-properties) +* Properties should be listed in an order that mimics the component’s visual layout from top to bottom and left to right. +* For main components, show nested properties as appropriate. +* Properties should be named and set up consistently: + * Mode: Always appears first. Some options include Light and Dark or languages. + * Type: Appears below Mode. Used for things like Primary / Secondary or H1 / H2. + * Layout: Appears below Type. Used for things like Horizontal / Vertical or varying quantities. + * State: Appears below Layout. Used for things like Focus / Active or Open / Closed or Active / Inactive. +* Booleans should be named and set up consistently. + * Used to show/hide icons, buttons, content, etc. + * Always name them descriptively – i.e. icon (left) / icon (right), button (secondary), header (show/hide). +* Instance swaps should be named and set up consistently. + * Preferred values should be set as appropriate. + * Always name them descriptively – i.e. icon (left) / icon (right). +* Text properties should be named and set up consistently. + * Add content fields for every editable content area. + * Header and title fields should be named descriptively – i.e. header / title or header 1, header 2, etc. + * Body copy fields should always be named “content”. + * Fields such as labels, tags, and buttons should be named descriptively – i.e. button text + * Layers should also be named descriptively and not "Frame 1". + +### States + +The following states should be depicted on all components: + +* Default +* Hover +* Active +* Focus + +### Sub-components + +For any sub-components that are used to build another component that should NOT be available to a designer using the library, prefix the component with an underscore or period (i.e “_” or “.”). This will make those components “private” to the current Figma file. It will not be exposed for a designer to use on it’s own with connected to the library. + +### Variations + +The Design System Example Library will show a default variation and then any other variations the component supports. This may be as simple as the [states](#states) listed above or a more complicated set. + +In addition, all variations are shown at mobile and desktop viewport widths. If the design for a component doesn't change it is acceptable to only show a variation at the narrowest width. + +## Design tokens + +All components should be connected to the VADS Component Library styles & variables. + +* All components should be connected to the proper style or variable/token  +* **Colors:** Connected to the correct color token (not primitive!) found in the local variables library. +* **Typography:** Connected to the correct text style found under local styles. +* **Spacing:** Connected to the correct spacing token or primitive.  +* **Icons:** Connected to correct icon found on foundation page. + + +## Visual quality + +### Color + +All colors should be pulled from the variables in the VADS Figma file. + +* **Use variable tokens (NOT primitive) for colors.** To find variable tokens, look under libraries when you select the color menu and scroll past the primitives collection to find tokens. + +{% include component-example.html alt="VADS color token panel in Figma." file="/images/about/designers/figma/colors.png" caption="Be sure to scroll past the primitives to get to the VADS color tokens." %} + +### Typography + +All text styles should be pulled from the VADS Figma file.  + +* Variables are not available for text so use local styles. +* Make sure your text uses the correct resizing: + * Auto width: Component will expand to the right when changing text. + * Auto height: Component will expand downward when changing text. + * Fixed size: Component will stay the same size regardless of the text changing. + +{% include component-example.html alt="Figma Type settings panel." file="/images/about/designers/figma/type-settings.png" caption="Be sure to select the correct resizing scheme." %} + +### Spacing + +* **Apply spacing variables whenever possible.** Look for the logo below to access spacing variables. + +{% include component-example.html alt="Figma spacing logo." file="/images/about/designers/figma/spacing-logo.png" caption="Spacing variables can be found with auto layout, radius, and width and height." %} + +### Iconography + +* **Only use icons from the VA Design System.** Currently, these are [Font Awesome version 5.15.4 icons]({{ site.baseurl }}/foundation/icons) however, we are moving to the [USWDS icon set](https://designsystem.digital.gov/components/icon/). Some USWDS v3-based components are already using USWDS icons. + +## Quality assurance + +There are multiple levels of quality assurance performed on components: + +1. **Test of the design of the component in a design tool.** The Design System Team tests components built in Figma (and Sketch, UXPin, et. al) +2. **Test of the built web component.** The Design System Team then tests the component again once it is built as a web-component. +3. **Governance review of the component.** Finally, the Governance team tests and reviews the component for design, content, information architecture, and accessibility. They also review the design assets and guidance on design.va.gov. + +Some of the tests, such as color contrast checks, that the Design System Team performs will be re-tested by the Governance team in the built component. Thus ideally designers will perform these tests themselves when creating a component. + +### Preparing to test a component + +* Connect your Figma design file to the Design System library found in the Assets panel, Team Library (open book icon). +* After connecting to the library, use the Assets panel to view all components. + +### How the Design System Team tests components + +Essentially, we are looking for all of the things mentioned above. + +#### Documentation and naming + +- [ ] Does the component naming make sense and follow Storybook (if the component has been built)? +- [ ] Does the component link to guidance in design.va.gov? + +#### Auto layout + +* Components should be as reactive as possible. Most, if not all, components should be able to be resize for either mobile, tablet, or desktop viewport widths. +* The correct spacing should be applied to auto layout. +* Try to break the component! + * Test on asset NOT parent component + * Expand/shrink the asset and put into containers. + * Change body text and/or header from a sentence to paragraph. + * Ensure text wraps correctly. + * Ensure the component expands or shrinks with additional text. + +#### Properties + +Not all components need every property. It will differ component to component. Test all combinations of properties. + +* **Variants:** Should be used when the component has several states i.e primary, secondary, error. +* **Boolean:** Should be used if the component has a part that does not always need to be shown i.e icons, nested components and mobile view. +* **Text:** Should be used when the test on a component needs to be changed. There are some exceptions to this: If the component has several variants that need to have different/specific text. When you change the text on the parent component it will change all of the variants. +* **Instance Swap:** Should be used if there is a part of the component that needs to be switched out but nothing else needs to change (i.e. iconography). +* **Color contrast** [Review our use of color guidelines](https://depo-platform-documentation.scrollhelp.site/collaboration-cycle/prepare-for-an-accessibility-staging-review#use-of-color). Tip: The plugin "Contrast" can help with this check. + +#### States + +* Ensure that all [states](#states) are shown. + +#### Sub-components + +* Ensure any [sub-components](#sub-components) are named correctly. + +#### Variations + +* If the component already exists in the system, ensure all variations match what is built in [Storybook](https://design.va.gov/storybook/). + +#### Tokens and variables + +* All components should be connected to VADS Component Library styles & variables . +* All components should be connected to the proper style or variable/token: + * **Colors:** Connected to the correct color token (not primitive!) - can be found in local variables library. + * **Typography:** Connected to the correct text style - under local styles. + * **Spacing:** Connected to the correct spacing token or primitive. + * **Icons:** Connected to correct [icon]({{ site.baseurl }}/foundation/icons). \ No newline at end of file diff --git a/src/_about/designers/index.md b/src/_about/designers/index.md index c9de710dc..49bb0b5d5 100644 --- a/src/_about/designers/index.md +++ b/src/_about/designers/index.md @@ -6,6 +6,7 @@ permalink: /about/designers/ intro-text: Documentation and resources for designers. sub-pages: - sub-page: Design Libraries + - sub-page: Creating components - sub-page: Sketch for teams at VA --- diff --git a/src/images/about/designers/figma/colors.png b/src/images/about/designers/figma/colors.png new file mode 100644 index 0000000000000000000000000000000000000000..11edce3499aa1616fecd55629219cf963151ee42 GIT binary patch literal 15618 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%0DJq@Jia1LbtJ7wLYxQ8m6j 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 literal 0 HcmV?d00001 diff --git a/src/images/about/designers/figma/spacing-logo.png b/src/images/about/designers/figma/spacing-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..bd9549bacfde0dab10549ac0b2a7f6334a8956ba GIT binary patch literal 2527 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 E0s9M;KmY&$ literal 0 HcmV?d00001 diff --git a/src/images/about/designers/figma/type-settings.png b/src/images/about/designers/figma/type-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..22b72ebc3d2ce3be6e5a99596b80aeec859e3b9e GIT binary patch literal 13222 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 Qcmu$do;)bLkMRHh08^wWPXGV_ literal 0 HcmV?d00001 From b8711f0f75bb6fbc5180bf41dd6feb951cf05986 Mon Sep 17 00:00:00 2001 From: Matthew Dingee <52176351+humancompanion-usds@users.noreply.github.com> Date: Thu, 5 Oct 2023 16:22:31 -0400 Subject: [PATCH 2/3] Revises doc based on feedback from Dan. [Amends #2119] --- src/_about/designers/creating-components.md | 37 +++++++++++------- .../about/designers/figma/token-applied.png | Bin 0 -> 8778 bytes .../designers/figma/token-not-applied.png | Bin 0 -> 8646 bytes 3 files changed, 23 insertions(+), 14 deletions(-) create mode 100644 src/images/about/designers/figma/token-applied.png create mode 100644 src/images/about/designers/figma/token-not-applied.png diff --git a/src/_about/designers/creating-components.md b/src/_about/designers/creating-components.md index 994bd071a..1ca48dc47 100644 --- a/src/_about/designers/creating-components.md +++ b/src/_about/designers/creating-components.md @@ -43,12 +43,13 @@ All components should have "Simplify all instances" checked. It helps reduce vis * For main components, show nested properties as appropriate. * Properties should be named and set up consistently: * Mode: Always appears first. Some options include Light and Dark or languages. - * Type: Appears below Mode. Used for things like Primary / Secondary or H1 / H2. - * Layout: Appears below Type. Used for things like Horizontal / Vertical or varying quantities. - * State: Appears below Layout. Used for things like Focus / Active or Open / Closed or Active / Inactive. -* Booleans should be named and set up consistently. - * Used to show/hide icons, buttons, content, etc. - * Always name them descriptively – i.e. icon (left) / icon (right), button (secondary), header (show/hide). + * Type: Appears below Mode. Used for things like Primary, Secondary, or H1, H2. + * Layout: Appears below Type. Used for things like Horizontal, Vertical, or varying quantities. + * State: Appears below Layout. Used for things like Focus, Active, or Open, Closed or Active, Inactive. +* Booleans should be named and set up consistently: + * Booleans can be used to show/hide icons, buttons, content, etc. + * Boolean names should be in the following format: `[Action] [Noun]`. + * The name should also agree with the true value. For example, "Show Icon" instead of "Hide Icon" or "Icon Show/Hide". * Instance swaps should be named and set up consistently. * Preferred values should be set as appropriate. * Always name them descriptively – i.e. icon (left) / icon (right). @@ -56,7 +57,8 @@ All components should have "Simplify all instances" checked. It helps reduce vis * Add content fields for every editable content area. * Header and title fields should be named descriptively – i.e. header / title or header 1, header 2, etc. * Body copy fields should always be named “content”. - * Fields such as labels, tags, and buttons should be named descriptively – i.e. button text + * Fields such as labels, tags, and buttons should be named descriptively – i.e. Button Text + * Naming should use title casing. For example, "Content", "Title", "Show Icon". * Layers should also be named descriptively and not "Frame 1". ### States @@ -70,7 +72,7 @@ The following states should be depicted on all components: ### Sub-components -For any sub-components that are used to build another component that should NOT be available to a designer using the library, prefix the component with an underscore or period (i.e “_” or “.”). This will make those components “private” to the current Figma file. It will not be exposed for a designer to use on it’s own with connected to the library. +For any sub-components that are used to build another component that should NOT be available to a designer using the library, prefix the component with an underscore or period (i.e “_” or “.”). This will make those components “private” to the current Figma file. It will not be exposed for a designer to use on it’s own when connected to the library. ### Variations @@ -80,9 +82,12 @@ In addition, all variations are shown at mobile and desktop viewport widths. If ## Design tokens -All components should be connected to the VADS Component Library styles & variables. +All components should be connected to the VADS Component Library styles & variables. -* All components should be connected to the proper style or variable/token  +{% include component-example.html alt="Design token not applied in Figma." file="/images/about/designers/figma/token-not-applied.png" caption="An Auto layout value that is not using a token." %} +{% include component-example.html alt="Design token applied in Figma." file="/images/about/designers/figma/token-applied.png" caption="An Auto layout value that is correctly using a token." %} + +* All components should be connected to the proper style or variable/token.  * **Colors:** Connected to the correct color token (not primitive!) found in the local variables library. * **Typography:** Connected to the correct text style found under local styles. * **Spacing:** Connected to the correct spacing token or primitive.  @@ -95,6 +100,10 @@ All components should be connected to the VADS Component Library styles & variab All colors should be pulled from the variables in the VADS Figma file. +* **All color combinations much pass color contrast at the following sizes and ratios.** + * All text of 20px or smaller has a 4.5:1 contrast ratio to its background (or better) + * All text of 20px or larger has a 3:1 contrast ratio to its background (or better) + * Non-text elements have a 3:1 contrast ratio to their background and to neighboring elements (or better) * **Use variable tokens (NOT primitive) for colors.** To find variable tokens, look under libraries when you select the color menu and scroll past the primitives collection to find tokens. {% include component-example.html alt="VADS color token panel in Figma." file="/images/about/designers/figma/colors.png" caption="Be sure to scroll past the primitives to get to the VADS color tokens." %} @@ -150,7 +159,7 @@ Essentially, we are looking for all of the things mentioned above. * Components should be as reactive as possible. Most, if not all, components should be able to be resize for either mobile, tablet, or desktop viewport widths. * The correct spacing should be applied to auto layout. * Try to break the component! - * Test on asset NOT parent component + * Test on instance and NOT main component. * Expand/shrink the asset and put into containers. * Change body text and/or header from a sentence to paragraph. * Ensure text wraps correctly. @@ -162,7 +171,7 @@ Not all components need every property. It will differ component to component. T * **Variants:** Should be used when the component has several states i.e primary, secondary, error. * **Boolean:** Should be used if the component has a part that does not always need to be shown i.e icons, nested components and mobile view. -* **Text:** Should be used when the test on a component needs to be changed. There are some exceptions to this: If the component has several variants that need to have different/specific text. When you change the text on the parent component it will change all of the variants. +* **Text:** Should be used when the test on a component needs to be changed. There are some exceptions to this: If the component has several variants that need to have different/specific text. When you change the text on the main component it will change all of the variants. * **Instance Swap:** Should be used if there is a part of the component that needs to be switched out but nothing else needs to change (i.e. iconography). * **Color contrast** [Review our use of color guidelines](https://depo-platform-documentation.scrollhelp.site/collaboration-cycle/prepare-for-an-accessibility-staging-review#use-of-color). Tip: The plugin "Contrast" can help with this check. @@ -180,9 +189,9 @@ Not all components need every property. It will differ component to component. T #### Tokens and variables -* All components should be connected to VADS Component Library styles & variables . +* All components should be connected to VADS Component Library styles & variables. Variables will start with "vads-". * All components should be connected to the proper style or variable/token: * **Colors:** Connected to the correct color token (not primitive!) - can be found in local variables library. * **Typography:** Connected to the correct text style - under local styles. - * **Spacing:** Connected to the correct spacing token or primitive. + * **Spacing:** Connected to the correct spacing token. * **Icons:** Connected to correct [icon]({{ site.baseurl }}/foundation/icons). \ No newline at end of file diff --git a/src/images/about/designers/figma/token-applied.png b/src/images/about/designers/figma/token-applied.png new file mode 100644 index 0000000000000000000000000000000000000000..a930ace761d6ee0d846a56b3fd63599757006a72 GIT binary patch literal 8778 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 literal 0 HcmV?d00001 diff --git a/src/images/about/designers/figma/token-not-applied.png b/src/images/about/designers/figma/token-not-applied.png new file mode 100644 index 0000000000000000000000000000000000000000..ecef44bc7f439eaf1123d4957841f490f79c4de0 GIT binary patch literal 8646 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 Date: Thu, 5 Oct 2023 17:36:18 -0400 Subject: [PATCH 3/3] Typo fix. --- src/_about/designers/creating-components.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/_about/designers/creating-components.md b/src/_about/designers/creating-components.md index 1ca48dc47..25265fc5f 100644 --- a/src/_about/designers/creating-components.md +++ b/src/_about/designers/creating-components.md @@ -100,7 +100,7 @@ All components should be connected to the VADS Component Library styles & variab All colors should be pulled from the variables in the VADS Figma file. -* **All color combinations much pass color contrast at the following sizes and ratios.** +* **All color combinations must pass color contrast at the following sizes and ratios.** * All text of 20px or smaller has a 4.5:1 contrast ratio to its background (or better) * All text of 20px or larger has a 3:1 contrast ratio to its background (or better) * Non-text elements have a 3:1 contrast ratio to their background and to neighboring elements (or better)