Code Monkey home page Code Monkey logo

momentum-design's Introduction

momentum-design

license: mit state: alpha

The Momentum Design mono-repository is designed as a single source-of-truth for all Momentum Design related resources. Read more about our assets and token libraries here: https://momentum-design.github.io/momentum-design/en/.

This currently includes the following delivered distributables:

Consumption

Please see consumption guide for resources on how to consume this project.

Contributing

Please see contributing guide for resources on how to contribute to this project.

momentum-design's People

Contributors

arthusliang avatar bhanusengar avatar chrisadubois avatar coread avatar cscheffauer avatar gauravchauhan3030 avatar gnanammcp avatar interactivetimmy avatar kaviarasanopensource300 avatar morgan1bathe avatar nataliadelmar avatar seheekim1009 avatar torgeadelin avatar tricarro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

momentum-design's Issues

Changelog and Releases

We need to automate a change log and release notes upon every release that will be published to the documentation site, to NPM when the versions get bumped, and to the repository

These should output markdown files

  • investigate a change log and release notes tool
  • Implement

Token CI/CD

Description

Set up automation flows within GitHub Actions that will automatically analyze/test/deploy the @momentum-design/tokens project to NPM.

Requirements

  • Publish tokens to NPM
  • Run tests against source code and source tokens [Unit]
  • Run tests against the produced token's api [Integration]
  • Run static analysis of all contributor-generated changes

Atomic Web Components

Description

In order to determine what components are inclusive of this, and how they should be implemented, an investigation needs to occur. This should exist within this project's documentation.

Resolve

  • A matrix comparing the following values for each potential atomic web component containing the following header topics
    • Available via Dependency [which ones]
    • Dependent Personas / Projects
    • Estimated time to implement
  • A matrix comparing all likely solutions to implementing the atomic components
    • Framework
    • Pros
    • Cons

Workspace Iterators

Description

In order to allow for easier automation via CD, dependency tree iteration should be implemented on the core project's package.json file. This can be inclusive of additional scripts available in the ./scripts folder if necessary. This will be used to determine if changes impact a specific package, and run automation accordingly.

Requirements

  • Automation Scripts
    • cd:test - Runs tests on impacted packages
    • cd:analyze - Runs static-analysis on impacted packages
    • cd:build - Builds impacted packages
    • cd:deploy - Deploys changed packages. Note: This should not deploy as a part of this scope

Github Actions PR Config

Description

This project will require testing for pull requests on the various packages that reside within it. Implement a GitHub actions configuration that allows for pull request validation.

Requirements

  • Automation configuration should trigger on each new pull request after it is validated
  • Automation configuration should auto-validate any pull requests generated by the momentum-design-engineers team
  • Automation configuration should not execute any package scripts, as they are not within the scope of this task.
  • Automation configuration should emit a message indicating that it is operational. Note: this is to be removed after the automation CI needs are established

Platform Token Stakeholder Buy In

Scope of ticket

  • Complete a document for the token format (can link to design) and store it in repo
  • Investigate how stakeholders would incorporate the "new" tokens format from amzn style dictionary and design, and document how it will make stakeholders engineering easier and fast
  • Compute rough cost savings of how this token format will save time === money
  • discuss with relevant stakeholders and achieve buy in
  • Online Mui Theme
  • Android: Rekha
  • iOS: Josh Bruner
  • Windows/desktop: James Nestor, Dusan Stankopick
  • Mac/Desktop: ?
  • momentum web client react v2
  • momentum web client v1
  • contact center - Sameer Yadav
  • ?

re: component and theme tokens format

Theme Tokens in Legacy Tokens

Request

As a developer, I'd like to consume the newly automated theme tokens from within the legacy tokens project.

Analysis

Generate theme token transforms that convert the new theme token format provided by the newly automated tokens into the legacy theme token format available in @momentum-ui/tokens.

Requirements

  • build momentum abstract get set up for theme tokens
  • New tokens should be added as a dependency of legacy tokens
  • New tokens should be processed through the scripts within the legacy tokens to generate new reference tokens within that project
  • Should be inclusive of theme tokens

Documentation Metadata

Request

As a Contributor and Consumer of this project, I'd like to have API documentation available in the form of JSON abstracted from inline documentation within the source files.

Analysis

Implement a flow to convert from inline TSDoc to JSON metadata to be consumed locally. This will likely include using the following packages:

Requirements

  • Generates consumable JSON articles based on TSDoc within source code
  • Produces documentation within the ./docs/metadata folder for each package

Fonts Migration

Request

As a Multi-Platform Applications Developer, I'd like to have a single source-of-truth for fonts I can depend on.

Analysis

Fonts currently exist within the @momentum-ui/fonts package. Migrate these fonts into this project as a new package: @momentum-design/fonts. Note that the font assets themselves may be abstracted within the @momentum-design/tokens package.

Requirements

  • Create a new @momentum-design/fonts package
  • Move all existing fonts to this package

Illustrations Migration

Request

As a Multi-Platform Applications Developer, I'd like to have a single source-of-truth for illustrations I can depend on.

Analysis

Illustrations currently exist within the @momentum-ui/illustrations package. Migrate these illustrations into this project as a new package: @momentum-design/illustrations.

Requirements

  • Create a new @momentum-design/illustrations package
  • Move all existing illustrations to this package

Package Templates

Description

In order to begin generating automation tooling, the mono-repo workflows should be configured to support it. Implement multiple flows within this project that allow for dynamic/intelligent CI/CD triggers that only run on necessary items within this project.

Requirements

  • Automation tooling to generate new packages within this project
    • `./package.json' - Package definition along with consistency scripts
    • ./README.md - Package introductory documentation with template
    • ./CONTRIBUTING.md - Package contribution documentation with template
    • ./SCRIPTS.md - Package scripts documentation with template
  • Script Consistency
    • build - Should run all sub-scripts for generating a fully qualified distributable
    • test - Should run all sub-scripts for testing an associated package
    • analyze - Should run all static-analysis sub-scripts needed to validate the changes meet style requirements

Tokens Documentation

Description

Add documentation to the @momentum-design/tokens package, inclusive of core documentation along with TSDoc documentation.

Requirements

  • Should generate JSON output within the ./docs/metadata folder of the @momentum-design/tokens package
  • Should include the following core markdown files
    • README.md
    • CONTRIBUTING.md
    • SCRIPTS.md

Hello World

Request

As a designer, i'd like to have 5 more illustrations

Analysis

We need to add 5 more illustrations

Requirements

  • Illustration A
  • Illustration A
  • Illustration A
  • Illustration A
  • Illustration A

Set up version control

Description

In order to properly release each package in a fully independent way, unique version control requirements must be met:

  • Each package is independently evaluated for a version bump.
  • Each package deploys after changes have occurred in a merged PR.
  • Version is automatically bumped in the case that a change has occurred within a package.

Note that this should not perform a MAJOR version bump unless its specifically triggered.

Investigate Harbor Elements

Description

In order to determine if Harbor Elements is a potential fit for our upstream @momentum-design/components package, a thorough investigation must be completed.

Resolve

  • Details stored in the ./scratch/engineering folder
  • Matrix showing which components are compatible, and which are not, with our designs

Links

Consume New Tokens in MUI Online Theme

Request

As an Internal Webex Developer, I'd like to have the newly automated tokens present within my existing project.

Analysis

In order to alleviate adoption cost for one of our MVP stakeholders, our team should implement the consumption of the new automated tokens available within this project into the associated Material Design theme.

Requirements

  • Make changes to the associated Material Design theme to consume the new automated tokens

Core Token Generation

Request

As a Multi-Platform Applications Developer, I'd like a way to consume a designer's style definitions as css, scss, xml, json, and swift-classes.

Analysis

Generate a new package within this project titled @momentum-design/tokens that is used to generate various, platform-specific, formats for consumption.

Requirements

  • Should allow for standalone configs to be used outside of the built scripts
  • Should have a clear definition on where reference tokens should be placed by designers
  • Should have some form of testing
  • Should build to the following formats
  • Should follow a similar flow/logistics to sibling projects within Cisco
    • css/variables
    • scss/variables
    • android/colors
    • ios-swift/swift.class
    • web/json

Consume New Tokens in MRv2

Request

As a React Applications Developer and consumer of @momentum-ui/react-collaboration, I'd like to have the newly automated tokens available for consumption within this project.

Analysis

In order to begin adopting the new tokens into MVP projects, our team should make changes to the @momentum-ui/react-collaboration project to consume the newly automated tokens.

Requirements

Molecular Web Components

Description

In order to determine what components are inclusive of this, and how they should be implemented, an investigation needs to occur. This should exist within this project's documentation.

Resolve

  • A matrix comparing the following values for each potential molecular web component containing the following header topics
    • Available via Dependency [which ones]
    • Dependent Components [which ones]
    • Dependent Personas / Projects
    • Estimated time to implement

Icons Migration

Request

As a Multi-Platform Applications Developer, I'd like to have a single source-of-truth for icons I can depend on.

Analysis

Icons currently exist within the @momentum-ui/icons package. Migrate these icons into this project as a new package: @momentum-design/icons.

Requirements

  • Create a new @momentum-design/icons package
  • Move all existing icons to this package

Getting Documentation Site going (github pages)

We need a doc site for the entire folder

  • look at the old momentum design site
  • look at the momentum design tokens
  • Spike on existing tools (docusarus, Astro, harbor site, NOT STORYBOOK)
  • markdown as a first class citizen
  • meet with Andy Kim
  • Define what should be IN the site from developer perspective
  • LOOK AT USING STACKBLITZ to add to the site (code preview)
  • Set up a framework that is EASY for designers and developers to add to
  • ALlow magentic and Jesse CLarks site to easily go into this
  • Has to help harbor

Define the features

  • Navigation
  • Code Preview
  • Use this site as an example and dogfood OUR OWN code

This ticket needs to be broken up

Tokens Executable

Description

In order to allow for CLI runs of token-build tooling, add token build flows to the new @momentum-design/token-builder package. This should allow for the following params to be provided in order to properly build consumable tokens:

  • config - the configuration file
  • input - the input tokens directory
  • output - the output tokens directory

Scratch Documentation

Request

As a Developer on this Project's Team and a Designer on this Project's Team, I'd like to have a place in which we can store all of our general decisions and workflows associated with this project.

Analysis

Create a folder on the root of this project that can be used to store important executive decisions made by our team. This folder should include all items, including logistics and interaction documents, associated with this team until a better solution is generated.

Requirements

  • Create the ./scratch folder in the root of this project, along with its internal structure
    • Create a README.md file defining the details of the ./scratch folder within the ./scratch folder
    • Create a ./engineering folder. Note: this includes all engineer items and can be flexible on its internal structure
    • Create a ./designing folder. Note: this includes all design items and can be flexible on its internal structure
    • Create a ./product folder. Note: this includes all global product items and can be flexible on its internal structure

Core Tokens in Legacy Tokens

Request

As a developer, I'd like to consume the newly automated core tokens from within the legacy tokens project.

Analysis

Generate core token transforms that convert the new format provided by the newly automated core tokens into the legacy format available in @momentum-ui/tokens.

Requirements

  • New tokens should be added as a dependency of legacy tokens
  • New tokens should be processed through the scripts within the legacy tokens to generate new reference tokens within that project
  • Should be inclusive of core tokens

Tokens API

Description

In order to allow for other products to have a clean path to build their associated tokens into a streamlined interface, abstract the logic from @momentum-design/tokens into its own @momentum-design/token-builder package, and make it fully CLI/API accessible.

Token Builder Format Abstraction

Description

In order to further improve the flexibility of token abstraction, and allow for additional changes per format, expand upon the existing token builder to allow for formats to be more than just an Array of strings.

  • Should support an object with options and name.

Figma Tokens Plugin Post Merge Flow

After the main branch has been merged to and the CD deployment script has run, we need to update the design-token-updates branch to have all the changes from main, to mitigate any future merge conflicts, and to keep it up to date for designers. The scope of this ticket is to

  • Post merge, update the design tokens branch in the CD flow to update the design branch

Token Builder Integration Testing

Description

In order to validate that the @momentum-design/token-builder package can properly process input tokens, with a provided configuration, into output tokens. Generate a testing suite that can be used to accomplish this within one or more of the following flows:

  • CLI Consumption
  • Module Consumption

This should use template/fixture data to accomplish the resolve.

Spike: Metrics & Usage

We need to be able to measure the usage of momentum design and track the broadness of scope it touches. Generally we also need to be able to have an on demand calculation of how much time it saves === money vs what we have today. These numbers can be rough. Both of these should be published as continuously updating markdown documents

  • Track product adoption / usage of momentum as a whole and at granular level (tokens, components, etc)
  • Calculate estimate of time saved
  • Other interesting usage metrics and benefits of momentum (to increase adoption)

Setup GitHub Projects

Description

At this time, there is not an easy way for the team to manage the current roadmap and engineer progress within the Momentum Design project. Using GitHub Projects, outline the roadmap as well as engineer flows needed to complete tasks within this project.

Requirements

  • GitHub Projects Project for the momentum-design GitHub organization
  • Should be named Momentum Design
  • Should contain a clear way to view active tasks
  • Should contain a clear way to view all tasks

Project Markdown Files

Request

As a Developer looking to consume this project. I'd like to have clear documentation indicating how to consume the project, contribute to the project, and run the scripts associated with the project.

Analysis

The creation of all core documentation items for this project should be completed.

Requirements

  • Generate the ./README.md file, inclusive of common core elements
    • Project title
    • Project description
    • Table of contents
    • How to consume the project. Note: this should be a a definition of the available packages and links
    • How to contribute to the project. Note: this should link to CONTRIBUTING.md
    • Contact information
  • Generate the ./CONTRIBUTING.md file, inclusive of common contributing elements
    • Welcome Section
    • Table of Contents
    • Project Structure. Note: should define how we implement packages with links to package CONTRIBUTING.md files
    • Global Scripts. Note: should link to SCRIPTS.md
  • Generate the ./SCRIPTS.md file, inclusive of root ./package.json scripts.

Animations Migration

Request

As a Multi-Platform Applications Developer, I'd like to have a single source-of-truth for animations I can depend on.

Analysis

Fonts currently exist within the @momentum-ui/animations package. Migrate these animations into this project as a new package: @momentum-design/animations.

Requirements

  • Create a new @momentum-design/animations package
  • Move all existing fonts to this package

Token and Token Scripts Separation

Description

In order to provide a truly modular option for other token generation flows without coupling the flow to the tokens themselves, an abstracted layer is needed. Implement the abstracted layer and separate all logic from the existing @momentum-design/tokens package into the following packages:

  • @momentum-design/tokens - input/output resources only for design tokens
  • @momentum-design/token-builder - Logical flows for translating input tokens into output tokens

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.