Socket
Socket
Sign inDemoInstall

postcss-calc

Package Overview
Dependencies
4
Maintainers
1
Versions
33
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    postcss-calc

PostCSS plugin to reduce calc()


Version published
Maintainers
1
Install size
110 kB
Created

Package description

What is postcss-calc?

The postcss-calc npm package is a PostCSS plugin that reduces CSS calc() function to the maximum, whenever it's possible. It simplifies calculations in CSS files and optimizes them during the build process, making the final CSS file lighter and easier for browsers to parse.

What are postcss-calc's main functionalities?

Simplification of calc expressions

This feature allows the simplification of calc expressions in CSS, reducing them to their simplest form. For example, if you have a calculation based on CSS custom properties or simple arithmetic, postcss-calc can compute these values at build time, resulting in cleaner and more efficient CSS.

css
.post {
  --gap: 20px;
  padding: calc(var(--gap) * 2);
}
/* becomes */
.post {
  padding: 40px;
}

Optimization of complex calculations

For more complex calculations that cannot be fully simplified without context (like viewport sizes or percentages), postcss-calc optimizes the expression to ensure it's as efficient as possible without altering the intended result.

css
.banner {
  width: calc(100% - 80px);
}
/* becomes */
.banner {
  width: calc(100% - 80px);
}

Other packages similar to postcss-calc

Changelog

Source

2.0.1 - 2014-08-10

  • Fixed: correctly ignore unrecognized values (fix #2)

Readme

Source

postcss-calc Build Status

PostCSS plugin to reduce calc().

Particularly useful with the postcss-custom-properties

Installation

npm install postcss-calc

Usage

var postcss = require("postcss")
var calc = require("postcss-calc")

var css = postcss()
  .use(calc())
  .process(cssString)
  .css

Supported feature

This reduce calc() references whenever it's possible. This can be particularly useful with the postcss-custom-properties plugin.

Note: When multiple units are mixed together in the same expression, the calc() statement is left as is, to fallback to the w3c calc() feature.

Example (with postcss-custom-properties enabled as well):

// dependencies
var fs = require("fs")
var postcss = require("postcss")
var customProperties = require("postcss-custom-properties")
var calc = require("postcss-calc")

// css to be processed
var css = fs.readFileSync("style.css", "utf8")

var output = postcss()
  .use(customProperties())
  .use(calc())
  .process(css)
  .css
:root {
  --main-font-size: 16px;
}

body {
  font-size: var(--main-font-size);
}

h1 {
  font-size: calc(var(--main-font-size) * 2);
  height: calc(100px - 2em);
}

yields:

body {
  font-size: 16px
}

h1 {
  font-size: 32px;
  height: calc(100px - 2em)
}

See unit tests for a better example.


Contributing

Work on a branch, install dev-dependencies, respect coding style & run tests before submitting a bug fix or a feature.

git clone https://github.com/postcss/postcss-calc.git
git checkout -b patch-1
npm install
npm test

Changelog

License

Keywords

FAQs

Last updated on 10 Aug 2014

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc