1/*--------------------- CSS Variables ----------------------------*/ 2:root { 3 --black: #000000; 4 --black1: #090c15; 5 --black2: #2c3437; 6 --black3: #0d111d; 7 --blue1: #00f; 8 --white: #ffffff; 9 --white-smoke: #f2f2f2; 10 --grey-smoke: #e9edf0; 11 --red1: #d60027; 12 --red2: #d50027; 13 --red3: #ca5010; 14 --green1: #3e7a38; 15 --green2: #5a8147; 16 --green3: #64de64; 17 --green4: #99cc7d; 18 --green5: #84ba64; 19 --gray1: #707070; 20 --gray2: #b4b4b4; 21 --gray3: #cccccc; 22 --gray4: #040404; 23 --gray5: #7a7a7a; 24 --gray6: #333333; 25 --gray7: #c1c1c1; 26 --grey8: #ddd; 27 28 --background-color-api-stability-link: rgba(255, 255, 255, .4); 29 --background-color-highlight: var(--white-smoke); 30 --color-brand-primary: var(--gray6); 31 --color-brand-secondary: var(--green1); 32 --color-fill-app: var(--white); 33 --color-fill-side-nav: var(--gray6); 34 --color-links: var(--green1); 35 --color-text-mark: var(--gray1); 36 --color-text-nav: var(--gray3); 37 --color-text-primary: var(--gray6); 38 --color-text-secondary: var(--green2); 39} 40 41.dark-mode { 42 --background-color-highlight: var(--black2); 43 --color-fill-app: var(--black1); 44 --color-fill-side-nav: var(--black3); 45 --color-links: var(--green5); 46 --color-text-mark: var(--gray5); 47 --color-text-primary: var(--white); 48} 49 50.dark-mode code, 51.dark-mode tt { 52 color: var(--grey-smoke); 53 background-color: var(--background-color-highlight); 54} 55.dark-mode a code { 56 color: var(--green3); 57} 58 59/*--------------------- Layout and Typography ----------------------------*/ 60html { 61 font-size: 1rem; 62 overflow-wrap: break-word; 63 -webkit-font-smoothing: antialiased; 64 -moz-osx-font-smoothing: grayscale; 65 -webkit-font-variant-ligatures: none; 66 font-variant-ligatures: none; 67} 68 69* { 70 box-sizing: border-box; 71} 72 73body { 74 font-family: Lato, "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Verdana, Tahoma, sans-serif; 75 margin: 0; 76 padding: 0; 77 color: var(--color-text-primary); 78 background-color: var(--color-fill-app); 79} 80 81h1, h1 code { font-size: 2.5rem; } 82h2, h2 code { font-size: 2rem; } 83h3, h3 code { font-size: 1.75rem; } 84h4, h4 code { font-size: 1.5rem; } 85h5, h5 code { font-size: 1.25rem; } 86h6, h6 code { font-size: 1rem; } 87 88h1, 89h2, 90h3, 91h4, 92h5, 93h6 { 94 font-weight: 700; 95 line-height: inherit; 96 position: relative; 97 margin: 1.5rem 0 1rem; 98 text-rendering: optimizeLegibility; 99} 100 101h1 code, 102h2 code, 103h3 code, 104h4 code, 105h5 code, 106h6 code { 107 color: inherit; 108 font-family: inherit; 109} 110 111pre, 112tt, 113code, 114.pre, 115span.type, 116a.type { 117 font-family: SFMono-Regular, Menlo, Consolas, "Liberation Mono", "Courier New", monospace; 118 font-size: .9em; 119} 120 121#content { 122 position: relative; 123} 124 125a:link, 126a:active, 127a:visited { 128 color: var(--color-links); 129 text-decoration: none; 130 border-radius: 2px; 131 padding: 1px 3px; 132} 133 134a:hover, 135a:focus { 136 color: var(--white); 137 background-color:var(--green1); 138 outline: none; 139} 140 141strong { 142 font-weight: 700; 143} 144 145code a:hover { 146 background-color: transparent; 147} 148 149em code { 150 font-style: normal; 151} 152 153#changelog #gtoc { 154 display: none; 155} 156 157#gtoc { 158 margin-top: .5rem; 159 margin-bottom: 1rem; 160} 161 162#gtoc ul { 163 list-style: none; 164 margin-left: 0; 165 line-height: 1.5rem; 166} 167 168#gtoc > ul > li { 169 display: inline; 170 border-right: 1px currentColor solid; 171 margin-right: .4rem; 172 padding-right: .4rem; 173} 174 175#gtoc > ul > li:last-child { 176 border-right: none; 177 margin-right: 0; 178 padding-right: 0; 179} 180 181li.version-picker { 182 position: relative; 183} 184 185li.version-picker:hover > a { 186 border-radius: 2px 2px 0 0; 187} 188 189li.version-picker:hover > ol { 190 display: block; 191 z-index: 1; 192} 193 194li.version-picker a span { 195 font-size: .7rem; 196} 197 198ol.version-picker { 199 background-color: var(--color-fill-app); 200 border: 1px solid var(--color-brand-secondary); 201 border-radius: 0 0 2px 2px; 202 display: none; 203 list-style: none; 204 position: absolute; 205 right: 0; 206 top: 100%; 207 width: 100%; 208} 209 210#gtoc ol.version-picker li { 211 display: block; 212 border-right: 0; 213 margin-right: 0; 214} 215 216ol.version-picker li a { 217 border-radius: 0; 218 display: block; 219 margin: 0; 220 padding: .1rem; 221 padding-left: 1rem; 222} 223 224ol.version-picker li:last-child a { 225 border-bottom-right-radius: 1px; 226 border-bottom-left-radius: 1px; 227} 228 229.line { 230 width: calc(100% - 1rem); 231 display: block; 232 padding-bottom: 1px; 233} 234 235.api_stability { 236 color: var(--white) !important; 237 margin: 0 0 1rem; 238 padding: 1rem; 239 line-height: 1.5; 240} 241 242.api_stability * { 243 color: var(--white) !important; 244} 245 246.api_stability a { 247 text-decoration: underline; 248} 249 250.api_stability a:hover, 251.api_stability a:active, 252.api_stability a:focus { 253 background-color: var(--background-color-api-stability-link); 254} 255 256.api_stability a code { 257 background-color: transparent; 258} 259 260.api_stability_0 { 261 background-color: var(--red1); 262} 263 264.api_stability_1 { 265 background-color: var(--red3); 266} 267 268.api_stability_2 { 269 background-color: var(--green2); 270} 271 272.api_stability_3 { 273 background-color: var(--blue1); 274} 275 276.module_stability { 277 vertical-align: middle; 278} 279 280.api_metadata { 281 font-size: .85rem; 282 margin-bottom: 1rem; 283} 284 285.api_metadata span { 286 margin-right: 1rem; 287} 288 289.api_metadata span:last-child { 290 margin-right: 0; 291} 292 293ul.plain { 294 list-style: none; 295} 296 297abbr { 298 border-bottom: 1px dotted #454545; 299} 300 301p { 302 text-rendering: optimizeLegibility; 303 margin: 0 0 1.125rem; 304 line-height: 1.5; 305} 306 307#apicontent > *:last-child { 308 margin-bottom: 0; 309 padding-bottom: 2rem; 310} 311 312table { 313 border-collapse: collapse; 314 margin: 0 0 1.5rem; 315} 316 317th, 318td { 319 border: 1px solid #aaa; 320 padding: .5rem; 321 vertical-align: top; 322} 323 324th { 325 text-align: left; 326} 327 328td { 329 word-break: break-all; /* Fallback if break-word isn't supported */ 330 word-break: break-word; 331} 332 333@media only screen and (min-width: 600px) { 334 th, 335 td { 336 padding: .75rem 1rem; 337 } 338 339 td:first-child { 340 word-break: normal; 341 } 342} 343 344ol, 345ul, 346dl { 347 margin: 0 0 .6rem; 348 padding: 0; 349} 350 351ol ul, 352ol ol, 353ol dl, 354ul ul, 355ul ol, 356ul dl, 357dl ul, 358dl ol, 359dl dl { 360 margin-bottom: 0; 361} 362 363ul, 364ol { 365 margin-left: 2rem; 366} 367 368dl dt { 369 position: relative; 370 margin: 1.5rem 0 0; 371} 372 373dl dd { 374 position: relative; 375 margin: 0 1rem; 376} 377 378dd + dt.pre { 379 margin-top: 1.6rem; 380} 381 382#apicontent { 383 padding-top: 1rem; 384} 385 386#apicontent section { 387 content-visibility: auto; 388 contain-intrinsic-size: 1px 5000px; 389} 390 391#apicontent .line { 392 width: calc(50% - 1rem); 393 margin: 1rem 1rem .95rem; 394 background-color: #ccc; 395} 396 397h2 + h2 { 398 margin: 0 0 .5rem; 399} 400 401h3 + h3 { 402 margin: 0 0 .5rem; 403} 404 405h2, 406h3, 407h4, 408h5 { 409 position: relative; 410 padding-right: 40px; 411} 412 413.srclink { 414 float: right; 415 font-size: smaller; 416 margin-right: 30px; 417} 418 419h1 span, 420h2 span, 421h3 span, 422h4 span { 423 position: absolute; 424 display: block; 425 top: 0; 426 right: 0; 427} 428 429h1 span:hover, 430h2 span:hover, 431h3 span:hover, 432h4 span:hover { 433 opacity: 1; 434} 435 436h1 span a, 437h2 span a, 438h3 span a, 439h4 span a { 440 color: #000; 441 text-decoration: none; 442 font-weight: 700; 443} 444 445pre, 446tt, 447code { 448 line-height: 1.5rem; 449 margin: 0; 450 padding: 0; 451} 452 453.pre { 454 line-height: 1.5rem; 455} 456 457pre { 458 padding: 1rem; 459 vertical-align: top; 460 background-color: var(--background-color-highlight); 461 margin: 1rem; 462 overflow-x: auto; 463} 464 465pre > code { 466 padding: 0; 467} 468 469pre + h3 { 470 margin-top: 2.225rem; 471} 472 473code.pre { 474 white-space: pre; 475} 476 477#intro { 478 margin-top: 1.25rem; 479 margin-left: 1rem; 480} 481 482#intro a { 483 color: var(--grey8); 484 font-weight: 700; 485} 486 487hr { 488 background-color: transparent; 489 border: medium none; 490 border-bottom: 1px solid var(--gray5); 491 margin: 0 0 1rem; 492} 493 494#toc > ul { 495 margin-top: 1.5rem; 496} 497 498#toc p { 499 margin: 0; 500} 501 502#toc ul a { 503 text-decoration: none; 504} 505 506#toc ul li { 507 margin-bottom: .666rem; 508 list-style: square outside; 509} 510 511#toc li > ul { 512 margin-top: .666rem; 513} 514 515#toc .stability_0::after { 516 background-color: var(--red2); 517 color: var(--white); 518 content: "deprecated"; 519 margin-left: .25rem; 520 padding: 1px 3px; 521 border-radius: 3px; 522} 523#toc .stability_3::after { 524 background-color: var(--blue1); 525 color: var(--white); 526 content: "legacy"; 527 margin-left: .25rem; 528 padding: 1px 3px; 529 border-radius: 3px; 530} 531 532#apicontent li { 533 margin-bottom: .5rem; 534} 535 536#apicontent li:last-child { 537 margin-bottom: 0; 538} 539 540tt, 541code { 542 color: #040404; 543 background-color: #f2f2f2; 544 border-radius: 2px; 545 padding: 1px 3px; 546} 547 548.api_stability code { 549 background-color: rgba(0, 0, 0, .1); 550} 551 552a code { 553 color: inherit; 554 background-color: inherit; 555 padding: 0; 556} 557 558.type { 559 line-height: 1.5rem; 560} 561 562#column1.interior { 563 margin-left: 234px; 564 padding: 0 2rem; 565 -webkit-padding-start: 1.5rem; 566} 567 568#column2.interior { 569 width: 234px; 570 background-color: var(--color-fill-side-nav); 571 position: fixed; 572 left: 0; 573 top: 0; 574 bottom: 0; 575 overflow-x: hidden; 576 overflow-y: scroll; 577} 578 579#column2 ul { 580 list-style: none; 581 margin: .9rem 0 .5rem; 582 background-color: var(--color-fill-side-nav); 583} 584 585#column2 > :first-child { 586 margin: 1.25rem; 587 font-size: 1.5rem; 588} 589 590#column2 > ul:nth-child(2) { 591 margin: 1.25rem 0 .5rem; 592} 593 594#column2 > ul:last-child { 595 margin: .9rem 0 1.25rem; 596} 597 598#column2 ul li { 599 padding-left: 1.25rem; 600 margin-bottom: .5rem; 601 padding-bottom: .5rem; 602} 603 604#column2 .line { 605 margin: 0 .5rem; 606 border-color: #707070; 607} 608 609#column2 ul li:last-child { 610 margin-bottom: 0; 611} 612 613#column2 ul li a, 614#column2 ul li a code { 615 color: var(--color-text-nav); 616 border-radius: 0; 617} 618 619#column2 ul li a.active, 620#column2 ul li a.active:hover, 621#column2 ul li a.active:focus { 622 font-weight: 700; 623 color: var(--white); 624 background-color: transparent; 625} 626 627#intro a:hover, 628#intro a:focus, 629#column2 ul li a:hover, 630#column2 ul li a:focus { 631 color: var(--white); 632 background-color: transparent; 633} 634 635span > .mark, 636span > .mark:visited { 637 color: var(--color-text-mark); 638 position: absolute; 639 top: 0; 640 right: 0; 641} 642 643span > .mark:hover, 644span > .mark:focus, 645span > .mark:active { 646 color: var(--color-brand-secondary); 647 background-color: transparent; 648} 649 650th > *:last-child, 651td > *:last-child { 652 margin-bottom: 0; 653} 654 655kbd { 656 background-color: #eee; 657 border-radius: 3px; 658 border: 1px solid #b4b4b4; 659 box-shadow: 0 1px 1px rgba(0, 0, 0, .2); 660 color: #333; 661 display: inline-block; 662 font-size: .85em; 663 font-weight: 700; 664 padding: 2px 4px; 665 white-space: nowrap; 666 vertical-align: middle; 667 } 668 669.changelog > summary { 670 margin: .5rem 0; 671 padding: .5rem 0; 672 cursor: pointer; 673} 674 675/* simpler clearfix */ 676.clearfix::after { 677 content: "."; 678 display: block; 679 height: 0; 680 clear: both; 681 visibility: hidden; 682} 683 684/* API reference sidebar */ 685@media only screen and (min-width: 1025px) { 686 .apidoc #column2 > .line { 687 pointer-events: none; 688 } 689 .apidoc #column2 > :first-child, 690 .apidoc #column2 > ul, 691 .apidoc #column2 > ul > li { 692 margin: 0; 693 padding: 0; 694 } 695 .apidoc #column2 > :first-child > a[href] { 696 border-radius: 0; 697 padding: 1.25rem 1.4375rem .625rem; 698 display: block; 699 } 700 .apidoc #column2 > ul > li > a[href] { 701 padding: .5rem 1.4375rem; 702 display: block; 703 } 704 .apidoc #column2 > ul > :first-child > a[href] { 705 padding-top: .625rem; 706 } 707 .apidoc #column2 > ul > :last-child > a[href] { 708 padding-bottom: .625rem; 709 } 710 .apidoc #column2 > ul:first-of-type > :last-child > a[href] { 711 padding-bottom: 1rem; 712 } 713 .apidoc #column2 > ul:nth-of-type(2) > :first-child > a[href] { 714 padding-top: .875rem; 715 } 716 .apidoc #column2 > ul:nth-of-type(2) > :last-child > a[href] { 717 padding-bottom: .9375rem; 718 } 719 .apidoc #column2 > ul:last-of-type > :first-child > a[href] { 720 padding-top: 1rem; 721 } 722 .apidoc #column2 > ul:last-of-type > :last-child > a[href] { 723 padding-bottom: 1.75rem; 724 } 725} 726 727.header-container { 728 display: flex; 729 align-items: center; 730 margin: 1.5rem 0 1rem; 731 justify-content: space-between; 732} 733 734.header-container h1 { 735 margin: 0; 736} 737 738.theme-toggle-btn { 739 border: none; 740 background: transparent; 741 outline: var(--brand3) dotted 2px; 742} 743 744@media only screen and (max-width: 1024px) { 745 #content { 746 overflow: visible; 747 } 748 #column1.interior { 749 margin-left: 0; 750 padding-left: .5rem; 751 padding-right: .5rem; 752 width: auto; 753 overflow-y: visible; 754 } 755 #column2 { 756 display: none; 757 } 758} 759 760.icon { 761 cursor: pointer; 762} 763 764.dark-icon { 765 display: block; 766} 767 768.light-icon { 769 fill: var(--white); 770 display: none; 771} 772 773.dark-mode .dark-icon { 774 display: none; 775} 776 777.dark-mode .light-icon { 778 fill: var(--white); 779 display: block; 780} 781 782.js-flavor-selector { 783 -webkit-appearance: none; 784 appearance: none; 785 float: right; 786 background-image: url(./js-flavor-cjs.svg); 787 background-size: contain; 788 background-repeat: no-repeat; 789 width: 142px; 790 height: 20px; 791} 792.js-flavor-selector:checked { 793 background-image: url(./js-flavor-esm.svg); 794} 795.js-flavor-selector:not(:checked) ~ .mjs, 796.js-flavor-selector:checked ~ .cjs { 797 display: none; 798} 799.dark-mode .js-flavor-selector { 800 filter: invert(1); 801} 802@supports (aspect-ratio: 1 / 1) { 803 .js-flavor-selector { 804 height: 1.5em; 805 width: auto; 806 aspect-ratio: 2719 / 384; 807 } 808} 809 810@media print { 811 html { 812 height: auto; 813 font-size: .75em; 814 } 815 #column2.interior { 816 display: none; 817 } 818 #column1.interior { 819 margin-left: 0; 820 padding: 0; 821 overflow-y: auto; 822 } 823 .api_metadata, 824 #toc, 825 .srclink, 826 #gtoc, 827 .mark { 828 display: none; 829 } 830 h1 { 831 font-size: 2rem; 832 } 833 h2 { 834 font-size: 1.75rem; 835 } 836 h3 { 837 font-size: 1.5rem; 838 } 839 h4 { 840 font-size: 1.3rem; 841 } 842 h5 { 843 font-size: 1.2rem; 844 } 845 h6 { 846 font-size: 1.1rem; 847 } 848 .api_stability { 849 display: inline-block; 850 } 851 .api_stability a { 852 text-decoration: none; 853 } 854 a { 855 color: inherit; 856 } 857 #apicontent { 858 overflow: hidden; 859 } 860 .js-flavor-selector { 861 display: none; 862 } 863 .js-flavor-selector + * { 864 margin-bottom: 2rem; 865 padding-bottom: 2rem; 866 border-bottom: 1px solid var(--color-text-primary); 867 } 868 .js-flavor-selector ~ * { 869 display: block !important; 870 background-position: top right; 871 background-size: 142px 20px; 872 background-repeat: no-repeat; 873 } 874 .js-flavor-selector ~ .cjs { 875 background-image: url(./js-flavor-cjs.svg); 876 } 877 .js-flavor-selector ~ .mjs { 878 background-image: url(./js-flavor-esm.svg); 879 } 880} 881