Material Components for Vue
This is a fork of vue-mdc-adapter
. Back in May of 2018, I was excited to learn
Vue.js and make use of this clean looking framework. It was getting a thumbs up from
Google and NPM was showing 9,000 weekly downloads. How could things go wrong? Afterall,
Google was promoting it. Who doesn't trust Google? (Sigh). Anyway, needless to say,
things eventually went down the poop chute. For months I tried requesting changes, but
it all fell on deaf ears. I was a sad panda. But, not all was lost. After many nights of crying and no
sleep, I decided to fork the project and make the changes myself. Great success!!! It's nice!!!
vue-mdc-adapter
is an integration of
Material Components
for Vue.js which follows the best practices
recommended by Google:
Using Foundations and Adapters
This project aims to find the right balance between ease of use and customization while sticking to the Vue Spirit (approachable, versatile, and performant)
Some Fixes & Removals
- I was spending too much time trying to get the chips component to build correctly. The auto generated code basically created some component called VueMDCChips which of course does not exist. When I'd install the module from NPM and run it, NPM would tell me VueMDCChips is not defined. Why you ask? Whatever auto generator was used probably can't interpret the word ChipSet or something. I don't know. So, I said screw it and removed chips from the package. People have day jobs ya know.
- For the longest time I wanted to remove the damn href=#" in the top-app-bar component. FFS!!!! The Material Design standard does not even have it in there. Without that stupid # I can finally click on my other components without the whole screen jumping to the top of the page. (Sigh of relief).
Quick Links
Project Status
This project is under active development.
The focus is on known issues, validation, and keeping up with MDC updates.
Do not hesitate to open an issue on GitHub,
contact us on Gitter,
or follow us on Twitter @vuemdc
Each MDCWeb component is mapped to a single vue plugin
- [x] button
- [x] card
- [x] checkbox
- [x] dialog
- [x] drawer
- [x] fab
- [x] grid-list
- [x] icon-toggle
- [x] layout-grid
- [x] linear-progress
- [x] list
- [x] menu
- [x] radio
- [x] select
- [x] slider
- [x] snackbar
- [x] switch
- [x] tabs
- [x] textfield
- [x] toolbar
- [x] top-app-bar
- [x] typography
Extra plugins
- [x] layout-app: provides a flexible layout to simplify toolbar vs drawer positioning
- [x] icon: provides a material icon wrapper with support for font-awesome, svg, etc.
Quick Start
Playground
Fork the reference codepen template or one of the vue-mdc-adapter codepen collection or the CodeSandbox
CDN
<head>
<!-- import reset material icons, fonts and vue-mdc-adapter stylesheets -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/7.0.0/normalize.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500" type="text/css">
<!-- import vue and then vue-mdc-adapter -->
<script src="https://unpkg.com/vue"></script>
<script src="https://unpkg.com/vue-mdc-adapter"></script>
</head>
<body>
<!-- vue mdc markup -->
<body>
Vue CLI
Simple
npm install -g vue-cli
vue init stasson/vue-mdc-adapter-simple my-project
Webpack
npm install -g vue-cli
vue init stasson/vue-mdc-adapter-webpack my-project
cd my-project
npm install
npm run dev
Check out the Getting Started guide for more.