
Research
/Security News
60 Malicious Ruby Gems Used in Targeted Credential Theft Campaign
A RubyGems malware campaign used 60 malicious packages posing as automation tools to steal credentials from social media and marketing tool users.
jss-compose
Advanced tools
This plugin allows you to use CSS frameworks and legacy code together with JSS as well as reuse Rules more granularly.
Make sure you read how to use plugins in general.
To combine JSS with CSS framework like Material Design Lite or Bootstrap and others.
const styles = {
button: {
// Using space separated class names.
composes: 'btn btn-primary',
color: 'red'
}
buttonActive: {
// Using an array of class names.
composes: ['btn', 'btn-primary'],
color: 'blue'
}
}
Compiles to:
.button-123456 {
color: red;
}
.buttonActive-123456 {
color: blue;
}
When you use it:
<button className={classes.button}>Button</button>
<button className={classes.buttonActive}>Active Button</button>
It renders to:
<button class="button-123456 btn">Button</button>
<button class="button-123456 btn btn-primary">Active Button</button>
Manage element states without rules duplication.
To reference a local rule, prefix the rule name with $
symbol.
const styles = {
button: {
color: 'black'
},
// You can chain compositions
buttonActive: {
composes: '$button',
color: 'red'
},
buttonActiveDisabled: {
composes: '$buttonActive',
opacity: 0.5
},
// Or use arrays
disabled: {
opacity: 0.5
},
active: {
color: 'red'
},
buttonDisabled: {
composes: ['$button', '$active', '$disabled']
}
}
Compiles to:
.button-123456 {
color: black;
}
.buttonActive-123456 {
color: red;
}
.buttonActiveDisabled-123456 {
opacity: 0.5;
}
.disabled-123456 {
opacity: 0.5;
}
.active-123456 {
color: red;
}
/* Rule `buttonDisabled` is not compiled to CSS, because it has no own properties. */
When you use it:
<button className={classes.buttonActiveDisabled}>Active Disabled Button</button>
<button className={classes.buttonDisabled}>Disabled Button with active state</button>
It renders to:
<button class="button-123456 buttonActive-123456">Active Disabled Button</button>
<button class="buttonDisabled-123456 button-123456 active-123456 disabled-123456">Disabled Button with active state</button>
You can compose both local and global classes at the same time.
const styles = {
active: {
color: 'red'
},
button: {
composes: ['$active', 'btn', 'btn-primary'],
color: 'blue'
}
}
Compiles to:
.active-123456 {
color: red;
}
.button-123456 {
color: blue;
}
When you use it:
<button className={classes.button}>Button</button>
It renders to:
<button class="button-123456 active-123456 btn btn-primary">Button</button>
File a bug against cssinjs/jss prefixed with [jss-compose].
npm i
npm test
MIT
FAQs
JSS plugin for classes composition
The npm package jss-compose receives a total of 72,006 weekly downloads. As such, jss-compose popularity was classified as popular.
We found that jss-compose demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
A RubyGems malware campaign used 60 malicious packages posing as automation tools to steal credentials from social media and marketing tool users.
Security News
The CNA Scorecard ranks CVE issuers by data completeness, revealing major gaps in patch info and software identifiers across thousands of vulnerabilities.
Research
/Security News
Two npm packages masquerading as WhatsApp developer libraries include a kill switch that deletes all files if the phone number isn’t whitelisted.