vcss

0.1.1 • Public • Published

x-css

Enables programmatic and expressive declaration of stylesheets.

How to use

import Sheet from 'x-css';
 
let css = new Sheet();
let width = 120;
let fade = css.anim({
  from: { opacity: 0 },
  to: { opacity: 1 }
})
 
css.add('div > p', {
  'width': width, // casted to '10px'
  'font-weight': 'bold',
  'animation': `${fade} 1s ease-in`
});

API

The main module exports the following:

  • Sheet (default)
  • Block
  • Scope
  • Media
  • Animation
  • Ruleset

Sheet()

Initializes a new Sheet, which is the main scope under which other scopes and ruleset blocks are inserted.

Extends Scope.

Sheet.anim(String name, Object frames[, Boolean withPrefixes])

Creates a new Animation scope with the given frames, and appends it to the current scope.

By default, when the Animation object is serialized, it'll include -o, -webkit and -moz prefixes. Passing false to withPrefixes will disable this.

Returns the Animation object.

Sheet.media(String params)

Creates a new Media scope with the given frames, and appends it to the current scope.

Returns the Media object.

Media(String params)

Accepts params which is a string like only screen and (orientation: portrait).

Extends Scope.

Scope()

Initializes a new Scope object.

Extends Block.

Scope.add(Block blk)

Appends the Block identified by blk to the scope. Valid Block objects are for example Ruleset or another Scope.

Scope.add(String sel, Object decs)

Creates and appends a Ruleset for the selector sel and declarations decs.

scope.add('img', {
  border: 'none'
});

Scope.remove(Block block)

Removes the child of the main scope identified by the given block.

Ruleset(String sel, Object decs)

Creates a ruleset identified by selector sel and declaration pairs decs.

Extends Block.

Animation(String name[, Boolean withPrefixes])

Creates an Animation with the given name.

By default, when the object is serialized, it'll include -o, -webkit and -moz prefixes. Passing false to withPrefixes will disable this.

Block

Abstract interface to represent any node within the style hierarchy.

Ruleset and Scope inherit from Block.

Block.serialize()

Abstract method. All blocks must be serializable as a String.

This method is implemented on Ruleset, Scope, Media and Animation.

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i vcss

Weekly Downloads

4

Version

0.1.1

License

none

Last publish

Collaborators

  • a8c
  • rauchg