Package Exports
- cjs3
- cjs3/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (cjs3) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme

CJS3 - Getting Started
Installation
npm init CJS3 --save-dev
import CJS3 from "CJS3"
Creating a new Stylesheet
- Stylesheets can be created through the new instances of the CJS3.Stylesheet class
const myStyles = new CJS3.StyleSheet({
'body' : {
color : 'black',
fontSize : '20px'
}
'.txt-green' : {
color : 'green',
}
});
Selector Syntax
- The syntax for selectors borrows from SCSS, and uses nesting to indicate relationships.
Selecting Children
header : {
h1: {
textAlign:'center'
}
}
/* CSS equivalent */
header > h1 {
text-align : center;
}
Selecting Descendants
- note the space!
header : {
' h1': {
textAlign:'center'
}
}
/* CSS eqiuvalent */
header h1 {
text-align : center;
}
Selecting Element w/ class
- '&' is used for denoting element.class
header : {
'&.text-center': {
textAlign:'center'
}
}
/* CSS eqiuvalent */
header.text-center {
text-align : center;
}
Pseudo Selectors
header : {
color:'red'
':hover' : {
color:'green'
}
}
/* CSS eqiuvalent */
header {
color : red;
}
header:hover{
color:green;
}
@Rules
Keyframes
'@keyframes' : {
fadeout : {
0 : {
opacity : 0
}
1 : {
opacity : 1
}
},
fadein : {
0 : {
opacity : 1
},
1 : {
opacity : 0
}
}
}
/* CSS equivalent */
@keyframes fadein {
0% {
opacity : 0
}
100% {
opacity : 1
}
}
@keyframes fadeout {
0% {
opacity : 1
}
100% {
opacity : 0
}
}
}
- Keyframe rules defined using CJS3 can be accessed via CJS3.keyframes, where they can be applied dynamically.
CJS3.keyframes.fadein.apply('#some-button',{
duration : 1000,
fill : 'forwards'
})
Import
{
'@import' : [
'url(...)',
'stylesheet.css',
]
}
/* CSS equivalent */
@import url(...);
@import 'stylesheet.css'
Event Handlers
- Event Handlers can be created as well.
- Styles returned by an event will be applied to the object.
- This bound to event target.
{
button {
color:'black',
click(){
if (!this.counter){
this.counter = 0;
}
this.textContet =
`click # ${this.counter}`
if (this.counter % 2 === 1){
return {
color:'yellow'
}
}
else {
return {
color : 'green'
}
}
}
}
}