UNPKG

77.6 kBTypeScriptView Raw
1export declare type ICSSRule = 'initial' | 'inherit' | 'unset';
2export declare type ICSSPercentageRule = string;
3export declare type ICSSPixelUnitRule = string | number;
4export declare type ICSSBaselinePositionRule = 'baseline' | 'last baseline' | 'first baseline';
5export declare type ICSSOverflowAndSelfPositionRule = 'center' | 'start' | 'end' | 'self-start' | 'self-end' | 'flex-start' | 'flex-end' | 'safe center' | 'safe start' | 'safe end' | 'safe self-start' | 'safe self-end' | 'safe flex-start' | 'safe flex-end' | 'unsafe center' | 'unsafe start' | 'unsafe end' | 'unsafe self-start' | 'unsafe self-end' | 'unsafe flex-start' | 'unsafe flex-end';
6export declare type ICSSDisplayRule = 'block' | 'inline' | 'run-in' | 'flow' | 'flow-root' | 'table' | 'flex' | 'grid' | 'ruby' | 'block flow' | 'inline table' | 'flex run-in' | 'list-item' | 'list-item block' | 'list-item inline' | 'list-item flow' | 'list-item flow-root' | 'list-item block flow' | 'list-item block flow-root' | 'flow list-item block' | 'table-row-group' | 'table-header-group' | 'table-footer-group' | 'table-row' | 'table-cell' | 'table-column-group' | 'table-column' | 'table-caption' | 'ruby-base' | 'ruby-text' | 'ruby-base-container' | 'ruby-text-container' | 'contents' | 'none' | 'inline-block' | 'inline-table' | 'inline-flex' | 'inline-grid';
7export declare type IFontWeight = ICSSRule | 'normal' | 'bold' | 'bolder' | 'lighter' | '100' | 100 | '200' | 200 | '300' | 300 | '400' | 400 | '500' | 500 | '600' | 600 | '700' | 700 | '800' | 800 | '900' | 900;
8export declare type IMixBlendModes = ICSSRule | 'normal' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity';
9/**
10 * The base font style.
11 * {@docCategory IRawFontStyle}
12 */
13export interface IRawFontStyle {
14 /**
15 * The font property is shorthand that allows you to do one of two things: you can
16 * either set up six of the most mature font properties in one line, or you can set
17 * one of a choice of keywords to adopt a system font setting.
18 */
19 font?: ICSSRule | string;
20 /**
21 * The font-family property allows one or more font family names and/or generic family
22 * names to be specified for usage on the selected element(s)' text. The browser then
23 * goes through the list; for each character in the selection it applies the first
24 * font family that has an available glyph for that character.
25 */
26 fontFamily?: ICSSRule | string;
27 /**
28 * The font-kerning property allows contextual adjustment of inter-glyph spacing, i.e.
29 * the spaces between the characters in text. This property controls <bold>metric
30 * kerning</bold> - that utilizes adjustment data contained in the font. Optical
31 * Kerning is not supported as yet.
32 */
33 fontKerning?: ICSSRule | string;
34 /**
35 * Specifies the size of the font. Used to compute em and ex units.
36 * See CSS 3 font-size property https://www.w3.org/TR/css-fonts-3/#propdef-font-size
37 */
38 fontSize?: ICSSRule | 'xx-small' | 'x-small' | 'small' | 'medium' | 'large' | 'x-large' | 'xx-large' | 'larger' | 'smaller' | ICSSPixelUnitRule | ICSSPercentageRule;
39 /**
40 * The font-size-adjust property adjusts the font-size of the fallback fonts defined
41 * with font-family, so that the x-height is the same no matter what font is used.
42 * This preserves the readability of the text when fallback happens.
43 * See CSS 3 font-size-adjust property
44 * https://www.w3.org/TR/css-fonts-3/#propdef-font-size-adjust
45 */
46 fontSizeAdjust?: ICSSRule | 'none' | number | string;
47 /**
48 * Allows you to expand or condense the widths for a normal, condensed, or expanded
49 * font face.
50 * See CSS 3 font-stretch property
51 * https://drafts.csswg.org/css-fonts-3/#propdef-font-stretch
52 */
53 fontStretch?: ICSSRule | 'normal' | 'ultra-condensed' | 'extra-condensed' | 'condensed' | 'semi-condensed' | 'semi-expanded' | 'expanded' | 'extra-expanded' | 'ultra-expanded' | string;
54 /**
55 * The font-style property allows normal, italic, or oblique faces to be selected.
56 * Italic forms are generally cursive in nature while oblique faces are typically
57 * sloped versions of the regular face. Oblique faces can be simulated by artificially
58 * sloping the glyphs of the regular face.
59 * See CSS 3 font-style property https://www.w3.org/TR/css-fonts-3/#propdef-font-style
60 */
61 fontStyle?: ICSSRule | 'normal' | 'italic' | 'oblique' | string;
62 /**
63 * This value specifies whether the user agent is allowed to synthesize bold or
64 * oblique font faces when a font family lacks bold or italic faces.
65 */
66 fontSynthesis?: ICSSRule | string;
67 /**
68 * The font-variant property enables you to select the small-caps font within a font
69 * family.
70 */
71 fontVariant?: ICSSRule | string;
72 /**
73 * Fonts can provide alternate glyphs in addition to default glyph for a character.
74 * This property provides control over the selection of these alternate glyphs.
75 */
76 fontVariantAlternates?: ICSSRule | string;
77 /**
78 * Specifies the weight or boldness of the font.
79 * See CSS 3 'font-weight' property https://www.w3.org/TR/css-fonts-3/#propdef-font-weight
80 */
81 fontWeight?: IFontWeight | string;
82}
83/**
84 * Font face definition.
85 *
86 * @public
87 * {@docCategory IFontFace}
88 */
89export interface IFontFace extends IRawFontStyle {
90 /**
91 * Specifies the src of the font.
92 */
93 src?: string;
94 /**
95 * unicode-range allows you to set a specific range of characters to be downloaded
96 * from a font (embedded using \@font-face) and made available for use on the current
97 * page.
98 */
99 unicodeRange?: ICSSRule | string;
100 /**
101 * Determines how a font face is displayed based on whether and when it is downloaded
102 * and ready to use.
103 */
104 fontDisplay?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional';
105 /**
106 * Feature settings for the font.
107 */
108 fontFeatureSettings?: string;
109}
110/**
111 * All raw style properties.
112 *
113 * @public
114 * {@docCategory IRawStyleBase}
115 */
116export interface IRawStyleBase extends IRawFontStyle {
117 /**
118 * (Ms specific) constrast adjust rule.
119 */
120 MsHighContrastAdjust?: ICSSRule | string;
121 /**
122 * (Ms specific) scrollbar behavior adjust rule.
123 */
124 MsOverflowStyle?: 'auto' | 'none' | 'scrollbar' | '-ms-autohiding-scrollbar' | string;
125 /**
126 * (Moz specific) font smoothing directive.
127 */
128 MozOsxFontSmoothing?: 'none' | 'antialiased' | 'grayscale' | 'subpixel-antialiased' | string;
129 /**
130 * (Webkit specific) font smoothing directive.
131 */
132 WebkitFontSmoothing?: 'none' | 'antialiased' | 'grayscale' | 'subpixel-antialiased' | string;
133 /**
134 * (Webkit specific) momentum scrolling on iOS devices
135 */
136 WebkitOverflowScrolling?: 'auto' | 'touch' | string;
137 /**
138 * (Webkit specific) color of the highlight that appears overa link while it's being tapped
139 */
140 WebkitTapHighlightColor?: string;
141 /**
142 * (Webkit specific) controls the text inflation algorithm used on some smartphones and tablets.
143 * Other browsers will ignore this property.
144 */
145 WebkitTextSizeAdjust?: 'none' | 'auto' | ICSSPercentageRule | ICSSRule | string;
146 /**
147 * Aligns a flex container's lines within the flex container when there is extra space
148 * in the cross-axis, similar to how justify-content aligns individual items within the main-axis.
149 */
150 alignContent?: ICSSRule | 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'stretch' | string;
151 /**
152 * Sets the default alignment in the cross axis for all of the flex container's items,
153 * including anonymous flex items, similarly to how justify-content aligns items along the main axis.
154 */
155 alignItems?: ICSSRule | 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch' | string;
156 /**
157 * Aligns the box (as the alignment subject) within its containing block (as the alignment container)
158 * along the block/column/cross axis of the alignment container.
159 *
160 * See CSS align-self property
161 * https://www.w3.org/TR/css-align-3/#propdef-align-self
162 */
163 alignSelf?: ICSSRule | 'auto' | 'normal' | 'stretch' | ICSSBaselinePositionRule | ICSSOverflowAndSelfPositionRule | string;
164 /**
165 * This property allows precise alignment of elements, such as graphics, that do not
166 * have a baseline-table or lack the desired baseline in their baseline-table. With the
167 * alignment-adjust property, the position of the baseline identified by the
168 * alignment-baseline can be explicitly determined. It also determines precisely
169 * the alignment point for each glyph within a textual element.
170 */
171 alignmentAdjust?: ICSSRule | string;
172 /**
173 * Specifies how an object is aligned with respect to its parent. This property specifies
174 * which baseline of this element is to be aligned with the corresponding baseline of the
175 * parent. For example, this allows alphabetic baselines in Roman text to stay aligned
176 * across font size changes. It defaults to the baseline with the same name as the computed
177 * value of the alignment-baseline property.
178 */
179 alignmentBaseline?: ICSSRule | string;
180 /**
181 * The animation CSS property is a shorthand property for the various animation properties:
182 * `animation-name`, `animation-duration`, `animation-timing-function`, `animation-delay`,
183 * `animation-iteration-count`, `animation-direction`, `animation-fill-mode`, and
184 * `animation-play-state`.
185 */
186 animation?: ICSSRule | string;
187 /**
188 * Defines a length of time to elapse before an animation starts, allowing an animation to begin execution
189 * some time after it is applied.
190 */
191 animationDelay?: ICSSRule | string;
192 /**
193 * Defines whether an animation should run in reverse on some or all cycles.
194 */
195 animationDirection?: ICSSRule | string;
196 /**
197 * Specifies the length an animation takes to finish. Default value is 0, meaning
198 * there will be no animation.
199 */
200 animationDuration?: ICSSRule | string;
201 /**
202 * The animation-fill-mode CSS property specifies how a CSS animation should apply
203 * styles to its target before and after its execution.
204 */
205 animationFillMode?: ICSSRule | 'none' | 'forwards' | 'backwards' | 'both' | string;
206 /**
207 * Specifies how many times an animation cycle should play.
208 */
209 animationIterationCount?: ICSSRule | string;
210 /**
211 * Defines the list of animations that apply to the element.
212 */
213 animationName?: ICSSRule | string;
214 /**
215 * Defines whether an animation is running or paused.
216 */
217 animationPlayState?: ICSSRule | string;
218 /**
219 * The animation-timing-function specifies the speed curve of an animation.
220 */
221 animationTimingFunction?: ICSSRule | string;
222 /**
223 * Allows changing the style of any element to platform-based interface elements or
224 * vice versa.
225 */
226 appearance?: ICSSRule | string;
227 /**
228 * Lets you apply graphical effects such as blurring or color shifting to the area
229 * behind an element. Because it applies to everything behind the element, to see
230 * the effect you must make the element or its background at least partially transparent.
231 */
232 backdropFilter?: ICSSRule | string;
233 /**
234 * Edge requires the -webkit prefix backdrop-filter.
235 */
236 WebkitBackdropFilter?: ICSSRule | string;
237 /**
238 * Determines whether or not the “back” side of a transformed element is visible when
239 * facing the viewer.
240 */
241 backfaceVisibility?: ICSSRule | string;
242 /**
243 * Shorthand property to set the values for one or more of:
244 * background-clip, background-color, background-image,
245 * background-origin, background-position, background-repeat,
246 * background-size, and background-attachment.
247 */
248 background?: ICSSRule | string;
249 /**
250 * If a background-image is specified, this property determines
251 * whether that image's position is fixed within the viewport,
252 * or scrolls along with its containing block.
253 * See CSS 3 background-attachment property https://drafts.csswg.org/css-backgrounds-3/#the-background-attachment
254 */
255 backgroundAttachment?: ICSSRule | 'scroll' | 'fixed' | 'local' | string;
256 /**
257 * This property describes how the element's background images should blend with each
258 * other and the element's background color. The value is a list of blend modes that
259 * corresponds to each background image. Each element in the list will apply to the
260 * corresponding element of background-image. If a property doesn’t have enough
261 * comma-separated values to match the number of layers, the UA must calculate its
262 * used value by repeating the list of values until there are enough.
263 */
264 backgroundBlendMode?: ICSSRule | string;
265 /**
266 * The background-clip CSS property specifies if an element's background, whether a
267 * `<color>` or an `<image>`, extends underneath its border.
268 *
269 * \* Does not work in IE
270 *
271 * \* The `text` value is experimental and should not be used in production code.
272 */
273 backgroundClip?: ICSSRule | 'border-box' | 'padding-box' | 'content-box' | 'text' | string;
274 /**
275 * Sets the background color of an element.
276 */
277 backgroundColor?: ICSSRule | string;
278 /**
279 * Sets a compositing style for background images and colors.
280 */
281 backgroundComposite?: ICSSRule | string;
282 /**
283 * Applies one or more background images to an element. These can be any valid CSS
284 * image, including url() paths to image files or CSS gradients.
285 */
286 backgroundImage?: ICSSRule | string;
287 /**
288 * Specifies what the background-position property is relative to.
289 */
290 backgroundOrigin?: ICSSRule | string;
291 /**
292 * Sets the position of a background image.
293 */
294 backgroundPosition?: ICSSRule | string;
295 /**
296 * Background-repeat defines if and how background images will be repeated after they
297 * have been sized and positioned
298 */
299 backgroundRepeat?: ICSSRule | string;
300 /**
301 * Sets the size of background images
302 */
303 backgroundSize?: ICSSRule | string;
304 /**
305 * Shorthand property that defines the different properties of all four sides of an
306 * element's border in a single declaration. It can be used to set border-width,
307 * border-style and border-color, or a subset of these.
308 */
309 border?: ICSSRule | 0 | string;
310 /**
311 * Shorthand that sets the values of border-bottom-color,
312 * border-bottom-style, and border-bottom-width.
313 */
314 borderBottom?: ICSSRule | ICSSPixelUnitRule;
315 /**
316 * Sets the color of the bottom border of an element.
317 */
318 borderBottomColor?: ICSSRule | string;
319 /**
320 * Defines the shape of the border of the bottom-left corner.
321 */
322 borderBottomLeftRadius?: ICSSRule | ICSSPixelUnitRule;
323 /**
324 * Defines the shape of the border of the bottom-right corner.
325 */
326 borderBottomRightRadius?: ICSSRule | ICSSPixelUnitRule;
327 /**
328 * Sets the line style of the bottom border of a box.
329 */
330 borderBottomStyle?: ICSSRule | string;
331 /**
332 * Sets the width of an element's bottom border. To set all four borders, use the
333 * border-width shorthand property which sets the values simultaneously for
334 * border-top-width, border-right-width, border-bottom-width, and border-left-width.
335 */
336 borderBottomWidth?: ICSSRule | ICSSPixelUnitRule;
337 /**
338 * Border-collapse can be used for collapsing the borders between table cells
339 */
340 borderCollapse?: ICSSRule | string;
341 /**
342 * The CSS border-color property sets the color of an element's four borders. This
343 * property can have from one to four values, made up of the elementary properties:
344 * • border-top-color
345 * • border-right-color
346 * • border-bottom-color
347 * • border-left-color The default color is the currentColor of each of
348 * these values.
349 * If you provide one value, it sets the color for the element. Two values set the
350 * horizontal and vertical values, respectively. Providing three values sets the top,
351 * vertical, and bottom values, in that order. Four values set all for sides: top,
352 * right, bottom, and left, in that order.
353 */
354 borderColor?: ICSSRule | string;
355 /**
356 * Specifies different corner clipping effects, such as scoop (inner curves), bevel
357 * (straight cuts) or notch (cut-off rectangles). Works along with border-radius to
358 * specify the size of each corner effect.
359 */
360 borderCornerShape?: ICSSRule | string;
361 /**
362 * The property border-image-source is used to set the image to be used instead of
363 * the border style. If this is set to none the border-style is used instead.
364 */
365 borderImageSource?: ICSSRule | string;
366 /**
367 * The border-image-width CSS property defines the offset to use for dividing the
368 * border image in nine parts, the top-left corner, central top edge, top-right-corner,
369 * central right edge, bottom-right corner, central bottom edge, bottom-left corner,
370 * and central right edge. They represent inward distance from the top, right, bottom,
371 * and left edges.
372 */
373 borderImageWidth?: ICSSRule | ICSSPixelUnitRule;
374 /**
375 * Shorthand property that defines the border-width, border-style and border-color of
376 * an element's left border in a single declaration. Note that you can use the
377 * corresponding longhand properties to set specific individual properties of the left
378 * border — border-left-width, border-left-style and border-left-color.
379 */
380 borderLeft?: ICSSRule | ICSSPixelUnitRule;
381 /**
382 * The CSS border-left-color property sets the color of an element's left border. This
383 * page explains the border-left-color value, but often you will find it more
384 * convenient to fix the border's left color as part of a shorthand set, either
385 * border-left or border-color. Colors can be defined several ways. For more
386 * information, see Usage.
387 */
388 borderLeftColor?: ICSSRule | string;
389 /**
390 * Sets the style of an element's left border. To set all four borders, use the
391 * shorthand property, border-style. Otherwise, you can set the borders individually
392 * with border-top-style, border-right-style, border-bottom-style, border-left-style.
393 */
394 borderLeftStyle?: ICSSRule | string;
395 /**
396 * Sets the width of an element's left border. To set all four borders, use the
397 * border-width shorthand property which sets the values simultaneously for
398 * border-top-width, border-right-width, border-bottom-width, and border-left-width.
399 */
400 borderLeftWidth?: ICSSRule | ICSSPixelUnitRule;
401 /**
402 * Defines how round the border's corners are.
403 */
404 borderRadius?: ICSSRule | ICSSPixelUnitRule;
405 /**
406 * Shorthand property that defines the border-width, border-style and border-color of
407 * an element's right border in a single declaration. Note that you can use the
408 * corresponding longhand properties to set specific individual properties of the
409 * right border — border-right-width, border-right-style and border-right-color.
410 */
411 borderRight?: ICSSRule | ICSSPixelUnitRule;
412 /**
413 * Sets the color of an element's right border. This page explains the
414 * border-right-color value, but often you will find it more convenient to fix the
415 * border's right color as part of a shorthand set, either border-right or border-color.
416 * Colors can be defined several ways. For more information, see Usage.
417 */
418 borderRightColor?: ICSSRule | string;
419 /**
420 * Sets the style of an element's right border. To set all four borders, use the
421 * shorthand property, border-style. Otherwise, you can set the borders individually
422 * with border-top-style, border-right-style, border-bottom-style, border-left-style.
423 */
424 borderRightStyle?: ICSSRule | string;
425 /**
426 * Sets the width of an element's right border. To set all four borders, use the
427 * border-width shorthand property which sets the values simultaneously for
428 * border-top-width, border-right-width, border-bottom-width, and border-left-width.
429 */
430 borderRightWidth?: ICSSRule | ICSSPixelUnitRule;
431 /**
432 * Specifies the distance between the borders of adjacent cells.
433 */
434 borderSpacing?: ICSSRule | string;
435 /**
436 * Sets the style of an element's four borders. This property can have from one to
437 * four values. With only one value, the value will be applied to all four borders;
438 * otherwise, this works as a shorthand property for each of border-top-style,
439 * border-right-style, border-bottom-style, border-left-style, where each border
440 * style may be assigned a separate value.
441 */
442 borderStyle?: ICSSRule | string;
443 /**
444 * Shorthand property that defines the border-width, border-style and border-color of
445 * an element's top border in a single declaration. Note that you can use the
446 * corresponding longhand properties to set specific individual properties of the top
447 * border — border-top-width, border-top-style and border-top-color.
448 */
449 borderTop?: ICSSRule | ICSSPixelUnitRule;
450 /**
451 * Sets the color of an element's top border. This page explains the border-top-color
452 * value, but often you will find it more convenient to fix the border's top color as
453 * part of a shorthand set, either border-top or border-color.
454 * Colors can be defined several ways. For more information, see Usage.
455 */
456 borderTopColor?: ICSSRule | string;
457 /**
458 * Sets the rounding of the top-left corner of the element.
459 */
460 borderTopLeftRadius?: ICSSRule | ICSSPixelUnitRule;
461 /**
462 * Sets the rounding of the top-right corner of the element.
463 */
464 borderTopRightRadius?: ICSSRule | ICSSPixelUnitRule;
465 /**
466 * Sets the style of an element's top border. To set all four borders, use the
467 * shorthand property, border-style. Otherwise, you can set the borders individually
468 * with border-top-style, border-right-style, border-bottom-style, border-left-style.
469 */
470 borderTopStyle?: ICSSRule | string;
471 /**
472 * Sets the width of an element's top border. To set all four borders, use the
473 * border-width shorthand property which sets the values simultaneously for
474 * border-top-width, border-right-width, border-bottom-width, and border-left-width.
475 */
476 borderTopWidth?: ICSSRule | ICSSPixelUnitRule;
477 /**
478 * Sets the width of an element's four borders. This property can have from one to
479 * four values. This is a shorthand property for setting values simultaneously for
480 * border-top-width, border-right-width, border-bottom-width, and border-left-width.
481 */
482 borderWidth?: ICSSRule | ICSSPixelUnitRule;
483 /**
484 * This property specifies how far an absolutely positioned box's bottom margin edge
485 * is offset above the bottom edge of the box's containing block. For relatively
486 * positioned boxes, the offset is with respect to the bottom edges of the box itself
487 * (i.e., the box is given a position in the normal flow, then offset from that
488 * position according to these properties).
489 */
490 bottom?: ICSSRule | ICSSPixelUnitRule;
491 /**
492 * Breaks a box into fragments creating new borders, padding and repeating backgrounds
493 * or lets it stay as a continuous box on a page break, column break, or, for inline
494 * elements, at a line break.
495 */
496 boxDecorationBreak?: ICSSRule | string;
497 /**
498 * Cast a drop shadow from the frame of almost any element.
499 * MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/box-shadow
500 */
501 boxShadow?: ICSSRule | string;
502 /**
503 * The CSS box-sizing property is used to alter the default CSS box model used to
504 * calculate width and height of the elements.
505 */
506 boxSizing?: ICSSRule | 'border-box' | 'content-box' | string;
507 /**
508 * The CSS break-after property allows you to force a break on multi-column layouts.
509 * More specifically, it allows you to force a break after an element. It allows you
510 * to determine if a break should occur, and what type of break it should be. The
511 * break-after CSS property describes how the page, column or region break behaves
512 * after the generated box. If there is no generated box, the property is ignored.
513 */
514 breakAfter?: ICSSRule | string;
515 /**
516 * Control page/column/region breaks that fall above a block of content
517 */
518 breakBefore?: ICSSRule | string;
519 /**
520 * Control page/column/region breaks that fall within a block of content
521 */
522 breakInside?: ICSSRule | string;
523 /**
524 * The clear CSS property specifies if an element can be positioned next to or must be
525 * positioned below the floating elements that precede it in the markup.
526 */
527 clear?: ICSSRule | string;
528 /**
529 * Clipping crops an graphic, so that only a portion of the graphic is rendered, or
530 * filled. This clip-rule property, when used with the clip-path property, defines
531 * which clip rule, or algorithm, to use when filling the different parts of a graphics.
532 */
533 clipRule?: ICSSRule | string;
534 /**
535 * The color property sets the color of an element's foreground content (usually text),
536 * accepting any standard CSS color from keywords and hex values to RGB(a) and HSL(a).
537 */
538 color?: ICSSRule | string;
539 /**
540 * Describes the number of columns of the element.
541 * See CSS 3 column-count property https://www.w3.org/TR/css3-multicol/#cc
542 */
543 columnCount?: ICSSRule | number | 'auto' | string;
544 /**
545 * Specifies how to fill columns (balanced or sequential).
546 */
547 columnFill?: ICSSRule | string;
548 /**
549 * The column-gap property controls the width of the gap between columns in multi-column
550 * elements.
551 */
552 columnGap?: ICSSRule | string;
553 /**
554 * Sets the width, style, and color of the rule between columns.
555 */
556 columnRule?: ICSSRule | string;
557 /**
558 * Specifies the color of the rule between columns.
559 */
560 columnRuleColor?: ICSSRule | string;
561 /**
562 * Specifies the width of the rule between columns.
563 */
564 columnRuleWidth?: ICSSRule | ICSSPixelUnitRule;
565 /**
566 * The column-span CSS property makes it possible for an element to span across all
567 * columns when its value is set to all. An element that spans more than one column
568 * is called a spanning element.
569 */
570 columnSpan?: ICSSRule | string;
571 /**
572 * Specifies the width of columns in multi-column elements.
573 */
574 columnWidth?: ICSSRule | ICSSPixelUnitRule;
575 /**
576 * This property is a shorthand property for setting column-width and/or column-count.
577 */
578 columns?: ICSSRule | string;
579 /**
580 * Content for pseudo selectors.
581 */
582 content?: string;
583 /**
584 * The counter-increment property accepts one or more names of counters (identifiers),
585 * each one optionally followed by an integer which specifies the value by which the
586 * counter should be incremented (e.g. if the value is 2, the counter increases by 2
587 * each time it is invoked).
588 */
589 counterIncrement?: ICSSRule | string;
590 /**
591 * The counter-reset property contains a list of one or more names of counters, each
592 * one optionally followed by an integer (otherwise, the integer defaults to 0.) Each
593 * time the given element is invoked, the counters specified by the property are set to the given integer.
594 */
595 counterReset?: ICSSRule | string;
596 /**
597 * The cue property specifies sound files (known as an "auditory icon") to be played by
598 * speech media agents before and after presenting an element's content; if only one
599 * file is specified, it is played both before and after. The volume at which the
600 * file(s) should be played, relative to the volume of the main element, may also be
601 * specified. The icon files may also be set separately with the cue-before and
602 * cue-after properties.
603 */
604 cue?: ICSSRule | string;
605 /**
606 * The cue-after property specifies a sound file (known as an "auditory icon") to be
607 * played by speech media agents after presenting an element's content; the volume at
608 * which the file should be played may also be specified. The shorthand property cue
609 * sets cue sounds for both before and after the element is presented.
610 */
611 cueAfter?: ICSSRule | string;
612 /**
613 * Specifies the mouse cursor displayed when the mouse pointer is over an element.
614 */
615 cursor?: ICSSRule | string;
616 /**
617 * The direction CSS property specifies the text direction/writing direction. The rtl
618 * is used for Hebrew or Arabic text, the ltr is for other languages.
619 */
620 direction?: ICSSRule | string;
621 /**
622 * This property specifies the type of rendering box used for an element. It is a
623 * shorthand property for many other display properties.
624 * W3: https://www.w3.org/TR/css-display-3/#the-display-properties
625 * MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/display
626 */
627 display?: ICSSRule | ICSSDisplayRule | string;
628 /**
629 * The ‘fill’ property paints the interior of the given graphical element. The area to
630 * be painted consists of any areas inside the outline of the shape. To determine the
631 * inside of the shape, all subpaths are considered, and the interior is determined
632 * according to the rules associated with the current value of the ‘fill-rule’
633 * property. The zero-width geometric outline of a shape is included in the area to be
634 * painted.
635 */
636 fill?: ICSSRule | string;
637 /**
638 * SVG: Specifies the opacity of the color or the content the current object is filled
639 * with.
640 * See SVG 1.1 https://www.w3.org/TR/SVG/painting.html#FillOpacityProperty
641 */
642 fillOpacity?: ICSSRule | number;
643 /**
644 * The ‘fill-rule’ property indicates the algorithm which is to be used to determine
645 * what parts of the canvas are included inside the shape. For a simple,
646 * non-intersecting path, it is intuitively clear what region lies "inside"; however,
647 * for a more complex path, such as a path that intersects itself or where one subpath
648 * encloses another, the interpretation of "inside" is not so obvious.
649 * The ‘fill-rule’ property provides two options for how the inside of a shape is
650 * determined:
651 */
652 fillRule?: ICSSRule | string;
653 /**
654 * Applies various image processing effects. This property is largely unsupported. See
655 * Compatibility section for more information.
656 */
657 filter?: ICSSRule | string;
658 /**
659 * Shorthand for `flex-grow`, `flex-shrink`, and `flex-basis`.
660 */
661 flex?: ICSSRule | string | number;
662 /**
663 * The flex-basis CSS property describes the initial main size of the flex item before
664 * any free space is distributed according to the flex factors described in the flex
665 * property (flex-grow and flex-shrink).
666 */
667 flexBasis?: ICSSRule | string | number;
668 /**
669 * The flex-direction CSS property describes how flex items are placed in the flex
670 * container, by setting the direction of the flex container's main axis.
671 */
672 flexDirection?: ICSSRule | 'row' | 'row-reverse' | 'column' | 'column-reverse' | string;
673 /**
674 * The flex-flow CSS property defines the flex container's main and cross axis. It is
675 * a shorthand property for the flex-direction and flex-wrap properties.
676 */
677 flexFlow?: ICSSRule | string;
678 /**
679 * Specifies the flex grow factor of a flex item.
680 * See CSS flex-grow property https://drafts.csswg.org/css-flexbox-1/#flex-grow-property
681 */
682 flexGrow?: ICSSRule | number | string;
683 /**
684 * Specifies the flex shrink factor of a flex item.
685 * See CSS flex-shrink property https://drafts.csswg.org/css-flexbox-1/#flex-shrink-property
686 */
687 flexShrink?: ICSSRule | number | string;
688 /**
689 * Specifies whether flex items are forced into a single line or can be wrapped onto
690 * multiple lines. If wrapping is allowed, this property also enables you to control
691 * the direction in which lines are stacked.
692 * See CSS flex-wrap property https://drafts.csswg.org/css-flexbox-1/#flex-wrap-property
693 */
694 flexWrap?: ICSSRule | 'nowrap' | 'wrap' | 'wrap-reverse' | string;
695 /**
696 * Elements which have the style float are floated horizontally. These elements can
697 * move as far to the left or right of the containing element. All elements after
698 * the floating element will flow around it, but elements before the floating element
699 * are not impacted. If several floating elements are placed after each other, they
700 * will float next to each other as long as there is room.
701 */
702 float?: ICSSRule | string;
703 /**
704 * Flows content from a named flow (specified by a corresponding flow-into) through
705 * selected elements to form a dynamic chain of layout regions.
706 */
707 flowFrom?: ICSSRule | string;
708 /**
709 * The property which allows authors to opt particular elements out of forced colors mode,
710 * restoring full control over the colors to CSS. Currently it's only supported in Edge Chromium.
711 */
712 forcedColorAdjust?: 'auto' | 'none' | string;
713 /**
714 * Lays out one or more grid items bound by 4 grid lines. Shorthand for setting
715 * grid-column-start, grid-column-end, grid-row-start, and grid-row-end in a single
716 * declaration.
717 */
718 gridArea?: ICSSRule | string;
719 /**
720 * Specifies the size of an implicitly-created grid column track
721 */
722 gridAutoColumns?: ICSSRule | string;
723 /**
724 * Controls how the auto-placement algorithm works,
725 * specifying exactly how auto-placed items get flowed into the grid.
726 */
727 gridAutoFlow?: ICSSRule | string;
728 /**
729 * Specifies the size of an implicitly-created grid column track
730 */
731 gridAutoRows?: ICSSRule | string;
732 /**
733 * Controls a grid item's placement in a grid area, particularly grid position and a
734 * grid span. Shorthand for setting grid-column-start and grid-column-end in a single
735 * declaration.
736 */
737 gridColumn?: ICSSRule | string;
738 /**
739 * Controls a grid item's placement in a grid area as well as grid position and a
740 * grid span. The grid-column-end property (with grid-row-start, grid-row-end, and
741 * grid-column-start) determines a grid item's placement by specifying the grid lines
742 * of a grid item's grid area.
743 */
744 gridColumnEnd?: ICSSRule | string;
745 /**
746 * Sets the size of the gap (gutter) between an element's columns
747 */
748 gridColumnGap?: ICSSRule | string;
749 /**
750 * Determines a grid item's placement by specifying the starting grid lines of a grid
751 * item's grid area . A grid item's placement in a grid area consists of a grid
752 * position and a grid span. See also ( grid-row-start, grid-row-end, and
753 * grid-column-end)
754 */
755 gridColumnStart?: ICSSRule | string;
756 /**
757 * Specifies the gaps (gutters) between grid rows and columns. It is a shorthand
758 * for grid-row-gap and grid-column-gap.
759 */
760 gridGap?: ICSSRule | string;
761 /**
762 * Gets or sets a value that indicates which row an element within a Grid should
763 * appear in. Shorthand for setting grid-row-start and grid-row-end in a single
764 * declaration.
765 */
766 gridRow?: ICSSRule | string;
767 /**
768 * Determines a grid item’s placement by specifying the block-end. A grid item's
769 * placement in a grid area consists of a grid position and a grid span. The
770 * grid-row-end property (with grid-row-start, grid-column-start, and grid-column-end)
771 * determines a grid item's placement by specifying the grid lines of a grid item's
772 * grid area.
773 */
774 gridRowEnd?: ICSSRule | string;
775 /**
776 * Sets the size of the gap (gutter) between an element's grid rows
777 */
778 gridRowGap?: ICSSRule | string;
779 /**
780 * Specifies a grid item’s start position within the grid row by contributing a line,
781 * a span, or nothing (automatic) to its grid placement, thereby specifying the
782 * inline-start edge of its grid area
783 */
784 gridRowStart?: ICSSRule | string;
785 /**
786 * Specifies a row position based upon an integer location, string value, or desired
787 * row size.
788 * css/properties/grid-row is used as short-hand for grid-row-position and
789 * grid-row-position
790 */
791 gridRowPosition?: ICSSRule | string;
792 /**
793 * Specifies named grid areas which are not associated with any particular grid item,
794 * but can be referenced from the grid-placement properties. The syntax of the
795 * grid-template-areas property also provides a visualization of the structure of the
796 * grid, making the overall layout of the grid container easier to understand.
797 */
798 gridTemplate?: ICSSRule | string;
799 /**
800 * Specifies named grid areas
801 */
802 gridTemplateAreas?: ICSSRule | string;
803 /**
804 * Specifies (with grid-template-rows) the line names and track sizing functions of
805 * the grid. Each sizing function can be specified as a length, a percentage of the
806 * grid container’s size, a measurement of the contents occupying the column or row,
807 * or a fraction of the free space in the grid.
808 */
809 gridTemplateColumns?: ICSSRule | string;
810 /**
811 * Specifies (with grid-template-columns) the line names and track sizing functions of
812 * the grid. Each sizing function can be specified as a length, a percentage of the
813 * grid container’s size, a measurement of the contents occupying the column or row,
814 * or a fraction of the free space in the grid.
815 */
816 gridTemplateRows?: ICSSRule | string;
817 /**
818 * Sets the height of an element. The content area of the element height does not
819 * include the padding, border, and margin of the element.
820 */
821 height?: ICSSRule | ICSSPixelUnitRule;
822 /**
823 * Specifies the minimum number of characters in a hyphenated word
824 */
825 hyphenateLimitChars?: ICSSRule | string;
826 /**
827 * Indicates the maximum number of successive hyphenated lines in an element. The
828 * ‘no-limit’ value means that there is no limit.
829 */
830 hyphenateLimitLines?: ICSSRule | string;
831 /**
832 * Specifies the maximum amount of trailing whitespace (before justification) that may
833 * be left in a line before hyphenation is triggered to pull part of a word from the
834 * next line back up into the current one.
835 */
836 hyphenateLimitZone?: ICSSRule | string;
837 /**
838 * Specifies whether or not words in a sentence can be split by the use of a manual or
839 * automatic hyphenation mechanism.
840 */
841 hyphens?: ICSSRule | string;
842 /**
843 * Defines how the browser distributes space between and around flex items
844 * along the main-axis of their container.
845 * See CSS justify-content property
846 * https://www.w3.org/TR/css-flexbox-1/#justify-content-property
847 */
848 justifyContent?: ICSSRule | 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch' | string;
849 /**
850 * Justifies the box (as the alignment subject) within its containing block (as the alignment container)
851 * along the inline/row/main axis of the alignment container.
852 *
853 * See CSS jusitfy-self property
854 * https://www.w3.org/TR/css-align-3/#propdef-justify-self
855 */
856 justifySelf?: ICSSRule | 'auto' | 'normal' | 'stretch' | ICSSBaselinePositionRule | ICSSOverflowAndSelfPositionRule | 'left' | 'right' | 'safe left' | 'safe right' | 'unsafe left' | 'unsafe right' | string;
857 /**
858 * Sets the left position of an element relative to the nearest ancestor that is set
859 * to position absolute, relative, or fixed.
860 */
861 left?: ICSSRule | ICSSPixelUnitRule;
862 /**
863 * The letter-spacing CSS property specifies the spacing behavior between text
864 * characters.
865 */
866 letterSpacing?: ICSSRule | string;
867 /**
868 * Specifies the height of an inline block level element.
869 * See CSS 2.1 line-height property https://www.w3.org/TR/CSS21/visudet.html#propdef-line-height
870 */
871 lineHeight?: ICSSRule | 'normal' | ICSSPixelUnitRule | ICSSPercentageRule;
872 /**
873 * Shorthand property that sets the list-style-type, list-style-position and
874 * list-style-image properties in one declaration.
875 */
876 listStyle?: ICSSRule | string;
877 /**
878 * This property sets the image that will be used as the list item marker. When the
879 * image is available, it will replace the marker set with the 'list-style-type'
880 * marker. That also means that if the image is not available, it will show the style
881 * specified by list-style-property
882 */
883 listStyleImage?: ICSSRule | string;
884 /**
885 * Specifies if the list-item markers should appear inside or outside the content flow.
886 */
887 listStylePosition?: ICSSRule | string;
888 /**
889 * Specifies the type of list-item marker in a list.
890 */
891 listStyleType?: ICSSRule | string;
892 /**
893 * The margin property is shorthand to allow you to set all four margins of an element
894 * at once. Its equivalent longhand properties are margin-top, margin-right,
895 * margin-bottom and margin-left. Negative values are also allowed.
896 */
897 margin?: ICSSRule | ICSSPixelUnitRule;
898 /**
899 * margin-bottom sets the bottom margin of an element.
900 */
901 marginBottom?: ICSSRule | ICSSPixelUnitRule;
902 /**
903 * margin-left sets the left margin of an element.
904 */
905 marginLeft?: ICSSRule | ICSSPixelUnitRule;
906 /**
907 * margin-right sets the right margin of an element.
908 */
909 marginRight?: ICSSRule | ICSSPixelUnitRule;
910 /**
911 * margin-top sets the top margin of an element.
912 */
913 marginTop?: ICSSRule | ICSSPixelUnitRule;
914 /**
915 * The marquee-direction determines the initial direction in which the marquee content moves.
916 */
917 marqueeDirection?: ICSSRule | string;
918 /**
919 * The 'marquee-style' property determines a marquee's scrolling behavior.
920 */
921 marqueeStyle?: ICSSRule | string;
922 /**
923 * This property is shorthand for setting mask-image, mask-mode, mask-repeat,
924 * mask-position, mask-clip, mask-origin, mask-composite and mask-size. Omitted
925 * values are set to their original properties' initial values.
926 */
927 mask?: ICSSRule | string;
928 /**
929 * This property is shorthand for setting mask-border-source, mask-border-slice,
930 * mask-border-width, mask-border-outset, and mask-border-repeat. Omitted values
931 * are set to their original properties' initial values.
932 */
933 maskBorder?: ICSSRule | string;
934 /**
935 * This property specifies how the images for the sides and the middle part of the
936 * mask image are scaled and tiled. The first keyword applies to the horizontal
937 * sides, the second one applies to the vertical ones. If the second keyword is
938 * absent, it is assumed to be the same as the first, similar to the CSS
939 * border-image-repeat property.
940 */
941 maskBorderRepeat?: ICSSRule | string;
942 /**
943 * This property specifies inward offsets from the top, right, bottom, and left
944 * edges of the mask image, dividing it into nine regions: four corners, four
945 * edges, and a middle. The middle image part is discarded and treated as fully
946 * transparent black unless the fill keyword is present. The four values set the
947 * top, right, bottom and left offsets in that order, similar to the CSS
948 * border-image-slice property.
949 */
950 maskBorderSlice?: ICSSRule | string;
951 /**
952 * Specifies an image to be used as a mask. An image that is empty, fails to
953 * download, is non-existent, or cannot be displayed is ignored and does not mask
954 * the element.
955 */
956 maskBorderSource?: ICSSRule | string;
957 /**
958 * This property sets the width of the mask box image, similar to the CSS
959 * border-image-width property.
960 */
961 maskBorderWidth?: ICSSRule | ICSSPixelUnitRule;
962 /**
963 * Determines the mask painting area, which defines the area that is affected by
964 * the mask. The painted content of an element may be restricted to this area.
965 */
966 maskClip?: ICSSRule | string;
967 /**
968 * For elements rendered as a single box, specifies the mask positioning area. For
969 * elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes
970 * on several pages) specifies which boxes box-decoration-break operates on to
971 * determine the mask positioning area(s).
972 */
973 maskOrigin?: ICSSRule | string;
974 /**
975 * This property must not be used. It is no longer included in any standard or
976 * standard track specification, nor is it implemented in any browser. It is only
977 * used when the text-align-last property is set to size. It controls allowed
978 * adjustments of font-size to fit line content.
979 */
980 maxFontSize?: ICSSRule | ICSSPixelUnitRule;
981 /**
982 * Sets the maximum height for an element. It prevents the height of the element to
983 * exceed the specified value. If min-height is specified and is greater than
984 * max-height, max-height is overridden.
985 */
986 maxHeight?: ICSSRule | ICSSPixelUnitRule;
987 /**
988 * Sets the maximum width for an element. It limits the width property to be larger
989 * than the value specified in max-width.
990 */
991 maxWidth?: ICSSRule | ICSSPixelUnitRule;
992 /**
993 * Sets the minimum height for an element. It prevents the height of the element to
994 * be smaller than the specified value. The value of min-height overrides both
995 * max-height and height.
996 */
997 minHeight?: ICSSRule | ICSSPixelUnitRule;
998 /**
999 * Sets the minimum width of an element. It limits the width property to be not
1000 * smaller than the value specified in min-width.
1001 */
1002 minWidth?: ICSSRule | ICSSPixelUnitRule;
1003 /**
1004 * The mix-blend-mode CSS property describes how an element's content should blend
1005 * with the content of the element's direct parent and the element's background.
1006 */
1007 mixBlendMode?: ICSSRule | IMixBlendModes | string;
1008 /**
1009 * The ‘object-fit’ property specifies how the contents of a replaced element should
1010 * be fitted to the box established by its used height and width.
1011 * See CSS 3 object-fit property https://www.w3.org/TR/css3-images/#the-object-fit
1012 */
1013 objectFit?: ICSSRule | 'cover' | 'contain' | 'fill' | 'none' | string;
1014 /**
1015 * Specifies the transparency of an element.
1016 * See CSS 3 opacity property https://drafts.csswg.org/css-color-3/#opacity
1017 */
1018 opacity?: ICSSRule | number | string;
1019 /**
1020 * Specifies the order used to lay out flex items in their flex container.
1021 * Elements are laid out in the ascending order of the order value.
1022 * See CSS order property https://drafts.csswg.org/css-flexbox-1/#order-property
1023 */
1024 order?: ICSSRule | number | string;
1025 /**
1026 * In paged media, this property defines the minimum number of lines in
1027 * a block container that must be left at the bottom of the page.
1028 * See CSS 3 orphans, widows properties https://drafts.csswg.org/css-break-3/#widows-orphans
1029 */
1030 orphans?: ICSSRule | number | string;
1031 /**
1032 * The CSS outline property is a shorthand property for setting one or more of the
1033 * individual outline properties outline-style, outline-width and outline-color in a
1034 * single rule. In most cases the use of this shortcut is preferable and more
1035 * convenient.
1036 * Outlines differ from borders in the following ways:
1037 * • Outlines do not take up space, they are drawn above the content.
1038 * • Outlines may be non-rectangular. They are rectangular in
1039 * Gecko/Firefox. Internet Explorer attempts to place the smallest contiguous outline
1040 * around all elements or shapes that are indicated to have an outline. Opera draws a
1041 * non-rectangular shape around a construct.
1042 */
1043 outline?: ICSSRule | 0 | string;
1044 /**
1045 * The outline-color property sets the color of the outline of an element. An
1046 * outline is a line that is drawn around elements, outside the border edge, to make
1047 * the element stand out.
1048 */
1049 outlineColor?: ICSSRule | string;
1050 /**
1051 * The outline-offset property offsets the outline and draw it beyond the border edge.
1052 */
1053 outlineOffset?: ICSSRule | string;
1054 /**
1055 * The overflow property controls how extra content exceeding the bounding box of an
1056 * element is rendered. It can be used in conjunction with an element that has a
1057 * fixed width and height, to eliminate text-induced page distortion.
1058 */
1059 overflow?: ICSSRule | 'auto' | 'hidden' | 'scroll' | 'visible';
1060 /**
1061 * Specifies the preferred scrolling methods for elements that overflow.
1062 */
1063 overflowStyle?: ICSSRule | string;
1064 /**
1065 * Specifies whether or not the browser should insert line breaks within words to
1066 * prevent text from overflowing its content box. In contrast to word-break,
1067 * overflow-wrap will only create a break if an entire word cannot be placed on its
1068 * own line without overflowing.
1069 */
1070 overflowWrap?: ICSSRule | 'normal' | 'break-word' | string;
1071 /**
1072 * Controls how extra content exceeding the x-axis of the bounding box of an element
1073 * is rendered.
1074 */
1075 overflowX?: ICSSRule | 'auto' | 'hidden' | 'scroll' | 'visible' | string;
1076 /**
1077 * Controls how extra content exceeding the y-axis of the bounding box of an element
1078 * is rendered.
1079 */
1080 overflowY?: ICSSRule | 'auto' | 'hidden' | 'scroll' | 'visible' | string;
1081 /**
1082 * The padding optional CSS property sets the required padding space on one to four
1083 * sides of an element. The padding area is the space between an element and its
1084 * border. Negative values are not allowed but decimal values are permitted. The
1085 * element size is treated as fixed, and the content of the element shifts toward the
1086 * center as padding is increased. The padding property is a shorthand to avoid
1087 * setting each side separately (padding-top, padding-right, padding-bottom,
1088 * padding-left).
1089 */
1090 padding?: ICSSRule | ICSSPixelUnitRule;
1091 /**
1092 * The padding-block-end CSS property defines the logical block end padding
1093 * of an element, which maps to a physical padding depending on the element's
1094 * writing mode, directionality, and text orientation. It corresponds to the
1095 * padding-top, padding-right, padding-bottom, or padding-left property
1096 * depending on the values defined for writing-mode, direction, and text-orientation.
1097 */
1098 paddingBlockEnd?: ICSSRule | ICSSPixelUnitRule;
1099 /**
1100 * The padding-block-start CSS property defines the logical block start padding
1101 * of an element, which maps to a physical padding depending on the element's
1102 * writing mode, directionality, and text orientation. It corresponds to the
1103 * padding-top, padding-right, padding-bottom, or padding-left property depending
1104 * on the values defined for writing-mode, direction, and text-orientation.
1105 */
1106 paddingBlockStart?: ICSSRule | ICSSPixelUnitRule;
1107 /**
1108 * The padding-left CSS property of an element sets the padding space required on the
1109 * left side of an element. The padding area is the space between the content of the
1110 * element and its border. Contrary to margin-left values, negative values of
1111 * padding-left are invalid.
1112 */
1113 paddingLeft?: ICSSRule | ICSSPixelUnitRule;
1114 /**
1115 * The padding-bottom CSS property of an element sets the padding space required on
1116 * the bottom of an element. The padding area is the space between the content of the
1117 * element and its border. Contrary to margin-bottom values, negative values of
1118 * padding-bottom are invalid.
1119 */
1120 paddingBottom?: ICSSRule | ICSSPixelUnitRule;
1121 /**
1122 * The padding-inline-end CSS property defines the logical inline end padding of an element,
1123 * which maps to a physical padding depending on the element's writing mode, directionality,
1124 * and text orientation. It corresponds to the padding-top, padding-right, padding-bottom,
1125 * or padding-left property depending on the values defined for writing-mode, direction,
1126 * and text-orientation.
1127 */
1128 paddingInlineEnd?: ICSSRule | ICSSPixelUnitRule;
1129 /**
1130 * The padding-inline-start CSS property defines the logical inline start padding of
1131 * an element, which maps to a physical padding depending on the element's writing mode,
1132 * directionality, and text orientation. It corresponds to the padding-top, padding-right,
1133 * padding-bottom, or padding-left property depending on the values defined for writing-mode,
1134 * direction, and text-orientation.
1135 */
1136 paddingInlineStart?: ICSSRule | ICSSPixelUnitRule;
1137 /**
1138 * The padding-right CSS property of an element sets the padding space required on the
1139 * right side of an element. The padding area is the space between the content of the
1140 * element and its border. Contrary to margin-right values, negative values of
1141 * padding-right are invalid.
1142 */
1143 paddingRight?: ICSSRule | ICSSPixelUnitRule;
1144 /**
1145 * The padding-top CSS property of an element sets the padding space required on the
1146 * top of an element. The padding area is the space between the content of the element
1147 * and its border. Contrary to margin-top values, negative values of padding-top are
1148 * invalid.
1149 */
1150 paddingTop?: ICSSRule | ICSSPixelUnitRule;
1151 /**
1152 * The page-break-after property is supported in all major browsers. With CSS3,
1153 * page-break-* properties are only aliases of the break-* properties. The CSS3
1154 * Fragmentation spec defines breaks for all CSS box fragmentation.
1155 */
1156 pageBreakAfter?: ICSSRule | string;
1157 /**
1158 * The page-break-before property sets the page-breaking behavior before an element.
1159 * With CSS3, page-break-* properties are only aliases of the break-* properties. The
1160 * CSS3 Fragmentation spec defines breaks for all CSS box fragmentation.
1161 */
1162 pageBreakBefore?: ICSSRule | string;
1163 /**
1164 * Sets the page-breaking behavior inside an element. With CSS3, page-break-*
1165 * properties are only aliases of the break-* properties. The CSS3 Fragmentation spec
1166 * defines breaks for all CSS box fragmentation.
1167 */
1168 pageBreakInside?: ICSSRule | string;
1169 /**
1170 * The pause property determines how long a speech media agent should pause before and
1171 * after presenting an element. It is a shorthand for the pause-before and pause-after
1172 * properties.
1173 */
1174 pause?: ICSSRule | string;
1175 /**
1176 * The pause-after property determines how long a speech media agent should pause after
1177 * presenting an element. It may be replaced by the shorthand property pause, which
1178 * sets pause time before and after.
1179 */
1180 pauseAfter?: ICSSRule | string;
1181 /**
1182 * The pause-before property determines how long a speech media agent should pause
1183 * before presenting an element. It may be replaced by the shorthand property pause,
1184 * which sets pause time before and after.
1185 */
1186 pauseBefore?: ICSSRule | string;
1187 /**
1188 * The perspective property defines how far an element is placed from the view on the
1189 * z-axis, from the screen to the viewer. Perspective defines how an object is viewed.
1190 * In graphic arts, perspective is the representation on a flat surface of what the
1191 * viewer's eye would see in a 3D space. (See Wikipedia for more information about
1192 * graphical perspective and for related illustrations.)
1193 * The illusion of perspective on a flat surface, such as a computer screen, is created
1194 * by projecting points on the flat surface as they would appear if the flat surface
1195 * were a window through which the viewer was looking at the object. In discussion of
1196 * virtual environments, this flat surface is called a projection plane.
1197 */
1198 perspective?: ICSSRule | string;
1199 /**
1200 * The perspective-origin property establishes the origin for the perspective property.
1201 * It effectively sets the X and Y position at which the viewer appears to be looking
1202 * at the children of the element.
1203 * When used with perspective, perspective-origin changes the appearance of an object,
1204 * as if a viewer were looking at it from a different origin. An object appears
1205 * differently if a viewer is looking directly at it versus looking at it from below,
1206 * above, or from the side. Thus, the perspective-origin is like a vanishing point.
1207 * The default value of perspective-origin is 50% 50%. This displays an object as if
1208 * the viewer's eye were positioned directly at the center of the screen, both
1209 * top-to-bottom and left-to-right. A value of 0% 0% changes the object as if the
1210 * viewer was looking toward the top left angle. A value of 100% 100% changes the
1211 * appearance as if viewed toward the bottom right angle.
1212 */
1213 perspectiveOrigin?: ICSSRule | string;
1214 /**
1215 * The pointer-events property allows you to control whether an element can be the
1216 * target for the pointing device (e.g, mouse, pen) events.
1217 */
1218 pointerEvents?: ICSSRule | string;
1219 /**
1220 * The position property controls the type of positioning used by an element within
1221 * its parent elements. The effect of the position property depends on a lot of
1222 * factors, for example the position property of parent elements.
1223 */
1224 position?: ICSSRule | 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky';
1225 /**
1226 * Sets the type of quotation marks for embedded quotations.
1227 */
1228 quotes?: ICSSRule | string;
1229 /**
1230 * Controls whether the last region in a chain displays additional 'overset' content
1231 * according its default overflow property, or if it displays a fragment of content
1232 * as if it were flowing into a subsequent region.
1233 */
1234 regionFragment?: ICSSRule | string;
1235 /**
1236 * The resize CSS sets whether an element is resizable, and if so, in which direction(s).
1237 */
1238 resize?: ICSSRule | 'none' | 'both' | 'horizontal' | 'vertical' | 'block' | 'inline' | string;
1239 /**
1240 * The rest-after property determines how long a speech media agent should pause after
1241 * presenting an element's main content, before presenting that element's exit cue
1242 * sound. It may be replaced by the shorthand property rest, which sets rest time
1243 * before and after.
1244 */
1245 restAfter?: ICSSRule | string;
1246 /**
1247 * The rest-before property determines how long a speech media agent should pause after
1248 * presenting an intro cue sound for an element, before presenting that element's main
1249 * content. It may be replaced by the shorthand property rest, which sets rest time
1250 * before and after.
1251 */
1252 restBefore?: ICSSRule | string;
1253 /**
1254 * Specifies the position an element in relation to the right side of the containing
1255 * element.
1256 */
1257 right?: ICSSRule | ICSSPixelUnitRule;
1258 /**
1259 * Defines the alpha channel threshold used to extract a shape from an image. Can be
1260 * thought of as a "minimum opacity" threshold; that is, a value of 0.5 means that the
1261 * shape will enclose all the pixels that are more than 50% opaque.
1262 */
1263 shapeImageThreshold?: ICSSRule | string;
1264 /**
1265 * A future level of CSS Shapes will define a shape-inside property, which will define
1266 * a shape to wrap content within the element. See Editor's Draft
1267 * http://dev.w3.org/csswg/css-shapes and CSSWG wiki page on next-level plans
1268 * http://wiki.csswg.org/spec/css-shapes
1269 */
1270 shapeInside?: ICSSRule | string;
1271 /**
1272 * Adds a margin to a shape-outside. In effect, defines a new shape that is the
1273 * smallest contour around all the points that are the shape-margin distance outward
1274 * perpendicular to each point on the underlying shape. For points where a
1275 * perpendicular direction is not defined (e.g., a triangle corner), takes all
1276 * points on a circle centered at the point and with a radius of the shape-margin
1277 * distance. This property accepts only non-negative values.
1278 */
1279 shapeMargin?: ICSSRule | string;
1280 /**
1281 * Declares a shape around which text should be wrapped, with possible modifications
1282 * from the shape-margin property. The shape defined by shape-outside and shape-margin
1283 * changes the geometry of a float element's float area.
1284 */
1285 shapeOutside?: ICSSRule | string;
1286 /**
1287 * The speak property determines whether or not a speech synthesizer will read aloud
1288 * the contents of an element.
1289 */
1290 speak?: ICSSRule | string;
1291 /**
1292 * The speak-as property determines how the speech synthesizer interprets the content:
1293 * words as whole words or as a sequence of letters, numbers as a numerical value or a
1294 * sequence of digits, punctuation as pauses in speech or named punctuation characters.
1295 */
1296 speakAs?: ICSSRule | string;
1297 /**
1298 * The stroke property in CSS is for adding a border to SVG shapes.
1299 * See SVG 1.1 https://www.w3.org/TR/SVG/painting.html#Stroke
1300 */
1301 stroke?: ICSSRule | string;
1302 /**
1303 * SVG: The stroke-linecap attribute defines the shape to be used at the end of open subpaths when they are stroked.
1304 * See SVG 1.1 https://www.w3.org/TR/SVG/painting.html#LineCaps
1305 */
1306 strokeLinecap?: ICSSRule | 'butt' | 'round' | 'square' | string;
1307 /**
1308 * SVG: Specifies the opacity of the outline on the current object.
1309 * See SVG 1.1 https://www.w3.org/TR/SVG/painting.html#StrokeOpacityProperty
1310 */
1311 strokeOpacity?: ICSSRule | number | string;
1312 /**
1313 * SVG: Specifies the width of the outline on the current object.
1314 * See SVG 1.1 https://www.w3.org/TR/SVG/painting.html#StrokeWidthProperty
1315 */
1316 strokeWidth?: ICSSRule | ICSSPixelUnitRule;
1317 /**
1318 * The tab-size CSS property is used to customise the width of a tab (U+0009) character.
1319 */
1320 tabSize?: ICSSRule | string;
1321 /**
1322 * The 'table-layout' property controls the algorithm used to lay out the table cells, rows, and columns.
1323 */
1324 tableLayout?: ICSSRule | string;
1325 /**
1326 * The text-align CSS property describes how inline content like text is aligned in its
1327 * parent block element. text-align does not control the alignment of block elements
1328 * itself, only their inline content.
1329 */
1330 textAlign?: ICSSRule | string;
1331 /**
1332 * The text-align-last CSS property describes how the last line of a block element or
1333 * a line before line break is aligned in its parent block element.
1334 */
1335 textAlignLast?: ICSSRule | string;
1336 /**
1337 * The text-decoration CSS property is used to set the text formatting to underline,
1338 * overline, line-through or blink. underline and overline decorations are positioned
1339 * under the text, line-through over it.
1340 */
1341 textDecoration?: ICSSRule | string;
1342 /**
1343 * Sets the color of any text decoration, such as underlines, overlines, and strike
1344 * throughs.
1345 */
1346 textDecorationColor?: ICSSRule | string;
1347 /**
1348 * Sets what kind of line decorations are added to an element, such as underlines,
1349 * overlines, etc.
1350 */
1351 textDecorationLine?: ICSSRule | string;
1352 /**
1353 * Specifies what parts of an element’s content are skipped over when applying any
1354 * text decoration.
1355 */
1356 textDecorationSkip?: ICSSRule | string;
1357 /**
1358 * This property specifies the style of the text decoration line drawn on the
1359 * specified element. The intended meaning for the values are the same as those of
1360 * the border-style-properties.
1361 */
1362 textDecorationStyle?: ICSSRule | string;
1363 /**
1364 * The text-emphasis property will apply special emphasis marks to the elements text.
1365 * Slightly similar to the text-decoration property only that this property can have
1366 * affect on the line-height. It also is noted that this is shorthand for
1367 * text-emphasis-style and for text-emphasis-color.
1368 */
1369 textEmphasis?: ICSSRule | string;
1370 /**
1371 * The text-emphasis-color property specifies the foreground color of the emphasis
1372 * marks.
1373 */
1374 textEmphasisColor?: ICSSRule | string;
1375 /**
1376 * The text-emphasis-style property applies special emphasis marks to an element's
1377 * text.
1378 */
1379 textEmphasisStyle?: ICSSRule | string;
1380 /**
1381 * This property helps determine an inline box's block-progression dimension, derived
1382 * from the text-height and font-size properties for non-replaced elements, the height
1383 * or the width for replaced elements, and the stacked block-progression dimension for
1384 * inline-block elements. The block-progression dimension determines the position of
1385 * the padding, border and margin for the element.
1386 */
1387 textHeight?: ICSSRule | string;
1388 /**
1389 * Specifies the amount of space horizontally that should be left on the first line of
1390 * the text of an element. This horizontal spacing is at the beginning of the first
1391 * line and is in respect to the left edge of the containing block box.
1392 */
1393 textIndent?: ICSSRule | string;
1394 /**
1395 * The text-overflow shorthand CSS property determines how overflowed content that is
1396 * not displayed is signaled to the users. It can be clipped, display an ellipsis
1397 * ('…', U+2026 HORIZONTAL ELLIPSIS) or a Web author-defined string. It covers the
1398 * two long-hand properties text-overflow-mode and text-overflow-ellipsis
1399 */
1400 textOverflow?: ICSSRule | string;
1401 /**
1402 * The text-overline property is the shorthand for the text-overline-style,
1403 * text-overline-width, text-overline-color, and text-overline-mode properties.
1404 */
1405 textOverline?: ICSSRule | string;
1406 /**
1407 * Specifies the line color for the overline text decoration.
1408 */
1409 textOverlineColor?: ICSSRule | string;
1410 /**
1411 * Sets the mode for the overline text decoration, determining whether the text
1412 * decoration affects the space characters or not.
1413 */
1414 textOverlineMode?: ICSSRule | string;
1415 /**
1416 * Specifies the line style for overline text decoration.
1417 */
1418 textOverlineStyle?: ICSSRule | string;
1419 /**
1420 * Specifies the line width for the overline text decoration.
1421 */
1422 textOverlineWidth?: ICSSRule | ICSSPixelUnitRule;
1423 /**
1424 * The text-rendering CSS property provides information to the browser about how to
1425 * optimize when rendering text. Options are: legibility, speed or geometric precision.
1426 */
1427 textRendering?: ICSSRule | string;
1428 /**
1429 * The CSS text-shadow property applies one or more drop shadows to the text and
1430 * `<text-decorations>` of an element. Each shadow is specified as an offset from the
1431 * text, along with optional color and blur radius values.
1432 */
1433 textShadow?: ICSSRule | string;
1434 /**
1435 * The text-size-adjust CSS property controls the text inflation algorithm used
1436 * on some smartphones and tablets. Other browsers will ignore this property.
1437 */
1438 textSizeAdjust?: 'none' | 'auto' | ICSSPercentageRule | ICSSRule;
1439 /**
1440 * This property transforms text for styling purposes. (It has no effect on the
1441 * underlying content.)
1442 */
1443 textTransform?: ICSSRule | string;
1444 /**
1445 * Unsupported.
1446 * This property will add a underline position value to the element that has an
1447 * underline defined.
1448 */
1449 textUnderlinePosition?: ICSSRule | string;
1450 /**
1451 * After review this should be replaced by text-decoration should it not?
1452 * This property will set the underline style for text with a line value for
1453 * underline, overline, and line-through.
1454 */
1455 textUnderlineStyle?: ICSSRule | string;
1456 /**
1457 * This property specifies how far an absolutely positioned box's top margin edge is
1458 * offset below the top edge of the box's containing block. For relatively positioned
1459 * boxes, the offset is with respect to the top edges of the box itself (i.e., the box
1460 * is given a position in the normal flow, then offset from that position according to
1461 * these properties).
1462 */
1463 top?: ICSSRule | ICSSPixelUnitRule;
1464 /**
1465 * Determines whether touch input may trigger default behavior supplied by the user
1466 * agent, such as panning or zooming.
1467 */
1468 touchAction?: ICSSRule | string;
1469 /**
1470 * CSS transforms allow elements styled with CSS to be transformed in two-dimensional
1471 * or three-dimensional space. Using this property, elements can be translated,
1472 * rotated, scaled, and skewed. The value list may consist of 2D and/or 3D transform
1473 * values.
1474 */
1475 transform?: ICSSRule | string;
1476 /**
1477 * This property defines the origin of the transformation axes relative to the element
1478 * to which the transformation is applied.
1479 */
1480 transformOrigin?: ICSSRule | string;
1481 /**
1482 * This property allows you to define the relative position of the origin of the
1483 * transformation grid along the z-axis.
1484 */
1485 transformOriginZ?: ICSSRule | string;
1486 /**
1487 * This property specifies how nested elements are rendered in 3D space relative to their parent.
1488 */
1489 transformStyle?: ICSSRule | string;
1490 /**
1491 * The transition CSS property is a shorthand property for transition-property,
1492 * transition-duration, transition-timing-function, and transition-delay. It allows to
1493 * define the transition between two states of an element.
1494 */
1495 transition?: ICSSRule | string;
1496 /**
1497 * Defines when the transition will start. A value of ‘0s’ means the transition will
1498 * execute as soon as the property is changed. Otherwise, the value specifies an
1499 * offset from the moment the property is changed, and the transition will delay
1500 * execution by that offset.
1501 */
1502 transitionDelay?: ICSSRule | string;
1503 /**
1504 * The 'transition-duration' property specifies the length of time a transition
1505 * animation takes to complete.
1506 */
1507 transitionDuration?: ICSSRule | string;
1508 /**
1509 * The 'transition-property' property specifies the name of the CSS property to which
1510 * the transition is applied.
1511 */
1512 transitionProperty?: ICSSRule | string;
1513 /**
1514 * Sets the pace of action within a transition
1515 */
1516 transitionTimingFunction?: ICSSRule | string;
1517 /**
1518 * The unicode-bidi CSS property specifies the level of embedding with respect to the bidirectional algorithm.
1519 */
1520 unicodeBidi?: ICSSRule | string;
1521 /**
1522 * This is for all the high level UX stuff.
1523 */
1524 userFocus?: ICSSRule | string;
1525 /**
1526 * For inputting user content
1527 */
1528 userInput?: ICSSRule | string;
1529 /**
1530 * Defines the text selection behavior.
1531 */
1532 userSelect?: ICSSRule | 'none' | 'auto' | 'text' | 'all' | 'contain' | string;
1533 /**
1534 * The vertical-align property controls how inline elements or text are vertically
1535 * aligned compared to the baseline. If this property is used on table-cells it
1536 * controls the vertical alignment of content of the table cell.
1537 */
1538 verticalAlign?: ICSSRule | string;
1539 /**
1540 * The visibility property specifies whether the boxes generated by an element are rendered.
1541 */
1542 visibility?: ICSSRule | string;
1543 /**
1544 * The voice-balance property sets the apparent position (in stereo sound) of the synthesized voice for spoken media.
1545 */
1546 voiceBalance?: ICSSRule | string;
1547 /**
1548 * The voice-duration property allows the author to explicitly set the amount of time
1549 * it should take a speech synthesizer to read an element's content, for example to
1550 * allow the speech to be synchronized with other media. With a value of auto (the
1551 * default) the length of time it takes to read the content is determined by the
1552 * content itself and the voice-rate property.
1553 */
1554 voiceDuration?: ICSSRule | string;
1555 /**
1556 * The voice-family property sets the speaker's voice used by a speech media agent to
1557 * read an element. The speaker may be specified as a named character (to match a
1558 * voice option in the speech reading software) or as a generic description of the
1559 * age and gender of the voice. Similar to the font-family property for visual media,
1560 * a comma-separated list of fallback options may be given in case the speech reader
1561 * does not recognize the character name or cannot synthesize the requested combination
1562 * of generic properties.
1563 */
1564 voiceFamily?: ICSSRule | string;
1565 /**
1566 * The voice-pitch property sets pitch or tone (high or low) for the synthesized speech
1567 * when reading an element; the pitch may be specified absolutely or relative to the
1568 * normal pitch for the voice-family used to read the text.
1569 */
1570 voicePitch?: ICSSRule | string;
1571 /**
1572 * The voice-range property determines how much variation in pitch or tone will be
1573 * created by the speech synthesize when reading an element. Emphasized text,
1574 * grammatical structures and punctuation may all be rendered as changes in pitch,
1575 * this property determines how strong or obvious those changes are; large ranges are
1576 * associated with enthusiastic or emotional speech, while small ranges are associated
1577 * with flat or mechanical speech.
1578 */
1579 voiceRange?: ICSSRule | string;
1580 /**
1581 * The voice-rate property sets the speed at which the voice synthesized by a speech
1582 * media agent will read content.
1583 */
1584 voiceRate?: ICSSRule | string;
1585 /**
1586 * The voice-stress property sets the level of vocal emphasis to be used for
1587 * synthesized speech reading the element.
1588 */
1589 voiceStress?: ICSSRule | string;
1590 /**
1591 * The voice-volume property sets the volume for spoken content in speech media. It
1592 * replaces the deprecated volume property.
1593 */
1594 voiceVolume?: ICSSRule | string;
1595 /**
1596 * The white-space property controls whether and how white space inside the element is
1597 * collapsed, and whether lines may wrap at unforced "soft wrap" opportunities.
1598 */
1599 whiteSpace?: ICSSRule | string;
1600 /**
1601 * In paged media, this property defines the mimimum number of lines that must be left
1602 * at the top of the second page.
1603 * See CSS 3 orphans, widows properties
1604 * https://drafts.csswg.org/css-break-3/#widows-orphans
1605 */
1606 widows?: ICSSRule | number | string;
1607 /**
1608 * Specifies the width of the content area of an element. The content area of the element
1609 * width does not include the padding, border, and margin of the element.
1610 */
1611 width?: ICSSRule | ICSSPixelUnitRule;
1612 /**
1613 * The word-break property is often used when there is long generated content that is
1614 * strung together without and spaces or hyphens to beak apart. A common case of this
1615 * is when there is a long URL that does not have any hyphens. This case could
1616 * potentially cause the breaking of the layout as it could extend past the parent
1617 * element.
1618 */
1619 wordBreak?: ICSSRule | string;
1620 /**
1621 * The word-spacing CSS property specifies the spacing behavior between "words".
1622 */
1623 wordSpacing?: ICSSRule | string;
1624 /**
1625 * An alias of css/properties/overflow-wrap, word-wrap defines whether to break
1626 * words when the content exceeds the boundaries of its container.
1627 */
1628 wordWrap?: ICSSRule | string;
1629 /**
1630 * Specifies how exclusions affect inline content within block-level elements. Elements
1631 * lay out their inline content in their content area but wrap around exclusion areas.
1632 */
1633 wrapFlow?: ICSSRule | string;
1634 /**
1635 * Set the value that is used to offset the inner wrap shape from other shapes. Inline
1636 * content that intersects a shape with this property will be pushed by this shape's
1637 * margin.
1638 */
1639 wrapMargin?: ICSSRule | string;
1640 /**
1641 * writing-mode specifies if lines of text are laid out horizontally or vertically,
1642 * and the direction which lines of text and blocks progress.
1643 */
1644 writingMode?: ICSSRule | string;
1645 /**
1646 * The z-index property specifies the z-order of an element and its descendants.
1647 * When elements overlap, z-order determines which one covers the other.
1648 * See CSS 2 z-index property https://www.w3.org/TR/CSS2/visuren.html#z-index
1649 */
1650 zIndex?: ICSSRule | 'auto' | number | string;
1651 /**
1652 * Sets the initial zoom factor of a document defined by `@viewport`.
1653 * See CSS zoom descriptor https://drafts.csswg.org/css-device-adapt/#zoom-desc
1654 */
1655 zoom?: ICSSRule | 'auto' | number | ICSSPercentageRule;
1656}