carbon-design-system / digital-design-ideation

3 stars 1 forks source link

Spacing and Pattern Structure in Visual Specs & Code #35

Closed sethibm closed 4 years ago

sethibm commented 4 years ago

Objectives

All patterns and 'blocks' in IBM.com Library, including the spacing between them, should be simple and easy to understand, fun to use, self-contained, easily stackable, and possible to re-order + re-use,  with the least amount of variables and overrides to accommodate special cases.

This research will explore options for Top Down, Bottom Up, or Collapsible Margins in spacing, examine the relationship and naming of respective patterns, and try to create a map and structure that includes pattern names, hierarchy, spacing between them and overall process or system to follow.

Goals

SIMPLICATION EASE OF USE PLAYFULNESS LESS TO THINK ABOUT 

Notes

In order to support designers and developers to create an intuitive system between them, and a system that is easily understood and used by adopters, we need to identify and communicate an intuitive system that is coherent from top to bottom with spacing, naming, design and code.

Problem

Additional Information

Tasks

  1. Map out ideas for mix of patterns and spacing using the Learn template as first source
  2. Iterative review and meetings with relevant designers and developers
  3. Revise map, naming, spacing and overall system based on iterations
  4. Develop a rough final map and associated Box note to review with broader team(s)
  5. Determine the revisions needed to the visual specs and schedule the work included in the ibm.com Library board issues (#1525). (#1526) and (#1533)

Process Documentation

Notes during process, as work progresses.

https://ibm.box.com/s/xmt2zdw6fpeggcb6yre00ie57tney97s

sethibm commented 4 years ago

Met with Wonil, Jeff, Lara, James. Reviewed latest mapping Sketch file, with both atomic design approach and with current setup of ontology and patterns. Will work more this week, and reconvene next week.

A few notes:

Wonil created folder to hold these documents. Seth moved Sketch file and Box note into folder, located here: https://ibm.box.com/s/ef3tsu1yab4jdsuvvg97gtzm9s1iwhnd

sethibm commented 4 years ago

@wonilsuhibm

sethibm commented 4 years ago

Notes: 5/11

Met with Wonil and Lara late in day.  Reviewed spacing and overall pain points with patterns and tasks between DDS and Reboot.

Latest resolution for spacing:

Discussion on Naming / Ontology / Organization:

Lara is suggesting split of workstreams between DDS and Reboot, and could apply to what level of complexity each team is working on.  For example, DDS creates all core parts of IBM.com, ie Atoms up to Cells, and Reboot develops the Organism and Template levels for adopters, that use all of IBM.com Library pieces.  

Discussed idea of DDS or Reboot creating a tool that allows the IBM.com Library core patterns to be put together into test groups and templates, also for DDS to confirm the Library and overall system design is sound.

Seth will split up "Atoms' level of atomic breakdown analysis, to separate items within this column from Carbon or ones created by DDS for IBM.com Library.   


Notes: 5/12

Split of "atoms" level into Carbon and DDS items was shared with Lara and Wonil. Notes:

Lara: The top level labels: Atoms, Molecules, Cells, Organisms need to be replaced by our terminology. We may not know the right answer yet but the way I see it we should be able to try and replace these with Elements, Components, Patterns. Seth: Yes, the atomic naming and pattern naming are mostly to support a way to look at and organize the pieces based on complexity and one level of complexity feeding into the next one up the chain.

Todo: 

Discuss and figure how and if atomic mapping and hierarchy can be reconciled within IBM model of Elements, Components, Patterns


Notes: 5/14

Created and shared comparison of current Carbon naming and definitions with IBM.com Library with DDS and Reboot, as leads decide on next steps.  Also reconciled atomic mapping exercise with how Carbon organizes and defines their structure, using split of Elements, Components, Patterns categories.  This version maintains atomic split within analysis, using filler variable naming of sections like XXXXXX, YYYYYY and so on, to compare with Carbon style structure and breakdown.  

Notes: 

Awaiting input on next steps from DDS and Reboot leads.

sethibm commented 4 years ago

Notes: 5/18

Met with James and Jeff re: questions on spacing resolution from 5/11, for technical review / input.  

Jeff suggested that it would be difficult to have only zero padding on top and bottom of patterns, leading to requirement for adopter to set the spacing between larger level patterns on their own.   We could provide guidelines for this spacing, but might lead towards too much inconsistency on pages.

He suggested creating a vertical rhythm class that would most likely apply a specific bottom margin height for all elements on a page, based on intention for the Template or Page, ie a Short, Medium, or Long, or Small, Medium, or Large.  This is similar to 5/4 idea to set a variable that template and patterns read in order to set their spacing.

In this setup, the adopter would be able to select the vertical rhythm desired for the page, either at pattern or page / template level, based on a preset number of options.  Their selection would automatically adjust across responsive states for all patterns.

Notes/ Questions:


Notes: 5/20

Created a graphic to help explore and resolve vertical rhythm / spacing.  using "Page Length" as a simple variable at first, with following definition, as if it is a UI tool choice: "Sets the vertical spacing between items on the page, based on the length of your story".  Short, Medium and Long are the choices.  This is similar to how Squarespace works, allowing user to set overall vertical heights between elements making up a page layout (Lara shared how their UI works)

Page Length (or another title TBD) would at first be set at code level, though the UI style setting could eventual be used in a web app tool designed to help adopters build and test templates with existing IBM.com Library patterns.  

The diagram continues to use the temporary atomic breakdown and naming, to help see every piece clearly defined, towards establishing universal spacing "equation" of sorts.  The atom level is skipped (not really relevant).   

Shared with Lara and Wonil, also James and Jeff.  Feedback and a meeting with all is needed to establish how this "equation" or system can best cascade structured spacing logic across all (or some) patterns in a layout / template. 

Side Note:  Lara wondered what happens if an adopter winds up making a very short Learn page...does it wind up with Short spacing?  On related note, via feedback, an Art Director from MSC asked how this setup could be adjusted to stop gaming the system.  For example, what if an adopter stacks many patterns on a page but selects the Small page, in order to keep all page elements vertically close.  This is a frequent problem from IBM marketers prioritizing marketing over design, crowding content for SEO or being closer to top of page.

Potential solution: the design system quantifies and understands how many patterns are placed on a given page / template, and based on those quantities, disallows Small, and then Medium, as certain total number of patterns are placed on a page.  In a UI example, the system could present a modal window alerting user when they try to add another pattern beyond set limits, their page length will switch to another setting if doing so.  Quantifying and establishing these ranges would require a tool to create sample pages using the existing patterns, with ability to plug in max or min content in each pattern.  Then we could pretty easily evaluate averages for what makes a Short, Medium, or Long page definition.


Notes: 5/21

Some confusion as to core focus and goal of setting a spacing variable at page / template level.  

Also some confusion as to overall mission for IBM.com Library: are the patterns supposed to be agnostic, like Carbon, able to stack in varying patterns in exploration, with simple optionals to turn on or off, in trying to create a given template?  Is the idea that the patterns are  possible to stack and adjust, creating the Learn or Solutions templates, but also other potential templates?

This work is operating under that assumption, to design agnostic spacing logic that can cascade across any template.  But it may be the wrong assumption and mission for the library.  

Waiting on feedback from Wonil, Lara, James, Jeff.  Project has varying levels of confusion in need of clarity.  Focusing meanwhile on other ideation task of universal visual spec  format.  

sethibm commented 4 years ago

This story is at a point of a few blockers. 1) team is so busy...hard to absorb input from design + dev 2) no time on calendars for this group to meet in less than week's time 3) pending ontology work will likely have effects on spacing

Some progress has occurred since starting, but achieving goals of work remains elusive. Pausing meanwhile and will work on other Ideation stories.

ghost commented 4 years ago

@sethibm Thank you, Seth. Let's hold off on spending any more time on this ticket, and please focus on the other stories, starting with the spec standards story.

ghost commented 4 years ago

Here is what I gathered fro many team members, a proposal to discuss in a meeting today: https://app.mural.co/invitation/mural/wonilsworkspace4185/1592401555547?sender=wonilsuh19286&key=2e320650-b4dd-4e8a-8309-a98f895905e3