3 Theme URI: http://webkit.org/
4 Author: The WebKit Team
5 Author URI: http://webkit.org/
6 Description: Modern, adaptive theme for the WebKit project.
11 html, body, div, span, object, iframe,
12 h1, h2, h3, h4, h5, h6, p, blockquote, pre,
13 a, abbr, acronym, address, big, cite, code,
14 del, dfn, em, img, ins, kbd, q, samp,
15 small, strike, strong, sub, sup, tt, var,
16 dl, dt, dd, ol, ul, li,
17 fieldset, form, label, legend,
18 table, caption, tbody, tfoot, thead, tr, th, td,
19 article, aside, canvas, details,
20 figure, figcaption, footer, header, hgroup,
21 menu, nav, output, section, summary,
22 time, mark, audio, video {
27 vertical-align: baseline;
29 /* HTML5 display-role reset for older browsers */
30 article, aside, details, figcaption, figure,
31 footer, header, hgroup, menu, nav, section {
35 font-family: "Myriad Set Pro","Helvetica Neue",sans-serif;
40 background-color: #f7f7f7;
51 blockquote:before, blockquote:after,
57 border-collapse: collapse;
65 text-decoration: none;
66 transition: color 500ms cubic-bezier(0.190, 1.000, 0.220, 1.000); /* ease-out-exponential */
69 text-decoration: underline;
76 text-decoration: none;
80 border-bottom: 1px solid #ddd;
89 font-family: Menlo, monospace;
92 border: 1px solid #e7e7e7;
98 /** Accessibility Helpers **/
100 display: inline-block;
107 p > a[name]::before {
109 margin-left: -1.7rem;
117 text-decoration: none;
131 top: calc(-32px - 3rem);
134 .admin-bar p > a[name]::before {
135 top: calc(32px + 3rem);
138 .screen-reader-text {
139 clip: rect(1px, 1px, 1px, 1px);
140 position: absolute !important;
146 .screen-reader-text:focus {
147 background-color: #f1f1f1;
149 box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
150 clip: auto !important;
159 padding: 15px 23px 14px;
160 text-decoration: none;
163 z-index: 100000; /* Above WP toolbar. */
175 border-bottom: 1px solid #e7e7e7;
185 @supports ( -webkit-backdrop-filter: blur(10px) ) {
187 backdrop-filter: blur(10px);
188 -webkit-backdrop-filter: blur(10px);
189 background: rgba(255,255,255,0.8);
194 background: url('images/download.svg') right no-repeat;
205 .pagination .page-numbers {
206 display: inline-block;
207 padding: 0.5rem 1rem 0.3rem;
212 .pagination .page-numbers:not(.current, .dots):hover {
213 text-decoration: none;
219 .pagination .page-numbers.current {
223 .pagination .prev-post,
224 .pagination .next-post {
228 .pagination .prev-post {
232 .pagination .next-post {
236 .pagination .prev-post span,
237 .pagination .next-post span {
243 /* Front page next button */
244 .pagination .next-button {
245 display: inline-block;
247 box-sizing: border-box;
248 width: -webkit-calc(33.33% - 10px);
249 width: -moz-calc(33.33% - 10px);
250 width: calc(33.33% - 10px);
259 padding-bottom: 3rem;
260 box-sizing: border-box;
270 display: -webkit-flex;
272 -webkit-flex-wrap: wrap;
274 -webkit-justify-content: space-between;
275 justify-content: space-between;
276 box-sizing: border-box;
283 display: inline-block;
287 box-sizing: border-box;
290 box-shadow: inset rgba(0, 0, 0, 0.1) 0 0 0 1px;
300 text-decoration: none;
312 width: -webkit-calc(33.33% - 10px);
313 width: -moz-calc(33.33% - 10px);
314 width: calc(33.33% - 10px);
318 width: -webkit-calc(66.66% - 5px);
319 width: -moz-calc(66.66% - 5px);
320 width: calc(66.66% - 5px);
327 .tile .background-image {
334 background-size: cover;
335 background-position: 50% 1%;
336 background-color: #8E8E93;
337 background-repeat: no-repeat;
338 background-image: url('images/icons.svg');
341 .tile .background-image.has-featured-image {
342 -webkit-transition: -webkit-filter 10s ease-in;
343 transition: filter 1s ease-in;
344 -webkit-filter: saturate(0);
348 .tile:not(.has-post-thumbnail) .featured-image {
352 .tile.category-web-inspector .background-image {
353 background-color: #08c;
354 background-position: 50% 10.75%; /* Must use this notation for Firefox */
357 .tile.category-performance .background-image {
358 background-color: rgb(152, 188, 77);
359 background-position: 50% 20.5%;
362 .tile.category-javascript .background-image {
363 background-color: #997FA6;
364 background-position: 50% 30.5%;
367 .tile.category-css .background-image {
368 background-color: #bf6d71;
369 background-position: 50% 40.4%;
372 .tile.category-standards .background-image {
373 background-color: #BF7600;
374 background-position: 50% 50.4%;
377 .tile.category-contributing .background-image {
378 background-color: #CBAA44;
379 background-position: 50% 59.8%;
382 .tile.category-storage .background-image {
383 background-color: #997FA6;
384 background-position: 50% 69.6%;
387 .tile.category-layout .background-image {
388 background-color: #bf6d71;
389 background-position: 50% 79.45%;
392 .tile.tag-console .background-image,
393 .tile.tag-debugger .background-image,
394 .tile.tag-shortcuts .background-image,
395 .tile.tag-timeline .background-image {
396 background-image: url('images/inspector.svg');
399 .tile.tag-console .background-image {
400 background-position: 50% 3%;
403 .tile.tag-debugger .background-image {
404 background-position: 50% 34%;
407 .tile.tag-shortcuts .background-image {
408 background-position: 50% 66%;
411 .tile.tag-timeline .background-image {
412 background-position: 50% 97%;
415 .tile .background-image.loaded {
417 -webkit-filter: saturate(1);
422 .tile .featured-image::before {
428 .tile .featured-image {
431 background-size: cover;
432 background-position: 50% 50%;
435 -webkit-transition: opacity 0.4s ease-in;
436 -moz-transition: opacity 0.4s ease-in;
437 transition: opacity 0.4s ease-in;
440 .tile .featured-image,
441 .tile:not(.has-post-thumbnail) .background-image,
442 .tile .loaded .featured-image {
443 box-shadow: inset rgba(0, 0, 0, 0.1) 0 1px 0 1px;
446 .has-post-thumbnail .background-image {
448 -webkit-filter: saturate(0);
452 .has-post-thumbnail .background-image.loaded,
453 .tile .background-image.loaded .featured-image {
457 .featured-tile .background-image {
462 .tile .tile-content {
466 box-sizing: border-box;
470 .featured-tile .tile-content {
472 box-sizing: border-box;
474 -webkit-transform: none;
480 .background-vignette {
485 background-image: linear-gradient(-180deg, rgba(255, 255, 255, 0) , rgba(255, 255, 255, 0.95) 80%, rgba(255, 255, 255, 1));
488 .tag-window .background-image {
489 background-color: #f2f2f2;
492 .tag-window .background-vignette {
493 background-image: linear-gradient(-180deg, rgba(242,242,242,0) 25%,rgba(242,242,242,1) 65%);
496 .featured-tile.tag-dark.tile {
500 .featured-tile.tag-dark .background-vignette {
501 background-image: linear-gradient(-180deg, rgba(0,0,0,0) 33%,rgba(0,0,0,0.85));
504 .featured-tile.tag-dark .tile-content {
508 .featured-tile.tag-dark .tile-content a {
541 background: url('images/compass.svg') no-repeat;
542 background-position: 50% 50%;
548 .icon-tile.download .icon {
549 background-image: url('images/download.svg');
552 .icon-tile.developer .icon {
553 background-image: url('images/developer.svg');
556 .icon-tile, .icon-tile a {
560 background-color: #FFCC00;
562 .gray-tile, .gray-tile a {
567 background: linear-gradient(rgb(40, 40, 40), rgb(74, 74, 74));
569 .gray-tile, .gray-tile a {
574 background-color: #FFCC00;
577 background-color: #08c;
581 background-color: #34AADC;
584 .twitter-tile, .twitter-tile a {
593 .twitter-tile .tile-content {
595 box-sizing: border-box;
599 .twitter-tile.text-only {
600 display: -webkit-flex;
602 justify-content: center;
605 .twitter-tile.text-only .tile-content {
620 box-sizing: border-box;
630 display: -webkit-flex;
632 -webkit-flex-wrap: wrap;
634 -webkit-justify-content: space-between;
635 justify-content: space-between;
638 .twitter-controls li {
639 display: inline-block;
642 .twitter-controls a {
644 transition: opacity 300ms ease-out;
646 .twitter-controls a:hover {
648 text-decoration: none;
651 /** Twitter Icons **/
654 background: url('images/twitter.svg') no-repeat;
655 background-size: cover;
660 margin: 3rem auto 3rem;
671 .twitter-controls .twitter-icon {
672 text-indent: -9999em;
673 display: inline-block;
678 .twitter-icon.reply-icon {
679 background-position-y: 33%;
682 .twitter-icon.retweet-icon {
683 background-position-y: 66%;
686 .twitter-icon.favorite-icon {
687 background-position-y: 99%;
690 /** Code Syntax Highlighting **/
692 width: calc(100% + 6rem);
694 -webkit-overflow-scrolling: touch;
696 border: 1px solid #E6E6E6;
699 box-sizing: border-box;
716 code.html .tag { color: #708; }
717 code .keyword.builtin,
718 code .keyword.literal { color: #aa0d91;}
719 code .keyword.type { color: #cb4b16; }
720 code .preprocessor { color: #996; }
721 code .comment { color: #93a1a1; float: none; display: inline; }
722 code .comment .doc { color: #839496; font-weight: bold; }
723 code .identifier { color: #1C63A8; }
724 code .string, code .char { color: #5B6E04; }
725 code .escaped { color: #AAA; }
726 code .number, code .tag { color: #586e75; }
727 code .regex, code .attribute { color: rgb(131, 108, 40); }
728 code .attribute.value { color: rgb(196, 26, 22) ;}
729 code .operator { color: #888; }
730 code .keyword.operator { color: #A90007; }
731 code .whitespace { background: #333; }
732 code .error { border-bottom: 1px solid red; }
733 code .doctype { color: rgb(192, 192, 192); }
734 code .property { color: #881391; }
737 code.html .comment { color: rgb(0, 116, 0); }
739 code.xml .preprocessor .keyword { color: #996; }
740 code.xml .meta, code.xml .meta .keyword { color: #399; }
742 code.cpp .preprocessor .identifier { color: #996; }
744 code::-moz-selection, code span::-moz-selection {
748 code::selection, code span::selection {
752 code.syntax { white-space: normal; }
753 code.syntax .newlines { white-space: pre; display: block; }
756 code.css .identifier,
757 code.css .preprocessor { color: rgb(170, 13, 145); }
759 code.css .keyword { color: black; }
760 code.css .number { color: rgb(28, 0, 207); }
762 /** Post Typography **/
767 letter-spacing: -0.02em;
770 margin: 5rem auto 3rem;
775 text-decoration: none;
780 line-height: 1.08654;
782 letter-spacing: -0.014em;
788 line-height: 1.14286;
790 letter-spacing: -0.01em;
816 margin-bottom: 0.5rem;
840 article .byline .date {
844 article .byline .author {
856 border-collapse: collapse;
862 article thead, article tfoot {
863 border-top: 1px solid #bbbbbb;
864 border-bottom: 1px solid #e0e0e0;
868 border-top: 1px solid #e0e0e0;
871 article tr:first-child {
877 vertical-align: bottom;
884 article th:first-child {
895 list-style-type: decimal;
899 list-style-type: square;
917 box-sizing: border-box;
924 article blockquote > * {
930 article blockquote:first-child {
938 .post .bodycopy > p:last-child:after {
939 content: " \220E"; /* Tombstone */
947 background-color: hsl(50, 100%, 94%);
948 border: 1px solid hsl(40, 100%, 90%);
949 color: hsl(30, 90%, 35%);
955 article .two-columns {
961 article .two-columns h2,
962 article .two-columns h3,
963 article .two-columns h4,
964 article .two-columns h5,
965 article .two-columns h6 {
966 break-after: avoid-column; /* https://bugs.webkit.org/show_bug.cgi?id=148814 */
969 article .two-columns p {
970 break-inside: avoid-column;
980 box-sizing: border-box;
989 article .aligncenter .wp-caption-text {
995 margin: 1.5rem 1.5rem 1.5rem 0;
998 article .aligncenter {
1001 margin: 0 auto 3rem;
1004 article div.aligncenter {
1010 article div.aligncenter img {
1015 article .alignright {
1017 margin: 1.5rem 0 1.5rem 1.5rem;
1020 article .alignnone {
1025 article .alignnone.size-full {
1030 -webkit-transform: translate(-50vw, 0);
1031 transform: translate(-50vw, 0);
1034 article .pull-left {
1036 margin: 1.5rem 1.5rem 1.5rem -25%;
1039 article .pull-right {
1041 margin: 1.5rem -25% 1.5rem 1.5rem;
1045 border-top: 1px solid #dddddd;
1048 article .clipbottom {
1049 border-bottom: 1px solid #dddddd;
1052 article .clipright {
1053 border-right: 1px solid #dddddd;
1057 border-left: 1px solid #dddddd;
1060 article .mattewhite {
1062 border-top: 1px solid #e7e7e7;
1063 border-bottom: 1px solid #e7e7e7;
1065 padding-bottom: 3rem;
1068 /** Article Figures **/
1071 margin-bottom: 3rem;
1074 article figure > img {
1075 display: inline-block;
1085 transform: translate(-50%);
1088 figure.widescreen img,
1089 figure.widescreen figcaption {
1094 figure.widescreen figcaption {
1098 figure.widescreen video {
1103 article figcaption {
1107 padding-left: 1.5rem;
1108 box-sizing: border-box;
1115 article figcaption::before {
1120 border-top: 1px solid #cccccc;
1123 display: inline-block;
1124 box-sizing: border-box;
1128 article .clipbottom + p + figcaption {
1132 article .clipbottom + p + figcaption::before {
1142 .page .bodycopy h1 {
1146 /** Load Effects **/
1148 @keyframes fade-in {
1158 @-webkit-keyframes fade-in {
1168 @keyframes fade-in-move-down {
1171 -webkit-transform: translateY(-3rem);
1172 transform: translateY(-3rem)
1177 -webkit-transform: translateY(0);
1178 transform: translateY(0)
1182 @-webkit-keyframes fade-in-move-down {
1185 -webkit-transform: translateY(-3rem);
1186 transform: translateY(-3rem)
1191 -webkit-transform: translateY(0);
1192 transform: translateY(0)
1197 .feature-status-page {
1198 -webkit-animation: fade-in-move-down 0.7s;
1199 animation: fade-in-move-down 0.7s;
1203 -webkit-animation: fade-in 0.4s;
1204 animation: fade-in 0.4s;
1207 /** Page Table of Contents **/
1209 .table-of-contents {
1211 box-sizing: border-box;
1213 margin: 0 0 3rem 3rem;
1216 background: #ffffff;
1221 .table-of-contents ul {
1230 .table-of-contents .list > ul {
1234 .table-of-contents ul li {
1235 margin-bottom: 1rem;
1238 .table-of-contents ul li:last-child {
1242 .table-of-contents ul li > ul {
1246 .with-toc pre:nth-child(-n+6),
1247 #post-4132 pre:nth-child(-n+10) {
1256 line-height: 4.2rem;
1258 display: inline-block;
1259 background: url('images/webkit.svg') no-repeat;
1264 .site-logo .tagline {
1268 letter-spacing: -0.05rem;
1273 background-image: url('images/webkit.svg');
1278 .feature-header:after {
1279 display: inline-block;
1281 background: url('images/menu-down.svg') no-repeat 50%;
1282 background-size: 2rem;
1288 -webkit-transition: transform 0.3s ease-out;
1289 -moz-transition: transform 0.3s ease-out;
1290 transition: transform 0.3s ease-out;
1293 .feature.opened .feature-header:after {
1294 -webkit-transform: rotateX(-180deg);
1295 -moz-transform: rotateX(-180deg);
1296 transform: rotateX(-180deg);
1310 /* Hide menu toggle checkboxes */
1323 display: inline-block;
1324 padding: 2.5rem 0 1.5rem 3rem;
1328 display: inline-block;
1330 padding: 0 0 1.5rem 3rem;
1333 footer nav li:first-child {
1340 display: inline-block;
1341 text-decoration: none;
1347 footer nav a:hover {
1349 text-decoration: none;
1352 header .menu-item-has-children .label-toggle::after {
1353 background: url('images/menu-down.svg') no-repeat;
1354 background-size: 1.2rem;
1355 display: inline-block;
1356 padding-right: 1.2rem;
1357 padding-top: 0.8rem;
1358 margin-left: 0.5rem;
1359 margin-top: -0.1rem;
1362 -webkit-transition: transform 0.3s ease-out;
1363 -moz-transition: transform 0.3s ease-out;
1364 transition: transform 0.3s ease-out;
1367 header .menu-item { /* add bottom dimension to main menu items */
1368 padding-bottom: 3rem;
1371 /* Improves mouse accessibility of menus */
1372 /*header .menu > .menu-item-has-children:hover > a::before {
1377 padding: 0rem 10rem 1rem 0;
1385 box-sizing: border-box;
1388 margin-left: -11rem;
1394 background: rgba(255,255,255,0.95);
1395 box-shadow: 0px 3px 20px 0px rgba(0, 0, 0, 0.10);
1396 border: 1px solid #e7e7e7;
1399 -webkit-transition: opacity 0.6s, top 0.6s;
1400 -moz-transition: opacity 0.6s, top 0.6s;
1401 transition: opacity 0.6s, top 0.6s;
1405 .sub-menu-layer:after, .sub-menu-layer:before {
1408 border: solid transparent;
1413 pointer-events: none;
1416 .sub-menu-layer:after {
1417 border-bottom-color: rgba(255,255,255,0.9);
1422 .sub-menu-layer:before {
1423 border-bottom-color: #e7e7e7;
1428 .sub-menu-layer .menu-item {
1429 padding: 1.5rem 0 0 0;
1433 .sub-menu-layer .menu-item:first-child {
1437 .menu > .menu-item > a:focus ~ .sub-menu,
1438 .menu > .menu-item.open-menu > .sub-menu,
1439 .menu > .menu-item:hover > .sub-menu,
1440 .menu > .menu-item > .menu-toggle:checked + .sub-menu {
1442 box-sizing: border-box;
1449 /** Screen Breakpoints **/
1451 @media only screen and (max-width: 1180px) {
1456 padding-right: 2rem;
1464 margin-bottom: 3rem;
1473 @media only screen and (max-width: 1000px) {
1477 margin-bottom: 3rem;
1485 margin-bottom: 3rem;
1498 @media only screen and (max-width: 920px) {
1500 .main-menu.label-toggle {
1501 display: inline-block;
1502 margin: 1.5rem 0 2.5rem;
1505 background: url('images/menu-down.svg') no-repeat 50%;
1508 -webkit-transition: transform 0.3s ease-out;
1509 -moz-transition: transform 0.3s ease-out;
1510 transition: transform 0.3s ease-out;
1513 .menu-toggle:checked + .main-menu.label-toggle,
1514 header .menu-item > .menu-toggle:checked + a > .label-toggle::after {
1515 -webkit-transform: rotateX(-180deg);
1516 -moz-transform: rotateX(-180deg);
1517 transform: rotateX(-180deg);
1530 box-shadow: 0px 5px 5px rgba(0,0,0,0.10);
1531 backdrop-filter: blur(10px);
1532 -webkit-backdrop-filter: blur(10px);
1533 background: rgba(255,255,255,0.8);
1536 header .menu-toggle:checked ~ ul {
1541 header .menu-main-menu-container > ul > li {
1544 padding: 0 3rem 3rem;
1545 box-sizing: border-box;
1546 -webkit-transition: opacity 0.6s;
1547 -moz-transition: opacity 0.6s;
1548 transition: opacity 0.6s;
1551 header .menu > .menu-item > .sub-menu {
1553 border-bottom: 1px solid #e7e7e7;
1556 header .menu > .menu-item-has-children {
1560 header .sub-menu-layer {
1569 -webkit-transition: opacity 0.6s;
1570 -moz-transition: opacity 0.6s;
1571 transition: opacity 0.6s;
1574 header .sub-menu-layer:after, .sub-menu-layer:before {
1577 border: solid transparent;
1582 pointer-events: none;
1585 header .sub-menu-layer:after {
1590 header .sub-menu-layer:before {
1595 header .menu > .menu-item > .menu-toggle:checked ~ .sub-menu {
1602 padding: 0 3rem 3rem 0;
1607 @media only screen and (max-width: 690px) {
1622 padding-right: 1rem;
1624 box-sizing: border-box;
1633 width: -webkit-calc(100% - 1px);
1634 width: -moz-calc(100% - 1px);
1635 width: calc(100% - 1px);
1642 .with-toc pre:nth-child(-n+8),
1647 transform: translate(-50%);
1654 .table-of-contents { /* hug the edge */
1658 .pagination .prev-post,
1659 .pagination .next-post {
1665 .pagination .prev-post {
1666 margin-bottom: 1rem;
1670 article .scrollable {
1672 -webkit-overflow-scrolling: touch;
1676 transform: translate(-50%);
1678 border: 1px solid #cccccc;
1683 .scrollable .scrollable-padding {
1684 display: inline-block;
1690 @media only screen and (max-width: 600px) {
1701 .site-logo .tagline {
1706 header nav .main-menu.label-toggle {
1708 margin-bottom: 2rem;
1716 .feature-filters.opened {
1720 .feature-filters:after {
1721 display: inline-block;
1723 background: url('images/menu-down.svg') no-repeat 50%;
1724 background-size: 2rem;
1730 -webkit-transition: transform 0.3s ease-out;
1731 -moz-transition: transform 0.3s ease-out;
1732 transition: transform 0.3s ease-out;
1736 .feature-filters.opened:after {
1737 -webkit-transform: rotateX(-180deg);
1738 -moz-transform: rotateX(-180deg);
1739 transform: rotateX(-180deg);
1746 .table-of-contents {
1752 .menu-toggle:checked ~ .table-of-contents {
1756 .table-of-contents label {
1760 .table-of-contents label:after {
1761 display: inline-block;
1763 background: url('images/menu-down.svg') no-repeat 50%;
1764 background-size: 2rem;
1770 -webkit-transition: transform 0.3s ease-out;
1771 -moz-transition: transform 0.3s ease-out;
1772 transition: transform 0.3s ease-out;
1776 .menu-toggle:checked ~ .table-of-contents label:after {
1777 -webkit-transform: rotateX(-180deg);
1778 -moz-transform: rotateX(-180deg);
1779 transform: rotateX(-180deg);
1782 .table-of-contents h6 {
1783 margin-bottom: 3rem;
1786 .with-toc pre:nth-child(-n+6),
1787 #post-4132 pre:nth-child(-n+8) {
1793 @media only screen and (max-width: 415px) {
1795 .table-of-contents {
1800 transform: translate(-50%);
1807 @media only screen and (max-height: 415px) {
1824 .home.admin-bar .hero {
1834 border-bottom: 1px solid #e7e7e7;
1835 background: rgba(255,255,255,0.9);
1838 @supports ( -webkit-backdrop-filter: blur(10px) ) {
1840 backdrop-filter: blur(10px);
1841 -webkit-backdrop-filter: blur(10px);
1842 background: rgba(255,255,255,0.8);
1852 .tile .background-image {
1853 padding-bottom: 33%;
1856 .tile.category-performance .background-image {
1857 background-position-y: 21.5%;
1860 .tile.category-web-inspector .background-image {
1861 background-position-y: 12.5%;
1864 .table-of-contents {
1870 .menu-toggle:checked ~ .table-of-contents {
1874 .table-of-contents label {
1878 .table-of-contents label:after {
1879 display: inline-block;
1881 background: url('images/menu-down.svg') no-repeat 50%;
1882 background-size: 2rem;
1888 -webkit-transition: transform 0.3s ease-out;
1889 -moz-transition: transform 0.3s ease-out;
1890 transition: transform 0.3s ease-out;
1894 .menu-toggle:checked ~ .table-of-contents label:after {
1895 -webkit-transform: rotateX(-180deg);
1896 -moz-transform: rotateX(-180deg);
1897 transform: rotateX(-180deg);
1900 .table-of-contents h6 {
1901 margin-bottom: 3rem;
1904 .with-toc pre:nth-child(-n+6),
1905 #post-4132 pre:nth-child(-n+8) {
1911 @media only screen and (max-width: 320px) {