WIP: Web Assets design and development component library proposal #94698
Labels
No Label
legacy project
Infrastructure: Blender Web Assets
legacy project
Infrastructure: Websites
Priority
High
Priority
Low
Priority
Normal
Status
Archived
Status
Resolved
Type
Design
Type
Report
Type
To Do
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: infrastructure/web-assets#94698
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Web Assets design and development component library proposal
This proposal is a draft for building a design and development component library by extending and updating existing Web Assets components in a systematic way. It breaks down and organises existing Web Assets partials to an organised component architecture to prepare a Penpot component library for design, and a Storybook component library for development.
The proposal focuses on consolidation of existing components, that can be extended with new (mainly high level) components later.
Components
Base / Foundations
Basic properties like colours, grid and type. Design foundations that prevail in all low and high level components, and can't be broken down any further.
Properties
Low level components
Basic custom UI elements that are made up of base elements. Low level elements can only contain other low level elements. Low level elements overlap and extend the list of basic native markup elements like
button
with custom elements likealert
.Low level elements can't contain utility classes. Web Assets partials architecture overlaps, but doesn't match the component architecture proposed in this doc.
High level components
Complex custom UI components that are made up of other items. High level elements can contain both low level elements, and sometimes other high level items.
New components are set with italics. High level elements can contain utility classes.
Docs and guidelines
Web Assets documentation is maintained in the wiki. Components should be self-explanatory enough to not require component-specific documentation.
The existing Web Assets reference page should be extended, improved and ported to Storybook, showing good usage examples of existing and new components. Optionally it should become publicly accessible.
Platforms
While the Penpot component library would help in design and prototyping, Storybook components would make assembling UIs in code more consistent and efficient. Setting design and code apart would also be an opportunity to focus and iterate on design in the design phase, and adding new, or refactoring existing components in development based on that in an efficient way. (Design objectives are to be discussed.)
Storybook components' dynamic features and interactivity is to be systematically designed. There should be a set of default configuration features that are available for all components, that can be extended on a per-component basis if needed.
Modules
Though not tightly related to the above, JavaScript modules could be added to help working with components' dynamically, and write JS code in projects with less repetition. Example: a vanilla JavaScript functions library with utility functions similar to jQuery's handy DOM manipulation and traversing tools.
Web Assets design and development component library proposalto WIP: Web Assets design and development component library proposal