Page MenuHomePhabricator

Sheet: Add Sheet component to Codex
Open, Needs TriagePublic

Assigned To
None
Authored By
bmartinezcalvo
Tue, May 28, 9:33 AM
Referenced Files
F54719598: Captura de pantalla 2024-05-30 a las 14.38.22.png
Thu, May 30, 12:38 PM
F54719535: Captura de pantalla 2024-05-30 a las 14.37.32.png
Thu, May 30, 12:38 PM
F54520685: Captura de pantalla 2024-05-28 a las 11.48.34.png
Tue, May 28, 9:49 AM
F54520252: IMG_6630.PNG
Tue, May 28, 9:43 AM
F8722709: iPhone 7 Copy.png
Tue, May 28, 9:33 AM
Tokens
"Like" token, awarded by JScherer-WMF.

Description

Background

Implement the Sheet component in Codex.

Description

A Sheet provides additional context by sliding in from the bottom (or side) of the screen. It is particularly useful on mobile and small devices.

https://www.nngroup.com/articles/bottom-sheet/

Considerations

Some wish list items for this component:

  • It would be nice if this component could launch at a certain height and then be expandable into full height
  • It would be nice if this component could have micro flows inside of it with a back stack (similar to the onboarding dialog but without a progress indicator)
  • It would be nice if this component had an option for smooth transitions in and out with a fallback behaviour that has no transition for low bandwidth devices or noJS readers.
  • It would be nice if this component supported drag up and down gestures in mobile viewports.
  • It would be nice if this component supported wide viewports (i.e. desktop)
  • It would be nice if this component supported contextual functions in the header, e.g. search icon, context menu, etc.

User stories

  • As a user, I need to access additional information, options, or actions, without losing focus on the current screen.

History

Describe or link to prior discussions related to this component

Known use cases

iPhone 7 Copy.png (1×750 px, 181 KB)
T129054#8363253
IMG_6630.PNG (1×750 px, 142 KB)
Templates (and Wikifunctions in the near future)
Captura de pantalla 2024-05-28 a las 11.48.34.png (1×2 px, 492 KB)
Template sheet on desktop screen
Captura de pantalla 2024-05-30 a las 14.37.32.png (1×1 px, 593 KB)
Notifications in Minerva
Captura de pantalla 2024-05-30 a las 14.38.22.png (1×882 px, 366 KB)
References/Citations in Minerva

Existing implementations

These artifacts are listed for historical context. The figma spec, linked below, is the source of truth for the new component.

Wikimedia community:

  • OOUI: add the relevant OOUI widget name(s) here, if applicable. See OOUI demos.
  • Vue: add any existing Vue implementations, if applicable. See Projects using Vue.js.

External libraries:

  • Add links to any examples from external libraries

Codex implementation

Component task owners

  • Designer: add the main designer's name
  • Developer: add the main developer's name

Open questions

  • Do we want to implement both Bottom and Side Sheets?
  • Will Sheets be displayed on desktop devices?

Design spec

Once a component spec sheet has been created in Figma, remove the note stating that the spec is missing and link to the spec below.

Component spec sheet
Anatomy

Designer should list the structure and properties of the component.

Style

Designer should list the visual features of the component.

Interaction

Designer should list interaction specifications.

Guidelines

Designer should provide the guidelines and associated images for this component. Once the guidelines have been documented, please remove this note and share a link to the guidelines below.

Doc with the guidelinesImages
Demos

Designer should describe how the component should be documented in the demos, including configurable and standalone demos.


Acceptance criteria

Minimum viable product

This task covers the minimum viable product (MVP) version of this component. MVP includes basic layout, default states, and most important functionality.

MVP scope

  • List all parts of the MVP scope for this component

Design

  • Design the Figma exploration file and include its link in this task:
  • Document the component's guidelines and provide the link to the doc and its images in this task.
  • Publish the main component in the Figma library. This step will be done by a DST member.

Code

  • Implement the component in Codex
  • Implement the guidelines in the component's page

Future work

  • If applicable, list future work that should be done for this component after the MVP is implemented as part of this task. You should open new, standalone tasks for all future work.

Event Timeline

@bmartinezcalvo - please update T277047 accordingly, and perhaps cross ref to how this may differ/not in behaviour and/or visual presentation to T280680: Add a side/bottom **navigation menus** to Codex

El T366048#9842225, @RHo escribió:

@bmartinezcalvo - please update T277047 accordingly, and perhaps cross ref to how this may differ/not in behaviour and/or visual presentation to T280680: Add a side/bottom **navigation menus** to Codex

@RHo I've updated the table in inventory T277047. Regarding T280680: Add a side/bottom **navigation menus** to Codex, once we discuss this in the DST and decide how to handle the different sheets, I will update the task accordingly. Thank you!

Some wish list items for this component:

  • It would be nice if this component could launch at a certain height and then be expandable into full height
  • It would be nice if this component could have micro flows inside of it with a back stack (similar to the onboarding dialog but without a progress indicator)
  • It would be nice if this component had an option for smooth transitions in and out with a fallback behaviour that has no transition for low bandwidth devices or noJS readers.
  • It would be nice if this component supported drag up and down gestures in mobile viewports.
  • It would be nice if this component supported wide viewports (i.e. desktop)
  • It would be nice if this component supported contextual functions in the header, e.g. search icon, context menu, etc.