diff --git a/packages/docs/src/components/ClassBlock.js b/packages/docs/src/components/ClassBlock.js
new file mode 100644
index 000000000..1cddaa7be
--- /dev/null
+++ b/packages/docs/src/components/ClassBlock.js
@@ -0,0 +1,14 @@
+import React from 'react';
+
+/**
+ * ClassBlock Component
+ * Renders a block of content with a CSS class applied
+ * Used for styling specific content blocks (e.g., compare-worse, compare-better)
+ *
+ * @param {string} className - The CSS class name to apply
+ * @param {React.ReactNode} children - The content to render
+ * @returns {JSX.Element}
+ */
+export default function ClassBlock({ className, children }) {
+ return
{children}
;
+}
diff --git a/packages/docs/src/components/CodelabCards.js b/packages/docs/src/components/CodelabCards.js
new file mode 100644
index 000000000..e1b489c9c
--- /dev/null
+++ b/packages/docs/src/components/CodelabCards.js
@@ -0,0 +1,26 @@
+import React from 'react';
+import Link from '@docusaurus/Link';
+import styles from './styles.module.css';
+
+// This component renders the grid layout
+export function CodelabGrid({ children }) {
+ return
{children}
;
+}
+
+// This component renders a single card
+export function CodelabCard({ href, title, description, children, level }) {
+ return (
+
+
+ {children}
+
+
+ {level}
+
+
+
{title}
+ Start
+
+
+ );
+}
diff --git a/packages/docs/src/components/HomepageFeatures/index.js b/packages/docs/src/components/HomepageFeatures/index.js
new file mode 100644
index 000000000..12d08cf41
--- /dev/null
+++ b/packages/docs/src/components/HomepageFeatures/index.js
@@ -0,0 +1,62 @@
+import clsx from 'clsx';
+import Heading from '@theme/Heading';
+import styles from './styles.module.css';
+
+
+const FeatureList = [
+ {
+ title: 'Accessible by design',
+ Svg: require('@site/static/images/HomePage/Accessibility-tier-4.svg').default,
+ description: (
+ <>
+ Built so everyone can engage with visual code — helping developers create experiences that are inclusive by default.
+ >
+ ),
+ },
+ {
+ title: 'Built for flexibility',
+ Svg: require('@site/static/images/HomePage/Explore-tier-4.svg').default,
+ description: (
+ <>
+ An open-source library that adapts to your needs. With APIs, generators, and integrations, Blockly fits into most platforms, and environments.
+ >
+ ),
+ },
+ {
+ title: 'Driven by community',
+ Svg: require('@site/static/images/HomePage/Connect-tier-4.svg').default,
+ description: (
+ <>
+ A global community of passionate developers and educators helps Blockly stay open, innovative, and ready for what’s next.
+ >
+ ),
+ },
+];
+
+function Feature({Svg, title, description}) {
+ return (
+