-
Notifications
You must be signed in to change notification settings - Fork 6
Description
Is your feature request related to a problem? Please describe.
Currently, the way patterns are organised in our online pattern library is a bot messy:
- Atoms is a mix of plain HTML elements (mainly for the purpose of visualising the base styles Gravity applies to them) and specialised components (with a class on their root element and/or a prescribed composition of HTML elements)
- The division between molecules and organisms is unclear
- Patterns with multiple states (e.g. plain button, disabled button and submit button are all the saem HTML element) or variants are listed as individual entries causing the false impression that they are separate components
- Sub-categories are not always used consistently (e.g. some templates and pages are top-level, others are not)
This causes a number of issues:
- It's not always clear where to find or add things. For example there are various kinds of lists scattered across atoms, molecules and organisms
- There's no good "home" for object and utility classes
Describe the solution you'd like
We should:
- establish some clearer guidelines for organising our patterns (possibly adding to or changing the categories we have today)
- document those, and then..
- reorganise the patterns accordingly
Additional context
This came out of a chat with @dw-buildit today, while trying to decide where best to put a .grav-o-two-column class. Layout primitives like that don't fit well under atoms since they layout a set of other things, so they are inevitably applied to some kind of container. And yet, it's mot clear if they should be considered molecules or organisms, since we don't (and can't) know how complex the things being laid out will be.
I'd argue utility classes have similar challenges. Really, objects and utilities are not components at all, so perhaps they should exist outsode of the Atomic Design categories.
Dan also, rightly IMHO, pointed out that our "atoms" section is confusing. It is a combination of plain HTML elements (some of which have or imply some kind of composition - e.g. <table> or <ul> - and thus don't really feel like indivisible atoms) and Gravity-specific components like "nav link" or "pull quote". What we both felt might be a good solution is to divide them. "Atoms" could be reserved for the Gravity specific things only and plain HTML elements go somewhere else.
Reviewing older issues, I see that @ThePeach suggested more or less the same a year ago in #106.