All Projects → JacquesBonet → jss-material-ui

JacquesBonet / jss-material-ui

Licence: MIT license
A enhanced styling engine for material-ui

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to jss-material-ui

tsstyled
A small, fast, and simple CSS-in-JS solution for React.
Stars: ✭ 52 (+246.67%)
Mutual labels:  styled-components, style, jss, styles
Styled By
Simple and powerful lib to handle styled props in your components
Stars: ✭ 122 (+713.33%)
Mutual labels:  styled-components, props, styles
remindoro
📝 Chrome/Firefox Extension to get reminders(repeat/one-time). Edit notes with live rich text editor. 🗃️
Stars: ✭ 16 (+6.67%)
Mutual labels:  styled-components, material-ui, mui
Graphql Css
A blazing fast CSS-in-GQL™ library.
Stars: ✭ 672 (+4380%)
Mutual labels:  styleguide, styles
Prejss
Get the power of PostCSS with plugins in your JSS styles. 🎨 Just put CSS into JS and get it as JSS object.
Stars: ✭ 238 (+1486.67%)
Mutual labels:  styled-components, jss
Django Api Domains
A pragmatic styleguide for Django API Projects
Stars: ✭ 365 (+2333.33%)
Mutual labels:  styleguide, style
Goober
🥜 goober, a less than 1KB 🎉 css-in-js alternative with a familiar API
Stars: ✭ 2,317 (+15346.67%)
Mutual labels:  styled-components, styled
Snacks
The Instacart Component Library
Stars: ✭ 65 (+333.33%)
Mutual labels:  styleguide, style
Sugui Design System
A design system template for the SugUI components library based on styleguidist
Stars: ✭ 17 (+13.33%)
Mutual labels:  styleguide, styled-components
Pulse Boilerplate
React based boilerplate for creating scalable and well documented Design Systems. Live demo https://pulse.heartbeat.ua
Stars: ✭ 92 (+513.33%)
Mutual labels:  styleguide, styled-components
CustomWebRadioButton
An example of a make radio-button design on the web.
Stars: ✭ 15 (+0%)
Mutual labels:  style, styles
Styled Jss
Styled Components on top of JSS.
Stars: ✭ 217 (+1346.67%)
Mutual labels:  styled-components, jss
Layouts
Grab-and-go layouts for React
Stars: ✭ 202 (+1246.67%)
Mutual labels:  styled-components, styles
Git Style Guide
A Git Style Guide
Stars: ✭ 4,851 (+32240%)
Mutual labels:  styleguide, style
Css In Js
Autocomplete React Native / JS Styles and converting plain CSS to JS styles
Stars: ✭ 192 (+1180%)
Mutual labels:  styled-components, jss
Quantum
The default pack of components and layout principles that dictates Catho Frontend applications.
Stars: ✭ 39 (+160%)
Mutual labels:  styleguide, styled-components
Styled Bootstrap
💅🏻 A styled-component implementation of Bootstrap
Stars: ✭ 154 (+926.67%)
Mutual labels:  styleguide, styled-components
react-typescript-material-ui-with-auth-starter
React + Material UI + Auth starter using TypeScript
Stars: ✭ 27 (+80%)
Mutual labels:  material-ui, mui
Storybook Addon
Develop themable components with Emotion/Styled Components/Material-UI with help of Storybook & React Theming
Stars: ✭ 122 (+713.33%)
Mutual labels:  styled-components, material-ui
Smooth Ui
Modern React UI library 💅👩‍🎤🍭
Stars: ✭ 1,583 (+10453.33%)
Mutual labels:  styled-components, material-ui

jss-material-ui

Provide seamless components styling to material-ui with enhanced features. Permits passing props to material UI style

Introduction

Material-ui 1.0 is a great react library, but its css to jss styling could be enhanced.

Drawback of the styling provided by material-ui

  • doesn't support props
  • Styles are applied globally resulting to a lot of warning for the styles not maching the processed component

The solutions until now to resolve these problems

Some suggest to use styled libraries like styled-component, glamorous, emotion, ... to resove these problems

They resolve it, but two new problems arrive:

  • stylesheet priorisation problem.
  • two css engines on the system which provide more complexity for the app

A new small styled libray

So I decided to develop a library with the following objective:

  • use material-ui styling system, so compatibiity is 100%
  • more component oriented
  • provide props

A little sample

without props

import style from 'jss-material-ui'

// a container style
const ContainerRoot = style(Paper)({
  root: {
    width: '100%',
    marginTop: 3,
    overflowX: 'auto'
  }
})

// container use
<ContainerRoot />

The first style is applied to the corresponding styled component.

Its name is generally root. Permits to avoid material-ui warning message. If you don't have style to pass to the component, you can write

root: {}

with props

import style from 'jss-material-ui'
import TableCell from '@material-ui/core/TableCell'

const CaloriesCell = style(TableCell)((theme, {calories}) => ({
  root: {
    fontWeight: calories > 300 ? 700 : undefined,
    backgroundColor: calories > 300 ? '#ff0000' : calories < 160 ? '#00FF00' : undefined
  }
}))

// use
<CaloriesCell calories={n.calories} numeric>{n.calories}</CaloriesCell>

Result

Custom props

Its also possible to use custom props

style(TableCell, {
     myCustomProps1,
     myCustomProps2
   })
   ((theme, {calories})

Class inherithance

If a child B of a component A has for className :

<A>
   <B className={classes.classB} />
</A>

Its possible to write that:

const SA = style(A)((theme, props) => ({
  root: {
    ...
  },
  classB: {
    ...
  }
}))

The style specified in the classB object will be applied to B class component. Check stories/SimpleTableInherit.js

ref

To acces the DOM element of the component, use sref in place of ref

See the storybook Ref example

more samples

Check ./stories directory for complete samples files.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].