Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

[] lets you write TODOs in CSS that ensure you actually do them.

Based on todo-or-die in rust and todo-or-die in ruby

The intention is to get a clear signal when a TODO can be resolved.
The clearest signal is a hard error. It forces you to stop and resolve the issue.

@todo-or-die rules are considered open TODOs while they are true.
Once they become false they will throw an exception.

<example.css>

/* becomes */

<example.expect.css>

Syntax

[] is non-standard and is not part of any official CSS Specification.

@todo-or-die rule

The @todo-or-die rule is used to indicate which parts of your CSS have a TODO. You can either use a lone rule or a block around CSS.

.foo {
	@todo-or-die if(10 > 8);
	color: pink;
}

@todo-or-die if(10 > 8) {
	.foo {
		color: pink;
	}
}

You can use these conditions :

condition todo dies
if when true or unknown when false
not when false or unknown when true
before-date when "now" is before the date when "now" is after
browserslist when browsers match those of your project when no browsers match
@todo-or-die if(10 > 8);
@todo-or-die not(10 < 8);
@todo-or-die before-date(2006 01 31); /* year month day */
@todo-or-die browserslist("chrome <= 80");

You can combine this plugin with others like @csstools/postcss-design-tokens :

@todo-or-die if(10 > design-token('foo.bar'));
@todo-or-die if(<value> <operator> <value>);
@todo-or-die not(<value> <operator> <value>);
@todo-or-die before-date(<integer> <integer> <integer>);
@todo-or-die browserslist(<string>);

<operator> = [ '<' | '>' | '=' ]