パッケージの詳細

postcss-define-property

daleeidd22.4kMIT0.5.0

PostCSS plugin to define and use custom properties

postcss, css, postcss-plugin, custom properties

readme

postcss-define-property

Build Status

PostCSS plugin to define and use custom properties. Not to be confused with the CSS Custom Properties specification which are really variables.

Please see the Compatibility wiki page for use with other plugins.

/* Input */
size: $height $width {
  height: $height;
  width: $width;
}

size: $size {
  height: $size;
  width: $size;
}

.rectangle {
  size: 50px 100px;
}

.square {
  size: 50px;
}
/* Output */
.rectangle {
  height: 50px;
  width: 100px;
}

.square {
  height: 50px;
  width: 50px;
}

There must be a minimum of one space after the semicolon for property definitions; otherwise, it will just appear as a psuedo-selector.

Properties – including native ones – can be redefined. The placement of property definitions matter as they are not hoisted.

Properties can also be overloaded as the parameter quantity forms part of the property's signature.

Options

syntax

The syntax is customisable by providing an object. The following are the available syntax options:

Syntax Types Default Comment
atrule boolean string false true for @property or a string to specify the atrule name
parameter string '$' sets the parameter prefix within the signature
property string '' sets the prefix for property invocation
separator string ':' sets the name/parameter separator within the signature. Cannot be set to '' if not an atrule
variable string '$' sets the parameter prefix within the body

As an example, the following syntax options:

properties({
  syntax: {
    atrule: true,
    parameter: '',
    property: '+',
    separator: ''
  }
});

Will be able to parse:

@property size height width {
  height: $height;
  width: $width;
}

.rectangle {
  +size: 50px 100px;
}

The above is useful if one is concerned about not being able to discern custom properties from native ones.

Usage

postcss([ require('postcss-define-property') ])

See PostCSS docs for examples for your environment.

Related

  • Mixins: Mixins for more complicated cases
  • Aliases: Property aliases for simpler cases

更新履歴

Change Log

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

0.5.0 - 2017-06-07

Fixed

  • Fix naive regex which included all non-whitespace as valid characters for parameters (fixes #3)

0.4.0 - 2017-03-08

Fixed

  • Fix PostCSS deprecation warnings (fixes #2)

0.3.1 - 2015-11-24

Fixed

  • Null reference when no variable in property definition (fixes #1)

0.3.0 - 2015-07-12

Added

  • Syntax customisation for property invocation

    Fixed

  • Performance improvements

0.2.0 - 2015-07-10

Added

  • Syntax customisation options

0.1.1 - 2015-07-04

Fixed

  • Downgrade to ES2011 features for node.js

0.1.0 - 2015-07-04

Added

  • Initial release