npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

styled-material-components

v0.1.15

Published

coming soon

Downloads

125

Readme

Styled Material Components

Styled Components inspired library that implements Material Design for stress free React Application scaffolding.

Table of Contents

  1. Inspiration and goals
  2. Getting Started
  3. Contributing
  4. How to use
  5. Theme Provider
  6. Component Example
  7. Decorator Example

Inspiration and goals

  1. Styled Components is a great way to couple components with styles.
  2. Material Components is the best implementation of material design spec (it is google afterall)
  3. We want a native react implementation of the above, and Styled Components gives us that power.
  4. Sass Mixins can be mostly written as styled component mixins. See src/mixins/ for examples of this.

Getting Started

  • Fork the repo
  • Run:
yarn install
yarn build
yarn run dev
  • Open http://localhost:8081 in your browser

Contributing

How to use

All components in this library are either:

  1. Already styled components and will work when wrapping with styled()
  2. Handle the className prop correctly so that wrapping with styled() will work.

Theme Provider

Similar to the Styled Components ThemeProvider (its a thin wrapper around it) except that it provides a default theme that matches material design's default theme. You can provide a custom theme here with any option from src/theme/defaultTheme.js overwritten. You can nest ThemeProviers just like with StyledComponents to overwrite portions of the theme for sections of your application

Global Style Helpers (^0.1.1-beta)

Prior to version 0.1.1-beta we injected global styles behind the scenes. In our use case this lead to us having to override these often. Styled-components v4 created a new createGlobalStyle builder that exports components. So now you can import these global styles manually and add them to your code where and if you want.

  1. SMCGlobalStyles (includes the app wide styles that are typical in most material apps)
  2. DrawerGlobalStyles (includes some global styles that push content around on the screen when the presence of a drawer is detected)

Component Example

Button

This component is for creating a material design button. It has props that match the documentation from Material Components

Example Implementation:

// Flat button with primary text color
<Button primary>I’m a Button</Button>

// Flat button with accent text color
<Button accent>I’m a Button</Button>

// Raised button with primary background color
<Button raised primary>I’m a Button</Button>

Decorator Example

withRipple

This is a decorator (higher order component) to add a javascript ripple effect to any element that can have a className attached to it.

const JSRippleButton = withRipple(Button);
<JSRippleButton raised primary>Test</JSRippleButton>