Skip to content

Primer React Components Q3 Roadmap #951

@emplums

Description

@emplums

Highest Priority

Rewrite Dialog component

Issue: #930

Impact

Replacing our current Dialog which uses @reach/dialog is the highest priority upcoming issue as it is blocking our ability to upgrade Primer React Components to use React 17, which other teams at GitHub are waiting on PRC to upgrade to React 17. Removing this dependency would also reduce our bundle size significantly (my estimates are by 15-20%) and give us more fine grained control over Dialog behaviors.

Scope

  • 2 weeks for one engineer + heavy testing and review support for at least one other engineer

Upgrade to React 17

Issue:

Impact

As mentioned above, this work relies on the above Dialog refactor. This would allow other teams at GitHub who are using PRC to upgrade to React 17 which includes improvements related to event bubbling

Scope

Fairly small, most of the work is done already in #942 but we need the Dialog work to be done in order to merge it.

Support color modes in PRC + theming audit

Issue: #639

Impact

This may be a significant amount of work and is paramount to enabling dark modes in projects at GitHub that are using Primer React Components. Refactoring our theme should also enable the ability to theme for other brands at GitHub using PRC and could open the door to building out developer tooling like intelligence for our system props in VSCode.

Scope

2-4 weeks for one engineer + heavy testing & review support from at least 2 other engineers

SelectMenu improvements

Issues:

Impact

This would would significantly reduce complexity in our main internal "customer"'s codebase and would set us up to make broader menu changes in the future.

TypeScript Refactor

Issue:

Impact

Refactoring our codebase in TypeScript would make our library less bug prone by enforcing type safety in the implementation of our components, reduce the amount of issues we face with our manual maintenance of our index.d.ts file, and make upstreaming components from other projects at GitHub written in TS much much faster allowing us to greatly improve our contributor experience.

Stretch Goals

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions