├── CHANGELOG.md ├── LICENSE ├── README.md ├── css.ts ├── html.ts └── jsx-runtime.ts /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | All notable changes to this project will be documented in this file. 3 | 4 | The format is based on [Keep a Changelog](https://keepachangelog.com/) 5 | and this project adheres to [Semantic Versioning](https://semver.org/). 6 | 7 | ## [0.1.10] - 2025-05-14 8 | ### Added 9 | - New `await .toString()` method to render the component. 10 | - Example for Node.js/Bun 11 | 12 | ### Fixed 13 | - Import the types with `import type`. 14 | 15 | ## [0.1.9] - 2025-05-01 16 | ### Fixed 17 | - Error rendering invalid components. 18 | - Updated HTML & CSS types. 19 | 20 | ## [0.1.8] - 2025-03-27 21 | ### Added 22 | - Types for SVG elements 23 | 24 | ### Fixed 25 | - Performance: removed unnecessary regular expressions. 26 | - Updated HTML & CSS types 27 | 28 | ## [0.1.7] - 2025-03-21 29 | ### Fixed 30 | - Render errors when the content is `false`. 31 | - Improved types. 32 | 33 | ## [0.1.6] - 2025-03-06 34 | ### Fixed 35 | - Alias `className` and `htmlFor` to `class` and `for` attributes. 36 | 37 | ## [0.1.5] - 2025-01-29 38 | ### Fixed 39 | - Fragment rendering. 40 | 41 | ## [0.1.4] - 2025-01-25 42 | ### Added 43 | - CSS types. 44 | - Benchmark to compare with React and Preact. 45 | 46 | ### Changed 47 | - Make `ssxElement` property not enumerable. 48 | 49 | ## [0.1.3] - 2025-01-06 50 | ### Added 51 | - Export `renderComponent` function. 52 | - Publish on NPM. 53 | - Symbol to check if an object is a SSX element. 54 | 55 | ### Fixed 56 | - Void elements. 57 | - Support for non `precompile` context 58 | - `children` attribute for custom components 59 | - Fragment rendering. 60 | 61 | ## [0.1.2] - 2024-12-05 62 | ### Fixed 63 | - Allow types `string | number` for numeric attributes (like `tabindex`), instead of only `string`. 64 | 65 | ## [0.1.1] - 2024-07-23 66 | ### Added 67 | - Support for `dangerouslySetInnerHTML` for compatibility with other JSX libraries. 68 | 69 | ### Fixed 70 | - Bug rendering inner components and some async properties. 71 | 72 | ## [0.1.0] - 2024-07-20 73 | First version 74 | 75 | [0.1.10]: https://github.com/oscarotero/ssx/compare/v0.1.9...v0.1.10 76 | [0.1.9]: https://github.com/oscarotero/ssx/compare/v0.1.8...v0.1.9 77 | [0.1.8]: https://github.com/oscarotero/ssx/compare/v0.1.7...v0.1.8 78 | [0.1.7]: https://github.com/oscarotero/ssx/compare/v0.1.6...v0.1.7 79 | [0.1.6]: https://github.com/oscarotero/ssx/compare/v0.1.5...v0.1.6 80 | [0.1.5]: https://github.com/oscarotero/ssx/compare/v0.1.4...v0.1.5 81 | [0.1.4]: https://github.com/oscarotero/ssx/compare/v0.1.3...v0.1.4 82 | [0.1.3]: https://github.com/oscarotero/ssx/compare/v0.1.2...v0.1.3 83 | [0.1.2]: https://github.com/oscarotero/ssx/compare/v0.1.1...v0.1.2 84 | [0.1.1]: https://github.com/oscarotero/ssx/compare/v0.1.0...v0.1.1 85 | [0.1.0]: https://github.com/oscarotero/ssx/releases/tag/v0.1.0 86 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 Óscar Otero 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SSX 2 | 3 | JSX is terrible for frontend. But it's an acceptable way to create HTML code in 4 | server side, specially if it's supported by default by TypeScript and Deno. 5 | 6 | Most of the current JSX libraries are designed to work in server and client 7 | sides. They do complicated things like a virtual DOM, reactivity, hooks, 8 | hydration, events, etc, in order to create interactive user interfaces. 9 | 10 | SSX is a minimal JSX library designed to be used ONLY in server side and output 11 | plain HTML code. 12 | 13 | - Created in TypeScript, for Deno. 14 | - Very fast. It's compatible with the 15 | [`precompile` option](https://deno.com/blog/v1.38#fastest-jsx-transform) 16 | available in Deno. 17 | > 7-20x faster rendering times and a 50% reduction in Garbage Collection 18 | > times. 19 | - Run `deno task bench` to compare SSX with React, Hono and Preact. 20 | - Designed to output HTML. It uses real HTML attributes (no more `className`). 21 | - Great HTML and CSS documentation. Every element and property has a description 22 | and even links to [MDN documentation](https://developer.mozilla.org/). Types 23 | are generated using the data from 24 | [VSCode Custom Data](https://github.com/microsoft/vscode-custom-data). 25 | - It supports async components (components returning a Promise). 26 | - Allows to insert raw HTML code easily (without patronizing you). 27 | - You can add the `` declaration. 28 | 29 | ## Configuration 30 | 31 | In your `deno.json` file: 32 | 33 | ```json 34 | { 35 | "compilerOptions": { 36 | "jsx": "react-jsx", 37 | "jsxImportSource": "ssx" 38 | }, 39 | "imports": { 40 | "ssx/jsx-runtime": "https://deno.land/x/ssx/jsx-runtime.ts" 41 | } 42 | } 43 | ``` 44 | 45 | Alternatively, you can use 46 | [JsDelivr as CDN](https://cdn.jsdelivr.net/gh/oscarotero/ssx/). 47 | 48 | ## Using NPM specifier 49 | 50 | SSX is also 51 | [published on NPM as `@lumeland/ssx`](https://www.npmjs.com/package/@lumeland/ssx): 52 | 53 | ```json 54 | { 55 | "compilerOptions": { 56 | "jsx": "react-jsx", 57 | "jsxImportSource": "npm:@lumeland/ssx" 58 | } 59 | } 60 | ``` 61 | 62 | ## Use with Node and Bun 63 | 64 | If you want to use SSX with Node.js or Bun, see the `/node` folder for an 65 | example setup using this package in a Node environment. 66 | 67 | ## Example: 68 | 69 | ```jsx 70 | // Main component 71 | function Main() { 72 | return ( 73 |
74 |
75 |

Welcome to SSX

76 | {{ __html: "Raw HTML code" }} 77 |
78 |
79 | ); 80 | } 81 | 82 | // Async component 83 | async function Header({ children }: { children: JSX.Children }) { 84 | const res = await fetch( 85 | `https://api.dictionaryapi.dev/api/v2/entries/en/${name}`, 86 | ); 87 | 88 | const json = await res.json(); 89 | const def = json[0]?.meanings[0]?.definitions[0]?.definition; 90 | 91 | return ( 92 | <> 93 |

Definition of {name}:

94 |

{def || "Definition not found"}

95 | {children} 96 | 97 | ); 98 | } 99 | 100 | // String with the HTML code 101 | console.log(await Main()); 102 | ``` 103 | 104 | ### Adding Doctype: 105 | 106 | Any child with the shape `{ __html: string }` is treated as raw HTML and will 107 | not be escaped. This allows you to insert the `` declaration 108 | directly (something not possible in other JSX libraries): 109 | 110 | ```html 111 | {{ __html: "" }} 112 | 113 | ... 114 | ; 115 | ``` 116 | -------------------------------------------------------------------------------- /css.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * All CSS properties 3 | */ 4 | export interface CSSProperties { 5 | /** 6 | * Custom property 7 | */ 8 | [key: string]: unknown; 9 | 10 | /** 11 | * Sets the color of the elements accent 12 | * @see https://developer.mozilla.org/docs/Web/CSS/accent-color 13 | */ 14 | "accent-color"?: string; 15 | 16 | /** 17 | * Aligns a flex container's lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis. 18 | * Syntax: normal | | | ? 19 | * @see https://developer.mozilla.org/docs/Web/CSS/align-content 20 | */ 21 | "align-content"?: 22 | | "center" 23 | | "flex-end" 24 | | "flex-start" 25 | | "space-around" 26 | | "space-between" 27 | | "stretch" 28 | | "start" 29 | | "end" 30 | | "normal" 31 | | "baseline" 32 | | "first baseline" 33 | | "last baseline" 34 | | "space-around" 35 | | "space-between" 36 | | "space-evenly" 37 | | "stretch" 38 | | "safe" 39 | | "unsafe" 40 | | string; 41 | 42 | /** 43 | * Aligns flex items along the cross axis of the current line of the flex container. 44 | * Syntax: normal | stretch | | [ ? ] 45 | * @see https://developer.mozilla.org/docs/Web/CSS/align-items 46 | */ 47 | "align-items"?: 48 | | "baseline" 49 | | "center" 50 | | "flex-end" 51 | | "flex-start" 52 | | "stretch" 53 | | "normal" 54 | | "start" 55 | | "end" 56 | | "self-start" 57 | | "self-end" 58 | | "first baseline" 59 | | "last baseline" 60 | | "stretch" 61 | | "safe" 62 | | "unsafe" 63 | | string; 64 | 65 | /** 66 | * Allows the default alignment along the cross axis to be overridden for individual flex items. 67 | * Syntax: auto | normal | stretch | | ? 68 | * @see https://developer.mozilla.org/docs/Web/CSS/align-self 69 | */ 70 | "align-self"?: 71 | | "auto" 72 | | "normal" 73 | | "self-end" 74 | | "self-start" 75 | | "baseline" 76 | | "center" 77 | | "flex-end" 78 | | "flex-start" 79 | | "stretch" 80 | | "baseline" 81 | | "first baseline" 82 | | "last baseline" 83 | | "safe" 84 | | "unsafe" 85 | | string; 86 | 87 | /** 88 | * The alignment-baseline CSS property specifies the specific baseline used to align the box's text and inline-level contents. Baseline alignment is the relationship among the baselines of multiple alignment subjects within an alignment context. When performing baseline alignment, the alignment-baseline property value specifies which baseline of the box is aligned to the corresponding baseline of its alignment context. 89 | * Syntax: baseline | alphabetic | ideographic | middle | central | mathematical | text-before-edge | text-after-edge 90 | * @see https://developer.mozilla.org/docs/Web/CSS/alignment-baseline 91 | */ 92 | "alignment-baseline"?: 93 | | "baseline" 94 | | "alphabetic" 95 | | "ideographic" 96 | | "middle" 97 | | "central" 98 | | "mathematical" 99 | | "text-before-edge" 100 | | "text-after-edge"; 101 | 102 | /** 103 | * Shorthand that resets all properties except 'direction' and 'unicode-bidi'. 104 | * @see https://developer.mozilla.org/docs/Web/CSS/all 105 | */ 106 | all?: string; 107 | 108 | /** 109 | * Provides alternative text for assistive technology to replace the generated content of a ::before or ::after element. 110 | */ 111 | alt?: string; 112 | 113 | /** 114 | * The anchor-name property declares that an element is an anchor element, and gives it a list of anchor names to be targeted by. 115 | * @see https://developer.mozilla.org/docs/Web/CSS/anchor-name 116 | */ 117 | "anchor-name"?: string; 118 | 119 | /** 120 | * This property scopes the specified anchor names, and lookups for these anchor names, to this element’s subtree 121 | */ 122 | "anchor-scope"?: string; 123 | 124 | /** 125 | * Shorthand property combines six of the animation properties into a single property. 126 | * Syntax: # 127 | * @see https://developer.mozilla.org/docs/Web/CSS/animation 128 | */ 129 | animation?: 130 | | "alternate" 131 | | "alternate-reverse" 132 | | "backwards" 133 | | "both" 134 | | "forwards" 135 | | "infinite" 136 | | "none" 137 | | "normal" 138 | | "reverse" 139 | | string; 140 | 141 | /** 142 | * The composite operation to use when multiple animations affect the same property. 143 | * @see https://developer.mozilla.org/docs/Web/CSS/animation-composition 144 | */ 145 | "animation-composition"?: string; 146 | 147 | /** 148 | * Defines when the animation will start. 149 | * @see https://developer.mozilla.org/docs/Web/CSS/animation-delay 150 | */ 151 | "animation-delay"?: string; 152 | 153 | /** 154 | * Defines whether or not the animation should play in reverse on alternate cycles. 155 | * Syntax: # 156 | * @see https://developer.mozilla.org/docs/Web/CSS/animation-direction 157 | */ 158 | "animation-direction"?: 159 | | "alternate" 160 | | "alternate-reverse" 161 | | "normal" 162 | | "reverse" 163 | | string; 164 | 165 | /** 166 | * Defines the length of time that an animation takes to complete one cycle. 167 | * @see https://developer.mozilla.org/docs/Web/CSS/animation-duration 168 | */ 169 | "animation-duration"?: string; 170 | 171 | /** 172 | * Defines what values are applied by the animation outside the time it is executing. 173 | * Syntax: # 174 | * @see https://developer.mozilla.org/docs/Web/CSS/animation-fill-mode 175 | */ 176 | "animation-fill-mode"?: "backwards" | "both" | "forwards" | "none" | string; 177 | 178 | /** 179 | * Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once. 180 | * Syntax: # 181 | * @see https://developer.mozilla.org/docs/Web/CSS/animation-iteration-count 182 | */ 183 | "animation-iteration-count"?: "infinite" | string; 184 | 185 | /** 186 | * Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation. 187 | * Syntax: [ none | ]# 188 | * @see https://developer.mozilla.org/docs/Web/CSS/animation-name 189 | */ 190 | "animation-name"?: "none" | string; 191 | 192 | /** 193 | * Defines whether the animation is running or paused. 194 | * Syntax: # 195 | * @see https://developer.mozilla.org/docs/Web/CSS/animation-play-state 196 | */ 197 | "animation-play-state"?: "paused" | "running" | string; 198 | 199 | /** 200 | * The animation-range CSS shorthand property is used to set the start and end of an animation's attachment range along its timeline, i.e. where along the timeline an animation will start and end. 201 | * @see https://developer.mozilla.org/docs/Web/CSS/animation-range 202 | */ 203 | "animation-range"?: string; 204 | 205 | /** 206 | * The animation-range-end CSS property is used to set the end of an animation's attachment range along its timeline, i.e. where along the timeline an animation will end. 207 | * @see https://developer.mozilla.org/docs/Web/CSS/animation-range-end 208 | */ 209 | "animation-range-end"?: string; 210 | 211 | /** 212 | * The animation-range-start CSS property is used to set the start of an animation's attachment range along its timeline, i.e. where along the timeline an animation will start. 213 | * @see https://developer.mozilla.org/docs/Web/CSS/animation-range-start 214 | */ 215 | "animation-range-start"?: string; 216 | 217 | /** 218 | * Specifies the names of one or more @scroll-timeline at-rules to describe the element's scroll animations. 219 | * @see https://developer.mozilla.org/docs/Web/CSS/animation-timeline 220 | */ 221 | "animation-timeline"?: string; 222 | 223 | /** 224 | * Describes how the animation will progress over one cycle of its duration. 225 | * @see https://developer.mozilla.org/docs/Web/CSS/animation-timing-function 226 | */ 227 | "animation-timing-function"?: string; 228 | 229 | /** 230 | * Changes the appearance of buttons and other controls to resemble native controls. 231 | * @see https://developer.mozilla.org/docs/Web/CSS/appearance 232 | */ 233 | appearance?: string; 234 | 235 | /** 236 | * The aspect-ratio CSS property sets a preferred aspect ratio for the box, which will be used in the calculation of auto sizes and some other layout functions. 237 | * @see https://developer.mozilla.org/docs/Web/CSS/aspect-ratio 238 | */ 239 | "aspect-ratio"?: string; 240 | 241 | /** 242 | * The backdrop-filter CSS property lets you apply graphical effects such as blurring or color shifting to the area behind an element. Because it applies to everything behind the element, to see the effect you must make the element or its background at least partially transparent. 243 | * @see https://developer.mozilla.org/docs/Web/CSS/backdrop-filter 244 | */ 245 | "backdrop-filter"?: string; 246 | 247 | /** 248 | * Determines whether or not the 'back' side of a transformed element is visible when facing the viewer. With an identity transform, the front side of an element faces the viewer. 249 | * Syntax: visible | hidden 250 | * @see https://developer.mozilla.org/docs/Web/CSS/backface-visibility 251 | */ 252 | "backface-visibility"?: "hidden" | "visible"; 253 | 254 | /** 255 | * Shorthand property for setting most background properties at the same place in the style sheet. 256 | * Syntax: [ , ]* 257 | * @see https://developer.mozilla.org/docs/Web/CSS/background 258 | */ 259 | background?: "fixed" | "local" | "none" | "scroll" | string | 0; 260 | 261 | /** 262 | * Specifies whether the background images are fixed with regard to the viewport ('fixed') or scroll along with the element ('scroll') or its contents ('local'). 263 | * Syntax: # 264 | * @see https://developer.mozilla.org/docs/Web/CSS/background-attachment 265 | */ 266 | "background-attachment"?: "fixed" | "local" | "scroll" | string; 267 | 268 | /** 269 | * Defines the blending mode of each background layer. 270 | * Syntax: # 271 | * @see https://developer.mozilla.org/docs/Web/CSS/background-blend-mode 272 | */ 273 | "background-blend-mode"?: 274 | | "normal" 275 | | "multiply" 276 | | "screen" 277 | | "overlay" 278 | | "darken" 279 | | "lighten" 280 | | "color-dodge" 281 | | "color-burn" 282 | | "hard-light" 283 | | "soft-light" 284 | | "difference" 285 | | "exclusion" 286 | | "hue" 287 | | "saturation" 288 | | "color" 289 | | "luminosity" 290 | | string; 291 | 292 | /** 293 | * Determines the background painting area. 294 | * @see https://developer.mozilla.org/docs/Web/CSS/background-clip 295 | */ 296 | "background-clip"?: string; 297 | 298 | /** 299 | * Sets the background color of an element. 300 | * @see https://developer.mozilla.org/docs/Web/CSS/background-color 301 | */ 302 | "background-color"?: string; 303 | 304 | /** 305 | * Sets the background image(s) of an element. 306 | * Syntax: # 307 | * @see https://developer.mozilla.org/docs/Web/CSS/background-image 308 | */ 309 | "background-image"?: "none" | string; 310 | 311 | /** 312 | * For elements rendered as a single box, specifies the background positioning area. For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages) specifies which boxes 'box-decoration-break' operates on to determine the background positioning area(s). 313 | * @see https://developer.mozilla.org/docs/Web/CSS/background-origin 314 | */ 315 | "background-origin"?: string; 316 | 317 | /** 318 | * Specifies the initial position of the background image(s) (after any resizing) within their corresponding background positioning area. 319 | * @see https://developer.mozilla.org/docs/Web/CSS/background-position 320 | */ 321 | "background-position"?: string; 322 | 323 | /** 324 | * If background images have been specified, this property specifies their initial position (after any resizing) within their corresponding background positioning area. 325 | * Syntax: [ center | [ [ left | right | x-start | x-end ]? ? ]! ]# 326 | * @see https://developer.mozilla.org/docs/Web/CSS/background-position-x 327 | */ 328 | "background-position-x"?: "center" | "left" | "right" | string | 0; 329 | 330 | /** 331 | * If background images have been specified, this property specifies their initial position (after any resizing) within their corresponding background positioning area. 332 | * Syntax: [ center | [ [ top | bottom | y-start | y-end ]? ? ]! ]# 333 | * @see https://developer.mozilla.org/docs/Web/CSS/background-position-y 334 | */ 335 | "background-position-y"?: "bottom" | "center" | "top" | string | 0; 336 | 337 | /** 338 | * Specifies how background images are tiled after they have been sized and positioned. 339 | * @see https://developer.mozilla.org/docs/Web/CSS/background-repeat 340 | */ 341 | "background-repeat"?: string; 342 | 343 | /** 344 | * Specifies the size of the background images. 345 | * Syntax: # 346 | * @see https://developer.mozilla.org/docs/Web/CSS/background-size 347 | */ 348 | "background-size"?: "auto" | "contain" | "cover" | string | 0; 349 | 350 | "baseline-shift"?: string; 351 | 352 | /** 353 | * IE only. Used to extend behaviors of the browser. 354 | */ 355 | behavior?: string; 356 | 357 | /** 358 | * Size of an element in the direction opposite that of the direction specified by 'writing-mode'. 359 | * Syntax: <'width'> 360 | * @see https://developer.mozilla.org/docs/Web/CSS/block-size 361 | */ 362 | "block-size"?: "auto" | string | 0; 363 | 364 | /** 365 | * Shorthand property for setting border width, style, and color. 366 | * @see https://developer.mozilla.org/docs/Web/CSS/border 367 | */ 368 | border?: string; 369 | 370 | /** 371 | * The border-block CSS property is a shorthand property for setting the individual logical block border property values in a single place in the style sheet. 372 | * @see https://developer.mozilla.org/docs/Web/CSS/border-block 373 | */ 374 | "border-block"?: string; 375 | 376 | /** 377 | * The border-block-color CSS property defines the color of the logical block borders of an element, which maps to a physical border color depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-color and border-bottom-color, or border-right-color and border-left-color property depending on the values defined for writing-mode, direction, and text-orientation. 378 | * @see https://developer.mozilla.org/docs/Web/CSS/border-block-color 379 | */ 380 | "border-block-color"?: string; 381 | 382 | /** 383 | * Logical 'border-bottom'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 384 | * @see https://developer.mozilla.org/docs/Web/CSS/border-block-end 385 | */ 386 | "border-block-end"?: string; 387 | 388 | /** 389 | * Logical 'border-bottom-color'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 390 | * @see https://developer.mozilla.org/docs/Web/CSS/border-block-end-color 391 | */ 392 | "border-block-end-color"?: string; 393 | 394 | /** 395 | * Logical 'border-bottom-style'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 396 | * @see https://developer.mozilla.org/docs/Web/CSS/border-block-end-style 397 | */ 398 | "border-block-end-style"?: string; 399 | 400 | /** 401 | * Logical 'border-bottom-width'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 402 | * @see https://developer.mozilla.org/docs/Web/CSS/border-block-end-width 403 | */ 404 | "border-block-end-width"?: string; 405 | 406 | /** 407 | * Logical 'border-top'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 408 | * @see https://developer.mozilla.org/docs/Web/CSS/border-block-start 409 | */ 410 | "border-block-start"?: string; 411 | 412 | /** 413 | * Logical 'border-top-color'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 414 | * @see https://developer.mozilla.org/docs/Web/CSS/border-block-start-color 415 | */ 416 | "border-block-start-color"?: string; 417 | 418 | /** 419 | * Logical 'border-top-style'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 420 | * @see https://developer.mozilla.org/docs/Web/CSS/border-block-start-style 421 | */ 422 | "border-block-start-style"?: string; 423 | 424 | /** 425 | * Logical 'border-top-width'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 426 | * @see https://developer.mozilla.org/docs/Web/CSS/border-block-start-width 427 | */ 428 | "border-block-start-width"?: string; 429 | 430 | /** 431 | * The border-block-style CSS property defines the style of the logical block borders of an element, which maps to a physical border style depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-style and border-bottom-style, or border-left-style and border-right-style properties depending on the values defined for writing-mode, direction, and text-orientation. 432 | * @see https://developer.mozilla.org/docs/Web/CSS/border-block-style 433 | */ 434 | "border-block-style"?: string; 435 | 436 | /** 437 | * The border-block-width CSS property defines the width of the logical block borders of an element, which maps to a physical border width depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-width and border-bottom-width, or border-left-width, and border-right-width property depending on the values defined for writing-mode, direction, and text-orientation. 438 | * @see https://developer.mozilla.org/docs/Web/CSS/border-block-width 439 | */ 440 | "border-block-width"?: string; 441 | 442 | /** 443 | * Shorthand property for setting border width, style and color. 444 | * @see https://developer.mozilla.org/docs/Web/CSS/border-bottom 445 | */ 446 | "border-bottom"?: string; 447 | 448 | /** 449 | * Sets the color of the bottom border. 450 | * @see https://developer.mozilla.org/docs/Web/CSS/border-bottom-color 451 | */ 452 | "border-bottom-color"?: string; 453 | 454 | /** 455 | * Defines the radii of the bottom left outer border edge. 456 | * @see https://developer.mozilla.org/docs/Web/CSS/border-bottom-left-radius 457 | */ 458 | "border-bottom-left-radius"?: string; 459 | 460 | /** 461 | * Defines the radii of the bottom right outer border edge. 462 | * @see https://developer.mozilla.org/docs/Web/CSS/border-bottom-right-radius 463 | */ 464 | "border-bottom-right-radius"?: string; 465 | 466 | /** 467 | * Sets the style of the bottom border. 468 | * @see https://developer.mozilla.org/docs/Web/CSS/border-bottom-style 469 | */ 470 | "border-bottom-style"?: string; 471 | 472 | /** 473 | * Sets the thickness of the bottom border. 474 | * @see https://developer.mozilla.org/docs/Web/CSS/border-bottom-width 475 | */ 476 | "border-bottom-width"?: string; 477 | 478 | /** 479 | * Selects a table's border model. 480 | * Syntax: collapse | separate 481 | * @see https://developer.mozilla.org/docs/Web/CSS/border-collapse 482 | */ 483 | "border-collapse"?: "collapse" | "separate"; 484 | 485 | /** 486 | * The color of the border around all four edges of an element. 487 | * @see https://developer.mozilla.org/docs/Web/CSS/border-color 488 | */ 489 | "border-color"?: string; 490 | 491 | /** 492 | * The border-end-end-radius CSS property defines a logical border radius on an element, which maps to a physical border radius that depends on on the element's writing-mode, direction, and text-orientation. 493 | * @see https://developer.mozilla.org/docs/Web/CSS/border-end-end-radius 494 | */ 495 | "border-end-end-radius"?: string; 496 | 497 | /** 498 | * The border-end-start-radius CSS property defines a logical border radius on an element, which maps to a physical border radius depending on the element's writing-mode, direction, and text-orientation. 499 | * @see https://developer.mozilla.org/docs/Web/CSS/border-end-start-radius 500 | */ 501 | "border-end-start-radius"?: string; 502 | 503 | /** 504 | * Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values. 505 | * Syntax: <'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'> 506 | * @see https://developer.mozilla.org/docs/Web/CSS/border-image 507 | */ 508 | "border-image"?: 509 | | "auto" 510 | | "fill" 511 | | "none" 512 | | "repeat" 513 | | "round" 514 | | "space" 515 | | "stretch" 516 | | "url()" 517 | | string 518 | | 0; 519 | 520 | /** 521 | * The values specify the amount by which the border image area extends beyond the border box on the top, right, bottom, and left sides respectively. If the fourth value is absent, it is the same as the second. If the third one is also absent, it is the same as the first. If the second one is also absent, it is the same as the first. Numbers represent multiples of the corresponding border-width. 522 | * @see https://developer.mozilla.org/docs/Web/CSS/border-image-outset 523 | */ 524 | "border-image-outset"?: string; 525 | 526 | /** 527 | * Specifies how the images for the sides and the middle part of the border image are scaled and tiled. If the second keyword is absent, it is assumed to be the same as the first. 528 | * Syntax: [ stretch | repeat | round | space ]{1,2} 529 | * @see https://developer.mozilla.org/docs/Web/CSS/border-image-repeat 530 | */ 531 | "border-image-repeat"?: "repeat" | "round" | "space" | "stretch"; 532 | 533 | /** 534 | * Specifies inward offsets from the top, right, bottom, and left edges of the image, dividing it into nine regions: four corners, four edges and a middle. 535 | * Syntax: {1,4} && fill? 536 | * @see https://developer.mozilla.org/docs/Web/CSS/border-image-slice 537 | */ 538 | "border-image-slice"?: "fill" | string; 539 | 540 | /** 541 | * Specifies an image to use instead of the border styles given by the 'border-style' properties and as an additional background layer for the element. If the value is 'none' or if the image cannot be displayed, the border styles will be used. 542 | * Syntax: none | 543 | * @see https://developer.mozilla.org/docs/Web/CSS/border-image-source 544 | */ 545 | "border-image-source"?: "none" | string; 546 | 547 | /** 548 | * The four values of 'border-image-width' specify offsets that are used to divide the border image area into nine parts. They represent inward distances from the top, right, bottom, and left sides of the area, respectively. 549 | * Syntax: [ | | auto ]{1,4} 550 | * @see https://developer.mozilla.org/docs/Web/CSS/border-image-width 551 | */ 552 | "border-image-width"?: "auto" | string | 0; 553 | 554 | /** 555 | * The border-inline CSS property is a shorthand property for setting the individual logical inline border property values in a single place in the style sheet. 556 | * @see https://developer.mozilla.org/docs/Web/CSS/border-inline 557 | */ 558 | "border-inline"?: string; 559 | 560 | /** 561 | * The border-inline-color CSS property defines the color of the logical inline borders of an element, which maps to a physical border color depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-color and border-bottom-color, or border-right-color and border-left-color property depending on the values defined for writing-mode, direction, and text-orientation. 562 | * @see https://developer.mozilla.org/docs/Web/CSS/border-inline-color 563 | */ 564 | "border-inline-color"?: string; 565 | 566 | /** 567 | * Logical 'border-right'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 568 | * @see https://developer.mozilla.org/docs/Web/CSS/border-inline-end 569 | */ 570 | "border-inline-end"?: string; 571 | 572 | /** 573 | * Logical 'border-right-color'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 574 | * @see https://developer.mozilla.org/docs/Web/CSS/border-inline-end-color 575 | */ 576 | "border-inline-end-color"?: string; 577 | 578 | /** 579 | * Logical 'border-right-style'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 580 | * @see https://developer.mozilla.org/docs/Web/CSS/border-inline-end-style 581 | */ 582 | "border-inline-end-style"?: string; 583 | 584 | /** 585 | * Logical 'border-right-width'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 586 | * @see https://developer.mozilla.org/docs/Web/CSS/border-inline-end-width 587 | */ 588 | "border-inline-end-width"?: string; 589 | 590 | /** 591 | * Logical 'border-left'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 592 | * @see https://developer.mozilla.org/docs/Web/CSS/border-inline-start 593 | */ 594 | "border-inline-start"?: string; 595 | 596 | /** 597 | * Logical 'border-left-color'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 598 | * @see https://developer.mozilla.org/docs/Web/CSS/border-inline-start-color 599 | */ 600 | "border-inline-start-color"?: string; 601 | 602 | /** 603 | * Logical 'border-left-style'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 604 | * @see https://developer.mozilla.org/docs/Web/CSS/border-inline-start-style 605 | */ 606 | "border-inline-start-style"?: string; 607 | 608 | /** 609 | * Logical 'border-left-width'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 610 | * @see https://developer.mozilla.org/docs/Web/CSS/border-inline-start-width 611 | */ 612 | "border-inline-start-width"?: string; 613 | 614 | /** 615 | * The border-inline-style CSS property defines the style of the logical inline borders of an element, which maps to a physical border style depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-style and border-bottom-style, or border-left-style and border-right-style properties depending on the values defined for writing-mode, direction, and text-orientation. 616 | * @see https://developer.mozilla.org/docs/Web/CSS/border-inline-style 617 | */ 618 | "border-inline-style"?: string; 619 | 620 | /** 621 | * The border-inline-width CSS property defines the width of the logical inline borders of an element, which maps to a physical border width depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-width and border-bottom-width, or border-left-width, and border-right-width property depending on the values defined for writing-mode, direction, and text-orientation. 622 | * @see https://developer.mozilla.org/docs/Web/CSS/border-inline-width 623 | */ 624 | "border-inline-width"?: string; 625 | 626 | /** 627 | * Shorthand property for setting border width, style and color 628 | * @see https://developer.mozilla.org/docs/Web/CSS/border-left 629 | */ 630 | "border-left"?: string; 631 | 632 | /** 633 | * Sets the color of the left border. 634 | * @see https://developer.mozilla.org/docs/Web/CSS/border-left-color 635 | */ 636 | "border-left-color"?: string; 637 | 638 | /** 639 | * Sets the style of the left border. 640 | * @see https://developer.mozilla.org/docs/Web/CSS/border-left-style 641 | */ 642 | "border-left-style"?: string; 643 | 644 | /** 645 | * Sets the thickness of the left border. 646 | * @see https://developer.mozilla.org/docs/Web/CSS/border-left-width 647 | */ 648 | "border-left-width"?: string; 649 | 650 | /** 651 | * Defines the radii of the outer border edge. 652 | * @see https://developer.mozilla.org/docs/Web/CSS/border-radius 653 | */ 654 | "border-radius"?: string; 655 | 656 | /** 657 | * Shorthand property for setting border width, style and color 658 | * @see https://developer.mozilla.org/docs/Web/CSS/border-right 659 | */ 660 | "border-right"?: string; 661 | 662 | /** 663 | * Sets the color of the right border. 664 | * @see https://developer.mozilla.org/docs/Web/CSS/border-right-color 665 | */ 666 | "border-right-color"?: string; 667 | 668 | /** 669 | * Sets the style of the right border. 670 | * @see https://developer.mozilla.org/docs/Web/CSS/border-right-style 671 | */ 672 | "border-right-style"?: string; 673 | 674 | /** 675 | * Sets the thickness of the right border. 676 | * @see https://developer.mozilla.org/docs/Web/CSS/border-right-width 677 | */ 678 | "border-right-width"?: string; 679 | 680 | /** 681 | * The lengths specify the distance that separates adjoining cell borders. If one length is specified, it gives both the horizontal and vertical spacing. If two are specified, the first gives the horizontal spacing and the second the vertical spacing. Lengths may not be negative. 682 | * @see https://developer.mozilla.org/docs/Web/CSS/border-spacing 683 | */ 684 | "border-spacing"?: string; 685 | 686 | /** 687 | * The border-start-end-radius CSS property defines a logical border radius on an element, which maps to a physical border radius depending on the element's writing-mode, direction, and text-orientation. 688 | * @see https://developer.mozilla.org/docs/Web/CSS/border-start-end-radius 689 | */ 690 | "border-start-end-radius"?: string; 691 | 692 | /** 693 | * The border-start-start-radius CSS property defines a logical border radius on an element, which maps to a physical border radius that depends on the element's writing-mode, direction, and text-orientation. 694 | * @see https://developer.mozilla.org/docs/Web/CSS/border-start-start-radius 695 | */ 696 | "border-start-start-radius"?: string; 697 | 698 | /** 699 | * The style of the border around edges of an element. 700 | * @see https://developer.mozilla.org/docs/Web/CSS/border-style 701 | */ 702 | "border-style"?: string; 703 | 704 | /** 705 | * Shorthand property for setting border width, style and color 706 | * @see https://developer.mozilla.org/docs/Web/CSS/border-top 707 | */ 708 | "border-top"?: string; 709 | 710 | /** 711 | * Sets the color of the top border. 712 | * @see https://developer.mozilla.org/docs/Web/CSS/border-top-color 713 | */ 714 | "border-top-color"?: string; 715 | 716 | /** 717 | * Defines the radii of the top left outer border edge. 718 | * @see https://developer.mozilla.org/docs/Web/CSS/border-top-left-radius 719 | */ 720 | "border-top-left-radius"?: string; 721 | 722 | /** 723 | * Defines the radii of the top right outer border edge. 724 | * @see https://developer.mozilla.org/docs/Web/CSS/border-top-right-radius 725 | */ 726 | "border-top-right-radius"?: string; 727 | 728 | /** 729 | * Sets the style of the top border. 730 | * @see https://developer.mozilla.org/docs/Web/CSS/border-top-style 731 | */ 732 | "border-top-style"?: string; 733 | 734 | /** 735 | * Sets the thickness of the top border. 736 | * @see https://developer.mozilla.org/docs/Web/CSS/border-top-width 737 | */ 738 | "border-top-width"?: string; 739 | 740 | /** 741 | * Shorthand that sets the four 'border-*-width' properties. If it has four values, they set top, right, bottom and left in that order. If left is missing, it is the same as right; if bottom is missing, it is the same as top; if right is missing, it is the same as top. 742 | * @see https://developer.mozilla.org/docs/Web/CSS/border-width 743 | */ 744 | "border-width"?: string; 745 | 746 | /** 747 | * Specifies how far an absolutely positioned box's bottom margin edge is offset above the bottom edge of the box's 'containing block'. 748 | * Syntax: | | auto 749 | * @see https://developer.mozilla.org/docs/Web/CSS/bottom 750 | */ 751 | bottom?: "auto" | string | 0; 752 | 753 | /** 754 | * The box-align CSS property specifies how an element aligns its contents across its layout in a perpendicular direction. The effect of the property is only visible if there is extra space in the box. 755 | * Syntax: start | center | end | baseline | stretch 756 | * @see https://developer.mozilla.org/docs/Web/CSS/box-align 757 | */ 758 | "box-align"?: "start" | "center" | "end" | "baseline" | "stretch"; 759 | 760 | /** 761 | * Specifies whether individual boxes are treated as broken pieces of one continuous box, or whether each box is individually wrapped with the border and padding. 762 | * Syntax: slice | clone 763 | * @see https://developer.mozilla.org/docs/Web/CSS/box-decoration-break 764 | */ 765 | "box-decoration-break"?: "clone" | "slice"; 766 | 767 | /** 768 | * The box-direction CSS property specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge). 769 | * Syntax: normal | reverse | inherit 770 | * @see https://developer.mozilla.org/docs/Web/CSS/box-direction 771 | */ 772 | "box-direction"?: "normal" | "reverse" | "inherit"; 773 | 774 | /** 775 | * The -moz-box-flex and -webkit-box-flex CSS properties specify how a -moz-box or -webkit-box grows to fill the box that contains it, in the direction of the containing box's layout. 776 | * @see https://developer.mozilla.org/docs/Web/CSS/box-flex 777 | */ 778 | "box-flex"?: string; 779 | 780 | /** 781 | * The box-flex-group CSS property assigns the flexbox's child elements to a flex group. 782 | * @see https://developer.mozilla.org/docs/Web/CSS/box-flex-group 783 | */ 784 | "box-flex-group"?: string; 785 | 786 | /** 787 | * The box-lines CSS property determines whether the box may have a single or multiple lines (rows for horizontally oriented boxes, columns for vertically oriented boxes). 788 | * Syntax: single | multiple 789 | * @see https://developer.mozilla.org/docs/Web/CSS/box-lines 790 | */ 791 | "box-lines"?: "single" | "multiple"; 792 | 793 | /** 794 | * The box-ordinal-group CSS property assigns the flexbox's child elements to an ordinal group. 795 | * @see https://developer.mozilla.org/docs/Web/CSS/box-ordinal-group 796 | */ 797 | "box-ordinal-group"?: string; 798 | 799 | /** 800 | * The box-orient CSS property specifies whether an element lays out its contents horizontally or vertically. 801 | * Syntax: horizontal | vertical | inline-axis | block-axis | inherit 802 | * @see https://developer.mozilla.org/docs/Web/CSS/box-orient 803 | */ 804 | "box-orient"?: 805 | | "horizontal" 806 | | "vertical" 807 | | "inline-axis" 808 | | "block-axis" 809 | | "inherit"; 810 | 811 | /** 812 | * The -moz-box-pack and -webkit-box-pack CSS properties specify how a -moz-box or -webkit-box packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box. 813 | * Syntax: start | center | end | justify 814 | * @see https://developer.mozilla.org/docs/Web/CSS/box-pack 815 | */ 816 | "box-pack"?: "start" | "center" | "end" | "justify"; 817 | 818 | /** 819 | * Attaches one or more drop-shadows to the box. The property is a comma-separated list of shadows, each specified by 2-4 length values, an optional color, and an optional 'inset' keyword. Omitted lengths are 0; omitted colors are a user agent chosen color. 820 | * Syntax: none | # 821 | * @see https://developer.mozilla.org/docs/Web/CSS/box-shadow 822 | */ 823 | "box-shadow"?: "inset" | "none" | string | 0; 824 | 825 | /** 826 | * Specifies the behavior of the 'width' and 'height' properties. 827 | * Syntax: content-box | border-box 828 | * @see https://developer.mozilla.org/docs/Web/CSS/box-sizing 829 | */ 830 | "box-sizing"?: "border-box" | "content-box"; 831 | 832 | /** 833 | * Describes the page/column/region break behavior after the generated box. 834 | * Syntax: auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region 835 | * @see https://developer.mozilla.org/docs/Web/CSS/break-after 836 | */ 837 | "break-after"?: 838 | | "always" 839 | | "auto" 840 | | "avoid" 841 | | "avoid-column" 842 | | "avoid-page" 843 | | "column" 844 | | "left" 845 | | "page" 846 | | "right"; 847 | 848 | /** 849 | * Describes the page/column/region break behavior before the generated box. 850 | * Syntax: auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region 851 | * @see https://developer.mozilla.org/docs/Web/CSS/break-before 852 | */ 853 | "break-before"?: 854 | | "always" 855 | | "auto" 856 | | "avoid" 857 | | "avoid-column" 858 | | "avoid-page" 859 | | "column" 860 | | "left" 861 | | "page" 862 | | "right"; 863 | 864 | /** 865 | * Describes the page/column/region break behavior inside the principal box. 866 | * Syntax: auto | avoid | avoid-page | avoid-column | avoid-region 867 | * @see https://developer.mozilla.org/docs/Web/CSS/break-inside 868 | */ 869 | "break-inside"?: "auto" | "avoid" | "avoid-column" | "avoid-page"; 870 | 871 | /** 872 | * Specifies the position of the caption box with respect to the table box. 873 | * Syntax: top | bottom 874 | * @see https://developer.mozilla.org/docs/Web/CSS/caption-side 875 | */ 876 | "caption-side"?: "bottom" | "top"; 877 | 878 | /** 879 | * Shorthand for setting caret-color and caret-shape. 880 | */ 881 | caret?: string; 882 | 883 | /** 884 | * Controls the color of the text insertion indicator. 885 | * Syntax: auto | 886 | * @see https://developer.mozilla.org/docs/Web/CSS/caret-color 887 | */ 888 | "caret-color"?: "auto" | string; 889 | 890 | /** 891 | * Specifies the desired shape of the text insertion caret. 892 | * Syntax: auto | bar | block | underscore 893 | */ 894 | "caret-shape"?: "auto" | "bar" | "block" | "underscore"; 895 | 896 | /** 897 | * Indicates which sides of an element's box(es) may not be adjacent to an earlier floating box. The 'clear' property does not consider floats inside the element itself or in other block formatting contexts. 898 | * Syntax: none | left | right | both | inline-start | inline-end 899 | * @see https://developer.mozilla.org/docs/Web/CSS/clear 900 | */ 901 | clear?: "both" | "left" | "none" | "right"; 902 | 903 | /** 904 | * Deprecated. Use the 'clip-path' property when support allows. Defines the visible portion of an element's box. 905 | * Syntax: | auto 906 | * @see https://developer.mozilla.org/docs/Web/CSS/clip 907 | */ 908 | clip?: "auto" | "rect()" | string; 909 | 910 | /** 911 | * Specifies a clipping path where everything inside the path is visible and everything outside is clipped out. 912 | * Syntax: | [ || ] | none 913 | * @see https://developer.mozilla.org/docs/Web/CSS/clip-path 914 | */ 915 | "clip-path"?: "none" | "url()" | string; 916 | 917 | /** 918 | * Indicates the algorithm which is to be used to determine what parts of the canvas are included inside the shape. 919 | * Syntax: nonzero | evenodd 920 | * @see https://developer.mozilla.org/docs/Web/CSS/clip-rule 921 | */ 922 | "clip-rule"?: "evenodd" | "nonzero"; 923 | 924 | /** 925 | * Sets the color of an element's text 926 | * @see https://developer.mozilla.org/docs/Web/CSS/color 927 | */ 928 | color?: string; 929 | 930 | /** 931 | * Specifies the color space for imaging operations performed via filter effects. 932 | * Syntax: auto | sRGB | linearRGB 933 | * @see https://developer.mozilla.org/docs/Web/CSS/color-interpolation-filters 934 | */ 935 | "color-interpolation-filters"?: "auto" | "linearRGB" | "sRGB"; 936 | 937 | /** 938 | * The color-scheme CSS property allows an element to indicate which color schemes it can comfortably be rendered in. 939 | * @see https://developer.mozilla.org/docs/Web/CSS/color-scheme 940 | */ 941 | "color-scheme"?: string; 942 | 943 | /** 944 | * Describes the optimal number of columns into which the content of the element will be flowed. 945 | * Syntax: | auto 946 | * @see https://developer.mozilla.org/docs/Web/CSS/column-count 947 | */ 948 | "column-count"?: "auto" | string | number; 949 | 950 | /** 951 | * In continuous media, this property will only be consulted if the length of columns has been constrained. Otherwise, columns will automatically be balanced. 952 | * Syntax: auto | balance 953 | * @see https://developer.mozilla.org/docs/Web/CSS/column-fill 954 | */ 955 | "column-fill"?: "auto" | "balance"; 956 | 957 | /** 958 | * Sets the gap between columns. If there is a column rule between columns, it will appear in the middle of the gap. 959 | * Syntax: normal | 960 | * @see https://developer.mozilla.org/docs/Web/CSS/column-gap 961 | */ 962 | "column-gap"?: "normal" | string | 0; 963 | 964 | /** 965 | * Shorthand for setting 'column-rule-width', 'column-rule-style', and 'column-rule-color' at the same place in the style sheet. Omitted values are set to their initial values. 966 | * @see https://developer.mozilla.org/docs/Web/CSS/column-rule 967 | */ 968 | "column-rule"?: string; 969 | 970 | /** 971 | * Sets the color of the column rule 972 | * @see https://developer.mozilla.org/docs/Web/CSS/column-rule-color 973 | */ 974 | "column-rule-color"?: string; 975 | 976 | /** 977 | * Sets the style of the rule between columns of an element. 978 | * @see https://developer.mozilla.org/docs/Web/CSS/column-rule-style 979 | */ 980 | "column-rule-style"?: string; 981 | 982 | /** 983 | * Sets the width of the rule between columns. Negative values are not allowed. 984 | * @see https://developer.mozilla.org/docs/Web/CSS/column-rule-width 985 | */ 986 | "column-rule-width"?: string; 987 | 988 | /** 989 | * Describes the page/column break behavior after the generated box. 990 | * Syntax: none | all 991 | * @see https://developer.mozilla.org/docs/Web/CSS/column-span 992 | */ 993 | "column-span"?: "all" | "none"; 994 | 995 | /** 996 | * Describes the width of columns in multicol elements. 997 | * Syntax: | auto 998 | * @see https://developer.mozilla.org/docs/Web/CSS/column-width 999 | */ 1000 | "column-width"?: "auto" | string | 0; 1001 | 1002 | /** 1003 | * A shorthand property which sets both 'column-width' and 'column-count'. 1004 | * Syntax: <'column-width'> || <'column-count'> 1005 | * @see https://developer.mozilla.org/docs/Web/CSS/columns 1006 | */ 1007 | columns?: "auto" | string | number | 0; 1008 | 1009 | /** 1010 | * Indicates that an element and its contents are, as much as possible, independent of the rest of the document tree. 1011 | * Syntax: none | strict | content | [ [ size || inline-size ] || layout || style || paint ] 1012 | * @see https://developer.mozilla.org/docs/Web/CSS/contain 1013 | */ 1014 | contain?: 1015 | | "none" 1016 | | "strict" 1017 | | "content" 1018 | | "size" 1019 | | "layout" 1020 | | "style" 1021 | | "paint"; 1022 | 1023 | /** 1024 | * Block size of an element when the element is subject to size containment. 1025 | * @see https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-block-size 1026 | */ 1027 | "contain-intrinsic-block-size"?: string; 1028 | 1029 | /** 1030 | * Height of an element when the element is subject to size containment. 1031 | * @see https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-height 1032 | */ 1033 | "contain-intrinsic-height"?: string; 1034 | 1035 | /** 1036 | * Inline size of an element when the element is subject to size containment. 1037 | * @see https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-inline-size 1038 | */ 1039 | "contain-intrinsic-inline-size"?: string; 1040 | 1041 | /** 1042 | * Size of an element when the element is subject to size containment. 1043 | * @see https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-size 1044 | */ 1045 | "contain-intrinsic-size"?: string; 1046 | 1047 | /** 1048 | * Width of an element when the element is subject to size containment. 1049 | * @see https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-width 1050 | */ 1051 | "contain-intrinsic-width"?: string; 1052 | 1053 | /** 1054 | * The container shorthand CSS property establishes the element as a query container and specifies the name or name for the containment context used in a container query. 1055 | * @see https://developer.mozilla.org/docs/Web/CSS/container 1056 | */ 1057 | container?: string; 1058 | 1059 | /** 1060 | * The container-name CSS property specifies a list of query container names used by the @container at-rule in a container query. 1061 | * @see https://developer.mozilla.org/docs/Web/CSS/container-name 1062 | */ 1063 | "container-name"?: string; 1064 | 1065 | /** 1066 | * The container-type CSS property is used to define the type of containment used in a container query. 1067 | * @see https://developer.mozilla.org/docs/Web/CSS/container-type 1068 | */ 1069 | "container-type"?: string; 1070 | 1071 | /** 1072 | * Determines which page-based occurrence of a given element is applied to a counter or string value. 1073 | * Syntax: normal | none | [ | ] [/ [ | ]+ ]? 1074 | * @see https://developer.mozilla.org/docs/Web/CSS/content 1075 | */ 1076 | content?: 1077 | | "attr()" 1078 | | "counter(name)" 1079 | | "icon" 1080 | | "none" 1081 | | "normal" 1082 | | "url()" 1083 | | string; 1084 | 1085 | /** 1086 | * Controls whether or not an element renders its contents at all, along with forcing a strong set of containments, allowing user agents to potentially omit large swathes of layout and rendering work until it becomes needed. 1087 | * Syntax: visible | auto | hidden 1088 | * @see https://developer.mozilla.org/docs/Web/CSS/content-visibility 1089 | */ 1090 | "content-visibility"?: "visible" | "auto" | "hidden"; 1091 | 1092 | /** 1093 | * Manipulate the value of existing counters. 1094 | * Syntax: [ ? ]+ | none 1095 | * @see https://developer.mozilla.org/docs/Web/CSS/counter-increment 1096 | */ 1097 | "counter-increment"?: "none" | string | number; 1098 | 1099 | /** 1100 | * Property accepts one or more names of counters (identifiers), each one optionally followed by an integer. The integer gives the value that the counter is set to on each occurrence of the element. 1101 | * Syntax: [ ? | ? ]+ | none 1102 | * @see https://developer.mozilla.org/docs/Web/CSS/counter-reset 1103 | */ 1104 | "counter-reset"?: "none" | string | number; 1105 | 1106 | /** 1107 | * The counter-set CSS property sets a CSS counter to a given value. It manipulates the value of existing counters, and will only create new counters if there isn't already a counter of the given name on the element. 1108 | * @see https://developer.mozilla.org/docs/Web/CSS/counter-set 1109 | */ 1110 | "counter-set"?: string; 1111 | 1112 | /** 1113 | * Allows control over cursor appearance in an element 1114 | * Syntax: [ [ [ ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out | grab | grabbing ] ] 1115 | * @see https://developer.mozilla.org/docs/Web/CSS/cursor 1116 | */ 1117 | cursor?: 1118 | | "alias" 1119 | | "all-scroll" 1120 | | "auto" 1121 | | "cell" 1122 | | "col-resize" 1123 | | "context-menu" 1124 | | "copy" 1125 | | "crosshair" 1126 | | "default" 1127 | | "e-resize" 1128 | | "ew-resize" 1129 | | "grab" 1130 | | "grabbing" 1131 | | "help" 1132 | | "move" 1133 | | "-moz-grab" 1134 | | "-moz-grabbing" 1135 | | "-moz-zoom-in" 1136 | | "-moz-zoom-out" 1137 | | "ne-resize" 1138 | | "nesw-resize" 1139 | | "no-drop" 1140 | | "none" 1141 | | "not-allowed" 1142 | | "n-resize" 1143 | | "ns-resize" 1144 | | "nw-resize" 1145 | | "nwse-resize" 1146 | | "pointer" 1147 | | "progress" 1148 | | "row-resize" 1149 | | "se-resize" 1150 | | "s-resize" 1151 | | "sw-resize" 1152 | | "text" 1153 | | "vertical-text" 1154 | | "wait" 1155 | | "-webkit-grab" 1156 | | "-webkit-grabbing" 1157 | | "-webkit-zoom-in" 1158 | | "-webkit-zoom-out" 1159 | | "w-resize" 1160 | | "zoom-in" 1161 | | "zoom-out" 1162 | | string; 1163 | 1164 | /** 1165 | * The cx CSS property defines the x-axis center point of an SVG circle or ellipse element. If present, it overrides the element's cx attribute. 1166 | * @see https://developer.mozilla.org/docs/Web/CSS/cx 1167 | */ 1168 | cx?: string; 1169 | 1170 | /** 1171 | * The cy CSS property defines the y-axis center point of an SVG circle or ellipse elements. If present, it overrides the element's cy attribute. 1172 | * @see https://developer.mozilla.org/docs/Web/CSS/cy 1173 | */ 1174 | cy?: string; 1175 | 1176 | /** 1177 | * The d CSS property defines a path to be drawn by the SVG path element. If present, it overrides the element's d attribute. 1178 | * @see https://developer.mozilla.org/docs/Web/CSS/d 1179 | */ 1180 | d?: string; 1181 | 1182 | /** 1183 | * Specifies the inline base direction or directionality of any bidi paragraph, embedding, isolate, or override established by the box. Note: for HTML content use the 'dir' attribute and 'bdo' element rather than this property. 1184 | * Syntax: ltr | rtl 1185 | * @see https://developer.mozilla.org/docs/Web/CSS/direction 1186 | */ 1187 | direction?: "ltr" | "rtl"; 1188 | 1189 | /** 1190 | * In combination with 'float' and 'position', determines the type of box or boxes that are generated for an element. 1191 | * Syntax: [ || ] | | | | 1192 | * @see https://developer.mozilla.org/docs/Web/CSS/display 1193 | */ 1194 | display?: 1195 | | "block" 1196 | | "contents" 1197 | | "flex" 1198 | | "flexbox" 1199 | | "flow-root" 1200 | | "grid" 1201 | | "inline" 1202 | | "inline-block" 1203 | | "inline-flex" 1204 | | "inline-flexbox" 1205 | | "inline-table" 1206 | | "list-item" 1207 | | "-moz-box" 1208 | | "-moz-deck" 1209 | | "-moz-grid" 1210 | | "-moz-grid-group" 1211 | | "-moz-grid-line" 1212 | | "-moz-groupbox" 1213 | | "-moz-inline-box" 1214 | | "-moz-inline-grid" 1215 | | "-moz-inline-stack" 1216 | | "-moz-marker" 1217 | | "-moz-popup" 1218 | | "-moz-stack" 1219 | | "-ms-flexbox" 1220 | | "-ms-grid" 1221 | | "-ms-inline-flexbox" 1222 | | "-ms-inline-grid" 1223 | | "none" 1224 | | "ruby" 1225 | | "ruby-base" 1226 | | "ruby-base-container" 1227 | | "ruby-text" 1228 | | "ruby-text-container" 1229 | | "run-in" 1230 | | "table" 1231 | | "table-caption" 1232 | | "table-cell" 1233 | | "table-column" 1234 | | "table-column-group" 1235 | | "table-footer-group" 1236 | | "table-header-group" 1237 | | "table-row" 1238 | | "table-row-group" 1239 | | "-webkit-box" 1240 | | "-webkit-flex" 1241 | | "-webkit-inline-box" 1242 | | "-webkit-inline-flex" 1243 | | string; 1244 | 1245 | /** 1246 | * The dominant-baseline CSS property specifies the specific baseline used to align the box's text and inline-level contents. It also indicates the default alignment baseline of any boxes participating in baseline alignment in the box's alignment context. If present, it overrides the shape's dominant-baseline attribute. 1247 | * Syntax: auto | text-bottom | alphabetic | ideographic | middle | central | mathematical | hanging | text-top 1248 | * @see https://developer.mozilla.org/docs/Web/CSS/dominant-baseline 1249 | */ 1250 | "dominant-baseline"?: 1251 | | "auto" 1252 | | "text-bottom" 1253 | | "alphabetic" 1254 | | "ideographic" 1255 | | "middle" 1256 | | "central" 1257 | | "mathematical" 1258 | | "hanging" 1259 | | "text-top"; 1260 | 1261 | /** 1262 | * In the separated borders model, this property controls the rendering of borders and backgrounds around cells that have no visible content. 1263 | * Syntax: show | hide 1264 | * @see https://developer.mozilla.org/docs/Web/CSS/empty-cells 1265 | */ 1266 | "empty-cells"?: "hide" | "-moz-show-background" | "show"; 1267 | 1268 | /** 1269 | * Deprecated. Use 'isolation' property instead when support allows. Specifies how the accumulation of the background image is managed. 1270 | */ 1271 | "enable-background"?: "accumulate" | "new" | number | 0; 1272 | 1273 | /** 1274 | * The field-sizing CSS property enables you to control the sizing behavior of elements that are given a default preferred size, such as form control elements. This property enables you to override the default sizing behavior, allowing form controls to adjust in size to fit their contents. 1275 | * Syntax: content | fixed 1276 | * @see https://developer.mozilla.org/docs/Web/CSS/field-sizing 1277 | */ 1278 | "field-sizing"?: "content" | "fixed"; 1279 | 1280 | /** 1281 | * Paints the interior of the given graphical element. 1282 | * Syntax: 1283 | * @see https://developer.mozilla.org/docs/Web/CSS/fill 1284 | */ 1285 | fill?: "url()" | "none" | string; 1286 | 1287 | /** 1288 | * Specifies the opacity of the painting operation used to paint the interior the current object. 1289 | * @see https://developer.mozilla.org/docs/Web/CSS/fill-opacity 1290 | */ 1291 | "fill-opacity"?: string; 1292 | 1293 | /** 1294 | * Indicates the algorithm (or winding rule) which is to be used to determine what parts of the canvas are included inside the shape. 1295 | * Syntax: nonzero | evenodd 1296 | * @see https://developer.mozilla.org/docs/Web/CSS/fill-rule 1297 | */ 1298 | "fill-rule"?: "evenodd" | "nonzero"; 1299 | 1300 | /** 1301 | * Processes an element's rendering before it is displayed in the document, by applying one or more filter effects. 1302 | * Syntax: none | 1303 | * @see https://developer.mozilla.org/docs/Web/CSS/filter 1304 | */ 1305 | filter?: 1306 | | "none" 1307 | | "blur()" 1308 | | "brightness()" 1309 | | "contrast()" 1310 | | "drop-shadow()" 1311 | | "grayscale()" 1312 | | "hue-rotate()" 1313 | | "invert()" 1314 | | "opacity()" 1315 | | "saturate()" 1316 | | "sepia()" 1317 | | "url()" 1318 | | string; 1319 | 1320 | /** 1321 | * Specifies the components of a flexible length: the flex grow factor and flex shrink factor, and the flex basis. 1322 | * Syntax: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ] 1323 | * @see https://developer.mozilla.org/docs/Web/CSS/flex 1324 | */ 1325 | flex?: "auto" | "content" | "none" | string | 0; 1326 | 1327 | /** 1328 | * Sets the flex basis. 1329 | * Syntax: content | <'width'> 1330 | * @see https://developer.mozilla.org/docs/Web/CSS/flex-basis 1331 | */ 1332 | "flex-basis"?: "auto" | "content" | string | 0; 1333 | 1334 | /** 1335 | * Specifies how flex items are placed in the flex container, by setting the direction of the flex container's main axis. 1336 | * Syntax: row | row-reverse | column | column-reverse 1337 | * @see https://developer.mozilla.org/docs/Web/CSS/flex-direction 1338 | */ 1339 | "flex-direction"?: "column" | "column-reverse" | "row" | "row-reverse"; 1340 | 1341 | /** 1342 | * Specifies how flexbox items are placed in the flexbox. 1343 | * Syntax: <'flex-direction'> || <'flex-wrap'> 1344 | * @see https://developer.mozilla.org/docs/Web/CSS/flex-flow 1345 | */ 1346 | "flex-flow"?: 1347 | | "column" 1348 | | "column-reverse" 1349 | | "nowrap" 1350 | | "row" 1351 | | "row-reverse" 1352 | | "wrap" 1353 | | "wrap-reverse" 1354 | | string; 1355 | 1356 | /** 1357 | * Sets the flex grow factor. Negative numbers are invalid. 1358 | * @see https://developer.mozilla.org/docs/Web/CSS/flex-grow 1359 | */ 1360 | "flex-grow"?: string; 1361 | 1362 | /** 1363 | * Sets the flex shrink factor. Negative numbers are invalid. 1364 | * @see https://developer.mozilla.org/docs/Web/CSS/flex-shrink 1365 | */ 1366 | "flex-shrink"?: string; 1367 | 1368 | /** 1369 | * Controls whether the flex container is single-line or multi-line, and the direction of the cross-axis, which determines the direction new lines are stacked in. 1370 | * Syntax: nowrap | wrap | wrap-reverse 1371 | * @see https://developer.mozilla.org/docs/Web/CSS/flex-wrap 1372 | */ 1373 | "flex-wrap"?: "nowrap" | "wrap" | "wrap-reverse"; 1374 | 1375 | /** 1376 | * Specifies how a box should be floated. It may be set for any element, but only applies to elements that generate boxes that are not absolutely positioned. 1377 | * Syntax: left | right | none | inline-start | inline-end 1378 | * @see https://developer.mozilla.org/docs/Web/CSS/float 1379 | */ 1380 | float?: "inline-end" | "inline-start" | "left" | "none" | "right"; 1381 | 1382 | /** 1383 | * Indicates what color to use to flood the current filter primitive subregion. 1384 | * @see https://developer.mozilla.org/docs/Web/CSS/flood-color 1385 | */ 1386 | "flood-color"?: string; 1387 | 1388 | /** 1389 | * Indicates what opacity to use to flood the current filter primitive subregion. 1390 | * @see https://developer.mozilla.org/docs/Web/CSS/flood-opacity 1391 | */ 1392 | "flood-opacity"?: string; 1393 | 1394 | /** 1395 | * Shorthand property for setting 'font-style', 'font-variant', 'font-weight', 'font-size', 'line-height', and 'font-family', at the same place in the style sheet. The syntax of this property is based on a traditional typographical shorthand notation to set multiple properties related to fonts. 1396 | * Syntax: [ [ <'font-style'> || || <'font-weight'> || <'font-stretch'> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'> ] | caption | icon | menu | message-box | small-caption | status-bar 1397 | * @see https://developer.mozilla.org/docs/Web/CSS/font 1398 | */ 1399 | font?: 1400 | | "100" 1401 | | "200" 1402 | | "300" 1403 | | "400" 1404 | | "500" 1405 | | "600" 1406 | | "700" 1407 | | "800" 1408 | | "900" 1409 | | "bold" 1410 | | "bolder" 1411 | | "caption" 1412 | | "icon" 1413 | | "italic" 1414 | | "large" 1415 | | "larger" 1416 | | "lighter" 1417 | | "medium" 1418 | | "menu" 1419 | | "message-box" 1420 | | "normal" 1421 | | "oblique" 1422 | | "small" 1423 | | "small-caps" 1424 | | "small-caption" 1425 | | "smaller" 1426 | | "status-bar" 1427 | | "x-large" 1428 | | "x-small" 1429 | | "xx-large" 1430 | | "xx-small" 1431 | | string; 1432 | 1433 | /** 1434 | * Kerning is the contextual adjustment of inter-glyph spacing. This property controls metric kerning, kerning that utilizes adjustment data contained in the font. 1435 | * Syntax: auto | normal | none 1436 | * @see https://developer.mozilla.org/docs/Web/CSS/font-kerning 1437 | */ 1438 | "font-kerning"?: "auto" | "none" | "normal"; 1439 | 1440 | /** 1441 | * The value of 'normal' implies that when rendering with OpenType fonts the language of the document is used to infer the OpenType language system, used to select language specific features when rendering. 1442 | * Syntax: normal | 1443 | * @see https://developer.mozilla.org/docs/Web/CSS/font-language-override 1444 | */ 1445 | "font-language-override"?: "normal" | string; 1446 | 1447 | /** 1448 | * The font-optical-sizing CSS property allows developers to control whether browsers render text with slightly differing visual representations to optimize viewing at different sizes, or not. This only works for fonts that have an optical size variation axis. 1449 | * Syntax: auto | none 1450 | * @see https://developer.mozilla.org/docs/Web/CSS/font-optical-sizing 1451 | */ 1452 | "font-optical-sizing"?: "auto" | "none"; 1453 | 1454 | /** 1455 | * The font-palette CSS property allows specifying one of the many palettes contained in a font that a user agent should use for the font. Users can also override the values in a palette or create a new palette by using the @font-palette-values at-rule. 1456 | * @see https://developer.mozilla.org/docs/Web/CSS/font-palette 1457 | */ 1458 | "font-palette"?: string; 1459 | 1460 | /** 1461 | * Indicates the desired height of glyphs from the font. For scalable fonts, the font-size is a scale factor applied to the EM unit of the font. (Note that certain glyphs may bleed outside their EM box.) For non-scalable fonts, the font-size is converted into absolute units and matched against the declared font-size of the font, using the same absolute coordinate space for both of the matched values. 1462 | * Syntax: | | | math 1463 | * @see https://developer.mozilla.org/docs/Web/CSS/font-size 1464 | */ 1465 | "font-size"?: 1466 | | "large" 1467 | | "larger" 1468 | | "medium" 1469 | | "small" 1470 | | "smaller" 1471 | | "x-large" 1472 | | "x-small" 1473 | | "xx-large" 1474 | | "xx-small" 1475 | | string 1476 | | 0; 1477 | 1478 | /** 1479 | * Preserves the readability of text when font fallback occurs by adjusting the font-size so that the x-height is the same regardless of the font used. 1480 | * Syntax: none | [ ex-height | cap-height | ch-width | ic-width | ic-height ]? [ from-font | ] 1481 | * @see https://developer.mozilla.org/docs/Web/CSS/font-size-adjust 1482 | */ 1483 | "font-size-adjust"?: "none" | string; 1484 | 1485 | /** 1486 | * Controls whether user agents are allowed to synthesize bold or oblique font faces when a font family lacks bold or italic faces. 1487 | * Syntax: none | [ weight || style || small-caps || position] 1488 | * @see https://developer.mozilla.org/docs/Web/CSS/font-synthesis 1489 | */ 1490 | "font-synthesis"?: "none" | "style" | "weight"; 1491 | 1492 | /** 1493 | * The font-synthesis-position CSS property lets you specify whether or not a browser may synthesize the subscript and superscript "position" typefaces when they are missing in a font family, while using font-variant-position to set the positions. 1494 | * Syntax: auto | none 1495 | * @see https://developer.mozilla.org/docs/Web/CSS/font-synthesis-position 1496 | */ 1497 | "font-synthesis-position"?: "auto" | "none"; 1498 | 1499 | /** 1500 | * The font-synthesis-small-caps CSS property lets you specify whether or not the browser may synthesize small-caps typeface when it is missing in a font family. Small-caps glyphs typically use the form of uppercase letters but are reduced to the size of lowercase letters. 1501 | * Syntax: auto | none 1502 | * @see https://developer.mozilla.org/docs/Web/CSS/font-synthesis-small-caps 1503 | */ 1504 | "font-synthesis-small-caps"?: "auto" | "none"; 1505 | 1506 | /** 1507 | * The font-synthesis-style CSS property lets you specify whether or not the browser may synthesize the oblique typeface when it is missing in a font family. 1508 | * Syntax: auto | none 1509 | * @see https://developer.mozilla.org/docs/Web/CSS/font-synthesis-style 1510 | */ 1511 | "font-synthesis-style"?: "auto" | "none"; 1512 | 1513 | /** 1514 | * The font-synthesis-weight CSS property lets you specify whether or not the browser may synthesize the bold typeface when it is missing in a font family. 1515 | * Syntax: auto | none 1516 | * @see https://developer.mozilla.org/docs/Web/CSS/font-synthesis-weight 1517 | */ 1518 | "font-synthesis-weight"?: "auto" | "none"; 1519 | 1520 | /** 1521 | * Specifies variant representations of the font 1522 | * Syntax: normal | none | [ || || || || stylistic( ) || historical-forms || styleset( # ) || character-variant( # ) || swash( ) || ornaments( ) || annotation( ) || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || || || || ordinal || slashed-zero || || || ruby ] 1523 | * @see https://developer.mozilla.org/docs/Web/CSS/font-variant 1524 | */ 1525 | "font-variant"?: "normal" | "small-caps" | string; 1526 | 1527 | /** 1528 | * For any given character, fonts can provide a variety of alternate glyphs in addition to the default glyph for that character. This property provides control over the selection of these alternate glyphs. 1529 | * Syntax: normal | [ stylistic( ) || historical-forms || styleset( # ) || character-variant( # ) || swash( ) || ornaments( ) || annotation( ) ] 1530 | * @see https://developer.mozilla.org/docs/Web/CSS/font-variant-alternates 1531 | */ 1532 | "font-variant-alternates"?: 1533 | | "annotation()" 1534 | | "character-variant()" 1535 | | "historical-forms" 1536 | | "normal" 1537 | | "ornaments()" 1538 | | "styleset()" 1539 | | "stylistic()" 1540 | | "swash()" 1541 | | string; 1542 | 1543 | /** 1544 | * Specifies control over capitalized forms. 1545 | * Syntax: normal | small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps 1546 | * @see https://developer.mozilla.org/docs/Web/CSS/font-variant-caps 1547 | */ 1548 | "font-variant-caps"?: 1549 | | "all-petite-caps" 1550 | | "all-small-caps" 1551 | | "normal" 1552 | | "petite-caps" 1553 | | "small-caps" 1554 | | "titling-caps" 1555 | | "unicase"; 1556 | 1557 | /** 1558 | * Allows control of glyph substitute and positioning in East Asian text. 1559 | * Syntax: normal | [ || || ruby ] 1560 | * @see https://developer.mozilla.org/docs/Web/CSS/font-variant-east-asian 1561 | */ 1562 | "font-variant-east-asian"?: 1563 | | "full-width" 1564 | | "jis04" 1565 | | "jis78" 1566 | | "jis83" 1567 | | "jis90" 1568 | | "normal" 1569 | | "proportional-width" 1570 | | "ruby" 1571 | | "simplified" 1572 | | "traditional" 1573 | | string; 1574 | 1575 | /** 1576 | * The font-variant-emoji CSS property specifies the default presentation style for displaying emojis. 1577 | * Syntax: normal | text | emoji | unicode 1578 | * @see https://developer.mozilla.org/docs/Web/CSS/font-variant-emoji 1579 | */ 1580 | "font-variant-emoji"?: "normal" | "text" | "emoji" | "unicode"; 1581 | 1582 | /** 1583 | * Specifies control over which ligatures are enabled or disabled. A value of 'normal' implies that the defaults set by the font are used. 1584 | * Syntax: normal | none | [ || || || ] 1585 | * @see https://developer.mozilla.org/docs/Web/CSS/font-variant-ligatures 1586 | */ 1587 | "font-variant-ligatures"?: 1588 | | "additional-ligatures" 1589 | | "common-ligatures" 1590 | | "contextual" 1591 | | "discretionary-ligatures" 1592 | | "historical-ligatures" 1593 | | "no-additional-ligatures" 1594 | | "no-common-ligatures" 1595 | | "no-contextual" 1596 | | "no-discretionary-ligatures" 1597 | | "no-historical-ligatures" 1598 | | "none" 1599 | | "normal" 1600 | | string; 1601 | 1602 | /** 1603 | * Specifies control over numerical forms. 1604 | * Syntax: normal | [ || || || ordinal || slashed-zero ] 1605 | * @see https://developer.mozilla.org/docs/Web/CSS/font-variant-numeric 1606 | */ 1607 | "font-variant-numeric"?: 1608 | | "diagonal-fractions" 1609 | | "lining-nums" 1610 | | "normal" 1611 | | "oldstyle-nums" 1612 | | "ordinal" 1613 | | "proportional-nums" 1614 | | "slashed-zero" 1615 | | "stacked-fractions" 1616 | | "tabular-nums" 1617 | | string; 1618 | 1619 | /** 1620 | * Specifies the vertical position 1621 | * Syntax: normal | sub | super 1622 | * @see https://developer.mozilla.org/docs/Web/CSS/font-variant-position 1623 | */ 1624 | "font-variant-position"?: "normal" | "sub" | "super"; 1625 | 1626 | /** 1627 | * Allows authors to opt certain elements out of forced colors mode. This then restores the control of those values to CSS 1628 | * Syntax: auto | none | preserve-parent-color 1629 | * @see https://developer.mozilla.org/docs/Web/CSS/forced-color-adjust 1630 | */ 1631 | "forced-color-adjust"?: "auto" | "none" | "preserve-parent-color"; 1632 | 1633 | /** 1634 | * The gap CSS property is a shorthand property for row-gap and column-gap specifying the gutters between grid rows and columns. 1635 | * @see https://developer.mozilla.org/docs/Web/CSS/gap 1636 | */ 1637 | gap?: string; 1638 | 1639 | /** 1640 | * Controls glyph orientation when the inline-progression-direction is horizontal. 1641 | */ 1642 | "glyph-orientation-horizontal"?: string; 1643 | 1644 | /** 1645 | * Controls glyph orientation when the inline-progression-direction is vertical. 1646 | */ 1647 | "glyph-orientation-vertical"?: "auto"; 1648 | 1649 | /** 1650 | * The grid CSS property is a shorthand property that sets all of the explicit grid properties ('grid-template-rows', 'grid-template-columns', and 'grid-template-areas'), and all the implicit grid properties ('grid-auto-rows', 'grid-auto-columns', and 'grid-auto-flow'), in a single declaration. 1651 | * @see https://developer.mozilla.org/docs/Web/CSS/grid 1652 | */ 1653 | grid?: string; 1654 | 1655 | /** 1656 | * Determine a grid item's size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement. Shorthand for 'grid-row-start', 'grid-column-start', 'grid-row-end', and 'grid-column-end'. 1657 | * Syntax: [ / ]{0,3} 1658 | * @see https://developer.mozilla.org/docs/Web/CSS/grid-area 1659 | */ 1660 | "grid-area"?: "auto" | "span" | string | number; 1661 | 1662 | /** 1663 | * Specifies the size of implicitly created columns. 1664 | * Syntax: + 1665 | * @see https://developer.mozilla.org/docs/Web/CSS/grid-auto-columns 1666 | */ 1667 | "grid-auto-columns"?: 1668 | | "min-content" 1669 | | "max-content" 1670 | | "auto" 1671 | | "minmax()" 1672 | | string 1673 | | 0; 1674 | 1675 | /** 1676 | * Controls how the auto-placement algorithm works, specifying exactly how auto-placed items get flowed into the grid. 1677 | * Syntax: [ row | column ] || dense 1678 | * @see https://developer.mozilla.org/docs/Web/CSS/grid-auto-flow 1679 | */ 1680 | "grid-auto-flow"?: "row" | "column" | "dense"; 1681 | 1682 | /** 1683 | * Specifies the size of implicitly created rows. 1684 | * Syntax: + 1685 | * @see https://developer.mozilla.org/docs/Web/CSS/grid-auto-rows 1686 | */ 1687 | "grid-auto-rows"?: 1688 | | "min-content" 1689 | | "max-content" 1690 | | "auto" 1691 | | "minmax()" 1692 | | string 1693 | | 0; 1694 | 1695 | /** 1696 | * Shorthand for 'grid-column-start' and 'grid-column-end'. 1697 | * Syntax: [ / ]? 1698 | * @see https://developer.mozilla.org/docs/Web/CSS/grid-column 1699 | */ 1700 | "grid-column"?: "auto" | "span" | string | number; 1701 | 1702 | /** 1703 | * Determine a grid item's size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement. 1704 | * Syntax: 1705 | * @see https://developer.mozilla.org/docs/Web/CSS/grid-column-end 1706 | */ 1707 | "grid-column-end"?: "auto" | "span" | string | number; 1708 | 1709 | /** 1710 | * Specifies the gutters between grid columns. Replaced by 'column-gap' property. 1711 | */ 1712 | "grid-column-gap"?: string; 1713 | 1714 | /** 1715 | * Determine a grid item's size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement. 1716 | * Syntax: 1717 | * @see https://developer.mozilla.org/docs/Web/CSS/grid-column-start 1718 | */ 1719 | "grid-column-start"?: "auto" | "span" | string | number; 1720 | 1721 | /** 1722 | * Shorthand that specifies the gutters between grid columns and grid rows in one declaration. Replaced by 'gap' property. 1723 | */ 1724 | "grid-gap"?: string; 1725 | 1726 | /** 1727 | * Shorthand for 'grid-row-start' and 'grid-row-end'. 1728 | * Syntax: [ / ]? 1729 | * @see https://developer.mozilla.org/docs/Web/CSS/grid-row 1730 | */ 1731 | "grid-row"?: "auto" | "span" | string | number; 1732 | 1733 | /** 1734 | * Determine a grid item's size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement. 1735 | * Syntax: 1736 | * @see https://developer.mozilla.org/docs/Web/CSS/grid-row-end 1737 | */ 1738 | "grid-row-end"?: "auto" | "span" | string | number; 1739 | 1740 | /** 1741 | * Specifies the gutters between grid rows. Replaced by 'row-gap' property. 1742 | */ 1743 | "grid-row-gap"?: string; 1744 | 1745 | /** 1746 | * Determine a grid item's size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement. 1747 | * Syntax: 1748 | * @see https://developer.mozilla.org/docs/Web/CSS/grid-row-start 1749 | */ 1750 | "grid-row-start"?: "auto" | "span" | string | number; 1751 | 1752 | /** 1753 | * Shorthand for setting grid-template-columns, grid-template-rows, and grid-template-areas in a single declaration. 1754 | * Syntax: none | [ <'grid-template-rows'> / <'grid-template-columns'> ] | [ ? ? ? ]+ [ / ]? 1755 | * @see https://developer.mozilla.org/docs/Web/CSS/grid-template 1756 | */ 1757 | "grid-template"?: 1758 | | "none" 1759 | | "min-content" 1760 | | "max-content" 1761 | | "auto" 1762 | | "subgrid" 1763 | | "minmax()" 1764 | | "repeat()" 1765 | | string 1766 | | 0; 1767 | 1768 | /** 1769 | * Specifies named grid areas, which are not associated with any particular grid item, but can be referenced from the grid-placement properties. 1770 | * Syntax: none | + 1771 | * @see https://developer.mozilla.org/docs/Web/CSS/grid-template-areas 1772 | */ 1773 | "grid-template-areas"?: "none" | string; 1774 | 1775 | /** 1776 | * specifies, as a space-separated track list, the line names and track sizing functions of the grid. 1777 | * Syntax: none | | | subgrid ? 1778 | * @see https://developer.mozilla.org/docs/Web/CSS/grid-template-columns 1779 | */ 1780 | "grid-template-columns"?: 1781 | | "none" 1782 | | "min-content" 1783 | | "max-content" 1784 | | "auto" 1785 | | "subgrid" 1786 | | "minmax()" 1787 | | "repeat()" 1788 | | string 1789 | | 0; 1790 | 1791 | /** 1792 | * specifies, as a space-separated track list, the line names and track sizing functions of the grid. 1793 | * Syntax: none | | | subgrid ? 1794 | * @see https://developer.mozilla.org/docs/Web/CSS/grid-template-rows 1795 | */ 1796 | "grid-template-rows"?: 1797 | | "none" 1798 | | "min-content" 1799 | | "max-content" 1800 | | "auto" 1801 | | "subgrid" 1802 | | "minmax()" 1803 | | "repeat()" 1804 | | string 1805 | | 0; 1806 | 1807 | /** 1808 | * The hanging-punctuation CSS property specifies whether a punctuation mark should hang at the start or end of a line of text. Hanging punctuation may be placed outside the line box. 1809 | * @see https://developer.mozilla.org/docs/Web/CSS/hanging-punctuation 1810 | */ 1811 | "hanging-punctuation"?: string; 1812 | 1813 | /** 1814 | * Specifies the height of the content area, padding area or border area (depending on 'box-sizing') of certain boxes. 1815 | * Syntax: auto | | min-content | max-content | fit-content | fit-content() | | 1816 | * @see https://developer.mozilla.org/docs/Web/CSS/height 1817 | */ 1818 | height?: "auto" | "fit-content" | "max-content" | "min-content" | string | 0; 1819 | 1820 | /** 1821 | * A hyphenate character used at the end of a line. 1822 | * @see https://developer.mozilla.org/docs/Web/CSS/hyphenate-character 1823 | */ 1824 | "hyphenate-character"?: string; 1825 | 1826 | /** 1827 | * The hyphenate-limit-chars CSS property specifies the minimum word length to allow hyphenation of words as well as the minimum number of characters before and after the hyphen. 1828 | * @see https://developer.mozilla.org/docs/Web/CSS/hyphenate-limit-chars 1829 | */ 1830 | "hyphenate-limit-chars"?: string; 1831 | 1832 | /** 1833 | * Controls whether hyphenation is allowed to create more break opportunities within a line of text. 1834 | * Syntax: none | manual | auto 1835 | * @see https://developer.mozilla.org/docs/Web/CSS/hyphens 1836 | */ 1837 | hyphens?: "auto" | "manual" | "none"; 1838 | 1839 | /** 1840 | * Specifies an orthogonal rotation to be applied to an image before it is laid out. 1841 | * Syntax: from-image | | [ ? flip ] 1842 | * @see https://developer.mozilla.org/docs/Web/CSS/image-orientation 1843 | */ 1844 | "image-orientation"?: "flip" | "from-image" | string; 1845 | 1846 | /** 1847 | * Provides a hint to the user-agent about what aspects of an image are most important to preserve when the image is scaled, to aid the user-agent in the choice of an appropriate scaling algorithm. 1848 | * Syntax: auto | crisp-edges | pixelated | smooth 1849 | * @see https://developer.mozilla.org/docs/Web/CSS/image-rendering 1850 | */ 1851 | "image-rendering"?: 1852 | | "auto" 1853 | | "crisp-edges" 1854 | | "-moz-crisp-edges" 1855 | | "optimizeQuality" 1856 | | "optimizeSpeed" 1857 | | "pixelated"; 1858 | 1859 | /** 1860 | * The image-resolution property specifies the intrinsic resolution of all raster images used in or on the element. It affects both content images (e.g. replaced elements and generated content) and decorative images (such as background-image). The intrinsic resolution of an image is used to determine the image’s intrinsic dimensions. 1861 | */ 1862 | "image-resolution"?: string; 1863 | 1864 | /** 1865 | * Controls the state of the input method editor for text fields. 1866 | * Syntax: auto | normal | active | inactive | disabled 1867 | */ 1868 | "ime-mode"?: "active" | "auto" | "disabled" | "inactive" | "normal"; 1869 | 1870 | /** 1871 | * The initial-letter CSS property specifies styling for dropped, raised, and sunken initial letters. 1872 | * @see https://developer.mozilla.org/docs/Web/CSS/initial-letter 1873 | */ 1874 | "initial-letter"?: string; 1875 | 1876 | /** 1877 | * The initial-letter-align CSS property specifies the alignment of initial letters within a paragraph. 1878 | */ 1879 | "initial-letter-align"?: string; 1880 | 1881 | /** 1882 | * Size of an element in the direction specified by 'writing-mode'. 1883 | * Syntax: <'width'> 1884 | * @see https://developer.mozilla.org/docs/Web/CSS/inline-size 1885 | */ 1886 | "inline-size"?: "auto" | string | 0; 1887 | 1888 | /** 1889 | * The inset CSS property defines the logical block and inline start and end offsets of an element, which map to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation. 1890 | * @see https://developer.mozilla.org/docs/Web/CSS/inset 1891 | */ 1892 | inset?: string; 1893 | 1894 | /** 1895 | * The inset-block CSS property defines the logical block start and end offsets of an element, which maps to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation. 1896 | * @see https://developer.mozilla.org/docs/Web/CSS/inset-block 1897 | */ 1898 | "inset-block"?: string; 1899 | 1900 | /** 1901 | * The inset-block-end CSS property defines the logical block end offset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation. 1902 | * @see https://developer.mozilla.org/docs/Web/CSS/inset-block-end 1903 | */ 1904 | "inset-block-end"?: string; 1905 | 1906 | /** 1907 | * The inset-block-start CSS property defines the logical block start offset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation. 1908 | * @see https://developer.mozilla.org/docs/Web/CSS/inset-block-start 1909 | */ 1910 | "inset-block-start"?: string; 1911 | 1912 | /** 1913 | * The inset-inline CSS property defines the logical block start and end offsets of an element, which maps to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation. 1914 | * @see https://developer.mozilla.org/docs/Web/CSS/inset-inline 1915 | */ 1916 | "inset-inline"?: string; 1917 | 1918 | /** 1919 | * The inset-inline-end CSS property defines the logical inline end inset of an element, which maps to a physical inset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation. 1920 | * @see https://developer.mozilla.org/docs/Web/CSS/inset-inline-end 1921 | */ 1922 | "inset-inline-end"?: string; 1923 | 1924 | /** 1925 | * The inset-inline-start CSS property defines the logical inline start inset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation. 1926 | * @see https://developer.mozilla.org/docs/Web/CSS/inset-inline-start 1927 | */ 1928 | "inset-inline-start"?: string; 1929 | 1930 | /** 1931 | * The interpolate-size CSS property allows you to enable animations and transitions between a value and an intrinsic size value such as auto, fit-content, or max-content. 1932 | * Syntax: numeric-only | allow-keywords 1933 | * @see https://developer.mozilla.org/docs/Web/CSS/interpolate-size 1934 | */ 1935 | "interpolate-size"?: "numeric-only" | "allow-keywords"; 1936 | 1937 | /** 1938 | * In CSS setting to 'isolate' will turn the element into a stacking context. In SVG, it defines whether an element is isolated or not. 1939 | * Syntax: auto | isolate 1940 | * @see https://developer.mozilla.org/docs/Web/CSS/isolation 1941 | */ 1942 | isolation?: "auto" | "isolate"; 1943 | 1944 | /** 1945 | * Aligns flex items along the main axis of the current line of the flex container. 1946 | * Syntax: normal | | ? [ | left | right ] 1947 | * @see https://developer.mozilla.org/docs/Web/CSS/justify-content 1948 | */ 1949 | "justify-content"?: 1950 | | "center" 1951 | | "start" 1952 | | "end" 1953 | | "left" 1954 | | "right" 1955 | | "safe" 1956 | | "unsafe" 1957 | | "stretch" 1958 | | "space-evenly" 1959 | | "flex-end" 1960 | | "flex-start" 1961 | | "space-around" 1962 | | "space-between" 1963 | | "baseline" 1964 | | "first baseline" 1965 | | "last baseline" 1966 | | string; 1967 | 1968 | /** 1969 | * Defines the default justify-self for all items of the box, giving them the default way of justifying each box along the appropriate axis 1970 | * Syntax: normal | stretch | | ? [ | left | right ] | legacy | legacy && [ left | right | center ] 1971 | * @see https://developer.mozilla.org/docs/Web/CSS/justify-items 1972 | */ 1973 | "justify-items"?: 1974 | | "auto" 1975 | | "normal" 1976 | | "end" 1977 | | "start" 1978 | | "flex-end" 1979 | | "flex-start" 1980 | | "self-end" 1981 | | "self-start" 1982 | | "center" 1983 | | "left" 1984 | | "right" 1985 | | "baseline" 1986 | | "first baseline" 1987 | | "last baseline" 1988 | | "stretch" 1989 | | "safe" 1990 | | "unsafe" 1991 | | "legacy" 1992 | | string; 1993 | 1994 | /** 1995 | * Defines the way of justifying a box inside its container along the appropriate axis. 1996 | * Syntax: auto | normal | stretch | | ? [ | left | right ] 1997 | * @see https://developer.mozilla.org/docs/Web/CSS/justify-self 1998 | */ 1999 | "justify-self"?: 2000 | | "auto" 2001 | | "normal" 2002 | | "end" 2003 | | "start" 2004 | | "flex-end" 2005 | | "flex-start" 2006 | | "self-end" 2007 | | "self-start" 2008 | | "center" 2009 | | "left" 2010 | | "right" 2011 | | "baseline" 2012 | | "first baseline" 2013 | | "last baseline" 2014 | | "stretch" 2015 | | "save" 2016 | | "unsave" 2017 | | string; 2018 | 2019 | /** 2020 | * Indicates whether the user agent should adjust inter-glyph spacing based on kerning tables that are included in the relevant font or instead disable auto-kerning and set inter-character spacing to a specific length. 2021 | */ 2022 | kerning?: "auto" | 0; 2023 | 2024 | /** 2025 | * Specifies how far an absolutely positioned box's left margin edge is offset to the right of the left edge of the box's 'containing block'. 2026 | * Syntax: | | auto 2027 | * @see https://developer.mozilla.org/docs/Web/CSS/left 2028 | */ 2029 | left?: "auto" | string | 0; 2030 | 2031 | /** 2032 | * Specifies the minimum, maximum, and optimal spacing between grapheme clusters. 2033 | * Syntax: normal | 2034 | * @see https://developer.mozilla.org/docs/Web/CSS/letter-spacing 2035 | */ 2036 | "letter-spacing"?: "normal" | string | 0; 2037 | 2038 | /** 2039 | * Defines the color of the light source for filter primitives 'feDiffuseLighting' and 'feSpecularLighting'. 2040 | * @see https://developer.mozilla.org/docs/Web/CSS/lighting-color 2041 | */ 2042 | "lighting-color"?: string; 2043 | 2044 | /** 2045 | * Specifies what set of line breaking restrictions are in effect within the element. 2046 | * Syntax: auto | loose | normal | strict | anywhere 2047 | * @see https://developer.mozilla.org/docs/Web/CSS/line-break 2048 | */ 2049 | "line-break"?: "auto" | "loose" | "normal" | "strict" | "anywhere"; 2050 | 2051 | /** 2052 | * The line-clamp property allows limiting the contents of a block container to the specified number of lines; remaining content is fragmented away and neither rendered nor measured. Optionally, it also allows inserting content into the last line box to indicate the continuity of truncated/interrupted content. 2053 | * @see https://developer.mozilla.org/docs/Web/CSS/line-clamp 2054 | */ 2055 | "line-clamp"?: string; 2056 | 2057 | /** 2058 | * Determines the block-progression dimension of the text content area of an inline box. 2059 | * Syntax: normal | | | 2060 | * @see https://developer.mozilla.org/docs/Web/CSS/line-height 2061 | */ 2062 | "line-height"?: "normal" | string | 0; 2063 | 2064 | /** 2065 | * The line-height-step CSS property defines the step units for line box heights. When the step unit is positive, line box heights are rounded up to the closest multiple of the unit. Negative values are invalid. 2066 | * @see https://developer.mozilla.org/docs/Web/CSS/line-height-step 2067 | */ 2068 | "line-height-step"?: string; 2069 | 2070 | /** 2071 | * Shorthand for setting 'list-style-type', 'list-style-position' and 'list-style-image' 2072 | * Syntax: <'list-style-type'> || <'list-style-position'> || <'list-style-image'> 2073 | * @see https://developer.mozilla.org/docs/Web/CSS/list-style 2074 | */ 2075 | "list-style"?: 2076 | | "armenian" 2077 | | "circle" 2078 | | "decimal" 2079 | | "decimal-leading-zero" 2080 | | "disc" 2081 | | "georgian" 2082 | | "inside" 2083 | | "lower-alpha" 2084 | | "lower-greek" 2085 | | "lower-latin" 2086 | | "lower-roman" 2087 | | "none" 2088 | | "outside" 2089 | | "square" 2090 | | "symbols()" 2091 | | "upper-alpha" 2092 | | "upper-latin" 2093 | | "upper-roman" 2094 | | "url()" 2095 | | string; 2096 | 2097 | /** 2098 | * Sets the image that will be used as the list item marker. When the image is available, it will replace the marker set with the 'list-style-type' marker. 2099 | * Syntax: | none 2100 | * @see https://developer.mozilla.org/docs/Web/CSS/list-style-image 2101 | */ 2102 | "list-style-image"?: "none" | string; 2103 | 2104 | /** 2105 | * Specifies the position of the '::marker' pseudo-element's box in the list item. 2106 | * Syntax: inside | outside 2107 | * @see https://developer.mozilla.org/docs/Web/CSS/list-style-position 2108 | */ 2109 | "list-style-position"?: "inside" | "outside"; 2110 | 2111 | /** 2112 | * Used to construct the default contents of a list item's marker 2113 | * Syntax: | | none 2114 | * @see https://developer.mozilla.org/docs/Web/CSS/list-style-type 2115 | */ 2116 | "list-style-type"?: 2117 | | "armenian" 2118 | | "circle" 2119 | | "decimal" 2120 | | "decimal-leading-zero" 2121 | | "disc" 2122 | | "georgian" 2123 | | "lower-alpha" 2124 | | "lower-greek" 2125 | | "lower-latin" 2126 | | "lower-roman" 2127 | | "none" 2128 | | "square" 2129 | | "symbols()" 2130 | | "upper-alpha" 2131 | | "upper-latin" 2132 | | "upper-roman" 2133 | | string; 2134 | 2135 | /** 2136 | * Shorthand property to set values for the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits. 2137 | * Syntax: <'margin-top'>{1,4} 2138 | * @see https://developer.mozilla.org/docs/Web/CSS/margin 2139 | */ 2140 | margin?: "auto" | string | 0; 2141 | 2142 | /** 2143 | * The margin-block CSS property defines the logical block start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation. 2144 | * @see https://developer.mozilla.org/docs/Web/CSS/margin-block 2145 | */ 2146 | "margin-block"?: string; 2147 | 2148 | /** 2149 | * Logical 'margin-bottom'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 2150 | * Syntax: <'margin-top'> 2151 | * @see https://developer.mozilla.org/docs/Web/CSS/margin-block-end 2152 | */ 2153 | "margin-block-end"?: "auto" | string | 0; 2154 | 2155 | /** 2156 | * Logical 'margin-top'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 2157 | * Syntax: <'margin-top'> 2158 | * @see https://developer.mozilla.org/docs/Web/CSS/margin-block-start 2159 | */ 2160 | "margin-block-start"?: "auto" | string | 0; 2161 | 2162 | /** 2163 | * Shorthand property to set values for the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits.. 2164 | * Syntax: | auto 2165 | * @see https://developer.mozilla.org/docs/Web/CSS/margin-bottom 2166 | */ 2167 | "margin-bottom"?: "auto" | string | 0; 2168 | 2169 | /** 2170 | * The margin-inline CSS property defines the logical inline start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation. 2171 | * @see https://developer.mozilla.org/docs/Web/CSS/margin-inline 2172 | */ 2173 | "margin-inline"?: string; 2174 | 2175 | /** 2176 | * Logical 'margin-right'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 2177 | * Syntax: <'margin-top'> 2178 | * @see https://developer.mozilla.org/docs/Web/CSS/margin-inline-end 2179 | */ 2180 | "margin-inline-end"?: "auto" | string | 0; 2181 | 2182 | /** 2183 | * Logical 'margin-left'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 2184 | * Syntax: <'margin-top'> 2185 | * @see https://developer.mozilla.org/docs/Web/CSS/margin-inline-start 2186 | */ 2187 | "margin-inline-start"?: "auto" | string | 0; 2188 | 2189 | /** 2190 | * Shorthand property to set values for the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits.. 2191 | * Syntax: | auto 2192 | * @see https://developer.mozilla.org/docs/Web/CSS/margin-left 2193 | */ 2194 | "margin-left"?: "auto" | string | 0; 2195 | 2196 | /** 2197 | * Shorthand property to set values for the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits.. 2198 | * Syntax: | auto 2199 | * @see https://developer.mozilla.org/docs/Web/CSS/margin-right 2200 | */ 2201 | "margin-right"?: "auto" | string | 0; 2202 | 2203 | /** 2204 | * Shorthand property to set values for the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits.. 2205 | * Syntax: | auto 2206 | * @see https://developer.mozilla.org/docs/Web/CSS/margin-top 2207 | */ 2208 | "margin-top"?: "auto" | string | 0; 2209 | 2210 | /** 2211 | * The margin-trim property allows the container to trim the margins of its children where they adjoin the container’s edges. 2212 | * Syntax: none | in-flow | all 2213 | * @see https://developer.mozilla.org/docs/Web/CSS/margin-trim 2214 | */ 2215 | "margin-trim"?: "none" | "in-flow" | "all"; 2216 | 2217 | /** 2218 | * Specifies the marker symbol that shall be used for all points on the sets the value for all vertices on the given 'path' element or basic shape. 2219 | * Syntax: none | 2220 | * @see https://developer.mozilla.org/docs/Web/CSS/marker 2221 | */ 2222 | marker?: "none" | "url()" | string; 2223 | 2224 | /** 2225 | * Specifies the marker that will be drawn at the last vertices of the given markable element. 2226 | * Syntax: none | 2227 | * @see https://developer.mozilla.org/docs/Web/CSS/marker-end 2228 | */ 2229 | "marker-end"?: "none" | "url()" | string; 2230 | 2231 | /** 2232 | * Specifies the marker that will be drawn at all vertices except the first and last. 2233 | * Syntax: none | 2234 | * @see https://developer.mozilla.org/docs/Web/CSS/marker-mid 2235 | */ 2236 | "marker-mid"?: "none" | "url()" | string; 2237 | 2238 | /** 2239 | * Specifies the marker that will be drawn at the first vertices of the given markable element. 2240 | * Syntax: none | 2241 | * @see https://developer.mozilla.org/docs/Web/CSS/marker-start 2242 | */ 2243 | "marker-start"?: "none" | "url()" | string; 2244 | 2245 | /** 2246 | * The mask CSS property alters the visibility of an element by either partially or fully hiding it. This is accomplished by either masking or clipping the image at specific points. 2247 | * @see https://developer.mozilla.org/docs/Web/CSS/mask 2248 | */ 2249 | mask?: string; 2250 | 2251 | /** 2252 | * The mask-border CSS property lets you create a mask along the edge of an element's border. 2253 | * 2254 | * This property is a shorthand for mask-border-source, mask-border-slice, mask-border-width, mask-border-outset, mask-border-repeat, and mask-border-mode. As with all shorthand properties, any omitted sub-values will be set to their initial value. 2255 | * @see https://developer.mozilla.org/docs/Web/CSS/mask-border 2256 | */ 2257 | "mask-border"?: string; 2258 | 2259 | /** 2260 | * The mask-border-mode CSS property specifies the blending mode used in a mask border. 2261 | * Syntax: luminance | alpha 2262 | */ 2263 | "mask-border-mode"?: "luminance" | "alpha"; 2264 | 2265 | /** 2266 | * The mask-border-outset CSS property specifies the distance by which an element's mask border is set out from its border box. 2267 | * @see https://developer.mozilla.org/docs/Web/CSS/mask-border-outset 2268 | */ 2269 | "mask-border-outset"?: string; 2270 | 2271 | /** 2272 | * The mask-border-repeat CSS property defines how the edge regions of a source image are adjusted to fit the dimensions of an element's mask border. 2273 | * @see https://developer.mozilla.org/docs/Web/CSS/mask-border-repeat 2274 | */ 2275 | "mask-border-repeat"?: string; 2276 | 2277 | /** 2278 | * The mask-border-slice CSS property divides the image specified by mask-border-source into regions. These regions are used to form the components of an element's mask border. 2279 | * @see https://developer.mozilla.org/docs/Web/CSS/mask-border-slice 2280 | */ 2281 | "mask-border-slice"?: string; 2282 | 2283 | /** 2284 | * The mask-border-source CSS property specifies the source image used to create an element's mask border. 2285 | * 2286 | * The mask-border-slice property is used to divide the source image into regions, which are then dynamically applied to the final mask border. 2287 | * @see https://developer.mozilla.org/docs/Web/CSS/mask-border-source 2288 | */ 2289 | "mask-border-source"?: string; 2290 | 2291 | /** 2292 | * The mask-border-width CSS property specifies the width of an element's mask border. 2293 | * @see https://developer.mozilla.org/docs/Web/CSS/mask-border-width 2294 | */ 2295 | "mask-border-width"?: string; 2296 | 2297 | /** 2298 | * The mask-clip CSS property determines the area, which is affected by a mask. The painted content of an element must be restricted to this area. 2299 | * @see https://developer.mozilla.org/docs/Web/CSS/mask-clip 2300 | */ 2301 | "mask-clip"?: string; 2302 | 2303 | /** 2304 | * The mask-composite CSS property represents a compositing operation used on the current mask layer with the mask layers below it. 2305 | * @see https://developer.mozilla.org/docs/Web/CSS/mask-composite 2306 | */ 2307 | "mask-composite"?: string; 2308 | 2309 | /** 2310 | * Sets the mask layer image of an element. 2311 | * Syntax: # 2312 | * @see https://developer.mozilla.org/docs/Web/CSS/mask-image 2313 | */ 2314 | "mask-image"?: "none" | "url()" | string; 2315 | 2316 | /** 2317 | * Indicates whether the mask layer image is treated as luminance mask or alpha mask. 2318 | * Syntax: # 2319 | * @see https://developer.mozilla.org/docs/Web/CSS/mask-mode 2320 | */ 2321 | "mask-mode"?: "alpha" | "auto" | "luminance" | string; 2322 | 2323 | /** 2324 | * Specifies the mask positioning area. 2325 | * @see https://developer.mozilla.org/docs/Web/CSS/mask-origin 2326 | */ 2327 | "mask-origin"?: string; 2328 | 2329 | /** 2330 | * Specifies how mask layer images are positioned. 2331 | * @see https://developer.mozilla.org/docs/Web/CSS/mask-position 2332 | */ 2333 | "mask-position"?: string; 2334 | 2335 | /** 2336 | * Specifies how mask layer images are tiled after they have been sized and positioned. 2337 | * @see https://developer.mozilla.org/docs/Web/CSS/mask-repeat 2338 | */ 2339 | "mask-repeat"?: string; 2340 | 2341 | /** 2342 | * Specifies the size of the mask layer images. 2343 | * Syntax: # 2344 | * @see https://developer.mozilla.org/docs/Web/CSS/mask-size 2345 | */ 2346 | "mask-size"?: "auto" | "contain" | "cover" | string | 0; 2347 | 2348 | /** 2349 | * Defines whether the content of the element is treated as as luminance mask or alpha mask. 2350 | * Syntax: luminance | alpha 2351 | * @see https://developer.mozilla.org/docs/Web/CSS/mask-type 2352 | */ 2353 | "mask-type"?: "alpha" | "luminance"; 2354 | 2355 | /** 2356 | * Describe a notion of "depth" for each element of a mathematical formula, with respect to the top-level container of that formula. 2357 | * @see https://developer.mozilla.org/docs/Web/CSS/math-depth 2358 | */ 2359 | "math-depth"?: string; 2360 | 2361 | /** 2362 | * Used for positioning superscript during the layout of MathML scripted elements. 2363 | * Syntax: normal | compact 2364 | * @see https://developer.mozilla.org/docs/Web/CSS/math-shift 2365 | */ 2366 | "math-shift"?: "normal" | "compact"; 2367 | 2368 | /** 2369 | * The math-style property indicates whether MathML equations should render with normal or compact height. 2370 | * Syntax: normal | compact 2371 | * @see https://developer.mozilla.org/docs/Web/CSS/math-style 2372 | */ 2373 | "math-style"?: "normal" | "compact"; 2374 | 2375 | /** 2376 | * Maximum size of an element in the direction opposite that of the direction specified by 'writing-mode'. 2377 | * Syntax: <'max-width'> 2378 | * @see https://developer.mozilla.org/docs/Web/CSS/max-block-size 2379 | */ 2380 | "max-block-size"?: "none" | string | 0; 2381 | 2382 | /** 2383 | * Allows authors to constrain content height to a certain range. 2384 | * Syntax: none | | min-content | max-content | fit-content | fit-content() | | 2385 | * @see https://developer.mozilla.org/docs/Web/CSS/max-height 2386 | */ 2387 | "max-height"?: 2388 | | "none" 2389 | | "fit-content" 2390 | | "max-content" 2391 | | "min-content" 2392 | | string 2393 | | 0; 2394 | 2395 | /** 2396 | * Maximum size of an element in the direction specified by 'writing-mode'. 2397 | * Syntax: <'max-width'> 2398 | * @see https://developer.mozilla.org/docs/Web/CSS/max-inline-size 2399 | */ 2400 | "max-inline-size"?: "none" | string | 0; 2401 | 2402 | /** 2403 | * The max-lines property forces a break after a set number of lines 2404 | */ 2405 | "max-lines"?: string; 2406 | 2407 | /** 2408 | * Allows authors to constrain content width to a certain range. 2409 | * Syntax: none | | min-content | max-content | fit-content | fit-content() | | 2410 | * @see https://developer.mozilla.org/docs/Web/CSS/max-width 2411 | */ 2412 | "max-width"?: 2413 | | "none" 2414 | | "fit-content" 2415 | | "max-content" 2416 | | "min-content" 2417 | | string 2418 | | 0; 2419 | 2420 | /** 2421 | * Minimal size of an element in the direction opposite that of the direction specified by 'writing-mode'. 2422 | * @see https://developer.mozilla.org/docs/Web/CSS/min-block-size 2423 | */ 2424 | "min-block-size"?: string; 2425 | 2426 | /** 2427 | * Allows authors to constrain content height to a certain range. 2428 | * Syntax: auto | | min-content | max-content | fit-content | fit-content() | | 2429 | * @see https://developer.mozilla.org/docs/Web/CSS/min-height 2430 | */ 2431 | "min-height"?: 2432 | | "auto" 2433 | | "fit-content" 2434 | | "max-content" 2435 | | "min-content" 2436 | | string 2437 | | 0; 2438 | 2439 | /** 2440 | * Minimal size of an element in the direction specified by 'writing-mode'. 2441 | * @see https://developer.mozilla.org/docs/Web/CSS/min-inline-size 2442 | */ 2443 | "min-inline-size"?: string; 2444 | 2445 | /** 2446 | * Allows authors to constrain content width to a certain range. 2447 | * Syntax: auto | | min-content | max-content | fit-content | fit-content() | | 2448 | * @see https://developer.mozilla.org/docs/Web/CSS/min-width 2449 | */ 2450 | "min-width"?: 2451 | | "auto" 2452 | | "fit-content" 2453 | | "max-content" 2454 | | "min-content" 2455 | | string 2456 | | 0; 2457 | 2458 | /** 2459 | * Defines the formula that must be used to mix the colors with the backdrop. 2460 | * Syntax: | plus-lighter 2461 | * @see https://developer.mozilla.org/docs/Web/CSS/mix-blend-mode 2462 | */ 2463 | "mix-blend-mode"?: 2464 | | "normal" 2465 | | "multiply" 2466 | | "screen" 2467 | | "overlay" 2468 | | "darken" 2469 | | "lighten" 2470 | | "color-dodge" 2471 | | "color-burn" 2472 | | "hard-light" 2473 | | "soft-light" 2474 | | "difference" 2475 | | "exclusion" 2476 | | "hue" 2477 | | "saturation" 2478 | | "color" 2479 | | "luminosity" 2480 | | string; 2481 | 2482 | /** 2483 | * Shorthand property for setting 'motion-path', 'motion-offset' and 'motion-rotation'. 2484 | */ 2485 | motion?: "none" | "path()" | "auto" | "reverse" | 0; 2486 | 2487 | /** 2488 | * A distance that describes the position along the specified motion path. 2489 | */ 2490 | "motion-offset"?: string; 2491 | 2492 | /** 2493 | * Specifies the motion path the element gets positioned at. 2494 | */ 2495 | "motion-path"?: "none" | "path()"; 2496 | 2497 | /** 2498 | * Defines the direction of the element while positioning along the motion path. 2499 | */ 2500 | "motion-rotation"?: "auto" | "reverse"; 2501 | 2502 | /** 2503 | * Provides an way to control directional focus navigation. 2504 | */ 2505 | "nav-down"?: "auto" | "current" | "root"; 2506 | 2507 | /** 2508 | * Provides an input-method-neutral way of specifying the sequential navigation order (also known as 'tabbing order'). 2509 | */ 2510 | "nav-index"?: "auto"; 2511 | 2512 | /** 2513 | * Provides an way to control directional focus navigation. 2514 | */ 2515 | "nav-left"?: "auto" | "current" | "root"; 2516 | 2517 | /** 2518 | * Provides an way to control directional focus navigation. 2519 | */ 2520 | "nav-right"?: "auto" | "current" | "root"; 2521 | 2522 | /** 2523 | * Provides an way to control directional focus navigation. 2524 | */ 2525 | "nav-up"?: "auto" | "current" | "root"; 2526 | 2527 | /** 2528 | * Specifies how the contents of a replaced element should be scaled relative to the box established by its used height and width. 2529 | * Syntax: fill | contain | cover | none | scale-down 2530 | * @see https://developer.mozilla.org/docs/Web/CSS/object-fit 2531 | */ 2532 | "object-fit"?: "contain" | "cover" | "fill" | "none" | "scale-down"; 2533 | 2534 | /** 2535 | * Determines the alignment of the replaced element inside its box. 2536 | * @see https://developer.mozilla.org/docs/Web/CSS/object-position 2537 | */ 2538 | "object-position"?: string; 2539 | 2540 | "object-view-box"?: string; 2541 | 2542 | /** 2543 | * The offset CSS property is a shorthand property for animating an element along a defined path. 2544 | * @see https://developer.mozilla.org/docs/Web/CSS/offset 2545 | */ 2546 | offset?: string; 2547 | 2548 | /** 2549 | * Defines an anchor point of the box positioned along the path. The anchor point specifies the point of the box which is to be considered as the point that is moved along the path. 2550 | * @see https://developer.mozilla.org/docs/Web/CSS/offset-anchor 2551 | */ 2552 | "offset-anchor"?: string; 2553 | 2554 | /** 2555 | * Logical 'bottom'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 2556 | */ 2557 | "offset-block-end"?: "auto" | 0; 2558 | 2559 | /** 2560 | * Logical 'top'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 2561 | */ 2562 | "offset-block-start"?: "auto" | 0; 2563 | 2564 | /** 2565 | * The offset-distance CSS property specifies a position along an offset-path. 2566 | * @see https://developer.mozilla.org/docs/Web/CSS/offset-distance 2567 | */ 2568 | "offset-distance"?: string; 2569 | 2570 | /** 2571 | * Logical 'right'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 2572 | */ 2573 | "offset-inline-end"?: "auto" | 0; 2574 | 2575 | /** 2576 | * Logical 'left'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 2577 | */ 2578 | "offset-inline-start"?: "auto" | 0; 2579 | 2580 | /** 2581 | * The offset-path CSS property specifies the offset path where the element gets positioned. The exact element’s position on the offset path is determined by the offset-distance property. An offset path is either a specified path with one or multiple sub-paths or the geometry of a not-styled basic shape. Each shape or path must define an initial position for the computed value of "0" for offset-distance and an initial direction which specifies the rotation of the object to the initial position. 2582 | * 2583 | * In this specification, a direction (or rotation) of 0 degrees is equivalent to the direction of the positive x-axis in the object’s local coordinate system. In other words, a rotation of 0 degree points to the right side of the UA if the object and its ancestors have no transformation applied. 2584 | * @see https://developer.mozilla.org/docs/Web/CSS/offset-path 2585 | */ 2586 | "offset-path"?: string; 2587 | 2588 | /** 2589 | * Specifies the initial position of the offset path. If position is specified with static, offset-position would be ignored. 2590 | * @see https://developer.mozilla.org/docs/Web/CSS/offset-position 2591 | */ 2592 | "offset-position"?: string; 2593 | 2594 | /** 2595 | * The offset-rotate CSS property defines the direction of the element while positioning along the offset path. 2596 | * @see https://developer.mozilla.org/docs/Web/CSS/offset-rotate 2597 | */ 2598 | "offset-rotate"?: string; 2599 | 2600 | /** 2601 | * Opacity of an element's text, where 1 is opaque and 0 is entirely transparent. 2602 | * @see https://developer.mozilla.org/docs/Web/CSS/opacity 2603 | */ 2604 | opacity?: string; 2605 | 2606 | /** 2607 | * Controls the order in which children of a flex container appear within the flex container, by assigning them to ordinal groups. 2608 | * @see https://developer.mozilla.org/docs/Web/CSS/order 2609 | */ 2610 | order?: string; 2611 | 2612 | /** 2613 | * Specifies the minimum number of line boxes in a block container that must be left in a fragment before a fragmentation break. 2614 | * @see https://developer.mozilla.org/docs/Web/CSS/orphans 2615 | */ 2616 | orphans?: string; 2617 | 2618 | /** 2619 | * Shorthand property for 'outline-style', 'outline-width', and 'outline-color'. 2620 | * Syntax: <'outline-width'> || <'outline-style'> || <'outline-color'> 2621 | * @see https://developer.mozilla.org/docs/Web/CSS/outline 2622 | */ 2623 | outline?: "auto" | "invert" | string | 0; 2624 | 2625 | /** 2626 | * The color of the outline. 2627 | * Syntax: auto | 2628 | * @see https://developer.mozilla.org/docs/Web/CSS/outline-color 2629 | */ 2630 | "outline-color"?: "invert" | string; 2631 | 2632 | /** 2633 | * Offset the outline and draw it beyond the border edge. 2634 | * @see https://developer.mozilla.org/docs/Web/CSS/outline-offset 2635 | */ 2636 | "outline-offset"?: string; 2637 | 2638 | /** 2639 | * Style of the outline. 2640 | * Syntax: auto | 2641 | * @see https://developer.mozilla.org/docs/Web/CSS/outline-style 2642 | */ 2643 | "outline-style"?: "auto" | string; 2644 | 2645 | /** 2646 | * Width of the outline. 2647 | * @see https://developer.mozilla.org/docs/Web/CSS/outline-width 2648 | */ 2649 | "outline-width"?: string; 2650 | 2651 | /** 2652 | * Shorthand for setting 'overflow-x' and 'overflow-y'. 2653 | * Syntax: [ visible | hidden | clip | scroll | auto ]{1,2} 2654 | * @see https://developer.mozilla.org/docs/Web/CSS/overflow 2655 | */ 2656 | overflow?: 2657 | | "auto" 2658 | | "hidden" 2659 | | "-moz-hidden-unscrollable" 2660 | | "scroll" 2661 | | "visible"; 2662 | 2663 | /** 2664 | * The overflow-anchor CSS property provides a way to opt out browser scroll anchoring behavior which adjusts scroll position to minimize content shifts. 2665 | * Syntax: auto | none 2666 | * @see https://developer.mozilla.org/docs/Web/CSS/overflow-anchor 2667 | */ 2668 | "overflow-anchor"?: "auto" | "none"; 2669 | 2670 | /** 2671 | * The overflow-block CSS media feature can be used to test how the output device handles content that overflows the initial containing block along the block axis. 2672 | * Syntax: visible | hidden | clip | scroll | auto 2673 | * @see https://developer.mozilla.org/docs/Web/CSS/overflow-block 2674 | */ 2675 | "overflow-block"?: "visible" | "hidden" | "clip" | "scroll" | "auto"; 2676 | 2677 | /** 2678 | * The overflow-clip-margin CSS property determines how far outside its bounds an element with overflow: clip may be painted before being clipped. 2679 | * @see https://developer.mozilla.org/docs/Web/CSS/overflow-clip-margin 2680 | */ 2681 | "overflow-clip-margin"?: string; 2682 | 2683 | /** 2684 | * The overflow-inline CSS media feature can be used to test how the output device handles content that overflows the initial containing block along the inline axis. 2685 | * Syntax: visible | hidden | clip | scroll | auto 2686 | * @see https://developer.mozilla.org/docs/Web/CSS/overflow-inline 2687 | */ 2688 | "overflow-inline"?: "visible" | "hidden" | "clip" | "scroll" | "auto"; 2689 | 2690 | /** 2691 | * Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit within the line box. 2692 | * Syntax: normal | break-word | anywhere 2693 | * @see https://developer.mozilla.org/docs/Web/CSS/overflow-wrap 2694 | */ 2695 | "overflow-wrap"?: "break-word" | "normal" | "anywhere"; 2696 | 2697 | /** 2698 | * Specifies the handling of overflow in the horizontal direction. 2699 | * Syntax: visible | hidden | clip | scroll | auto 2700 | * @see https://developer.mozilla.org/docs/Web/CSS/overflow-x 2701 | */ 2702 | "overflow-x"?: "auto" | "hidden" | "scroll" | "visible"; 2703 | 2704 | /** 2705 | * Specifies the handling of overflow in the vertical direction. 2706 | * Syntax: visible | hidden | clip | scroll | auto 2707 | * @see https://developer.mozilla.org/docs/Web/CSS/overflow-y 2708 | */ 2709 | "overflow-y"?: "auto" | "hidden" | "scroll" | "visible"; 2710 | 2711 | /** 2712 | * The overlay CSS property specifies whether an element appearing in the top layer (for example, a shown popover or modal {{htmlelement("dialog")}} element) is actually rendered in the top layer. This property is only relevant within a list of transition-property values, and only if allow-discrete is set as the transition-behavior. 2713 | * Syntax: none | auto 2714 | * @see https://developer.mozilla.org/docs/Web/CSS/overlay 2715 | */ 2716 | overlay?: "none" | "auto"; 2717 | 2718 | /** 2719 | * The overscroll-behavior CSS property is shorthand for the overscroll-behavior-x and overscroll-behavior-y properties, which allow you to control the browser's scroll overflow behavior — what happens when the boundary of a scrolling area is reached. 2720 | * @see https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior 2721 | */ 2722 | "overscroll-behavior"?: string; 2723 | 2724 | /** 2725 | * The overscroll-behavior-block CSS property sets the browser's behavior when the block direction boundary of a scrolling area is reached. 2726 | * Syntax: contain | none | auto 2727 | * @see https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-block 2728 | */ 2729 | "overscroll-behavior-block"?: "contain" | "none" | "auto"; 2730 | 2731 | /** 2732 | * The overscroll-behavior-inline CSS property sets the browser's behavior when the inline direction boundary of a scrolling area is reached. 2733 | * Syntax: contain | none | auto 2734 | * @see https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-inline 2735 | */ 2736 | "overscroll-behavior-inline"?: "contain" | "none" | "auto"; 2737 | 2738 | /** 2739 | * The overscroll-behavior-x CSS property is allows you to control the browser's scroll overflow behavior — what happens when the boundary of a scrolling area is reached — in the x axis direction. 2740 | * Syntax: contain | none | auto 2741 | * @see https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-x 2742 | */ 2743 | "overscroll-behavior-x"?: "contain" | "none" | "auto"; 2744 | 2745 | /** 2746 | * The overscroll-behavior-y CSS property is allows you to control the browser's scroll overflow behavior — what happens when the boundary of a scrolling area is reached — in the y axis direction. 2747 | * Syntax: contain | none | auto 2748 | * @see https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-y 2749 | */ 2750 | "overscroll-behavior-y"?: "contain" | "none" | "auto"; 2751 | 2752 | /** 2753 | * Shorthand property to set values for the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative. 2754 | * @see https://developer.mozilla.org/docs/Web/CSS/padding 2755 | */ 2756 | padding?: string; 2757 | 2758 | /** 2759 | * The padding-block CSS property defines the logical block start and end padding of an element, which maps to physical padding properties depending on the element's writing mode, directionality, and text orientation. 2760 | * @see https://developer.mozilla.org/docs/Web/CSS/padding-block 2761 | */ 2762 | "padding-block"?: string; 2763 | 2764 | /** 2765 | * Logical 'padding-bottom'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 2766 | * @see https://developer.mozilla.org/docs/Web/CSS/padding-block-end 2767 | */ 2768 | "padding-block-end"?: string; 2769 | 2770 | /** 2771 | * Logical 'padding-top'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 2772 | * @see https://developer.mozilla.org/docs/Web/CSS/padding-block-start 2773 | */ 2774 | "padding-block-start"?: string; 2775 | 2776 | /** 2777 | * Shorthand property to set values for the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative. 2778 | * @see https://developer.mozilla.org/docs/Web/CSS/padding-bottom 2779 | */ 2780 | "padding-bottom"?: string; 2781 | 2782 | /** 2783 | * The padding-inline CSS property defines the logical inline start and end padding of an element, which maps to physical padding properties depending on the element's writing mode, directionality, and text orientation. 2784 | * @see https://developer.mozilla.org/docs/Web/CSS/padding-inline 2785 | */ 2786 | "padding-inline"?: string; 2787 | 2788 | /** 2789 | * Logical 'padding-right'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 2790 | * @see https://developer.mozilla.org/docs/Web/CSS/padding-inline-end 2791 | */ 2792 | "padding-inline-end"?: string; 2793 | 2794 | /** 2795 | * Logical 'padding-left'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'. 2796 | * @see https://developer.mozilla.org/docs/Web/CSS/padding-inline-start 2797 | */ 2798 | "padding-inline-start"?: string; 2799 | 2800 | /** 2801 | * Shorthand property to set values for the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative. 2802 | * @see https://developer.mozilla.org/docs/Web/CSS/padding-left 2803 | */ 2804 | "padding-left"?: string; 2805 | 2806 | /** 2807 | * Shorthand property to set values for the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative. 2808 | * @see https://developer.mozilla.org/docs/Web/CSS/padding-right 2809 | */ 2810 | "padding-right"?: string; 2811 | 2812 | /** 2813 | * Shorthand property to set values for the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative. 2814 | * @see https://developer.mozilla.org/docs/Web/CSS/padding-top 2815 | */ 2816 | "padding-top"?: string; 2817 | 2818 | /** 2819 | * The page CSS property is used to specify the named page, a specific type of page defined by the @page at-rule. 2820 | * @see https://developer.mozilla.org/docs/Web/CSS/page 2821 | */ 2822 | page?: string; 2823 | 2824 | /** 2825 | * Defines rules for page breaks after an element. 2826 | * Syntax: auto | always | avoid | left | right | recto | verso 2827 | * @see https://developer.mozilla.org/docs/Web/CSS/page-break-after 2828 | */ 2829 | "page-break-after"?: "always" | "auto" | "avoid" | "left" | "right"; 2830 | 2831 | /** 2832 | * Defines rules for page breaks before an element. 2833 | * Syntax: auto | always | avoid | left | right | recto | verso 2834 | * @see https://developer.mozilla.org/docs/Web/CSS/page-break-before 2835 | */ 2836 | "page-break-before"?: "always" | "auto" | "avoid" | "left" | "right"; 2837 | 2838 | /** 2839 | * Defines rules for page breaks inside an element. 2840 | * Syntax: auto | avoid 2841 | * @see https://developer.mozilla.org/docs/Web/CSS/page-break-inside 2842 | */ 2843 | "page-break-inside"?: "auto" | "avoid"; 2844 | 2845 | /** 2846 | * Controls the order that the three paint operations that shapes and text are rendered with: their fill, their stroke and any markers they might have. 2847 | * Syntax: normal | [ fill || stroke || markers ] 2848 | * @see https://developer.mozilla.org/docs/Web/CSS/paint-order 2849 | */ 2850 | "paint-order"?: "fill" | "markers" | "normal" | "stroke"; 2851 | 2852 | /** 2853 | * Applies the same transform as the perspective() transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself. 2854 | * Syntax: none | 2855 | * @see https://developer.mozilla.org/docs/Web/CSS/perspective 2856 | */ 2857 | perspective?: "none" | string | 0; 2858 | 2859 | /** 2860 | * Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element. 2861 | * @see https://developer.mozilla.org/docs/Web/CSS/perspective-origin 2862 | */ 2863 | "perspective-origin"?: string; 2864 | 2865 | /** 2866 | * The place-content CSS shorthand property sets both the align-content and justify-content properties. 2867 | * @see https://developer.mozilla.org/docs/Web/CSS/place-content 2868 | */ 2869 | "place-content"?: string; 2870 | 2871 | /** 2872 | * The CSS place-items shorthand property sets both the align-items and justify-items properties. The first value is the align-items property value, the second the justify-items one. If the second value is not present, the first value is also used for it. 2873 | * @see https://developer.mozilla.org/docs/Web/CSS/place-items 2874 | */ 2875 | "place-items"?: string; 2876 | 2877 | /** 2878 | * The place-self CSS property is a shorthand property sets both the align-self and justify-self properties. The first value is the align-self property value, the second the justify-self one. If the second value is not present, the first value is also used for it. 2879 | * @see https://developer.mozilla.org/docs/Web/CSS/place-self 2880 | */ 2881 | "place-self"?: string; 2882 | 2883 | /** 2884 | * Specifies under what circumstances a given element can be the target element for a pointer event. 2885 | * Syntax: auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit 2886 | * @see https://developer.mozilla.org/docs/Web/CSS/pointer-events 2887 | */ 2888 | "pointer-events"?: 2889 | | "all" 2890 | | "fill" 2891 | | "none" 2892 | | "painted" 2893 | | "stroke" 2894 | | "visible" 2895 | | "visibleFill" 2896 | | "visiblePainted" 2897 | | "visibleStroke"; 2898 | 2899 | /** 2900 | * The position CSS property sets how an element is positioned in a document. The top, right, bottom, and left properties determine the final location of positioned elements. 2901 | * Syntax: static | relative | absolute | sticky | fixed 2902 | * @see https://developer.mozilla.org/docs/Web/CSS/position 2903 | */ 2904 | position?: 2905 | | "absolute" 2906 | | "fixed" 2907 | | "-ms-page" 2908 | | "relative" 2909 | | "static" 2910 | | "sticky" 2911 | | "-webkit-sticky"; 2912 | 2913 | /** 2914 | * The position-anchor property defines the default anchor specifier for all anchor functions on the element, allowing multiple elements to use the same set of anchor functions (and position options lists!) while changing which anchor element each is referring to. 2915 | * @see https://developer.mozilla.org/docs/Web/CSS/position-anchor 2916 | */ 2917 | "position-anchor"?: string; 2918 | 2919 | /** 2920 | * The position-area CSS property enables an anchor-positioned element to be positioned relative to the edges of its associated anchor element by placing the positioned element on one or more tiles of an implicit 3x3 grid, where the anchoring element is the center cell. 2921 | * @see https://developer.mozilla.org/docs/Web/CSS/position-area 2922 | */ 2923 | "position-area"?: string; 2924 | 2925 | /** 2926 | * This shorthand sets both position-try-options and position-try-order. If <'position-try-order'> is omitted, it’s set to the property’s initial value. 2927 | * @see https://developer.mozilla.org/docs/Web/CSS/position-try 2928 | */ 2929 | "position-try"?: string; 2930 | 2931 | /** 2932 | * The position-try-fallbacks CSS property enables you to specify a list of one or more alternative position try fallback options for anchor-positioned elements to be placed relative to their associated anchor elements. When the element would otherwise overflow its inset-modified containing block, the browser will try placing the positioned element in these different fallback positions, in the order provided, until it finds a value that stops it from overflowing its container or the viewport. 2933 | * @see https://developer.mozilla.org/docs/Web/CSS/position-try-fallbacks 2934 | */ 2935 | "position-try-fallbacks"?: string; 2936 | 2937 | /** 2938 | * This property specifies the order in which the position options list will be tried. 2939 | * @see https://developer.mozilla.org/docs/Web/CSS/position-try-order 2940 | */ 2941 | "position-try-order"?: string; 2942 | 2943 | /** 2944 | * There are times when an element’s anchors are not appropriate for positioning the element with, and it would be better to simply not display the element at all. position-visibility provides several conditions where this could be the case. 2945 | * @see https://developer.mozilla.org/docs/Web/CSS/position-visibility 2946 | */ 2947 | "position-visibility"?: string; 2948 | 2949 | /** 2950 | * Defines what optimization the user agent is allowed to do when adjusting the appearance for an output device. 2951 | * Syntax: economy | exact 2952 | * @see https://developer.mozilla.org/docs/Web/CSS/print-color-adjust 2953 | */ 2954 | "print-color-adjust"?: "economy" | "exact"; 2955 | 2956 | /** 2957 | * Specifies quotation marks for any number of embedded quotations. 2958 | * Syntax: none | auto | [ ]+ 2959 | * @see https://developer.mozilla.org/docs/Web/CSS/quotes 2960 | */ 2961 | quotes?: "none" | string; 2962 | 2963 | /** 2964 | * The r CSS property defines the radius of a circle. It can only be used with the SVG circle element. If present, it overrides the circle's r attribute. 2965 | * @see https://developer.mozilla.org/docs/Web/CSS/r 2966 | */ 2967 | r?: string; 2968 | 2969 | /** 2970 | * Specifies whether or not an element is resizable by the user, and if so, along which axis/axes. 2971 | * Syntax: none | both | horizontal | vertical | block | inline 2972 | * @see https://developer.mozilla.org/docs/Web/CSS/resize 2973 | */ 2974 | resize?: "both" | "horizontal" | "none" | "vertical"; 2975 | 2976 | /** 2977 | * Specifies how far an absolutely positioned box's right margin edge is offset to the left of the right edge of the box's 'containing block'. 2978 | * Syntax: | | auto 2979 | * @see https://developer.mozilla.org/docs/Web/CSS/right 2980 | */ 2981 | right?: "auto" | string | 0; 2982 | 2983 | /** 2984 | * The rotate CSS property allows you to specify rotation transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value. 2985 | * @see https://developer.mozilla.org/docs/Web/CSS/rotate 2986 | */ 2987 | rotate?: string; 2988 | 2989 | /** 2990 | * The row-gap CSS property specifies the gutter between grid rows. 2991 | * @see https://developer.mozilla.org/docs/Web/CSS/row-gap 2992 | */ 2993 | "row-gap"?: string; 2994 | 2995 | /** 2996 | * Specifies how text is distributed within the various ruby boxes when their contents do not exactly fill their respective boxes. 2997 | * Syntax: start | center | space-between | space-around 2998 | * @see https://developer.mozilla.org/docs/Web/CSS/ruby-align 2999 | */ 3000 | "ruby-align"?: 3001 | | "auto" 3002 | | "center" 3003 | | "distribute-letter" 3004 | | "distribute-space" 3005 | | "left" 3006 | | "line-edge" 3007 | | "right" 3008 | | "start" 3009 | | "space-between" 3010 | | "space-around"; 3011 | 3012 | /** 3013 | * This property controls how ruby annotation boxes should be rendered when there are more than one in a ruby container box: whether each pair should be kept separate, the annotations should be collapsed and rendered as a group, or the separation should be determined based on the space available. 3014 | * Syntax: separate | collapse | auto 3015 | */ 3016 | "ruby-merge"?: "separate" | "collapse" | "auto"; 3017 | 3018 | /** 3019 | * Determines whether, and on which side, ruby text is allowed to partially overhang any adjacent text in addition to its own base, when the ruby text is wider than the ruby base. 3020 | */ 3021 | "ruby-overhang"?: "auto" | "end" | "none" | "start"; 3022 | 3023 | /** 3024 | * Used by the parent of elements with display: ruby-text to control the position of the ruby text with respect to its base. 3025 | * Syntax: [ alternate || [ over | under ] ] | inter-character 3026 | * @see https://developer.mozilla.org/docs/Web/CSS/ruby-position 3027 | */ 3028 | "ruby-position"?: "after" | "before" | "inline" | "right"; 3029 | 3030 | /** 3031 | * Determines whether, and on which side, ruby text is allowed to partially overhang any adjacent text in addition to its own base, when the ruby text is wider than the ruby base. 3032 | */ 3033 | "ruby-span"?: "attr(x)" | "none"; 3034 | 3035 | /** 3036 | * The rx CSS property defines the x-axis, or horizontal, radius of an SVG ellipse and the horizontal curve of the corners of an SVG rect rectangle. If present, it overrides the shape's rx attribute. 3037 | * @see https://developer.mozilla.org/docs/Web/CSS/rx 3038 | */ 3039 | rx?: string; 3040 | 3041 | /** 3042 | * The ry CSS property defines the y-axis, or vertical, radius of an SVG ellipse and the vertical curve of the corners of an SVG rect rectangle. If present, it overrides the shape's ry attribute. 3043 | * @see https://developer.mozilla.org/docs/Web/CSS/ry 3044 | */ 3045 | ry?: string; 3046 | 3047 | /** 3048 | * The scale CSS property allows you to specify scale transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value. 3049 | * @see https://developer.mozilla.org/docs/Web/CSS/scale 3050 | */ 3051 | scale?: string; 3052 | 3053 | /** 3054 | * Specifies the scrolling behavior for a scrolling box, when scrolling happens due to navigation or CSSOM scrolling APIs. 3055 | * Syntax: auto | smooth 3056 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-behavior 3057 | */ 3058 | "scroll-behavior"?: "auto" | "smooth"; 3059 | 3060 | /** 3061 | * Syntax: none | nearest 3062 | */ 3063 | "scroll-initial-target"?: "none" | "nearest"; 3064 | 3065 | /** 3066 | * The scroll-margin property is a shorthand property which sets all of the scroll-margin longhands, assigning values much like the margin property does for the margin-* longhands. 3067 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-margin 3068 | */ 3069 | "scroll-margin"?: string; 3070 | 3071 | /** 3072 | * The scroll-margin-block property is a shorthand property which sets the scroll-margin longhands in the block dimension. 3073 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block 3074 | */ 3075 | "scroll-margin-block"?: string; 3076 | 3077 | /** 3078 | * The scroll-margin-block-end property defines the margin of the scroll snap area at the end of the block dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets. 3079 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-end 3080 | */ 3081 | "scroll-margin-block-end"?: string; 3082 | 3083 | /** 3084 | * The scroll-margin-block-start property defines the margin of the scroll snap area at the start of the block dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets. 3085 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-start 3086 | */ 3087 | "scroll-margin-block-start"?: string; 3088 | 3089 | /** 3090 | * The scroll-margin-bottom property defines the bottom margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets. 3091 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-margin-bottom 3092 | */ 3093 | "scroll-margin-bottom"?: string; 3094 | 3095 | /** 3096 | * The scroll-margin-inline property is a shorthand property which sets the scroll-margin longhands in the inline dimension. 3097 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline 3098 | */ 3099 | "scroll-margin-inline"?: string; 3100 | 3101 | /** 3102 | * The scroll-margin-inline-end property defines the margin of the scroll snap area at the end of the inline dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets. 3103 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-end 3104 | */ 3105 | "scroll-margin-inline-end"?: string; 3106 | 3107 | /** 3108 | * The scroll-margin-inline-start property defines the margin of the scroll snap area at the start of the inline dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets. 3109 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-start 3110 | */ 3111 | "scroll-margin-inline-start"?: string; 3112 | 3113 | /** 3114 | * The scroll-margin-left property defines the left margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets. 3115 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-margin-left 3116 | */ 3117 | "scroll-margin-left"?: string; 3118 | 3119 | /** 3120 | * The scroll-margin-right property defines the right margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets. 3121 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-margin-right 3122 | */ 3123 | "scroll-margin-right"?: string; 3124 | 3125 | /** 3126 | * The scroll-margin-top property defines the top margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets. 3127 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-margin-top 3128 | */ 3129 | "scroll-margin-top"?: string; 3130 | 3131 | /** 3132 | * The scroll-padding property is a shorthand property which sets all of the scroll-padding longhands, assigning values much like the padding property does for the padding-* longhands. 3133 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-padding 3134 | */ 3135 | "scroll-padding"?: string; 3136 | 3137 | /** 3138 | * The scroll-padding-block property is a shorthand property which sets the scroll-padding longhands for the block dimension. 3139 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block 3140 | */ 3141 | "scroll-padding-block"?: string; 3142 | 3143 | /** 3144 | * The scroll-padding-block-end property defines offsets for the end edge in the block dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport. 3145 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-end 3146 | */ 3147 | "scroll-padding-block-end"?: string; 3148 | 3149 | /** 3150 | * The scroll-padding-block-start property defines offsets for the start edge in the block dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport. 3151 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-start 3152 | */ 3153 | "scroll-padding-block-start"?: string; 3154 | 3155 | /** 3156 | * The scroll-padding-bottom property defines offsets for the bottom of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport. 3157 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-padding-bottom 3158 | */ 3159 | "scroll-padding-bottom"?: string; 3160 | 3161 | /** 3162 | * The scroll-padding-inline property is a shorthand property which sets the scroll-padding longhands for the inline dimension. 3163 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline 3164 | */ 3165 | "scroll-padding-inline"?: string; 3166 | 3167 | /** 3168 | * The scroll-padding-inline-end property defines offsets for the end edge in the inline dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport. 3169 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-end 3170 | */ 3171 | "scroll-padding-inline-end"?: string; 3172 | 3173 | /** 3174 | * The scroll-padding-inline-start property defines offsets for the start edge in the inline dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport. 3175 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-start 3176 | */ 3177 | "scroll-padding-inline-start"?: string; 3178 | 3179 | /** 3180 | * The scroll-padding-left property defines offsets for the left of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport. 3181 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-padding-left 3182 | */ 3183 | "scroll-padding-left"?: string; 3184 | 3185 | /** 3186 | * The scroll-padding-right property defines offsets for the right of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport. 3187 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-padding-right 3188 | */ 3189 | "scroll-padding-right"?: string; 3190 | 3191 | /** 3192 | * The scroll-padding-top property defines offsets for the top of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport. 3193 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-padding-top 3194 | */ 3195 | "scroll-padding-top"?: string; 3196 | 3197 | /** 3198 | * The scroll-snap-align property specifies the box’s snap position as an alignment of its snap area (as the alignment subject) within its snap container’s snapport (as the alignment container). The two values specify the snapping alignment in the block axis and inline axis, respectively. If only one value is specified, the second value defaults to the same value. 3199 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-snap-align 3200 | */ 3201 | "scroll-snap-align"?: string; 3202 | 3203 | /** 3204 | * Defines the x and y coordinate within the element which will align with the nearest ancestor scroll container's snap-destination for the respective axis. 3205 | * Syntax: none | # 3206 | */ 3207 | "scroll-snap-coordinate"?: "none" | string | 0; 3208 | 3209 | /** 3210 | * Define the x and y coordinate within the scroll container's visual viewport which element snap points will align with. 3211 | */ 3212 | "scroll-snap-destination"?: string; 3213 | 3214 | /** 3215 | * Defines the positioning of snap points along the x axis of the scroll container it is applied to. 3216 | * Syntax: none | repeat( ) 3217 | */ 3218 | "scroll-snap-points-x"?: "none" | "repeat()" | string; 3219 | 3220 | /** 3221 | * Defines the positioning of snap points along the y axis of the scroll container it is applied to. 3222 | * Syntax: none | repeat( ) 3223 | */ 3224 | "scroll-snap-points-y"?: "none" | "repeat()" | string; 3225 | 3226 | /** 3227 | * The scroll-snap-stop CSS property defines whether the scroll container is allowed to "pass over" possible snap positions. 3228 | * Syntax: normal | always 3229 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-snap-stop 3230 | */ 3231 | "scroll-snap-stop"?: "normal" | "always"; 3232 | 3233 | /** 3234 | * Defines how strictly snap points are enforced on the scroll container. 3235 | * Syntax: none | [ x | y | block | inline | both ] [ mandatory | proximity ]? 3236 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type 3237 | */ 3238 | "scroll-snap-type"?: "none" | "mandatory" | "proximity"; 3239 | 3240 | /** 3241 | * The scroll-snap-type-x CSS property defines how strictly snap points are enforced on the horizontal axis of the scroll container in case there is one. 3242 | * 3243 | * Specifying any precise animations or physics used to enforce those snap points is not covered by this property but instead left up to the user agent. 3244 | * Syntax: none | mandatory | proximity 3245 | */ 3246 | "scroll-snap-type-x"?: "none" | "mandatory" | "proximity"; 3247 | 3248 | /** 3249 | * The scroll-snap-type-y CSS property defines how strictly snap points are enforced on the vertical axis of the scroll container in case there is one. 3250 | * 3251 | * Specifying any precise animations or physics used to enforce those snap points is not covered by this property but instead left up to the user agent. 3252 | * Syntax: none | mandatory | proximity 3253 | */ 3254 | "scroll-snap-type-y"?: "none" | "mandatory" | "proximity"; 3255 | 3256 | /** 3257 | * Defines a name that can be used to identify the source element of a scroll timeline, along with the scrollbar axis that should provide the timeline. 3258 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-timeline 3259 | */ 3260 | "scroll-timeline"?: string; 3261 | 3262 | /** 3263 | * Specifies the scrollbar that will be used to provide the timeline for a scroll-timeline animation 3264 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-timeline-axis 3265 | */ 3266 | "scroll-timeline-axis"?: string; 3267 | 3268 | /** 3269 | * Defines a name that can be used to identify an element as the source of a scroll-timeline. 3270 | * @see https://developer.mozilla.org/docs/Web/CSS/scroll-timeline-name 3271 | */ 3272 | "scroll-timeline-name"?: string; 3273 | 3274 | /** 3275 | * Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar. 3276 | */ 3277 | "scrollbar-3dlight-color"?: string; 3278 | 3279 | /** 3280 | * Determines the color of the arrow elements of a scroll arrow. 3281 | */ 3282 | "scrollbar-arrow-color"?: string; 3283 | 3284 | /** 3285 | * Determines the color of the main elements of a scroll bar, which include the scroll box, track, and scroll arrows. 3286 | */ 3287 | "scrollbar-base-color"?: string; 3288 | 3289 | /** 3290 | * The scrollbar-color CSS property sets the color of the scrollbar track and thumb. 3291 | * @see https://developer.mozilla.org/docs/Web/CSS/scrollbar-color 3292 | */ 3293 | "scrollbar-color"?: string; 3294 | 3295 | /** 3296 | * Determines the color of the gutter of a scroll bar. 3297 | */ 3298 | "scrollbar-darkshadow-color"?: string; 3299 | 3300 | /** 3301 | * Determines the color of the scroll box and scroll arrows of a scroll bar. 3302 | */ 3303 | "scrollbar-face-color"?: string; 3304 | 3305 | /** 3306 | * The scrollbar-gutter CSS property allows authors to reserve space for the scrollbar, preventing unwanted layout changes as the content grows while also avoiding unnecessary visuals when scrolling isn't needed. 3307 | * @see https://developer.mozilla.org/docs/Web/CSS/scrollbar-gutter 3308 | */ 3309 | "scrollbar-gutter"?: string; 3310 | 3311 | /** 3312 | * Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar. 3313 | */ 3314 | "scrollbar-highlight-color"?: string; 3315 | 3316 | /** 3317 | * Determines the color of the bottom and right edges of the scroll box and scroll arrows of a scroll bar. 3318 | */ 3319 | "scrollbar-shadow-color"?: string; 3320 | 3321 | /** 3322 | * Determines the color of the track element of a scroll bar. 3323 | */ 3324 | "scrollbar-track-color"?: string; 3325 | 3326 | /** 3327 | * The scrollbar-width property allows the author to set the maximum thickness of an element’s scrollbars when they are shown. 3328 | * Syntax: auto | thin | none 3329 | * @see https://developer.mozilla.org/docs/Web/CSS/scrollbar-width 3330 | */ 3331 | "scrollbar-width"?: "auto" | "thin" | "none"; 3332 | 3333 | /** 3334 | * Defines the alpha channel threshold used to extract the shape using an image. A value of 0.5 means that the shape will enclose all the pixels that are more than 50% opaque. 3335 | * @see https://developer.mozilla.org/docs/Web/CSS/shape-image-threshold 3336 | */ 3337 | "shape-image-threshold"?: string; 3338 | 3339 | /** 3340 | * Adds a margin to a 'shape-outside'. This defines a new shape that is the smallest contour that includes all the points that are the 'shape-margin' distance outward in the perpendicular direction from a point on the underlying shape. 3341 | * @see https://developer.mozilla.org/docs/Web/CSS/shape-margin 3342 | */ 3343 | "shape-margin"?: string; 3344 | 3345 | /** 3346 | * Specifies an orthogonal rotation to be applied to an image before it is laid out. 3347 | * Syntax: none | [ || ] | 3348 | * @see https://developer.mozilla.org/docs/Web/CSS/shape-outside 3349 | */ 3350 | "shape-outside"?: "margin-box" | "none" | string; 3351 | 3352 | /** 3353 | * Provides hints about what tradeoffs to make as it renders vector graphics elements such as elements and basic shapes such as circles and rectangles. 3354 | * Syntax: auto | optimizeSpeed | crispEdges | geometricPrecision 3355 | * @see https://developer.mozilla.org/docs/Web/CSS/shape-rendering 3356 | */ 3357 | "shape-rendering"?: 3358 | | "auto" 3359 | | "crispEdges" 3360 | | "geometricPrecision" 3361 | | "optimizeSpeed"; 3362 | 3363 | /** 3364 | * Indicates what color to use at that gradient stop. 3365 | * @see https://developer.mozilla.org/docs/Web/CSS/stop-color 3366 | */ 3367 | "stop-color"?: string; 3368 | 3369 | /** 3370 | * Defines the opacity of a given gradient stop. 3371 | * @see https://developer.mozilla.org/docs/Web/CSS/stop-opacity 3372 | */ 3373 | "stop-opacity"?: string; 3374 | 3375 | /** 3376 | * Paints along the outline of the given graphical element. 3377 | * Syntax: 3378 | * @see https://developer.mozilla.org/docs/Web/CSS/stroke 3379 | */ 3380 | stroke?: "url()" | "none" | string; 3381 | 3382 | /** 3383 | * Controls the pattern of dashes and gaps used to stroke paths. 3384 | * Syntax: none | 3385 | * @see https://developer.mozilla.org/docs/Web/CSS/stroke-dasharray 3386 | */ 3387 | "stroke-dasharray"?: "none" | string | 0; 3388 | 3389 | /** 3390 | * Specifies the distance into the dash pattern to start the dash. 3391 | * @see https://developer.mozilla.org/docs/Web/CSS/stroke-dashoffset 3392 | */ 3393 | "stroke-dashoffset"?: string; 3394 | 3395 | /** 3396 | * Specifies the shape to be used at the end of open subpaths when they are stroked. 3397 | * Syntax: butt | round | square 3398 | * @see https://developer.mozilla.org/docs/Web/CSS/stroke-linecap 3399 | */ 3400 | "stroke-linecap"?: "butt" | "round" | "square"; 3401 | 3402 | /** 3403 | * Specifies the shape to be used at the corners of paths or basic shapes when they are stroked. 3404 | * Syntax: miter | miter-clip | round | bevel | arcs 3405 | * @see https://developer.mozilla.org/docs/Web/CSS/stroke-linejoin 3406 | */ 3407 | "stroke-linejoin"?: "bevel" | "miter" | "round"; 3408 | 3409 | /** 3410 | * When two line segments meet at a sharp angle and miter joins have been specified for 'stroke-linejoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path. 3411 | * @see https://developer.mozilla.org/docs/Web/CSS/stroke-miterlimit 3412 | */ 3413 | "stroke-miterlimit"?: string; 3414 | 3415 | /** 3416 | * Specifies the opacity of the painting operation used to stroke the current object. 3417 | * @see https://developer.mozilla.org/docs/Web/CSS/stroke-opacity 3418 | */ 3419 | "stroke-opacity"?: string; 3420 | 3421 | /** 3422 | * Specifies the width of the stroke on the current object. 3423 | * @see https://developer.mozilla.org/docs/Web/CSS/stroke-width 3424 | */ 3425 | "stroke-width"?: string; 3426 | 3427 | /** 3428 | * Determines the width of the tab character (U+0009), in space characters (U+0020), when rendered. 3429 | * @see https://developer.mozilla.org/docs/Web/CSS/tab-size 3430 | */ 3431 | "tab-size"?: string; 3432 | 3433 | /** 3434 | * Controls the algorithm used to lay out the table cells, rows, and columns. 3435 | * Syntax: auto | fixed 3436 | * @see https://developer.mozilla.org/docs/Web/CSS/table-layout 3437 | */ 3438 | "table-layout"?: "auto" | "fixed"; 3439 | 3440 | /** 3441 | * Describes how inline contents of a block are horizontally aligned if the contents do not completely fill the line box. 3442 | * Syntax: start | end | left | right | center | justify | match-parent 3443 | * @see https://developer.mozilla.org/docs/Web/CSS/text-align 3444 | */ 3445 | "text-align"?: "center" | "end" | "justify" | "left" | "right" | "start"; 3446 | 3447 | /** 3448 | * Describes how the last line of a block or a line right before a forced line break is aligned when 'text-align' is set to 'justify'. 3449 | * Syntax: auto | start | end | left | right | center | justify 3450 | * @see https://developer.mozilla.org/docs/Web/CSS/text-align-last 3451 | */ 3452 | "text-align-last"?: "auto" | "center" | "justify" | "left" | "right"; 3453 | 3454 | /** 3455 | * Used to align (start-, middle- or end-alignment) a string of text relative to a given point. 3456 | * Syntax: start | middle | end 3457 | * @see https://developer.mozilla.org/docs/Web/CSS/text-anchor 3458 | */ 3459 | "text-anchor"?: "end" | "middle" | "start"; 3460 | 3461 | /** 3462 | * The text-box CSS property is a shorthand that corresponds to the text-box-trim and text-box-edge properties, which together specify the amount of space to trim from the block-start edge and block-end edge of a text element's block container. 3463 | * @see https://developer.mozilla.org/docs/Web/CSS/text-box 3464 | */ 3465 | "text-box"?: string; 3466 | 3467 | /** 3468 | * The text-box-edge CSS property specifies an amount of space to trim from a text element's block container. 3469 | * @see https://developer.mozilla.org/docs/Web/CSS/text-box-edge 3470 | */ 3471 | "text-box-edge"?: string; 3472 | 3473 | /** 3474 | * The text-box-trim CSS property specifies which of the over and under edges of text content to trim from a text element's block container. 3475 | * Syntax: none | trim-start | trim-end | trim-both 3476 | * @see https://developer.mozilla.org/docs/Web/CSS/text-box-trim 3477 | */ 3478 | "text-box-trim"?: "none" | "trim-start" | "trim-end" | "trim-both"; 3479 | 3480 | /** 3481 | * The text-combine-upright CSS property specifies the combination of multiple characters into the space of a single character. If the combined text is wider than 1em, the user agent must fit the contents within 1em. The resulting composition is treated as a single upright glyph for layout and decoration. This property only has an effect in vertical writing modes. 3482 | * 3483 | * This is used to produce an effect that is known as tate-chū-yoko (縦中横) in Japanese, or as 直書橫向 in Chinese. 3484 | * @see https://developer.mozilla.org/docs/Web/CSS/text-combine-upright 3485 | */ 3486 | "text-combine-upright"?: string; 3487 | 3488 | /** 3489 | * Decorations applied to font used for an element's text. 3490 | * Syntax: <'text-decoration-line'> || <'text-decoration-style'> || <'text-decoration-color'> || <'text-decoration-thickness'> 3491 | * @see https://developer.mozilla.org/docs/Web/CSS/text-decoration 3492 | */ 3493 | "text-decoration"?: 3494 | | "dashed" 3495 | | "dotted" 3496 | | "double" 3497 | | "line-through" 3498 | | "none" 3499 | | "overline" 3500 | | "solid" 3501 | | "underline" 3502 | | "wavy" 3503 | | string; 3504 | 3505 | /** 3506 | * Specifies the color of text decoration (underlines overlines, and line-throughs) set on the element with text-decoration-line. 3507 | * @see https://developer.mozilla.org/docs/Web/CSS/text-decoration-color 3508 | */ 3509 | "text-decoration-color"?: string; 3510 | 3511 | /** 3512 | * Specifies what line decorations, if any, are added to the element. 3513 | * Syntax: none | [ underline || overline || line-through || blink ] | spelling-error | grammar-error 3514 | * @see https://developer.mozilla.org/docs/Web/CSS/text-decoration-line 3515 | */ 3516 | "text-decoration-line"?: "line-through" | "none" | "overline" | "underline"; 3517 | 3518 | /** 3519 | * The text-decoration-skip CSS property specifies what parts of the element’s content any text decoration affecting the element must skip over. It controls all text decoration lines drawn by the element and also any text decoration lines drawn by its ancestors. 3520 | * @see https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip 3521 | */ 3522 | "text-decoration-skip"?: string; 3523 | 3524 | /** 3525 | * The text-decoration-skip-ink CSS property specifies how overlines and underlines are drawn when they pass over glyph ascenders and descenders. 3526 | * Syntax: auto | all | none 3527 | * @see https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip-ink 3528 | */ 3529 | "text-decoration-skip-ink"?: "auto" | "all" | "none"; 3530 | 3531 | /** 3532 | * Specifies the line style for underline, line-through and overline text decoration. 3533 | * Syntax: solid | double | dotted | dashed | wavy 3534 | * @see https://developer.mozilla.org/docs/Web/CSS/text-decoration-style 3535 | */ 3536 | "text-decoration-style"?: 3537 | | "dashed" 3538 | | "dotted" 3539 | | "double" 3540 | | "none" 3541 | | "solid" 3542 | | "wavy"; 3543 | 3544 | /** 3545 | * The text-decoration-thickness CSS property sets the thickness, or width, of the decoration line that is used on text in an element, such as a line-through, underline, or overline. 3546 | * @see https://developer.mozilla.org/docs/Web/CSS/text-decoration-thickness 3547 | */ 3548 | "text-decoration-thickness"?: string; 3549 | 3550 | /** 3551 | * The text-emphasis CSS property is a shorthand property for setting text-emphasis-style and text-emphasis-color in one declaration. This property will apply the specified emphasis mark to each character of the element's text, except separator characters, like spaces, and control characters. 3552 | * @see https://developer.mozilla.org/docs/Web/CSS/text-emphasis 3553 | */ 3554 | "text-emphasis"?: string; 3555 | 3556 | /** 3557 | * The text-emphasis-color CSS property defines the color used to draw emphasis marks on text being rendered in the HTML document. This value can also be set and reset using the text-emphasis shorthand. 3558 | * @see https://developer.mozilla.org/docs/Web/CSS/text-emphasis-color 3559 | */ 3560 | "text-emphasis-color"?: string; 3561 | 3562 | /** 3563 | * The text-emphasis-position CSS property describes where emphasis marks are drawn at. The effect of emphasis marks on the line height is the same as for ruby text: if there isn't enough place, the line height is increased. 3564 | * @see https://developer.mozilla.org/docs/Web/CSS/text-emphasis-position 3565 | */ 3566 | "text-emphasis-position"?: string; 3567 | 3568 | /** 3569 | * The text-emphasis-style CSS property defines the type of emphasis used. It can also be set, and reset, using the text-emphasis shorthand. 3570 | * @see https://developer.mozilla.org/docs/Web/CSS/text-emphasis-style 3571 | */ 3572 | "text-emphasis-style"?: string; 3573 | 3574 | /** 3575 | * Specifies the indentation applied to lines of inline content in a block. The indentation only affects the first line of inline content in the block unless the 'hanging' keyword is specified, in which case it affects all lines except the first. 3576 | * @see https://developer.mozilla.org/docs/Web/CSS/text-indent 3577 | */ 3578 | "text-indent"?: string; 3579 | 3580 | /** 3581 | * Selects the justification algorithm used when 'text-align' is set to 'justify'. The property applies to block containers, but the UA may (but is not required to) also support it on inline elements. 3582 | * Syntax: auto | inter-character | inter-word | none 3583 | * @see https://developer.mozilla.org/docs/Web/CSS/text-justify 3584 | */ 3585 | "text-justify"?: 3586 | | "auto" 3587 | | "distribute" 3588 | | "distribute-all-lines" 3589 | | "inter-cluster" 3590 | | "inter-ideograph" 3591 | | "inter-word" 3592 | | "kashida" 3593 | | "newspaper"; 3594 | 3595 | /** 3596 | * Specifies the orientation of text within a line. 3597 | * Syntax: mixed | upright | sideways 3598 | * @see https://developer.mozilla.org/docs/Web/CSS/text-orientation 3599 | */ 3600 | "text-orientation"?: "sideways" | "sideways-right" | "upright"; 3601 | 3602 | /** 3603 | * Text can overflow for example when it is prevented from wrapping. 3604 | * Syntax: [ clip | ellipsis | ]{1,2} 3605 | * @see https://developer.mozilla.org/docs/Web/CSS/text-overflow 3606 | */ 3607 | "text-overflow"?: "clip" | "ellipsis" | string; 3608 | 3609 | /** 3610 | * The creator of SVG content might want to provide a hint to the implementation about what tradeoffs to make as it renders text. The 'text-rendering' property provides these hints. 3611 | * Syntax: auto | optimizeSpeed | optimizeLegibility | geometricPrecision 3612 | * @see https://developer.mozilla.org/docs/Web/CSS/text-rendering 3613 | */ 3614 | "text-rendering"?: 3615 | | "auto" 3616 | | "geometricPrecision" 3617 | | "optimizeLegibility" 3618 | | "optimizeSpeed"; 3619 | 3620 | /** 3621 | * Enables shadow effects to be applied to the text of the element. 3622 | * Syntax: none | # 3623 | * @see https://developer.mozilla.org/docs/Web/CSS/text-shadow 3624 | */ 3625 | "text-shadow"?: "none" | string | 0; 3626 | 3627 | /** 3628 | * The text-size-adjust CSS property controls the text inflation algorithm used on some smartphones and tablets. Other browsers will ignore this property. 3629 | * @see https://developer.mozilla.org/docs/Web/CSS/text-size-adjust 3630 | */ 3631 | "text-size-adjust"?: string; 3632 | 3633 | /** 3634 | * The text-spacing-trim CSS property controls the internal spacing set on Chinese/Japanese/Korean (CJK) punctuation characters between adjacent characters (kerning) and at the start or end of text lines. 3635 | * Syntax: space-all | normal | space-first | trim-start 3636 | * @see https://developer.mozilla.org/docs/Web/CSS/text-spacing-trim 3637 | */ 3638 | "text-spacing-trim"?: "space-all" | "normal" | "space-first" | "trim-start"; 3639 | 3640 | /** 3641 | * Controls capitalization effects of an element's text. 3642 | * Syntax: none | [ capitalize | uppercase | lowercase ] || full-width || full-size-kana | math-auto 3643 | * @see https://developer.mozilla.org/docs/Web/CSS/text-transform 3644 | */ 3645 | "text-transform"?: "capitalize" | "lowercase" | "none" | "uppercase"; 3646 | 3647 | /** 3648 | * The text-underline-offset CSS property sets the offset distance of an underline text decoration line (applied using text-decoration) from its original position. 3649 | * @see https://developer.mozilla.org/docs/Web/CSS/text-underline-offset 3650 | */ 3651 | "text-underline-offset"?: string; 3652 | 3653 | /** 3654 | * Sets the position of an underline specified on the same element: it does not affect underlines specified by ancestor elements. This property is typically used in vertical writing contexts such as in Japanese documents where it often desired to have the underline appear 'over' (to the right of) the affected run of text 3655 | * Syntax: auto | from-font | [ under || [ left | right ] ] 3656 | * @see https://developer.mozilla.org/docs/Web/CSS/text-underline-position 3657 | */ 3658 | "text-underline-position"?: "above" | "auto" | "below"; 3659 | 3660 | /** 3661 | * The text-wrap CSS property controls how text inside an element is wrapped. 3662 | * @see https://developer.mozilla.org/docs/Web/CSS/text-wrap 3663 | */ 3664 | "text-wrap"?: string; 3665 | 3666 | /** 3667 | * The text-wrap-mode CSS property controls whether the text inside an element is wrapped. The different values provide alternate ways of wrapping the content of a block element. It can also be set, and reset, using the {{CSSXRef("text-wrap")}} shorthand. 3668 | * Syntax: wrap | nowrap 3669 | * @see https://developer.mozilla.org/docs/Web/CSS/text-wrap-mode 3670 | */ 3671 | "text-wrap-mode"?: "wrap" | "nowrap"; 3672 | 3673 | /** 3674 | * The text-wrap-style CSS property controls how text inside an element is wrapped. The different values provide alternate ways of wrapping the content of a block element. It can also be set, and reset, using the {{CSSXRef("text-wrap")}} shorthand. 3675 | * Syntax: auto | balance | stable | pretty 3676 | * @see https://developer.mozilla.org/docs/Web/CSS/text-wrap-style 3677 | */ 3678 | "text-wrap-style"?: "auto" | "balance" | "stable" | "pretty"; 3679 | 3680 | /** 3681 | * The timeline-scope CSS property modifies the scope of a named animation timeline. 3682 | * @see https://developer.mozilla.org/docs/Web/CSS/timeline-scope 3683 | */ 3684 | "timeline-scope"?: string; 3685 | 3686 | /** 3687 | * Specifies how far an absolutely positioned box's top margin edge is offset below the top edge of the box's 'containing block'. 3688 | * Syntax: | | auto 3689 | * @see https://developer.mozilla.org/docs/Web/CSS/top 3690 | */ 3691 | top?: "auto" | string | 0; 3692 | 3693 | /** 3694 | * Determines whether touch input may trigger default behavior supplied by user agent. 3695 | * Syntax: auto | none | [ [ pan-x | pan-left | pan-right ] || [ pan-y | pan-up | pan-down ] || pinch-zoom ] | manipulation 3696 | * @see https://developer.mozilla.org/docs/Web/CSS/touch-action 3697 | */ 3698 | "touch-action"?: 3699 | | "auto" 3700 | | "cross-slide-x" 3701 | | "cross-slide-y" 3702 | | "double-tap-zoom" 3703 | | "manipulation" 3704 | | "none" 3705 | | "pan-x" 3706 | | "pan-y" 3707 | | "pinch-zoom"; 3708 | 3709 | /** 3710 | * A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG. 3711 | * Syntax: none | 3712 | * @see https://developer.mozilla.org/docs/Web/CSS/transform 3713 | */ 3714 | transform?: 3715 | | "matrix()" 3716 | | "matrix3d()" 3717 | | "none" 3718 | | "perspective()" 3719 | | "rotate()" 3720 | | "rotate3d()" 3721 | | "rotateX('angle')" 3722 | | "rotateY('angle')" 3723 | | "rotateZ('angle')" 3724 | | "scale()" 3725 | | "scale3d()" 3726 | | "scaleX()" 3727 | | "scaleY()" 3728 | | "scaleZ()" 3729 | | "skew()" 3730 | | "skewX()" 3731 | | "skewY()" 3732 | | "translate()" 3733 | | "translate3d()" 3734 | | "translateX()" 3735 | | "translateY()" 3736 | | "translateZ()" 3737 | | string; 3738 | 3739 | /** 3740 | * The transform-box CSS property defines the layout box to which the transform and transform-origin properties relate. 3741 | * Syntax: content-box | border-box | fill-box | stroke-box | view-box 3742 | * @see https://developer.mozilla.org/docs/Web/CSS/transform-box 3743 | */ 3744 | "transform-box"?: 3745 | | "content-box" 3746 | | "border-box" 3747 | | "fill-box" 3748 | | "stroke-box" 3749 | | "view-box"; 3750 | 3751 | /** 3752 | * Establishes the origin of transformation for an element. 3753 | * @see https://developer.mozilla.org/docs/Web/CSS/transform-origin 3754 | */ 3755 | "transform-origin"?: string; 3756 | 3757 | /** 3758 | * Defines how nested elements are rendered in 3D space. 3759 | * Syntax: flat | preserve-3d 3760 | * @see https://developer.mozilla.org/docs/Web/CSS/transform-style 3761 | */ 3762 | "transform-style"?: "flat" | "preserve-3d"; 3763 | 3764 | /** 3765 | * Shorthand property combines four of the transition properties into a single property. 3766 | * Syntax: # 3767 | * @see https://developer.mozilla.org/docs/Web/CSS/transition 3768 | */ 3769 | transition?: "all" | "none" | string; 3770 | 3771 | /** 3772 | * The transition-behavior CSS property specifies whether transitions will be started for properties whose animation behavior is discrete. 3773 | * @see https://developer.mozilla.org/docs/Web/CSS/transition-behavior 3774 | */ 3775 | "transition-behavior"?: string; 3776 | 3777 | /** 3778 | * Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied. 3779 | * @see https://developer.mozilla.org/docs/Web/CSS/transition-delay 3780 | */ 3781 | "transition-delay"?: string; 3782 | 3783 | /** 3784 | * Specifies how long the transition from the old value to the new value should take. 3785 | * @see https://developer.mozilla.org/docs/Web/CSS/transition-duration 3786 | */ 3787 | "transition-duration"?: string; 3788 | 3789 | /** 3790 | * Specifies the name of the CSS property to which the transition is applied. 3791 | * Syntax: none | # 3792 | * @see https://developer.mozilla.org/docs/Web/CSS/transition-property 3793 | */ 3794 | "transition-property"?: "all" | "none" | string; 3795 | 3796 | /** 3797 | * Describes how the intermediate values used during a transition will be calculated. 3798 | * @see https://developer.mozilla.org/docs/Web/CSS/transition-timing-function 3799 | */ 3800 | "transition-timing-function"?: string; 3801 | 3802 | /** 3803 | * The translate CSS property allows you to specify translation transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value. 3804 | * @see https://developer.mozilla.org/docs/Web/CSS/translate 3805 | */ 3806 | translate?: string; 3807 | 3808 | /** 3809 | * The level of embedding with respect to the bidirectional algorithm. 3810 | * Syntax: normal | embed | isolate | bidi-override | isolate-override | plaintext 3811 | * @see https://developer.mozilla.org/docs/Web/CSS/unicode-bidi 3812 | */ 3813 | "unicode-bidi"?: 3814 | | "bidi-override" 3815 | | "embed" 3816 | | "isolate" 3817 | | "isolate-override" 3818 | | "normal" 3819 | | "plaintext"; 3820 | 3821 | /** 3822 | * Controls the appearance of selection. 3823 | * Syntax: auto | text | none | all 3824 | * @see https://developer.mozilla.org/docs/Web/CSS/user-select 3825 | */ 3826 | "user-select"?: "all" | "auto" | "contain" | "none" | "text"; 3827 | 3828 | /** 3829 | * The vector-effect CSS property suppresses specific transformation effects in SVG, thus permitting effects like a road on a map staying the same width no matter how the map is zoomed, or allowing a diagram key to retain its position and size regardless of other transforms. It can only be used with SVG elements that accept the vector-effect attribute. When used, the CSS value overrides any values of the element's vector-effect attribute. 3830 | * Syntax: none | non-scaling-stroke | non-scaling-size | non-rotation | fixed-position 3831 | * @see https://developer.mozilla.org/docs/Web/CSS/vector-effect 3832 | */ 3833 | "vector-effect"?: 3834 | | "none" 3835 | | "non-scaling-stroke" 3836 | | "non-scaling-size" 3837 | | "non-rotation" 3838 | | "fixed-position"; 3839 | 3840 | /** 3841 | * Affects the vertical positioning of the inline boxes generated by an inline-level element inside a line box. 3842 | * Syntax: baseline | sub | super | text-top | text-bottom | middle | top | bottom | | 3843 | * @see https://developer.mozilla.org/docs/Web/CSS/vertical-align 3844 | */ 3845 | "vertical-align"?: 3846 | | "auto" 3847 | | "baseline" 3848 | | "bottom" 3849 | | "middle" 3850 | | "sub" 3851 | | "super" 3852 | | "text-bottom" 3853 | | "text-top" 3854 | | "top" 3855 | | "-webkit-baseline-middle" 3856 | | string 3857 | | 0; 3858 | 3859 | /** 3860 | * The view-timeline CSS shorthand property is used to define a named view progress timeline, which is progressed through based on the change in visibility of an element (known as the subject) inside a scrollable element (scroller). view-timeline is set on the subject. 3861 | * @see https://developer.mozilla.org/docs/Web/CSS/view-timeline 3862 | */ 3863 | "view-timeline"?: string; 3864 | 3865 | /** 3866 | * The view-timeline-axis CSS property is used to specify the scrollbar direction that will be used to provide the timeline for a named view progress timeline animation, which is progressed through based on the change in visibility of an element (known as the subject) inside a scrollable element (scroller). view-timeline-axis is set on the subject. See CSS scroll-driven animations for more details. 3867 | * @see https://developer.mozilla.org/docs/Web/CSS/view-timeline-axis 3868 | */ 3869 | "view-timeline-axis"?: string; 3870 | 3871 | /** 3872 | * The view-timeline-inset CSS property is used to specify one or two values representing an adjustment to the position of the scrollport (see Scroll container for more details) in which the subject element of a named view progress timeline animation is deemed to be visible. Put another way, this allows you to specify start and/or end inset (or outset) values that offset the position of the timeline. 3873 | * @see https://developer.mozilla.org/docs/Web/CSS/view-timeline-inset 3874 | */ 3875 | "view-timeline-inset"?: string; 3876 | 3877 | /** 3878 | * The view-timeline-name CSS property is used to define the name of a named view progress timeline, which is progressed through based on the change in visibility of an element (known as the subject) inside a scrollable element (scroller). view-timeline is set on the subject. 3879 | * @see https://developer.mozilla.org/docs/Web/CSS/view-timeline-name 3880 | */ 3881 | "view-timeline-name"?: string; 3882 | 3883 | "view-transition-class"?: string; 3884 | 3885 | /** 3886 | * The view-transition-name CSS property provides the selected element with a distinct identifying name (a custom-ident) and causes it to participate in a separate view transition from the root view transition — or no view transition if the none value is specified. 3887 | * @see https://developer.mozilla.org/docs/Web/CSS/view-transition-name 3888 | */ 3889 | "view-transition-name"?: string; 3890 | 3891 | /** 3892 | * Specifies whether the boxes generated by an element are rendered. Invisible boxes still affect layout (set the 'display' property to 'none' to suppress box generation altogether). 3893 | * Syntax: visible | hidden | collapse 3894 | * @see https://developer.mozilla.org/docs/Web/CSS/visibility 3895 | */ 3896 | visibility?: "collapse" | "hidden" | "visible"; 3897 | 3898 | /** 3899 | * Specifies how whitespace is handled in an element. 3900 | * @see https://developer.mozilla.org/docs/Web/CSS/white-space 3901 | */ 3902 | "white-space"?: string; 3903 | 3904 | /** 3905 | * The white-space-collapse CSS property controls how white space inside an element is collapsed. 3906 | * Syntax: collapse | preserve | preserve-breaks | preserve-spaces | break-spaces 3907 | * @see https://developer.mozilla.org/docs/Web/CSS/white-space-collapse 3908 | */ 3909 | "white-space-collapse"?: 3910 | | "collapse" 3911 | | "preserve" 3912 | | "preserve-breaks" 3913 | | "preserve-spaces" 3914 | | "break-spaces"; 3915 | 3916 | /** 3917 | * Specifies the minimum number of line boxes of a block container that must be left in a fragment after a break. 3918 | * @see https://developer.mozilla.org/docs/Web/CSS/widows 3919 | */ 3920 | widows?: string; 3921 | 3922 | /** 3923 | * Specifies the width of the content area, padding area or border area (depending on 'box-sizing') of certain boxes. 3924 | * Syntax: auto | | min-content | max-content | fit-content | fit-content() | | 3925 | * @see https://developer.mozilla.org/docs/Web/CSS/width 3926 | */ 3927 | width?: "auto" | "fit-content" | "max-content" | "min-content" | string | 0; 3928 | 3929 | /** 3930 | * Provides a rendering hint to the user agent, stating what kinds of changes the author expects to perform on the element. 3931 | * Syntax: auto | # 3932 | * @see https://developer.mozilla.org/docs/Web/CSS/will-change 3933 | */ 3934 | "will-change"?: "auto" | "contents" | "scroll-position" | string; 3935 | 3936 | /** 3937 | * Specifies line break opportunities for non-CJK scripts. 3938 | * Syntax: normal | break-all | keep-all | break-word | auto-phrase 3939 | * @see https://developer.mozilla.org/docs/Web/CSS/word-break 3940 | */ 3941 | "word-break"?: "break-all" | "keep-all" | "normal"; 3942 | 3943 | /** 3944 | * Specifies additional spacing between "words". 3945 | * Syntax: normal | 3946 | * @see https://developer.mozilla.org/docs/Web/CSS/word-spacing 3947 | */ 3948 | "word-spacing"?: "normal" | string | 0; 3949 | 3950 | /** 3951 | * Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit. 3952 | * Syntax: normal | break-word 3953 | */ 3954 | "word-wrap"?: "break-word" | "normal"; 3955 | 3956 | /** 3957 | * This is a shorthand property for both 'direction' and 'block-progression'. 3958 | * Syntax: horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr 3959 | * @see https://developer.mozilla.org/docs/Web/CSS/writing-mode 3960 | */ 3961 | "writing-mode"?: 3962 | | "horizontal-tb" 3963 | | "sideways-lr" 3964 | | "sideways-rl" 3965 | | "vertical-lr" 3966 | | "vertical-rl"; 3967 | 3968 | /** 3969 | * The x CSS property defines the x-axis coordinate of the top left corner of the SVG rect shape, image image, foreignObject viewport or nested svg viewport relative to the nearest ancestor's user coordinate system. If present, it overrides the element's x attribute. 3970 | * @see https://developer.mozilla.org/docs/Web/CSS/x 3971 | */ 3972 | x?: string; 3973 | 3974 | /** 3975 | * The y CSS property defines the y-axis coordinate of the top left corner of the SVG rect shape, image image, foreignObject viewport and nested svg viewport relative to the nearest ancestor's user coordinate system. If present, it overrides the element's y attribute. 3976 | * @see https://developer.mozilla.org/docs/Web/CSS/y 3977 | */ 3978 | y?: string; 3979 | 3980 | /** 3981 | * For a positioned box, the 'z-index' property specifies the stack level of the box in the current stacking context and whether the box establishes a local stacking context. 3982 | * Syntax: auto | 3983 | * @see https://developer.mozilla.org/docs/Web/CSS/z-index 3984 | */ 3985 | "z-index"?: "auto" | string | number; 3986 | 3987 | /** 3988 | * Non-standard. Specifies the magnification scale of the object. See 'transform: scale()' for a standards-based alternative. 3989 | * Syntax: normal | reset | || 3990 | * @see https://developer.mozilla.org/docs/Web/CSS/zoom 3991 | */ 3992 | zoom?: "normal" | string | number; 3993 | } 3994 | -------------------------------------------------------------------------------- /jsx-runtime.ts: -------------------------------------------------------------------------------- 1 | import type { HTMLElements } from "./html.ts"; 2 | import type { CSSProperties } from "./css.ts"; 3 | 4 | interface RawHtml { 5 | __html?: string; 6 | } 7 | 8 | type Props = Record; 9 | 10 | type Content = 11 | | string 12 | | number 13 | | boolean 14 | | RawHtml 15 | | ((...args: unknown[]) => Content) 16 | | Content[]; 17 | 18 | const ssxElement = Symbol.for("ssx.element"); 19 | 20 | interface Component { 21 | // deno-lint-ignore no-explicit-any 22 | type: string | ((props: Props) => any); 23 | props: Props; 24 | } 25 | 26 | const voidElements = new Set([ 27 | "area", 28 | "base", 29 | "br", 30 | "col", 31 | "embed", 32 | "hr", 33 | "img", 34 | "input", 35 | "link", 36 | "meta", 37 | "param", 38 | "source", 39 | "track", 40 | "wbr", 41 | ]); 42 | 43 | const attributes = new Map([ 44 | ["className", "class"], 45 | ["htmlFor", "for"], 46 | ]); 47 | 48 | const proto = Object.create(null, { 49 | [ssxElement]: { 50 | value: true, 51 | enumerable: false, 52 | }, 53 | toString: { 54 | value: function () { 55 | return renderComponent(this); 56 | }, 57 | }, 58 | }); 59 | 60 | /** The jsx function to create elements */ 61 | export function jsx( 62 | type: string, 63 | props: Props, 64 | ): Component { 65 | const element = Object.create(proto); 66 | element.type = type; 67 | element.props = props; 68 | return element; 69 | } 70 | 71 | /** Alias jsxs to jsx for compatibility with automatic runtime */ 72 | export { jsx as jsxs }; 73 | 74 | /** Fragment component to group multiple elements */ 75 | export function Fragment(props: { children: unknown }) { 76 | return props.children; 77 | } 78 | 79 | /** Required for "precompile" mode */ 80 | export async function jsxTemplate( 81 | strings: string[], 82 | ...values: unknown[] 83 | ): Promise { 84 | let result = strings[0]; 85 | for (let i = 0; i < values.length; i++) { 86 | const value = values[i]; 87 | 88 | if (typeof value === "string") { 89 | result += value; 90 | } else if (isComponent(value)) { 91 | result += await renderComponent(value); 92 | } else { 93 | result += await value; 94 | } 95 | 96 | result += strings[i + 1]; 97 | } 98 | return result; 99 | } 100 | 101 | /** Required for "precompile" mode: render content */ 102 | export async function jsxEscape(content: Content): Promise { 103 | if (isEmpty(content)) { 104 | return ""; 105 | } 106 | 107 | if (Array.isArray(content)) { 108 | return (await Promise.all(content.map(jsxEscape))).join(""); 109 | } 110 | 111 | switch (typeof content) { 112 | case "string": 113 | return content 114 | .replaceAll("&", "&") 115 | .replaceAll("<", "<") 116 | .replaceAll(">", ">"); 117 | case "object": 118 | if ("__html" in content) { 119 | return (content as RawHtml).__html ?? ""; 120 | } 121 | if (isComponent(content)) { 122 | return await renderComponent(content); 123 | } 124 | break; 125 | case "number": 126 | case "boolean": 127 | return content.toString(); 128 | } 129 | 130 | return content as Promise; 131 | } 132 | 133 | // deno-lint-ignore no-explicit-any 134 | function isComponent(value: any): value is Component { 135 | return value !== null && typeof value === "object" && 136 | value[ssxElement] === true; 137 | } 138 | 139 | export async function renderComponent( 140 | component: Component | Component[], 141 | ): Promise { 142 | if (Array.isArray(component)) { 143 | return (await Promise.all(component.map(renderComponent))).join(""); 144 | } 145 | 146 | if (!isComponent(component)) { 147 | return await jsxEscape(component); 148 | } 149 | 150 | const { type, props } = component; 151 | 152 | // A Fragment 153 | if (type === Fragment) { 154 | return await jsxEscape(props.children as Content); 155 | } 156 | 157 | // An HTML tag 158 | if (typeof type === "string") { 159 | const isVoid = voidElements.has(type); 160 | const attrs: string[] = [type]; 161 | let content = ""; 162 | 163 | if (props) { 164 | for ( 165 | const [key, val] of Object.entries(props) 166 | ) { 167 | if (key === "dangerouslySetInnerHTML") { 168 | content = (val as RawHtml).__html ?? ""; 169 | continue; 170 | } 171 | if (key === "children") { 172 | content = await jsxEscape(val as Content); 173 | continue; 174 | } 175 | attrs.push(jsxAttr(key, val)); 176 | } 177 | } 178 | if (isVoid) { 179 | if (content) { 180 | throw new Error(`Void element "${type}" cannot have children`); 181 | } 182 | return `<${attrs.join(" ")}>`; 183 | } 184 | 185 | return `<${attrs.join(" ")}>${content}`; 186 | } 187 | 188 | const comp = await type(props); 189 | 190 | return isEmpty(comp) 191 | ? "" 192 | : typeof comp === "string" 193 | ? comp 194 | : await renderComponent(comp); 195 | } 196 | 197 | /** Required for "precompile" mode: render attributes */ 198 | export function jsxAttr(name: string, value: unknown): string { 199 | name = attributes.get(name) ?? name; 200 | 201 | if (name === "style" && typeof value === "object") { 202 | value = renderStyles(value as CSSProperties); 203 | } 204 | 205 | if (typeof value === "string") { 206 | return `${name}="${value.replaceAll('"', """)}"`; 207 | } 208 | 209 | if (isEmpty(value)) { 210 | return ""; 211 | } 212 | 213 | if (value === true) { 214 | return name; 215 | } 216 | 217 | return `${name}="${value}"`; 218 | } 219 | 220 | /** Make JSX global */ 221 | declare global { 222 | export namespace JSX { 223 | export type Children = 224 | | HTMLElements 225 | | RawHtml 226 | | string 227 | | number 228 | | boolean 229 | | null 230 | | Children[]; 231 | export interface IntrinsicElements extends HTMLElements {} 232 | export interface ElementChildrenAttribute { 233 | children: Children; 234 | } 235 | } 236 | } 237 | 238 | function renderStyles(properties: CSSProperties) { 239 | return Object.entries(properties) 240 | .filter(([, value]) => value !== undefined && value !== null) 241 | .map(([name, value]) => `${name}:${value};`) 242 | .join(""); 243 | } 244 | 245 | function isEmpty(value: unknown): boolean { 246 | return value == null || value === undefined || value === false; 247 | } 248 | --------------------------------------------------------------------------------