Index: /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/build/style/block.json
===================================================================
--- /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/build/style/block.json	(revision 13639)
+++ /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/build/style/block.json	(revision 13639)
@@ -0,0 +1,3 @@
+{
+  "script": "file:./index.js"
+}
Index: /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/build/style/index.asset.php
===================================================================
--- /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/build/style/index.asset.php	(revision 13639)
+++ /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/build/style/index.asset.php	(revision 13639)
@@ -0,0 +1,1 @@
+<?php return array('dependencies' => array(), 'version' => 'bbc8ccea5e3755699c84');
Index: /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/build/style/index.js
===================================================================
--- /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/build/style/index.js	(revision 13639)
+++ /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/build/style/index.js	(revision 13639)
@@ -0,0 +1,1 @@
+(()=>{"use strict";var r,e={257:()=>{}},o={};function a(r){var n=o[r];if(void 0!==n)return n.exports;var t=o[r]={exports:{}};return e[r](t,t.exports,a),t.exports}a.m=e,r=[],a.O=(e,o,n,t)=>{if(!o){var i=1/0;for(s=0;s<r.length;s++){for(var[o,n,t]=r[s],l=!0,v=0;v<o.length;v++)(!1&t||i>=t)&&Object.keys(a.O).every((r=>a.O[r](o[v])))?o.splice(v--,1):(l=!1,t<i&&(i=t));if(l){r.splice(s--,1);var p=n();void 0!==p&&(e=p)}}return e}t=t||0;for(var s=r.length;s>0&&r[s-1][2]>t;s--)r[s]=r[s-1];r[s]=[o,n,t]},a.o=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),(()=>{var r={571:0,835:0};a.O.j=e=>0===r[e];var e=(e,o)=>{var n,t,[i,l,v]=o,p=0;if(i.some((e=>0!==r[e]))){for(n in l)a.o(l,n)&&(a.m[n]=l[n]);if(v)var s=v(a)}for(e&&e(o);p<i.length;p++)t=i[p],a.o(r,t)&&r[t]&&r[t][0](),r[t]=0;return a.O(s)},o=globalThis.webpackChunkwporg_learn_2024=globalThis.webpackChunkwporg_learn_2024||[];o.forEach(e.bind(null,0)),o.push=e.bind(null,o.push.bind(o))})();var n=a.O(void 0,[835],(()=>a(257)));n=a.O(n)})();
Index: /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/build/style/index.js.map
===================================================================
--- /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/build/style/index.js.map	(revision 13639)
+++ /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/build/style/index.js.map	(revision 13639)
@@ -0,0 +1,1 @@
+{"version":3,"file":"style/index.js","mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;;;ACAA;;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA,+BAA+B,wCAAwC;WACvE;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC;WACA;WACA,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC3BA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;;;;;UEjDA;UACA;UACA;UACA;UACA","sources":["webpack://wporg-learn-2024/./src/style/index.js","webpack://wporg-learn-2024/./src/style/style.scss?b0c3","webpack://wporg-learn-2024/webpack/bootstrap","webpack://wporg-learn-2024/webpack/runtime/chunk loaded","webpack://wporg-learn-2024/webpack/runtime/hasOwnProperty shorthand","webpack://wporg-learn-2024/webpack/runtime/make namespace object","webpack://wporg-learn-2024/webpack/runtime/jsonp chunk loading","webpack://wporg-learn-2024/webpack/before-startup","webpack://wporg-learn-2024/webpack/startup","webpack://wporg-learn-2024/webpack/after-startup"],"sourcesContent":["// Noop, just imports the CSS for webpack.\nimport './style.scss';\n","// extracted by mini-css-extract-plugin\nexport {};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"style/index\": 0,\n\t\"style/style-index\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunkwporg_learn_2024\"] = globalThis[\"webpackChunkwporg_learn_2024\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"style/style-index\"], () => (__webpack_require__(\"./src/style/index.js\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":[],"sourceRoot":""}
Index: /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/build/style/style-index-rtl.css
===================================================================
--- /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/build/style/style-index-rtl.css	(revision 13639)
+++ /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/build/style/style-index-rtl.css	(revision 13639)
@@ -0,0 +1,1 @@
+
Index: /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/build/style/style-index.css
===================================================================
--- /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/build/style/style-index.css	(revision 13639)
+++ /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/build/style/style-index.css	(revision 13639)
@@ -0,0 +1,1 @@
+
Index: /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/build/style/style-index.css.map
===================================================================
--- /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/build/style/style-index.css.map	(revision 13639)
+++ /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/build/style/style-index.css.map	(revision 13639)
@@ -0,0 +1,1 @@
+{"version":3,"file":"style/style-index.css","mappings":";;;AAAA;;;EAAA,C","sources":["webpack://wporg-learn-2024/./src/style/style.scss"],"sourcesContent":["/*\n * Note: only add styles here in cases where you can't achieve the style with\n * templates or theme.json settings.\n */\n"],"names":[],"sourceRoot":""}
Index: /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/functions.php
===================================================================
--- /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/functions.php	(revision 13639)
+++ /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/functions.php	(revision 13639)
@@ -0,0 +1,55 @@
+<?php
+
+namespace WordPressdotorg\Theme\Learn_2024;
+
+/**
+ * Actions and filters.
+ */
+add_action( 'wp_enqueue_scripts', __NAMESPACE__ . '\enqueue_assets' );
+add_filter( 'wporg_block_navigation_menus', __NAMESPACE__ . '\add_site_navigation_menus' );
+
+/**
+ * Enqueue scripts and styles.
+ */
+function enqueue_assets() {
+	// The parent style is registered as `wporg-parent-2021-style`, and will be loaded unless
+	// explicitly unregistered. We can load any child-theme overrides by declaring the parent
+	// stylesheet as a dependency.
+	wp_enqueue_style(
+		'wporg-learn-2024-style',
+		get_stylesheet_directory_uri() . '/build/style/style-index.css',
+		array( 'wporg-parent-2021-style', 'wporg-global-fonts' ),
+		filemtime( __DIR__ . '/build/style/style-index.css' )
+	);
+}
+
+/**
+ * Provide a list of local navigation menus.
+ */
+function add_site_navigation_menus( $menus ) {
+	return array(
+		'learn' => array(
+			array(
+				'label' => __( 'Courses', 'wporg-learn' ),
+				'url' => '/courses/',
+			),
+			array(
+				'label' => __( 'Lessons', 'wporg-learn' ),
+				'url' => '/lessons/',
+			),
+			array(
+				'label' => __( 'Learning Pathways', 'wporg-learn' ),
+				'url' => '/learning-pathways/',
+			),
+			array(
+				'label' => __( 'Contribute', 'wporg-learn' ),
+				'url' => '/contribute/',
+			),
+			array(
+				'label' => __( 'Instruct', 'wporg-learn' ),
+				'url' => '/instruct/',
+			),
+		),
+	);
+}
+
Index: /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/package.json
===================================================================
--- /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/package.json	(revision 13639)
+++ /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/package.json	(revision 13639)
@@ -0,0 +1,29 @@
+{
+    "name": "wporg-learn-2024",
+    "version": "1.0.0",
+    "description": "Theme for learn.wordpress.org",
+	"author": "WordPress.org",
+	"license": "GPL-2.0-or-later",
+	"private": true,
+	"devDependencies": {
+		"@wordpress/scripts": "27.2.0",
+		"rtlcss-webpack-plugin": "4.0.7"
+	},
+	"eslintConfig": {
+		"extends": "../../../../.eslintrc.js"
+	},
+	"stylelint": {
+		"extends": "../../../../.stylelintrc",
+		"ignoreFiles": [
+			"**/*.css",
+			"**/*.css.map"
+		]
+	},
+	"scripts": {
+		"build": "wp-scripts build --experimental-modules",
+		"start": "wp-scripts start --experimental-modules",
+		"lint:js": "wp-scripts lint-js src",
+		"lint:css": "wp-scripts lint-style src/**/*.scss",
+		"format": "wp-scripts format src -- --config=../../../../.prettierrc.js"
+	}
+}
Index: /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/parts/footer.html
===================================================================
--- /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/parts/footer.html	(revision 13639)
+++ /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/parts/footer.html	(revision 13639)
@@ -0,0 +1,1 @@
+<!-- wp:wporg/global-footer /-->
Index: /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/parts/header.html
===================================================================
--- /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/parts/header.html	(revision 13639)
+++ /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/parts/header.html	(revision 13639)
@@ -0,0 +1,17 @@
+<!-- wp:wporg/global-header {"style":{"border":{"bottom":{"color":"var:preset|color|white-opacity-15","style":"solid","width":"1px"}}}} /-->
+
+<!-- wp:wporg/local-navigation-bar {"className":"has-display-contents","backgroundColor":"charcoal-2","style":{"elements":{"link":{"color":{"text":"var:preset|color|white"},":hover":{"color":{"text":"var:preset|color|white"}}}}},"textColor":"white","fontSize":"small"} -->
+
+	<!-- wp:group {"style":{"spacing":{"blockGap":"0"}},"textColor":"light-grey-1","layout":{"type":"flex","flexWrap":"nowrap"}} -->
+	<div class="wp-block-group has-light-grey-1-color has-text-color">
+		<!-- wp:site-title {"level":0,"fontSize":"small","textColor":"white"} /-->
+
+		<!-- wp:query-title {"type":"filter","level":0,"fontSize":"small","fontFamily":"inter","className":"wporg-local-navigation-bar__fade-in-scroll"} /-->
+
+		<!-- wp:post-title {"level":0,"fontSize":"small","fontFamily":"inter","className":"wporg-local-navigation-bar__fade-in-scroll"} /-->
+	</div>
+	<!-- /wp:group -->
+
+	<!-- wp:navigation {"menuSlug":"learn","icon":"menu","overlayBackgroundColor":"charcoal-2","overlayTextColor":"white","layout":{"type":"flex","orientation":"horizontal"},"fontSize":"small"} /-->
+
+<!-- /wp:wporg/local-navigation-bar -->
Index: /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/src/style/block.json
===================================================================
--- /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/src/style/block.json	(revision 13639)
+++ /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/src/style/block.json	(revision 13639)
@@ -0,0 +1,3 @@
+{
+	"script": "file:./index.js"
+}
Index: /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/src/style/index.js
===================================================================
--- /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/src/style/index.js	(revision 13639)
+++ /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/src/style/index.js	(revision 13639)
@@ -0,0 +1,2 @@
+// Noop, just imports the CSS for webpack.
+import './style.scss';
Index: /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/src/style/style.scss
===================================================================
--- /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/src/style/style.scss	(revision 13639)
+++ /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/src/style/style.scss	(revision 13639)
@@ -0,0 +1,4 @@
+/*
+ * Note: only add styles here in cases where you can't achieve the style with
+ * templates or theme.json settings.
+ */
Index: /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/style.css
===================================================================
--- /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/style.css	(revision 13639)
+++ /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/style.css	(revision 13639)
@@ -0,0 +1,20 @@
+/**
+ * Theme Name: WordPress.org Learn 2024
+ * Theme URI: http://learn.wordpress.org/
+ * Author: WordPress.org
+ * Author URI: http://wordpress.org/
+ * Description: A theme for learn.wordpress.org, built in 2024.
+ * Version: 1.0.0
+ * License: GNU General Public License v2 or later
+ * License URI: http://www.gnu.org/licenses/gpl-2.0.html
+ * Text Domain: wporg-learn
+ * Template: wporg-parent-2021
+ */
+
+/**
+ * This theme, like WordPress, is licensed under the GPL.
+ * Use it to make something cool, have fun,
+ * and share what you've learned with others.
+ */
+
+/* This file is not used. Add CSS to `src/style/*`. */
Index: /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/templates/index.html
===================================================================
--- /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/templates/index.html	(revision 13639)
+++ /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/templates/index.html	(revision 13639)
@@ -0,0 +1,3 @@
+<!-- wp:template-part {"slug":"header","className":"has-display-contents"} /-->
+index
+<!-- wp:template-part {"slug":"footer"} /-->
Index: /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/templates/page.html
===================================================================
--- /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/templates/page.html	(revision 13639)
+++ /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/templates/page.html	(revision 13639)
@@ -0,0 +1,17 @@
+<!-- wp:template-part {"slug":"header","className":"has-display-contents"} /-->
+
+<!-- wp:group {"tagName":"main","layout":{"type":"constrained"},"className":"entry-content","style":{"spacing":{"blockGap":"0px"}}} -->
+<main class="wp-block-group entry-content">
+
+	<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"left":"var:preset|spacing|edge-space","right":"var:preset|spacing|edge-space","top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}}},"layout":{"type":"constrained"}} -->
+	<div class="wp-block-group alignfull" style="padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--edge-space);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--edge-space)">
+
+		<!-- wp:post-content /-->
+
+	</div>
+	<!-- /wp:group -->
+
+</main>
+<!-- /wp:group -->
+
+<!-- wp:template-part {"slug":"footer"} /-->
Index: /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/theme.json
===================================================================
--- /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/theme.json	(revision 13639)
+++ /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/theme.json	(revision 13639)
@@ -0,0 +1,178 @@
+{
+	"$schema": "https://schemas.wp.org/trunk/theme.json",
+	"version": 2,
+	"settings": {
+		"custom": {
+			"heading": {
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--inter)",
+					"lineHeight": 1.2
+				},
+				"level-1": {
+					"typography": {
+						"lineHeight": 1.2
+					},
+					"breakpoint": {
+						"small-only": {
+							"typography": {
+								"fontSize": "26px",
+								"lineHeight": 1.2
+							}
+						}
+					}
+				},
+				"level-2": {
+					"typography": {
+						"lineHeight": 1.2
+					},
+					"breakpoint": {
+						"small-only": {
+							"typography": {
+								"fontSize": "24px",
+								"lineHeight": 1.2
+							}
+						}
+					}
+				},
+				"level-3": {
+					"typography": {
+						"lineHeight": 1.2
+					},
+					"breakpoint": {
+						"small-only": {
+							"typography": {
+								"fontSize": "22px",
+								"lineHeight": 1.2
+							}
+						}
+					}
+				},
+				"level-4": {
+					"typography": {
+						"lineHeight": 1.2
+					},
+					"breakpoint": {
+						"small-only": {
+							"typography": {
+								"fontSize": "20px",
+								"lineHeight": 1.2
+							}
+						}
+					}
+				},
+				"level-5": {
+					"typography": {
+						"lineHeight": 1.2
+					},
+					"breakpoint": {
+						"small-only": {
+							"typography": {
+								"fontSize": "18px",
+								"lineHeight": 1.2
+							}
+						}
+					}
+				},
+				"level-6": {
+					"typography": {
+						"lineHeight": 1.2
+					},
+					"breakpoint": {
+						"small-only": {
+							"typography": {
+								"fontSize": "16px",
+								"lineHeight": 1.2
+							}
+						}
+					}
+				}
+			}
+		},
+		"layout": {
+			"contentSize": "960px"
+		},
+		"typography": {
+			"fontSizes": [
+				{
+					"name": "Heading 6",
+					"size": "18px",
+					"slug": "heading-6"
+				},
+				{
+					"name": "Heading 5",
+					"size": "20px",
+					"slug": "heading-5"
+				},
+				{
+					"name": "Heading 4",
+					"size": "24px",
+					"slug": "heading-4"
+				},
+				{
+					"name": "Heading 3",
+					"size": "29px",
+					"slug": "heading-3"
+				},
+				{
+					"name": "Heading 2",
+					"size": "32px",
+					"slug": "heading-2"
+				},
+				{
+					"name": "Heading 1",
+					"size": "38px",
+					"slug": "heading-1"
+				}
+			]
+		}
+	},
+	"styles": {
+		"blocks": {
+			"core/post-title": {
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--eb-garamond)",
+					"fontSize": "36px",
+					"lineHeight": "1.3"
+				}
+			},
+			"core/query-title": {
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--eb-garamond)",
+					"fontSize": "36px",
+					"lineHeight": "1.3"
+				}
+			}
+		},
+		"elements": {
+			"h2": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--heading-4)",
+					"fontWeight": "600"
+				},
+				"spacing": {
+					"margin": {
+						"top": "0",
+						"bottom": "var(--wp--style--block-gap)"
+					}
+				}
+			},
+			"h3": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--heading-5)",
+					"fontWeight": "600"
+				}
+			},
+			"h4": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--heading-6)",
+					"fontWeight": "600"
+				}
+			},
+			"h5": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--heading-6)"
+				}
+			}
+		}
+	}
+}
Index: /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/webpack.config.js
===================================================================
--- /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/webpack.config.js	(revision 13639)
+++ /sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-learn-2024/webpack.config.js	(revision 13639)
@@ -0,0 +1,14 @@
+const RtlCssPlugin = require( 'rtlcss-webpack-plugin' );
+const defaultConfig = require( '@wordpress/scripts/config/webpack.config' );
+
+const [ scriptConfig ] = defaultConfig;
+
+module.exports = {
+	...scriptConfig,
+	plugins: [
+		...scriptConfig.plugins,
+		new RtlCssPlugin( {
+			filename: `[name]-rtl.css`,
+		} ),
+	],
+};
