@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.
Files changed (222) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/components/content-section/server.css +1 -1
  3. package/components/curriculum/layout.css +2 -77
  4. package/components/curriculum/sidebar.css +0 -4
  5. package/components/curriculum/toc.css +1 -3
  6. package/components/curriculum-about/server.js +15 -6
  7. package/components/curriculum-default/server.js +15 -6
  8. package/components/curriculum-module/server.js +15 -6
  9. package/components/curriculum-overview/server.js +15 -36
  10. package/components/generic-layout/server.css +4 -60
  11. package/components/generic-layout/server.js +9 -4
  12. package/components/generic-sidebar/server.css +1 -3
  13. package/components/generic-toc/server.css +0 -3
  14. package/components/homepage-contributor-spotlight/server.css +5 -1
  15. package/components/html/global.css +2 -1
  16. package/components/layout/2-sidebars.css +141 -0
  17. package/components/layout/README.md +52 -10
  18. package/components/layout/global.css +5 -6
  19. package/components/left-sidebar/server.css +2 -12
  20. package/components/page-layout/server.css +1 -1
  21. package/components/play-console/element.css +15 -0
  22. package/components/print/global.css +2 -2
  23. package/components/reference-layout/server.css +2 -80
  24. package/components/reference-layout/server.js +6 -6
  25. package/out/service-worker.js +1 -1
  26. package/out/service-worker.js.map +1 -1
  27. package/out/static/client/{198.edf1fdf142c21fb8.css → 198.f743d603d3fa74b7.css} +2 -2
  28. package/out/static/client/{198.edf1fdf142c21fb8.css.map → 198.f743d603d3fa74b7.css.map} +1 -1
  29. package/out/static/client/270.66bae6059a1c23f9.css +2 -0
  30. package/out/static/client/270.66bae6059a1c23f9.css.map +1 -0
  31. package/out/static/client/5408.a0622390fa1726dc.css +2 -0
  32. package/out/static/client/5408.a0622390fa1726dc.css.map +1 -0
  33. package/out/static/client/6216.91b6560dce4c40eb.js +2 -0
  34. package/out/static/client/6216.91b6560dce4c40eb.js.map +1 -0
  35. package/out/static/client/6760.d97440f1ca6690c6.js +6 -0
  36. package/out/static/client/6760.d97440f1ca6690c6.js.map +1 -0
  37. package/out/static/client/{749.f46b8d04d93e42db.js → 749.15180d605dd9d7e9.js} +2 -2
  38. package/out/static/client/749.15180d605dd9d7e9.js.map +1 -0
  39. package/out/static/client/{index.a66b5a087a738e61.js → index.a845f20de1913b16.js} +3 -3
  40. package/out/static/client/{index.a66b5a087a738e61.js.map → index.a845f20de1913b16.js.map} +1 -1
  41. package/out/static/client/{runtime.149f3caaca6b394a.js → runtime.b11a359ec0a4abb0.js} +2 -2
  42. package/out/static/client/{runtime.149f3caaca6b394a.js.map → runtime.b11a359ec0a4abb0.js.map} +1 -1
  43. package/out/static/client/stats.json +740 -686
  44. package/out/static/client/styles-a11y-menu.7b49a1a7289a65dd.js +1 -0
  45. package/out/static/client/styles-advertising.ee901de4f53dfcfb.js +1 -0
  46. package/out/static/client/styles-article-footer.e9f7514e3e96e55e.js +1 -0
  47. package/out/static/client/styles-banner.d39b1822c276b7a1.js +1 -0
  48. package/out/static/client/styles-baseline-indicator.b0124633d8959185.js +1 -0
  49. package/out/static/client/styles-blog-index.a6463d0111bfa84b.js +1 -0
  50. package/out/static/client/styles-blog-post.226761d5090b01f6.js +1 -0
  51. package/out/static/client/{styles-blog-post.23b8b3e8e0ec1e69.css → styles-blog-post.c03ec8a22f8d4ff6.css} +2 -2
  52. package/out/static/client/{styles-blog-post.23b8b3e8e0ec1e69.css.map → styles-blog-post.c03ec8a22f8d4ff6.css.map} +1 -1
  53. package/out/static/client/styles-breadcrumbs-bar.9539fa2e37251d88.js +1 -0
  54. package/out/static/client/{styles-breadcrumbs-bar.02910e49bb8b2372.css → styles-breadcrumbs-bar.9a51a3c76a6231d0.css} +2 -2
  55. package/out/static/client/{styles-breadcrumbs-bar.02910e49bb8b2372.css.map → styles-breadcrumbs-bar.9a51a3c76a6231d0.css.map} +1 -1
  56. package/out/static/client/styles-breadcrumbs.73650619944b4ea9.js +1 -0
  57. package/out/static/client/styles-button.63c03050fb25b8ce.js +1 -0
  58. package/out/static/client/{styles-content-section.302cd1e445138b77.css → styles-content-section.01ee04d014688a05.css} +2 -2
  59. package/out/static/client/{styles-content-section.302cd1e445138b77.css.map → styles-content-section.01ee04d014688a05.css.map} +1 -1
  60. package/out/static/client/styles-content-section.4ebcf9edf977159a.js +1 -0
  61. package/out/static/client/styles-contributor-spotlight.f585c3be560baa36.js +1 -0
  62. package/out/static/client/styles-curriculum-about.df2a58fdc99668aa.js +1 -0
  63. package/out/static/client/styles-curriculum-default.87a662ae2e005fdc.js +1 -0
  64. package/out/static/client/styles-curriculum-landing.9af582d4a3e0692e.js +1 -0
  65. package/out/static/client/styles-curriculum-module.f87720da3b256bba.js +1 -0
  66. package/out/static/client/styles-curriculum-overview.16cdc5cb80128597.js +1 -0
  67. package/out/static/client/styles-featured-articles.950585abbd167c3f.js +1 -0
  68. package/out/static/client/styles-footer.f49c80542ef1fffb.js +1 -0
  69. package/out/static/client/styles-generic-about.b208cb4d9b62f6c5.js +1 -0
  70. package/out/static/client/styles-generic-community.264a7b11b708e2ae.js +1 -0
  71. package/out/static/client/styles-generic-content.bd4990121f075489.js +1 -0
  72. package/out/static/client/styles-generic-layout.1bc69c25775219ab.css +2 -0
  73. package/out/static/client/styles-generic-layout.1bc69c25775219ab.css.map +1 -0
  74. package/out/static/client/styles-generic-layout.518d8e7529d6d1e8.js +1 -0
  75. package/out/static/client/styles-generic-sidebar.a304a0ae4ff5d9d0.css +2 -0
  76. package/out/static/client/styles-generic-sidebar.a304a0ae4ff5d9d0.css.map +1 -0
  77. package/out/static/client/styles-generic-sidebar.a6ddb6ad375b6dea.js +1 -0
  78. package/out/static/client/styles-generic-toc.25a47b5903329e13.js +1 -0
  79. package/out/static/client/styles-generic-toc.b6981465a649e2b6.css +2 -0
  80. package/out/static/client/styles-generic-toc.b6981465a649e2b6.css.map +1 -0
  81. package/out/static/client/styles-global.b5c1c00652883917.js +1 -0
  82. package/out/static/client/{styles-global.2db431c11b66274e.css → styles-global.d24cf1d2734970c9.css} +2 -2
  83. package/out/static/client/{styles-global.2db431c11b66274e.css.map → styles-global.d24cf1d2734970c9.css.map} +1 -1
  84. package/out/static/client/styles-heading-anchor.a68e3e0eb0044a98.js +1 -0
  85. package/out/static/client/styles-homepage-body.04efe05e01579005.js +1 -0
  86. package/out/static/client/styles-homepage-contributor-spotlight.2bcbb1476c70410c.css +2 -0
  87. package/out/static/client/styles-homepage-contributor-spotlight.2bcbb1476c70410c.css.map +1 -0
  88. package/out/static/client/styles-homepage-contributor-spotlight.2da6fde81ab2e03a.js +1 -0
  89. package/out/static/client/styles-homepage-footer.d85ee198521b0417.js +1 -0
  90. package/out/static/client/styles-homepage-header.5c911fca0afedc7b.js +1 -0
  91. package/out/static/client/styles-homepage-hero.84542c123063331a.js +1 -0
  92. package/out/static/client/styles-homepage.6e3908e268226cfc.js +1 -0
  93. package/out/static/client/styles-latest-news.44b2cf830a3df3ba.js +1 -0
  94. package/out/static/client/styles-left-sidebar.81864a1b1af13cdc.css +2 -0
  95. package/out/static/client/styles-left-sidebar.81864a1b1af13cdc.css.map +1 -0
  96. package/out/static/client/styles-left-sidebar.c2ccc5982e4f4ec0.js +1 -0
  97. package/out/static/client/styles-logo.0e5223b5ca6c5c86.js +1 -0
  98. package/out/static/client/styles-mandala.5c6c0f84ff4bc09b.js +1 -0
  99. package/out/static/client/styles-menu.649d9e554d19dacb.js +1 -0
  100. package/out/static/client/styles-navigation.1bb818a8993b53bb.js +1 -0
  101. package/out/static/client/styles-not-found.5548da6ee760df5e.js +1 -0
  102. package/out/static/client/{styles-observatory-landing.7b47ee0004877825.css → styles-observatory-landing.55565f28f568d9fe.css} +2 -2
  103. package/out/static/client/{styles-observatory-landing.7b47ee0004877825.css.map → styles-observatory-landing.55565f28f568d9fe.css.map} +1 -1
  104. package/out/static/client/styles-observatory-landing.7b756d84bfd1f4a5.js +1 -0
  105. package/out/static/client/{styles-observatory-results.d8a2bea1fbfd4b2b.css → styles-observatory-results.8a6dcd7f335b94cc.css} +2 -2
  106. package/out/static/client/{styles-observatory-results.d8a2bea1fbfd4b2b.css.map → styles-observatory-results.8a6dcd7f335b94cc.css.map} +1 -1
  107. package/out/static/client/styles-observatory-results.a50f31e31fe5ce13.js +1 -0
  108. package/out/static/client/{styles-page-layout.e9b295138adbd4bc.css → styles-page-layout.5a4354f33e894319.css} +2 -2
  109. package/out/static/client/{styles-page-layout.e9b295138adbd4bc.css.map → styles-page-layout.5a4354f33e894319.css.map} +1 -1
  110. package/out/static/client/styles-page-layout.9a6bdcc133e4e481.js +1 -0
  111. package/out/static/client/styles-pagination.5b25c72cc0556f24.js +1 -0
  112. package/out/static/client/styles-playground.090bda8c12a63ec0.js +1 -0
  113. package/out/static/client/styles-recent-contributions.e713ba28ab0b7bc3.js +1 -0
  114. package/out/static/client/styles-reference-layout.e853d0ede90ff6ff.js +1 -0
  115. package/out/static/client/styles-reference-layout.f17861486ef2423f.css +2 -0
  116. package/out/static/client/styles-reference-layout.f17861486ef2423f.css.map +1 -0
  117. package/out/static/client/styles-reference-toc.dcf148c129d92975.js +1 -0
  118. package/out/static/client/styles-sandbox.dcb6dce1120b594d.js +1 -0
  119. package/out/static/client/{styles-site-search.ec3b6780533a8750.css → styles-site-search.3177bb12b1f83bf7.css} +2 -2
  120. package/out/static/client/{styles-site-search.ec3b6780533a8750.css.map → styles-site-search.3177bb12b1f83bf7.css.map} +1 -1
  121. package/out/static/client/styles-site-search.acc899abcd2a7645.js +1 -0
  122. package/out/static/client/styles-social-image.65fa265c06411ba3.js +1 -0
  123. package/out/static/client/styles-translation-banner.261e19907fee981b.js +1 -0
  124. package/out/static/client/styles-writer-toolbar.16afb45c733053cc.js +1 -0
  125. package/out/static/client/styles.298615289719f0aa.js +2 -0
  126. package/out/static/client/styles.298615289719f0aa.js.map +1 -0
  127. package/out/static/legacy/{2569.9f096bac448374bd.js → 2569.39ecdf7fe2d20c17.js} +2 -2
  128. package/out/static/legacy/{2569.9f096bac448374bd.js.map → 2569.39ecdf7fe2d20c17.js.map} +1 -1
  129. package/out/static/legacy/6753.9fefb8415a5a449e.js +27 -0
  130. package/out/static/legacy/6753.9fefb8415a5a449e.js.map +1 -0
  131. package/out/static/legacy/asset-manifest.json +8 -8
  132. package/out/static/legacy/{index.7ddac90f21db9f4e.html → index.5b77e00ea8d6df0b.html} +1 -1
  133. package/out/static/legacy/{index.6c7371784b8345e6.js → index.def60ac10a95218f.js} +3 -3
  134. package/out/static/legacy/{index.6c7371784b8345e6.js.map → index.def60ac10a95218f.js.map} +1 -1
  135. package/out/static/legacy/stats.json +13 -13
  136. package/out/static/legacy/{yari.74e397a2236facc5.js → yari.c9b6c25e48cbb380.js} +4 -4
  137. package/out/static/legacy/yari.c9b6c25e48cbb380.js.map +1 -0
  138. package/out/static/ssr/index.js +78 -37
  139. package/out/static/ssr/index.js.map +1 -1
  140. package/out/static/ssr/stats.json +4 -4
  141. package/package.json +18 -18
  142. package/out/static/client/5408.4bc756c440135b62.css +0 -2
  143. package/out/static/client/5408.4bc756c440135b62.css.map +0 -1
  144. package/out/static/client/6216.1bfd3cf0b0a6c7df.js +0 -2
  145. package/out/static/client/6216.1bfd3cf0b0a6c7df.js.map +0 -1
  146. package/out/static/client/6760.6ac3b2b3affbbe00.js +0 -6
  147. package/out/static/client/6760.6ac3b2b3affbbe00.js.map +0 -1
  148. package/out/static/client/749.f46b8d04d93e42db.js.map +0 -1
  149. package/out/static/client/styles-a11y-menu.b09c6038ee60691b.js +0 -1
  150. package/out/static/client/styles-advertising.8a72634ac33967b3.js +0 -1
  151. package/out/static/client/styles-article-footer.2008e05e900132bf.js +0 -1
  152. package/out/static/client/styles-banner.1588da63ad451f94.js +0 -1
  153. package/out/static/client/styles-baseline-indicator.045ce266c0388ff2.js +0 -1
  154. package/out/static/client/styles-blog-index.af7e5efac0463be9.js +0 -1
  155. package/out/static/client/styles-blog-post.21543a25c5d0c820.js +0 -1
  156. package/out/static/client/styles-breadcrumbs-bar.4e50455c81d9f236.js +0 -1
  157. package/out/static/client/styles-breadcrumbs.3272f39f147fdb26.js +0 -1
  158. package/out/static/client/styles-button.93e42cbce83fe9f8.js +0 -1
  159. package/out/static/client/styles-content-section.b38423c0dca8e3e4.js +0 -1
  160. package/out/static/client/styles-contributor-spotlight.efe854e18205bd6c.js +0 -1
  161. package/out/static/client/styles-curriculum-about.eb719efa09eab2e3.js +0 -1
  162. package/out/static/client/styles-curriculum-default.648a02845551d4a6.js +0 -1
  163. package/out/static/client/styles-curriculum-landing.f3af2ff9b3815ed8.js +0 -1
  164. package/out/static/client/styles-curriculum-module.284687a631bdb6c0.js +0 -1
  165. package/out/static/client/styles-curriculum-overview.81d25abdbb43b369.js +0 -1
  166. package/out/static/client/styles-featured-articles.1390540e6554e233.js +0 -1
  167. package/out/static/client/styles-footer.15153a4030e38f8f.js +0 -1
  168. package/out/static/client/styles-generic-about.f0afaa2db7066430.js +0 -1
  169. package/out/static/client/styles-generic-community.ff945b87102835f8.js +0 -1
  170. package/out/static/client/styles-generic-content.d0e560a0506475b1.js +0 -1
  171. package/out/static/client/styles-generic-layout.42a5e62407bd0066.css +0 -2
  172. package/out/static/client/styles-generic-layout.42a5e62407bd0066.css.map +0 -1
  173. package/out/static/client/styles-generic-layout.ca2cef837e24e7df.js +0 -1
  174. package/out/static/client/styles-generic-sidebar.b2b48d0d08f8bae7.js +0 -1
  175. package/out/static/client/styles-generic-sidebar.db43d8c5c4748aca.css +0 -2
  176. package/out/static/client/styles-generic-sidebar.db43d8c5c4748aca.css.map +0 -1
  177. package/out/static/client/styles-generic-toc.109e07ffeb20bc67.css +0 -2
  178. package/out/static/client/styles-generic-toc.109e07ffeb20bc67.css.map +0 -1
  179. package/out/static/client/styles-generic-toc.e8887bbe84a31d72.js +0 -1
  180. package/out/static/client/styles-global.efc5040b727dfca4.js +0 -1
  181. package/out/static/client/styles-heading-anchor.d7e14184517a1d3e.js +0 -1
  182. package/out/static/client/styles-homepage-body.1196a061fab22906.js +0 -1
  183. package/out/static/client/styles-homepage-contributor-spotlight.09a6993f73166d63.js +0 -1
  184. package/out/static/client/styles-homepage-contributor-spotlight.edc39a3f01eb964e.css +0 -2
  185. package/out/static/client/styles-homepage-contributor-spotlight.edc39a3f01eb964e.css.map +0 -1
  186. package/out/static/client/styles-homepage-footer.472132358e452a8b.js +0 -1
  187. package/out/static/client/styles-homepage-header.e6423ccb0a814f99.js +0 -1
  188. package/out/static/client/styles-homepage-hero.1c106d7a3adb970a.js +0 -1
  189. package/out/static/client/styles-homepage.843ab43d3f720fb6.js +0 -1
  190. package/out/static/client/styles-latest-news.986caae0711fbfe3.js +0 -1
  191. package/out/static/client/styles-left-sidebar.4d5208e5cb72af05.css +0 -2
  192. package/out/static/client/styles-left-sidebar.4d5208e5cb72af05.css.map +0 -1
  193. package/out/static/client/styles-left-sidebar.5a4d56fc21aab182.js +0 -1
  194. package/out/static/client/styles-logo.9cf3aa133bae8020.js +0 -1
  195. package/out/static/client/styles-mandala.b9822fc945abee39.js +0 -1
  196. package/out/static/client/styles-menu.97e048a6ffc666ce.js +0 -1
  197. package/out/static/client/styles-navigation.58a2a0a1f8d4487b.js +0 -1
  198. package/out/static/client/styles-not-found.a5c00a725a178969.js +0 -1
  199. package/out/static/client/styles-observatory-landing.c729a3523c37df23.js +0 -1
  200. package/out/static/client/styles-observatory-results.d4d142541bf683e1.js +0 -1
  201. package/out/static/client/styles-page-layout.baa1dac2402744c9.js +0 -1
  202. package/out/static/client/styles-pagination.04e3a505f4e789a6.js +0 -1
  203. package/out/static/client/styles-playground.7de5e497e2ebfa83.js +0 -1
  204. package/out/static/client/styles-recent-contributions.f1ab270b54c7e8de.js +0 -1
  205. package/out/static/client/styles-reference-layout.2c2d031dc83d605a.css +0 -2
  206. package/out/static/client/styles-reference-layout.2c2d031dc83d605a.css.map +0 -1
  207. package/out/static/client/styles-reference-layout.5c4b832bc9420f51.js +0 -1
  208. package/out/static/client/styles-reference-toc.afd507fb6d5ef895.js +0 -1
  209. package/out/static/client/styles-sandbox.3de7bd2afac30c66.js +0 -1
  210. package/out/static/client/styles-site-search.05f228cb7ac309b2.js +0 -1
  211. package/out/static/client/styles-social-image.dbdccf6b8d9258f2.js +0 -1
  212. package/out/static/client/styles-translation-banner.7698ddb14a70d0e5.js +0 -1
  213. package/out/static/client/styles-writer-toolbar.f161f8bd86e23a2a.js +0 -1
  214. package/out/static/client/styles.a182af71488aad03.js +0 -2
  215. package/out/static/client/styles.a182af71488aad03.js.map +0 -1
  216. package/out/static/legacy/6753.c44647828e8b4816.js +0 -27
  217. package/out/static/legacy/6753.c44647828e8b4816.js.map +0 -1
  218. package/out/static/legacy/yari.74e397a2236facc5.js.map +0 -1
  219. /package/out/static/client/{index.a66b5a087a738e61.js.LICENSE.txt → index.a845f20de1913b16.js.LICENSE.txt} +0 -0
  220. /package/out/static/legacy/{6753.c44647828e8b4816.js.LICENSE.txt → 6753.9fefb8415a5a449e.js.LICENSE.txt} +0 -0
  221. /package/out/static/legacy/{index.6c7371784b8345e6.js.LICENSE.txt → index.def60ac10a95218f.js.LICENSE.txt} +0 -0
  222. /package/out/static/legacy/{yari.74e397a2236facc5.js.LICENSE.txt → yari.c9b6c25e48cbb380.js.LICENSE.txt} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.2.1](https://github.com/mdn/fred/compare/v2.2.0...v2.2.1) (2026-02-10)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **content-section:** Make table headings bold ([#1286](https://github.com/mdn/fred/issues/1286)) ([bc302e0](https://github.com/mdn/fred/commit/bc302e04ff2c6d94382f194b7990e3baeeb30a9d))
9
+ * **homepage-contributor-spotlight:** fix content overflow ([#1045](https://github.com/mdn/fred/issues/1045)) ([bf72208](https://github.com/mdn/fred/commit/bf722088ee43f746bece188fc92c63066f420255))
10
+ * **layout:** consolidate 2 sidebar layout across content types ([#1265](https://github.com/mdn/fred/issues/1265)) ([85dd580](https://github.com/mdn/fred/commit/85dd580a11ad1e585c5cd70b0d62169fc64a029a))
11
+ * **layout:** increase gap between sidebar and content ([#1154](https://github.com/mdn/fred/issues/1154)) ([53d1adc](https://github.com/mdn/fred/commit/53d1adc64482ebfa56f4be57b3a69a56767a8126))
12
+ * **play-console:** preserve whitespace ([#674](https://github.com/mdn/fred/issues/674)) ([2b69dcc](https://github.com/mdn/fred/commit/2b69dcc922d31262eff85710f0986350b8a9efc0))
13
+ * **sidebar:** titles with code element run together ([#1285](https://github.com/mdn/fred/issues/1285)) ([15be5f8](https://github.com/mdn/fred/commit/15be5f8caae8d19af403870961f7d04db3fabcba))
14
+
15
+
16
+ ### Miscellaneous
17
+
18
+ * **deps-dev:** bump @mdn/browser-compat-data from 7.3.0 to 7.3.1 ([#1289](https://github.com/mdn/fred/issues/1289)) ([b123c55](https://github.com/mdn/fred/commit/b123c554187a0a6d5102fe602c26befadebc96aa))
19
+ * **deps-dev:** bump eslint-plugin-jsdoc from 62.5.0 to 62.5.1 in the npm-dev group ([#1280](https://github.com/mdn/fred/issues/1280)) ([8c73e7c](https://github.com/mdn/fred/commit/8c73e7cbb85cd09c4eaa8ee93663489ec965abfe))
20
+ * **deps-dev:** bump eslint-plugin-jsdoc in the npm-dev group ([8c73e7c](https://github.com/mdn/fred/commit/8c73e7cbb85cd09c4eaa8ee93663489ec965abfe))
21
+ * **deps-dev:** bump lefthook from 2.0.16 to 2.1.0 in the npm-dev group ([#1276](https://github.com/mdn/fred/issues/1276)) ([443d179](https://github.com/mdn/fred/commit/443d1794356c6c23ccb3eff8b55fe65a9ea9b9c1))
22
+ * **deps-dev:** bump sass-loader from 16.0.6 to 16.0.7 in the npm-dev group ([#1283](https://github.com/mdn/fred/issues/1283)) ([5edac32](https://github.com/mdn/fred/commit/5edac32b4f392e66fe594a721a3d1678d7795314))
23
+ * **deps-dev:** bump sass-loader in the npm-dev group ([5edac32](https://github.com/mdn/fred/commit/5edac32b4f392e66fe594a721a3d1678d7795314))
24
+ * **deps-dev:** bump stylelint from 17.1.0 to 17.1.1 in the npm-dev group ([#1278](https://github.com/mdn/fred/issues/1278)) ([68408a2](https://github.com/mdn/fred/commit/68408a28e8da5f96ff677b4dcc4e0db0aba9ea46))
25
+ * **deps-dev:** bump stylelint in the npm-dev group ([68408a2](https://github.com/mdn/fred/commit/68408a28e8da5f96ff677b4dcc4e0db0aba9ea46))
26
+ * **deps-dev:** bump the npm-dev group with 2 updates ([#1273](https://github.com/mdn/fred/issues/1273)) ([c46c81e](https://github.com/mdn/fred/commit/c46c81ec9bc8d3969ccfbc18b70b81502e51b20e))
27
+ * **deps-dev:** bump the npm-dev group with 2 updates ([#1281](https://github.com/mdn/fred/issues/1281)) ([26cff5b](https://github.com/mdn/fred/commit/26cff5b1f857a9a9641cfc566b972b35110f65b6))
28
+ * **deps-dev:** bump the npm-dev group with 5 updates ([#1287](https://github.com/mdn/fred/issues/1287)) ([16f94d1](https://github.com/mdn/fred/commit/16f94d1c4f638e18ace598e24377c87aba9ebc69))
29
+ * **deps-dev:** bump the npm-dev group with 5 updates ([#1292](https://github.com/mdn/fred/issues/1292)) ([022c787](https://github.com/mdn/fred/commit/022c787b408263ea5d0bddd809cef77672d9614b))
30
+ * **deps-dev:** bump webpack from 5.99.5 to 5.105.0 ([#1284](https://github.com/mdn/fred/issues/1284)) ([242007b](https://github.com/mdn/fred/commit/242007b364b9890471be474f2bc3d8cd777e55ff))
31
+ * **deps:** bump @mdn/rari from 0.2.11 to 0.2.12 ([#1277](https://github.com/mdn/fred/issues/1277)) ([ba08f2e](https://github.com/mdn/fred/commit/ba08f2efdd8ca249d5e5c468bc8f1c5063101321))
32
+
3
33
  ## [2.2.0](https://github.com/mdn/fred/compare/v2.1.0...v2.2.0) (2026-02-02)
4
34
 
5
35
 
@@ -157,7 +157,7 @@
157
157
  }
158
158
 
159
159
  th {
160
- font-weight: var(--font-weight-normal);
160
+ font-weight: var(--font-weight-bold);
161
161
  text-align: left;
162
162
  }
163
163
 
@@ -1,39 +1,12 @@
1
- .curriculum-content-container {
2
- display: grid;
3
-
4
- grid-template-areas:
5
- "sidebar . header . toc"
6
- "sidebar . body . toc";
7
- grid-template-rows: min-content auto;
8
- grid-template-columns: var(--layout-2-sidebars);
9
-
10
- justify-content: space-between;
11
-
12
- padding-inline: var(--layout-side-padding);
13
-
14
- .curriculum-layout__content {
15
- display: contents;
16
- }
17
-
18
- .curriculum-layout__header {
19
- grid-area: header;
20
- }
1
+ @import url("../layout/2-sidebars.css");
21
2
 
3
+ .curriculum-content-container {
22
4
  .curriculum-layout__body {
23
- grid-area: body;
24
5
  padding-bottom: 3rem;
25
6
  }
26
7
 
27
8
  .curriculum-layout__sidebar {
28
- grid-area: sidebar;
29
9
  padding-top: 0;
30
-
31
- @media (--screen-layout-2-sidebars) {
32
- .left-sidebar {
33
- padding-right: calc(var(--layout-sidebar-gap) / 2);
34
- margin-right: calc(var(--layout-sidebar-gap) / -2);
35
- }
36
- }
37
10
  }
38
11
 
39
12
  .curriculum-layout__toc {
@@ -41,62 +14,14 @@
41
14
 
42
15
  flex-wrap: wrap;
43
16
 
44
- grid-area: toc;
45
-
46
17
  gap: 0.5rem;
47
18
  align-content: start;
48
19
  align-items: start;
49
20
  justify-content: space-between;
50
21
  }
51
22
 
52
- .curriculum-layout__sidebar .left-sidebar,
53
- .curriculum-layout__toc {
54
- position: sticky;
55
- top: var(--sticky-header-height);
56
-
57
- max-height: calc(100vh - var(--sticky-header-height));
58
-
59
- overflow-y: auto;
60
- }
61
-
62
- @media (--screen-layout-1-sidebar-or-less) {
63
- grid-template-areas:
64
- "toc . header"
65
- "toc . body";
66
- grid-template-columns: var(--layout-1-sidebar-left);
67
-
68
- .curriculum-layout__sidebar {
69
- z-index: 1;
70
-
71
- display: none;
72
-
73
- grid-area: toc;
74
-
75
- background: var(--color-background-page);
76
- }
77
- }
78
-
79
23
  @media (--screen-layout-no-sidebar) {
80
- display: block;
81
-
82
- .curriculum-layout__sidebar {
83
- position: fixed;
84
- inset: 0;
85
- top: var(--sticky-header-height);
86
- z-index: var(--z-index-sidebar-mobile);
87
-
88
- .left-sidebar {
89
- padding: 1rem;
90
- }
91
- }
92
-
93
24
  .curriculum-layout__toc {
94
- position: unset;
95
- top: unset;
96
-
97
- max-height: unset;
98
-
99
- overflow-y: unset;
100
25
  --toc-header-font-size: var(--font-size-larger);
101
26
  }
102
27
  }
@@ -1,9 +1,5 @@
1
1
  .curriculum-content-container .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
  ol {
@@ -1,7 +1,5 @@
1
1
  .curriculum-content-container {
2
2
  .curriculum-layout__toc {
3
- padding: 2px;
4
-
5
3
  .document-toc {
6
4
  padding: 0;
7
5
  margin-bottom: 2rem;
@@ -83,7 +81,7 @@
83
81
  }
84
82
  }
85
83
 
86
- @media (--screen-small-and-narrower) {
84
+ @media (--screen-layout-no-sidebar) {
87
85
  padding: 0 1rem;
88
86
  }
89
87
 
@@ -29,24 +29,33 @@ export class CurriculumAbout extends ServerComponent {
29
29
  return PageLayout.render(
30
30
  context,
31
31
  html`
32
- <div class="curriculum-layout curriculum-content-container">
32
+ <div
33
+ class="layout__2-sidebars-inline curriculum-layout curriculum-content-container"
34
+ >
33
35
  <main
34
36
  id="content"
35
- class="curriculum-layout__content curriculum-content-container curriculum-about curriculum-module topic-${topicCssClass}"
37
+ class="layout__content curriculum-layout__content curriculum-content-container curriculum-about curriculum-module topic-${topicCssClass}"
36
38
  lang=${doc.locale}
37
39
  >
38
- <header class="curriculum-layout__header curriculum-content">
40
+ <header
41
+ class="layout__header curriculum-layout__header curriculum-content"
42
+ >
39
43
  <h1><span>${coloredTitle}</span> ${restTitle.join(" ")}</h1>
40
44
  </header>
41
- <aside class="curriculum-layout__toc">
45
+ <aside class="layout__right-sidebar curriculum-layout__toc">
42
46
  ${toc}
43
47
  <mdn-placement-sidebar></mdn-placement-sidebar>
44
48
  </aside>
45
- <div class="curriculum-layout__body curriculum-content">
49
+ <div
50
+ class="layout__body curriculum-layout__body curriculum-content"
51
+ >
46
52
  ${renderCurriculumBody(context, doc)}
47
53
  </div>
48
54
  </main>
49
- <aside class="curriculum-layout__sidebar" id="main-sidebar">
55
+ <aside
56
+ class="layout__left-sidebar curriculum-layout__sidebar"
57
+ id="main-sidebar"
58
+ >
50
59
  ${sidebar}
51
60
  </aside>
52
61
  </div>
@@ -29,24 +29,33 @@ export class CurriculumDefault extends ServerComponent {
29
29
  return PageLayout.render(
30
30
  context,
31
31
  html`
32
- <div class="curriculum-layout curriculum-content-container">
32
+ <div
33
+ class="layout__2-sidebars-inline curriculum-layout curriculum-content-container"
34
+ >
33
35
  <main
34
36
  id="content"
35
- class="curriculum-layout__content curriculum-content-container curriculum-default curriculum-about curriculum-module topic-${topicCssClass}"
37
+ class="layout__content curriculum-layout__content curriculum-content-container curriculum-default curriculum-about curriculum-module topic-${topicCssClass}"
36
38
  lang=${doc.locale}
37
39
  >
38
- <header class="curriculum-layout__header curriculum-content">
40
+ <header
41
+ class="layout__header curriculum-layout__header curriculum-content"
42
+ >
39
43
  <h1><span>${coloredTitle}</span> ${restTitle.join(" ")}</h1>
40
44
  </header>
41
- <aside class="curriculum-layout__toc">
45
+ <aside class="layout__right-sidebar curriculum-layout__toc">
42
46
  ${toc}
43
47
  <mdn-placement-sidebar></mdn-placement-sidebar>
44
48
  </aside>
45
- <div class="curriculum-layout__body curriculum-content">
49
+ <div
50
+ class="layout__body curriculum-layout__body curriculum-content"
51
+ >
46
52
  ${renderCurriculumBody(context, doc)}
47
53
  </div>
48
54
  </main>
49
- <aside class="curriculum-layout__sidebar" id="main-sidebar">
55
+ <aside
56
+ class="layout__left-sidebar curriculum-layout__sidebar"
57
+ id="main-sidebar"
58
+ >
50
59
  ${sidebar}
51
60
  </aside>
52
61
  </div>
@@ -32,13 +32,17 @@ export class CurriculumModule extends ServerComponent {
32
32
  return PageLayout.render(
33
33
  context,
34
34
  html`
35
- <div class="curriculum-layout curriculum-content-container">
35
+ <div
36
+ class="layout__2-sidebars-inline curriculum-layout curriculum-content-container"
37
+ >
36
38
  <main
37
39
  id="content"
38
- class="curriculum-layout__content curriculum-content-container curriculum-module topic-${topicCssClass}"
40
+ class="layout__content curriculum-layout__content curriculum-content-container curriculum-module topic-${topicCssClass}"
39
41
  lang=${doc.locale}
40
42
  >
41
- <header class="curriculum-layout__header curriculum-content">
43
+ <header
44
+ class="layout__header curriculum-layout__header curriculum-content"
45
+ >
42
46
  ${doc?.topic ? renderTopicIcon(context, doc.topic) : nothing}
43
47
  <h1>${doc?.title}</h1>
44
48
  ${doc?.topic
@@ -48,16 +52,21 @@ export class CurriculumModule extends ServerComponent {
48
52
  ? html`<p class="module-group">${doc.group}</p>`
49
53
  : nothing}
50
54
  </header>
51
- <aside class="curriculum-layout__toc">
55
+ <aside class="layout__right-sidebar curriculum-layout__toc">
52
56
  ${toc}
53
57
  <mdn-placement-sidebar></mdn-placement-sidebar>
54
58
  </aside>
55
- <div class="curriculum-layout__body curriculum-content">
59
+ <div
60
+ class="layout__body curriculum-layout__body curriculum-content"
61
+ >
56
62
  ${renderCurriculumBody(context, doc)}
57
63
  ${this.renderPrevNext(context, doc)}
58
64
  </div>
59
65
  </main>
60
- <aside class="curriculum-layout__sidebar" id="main-sidebar">
66
+ <aside
67
+ class="layout__left-sidebar curriculum-layout__sidebar"
68
+ id="main-sidebar"
69
+ >
61
70
  ${sidebar}
62
71
  </aside>
63
72
  </div>
@@ -36,22 +36,28 @@ export class CurriculumOverview extends ServerComponent {
36
36
  return PageLayout.render(
37
37
  context,
38
38
  html`
39
- <div class="curriculum-layout curriculum-content-container">
39
+ <div
40
+ class="layout__2-sidebars-inline curriculum-layout curriculum-content-container"
41
+ >
40
42
  <main
41
43
  id="content"
42
- class="curriculum-layout__content curriculum-content-container curriculum-overview topic-${topicCssClass}"
44
+ class="layout__content curriculum-layout__content curriculum-content-container curriculum-overview topic-${topicCssClass}"
43
45
  lang=${doc.locale}
44
46
  >
45
- <header class="curriculum-layout__header curriculum-content">
47
+ <header
48
+ class="layout__header curriculum-layout__header curriculum-content"
49
+ >
46
50
  <h1><span>${coloredTitle}</span> ${restTitle}</h1>
47
51
  </header>
48
52
 
49
- <aside class="curriculum-layout__toc">
53
+ <aside class="layout__right-sidebar curriculum-layout__toc">
50
54
  ${toc}
51
55
  <mdn-placement-sidebar></mdn-placement-sidebar>
52
56
  </aside>
53
57
 
54
- <div class="curriculum-layout__body curriculum-content">
58
+ <div
59
+ class="layout__body curriculum-layout__body curriculum-content"
60
+ >
55
61
  ${renderCurriculumBody(context, doc)}
56
62
  ${doc?.modules && doc.modules.length > 0
57
63
  ? html`
@@ -65,41 +71,14 @@ export class CurriculumOverview extends ServerComponent {
65
71
  </div>
66
72
  </main>
67
73
 
68
- <aside class="curriculum-layout__sidebar" id="main-sidebar">
74
+ <aside
75
+ class="layout__left-sidebar curriculum-layout__sidebar"
76
+ id="main-sidebar"
77
+ >
69
78
  ${sidebar}
70
79
  </aside>
71
80
  </div>
72
81
  `,
73
-
74
- // html`
75
- // <main
76
- // id="content"
77
- // class="curriculum-content-container container curriculum-overview topic-${topicCssClass}"
78
- // >
79
- // ${sidebar}
80
- // <article id="content" class="curriculum-content" lang=${doc.locale}>
81
- // <header>
82
- // <h1><span>${coloredTitle}</span> ${restTitle}</h1>
83
- // </header>
84
- // ${renderCurriculumBody(context, doc)}
85
- // ${doc?.modules && doc.modules.length > 0
86
- // ? html`
87
- // <section class="module-contents">
88
- // <h2>Module list</h2>
89
- // ${renderModulesList(context, doc.modules)}
90
- // </section>
91
- // `
92
- // : nothing}
93
- // ${this.renderPrevNext(context, doc)}
94
- // </article>
95
- // <div class="toc-container">
96
- // <aside class="toc">
97
- // <nav>${toc}</nav>
98
- // </aside>
99
- // <mdn-placement-sidebar></mdn-placement-sidebar>
100
- // </div>
101
- // </main>
102
- // `,
103
82
  );
104
83
  }
105
84
 
@@ -1,69 +1,13 @@
1
- /* Generic Layout */
2
- .generic-layout {
3
- display: grid;
4
-
5
- grid-template-areas: "sidebar . body . toc";
6
- grid-template-columns: var(--layout-2-sidebars);
7
-
8
- padding-inline: var(--layout-side-padding);
9
-
10
- @media (--screen-layout-1-sidebar-or-less) {
11
- grid-template-areas: "leftsidebar . body";
12
- grid-template-columns: var(--layout-1-sidebar-left);
13
-
14
- .generic-layout__toc {
15
- grid-area: leftsidebar;
16
- }
17
-
18
- .generic-layout__sidebar {
19
- z-index: 1;
20
-
21
- display: none;
22
-
23
- grid-area: leftsidebar;
24
-
25
- background: var(--color-background-page);
26
- }
27
- }
1
+ @import url("../layout/2-sidebars.css");
28
2
 
29
- @media (--screen-layout-no-sidebar) {
30
- grid-template-areas: ". body .";
31
- grid-template-columns: var(--layout-no-sidebar);
32
-
33
- .generic-layout__toc {
34
- display: none;
35
- }
36
-
37
- .generic-layout__sidebar {
38
- inset: 0;
39
- top: var(--sticky-header-height);
40
- z-index: var(--z-index-sidebar-mobile);
41
-
42
- display: none;
43
-
44
- grid-area: body;
45
-
46
- .left-sidebar {
47
- padding: 1rem;
48
- }
49
- }
50
- }
51
- }
52
-
53
- /* Sidebar */
54
- .generic-layout__sidebar {
55
- grid-area: sidebar;
56
- padding: 2rem 0;
57
- }
3
+ /* Generic Layout */
58
4
 
59
5
  /* Content */
60
6
  .generic-layout__content {
61
- grid-area: body;
62
- padding: 2rem 0;
7
+ padding-block: 2rem;
63
8
  }
64
9
 
65
10
  /* TOC */
66
11
  .generic-layout__toc {
67
- grid-column: toc;
68
- padding: 2rem 0;
12
+ padding-block: 2rem;
69
13
  }
@@ -11,12 +11,17 @@ export class GenericLayout extends ServerComponent {
11
11
  */
12
12
  render(context) {
13
13
  return html`
14
- <div class="generic-layout">
15
- <aside class="generic-layout__toc">${GenericToc.render(context)}</aside>
16
- <div class="generic-layout__content">
14
+ <div class="layout__2-sidebars generic-layout">
15
+ <aside class="layout__right-sidebar generic-layout__toc">
16
+ ${GenericToc.render(context)}
17
+ </aside>
18
+ <div class="layout__content generic-layout__content">
17
19
  ${GenericContent.render(context)}
18
20
  </div>
19
- <aside class="generic-layout__sidebar" id="main-sidebar">
21
+ <aside
22
+ class="layout__left-sidebar generic-layout__sidebar"
23
+ id="main-sidebar"
24
+ >
20
25
  ${GenericSidebar.render(context)}
21
26
  </aside>
22
27
  </div>
@@ -2,9 +2,7 @@
2
2
  --color-accent: var(--color-blue-50);
3
3
  --color-background-accent: var(--color-background-blue);
4
4
  --color-border-items: light-dark(var(--color-gray-80), var(--color-gray-20));
5
-
6
- position: sticky;
7
- top: var(--sticky-header-height);
5
+ padding-block: 2rem;
8
6
  margin-bottom: 2rem;
9
7
 
10
8
  .generic-sidebar__header {
@@ -1,7 +1,4 @@
1
1
  .generic-toc {
2
- position: sticky;
3
- top: var(--sticky-header-height);
4
-
5
2
  .generic-toc__header {
6
3
  margin: 0 0 1rem;
7
4
 
@@ -21,7 +21,7 @@
21
21
  }
22
22
 
23
23
  .homepage-contributor-spotlight__name {
24
- width: max-content;
24
+ width: fit-content;
25
25
 
26
26
  padding: 0.125em 0.25em;
27
27
 
@@ -37,6 +37,10 @@
37
37
  &:not(:hover) {
38
38
  text-decoration: none;
39
39
  }
40
+
41
+ @media (width <= 768px) {
42
+ text-align: center;
43
+ }
40
44
  }
41
45
 
42
46
  .homepage-contributor-spotlight__quote {
@@ -1,6 +1,8 @@
1
1
  /* HTML */
2
2
 
3
3
  html {
4
+ scroll-behavior: smooth;
5
+
4
6
  font-family: var(--font-family-text);
5
7
  font-size: var(--font-size-normal);
6
8
  font-feature-settings: "calt" 0;
@@ -15,7 +17,6 @@ html {
15
17
  color-scheme: light dark;
16
18
 
17
19
  background-color: var(--color-background-page);
18
- scroll-behavior: smooth;
19
20
 
20
21
  @media (prefers-reduced-motion: reduce) {
21
22
  scroll-behavior: auto;