This repository is experimental and NOT ready for production.
This repository contains the Web Components version of the Emulsify UI Kit library. The components are implemented using Lit. The idea behind this repository is to provide tools for experimenting, building and testing components that will be later integrated into an extended version of the UI Kit project.
The Emulsify UI Kit is a tool for designers and front-end engineers to build high-quality user interfaces effectively and efficiently while maintaining WCAG 2.1 AA standards and project performance goals.
The Emulsify UI Kit gives users access to a library of prebuilt tokens and components that follow accessibility best practices and are easy to customize. The components in the kit are fully responsive, carefully designed, and can be implemented for modification in every project.
- Create efficiency in the user interface design process
- Establish consistency in user interface design
- Maintain high accessibility standards
The Emulsify UI Kit has two distinct building blocks: the Figma and the code repo. These two items are kept in alignment for a seamless experience.
- Handcuffs. If using the kit is a barrier to a successful project, do what you need to for your project to be successful and provide feedback on why the kit was a barrier.
- A "default" visual design. Your visual design work should be tailor-made for each of your clients.
npm install
npm run develop
This version only supports developing and previewing the components within Storybook. Support for building components for use in Drupal or frontend frameworks will be added later.
View the deployed storybook instance
First, get your own copy of the Emulsify UI kit from the Figma community.
The strength of this UI kit leans on its connection with Figma via Tokens Studio.
To connect the Figma file with your code, see the instructions in the Tokens Studio documentation.
A complete component meets the following criteria:
- Design tokens are defined as their own set in Figma, in the Token Studio plugin, and they use references to values defined in
semantic
as much as possible. - The component has an independent frame in Figma.
- The component's styles uses the generated design tokens as much as possible. See button example below.
- A component's story connects to the corresponding Figma frame, defined in
.storybook/configma.json
. - The component passes WCAG 2 AA.
See this whiteboard that outlines the preferred naming convention for design tokens.
- In Figma, select the frame to share and activate the Share button (in the upper right hand corner).
- In the share modal make sure that "Link to selected frame" is checked and activate "Copy link".
- Open
.storybook/configma.json
and confirm the following: - Using this example:
https://www.figma.com/file/[FIGMA_FILE_ID]/[FIGMA_FILE_NAME]?node-id=[NODE_ID]
- Confirm that
url
has the correctFIGMA_FILE_ID
andFIGMA_FILE_NAME
. - Add your component name to the file as a key with the
NODE_ID
being the value. - Import
configma.json
into your story. - In the parameters of your story, include
figma.$KEY
as shown below.
parameters: {
design: {
type: 'figma',
url: figma.url + figma.button,
},
},
To come. TKTK