# Contributing to Styled Material Components

Welcome to Styled Material Components! We're so glad you're here. Please read the info below, and do not hesistate to [contact us](ashley.woodall@merlinlabs.com) if you have any questions or concerns.

## Table of Contents

0. [Issues and Contributions](#types-of-contributions-were-looking-for)
0. [How to contribute](#how-to-contribute)
0. [Contribution review process](#contribution-review-process)
0. [Community](#community)
0. [Resources and Terminology]

## Issues and Contributions
The easiest way to start contributing is to check out our current open [Issues](https://github.com/ConciergeAuctions/styled-material-components/issues). Here you will find open issues that need to be implemented including but not limited to: features, enhancements, bug fixes, discussions, and questions. Issues we've identified as possible good places to start for first time contributors are labeled as "good first issue." Feel free to assign yourself to issues you are interested in tackling and open a PR when you feel like your code satisfies the open issue.

Additionally, there are also many ways you can directly contribute, such as:

* Fix typos, inconsistencies, or inaccuracies in the documentation
* Comment and join discussions on existing Issues and Pull Requests
* Add issues when features, enhancements, bugs, discussions, or questions are identified that are not already open

## How to contribute

0. Fork this repo
0. Create a remote upstream to the original project repository with: `git remote add upstream https://github.com/ConciergeAuctions/styled-material-components.git`
0. Create a new branch on your fork with a name relevant to what you are working on
0. Run `yarn install`
0. Run `yarn run dev`
0. Open http://localhost:8081 in your web browser
0. Make changes to components in src/
0. Add the components to pages in /pages (Pages are mapped to routes for our documentation)
0. Add a link to your new component page in index.js
0. Open a PR
0. Our danger script will build your application and post a link as a comment to view your work!
0. Profit :D

## Contribution review process

This repo is currently maintained by the engineering team at Merlin Labs. If you haven't heard from anyone in 10 days, feel free to bump the thread or @-mention a maintainer to review your contribution.

## Community

Discussions about Styled Material Components take place on this repository's [Issues](https://github.com/ConciergeAuctions/styled-material-components/issues) and [Pull Requests](https://github.com/ConciergeAuctions/styled-material-components/pulls) sections.

We also have an active [#smc Slack Channel](https://merlin-labs.slack.com/messages/C8SU9KJTG/details/), and would love for you to join the discussion there. If you are having trouble accessing the channel please reach out to @ashwoodall to request access.

Anyone is welcome to join these conversations.

Wherever possible, do not take these conversations to private channels, including contacting the maintainers directly. Keeping communication public means everybody can benefit and learn from the conversation. Please read more about conversation guidelines at our [Code of Conduct](https://github.com/ConciergeAuctions/styled-material-components/blob/master/CODE_OF_CONDUCT.md)

Follow us on [Twitter](https://twitter.com/merlinOSA) to learn more about our open source initiatives and get involved with our community <3

Read more about contributing to the open source community on Github's fantastic [Open Source Guides](https://opensource.guide/)

## Resources and Terminology

* **[React](https://reactjs.org/)**
is a component-based library for managing state and creating user interfaces.
* **[styled-components](https://www.styled-components.com/)**
Inspired by the component-based architecture of React, Max Stoiber and Glenn Maddern created a library, styled-components, that allows you to style your application using React components.
* **[design language / design vocabulary](https://en.wikipedia.org/wiki/Design_language)**: a set of design guidelines or principles that allow designers to create thematically consistent user interfaces.
* **[Material Design](https://material.io/)**
is the name of a design language created by Google. Many of the Google applications you probably use (Gmail, YouTube, Inbox, Google Maps and many others) have implemented the Material Design guidelines.
  * **[material.io](https://material.io/)**
is the home page for Google's Material Design system.
* **[Material Components](https://material.io/components/)**
is the name of Google's own UI implementation of their Material Design spec.
  * **[material.io/components](https://material.io/components/)**
is the home page for Google's Material Components.
* **[Material UI](http://www.material-ui.com/#/)**
is a library that implements Google's Material Design, crafted in React components. If you want to create a React project using the popular Material Design guidelines, Material UI provides a component-based library that is designed to be used in a React application.
* **[Styled Material Components](https://github.com/ConciergeAuctions/styled-material-components)**
(this library) creates a fresh implementation of Material Components, using Styled Components.
* **[styled-material-components](https://www.npmjs.com/package/styled-material-components)**
is the npm package for Styled Material Components.
