Slim Shady
Slim Shady

Reputation: 1085

How to reuse the same style rule with multiple selectors

I want this using jss styling.

.a{
height: 20px;
}
.b{
height: 40px;
}
.a,.b{
width: 100px;
}

Try 1

Make a rule c and add the class to both a and b

c: {
width: '100px'
}

Try 2

Make a object common and merge them to both a and b rule

const common = {
   width: '100px',
};

a: {
height: '20px',
...common
}
b: {
height: '40px',
...common
}

Is there any better way possible ?

Upvotes: 10

Views: 5976

Answers (2)

Adam Menczykowski
Adam Menczykowski

Reputation: 207

A simpler alternative that I feel is easier to parse would be to set the key to be a String by wrapping in quotes:

'.a, .b': {
   width: 100px; 
}

Upvotes: 6

Linden X. Quan
Linden X. Quan

Reputation: 802

How about extend plugin (enabled by default)?

https://cssinjs.org/jss-plugin-extend

const styles = {
  buttonColor: {
    background: 'red'
  },
  button: {
    extend: 'buttonColor',
    fontSize: '20px'
  }
}

Upvotes: 10

Related Questions