Skip to main content

About this demo

This React demo is inspired by an actual cellphone plan widget I implemented for a client using plain JavaScript.

The widget was designed to simplify choosing the right cellphone plan based on a combination of features such as available data and call minutes, as well as optional special offers.

Working on the original widget was a fun challenge so I decided to re-create a slightly simplified version in React to practice implementing state management, interactivity and accessibility.

Some of its features include:

  • Responsive mobile-first layout
  • Fully custom CSS
  • Screen reader friendly
  • Fully keyboard operable
  • JSON data source
  • React state management with useReducer
  • Custom modal popup using createPortal
  • Full development history on GitHub