JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 4
  • Score
    100M100P100Q44875F
  • License apache

facilitates usage of the CSS Object Model

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({
    'body' : {
        color : 'black',
        fontSize : '20px'
    }
    '.txt-green' : {
        color : 'green',
    }
});
myStyles.render()

Selector Syntax

  • Syntax is based off SCSS, and uses nesting to indicate relationships.

Selecting Descendants

header : {
    h1: {
        textAlign:'center'
    }
}
/* CSS equivalent */
header h1 {
    text-align : center;
}

Selecting Children

header : {
    '> h1': {
        textAlign:'center'
    }
}
/* CSS eqiuvalent */
header h1 {
    text-align : center;
}

Selecting Element w/ ...

(classes & psuedo-selectors)

  • '&' 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 : {
        from : {
            opacity : 1
        },
        to : {
            opacity : 0
        }
    }
}
/* CSS equivalent */
@keyframes fadein {
    0% {
        opacity : 0
    }
    100% {
        opacity : 1
    }
}
@keyframes fadeout {
    from {
        opacity : 1
    }
    to {
        opacity : 0
    }
}
}

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'
                }
            }
        }
    }
}