UNPKG

16.9 kBTypeScriptView Raw
1import type autoprefixer from 'autoprefixer';
2import type { PluginCreator } from 'postcss';
3import type { pluginOptions as pluginOptions_10 } from 'postcss-custom-media';
4import type { pluginOptions as pluginOptions_11 } from 'postcss-custom-properties';
5import type { pluginOptions as pluginOptions_12 } from 'postcss-custom-selectors';
6import type { pluginOptions as pluginOptions_13 } from 'postcss-dir-pseudo-class';
7import type { pluginOptions as pluginOptions_14 } from '@csstools/postcss-normalize-display-values';
8import type { pluginOptions as pluginOptions_15 } from 'postcss-double-position-gradients';
9import type { pluginOptions as pluginOptions_16 } from '@csstools/postcss-exponential-functions';
10import type { pluginOptions as pluginOptions_17 } from '@csstools/postcss-logical-float-and-clear';
11import type { pluginOptions as pluginOptions_18 } from 'postcss-focus-visible';
12import type { pluginOptions as pluginOptions_19 } from 'postcss-focus-within';
13import type { pluginOptions as pluginOptions_2 } from '@csstools/postcss-initial';
14import type { pluginOptions as pluginOptions_20 } from '@csstools/postcss-font-format-keywords';
15import type { pluginOptions as pluginOptions_21 } from '@csstools/postcss-gamut-mapping';
16import type { pluginOptions as pluginOptions_22 } from 'postcss-gap-properties';
17import type { pluginOptions as pluginOptions_23 } from '@csstools/postcss-gradients-interpolation-method';
18import type { pluginOptions as pluginOptions_24 } from 'css-has-pseudo';
19import type { pluginOptions as pluginOptions_25 } from 'postcss-color-hex-alpha';
20import type { pluginOptions as pluginOptions_26 } from '@csstools/postcss-hwb-function';
21import type { pluginOptions as pluginOptions_27 } from '@csstools/postcss-ic-unit';
22import type { pluginOptions as pluginOptions_28 } from 'postcss-image-set-function';
23import type { pluginOptions as pluginOptions_29 } from '@csstools/postcss-is-pseudo-class';
24import type { pluginOptions as pluginOptions_3 } from 'postcss-pseudo-class-any-link';
25import type { pluginOptions as pluginOptions_30 } from 'postcss-lab-function';
26import type { pluginOptions as pluginOptions_31 } from '@csstools/postcss-light-dark-function';
27import type { pluginOptions as pluginOptions_32 } from '@csstools/postcss-logical-overflow';
28import type { pluginOptions as pluginOptions_33 } from '@csstools/postcss-logical-overscroll-behavior';
29import type { pluginOptions as pluginOptions_34 } from 'postcss-logical';
30import type { pluginOptions as pluginOptions_35 } from '@csstools/postcss-logical-resize';
31import type { pluginOptions as pluginOptions_36 } from '@csstools/postcss-logical-viewport-units';
32import type { pluginOptions as pluginOptions_37 } from '@csstools/postcss-media-queries-aspect-ratio-number-values';
33import type { pluginOptions as pluginOptions_38 } from '@csstools/postcss-media-minmax';
34import type { pluginOptions as pluginOptions_39 } from '@csstools/postcss-nested-calc';
35import type { pluginOptions as pluginOptions_4 } from 'css-blank-pseudo';
36import type { pluginOptions as pluginOptions_40 } from 'postcss-nesting';
37import type { pluginOptions as pluginOptions_41 } from 'postcss-selector-not';
38import type { pluginOptions as pluginOptions_42 } from '@csstools/postcss-oklab-function';
39import type { pluginOptions as pluginOptions_43 } from 'postcss-overflow-shorthand';
40import type { pluginOptions as pluginOptions_44 } from 'postcss-place';
41import type { pluginOptions as pluginOptions_45 } from 'css-prefers-color-scheme';
42import type { pluginOptions as pluginOptions_46 } from 'postcss-color-rebeccapurple';
43import type { pluginOptions as pluginOptions_47 } from '@csstools/postcss-relative-color-syntax';
44import type { pluginOptions as pluginOptions_48 } from '@csstools/postcss-scope-pseudo-class';
45import type { pluginOptions as pluginOptions_49 } from '@csstools/postcss-stepped-value-functions';
46import type { pluginOptions as pluginOptions_5 } from '@csstools/postcss-cascade-layers';
47import type { pluginOptions as pluginOptions_50 } from '@csstools/postcss-text-decoration-shorthand';
48import type { pluginOptions as pluginOptions_51 } from '@csstools/postcss-trigonometric-functions';
49import type { pluginOptions as pluginOptions_52 } from '@csstools/postcss-unset-value';
50import type { pluginOptions as pluginOptions_6 } from 'postcss-attribute-case-insensitive';
51import type { pluginOptions as pluginOptions_7 } from '@csstools/postcss-color-function';
52import type { pluginOptions as pluginOptions_8 } from 'postcss-color-functional-notation';
53import type { pluginOptions as pluginOptions_9 } from '@csstools/postcss-color-mix-function';
54
55declare const creator: PluginCreator<pluginOptions>;
56export default creator;
57
58export declare enum DirectionFlow {
59 TopToBottom = "top-to-bottom",
60 BottomToTop = "bottom-to-top",
61 RightToLeft = "right-to-left",
62 LeftToRight = "left-to-right"
63}
64
65export declare type pluginOptions = {
66 /**
67 * Determine which CSS features to polyfill,
68 * based upon their process in becoming web standards.
69 * default: 2
70 */
71 stage?: number | false;
72 /**
73 * Determine which CSS features to polyfill,
74 * based their implementation status.
75 * default: 0
76 */
77 minimumVendorImplementations?: number;
78 /**
79 * Enable any feature that would need an extra browser library to be loaded into the page for it to work.
80 * default: false
81 */
82 enableClientSidePolyfills?: boolean;
83 /**
84 * PostCSS Preset Env supports any standard browserslist configuration,
85 * which can be a `.browserslistrc` file,
86 * a `browserslist` key in `package.json`,
87 * or `browserslist` environment variables.
88 *
89 * The `env` option is used to select a specific browserslist environment in the event that you have more than one.
90 */
91 env?: string;
92 /**
93 * PostCSS Preset Env supports any standard browserslist configuration,
94 * which can be a `.browserslistrc` file,
95 * a `browserslist` key in `package.json`,
96 * or `browserslist` environment variables.
97 *
98 * The `browsers` option should only be used when a standard browserslist configuration is not available.
99 * When the `browsers` option is used the `env` option is ignored.
100 */
101 browsers?: string | Array<string> | null;
102 /**
103 * Determine whether all plugins should receive a `preserve` option,
104 * which may preserve or remove the original and now polyfilled CSS.
105 * Each plugin has it's own default, some true, others false.
106 * default: _not set_
107 */
108 preserve?: boolean;
109 /**
110 * [Configure autoprefixer](https://github.com/postcss/autoprefixer#options)
111 */
112 autoprefixer?: autoprefixer.Options;
113 /**
114 * Enable or disable specific polyfills by ID.
115 * Passing `true` to a specific [feature ID](https://github.com/csstools/postcss-plugins/blob/main/plugin-packs/postcss-preset-env/FEATURES.md) will enable its polyfill,
116 * while passing `false` will disable it.
117 *
118 * Passing an object to a specific feature ID will both enable and configure it.
119 */
120 features?: pluginsOptions;
121 /**
122 * The `insertBefore` key allows you to insert other PostCSS plugins into the chain.
123 * This is only useful if you are also using sugary PostCSS plugins that must execute before certain polyfills.
124 * `insertBefore` supports chaining one or multiple plugins.
125 */
126 insertBefore?: Record<string, unknown>;
127 /**
128 * The `insertAfter` key allows you to insert other PostCSS plugins into the chain.
129 * This is only useful if you are also using sugary PostCSS plugins that must execute after certain polyfills.
130 * `insertAfter` supports chaining one or multiple plugins.
131 */
132 insertAfter?: Record<string, unknown>;
133 /**
134 * Enable debugging messages to stdout giving insights into which features have been enabled/disabled and why.
135 * default: false
136 */
137 debug?: boolean;
138 /**
139 * The `logical` object allows to configure all plugins related to logical document flow at once.
140 * It accepts the same options as each plugin: `inlineDirection` and `blockDirection`.
141 */
142 logical?: {
143 /** Set the inline flow direction. default: left-to-right */
144 inlineDirection?: DirectionFlow;
145 /** Set the block flow direction. default: top-to-bottom */
146 blockDirection?: DirectionFlow;
147 };
148};
149
150export declare type pluginsOptions = {
151 /** plugin options for "@csstools/postcss-initial" */
152 'all-property'?: subPluginOptions<pluginOptions_2>;
153 /** plugin options for "postcss-pseudo-class-any-link" */
154 'any-link-pseudo-class'?: subPluginOptions<pluginOptions_3>;
155 /** plugin options for "css-blank-pseudo" */
156 'blank-pseudo-class'?: subPluginOptions<pluginOptions_4>;
157 /** plugin options for "postcss-page-break" */
158 'break-properties'?: subPluginOptions<postcssPageBreakOptions>;
159 /** plugin options for "@csstools/postcss-cascade-layers" */
160 'cascade-layers'?: subPluginOptions<pluginOptions_5>;
161 /** plugin options for "postcss-attribute-case-insensitive" */
162 'case-insensitive-attributes'?: subPluginOptions<pluginOptions_6>;
163 /** plugin options for "postcss-clamp" */
164 'clamp'?: subPluginOptions<postcssClampOptions>;
165 /** plugin options for "@csstools/postcss-color-function" */
166 'color-function'?: subPluginOptions<pluginOptions_7>;
167 /** plugin options for "postcss-color-functional-notation" */
168 'color-functional-notation'?: subPluginOptions<pluginOptions_8>;
169 /** plugin options for "@csstools/postcss-color-mix-function" */
170 'color-mix'?: subPluginOptions<pluginOptions_9>;
171 /** plugin options for "postcss-custom-media" */
172 'custom-media-queries'?: subPluginOptions<pluginOptions_10>;
173 /** plugin options for "postcss-custom-properties" */
174 'custom-properties'?: subPluginOptions<pluginOptions_11>;
175 /** plugin options for "postcss-custom-selectors" */
176 'custom-selectors'?: subPluginOptions<pluginOptions_12>;
177 /** plugin options for "postcss-dir-pseudo-class" */
178 'dir-pseudo-class'?: subPluginOptions<pluginOptions_13>;
179 /** plugin options for "@csstools/postcss-normalize-display-values" */
180 'display-two-values'?: subPluginOptions<pluginOptions_14>;
181 /** plugin options for "postcss-double-position-gradients" */
182 'double-position-gradients'?: subPluginOptions<pluginOptions_15>;
183 /** plugin options for "@csstools/postcss-exponential-functions" */
184 'exponential-functions'?: subPluginOptions<pluginOptions_16>;
185 /** plugin options for "@csstools/postcss-logical-float-and-clear" */
186 'float-clear-logical-values'?: subPluginOptions<pluginOptions_17>;
187 /** plugin options for "postcss-focus-visible" */
188 'focus-visible-pseudo-class'?: subPluginOptions<pluginOptions_18>;
189 /** plugin options for "postcss-focus-within" */
190 'focus-within-pseudo-class'?: subPluginOptions<pluginOptions_19>;
191 /** plugin options for "@csstools/postcss-font-format-keywords" */
192 'font-format-keywords'?: subPluginOptions<pluginOptions_20>;
193 /** plugin options for "postcss-font-variant" */
194 'font-variant-property'?: subPluginOptions<postcssFontVariantOptions>;
195 /** plugin options for "@csstools/postcss-gamut-mapping" */
196 'gamut-mapping'?: subPluginOptions<pluginOptions_21>;
197 /** plugin options for "postcss-gap-properties" */
198 'gap-properties'?: subPluginOptions<pluginOptions_22>;
199 /** plugin options for "@csstools/postcss-gradients-interpolation-method" */
200 'gradients-interpolation-method'?: subPluginOptions<pluginOptions_23>;
201 /** plugin options for "css-has-pseudo" */
202 'has-pseudo-class'?: subPluginOptions<pluginOptions_24>;
203 /** plugin options for "postcss-color-hex-alpha" */
204 'hexadecimal-alpha-notation'?: subPluginOptions<pluginOptions_25>;
205 /** plugin options for "@csstools/postcss-hwb-function" */
206 'hwb-function'?: subPluginOptions<pluginOptions_26>;
207 /** plugin options for "@csstools/postcss-ic-unit" */
208 'ic-unit'?: subPluginOptions<pluginOptions_27>;
209 /** plugin options for "postcss-image-set-function" */
210 'image-set-function'?: subPluginOptions<pluginOptions_28>;
211 /** plugin options for "@csstools/postcss-is-pseudo-class" */
212 'is-pseudo-class'?: subPluginOptions<pluginOptions_29>;
213 /** plugin options for "postcss-lab-function" */
214 'lab-function'?: subPluginOptions<pluginOptions_30>;
215 /** plugin options for "@csstools/postcss-light-dark-function" */
216 'light-dark-function'?: subPluginOptions<pluginOptions_31>;
217 /** plugin options for "@csstools/postcss-logical-overflow" */
218 'logical-overflow'?: subPluginOptions<pluginOptions_32>;
219 /** plugin options for "@csstools/postcss-logical-overscroll-behavior" */
220 'logical-overscroll-behavior'?: subPluginOptions<pluginOptions_33>;
221 /** plugin options for "postcss-logical" */
222 'logical-properties-and-values'?: subPluginOptions<pluginOptions_34>;
223 /** plugin options for "@csstools/postcss-logical-resize" */
224 'logical-resize'?: subPluginOptions<pluginOptions_35>;
225 /** plugin options for "@csstools/postcss-logical-viewport-units" */
226 'logical-viewport-units'?: subPluginOptions<pluginOptions_36>;
227 /** plugin options for "@csstools/postcss-media-queries-aspect-ratio-number-values" */
228 'media-queries-aspect-ratio-number-values'?: subPluginOptions<pluginOptions_37>;
229 /** plugin options for "@csstools/postcss-media-minmax" */
230 'media-query-ranges'?: subPluginOptions<pluginOptions_38>;
231 /** plugin options for "@csstools/postcss-nested-calc" */
232 'nested-calc'?: subPluginOptions<pluginOptions_39>;
233 /** plugin options for "postcss-nesting" */
234 'nesting-rules'?: subPluginOptions<pluginOptions_40>;
235 /** plugin options for "postcss-selector-not" */
236 'not-pseudo-class'?: subPluginOptions<pluginOptions_41>;
237 /** plugin options for "@csstools/postcss-oklab-function" */
238 'oklab-function'?: subPluginOptions<pluginOptions_42>;
239 /** plugin options for "postcss-opacity-percentage" */
240 'opacity-percentage'?: subPluginOptions<postcssOpacityPercentageOptions>;
241 /** plugin options for "postcss-overflow-shorthand" */
242 'overflow-property'?: subPluginOptions<pluginOptions_43>;
243 /** plugin options for "postcss-replace-overflow-wrap" */
244 'overflow-wrap-property'?: subPluginOptions<postcssReplaceOverflowWrapOptions>;
245 /** plugin options for "postcss-place" */
246 'place-properties'?: subPluginOptions<pluginOptions_44>;
247 /** plugin options for "css-prefers-color-scheme" */
248 'prefers-color-scheme-query'?: subPluginOptions<pluginOptions_45>;
249 /** plugin options for "postcss-color-rebeccapurple" */
250 'rebeccapurple-color'?: subPluginOptions<pluginOptions_46>;
251 /** plugin options for "@csstools/postcss-relative-color-syntax" */
252 'relative-color-syntax'?: subPluginOptions<pluginOptions_47>;
253 /** plugin options for "@csstools/postcss-scope-pseudo-class" */
254 'scope-pseudo-class'?: subPluginOptions<pluginOptions_48>;
255 /** plugin options for "@csstools/postcss-stepped-value-functions" */
256 'stepped-value-functions'?: subPluginOptions<pluginOptions_49>;
257 /** plugin options for "postcss-system-ui-font-family" */
258 'system-ui-font-family'?: subPluginOptions<postcssFontFamilySystemUIOptions>;
259 /** plugin options for "@csstools/postcss-text-decoration-shorthand" */
260 'text-decoration-shorthand'?: subPluginOptions<pluginOptions_50>;
261 /** plugin options for "@csstools/postcss-trigonometric-functions" */
262 'trigonometric-functions'?: subPluginOptions<pluginOptions_51>;
263 /** plugin options for "@csstools/postcss-unset-value" */
264 'unset-value'?: subPluginOptions<pluginOptions_52>;
265};
266
267/** postcss-clamp plugin options */
268export declare type postcssClampOptions = {
269 /** Preserve the original notation. default: false */
270 preserve?: boolean;
271 /**
272 * The precalculate option determines whether values with the same unit should be precalculated.
273 * default: false
274 */
275 precalculate?: boolean;
276};
277
278/** postcss-system-ui-font-family plugin options */
279export declare type postcssFontFamilySystemUIOptions = Record<string, never>;
280
281/** postcss-font-variant plugin options */
282export declare type postcssFontVariantOptions = Record<string, never>;
283
284/** postcss-opacity-percentage plugin options */
285export declare type postcssOpacityPercentageOptions = {
286 /** Preserve the original notation. default: false */
287 preserve?: boolean;
288};
289
290/** postcss-page-break plugin options */
291export declare type postcssPageBreakOptions = Record<string, never>;
292
293/** postcss-replace-overflow-wrap plugin options */
294export declare type postcssReplaceOverflowWrapOptions = {
295 /** Preserve the original notation. default: false */
296 preserve?: boolean;
297};
298
299export declare type subPluginOptions<T> = ['auto' | boolean, T] | T | boolean;
300
301export { }