Skip to content
This repository was archived by the owner on Sep 9, 2025. It is now read-only.

Platform UI 2.0 Roadmap ✨

Kevin Hougasian edited this page May 20, 2024 · 17 revisions

Goals

  • CSS grid
  • Fluid spacing
  • Fluid typography
  • clamp()
  • Fluid spacing
  • flexbox gutters
  • Logical properties
  • Theming
    • top-level rounded/square †

† The ability to set corners (buttons, boxes, forms) as rounded to (n) or square at a top level ~ possibly on the body tag or generate a version specific pUI file.

PlatformUI website

  • Preserve current documentation as /docs/{version number} in an attempt to preserve older SEO traffic

Design Tokens

  • Refactor our current sass-map-based variables to leverage CSS Custom Properties and Design Tokens for easy user configuration.
  • What are we dropping/keeping in our token file (what we're currently writing to :root
  • Naming convention discussion/determination
    • Buttons
    • Backgrounds

Design Tokens example

These are based on Stephanie's a11y tokens, anything else we can generate to :root from Platform UI itself.

module.exports = [
  {
    name: "primary",
    color: "#003f70"
  },
  {
    name: "secondary",
    color: "#91b9dc"
  },
  {
    name: "button-primary",
    color: "#3f7bad"
  },
  {
    name: "button-secondary",
    color: "#e58967"
  },
  {
    name: "message-success",
    color: "green"
  },
  {
    name: "message-error",
    color: "tomato"
  },
  {
    name: "message-warning",
    color: "#866657"
  },
  {
    name: "message-info",
    color: "#3f7bad"
  },
  {
    name: "text",
    color: "#333333"
  },
  {
    name: "link",
    color: "dodgerblue"
  }
];

Custom properties fallbacks to document for theming: https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties#custom_property_fallback_values

Style Dictionary:

Style Dictionary is another tool that could help create design tokens.

Concepts

  • Accessibility - How far do we want to go? @mrtrimble
    • If we go down this road, consider established ARIA patterns during the re-write
    • The Disclosure pattern is very similar to our loose interpretation of the accordion pattern. Group discussion here.
    • Minimal viable accessibility: Add accessibility features to places that make sense and that someone using our framework may not be able to add themselves

Layout

Comment Add a grid layout, which I think would be beneficial and cool. Depreciate block-container and replace/clean up the syntax with flex.

Each of these could start with a wrapper called flex-wrapper and grid-wrapper. flex-wrapper would essentially replace block-container.

Just an idea and I wanted to document it somewhere.

Global considerations

  • Animations/micro-interactions
  • Defensive CSS
  • Remove all underscores related to BEM
  • > * + * { margin-block-start: 1.5rem 👈🏻

Components

As of 7/13/2023, support is wide enough. based on GA, our firefox users are below 3% and the vast majority are above 97

Accordions

Blockquotes

Buttons

Cards

Drawers

Figures

Images

Info Box

Icons

  • Vet out usage of SVG only icons instead of icon font
    • SVG Spritesheets
    • SVG Component
    • Some combination of the two

Lists

Loaders

Messages

Modals

  • Rewrite using the dialog element
  • Launchpad examples using color, headers, appended messages...

Pills

Tables

Tabs

Tooltips

Forms

Layout

Menus

Typography

Utilities

Backgrounds

Borders

Cursor

Display

Width

Effects

Overflows

Positioning

Rotating

Readers

Spacers

Consider adding auto sizes. Example: mx-auto to center content.

Transitions

Truncate with Ellipsis

Z-Index