🚨 Latest Research:Tanstack npm Packages Compromised in Ongoing Mini Shai-Hulud Supply-Chain Attack.Learn More →
Socket
Book a DemoSign in
Socket

@spaced-out/postcss-flexbugs-strict

Package Overview
Dependencies
Maintainers
3
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@spaced-out/postcss-flexbugs-strict

PostCSS plugin that tries to enforce unambiguous flexbox declarations

latest
Source
npmnpm
Version
1.0.2
Version published
Weekly downloads
10
25%
Maintainers
3
Weekly downloads
 
Created
Source

PostCSS Flexbugs Strict

PostCSS plugin This project tries to encourage less ambiguous Flexbox CSS while fixing some of flexbug's issues.

Explanation

This started as a fork of postcss-flexbugs-fixes because I was not happy with some of the changes it made to support shorthand flex declarations. This is not the fault of that plugin (which is great!); it is an issue with the goal of supporting ambiguous declarations in browsers like IE and Safari. See https://github.com/luisrudge/postcss-flexbugs-fixes/issues/59

My solution was to change the goal. Instead of supporting declarations like flex: 100% 0; and flex: 1, we force users to declare all three values explicitly. Furthermore, we do not automatically translate any values from one unit to another. We force users to specify a unit that is compatible with all target browsers.

In my experience, most developers have no idea what the defaults of flex are let alone what flex: 1; means, and flex: 1 1 auto; is actually not much more code. It forces developers to think about exactly what they want.

Strict Behavior

flex declarations must contain 3 values.

Okay

.foo { flex: 1 0 0%; }

Bad

.foo { flex: 1; }

The grow and shrink values must be unit-less.

Bad

.foo { flex: 100% 1 0%; }

The basis value must have a unit, and cannot be 0px.

Bad

.foo { flex: 1 1 0px; }

Also bad

.foo { flex: 1 0 0; }

Translations

The calc check for flex-basis is benign so we still do it.

bug 8.1.a

Input

.foo { flex: 1 0 calc(1vw - 1px); }

Output

.foo {
  flex-grow: 1;
  flex-shrink: 0;
  flex-basis: calc(1vw - 1px);
}

Usage

postcss([require('@spaced-out/postcss-flexbugs-strict')]);

See PostCSS docs for examples for your environment.

Keywords

postcss

FAQs

Package last updated on 03 Mar 2020

Did you know?

Socket

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