Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Table of Contents
maxLevel2
minLevel

...

HIGH-LEVEL FLOW

Collaborators:

Status
colourPurple
titleUI
Status
colourRed
titleUX
Status
colourYellow
titleA11Y
Status
colourBlue
titleENG
Status
colourGreen
titlePM
Status
titleProposer
Status
titleDESIGN MGR

...

Responsible

...

Flow

...

Status
titleProposer

...

1

...

Start a component proposal

Identify new UI need and define the use case in a Google form submission or a Component Proposal. Bring it to the UI design team and #paragon-working-group to determine if it should be added to Paragon or a one-off solution.

...

2

...

Expand proposal into a component spec

Share the spec with the #paragon-working-group

...

Status
colourBlue
titleENG
Status
colourPurple
titleUI

...

...

Implement the component spec

Publish the design, as well as UI, UX, and dev documentation. Request QA of the implementation.

...

Status
colourPurple
titleUI
Status
colourRed
titleUX
Status
colourYellow
titleA11Y

...

4

...

QA the implementation

...

Status
colourBlue
titleENG
Status
colourPurple
titleUI

...

5

...

Finalize the implementation, UI UX doc, and dev (technical) doc

Announce and celebrate!

...

DETAILED FLOW

...

Step 1 – Start a component proposal

...

Status
titleProposer

...

Status
titleDESIGN MGR

...

Status
colourPurple
titleUI
Status
colourYellow
titleA11Y

...

RESPONSIBLE:
Status
colourRed
title

...

Status
colourBlue
titleENG
Status
colourGreen
titlePM

If you need help creating a proposal submit a request (via Google form) to work with a

Status
colourPurple
titleUI
designer.

PROPOSER
(Anyone! And you, I presume)

Before starting a proposal confirm that the need is not already supported. Does a

...

new pattern need creating? If there is an existing pattern, does it work for a specific application/use case? 

Image Removed

...

Note
  • Yes, it works (stop here if checked, and use an existing pattern)

  • No, it needs to get modified

Start a component proposal by creating a child page of “Component Proposals”

Use the Paragon Component template when creating the page.

If appropriate, you may create a proposal in Confluence instead of Figma

Create from Template
spaceKeyBPL
blueprintModuleCompleteKeycom.atlassian.confluence.plugins.confluence-business-blueprints:design-component-blueprint
contentBlueprintId4046e21f-b32b-4376-884d-b2931f7766c8
templateName4046e21f-b32b-4376-884d-b2931f7766c8
title@currentDate Proposal
buttonLabelCreate proposal page

In Figma:

  • Duplicate the “New Component Template” page in the Paragon 2021 Figma Library
    https://www.figma.com/file/eGmDp94FlqEr4iSqy1Uc1K/?node-id=14389%3A446

  • Rename the page to the name your new component plus a 🚧 emoji.
    The 🚧 emoji to denotes that the component is a proposal that is still in draft.

  • Put the page in alphabetical order.

  • Design your component, including any documentation needed to describe its function or annotations for engineering to get it built.

  • The proposal should start as a

    Status
    colourYellow
    titleDRAFT
    . Work through the proposal states below to take your proposal from
    Status
    colourYellow
    titleDRAFT
    to
    Status
    colourBlue
    titleREADY For Review
    to
    Status
    colourGreen
    titleAPPROVED TO ADD
    .

Expand
titleSee details on proposal states

State

Description

Status
colourYellow
titleDRAFT

The proposal is just an idea. Discussions on the draft serve to gather feedback and help prepare the idea to be

Status
colourBlue
titleREADY For Review
.

Status
colourBlue
titleREADY For Review

The proposal is ready for a review when it has:

...

A succinct use case and purpose

...

Similar components in edX or in the wild (links)

...

At least a wireframe

...

, a general description of behavior or variants, and a design reflected in at least a wireframe level fidelity.

Proposal Reviews start in person in the Paragon Working Group meeting and continue on Slack if needed. To get on the meeting agenda make a post in the #paragon-working-group channel on Slack.

The group will consider the following:

  • Review the use case from the

    Status
    colourRed
    titleUX
    and
    Status
    colourYellow
    titleA11Y
    perspectives and come to an understanding of the need.

  • Should this component live in Paragon?

  • Determine if the use case is unique. If so, it should remain be a one-off solution.

  • Do we agree on what to name this component?

Reviews

...

move the proposal to

Status
colourGreen
titleAPPROVED TO ADD
,
Status
colourRed
titleDEFERRED
, or
Status
colourPurple
titleNEEDS CHANGES

Status
colourGreen
titleAPPROVED TO ADD

An accepted proposal is ready for further design and engineering work. A proposal is accepted with three approvals (minus the proposer), one from each UX, UI, A11y, and Eng. Once accepted the proposer should begin building out the component spec with UX/UI/Eng/A11y (if they have not already).

Status
colourRed
titleDEFERRED

A deferred proposal should be designed and built as a one-off where it is needed. Move the proposal to a new folder in this space (TODO: when this happens the first time add a folder in the wiki in an appropriate location)

Status
colourPurple
titleNEEDS CHANGES

A proposal needs changes to become

Status
colourBlue
titleREADY For Review
again.

...

Step 2 – Get your proposal approved at the Paragon Working Group

RESPONSIBLE:
Status
colour

...

Red
title

...

Step 2 – Create a component specification

...

Status
colourPurple
titleUI

...

Status
titleDESIGN MGR

...

PROPOSER

...

Step 3 – Complete the component design specification

RESPONSIBLE:
Status
colourRed
title

...

Status
colourYellow
titleA11Y
Status
colourBlue
titleENG

...

Status
colourGreen
titlePM
Status
colourPurple
titleUI

...

PROPOSER

...

Step

...

4 – Create a Jira ticket to implement the component

...

...

RESPONSIBLE:
Status
colour

...

Red
title

...

PROPOSER

...

Status
titleDESIGN MGR

...

Status
colourPurple
titleUI
Status
colourYellow
titleA11Y

...

Status
colourGreen
titlePM
Status
colourRed
titleUX

Based on the design doc from the previous step:

...

Status
colourBlue
titleENG
: Implements the proposed design and creates dev doc

Status
colourBlue
titleENG

...

Status
colourPurple
titleUI
: Updates the design doc

Step 4 – QA the implementation

...

Note

Engineering resourcing for implementing Paragon components is currently ad-hoc. Squads that need the component are ideally responsible for the work, but some times it’s too much work to take on in the near term. This is an ongoing challenge to be aware of.

  • Add a ticket to the Paragon Backlog that outlines work to implement the proposed design (add a link to the proposal) and create a technical doc page.

  • Add a link to the Jira ticket in the Figma or Confluence proposal.

...

Step 5 – Implement the component in React

RESPONSIBLE:
Status
colourPurple
title

...

ENGINEER
Status
colourYellow
titleA11Y
Status
colourRed
titleUX

...

Status
titleDESIGN MGR

...

Status
colourBlue
titleENG

...

Status
colourGreen
titlePM

QA: Identify bugs and design/implementation issues

  • Async: Use the #Paragon-working-group slack channel to review the implementation  asynchronously 

    • Sandbox (Adam has set up Paragon PR deployments)

...

Tip

Tip: Before you start implementing your component, it us helpful to write example of how you would want to use this component as if you had already written it then and share that with others. Getting feedback on props api or component naming early on can reveal key concerns you may have missed and save time.

  • Implement the component. See this video for a technical walkthrough for getting started developing for Paragon: Writing a React component for Paragon (Study Group 1-26-2021) and this document for React Component Design Tips & Tricks

  • Send a link to the component proposer for QA. When the Jira ticket is ready for review the engineer responsible for the work should sends a link to the proposer of the component for review. The Paragon github repo creates deploy previews of pull requests. These links are useful to send for QA.

...

Step 6 Finalize the design and technical documentation & 🥳

...

Status
colourBlue
titleENG
Status
colourPurple
titleUI

...

Status
titleDESIGN MGR

...

...

Status
colourYellow
titleA11Y

...

Status
colourGreen
titlePM

Based on the QA findings from

...

design

  • Status
    colour

...

  • Purple
    title

...

  • ENGINEER
    : Fixes bugs/design implementation issues, and ships.

    • Paragon is automatically released after merge by analyzing git commit names (fix: … and feat:…) using semantic-release.

  • Status
    colour

...

  • Red
    title

...

  • PROPOSER
    : Makes any needed updates to design spec for documentation

...

Status
colourRed
titleUX

...

Status
colourYellow
titleA11Y
  • .

Announce and evangelize the new design pattern throughout edX!

  • Share in Slack channels (

...

  • #fedx and #experience_team)

  • Have a drink or two (2 drinks per pattern

...

  • is the recommended amount of drinks)