Material is GopherJS bindings for the material-components-web JavaScript library (MDC).
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.
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.
- 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.
- 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 agamigo.io/material/* Go packages. |
Material menu | An example of a specific type of Material component. |