Open UI: A Standards-Based Approach to Web Component Design
Published: Apr 21, 2025
By: Joseph Horace
Table of Contents
- Introduction
- Terminology: Understanding Open UI’s Core Concepts
- Charter and Vision
- Adding a Design System
- Creating a Proposal
- Contributing to Open UI
- Roles and Responsibilities in Open UI
- Working Mode & Stages
- Conclusion
openui
Introduction
Open UI is a community project that standardises the structure, behavior, and accessibility of common web interface components.
It was formed under the Web Incubator Community Group (WICG), with the aim of fixing the differences between design systems and helping guide the creation of built-in browser components in the future.
It differs from other frameworks by promoting universal definitions using HTML, CSS, JavaScript, and ARIA — all to ensure interoperability, accessibility, and consistency on the web.
The Open UI Community Group is tasked with facilitating a larger architectural plan for how HTML, CSS, JavaScript, and Web APIs can be combined to provide the needed technology for modern custom user interfaces. Once foundational planning is completed, each necessary web standard will be defined in the appropriate working group. Open UI itself doesn’t create the standards — it gives recommendations to those who do.
Terminology: Understanding Open UI’s Core Concepts
Open UI uses a set of consistent terms to describe components and ideas. Understanding these terms is key to understanding Open UI.
- Specification: A document that defines how a component should work. This includes what parts it has (anatomy), what states it should have, and its accessibility requirements.
- Anatomy: These are the different parts that make up a component. For example, a <popup>'s anatomy is composed of the trigger and the content.
- States: These are the different conditions that a component can be in. They include open, closed, disabled, active, inactive, etc. Normally, they affect how it looks and behaves.
- Behaviors: This defines how a component responds to state changes.
- Component: A reusable interface element, defined by its model, parts, slots, and states.
- Control: A specific type of component that allows user interaction (e.g., buttons, sliders). Controls often manage internal state and behavior through logic tied to user input.
- Composite Component: This is a component that is made up of other components. For example, a <file> upload control is made up of an <input> and a <button>.
- Graduated Specification: A proposal that’s ready to be sent to official web standards groups (like W3C or WHATWG) so they can make it part of the web platform.
Charter and Vision
Background
Since 1993, browsers have had basic UI controls. These include text inputs, buttons, and file uploads. As the web began demanding more interaction, the built-in controls weren’t enough. Developers began depending on plugins and JavaScript frameworks, which caused performance and accessibility issues.
Vision
Open UI wants to improve how web controls work. The goal is to build a flexible system using HTML, CSS, JavaScript, and Web APIs so developers can create user interfaces that are easy to customize and accessible to everyone. The Open UI group will suggest new standards to official groups like WHATWG and CSSWG.
Scope of Work
- Research: Study and document common UI patterns and what developers need.
- Plan: Define Open UI design principles.
- Recommend: Suggest changes to HTML, CSS, JavaScript, ARIA, and Web APIs.
Out of Scope
- Creating new UI patterns.
- Defining default UI look and behavior for specific systems or devices.
Adding a Design System
Design Systems Used for Research
- Ant Design by AFX
- Atlaskit by Atlassian
- Auth0 Styleguide by Auth0
- Boosted by Orange
- Bootstrap by Bootstrap
- Carbon Design System by IBM
- Chromium by Open Source
- Evergreen by Segment
- UI Fabric by Microsoft
- FAST by FAST
- Firefox by Mozilla
- GoodBarber Design System by GoodBarber
- KoliBri by Informationstechnikzentrum Bund
- Lightning Design System by Salesforce
- Lion by ING
- Material Components Web by Google
- Material UI by MUI
- Primer Design System by GitHub
- Semantic UI by Semantic Org
- Spectrum by Adobe
- Stardust UI by Stardust UI
- Tailwind Elements by MDBootstrap
- WAI-ARIA by W3
- Web Platform by WHATWG & W3C
- WebKit by Open Source
... and many more.
Design Systems Analysis
The purpose of analyzing different design systems is to catalog UI standards, utilizing JSON schemas for consistency and machine readability.
What’s a Design System?
A design system is a collection of ready-made parts, assets, and styles used across platforms. Examples include Google’s Material Design and IBM’s Carbon Design.
Design System Criteria
To be useful for Open UI, design systems must fulfill the following criteria:
- Work on different platforms and frameworks
- Focus on accessibility
- Be widely used in real-world apps
- Be well-designed by experienced teams
Adding a Design System
To add a design system to Open UI, create a JSON file (e.g., /antd.json) with the required details such as name, description, and URL.
Adding Components
Inside the JSON file, list your UI components in a JSON array under the key "components". Only consider the main, interactive components—leave out the helper components.
Concepts
Concepts describe how components look or behave.
Adding Images
It’s helpful to include images to show how a component looks or how it works.
Try it Out
Once you add your documentation, the component will appear in the Open UI menu. You can switch views between research and proposal.
Creating a Component Spec
Two pages are required to add a component to Open UI:
- A research page: to collect examples and data
- A proposal page: to suggest a formal version of the component
Creating a Proposal
The Proposal Page summarizes your findings, conclusions, and open questions.
1. Front Matter
Define your component and link to the research page:
menu: Proposals
name: Your Component
pathToResearch: /components/your-component.research
2. Working Through the Template
Use the proposal template to cover all necessary aspects, skipping sections that don't apply but explaining why.
3. Gaining Consensus
Each change in your proposal must be backed by research and discussed in an issue.
4. Avoid Re-defining Existing Specs
Do not redefine existing web standards. If something is missing, propose it and file an issue for the relevant specification.
5. Denoting Open Questions
Mark unresolved questions with:
<p class="question">QUESTION</p>
6. Definitions
- Component: A part of a design system.
- Control: A component with user interaction.
- Composite Component: A component that contains other components (e.g., <file> with <input> and <button>).
Contributing to Open UI
Contributing to Open UI is straightforward. Here is the process:
Join the Community
Start by joining the conversation using the following platforms:
- Discord for weekly meetings and collaboration.
- GitHub to open issues or submit proposals.
- W3C Community Group membership is required for official contributions.
The Contribution Process
Component standardization follows a 4-stage model:
- Research & Proposal: Analyze how a component is implemented across design systems, browsers, and platforms.Share your findings and submit a proposal via a GitHub PR.
- Editor’s Draft: Draft a spec using the component template. This should include anatomy, behavior, states, and accessibility.
- Community Draft: Collect feedback from W3C groups, browser vendors, and developers. Iterate and improve.
- Recommendation: Finalize as a Web Component or spec for native implementation. Update related standards (HTML, CSS, ARIA, AAM).
Roles and Responsibilities in Open UI
Open UI defines clear roles to help collaboration and progress:
- Contributor: Refers to anyone who participates by joining meetings, filing issues, or submitting PRs.
- Champion: This is someone who leads the development of a specific component or proposal. Champions attend meetings, guide specs, and synthesize community feedback.
- Editor: Maintains the specification’s quality and consistency. Editors review PRs, respond to input, and keep the spec aligned with Open UI goals.
- Chair: Oversees the broader project, facilitates meetings, mentors contributors, and ensures a respectful and productive community.
Working Mode & Stages
The following table explains the various stages and working modes in Open UI.
Stage | Purpose |
---|---|
0 – Research | Collect design patterns, anatomy, and behavior definitions |
1 – Editor’s Draft | Formal spec write-up for internal review |
2 – Community Draft | External stakeholder review (ARIA WG, implementers) |
3 – Recommendation | Final iteration and consensus building |
4 – Finished | Ready for adoption in browsers or frameworks |
Specs may become browser features or usable web components.
Conclusion
Open UI aims to make web development stronger, more accessible, and ready for the future. By bringing together multiple frameworks, Oe Ui is helping make UI components more standardized.
It's a project worth following and contributing to for those serious about front-end development.
References
Inline References
Background References
- (April 21, 2025). Open UI. *Open UI*. Retrieved April 21, 2025 from https://open-ui.org/
- (April 21, 2025). List of analyzed design systems. *Open UI*. Retrieved April 21, 2025 from https://open-ui.org/design-systems/
- (April 21, 2025). Design Systems Analysis. *Open UI*. Retrieved April 21, 2025 from https://open-ui.org/design-system-analysis-guide/
- (April 21, 2025). Background. *Open UI*. Retrieved April 21, 2025 from https://open-ui.org/charter/
- (April 21, 2025). Proposal Page. *Open UI*. Retrieved April 21, 2025 from https://open-ui.org/proposal-guide/
- (April 21, 2025). Getting Involved. *Open UI*. Retrieved April 21, 2025 from https://open-ui.org/get-involved/
- (April 21, 2025). Open UI Working Mode. *Open UI*. Retrieved April 21, 2025 from https://open-ui.org/working-mode/
- (April 21, 2025). Roles. *Open UI*. Retrieved April 21, 2025 from https://open-ui.org/roles/
- (April 21, 2025). Open UI. *Github*. Retrieved April 21, 2025 from https://github.com/openui/open-ui
About the Author
Joseph Horace
Horace is a dedicated software developer with a deep passion for technology and problem-solving. With years of experience in developing robust and scalable applications, Horace specializes in building user-friendly solutions using cutting-edge technologies. His expertise spans across multiple areas of software development, with a focus on delivering high-quality code and seamless user experiences. Horace believes in continuous learning and enjoys sharing insights with the community through contributions and collaborations. When not coding, he enjoys exploring new technologies and staying updated on industry trends.