@mdn/fred 2.2.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/components/content-section/server.css +1 -1
- package/components/curriculum/layout.css +2 -77
- package/components/curriculum/sidebar.css +0 -4
- package/components/curriculum/toc.css +1 -3
- package/components/curriculum-about/server.js +15 -6
- package/components/curriculum-default/server.js +15 -6
- package/components/curriculum-module/server.js +15 -6
- package/components/curriculum-overview/server.js +15 -36
- package/components/generic-layout/server.css +4 -60
- package/components/generic-layout/server.js +9 -4
- package/components/generic-sidebar/server.css +1 -3
- package/components/generic-toc/server.css +0 -3
- package/components/homepage-contributor-spotlight/server.css +5 -1
- package/components/html/global.css +2 -1
- package/components/layout/2-sidebars.css +141 -0
- package/components/layout/README.md +52 -10
- package/components/layout/global.css +5 -6
- package/components/left-sidebar/server.css +2 -12
- package/components/page-layout/server.css +1 -1
- package/components/play-console/element.css +15 -0
- package/components/print/global.css +2 -2
- package/components/reference-layout/server.css +2 -80
- package/components/reference-layout/server.js +6 -6
- package/out/service-worker.js +1 -1
- package/out/service-worker.js.map +1 -1
- package/out/static/client/{198.edf1fdf142c21fb8.css → 198.f743d603d3fa74b7.css} +2 -2
- package/out/static/client/{198.edf1fdf142c21fb8.css.map → 198.f743d603d3fa74b7.css.map} +1 -1
- package/out/static/client/270.66bae6059a1c23f9.css +2 -0
- package/out/static/client/270.66bae6059a1c23f9.css.map +1 -0
- package/out/static/client/5408.a0622390fa1726dc.css +2 -0
- package/out/static/client/5408.a0622390fa1726dc.css.map +1 -0
- package/out/static/client/6216.91b6560dce4c40eb.js +2 -0
- package/out/static/client/6216.91b6560dce4c40eb.js.map +1 -0
- package/out/static/client/6760.d97440f1ca6690c6.js +6 -0
- package/out/static/client/6760.d97440f1ca6690c6.js.map +1 -0
- package/out/static/client/{749.f46b8d04d93e42db.js → 749.15180d605dd9d7e9.js} +2 -2
- package/out/static/client/749.15180d605dd9d7e9.js.map +1 -0
- package/out/static/client/{index.a66b5a087a738e61.js → index.a845f20de1913b16.js} +3 -3
- package/out/static/client/{index.a66b5a087a738e61.js.map → index.a845f20de1913b16.js.map} +1 -1
- package/out/static/client/{runtime.149f3caaca6b394a.js → runtime.b11a359ec0a4abb0.js} +2 -2
- package/out/static/client/{runtime.149f3caaca6b394a.js.map → runtime.b11a359ec0a4abb0.js.map} +1 -1
- package/out/static/client/stats.json +740 -686
- package/out/static/client/styles-a11y-menu.7b49a1a7289a65dd.js +1 -0
- package/out/static/client/styles-advertising.ee901de4f53dfcfb.js +1 -0
- package/out/static/client/styles-article-footer.e9f7514e3e96e55e.js +1 -0
- package/out/static/client/styles-banner.d39b1822c276b7a1.js +1 -0
- package/out/static/client/styles-baseline-indicator.b0124633d8959185.js +1 -0
- package/out/static/client/styles-blog-index.a6463d0111bfa84b.js +1 -0
- package/out/static/client/styles-blog-post.226761d5090b01f6.js +1 -0
- package/out/static/client/{styles-blog-post.23b8b3e8e0ec1e69.css → styles-blog-post.c03ec8a22f8d4ff6.css} +2 -2
- package/out/static/client/{styles-blog-post.23b8b3e8e0ec1e69.css.map → styles-blog-post.c03ec8a22f8d4ff6.css.map} +1 -1
- package/out/static/client/styles-breadcrumbs-bar.9539fa2e37251d88.js +1 -0
- package/out/static/client/{styles-breadcrumbs-bar.02910e49bb8b2372.css → styles-breadcrumbs-bar.9a51a3c76a6231d0.css} +2 -2
- package/out/static/client/{styles-breadcrumbs-bar.02910e49bb8b2372.css.map → styles-breadcrumbs-bar.9a51a3c76a6231d0.css.map} +1 -1
- package/out/static/client/styles-breadcrumbs.73650619944b4ea9.js +1 -0
- package/out/static/client/styles-button.63c03050fb25b8ce.js +1 -0
- package/out/static/client/{styles-content-section.302cd1e445138b77.css → styles-content-section.01ee04d014688a05.css} +2 -2
- package/out/static/client/{styles-content-section.302cd1e445138b77.css.map → styles-content-section.01ee04d014688a05.css.map} +1 -1
- package/out/static/client/styles-content-section.4ebcf9edf977159a.js +1 -0
- package/out/static/client/styles-contributor-spotlight.f585c3be560baa36.js +1 -0
- package/out/static/client/styles-curriculum-about.df2a58fdc99668aa.js +1 -0
- package/out/static/client/styles-curriculum-default.87a662ae2e005fdc.js +1 -0
- package/out/static/client/styles-curriculum-landing.9af582d4a3e0692e.js +1 -0
- package/out/static/client/styles-curriculum-module.f87720da3b256bba.js +1 -0
- package/out/static/client/styles-curriculum-overview.16cdc5cb80128597.js +1 -0
- package/out/static/client/styles-featured-articles.950585abbd167c3f.js +1 -0
- package/out/static/client/styles-footer.f49c80542ef1fffb.js +1 -0
- package/out/static/client/styles-generic-about.b208cb4d9b62f6c5.js +1 -0
- package/out/static/client/styles-generic-community.264a7b11b708e2ae.js +1 -0
- package/out/static/client/styles-generic-content.bd4990121f075489.js +1 -0
- package/out/static/client/styles-generic-layout.1bc69c25775219ab.css +2 -0
- package/out/static/client/styles-generic-layout.1bc69c25775219ab.css.map +1 -0
- package/out/static/client/styles-generic-layout.518d8e7529d6d1e8.js +1 -0
- package/out/static/client/styles-generic-sidebar.a304a0ae4ff5d9d0.css +2 -0
- package/out/static/client/styles-generic-sidebar.a304a0ae4ff5d9d0.css.map +1 -0
- package/out/static/client/styles-generic-sidebar.a6ddb6ad375b6dea.js +1 -0
- package/out/static/client/styles-generic-toc.25a47b5903329e13.js +1 -0
- package/out/static/client/styles-generic-toc.b6981465a649e2b6.css +2 -0
- package/out/static/client/styles-generic-toc.b6981465a649e2b6.css.map +1 -0
- package/out/static/client/styles-global.b5c1c00652883917.js +1 -0
- package/out/static/client/{styles-global.2db431c11b66274e.css → styles-global.d24cf1d2734970c9.css} +2 -2
- package/out/static/client/{styles-global.2db431c11b66274e.css.map → styles-global.d24cf1d2734970c9.css.map} +1 -1
- package/out/static/client/styles-heading-anchor.a68e3e0eb0044a98.js +1 -0
- package/out/static/client/styles-homepage-body.04efe05e01579005.js +1 -0
- package/out/static/client/styles-homepage-contributor-spotlight.2bcbb1476c70410c.css +2 -0
- package/out/static/client/styles-homepage-contributor-spotlight.2bcbb1476c70410c.css.map +1 -0
- package/out/static/client/styles-homepage-contributor-spotlight.2da6fde81ab2e03a.js +1 -0
- package/out/static/client/styles-homepage-footer.d85ee198521b0417.js +1 -0
- package/out/static/client/styles-homepage-header.5c911fca0afedc7b.js +1 -0
- package/out/static/client/styles-homepage-hero.84542c123063331a.js +1 -0
- package/out/static/client/styles-homepage.6e3908e268226cfc.js +1 -0
- package/out/static/client/styles-latest-news.44b2cf830a3df3ba.js +1 -0
- package/out/static/client/styles-left-sidebar.81864a1b1af13cdc.css +2 -0
- package/out/static/client/styles-left-sidebar.81864a1b1af13cdc.css.map +1 -0
- package/out/static/client/styles-left-sidebar.c2ccc5982e4f4ec0.js +1 -0
- package/out/static/client/styles-logo.0e5223b5ca6c5c86.js +1 -0
- package/out/static/client/styles-mandala.5c6c0f84ff4bc09b.js +1 -0
- package/out/static/client/styles-menu.649d9e554d19dacb.js +1 -0
- package/out/static/client/styles-navigation.1bb818a8993b53bb.js +1 -0
- package/out/static/client/styles-not-found.5548da6ee760df5e.js +1 -0
- package/out/static/client/{styles-observatory-landing.7b47ee0004877825.css → styles-observatory-landing.55565f28f568d9fe.css} +2 -2
- package/out/static/client/{styles-observatory-landing.7b47ee0004877825.css.map → styles-observatory-landing.55565f28f568d9fe.css.map} +1 -1
- package/out/static/client/styles-observatory-landing.7b756d84bfd1f4a5.js +1 -0
- package/out/static/client/{styles-observatory-results.d8a2bea1fbfd4b2b.css → styles-observatory-results.8a6dcd7f335b94cc.css} +2 -2
- package/out/static/client/{styles-observatory-results.d8a2bea1fbfd4b2b.css.map → styles-observatory-results.8a6dcd7f335b94cc.css.map} +1 -1
- package/out/static/client/styles-observatory-results.a50f31e31fe5ce13.js +1 -0
- package/out/static/client/{styles-page-layout.e9b295138adbd4bc.css → styles-page-layout.5a4354f33e894319.css} +2 -2
- package/out/static/client/{styles-page-layout.e9b295138adbd4bc.css.map → styles-page-layout.5a4354f33e894319.css.map} +1 -1
- package/out/static/client/styles-page-layout.9a6bdcc133e4e481.js +1 -0
- package/out/static/client/styles-pagination.5b25c72cc0556f24.js +1 -0
- package/out/static/client/styles-playground.090bda8c12a63ec0.js +1 -0
- package/out/static/client/styles-recent-contributions.e713ba28ab0b7bc3.js +1 -0
- package/out/static/client/styles-reference-layout.e853d0ede90ff6ff.js +1 -0
- package/out/static/client/styles-reference-layout.f17861486ef2423f.css +2 -0
- package/out/static/client/styles-reference-layout.f17861486ef2423f.css.map +1 -0
- package/out/static/client/styles-reference-toc.dcf148c129d92975.js +1 -0
- package/out/static/client/styles-sandbox.dcb6dce1120b594d.js +1 -0
- package/out/static/client/{styles-site-search.ec3b6780533a8750.css → styles-site-search.3177bb12b1f83bf7.css} +2 -2
- package/out/static/client/{styles-site-search.ec3b6780533a8750.css.map → styles-site-search.3177bb12b1f83bf7.css.map} +1 -1
- package/out/static/client/styles-site-search.acc899abcd2a7645.js +1 -0
- package/out/static/client/styles-social-image.65fa265c06411ba3.js +1 -0
- package/out/static/client/styles-translation-banner.261e19907fee981b.js +1 -0
- package/out/static/client/styles-writer-toolbar.16afb45c733053cc.js +1 -0
- package/out/static/client/styles.298615289719f0aa.js +2 -0
- package/out/static/client/styles.298615289719f0aa.js.map +1 -0
- package/out/static/legacy/{2569.9f096bac448374bd.js → 2569.39ecdf7fe2d20c17.js} +2 -2
- package/out/static/legacy/{2569.9f096bac448374bd.js.map → 2569.39ecdf7fe2d20c17.js.map} +1 -1
- package/out/static/legacy/6753.9fefb8415a5a449e.js +27 -0
- package/out/static/legacy/6753.9fefb8415a5a449e.js.map +1 -0
- package/out/static/legacy/asset-manifest.json +8 -8
- package/out/static/legacy/{index.7ddac90f21db9f4e.html → index.5b77e00ea8d6df0b.html} +1 -1
- package/out/static/legacy/{index.6c7371784b8345e6.js → index.def60ac10a95218f.js} +3 -3
- package/out/static/legacy/{index.6c7371784b8345e6.js.map → index.def60ac10a95218f.js.map} +1 -1
- package/out/static/legacy/stats.json +13 -13
- package/out/static/legacy/{yari.74e397a2236facc5.js → yari.c9b6c25e48cbb380.js} +4 -4
- package/out/static/legacy/yari.c9b6c25e48cbb380.js.map +1 -0
- package/out/static/ssr/index.js +78 -37
- package/out/static/ssr/index.js.map +1 -1
- package/out/static/ssr/stats.json +4 -4
- package/package.json +18 -18
- package/out/static/client/5408.4bc756c440135b62.css +0 -2
- package/out/static/client/5408.4bc756c440135b62.css.map +0 -1
- package/out/static/client/6216.1bfd3cf0b0a6c7df.js +0 -2
- package/out/static/client/6216.1bfd3cf0b0a6c7df.js.map +0 -1
- package/out/static/client/6760.6ac3b2b3affbbe00.js +0 -6
- package/out/static/client/6760.6ac3b2b3affbbe00.js.map +0 -1
- package/out/static/client/749.f46b8d04d93e42db.js.map +0 -1
- package/out/static/client/styles-a11y-menu.b09c6038ee60691b.js +0 -1
- package/out/static/client/styles-advertising.8a72634ac33967b3.js +0 -1
- package/out/static/client/styles-article-footer.2008e05e900132bf.js +0 -1
- package/out/static/client/styles-banner.1588da63ad451f94.js +0 -1
- package/out/static/client/styles-baseline-indicator.045ce266c0388ff2.js +0 -1
- package/out/static/client/styles-blog-index.af7e5efac0463be9.js +0 -1
- package/out/static/client/styles-blog-post.21543a25c5d0c820.js +0 -1
- package/out/static/client/styles-breadcrumbs-bar.4e50455c81d9f236.js +0 -1
- package/out/static/client/styles-breadcrumbs.3272f39f147fdb26.js +0 -1
- package/out/static/client/styles-button.93e42cbce83fe9f8.js +0 -1
- package/out/static/client/styles-content-section.b38423c0dca8e3e4.js +0 -1
- package/out/static/client/styles-contributor-spotlight.efe854e18205bd6c.js +0 -1
- package/out/static/client/styles-curriculum-about.eb719efa09eab2e3.js +0 -1
- package/out/static/client/styles-curriculum-default.648a02845551d4a6.js +0 -1
- package/out/static/client/styles-curriculum-landing.f3af2ff9b3815ed8.js +0 -1
- package/out/static/client/styles-curriculum-module.284687a631bdb6c0.js +0 -1
- package/out/static/client/styles-curriculum-overview.81d25abdbb43b369.js +0 -1
- package/out/static/client/styles-featured-articles.1390540e6554e233.js +0 -1
- package/out/static/client/styles-footer.15153a4030e38f8f.js +0 -1
- package/out/static/client/styles-generic-about.f0afaa2db7066430.js +0 -1
- package/out/static/client/styles-generic-community.ff945b87102835f8.js +0 -1
- package/out/static/client/styles-generic-content.d0e560a0506475b1.js +0 -1
- package/out/static/client/styles-generic-layout.42a5e62407bd0066.css +0 -2
- package/out/static/client/styles-generic-layout.42a5e62407bd0066.css.map +0 -1
- package/out/static/client/styles-generic-layout.ca2cef837e24e7df.js +0 -1
- package/out/static/client/styles-generic-sidebar.b2b48d0d08f8bae7.js +0 -1
- package/out/static/client/styles-generic-sidebar.db43d8c5c4748aca.css +0 -2
- package/out/static/client/styles-generic-sidebar.db43d8c5c4748aca.css.map +0 -1
- package/out/static/client/styles-generic-toc.109e07ffeb20bc67.css +0 -2
- package/out/static/client/styles-generic-toc.109e07ffeb20bc67.css.map +0 -1
- package/out/static/client/styles-generic-toc.e8887bbe84a31d72.js +0 -1
- package/out/static/client/styles-global.efc5040b727dfca4.js +0 -1
- package/out/static/client/styles-heading-anchor.d7e14184517a1d3e.js +0 -1
- package/out/static/client/styles-homepage-body.1196a061fab22906.js +0 -1
- package/out/static/client/styles-homepage-contributor-spotlight.09a6993f73166d63.js +0 -1
- package/out/static/client/styles-homepage-contributor-spotlight.edc39a3f01eb964e.css +0 -2
- package/out/static/client/styles-homepage-contributor-spotlight.edc39a3f01eb964e.css.map +0 -1
- package/out/static/client/styles-homepage-footer.472132358e452a8b.js +0 -1
- package/out/static/client/styles-homepage-header.e6423ccb0a814f99.js +0 -1
- package/out/static/client/styles-homepage-hero.1c106d7a3adb970a.js +0 -1
- package/out/static/client/styles-homepage.843ab43d3f720fb6.js +0 -1
- package/out/static/client/styles-latest-news.986caae0711fbfe3.js +0 -1
- package/out/static/client/styles-left-sidebar.4d5208e5cb72af05.css +0 -2
- package/out/static/client/styles-left-sidebar.4d5208e5cb72af05.css.map +0 -1
- package/out/static/client/styles-left-sidebar.5a4d56fc21aab182.js +0 -1
- package/out/static/client/styles-logo.9cf3aa133bae8020.js +0 -1
- package/out/static/client/styles-mandala.b9822fc945abee39.js +0 -1
- package/out/static/client/styles-menu.97e048a6ffc666ce.js +0 -1
- package/out/static/client/styles-navigation.58a2a0a1f8d4487b.js +0 -1
- package/out/static/client/styles-not-found.a5c00a725a178969.js +0 -1
- package/out/static/client/styles-observatory-landing.c729a3523c37df23.js +0 -1
- package/out/static/client/styles-observatory-results.d4d142541bf683e1.js +0 -1
- package/out/static/client/styles-page-layout.baa1dac2402744c9.js +0 -1
- package/out/static/client/styles-pagination.04e3a505f4e789a6.js +0 -1
- package/out/static/client/styles-playground.7de5e497e2ebfa83.js +0 -1
- package/out/static/client/styles-recent-contributions.f1ab270b54c7e8de.js +0 -1
- package/out/static/client/styles-reference-layout.2c2d031dc83d605a.css +0 -2
- package/out/static/client/styles-reference-layout.2c2d031dc83d605a.css.map +0 -1
- package/out/static/client/styles-reference-layout.5c4b832bc9420f51.js +0 -1
- package/out/static/client/styles-reference-toc.afd507fb6d5ef895.js +0 -1
- package/out/static/client/styles-sandbox.3de7bd2afac30c66.js +0 -1
- package/out/static/client/styles-site-search.05f228cb7ac309b2.js +0 -1
- package/out/static/client/styles-social-image.dbdccf6b8d9258f2.js +0 -1
- package/out/static/client/styles-translation-banner.7698ddb14a70d0e5.js +0 -1
- package/out/static/client/styles-writer-toolbar.f161f8bd86e23a2a.js +0 -1
- package/out/static/client/styles.a182af71488aad03.js +0 -2
- package/out/static/client/styles.a182af71488aad03.js.map +0 -1
- package/out/static/legacy/6753.c44647828e8b4816.js +0 -27
- package/out/static/legacy/6753.c44647828e8b4816.js.map +0 -1
- package/out/static/legacy/yari.74e397a2236facc5.js.map +0 -1
- /package/out/static/client/{index.a66b5a087a738e61.js.LICENSE.txt → index.a845f20de1913b16.js.LICENSE.txt} +0 -0
- /package/out/static/legacy/{6753.c44647828e8b4816.js.LICENSE.txt → 6753.9fefb8415a5a449e.js.LICENSE.txt} +0 -0
- /package/out/static/legacy/{index.6c7371784b8345e6.js.LICENSE.txt → index.def60ac10a95218f.js.LICENSE.txt} +0 -0
- /package/out/static/legacy/{yari.74e397a2236facc5.js.LICENSE.txt → yari.c9b6c25e48cbb380.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
.layout__2-sidebars,
|
|
2
|
+
.layout__2-sidebars-inline {
|
|
3
|
+
display: grid;
|
|
4
|
+
|
|
5
|
+
grid-template-columns: var(--layout-2-sidebars);
|
|
6
|
+
|
|
7
|
+
justify-content: space-between;
|
|
8
|
+
|
|
9
|
+
padding-inline: var(--layout-side-padding);
|
|
10
|
+
|
|
11
|
+
.layout__left-sidebar {
|
|
12
|
+
grid-area: left-sidebar;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.layout__right-sidebar {
|
|
16
|
+
grid-area: right-sidebar;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.layout__left-sidebar,
|
|
20
|
+
.layout__right-sidebar {
|
|
21
|
+
position: sticky;
|
|
22
|
+
top: var(--sticky-header-height);
|
|
23
|
+
|
|
24
|
+
max-height: calc(100vh - var(--sticky-header-height));
|
|
25
|
+
|
|
26
|
+
overflow-y: auto;
|
|
27
|
+
|
|
28
|
+
outline-offset: -2px;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
@media (--screen-layout-2-sidebars) {
|
|
32
|
+
.layout__left-sidebar {
|
|
33
|
+
padding-right: var(--layout-sidebar-padding);
|
|
34
|
+
padding-left: var(--layout-side-padding-min);
|
|
35
|
+
margin-left: calc(-1 * var(--layout-side-padding-min));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.layout__right-sidebar {
|
|
39
|
+
padding-right: var(--layout-side-padding-min);
|
|
40
|
+
padding-left: var(--layout-sidebar-padding);
|
|
41
|
+
margin-right: calc(-1 * var(--layout-side-padding-min));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@media (--screen-layout-1-sidebar-or-less) {
|
|
46
|
+
grid-template-columns: var(--layout-1-sidebar-left);
|
|
47
|
+
|
|
48
|
+
.layout__left-sidebar {
|
|
49
|
+
z-index: 1;
|
|
50
|
+
display: none;
|
|
51
|
+
background: var(--color-background-page);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.layout__left-sidebar,
|
|
55
|
+
.layout__right-sidebar {
|
|
56
|
+
grid-area: sidebar;
|
|
57
|
+
|
|
58
|
+
padding-right: var(--layout-sidebar-padding);
|
|
59
|
+
padding-left: var(--layout-side-padding-min);
|
|
60
|
+
margin-left: calc(-1 * var(--layout-side-padding-min));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
@media (--screen-layout-no-sidebar) {
|
|
65
|
+
display: block;
|
|
66
|
+
|
|
67
|
+
.layout__left-sidebar,
|
|
68
|
+
.layout__right-sidebar {
|
|
69
|
+
padding-right: unset;
|
|
70
|
+
padding-left: unset;
|
|
71
|
+
margin-left: unset;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.layout__left-sidebar {
|
|
75
|
+
position: fixed;
|
|
76
|
+
inset: 0;
|
|
77
|
+
top: var(--sticky-header-height);
|
|
78
|
+
z-index: var(--z-index-sidebar-mobile);
|
|
79
|
+
|
|
80
|
+
padding: 0 var(--layout-side-padding-min);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.layout__right-sidebar {
|
|
84
|
+
position: unset;
|
|
85
|
+
top: unset;
|
|
86
|
+
|
|
87
|
+
max-height: unset;
|
|
88
|
+
|
|
89
|
+
overflow-y: unset;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.layout__2-sidebars {
|
|
95
|
+
.layout__content {
|
|
96
|
+
grid-area: content;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
@media (--screen-layout-no-sidebar) {
|
|
100
|
+
.layout__right-sidebar {
|
|
101
|
+
display: none;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.layout__2-sidebars-inline {
|
|
107
|
+
grid-template-areas:
|
|
108
|
+
"left-sidebar . header . right-sidebar"
|
|
109
|
+
"left-sidebar . body . right-sidebar";
|
|
110
|
+
grid-template-rows: min-content 1fr;
|
|
111
|
+
|
|
112
|
+
.layout__content {
|
|
113
|
+
display: contents;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.layout__header {
|
|
117
|
+
grid-area: header;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.layout__body {
|
|
121
|
+
grid-area: body;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
@media (--screen-layout-1-sidebar-or-less) {
|
|
125
|
+
grid-template-areas:
|
|
126
|
+
"sidebar . header"
|
|
127
|
+
"sidebar . body";
|
|
128
|
+
grid-template-columns: var(--layout-1-sidebar-left);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
@media (--screen-layout-no-sidebar) {
|
|
132
|
+
.layout__right-sidebar {
|
|
133
|
+
position: unset;
|
|
134
|
+
top: unset;
|
|
135
|
+
|
|
136
|
+
max-height: unset;
|
|
137
|
+
|
|
138
|
+
overflow-y: unset;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
@@ -1,8 +1,50 @@
|
|
|
1
1
|
# Layout
|
|
2
2
|
|
|
3
|
-
This component provides some global utility variables for consistent layout.
|
|
3
|
+
This component provides some global utility variables and some importable stylesheets for consistent layout.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
If you need to do something very custom, you can use the variables directly, otherwise we recommend using one of the importable stylesheets and applying the classes to your component.
|
|
6
|
+
|
|
7
|
+
## Class based layouts
|
|
8
|
+
|
|
9
|
+
### `.layout__2-sidebars`
|
|
10
|
+
|
|
11
|
+
Import from `./2-sidebars.css`
|
|
12
|
+
|
|
13
|
+
Classes should be used with this hierarchy:
|
|
14
|
+
|
|
15
|
+
- `layout__2-sidebars`
|
|
16
|
+
- `layout__left-sidebar`
|
|
17
|
+
- `layout__content`
|
|
18
|
+
- `layout__right-sidebar`
|
|
19
|
+
|
|
20
|
+
When there's space for 2 sidebars then both sidebars will show, left on the left and right on the right.
|
|
21
|
+
|
|
22
|
+
When there's only space for 1 sidebar then the right sidebar will show on the left and the left sidebar will become toggleable with `<mdn-toggle-sidebar>`.
|
|
23
|
+
|
|
24
|
+
When there's no space for sidebars then the right sidebar will be hidden and the left sidebar still toggleable.
|
|
25
|
+
|
|
26
|
+
### `.layout__2-sidebars-inline`
|
|
27
|
+
|
|
28
|
+
Import from `./2-sidebars.css`
|
|
29
|
+
|
|
30
|
+
Classes should be used with this hierarchy:
|
|
31
|
+
|
|
32
|
+
- `layout__2-sidebars-inline`
|
|
33
|
+
- `layout__left-sidebar`
|
|
34
|
+
- `layout__content`
|
|
35
|
+
- `layout__header`
|
|
36
|
+
- `layout__right-sidebar`
|
|
37
|
+
- `layout__body`
|
|
38
|
+
|
|
39
|
+
When there's space for 2 sidebars then both sidebars will show, left on the left and right on the right, with header and body shown in the central content area.
|
|
40
|
+
|
|
41
|
+
When there's only space for 1 sidebar then the right sidebar will show on the left and the left sidebar will become toggleable with `<mdn-toggle-sidebar>`.
|
|
42
|
+
|
|
43
|
+
When there's no space for sidebars then the right sidebar will be displayed inline within the content and the left sidebar still toggleable.
|
|
44
|
+
|
|
45
|
+
## Global utility variables
|
|
46
|
+
|
|
47
|
+
### Side padding
|
|
6
48
|
|
|
7
49
|
In the simplest case, you may just need the `--layout-side-padding` variable. This keeps full width content in line with the padding in the navigation and footer, which provides a small padding on small screens, and centers content on very large screens:
|
|
8
50
|
|
|
@@ -12,7 +54,7 @@ In the simplest case, you may just need the `--layout-side-padding` variable. Th
|
|
|
12
54
|
}
|
|
13
55
|
```
|
|
14
56
|
|
|
15
|
-
|
|
57
|
+
### Content and sidebar layouts
|
|
16
58
|
|
|
17
59
|
If the page has "content" - some kind of prose - and optionally sidebars, you'll likely want one of the following layouts.
|
|
18
60
|
The columns are sized to ensure that the content column doesn't become too wide (and have unreadably long lines of text), and that the sidebar columns don't become too narrow.
|
|
@@ -57,7 +99,7 @@ If you're using sidebars, you'll probably want to use the [custom media queries]
|
|
|
57
99
|
}
|
|
58
100
|
```
|
|
59
101
|
|
|
60
|
-
|
|
102
|
+
#### 2 sidebars: `--layout-2-sidebars`
|
|
61
103
|
|
|
62
104
|
A column for content, two columns for sidebars, and two columns for a gap between the content and sidebars. The columns are named as follows:
|
|
63
105
|
|
|
@@ -69,13 +111,13 @@ A column for content, two columns for sidebars, and two columns for a gap betwee
|
|
|
69
111
|
|
|
70
112
|
Use the `--screen-layout-1-sidebar-or-less` custom media query to change to a different layout when the viewport becomes too narrow.
|
|
71
113
|
|
|
72
|
-
|
|
114
|
+
#### 1 sidebar
|
|
73
115
|
|
|
74
116
|
Two variants, which are identical apart from one having a left sidebar and the other a right sidebar. They have a column for content, a column for the sidebar, and a column for a gap between the content and sidebar.
|
|
75
117
|
|
|
76
118
|
Use the `--screen-layout-no-sidebar` custom media query to change to a different layout when the viewport becomes too narrow.
|
|
77
119
|
|
|
78
|
-
|
|
120
|
+
##### Left sidebar `--layout-1-sidebar-left`
|
|
79
121
|
|
|
80
122
|
The columns are named as follows:
|
|
81
123
|
|
|
@@ -86,7 +128,7 @@ The columns are named as follows:
|
|
|
86
128
|
| left-sidebar | | |
|
|
87
129
|
| sidebar | | |
|
|
88
130
|
|
|
89
|
-
|
|
131
|
+
##### Right sidebar `--layout-1-sidebar-right`
|
|
90
132
|
|
|
91
133
|
The columns are named as follows:
|
|
92
134
|
|
|
@@ -97,11 +139,11 @@ The columns are named as follows:
|
|
|
97
139
|
| | | right-sidebar |
|
|
98
140
|
| | | sidebar |
|
|
99
141
|
|
|
100
|
-
|
|
142
|
+
#### No sidebar
|
|
101
143
|
|
|
102
144
|
Two variants, one if you're using `--layout-side-padding`, the other if you'd like to place things within that padding (e.g. a full width banner):
|
|
103
145
|
|
|
104
|
-
|
|
146
|
+
##### Using padding: `--layout-no-sidebar`
|
|
105
147
|
|
|
106
148
|
The columns are named as follows:
|
|
107
149
|
|
|
@@ -122,7 +164,7 @@ The columns are named as follows:
|
|
|
122
164
|
}
|
|
123
165
|
```
|
|
124
166
|
|
|
125
|
-
|
|
167
|
+
##### Not using padding: `--layout-no-sidebar-extended`
|
|
126
168
|
|
|
127
169
|
The columns are named as follows:
|
|
128
170
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/* --layout-side-padding-min * 2 + (--layout-sidebar-min + --layout-sidebar-gap) * 2 + --layout-content-min */
|
|
2
|
-
@custom-media --screen-layout-2-sidebars (width >= calc(1rem * 2 + (
|
|
3
|
-
@custom-media --screen-layout-1-sidebar-or-less (width < calc(1rem * 2 + (
|
|
2
|
+
@custom-media --screen-layout-2-sidebars (width >= calc(1rem * 2 + (15rem + 2rem) * 2 + 31rem));
|
|
3
|
+
@custom-media --screen-layout-1-sidebar-or-less (width < calc(1rem * 2 + (15rem + 2rem) * 2 + 31rem));
|
|
4
4
|
|
|
5
5
|
/* --layout-side-padding-min * 2 + --layout-sidebar-min + --layout-sidebar-gap + --layout-content-min */
|
|
6
|
-
@custom-media --screen-layout-no-sidebar (width < calc(1rem * 2 +
|
|
6
|
+
@custom-media --screen-layout-no-sidebar (width < calc(1rem * 2 + 15rem + 2rem + 31rem));
|
|
7
7
|
|
|
8
8
|
:root {
|
|
9
9
|
--layout-side-padding-min: 1rem;
|
|
@@ -13,13 +13,12 @@
|
|
|
13
13
|
);
|
|
14
14
|
--layout-full-width: calc(100vw - 2 * var(--layout-side-padding));
|
|
15
15
|
|
|
16
|
-
--layout-sidebar-min:
|
|
16
|
+
--layout-sidebar-min: 15rem;
|
|
17
17
|
--layout-sidebar-gap: 2rem;
|
|
18
|
+
--layout-sidebar-padding: 1rem;
|
|
18
19
|
--layout-content-min: 31rem;
|
|
19
20
|
--layout-content-max: 48rem;
|
|
20
21
|
|
|
21
|
-
/* WARNING: TODO: left/center/right cols widths will change */
|
|
22
|
-
|
|
23
22
|
/* prettier-ignore */
|
|
24
23
|
--layout-2-sidebars:
|
|
25
24
|
[full-start left-sidebar-start]
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
.left-sidebar {
|
|
2
|
-
position: sticky;
|
|
3
|
-
top: var(--sticky-header-height);
|
|
4
|
-
|
|
5
2
|
padding-bottom: 3rem;
|
|
6
|
-
|
|
7
3
|
overflow-wrap: anywhere;
|
|
8
4
|
|
|
9
5
|
h4 {
|
|
@@ -87,7 +83,7 @@
|
|
|
87
83
|
|
|
88
84
|
a,
|
|
89
85
|
span:not(.highlight-container) {
|
|
90
|
-
display: inline-
|
|
86
|
+
display: inline-block;
|
|
91
87
|
padding-block: 0.25rem;
|
|
92
88
|
vertical-align: middle;
|
|
93
89
|
}
|
|
@@ -107,6 +103,7 @@
|
|
|
107
103
|
code {
|
|
108
104
|
font-family: var(--font-family-code);
|
|
109
105
|
font-size: var(--font-size-normal);
|
|
106
|
+
line-height: 1;
|
|
110
107
|
}
|
|
111
108
|
|
|
112
109
|
em {
|
|
@@ -131,12 +128,6 @@
|
|
|
131
128
|
}
|
|
132
129
|
}
|
|
133
130
|
|
|
134
|
-
.left-sidebar__content {
|
|
135
|
-
> ol {
|
|
136
|
-
padding-left: 2px;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
|
|
140
131
|
.left-sidebar__header {
|
|
141
132
|
position: sticky;
|
|
142
133
|
top: 0;
|
|
@@ -145,7 +136,6 @@
|
|
|
145
136
|
padding-top: 0.5rem;
|
|
146
137
|
padding-right: 0.5rem;
|
|
147
138
|
padding-bottom: 2rem;
|
|
148
|
-
padding-left: 2px;
|
|
149
139
|
|
|
150
140
|
background: linear-gradient(
|
|
151
141
|
to bottom,
|
|
@@ -23,13 +23,28 @@ ul {
|
|
|
23
23
|
|
|
24
24
|
li {
|
|
25
25
|
padding: 0 0.5em;
|
|
26
|
+
white-space: nowrap;
|
|
26
27
|
|
|
27
28
|
&::before {
|
|
29
|
+
display: inline-block;
|
|
30
|
+
|
|
31
|
+
width: 0.75rem;
|
|
32
|
+
|
|
33
|
+
vertical-align: top;
|
|
34
|
+
|
|
28
35
|
content: "> ";
|
|
29
36
|
}
|
|
30
37
|
}
|
|
31
38
|
|
|
32
39
|
code {
|
|
40
|
+
display: inline-block;
|
|
41
|
+
|
|
42
|
+
width: calc(100% - 0.75rem);
|
|
43
|
+
|
|
44
|
+
margin: 0;
|
|
45
|
+
|
|
33
46
|
font-family: var(--font-family-code);
|
|
47
|
+
|
|
34
48
|
tab-size: 4;
|
|
49
|
+
white-space: pre-wrap;
|
|
35
50
|
}
|
|
@@ -1,25 +1,9 @@
|
|
|
1
|
+
@import url("../layout/2-sidebars.css");
|
|
2
|
+
|
|
1
3
|
/* Reference Layout */
|
|
2
4
|
|
|
3
5
|
.reference-layout {
|
|
4
|
-
display: grid;
|
|
5
|
-
|
|
6
|
-
grid-template-areas:
|
|
7
|
-
"sidebar . header . toc"
|
|
8
|
-
"sidebar . body . toc";
|
|
9
|
-
grid-template-rows: min-content 1fr;
|
|
10
|
-
grid-template-columns: var(--layout-2-sidebars);
|
|
11
|
-
|
|
12
|
-
justify-content: space-between;
|
|
13
|
-
|
|
14
|
-
padding-inline: var(--layout-side-padding);
|
|
15
|
-
|
|
16
|
-
.reference-layout__content {
|
|
17
|
-
display: contents;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
6
|
.reference-layout__header {
|
|
21
|
-
grid-area: header;
|
|
22
|
-
|
|
23
7
|
h1 {
|
|
24
8
|
margin: 1rem 0;
|
|
25
9
|
|
|
@@ -31,84 +15,22 @@
|
|
|
31
15
|
}
|
|
32
16
|
|
|
33
17
|
.reference-layout__body {
|
|
34
|
-
grid-area: body;
|
|
35
18
|
padding-bottom: 3rem;
|
|
36
19
|
}
|
|
37
20
|
|
|
38
|
-
.reference-layout__sidebar {
|
|
39
|
-
grid-area: sidebar;
|
|
40
|
-
|
|
41
|
-
@media (--screen-layout-2-sidebars) {
|
|
42
|
-
.left-sidebar {
|
|
43
|
-
padding-right: calc(var(--layout-sidebar-gap) / 2);
|
|
44
|
-
margin-right: calc(var(--layout-sidebar-gap) / -2);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
21
|
.reference-layout__toc {
|
|
50
22
|
display: flex;
|
|
51
23
|
|
|
52
24
|
flex-wrap: wrap;
|
|
53
25
|
|
|
54
|
-
grid-area: toc;
|
|
55
|
-
|
|
56
26
|
gap: 0.5rem;
|
|
57
27
|
align-content: start;
|
|
58
28
|
align-items: start;
|
|
59
29
|
justify-content: space-between;
|
|
60
30
|
}
|
|
61
31
|
|
|
62
|
-
.reference-layout__sidebar .left-sidebar,
|
|
63
|
-
.reference-layout__toc {
|
|
64
|
-
position: sticky;
|
|
65
|
-
top: var(--sticky-header-height);
|
|
66
|
-
|
|
67
|
-
max-height: calc(100vh - var(--sticky-header-height));
|
|
68
|
-
|
|
69
|
-
padding-left: 2px;
|
|
70
|
-
|
|
71
|
-
overflow-y: auto;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
@media (--screen-layout-1-sidebar-or-less) {
|
|
75
|
-
grid-template-areas:
|
|
76
|
-
"toc . header"
|
|
77
|
-
"toc . body";
|
|
78
|
-
grid-template-columns: var(--layout-1-sidebar-left);
|
|
79
|
-
|
|
80
|
-
.reference-layout__sidebar {
|
|
81
|
-
z-index: 1;
|
|
82
|
-
|
|
83
|
-
display: none;
|
|
84
|
-
|
|
85
|
-
grid-area: toc;
|
|
86
|
-
|
|
87
|
-
background: var(--color-background-page);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
32
|
@media (--screen-layout-no-sidebar) {
|
|
92
|
-
display: block;
|
|
93
|
-
|
|
94
|
-
.reference-layout__sidebar {
|
|
95
|
-
position: fixed;
|
|
96
|
-
inset: 0;
|
|
97
|
-
top: var(--sticky-header-height);
|
|
98
|
-
z-index: var(--z-index-sidebar-mobile);
|
|
99
|
-
|
|
100
|
-
.left-sidebar {
|
|
101
|
-
padding: 0 1rem;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
33
|
.reference-layout__toc {
|
|
106
|
-
position: unset;
|
|
107
|
-
top: unset;
|
|
108
|
-
|
|
109
|
-
max-height: unset;
|
|
110
|
-
|
|
111
|
-
overflow-y: unset;
|
|
112
34
|
--toc-header-font-size: var(--font-size-larger);
|
|
113
35
|
}
|
|
114
36
|
}
|
|
@@ -21,24 +21,24 @@ export class ReferenceLayout extends ServerComponent {
|
|
|
21
21
|
doc.body?.map((section) => ContentSection.render(context, section)) || [];
|
|
22
22
|
|
|
23
23
|
return html`
|
|
24
|
-
<div class="reference-layout">
|
|
25
|
-
<main id="content" class="
|
|
26
|
-
<div class="reference-layout__header">
|
|
24
|
+
<div class="layout__2-sidebars-inline reference-layout">
|
|
25
|
+
<main id="content" class="layout__content">
|
|
26
|
+
<div class="layout__header reference-layout__header">
|
|
27
27
|
${WRITER_MODE ? WriterToolbar.render(context) : nothing}
|
|
28
28
|
${TranslationBanner.render(context)}
|
|
29
29
|
<mdn-survey></mdn-survey>
|
|
30
30
|
<h1>${doc.title}</h1>
|
|
31
31
|
${BaselineIndicator.render(context)} ${description}
|
|
32
32
|
</div>
|
|
33
|
-
<aside class="reference-layout__toc">
|
|
33
|
+
<aside class="layout__right-sidebar reference-layout__toc">
|
|
34
34
|
${ReferenceToc.render(context)}
|
|
35
35
|
<mdn-placement-sidebar></mdn-placement-sidebar>
|
|
36
36
|
</aside>
|
|
37
|
-
<div class="reference-layout__body">
|
|
37
|
+
<div class="layout__body reference-layout__body">
|
|
38
38
|
${sections} ${ArticleFooter.render(context)}
|
|
39
39
|
</div>
|
|
40
40
|
</main>
|
|
41
|
-
<aside class="
|
|
41
|
+
<aside class="layout__left-sidebar" id="main-sidebar">
|
|
42
42
|
${LeftSidebar.render(context)}
|
|
43
43
|
</aside>
|
|
44
44
|
</div>
|