cssnano
Version:
A modular CSS minifier, built on top of the PostCSS ecosystem.
28 lines • 1.42 kB
TypeScript
import type { Container } from 'postcss';
import type MergeState from './mergeState.js';
/**
* Joins siblings that apply under the same circumstances across any nodes
* between them that set no conflicting property, in every container except
* style rules, whose rules the scan handles.
*
* Rules with the same selector set the same properties on the same elements
* at the same specificity. The later rule moves up into the earlier one or,
* failing that, the earlier rule moves down into the later one. Joining
* always shrinks the output because the selector is not repeated.
*
* Sibling `@media`, `@supports` or `@container` blocks with identical
* conditions apply their content under the same circumstances, so one block
* joins the other when nothing between them, at any depth, sets a property
* that its declarations also set. Named `@layer` blocks are left
* out: their order comes from where each layer first appears.
*
* Rules that set the same declarations in the same order also share one
* rule: a later rule adds its selectors to the earlier one, and is removed,
* when no node between them sets a property its declarations also set.
*
* @param {Container} root
* @param {MergeState} mergeState
* @return {boolean} whether anything was joined
*/
export declare function joinNonAdjacent(root: Container, mergeState: MergeState): boolean;
//# sourceMappingURL=nonAdjacentMerge.d.ts.map