The Central Go Modules Repository

To use GoCenter:
export GOPROXY=
January 1st 0001
Last Modified

Material Components For GopherJS

Material is GopherJS bindings for the material-components-web JavaScript library (MDC).

Project Status

Material is under active development, and the API is likely to change often, at any time. Input is encouraged regarding Material’s design at this early stage.

The core Material component package is usable. Work is underway to implement the specific Material component types, which is tracked in an issue.

Getting Started

There is a quickstart guide in the material package documentation, and every component package’s documentation page has a basic example of how to set up and use it.


Any and all ideas, changes, bug reports, etc. are encouraged.

Get involved by: - Opening issues and submitting merge requests at our Gitlab project . - Starting a discussion in the Gopher Slack #GopherJS channel.

Project Goals

  • Expose an API that supports idiomatic Go programming while maintaining the general terminology of MDC resources.
  • Minimal dependencies to keep generated JavaScript sizes as small as possible.
  • Modular package organization so you can pick-and-choose components just like the MDC library.
  • Limited scope. Only focus on wrapping the JavaScript functionality of the MDC library.

Project Non-Goals

  • HTML/CSS. These are areas of the MDC library that are best handled by projects that consume Material’s packages. Check out vecty-material as an example.


To help avoid ambiguity in code and documentation, here’s a quick list of definitions we are trying to enforce in Material.

Term Definition
material-components-web The official upstream JavaScript library.
MDC or MCW Synonyms/abbreviations of material-components-web.
Material This project.
Material component Our* Go packages.
Material menu An example of a specific type of Material component.