PostCSS plugin to center elements.
Centering elements in CSS isn't exactly straight-forward, but we can change that!
.foo {
top: center;
left: center;
}
Transpiles into:
.foo {
position: absolute;
top: 50%;
left: 50%;
margin-right: -50%;
transform: translate(-50%, -50%)
}
Of course, you don't have to include both top
and left
:
.foo {
top: center;
}
Transpiles into:
.foo {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
Or...
.foo {
left: center;
}
Transpiles into:
.foo {
position: absolute;
left: 50%;
margin-right: -50%;
transform: translateX(-50%);
}
That's about it!
- If the value of
top
orleft
is notcenter
it will be preserved. If both are notcenter
, this plugin will do nothing! - If the rule already has a
position
it will only be preserved if its value isrelative
orfixed
. All other values will be replaced withabsolute
. - If the rule has a
position
ofrelative
or the value ofleft
is notcenter
, themargin-right
declaration will not be inserted.
$ npm install postcss-center
postcss([ require('postcss-center') ]);
import * as postcssCenter from 'postcss-center';
postcss([ postcssCenter ]);
None at this time.
Run the following command:
$ npm test
This will build scripts, run tests and generate a code coverage report. Anything less than 100% coverage will throw an error.
For much faster development cycles, run the following commands in 2 separate processes:
$ npm run build:watch
Compiles TypeScript source into the ./dist
folder and watches for changes.
$ npm run watch
Runs the tests in the ./dist
folder and watches for changes.