@ Aumni - a JPM company
Accessibility
Strive to enable all individuals of diverse needs and in varied circumstances to be able to use our products
Simplicity
We provide clarity by reducing complexity in the development process and the user experience
Collaborative
We foster collaboration through a shared language and shared patterns streamlining workflows for designers and devlopers.
Accessibility
Strive to enable all individuals of diverse needs and in varied circumstances to be able to use our products
These principles led us to choose to hew as close to the web platform as we can.
2. The Web is responsive (visually accessible on all devices) by default
1. HTML has Accessibility as a first class consideration
3. Knowledge of the Web platform is a prerequisite for Web development
4. Knowledge of the Web platform is transferable from previous experience and to new roles.
5. Using the language of the Web platform provides a built in, well established, generally understood, and well documented language
7. Answers to questions are very searchable.
6. Documentation already exists
8. HTML is highly composable.
9. Current and emerging APIs make JS solutions less necessary
10. Polyfills can bridge the gaps
2. Elements can be progressively enhanced by extending native elements as Web Components
1. Much of our component library are plain HTML elements styled in a global stylesheet
3. More complex components can be framework agnostic using Web Components
4. Shadow DOM hides implementation details & Declarative Shadow DOM make SSR more meaningful.
5. Slots and :part() help us control access to specific parts of the internals
How does a design system live side-by-side with legacy design systems or no design system?
<button class="arc-button">ARC Button</button>
<button>Not an ARC Button</button>
[is^="arc-"] {
button& {
--color: var(--arc-primary);
background-color: var(--color);
&:hover {
background-color: oklch(from var(--color) calc(l * .95) c h);
}
}
}
<button is="arc-button">ARC Button</button>
<button>Not an ARC Button</button>
Enhanced Native Elements allows one to extend the native functionality and semantics of native elements with additional features.
Useful for when only light modification is desired.
Enhancer Web Components augment native elements in a way that does not interfere with the native functionality. They are like a layer on top of native elements
The sky's the limit. Web Components are very versatile, from the simple, to the very complex; from light augmentation, to entire applications; web components can do it all... for a price.
The DX for creating Web Components is... not great. What makes it appealing though is it's ability to create great DX for consumers of Web Components.
A Web Component Tutorial
Another Web Component Tutorial?