Material Design Components for the Yew framework.
Angular Rust is a high productivity, platform-agnostic
frontend framework for the Rust language. It now supports desktop and web development. Angular Rust currently uses GTK for desktop development and WebAssembly for web development. We are planning to add support for mobile development.
Yew Material Components is a components library for Yew framework which is a wrapper around Material Design Components exposing Yew components. All modern browsers are supported.
Currently, this library is available from crates.io. Add it using cargo-edit
cargo add ymc
Cargo features are used to pick the components. See features
Cargo.toml
:
[dependencies]
ymc = { version = "0.1", features = ["full"] }
Material icons and a Material font can also be imported for full functionality.
index.html
:
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet">
It's also important to note that you need viewport
meta
tag for the Material Components to be responsive.
<meta name="viewport" content="width=device-width, initial-scale=1.0">
Following are all the cargo features available (each feature corresponds to its respective component):
-
banner
-
button
-
card
-
checkbox
-
chips
-
circular-progress-four-color
-
circular-progress
-
data-table
-
dialog
-
drawer
-
fab
-
formfield
-
icon-button-toggle
-
icon-button
-
icon
-
image-list
-
linear-progress
-
list
-
menu
-
radio
-
select
-
slider
-
slider
-
snackbar
-
switch
-
tabs
-
textarea
-
textfield
-
tooltip
-
top-app-bar-fixed
-
top-app-bar
full
feature enables all the components
This is still a work in progress... feel free to add additional components.
To port a component that hasn't been ported yet open TODO
Implement a component you need and add it to the src/ directory.
These components respect the theming applied to Material Design Components using stylesheets. Learn about how to theme Material Design Components.
We believe the wider community can create better code. The first tool for improving the community is to tell the developers about the project by giving it a star. More stars - more members.
Angular Rust is a community effort and we welcome all kinds of contributions, big or small, from developers of all backgrounds. We want the Angular Rust community to be a fun and friendly place, so please review our Code of Conduct to learn what behavior will not be tolerated.
Start learning about the framework by helping us improve our documentation. Pull requests which improve test coverage are also very welcome.
Check out the community curated list of awesome things related to Angular Rust / WebAssembly at awesome-angular-rust.
Feel free to drop into our Gitter chatroom or open a new "Question" issue to get help from contributors. Often questions lead to improvements to the ergonomics of the framework, better documentation, and even new features!
After reviewing the Contributing Code Guidelines, check out the "Good First Issues" (they are eager for attention!). Once you find one that interests you, feel free to assign yourself to an issue and don't hesitate to reach out for guidance, the issues vary in complexity.
Come help us on the issues that matter that the most and receive a small cash reward for your troubles. We use Issuehunt to fund issues from our Open Collective funds. If you really care about an issue, you can choose to add funds yourself!
Please report all bugs! We are happy to help support developers fix the bugs they find if they are interested and have the time.
- Documentation
- https://github.com/Follpvosten/yew-mdc
- https://github.com/AlephAlpha/muicss-yew
- https://github.com/material-components/material-components-web
- https://github.com/material-components/material-components-web-react
- https://material-components.github.io/material-components-web-catalog/#/
- https://github.com/jamesmfriedman/rmwc
- https://github.com/pgbross/vue-material-adapter
- https://github.com/material-components/material-components-web/blob/master/docs/integrating-into-frameworks.md
- https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md