Package Exports
- postcss-focus-within
- postcss-focus-within/dist/index.cjs
- postcss-focus-within/dist/index.mjs
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (postcss-focus-within) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
PostCSS Focus Within 
PostCSS Focus Within lets you use the :focus-within
pseudo-class in CSS,
following the Selectors Level 4 specification.
It is the companion to the focus-within polyfill.
.my-form-field:focus-within label {
background-color: yellow;
}
/* becomes */
.my-form-field[focus-within] label {
background-color: yellow;
}
.my-form-field:focus-within label {
background-color: yellow;
}
PostCSS Focus Within duplicates rules using the :focus-within
pseudo-class
with a [focus-within]
attribute selector, the same selector used by the
focus-within polyfill. This replacement selector can be changed using the
replaceWith
option. Also, the preservation of the original :focus-within
rule can be disabled using the preserve
option.
Usage
Add PostCSS Focus Within to your project:
npm install postcss postcss-focus-within --save-dev
Use PostCSS Focus Within to process your CSS:
const postcssFocusWithin = require('postcss-focus-within');
postcssFocusWithin.process(YOUR_CSS /*, processOptions, pluginOptions */);
Or use it as a PostCSS plugin:
const postcss = require('postcss');
const postcssFocusWithin = require('postcss-focus-within');
postcss([
postcssFocusWithin(/* pluginOptions */)
]).process(YOUR_CSS /*, processOptions */);
PostCSS Focus Within runs in all Node environments, with special instructions for:
Node | PostCSS CLI | Webpack | Create React App | Gulp | Grunt |
---|
Options
preserve
The preserve
option defines whether the original selector should remain. By
default, the original selector is preserved.
focusWithin({ preserve: false });
.my-form-field:focus-within label {
background-color: yellow;
}
/* becomes */
.my-form-field[focus-within] label {
background-color: yellow;
}
replaceWith
The replaceWith
option defines the selector to replace :focus-within
. By
default, the replacement selector is [focus-within]
.
focusWithin({ replaceWith: '.focus-within' });
.my-form-field:focus-within label {
background-color: yellow;
}
/* becomes */
.my-form-field.focus-within label {
background-color: yellow;
}
.my-form-field:focus-within label {
background-color: yellow;
}