diff --git a/.gitignore b/.gitignore
index fbae7cad27..ca946e1930 100644
--- a/.gitignore
+++ b/.gitignore
@@ -53,6 +53,7 @@ wp-tests-config.php
!/src/wp-content/themes/twentynineteen
!/src/wp-content/themes/twentytwenty
!/src/wp-content/themes/twentytwentyone
+!/src/wp-content/themes/twentytwentytwo
/src/wp-content/upgrade
/src/wp-content/uploads
/src/wp-content/advanced-cache.php
@@ -92,4 +93,4 @@ wp-tests-config.php
/docker-compose.override.yml
# Visual regression test diffs
-tests/visual-regression/specs/__image_snapshots__
\ No newline at end of file
+tests/visual-regression/specs/__image_snapshots__
diff --git a/src/wp-content/themes/twentytwentytwo/block-template-parts/footer.html b/src/wp-content/themes/twentytwentytwo/block-template-parts/footer.html
new file mode 100644
index 0000000000..3dcf79e51f
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/block-template-parts/footer.html
@@ -0,0 +1 @@
+
diff --git a/src/wp-content/themes/twentytwentytwo/block-template-parts/header-large-dark.html b/src/wp-content/themes/twentytwentytwo/block-template-parts/header-large-dark.html
new file mode 100644
index 0000000000..c0d1a69a7d
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/block-template-parts/header-large-dark.html
@@ -0,0 +1,7 @@
+
+
+
diff --git a/src/wp-content/themes/twentytwentytwo/block-template-parts/header.html b/src/wp-content/themes/twentytwentytwo/block-template-parts/header.html
new file mode 100644
index 0000000000..d641b48c0e
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/block-template-parts/header.html
@@ -0,0 +1,12 @@
+
+
+
diff --git a/src/wp-content/themes/twentytwentytwo/block-templates/404.html b/src/wp-content/themes/twentytwentytwo/block-templates/404.html
new file mode 100644
index 0000000000..bb48fe25d8
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/block-templates/404.html
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/wp-content/themes/twentytwentytwo/block-templates/blank.html b/src/wp-content/themes/twentytwentytwo/block-templates/blank.html
new file mode 100644
index 0000000000..3fed9dcdf1
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/block-templates/blank.html
@@ -0,0 +1 @@
+
diff --git a/src/wp-content/themes/twentytwentytwo/block-templates/index.html b/src/wp-content/themes/twentytwentytwo/block-templates/index.html
new file mode 100644
index 0000000000..4c0205d721
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/block-templates/index.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/wp-content/themes/twentytwentytwo/block-templates/page-home.html b/src/wp-content/themes/twentytwentytwo/block-templates/page-home.html
new file mode 100644
index 0000000000..150e5e722f
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/block-templates/page-home.html
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/wp-content/themes/twentytwentytwo/block-templates/page-no-separators.html b/src/wp-content/themes/twentytwentytwo/block-templates/page-no-separators.html
new file mode 100644
index 0000000000..11d8364499
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/block-templates/page-no-separators.html
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/wp-content/themes/twentytwentytwo/block-templates/page.html b/src/wp-content/themes/twentytwentytwo/block-templates/page.html
new file mode 100644
index 0000000000..9fa90d8341
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/block-templates/page.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/wp-content/themes/twentytwentytwo/block-templates/single-no-separators.html b/src/wp-content/themes/twentytwentytwo/block-templates/single-no-separators.html
new file mode 100644
index 0000000000..db9224a750
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/block-templates/single-no-separators.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/wp-content/themes/twentytwentytwo/block-templates/single.html b/src/wp-content/themes/twentytwentytwo/block-templates/single.html
new file mode 100644
index 0000000000..73edd0b726
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/block-templates/single.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/wp-content/themes/twentytwentytwo/functions.php b/src/wp-content/themes/twentytwentytwo/functions.php
new file mode 100644
index 0000000000..2f574b5869
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/functions.php
@@ -0,0 +1,122 @@
+get( 'Version' )
+ );
+
+ // Add styles inline.
+ wp_add_inline_style( 'twentytwentytwo-style', twentytwentytwo_get_font_face_styles() );
+
+ // Enqueue theme stylesheet.
+ wp_enqueue_style( 'twentytwentytwo-style' );
+
+ }
+
+endif;
+
+add_action( 'wp_enqueue_scripts', 'twentytwentytwo_styles' );
+
+if ( ! function_exists( 'twentytwentytwo_editor_styles' ) ) :
+
+ /**
+ * Enqueue editor styles.
+ *
+ * @since Twenty Twenty-Two 1.0
+ *
+ * @return void
+ */
+ function twentytwentytwo_editor_styles() {
+
+ // Add styles inline.
+ wp_add_inline_style( 'wp-block-library', twentytwentytwo_get_font_face_styles() );
+
+ }
+
+endif;
+
+add_action( 'admin_init', 'twentytwentytwo_editor_styles' );
+
+
+if ( ! function_exists( 'twentytwentytwo_get_font_face_styles' ) ) :
+
+ /**
+ * Get font face styles.
+ * Called by functions twentytwentytwo_styles() and twentytwentytwo_editor_styles() above.
+ *
+ * @since Twenty Twenty-Two 1.0
+ *
+ * @return string
+ */
+ function twentytwentytwo_get_font_face_styles() {
+
+ return "
+ @font-face{
+ font-family: 'Source Serif Pro';
+ font-weight: 200 900;
+ font-style: normal;
+ font-stretch: normal;
+ src: url('" . get_theme_file_uri( 'assets/fonts/SourceSerif4Variable-Roman.ttf.woff2' ) . "') format('woff2');
+ }
+
+ @font-face{
+ font-family: 'Source Serif Pro';
+ font-weight: 200 900;
+ font-style: italic;
+ font-stretch: normal;
+ src: url('" . get_theme_file_uri( 'assets/fonts/SourceSerif4Variable-Italic.ttf.woff2' ) . "') format('woff2');
+ }
+ ";
+
+ }
+
+endif;
+
+// Add block patterns
+require get_template_directory() . '/inc/block-patterns.php';
diff --git a/src/wp-content/themes/twentytwentytwo/inc/block-patterns.php b/src/wp-content/themes/twentytwentytwo/inc/block-patterns.php
new file mode 100644
index 0000000000..8c80c4b457
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/block-patterns.php
@@ -0,0 +1,113 @@
+ __( 'Twenty Twenty-Two General', 'twentytwentytwo' ) )
+ );
+ register_block_pattern_category(
+ 'twentytwentytwo-footers',
+ array( 'label' => __( 'Twenty Twenty-Two Footers', 'twentytwentytwo' ) )
+ );
+ register_block_pattern_category(
+ 'twentytwentytwo-headers',
+ array( 'label' => __( 'Twenty Twenty-Two Headers', 'twentytwentytwo' ) )
+ );
+ register_block_pattern_category(
+ 'twentytwentytwo-query',
+ array( 'label' => __( 'Twenty Twenty-Two Posts', 'twentytwentytwo' ) )
+ );
+ register_block_pattern_category(
+ 'twentytwentytwo-pages',
+ array( 'label' => __( 'Twenty Twenty-Two Pages', 'twentytwentytwo' ) )
+ );
+
+ $block_patterns = array(
+ 'footer-default',
+ 'footer-dark',
+ 'footer-logo',
+ 'footer-navigation',
+ 'footer-title-tagline-social',
+ 'footer-title-tagline-social-dark',
+ 'footer-social-copyright',
+ 'footer-navigation-copyright',
+ 'footer-about-title-logo',
+ 'footer-query-title-citation',
+ 'footer-query-images-title-citation',
+ 'footer-blog',
+ 'general-subscribe',
+ 'general-featured-posts',
+ 'general-layered-images-with-duotone',
+ 'general-wide-image-intro-buttons',
+ 'general-large-list-names',
+ 'general-video-header-details',
+ 'general-list-events',
+ 'general-two-images-text',
+ 'general-image-with-caption',
+ 'general-video-trailer',
+ 'general-pricing-table',
+ 'general-divider-light',
+ 'general-divider-dark',
+ 'header-default',
+ 'header-large-dark',
+ 'header-image-background',
+ 'header-image-background-overlay',
+ 'header-with-tagline',
+ 'header-text-only-green-background',
+ 'header-text-only-salmon-background',
+ 'header-title-and-button',
+ 'header-text-only-with-tagline-black-background',
+ 'header-logo-navigation-gray-background',
+ 'header-logo-navigation-social-black-background',
+ 'header-title-navigation-social',
+ 'header-logo-navigation-offset-tagline',
+ 'header-stacked',
+ 'header-centered-logo',
+ 'header-centered-logo-black-background',
+ 'header-centered-title-navigation-social',
+ 'header-title-and-button',
+ 'hidden-404',
+ 'hidden-heading-and-bird',
+ 'page-about-big-image-and-buttons',
+ 'page-about-media-left',
+ 'page-about-simple-dark',
+ 'page-about-media-right',
+ 'page-about-links',
+ 'page-about-links-dark',
+ 'page-layout-image-and-text',
+ 'page-layout-image-text-and-video',
+ 'page-layout-two-columns',
+ 'page-sidebar-poster',
+ 'page-sidebar-grid-posts',
+ 'page-sidebar-blog-posts',
+ 'page-sidebar-blog-posts-right',
+ 'query-default',
+ 'query-simple-blog',
+ 'query-grid',
+ 'query-text-grid',
+ 'query-image-grid',
+ 'query-large-titles',
+ 'query-irregular-grid',
+ );
+
+ foreach ( $block_patterns as $block_pattern ) {
+ register_block_pattern(
+ 'twentytwentytwo/' . $block_pattern,
+ require __DIR__ . '/patterns/' . $block_pattern . '.php'
+ );
+ }
+ }
+endif;
+add_action( 'init', 'twentytwentytwo_register_block_patterns', 9 );
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-about-title-logo.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-about-title-logo.php
new file mode 100644
index 0000000000..11d50be4af
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-about-title-logo.php
@@ -0,0 +1,32 @@
+ __( 'Footer with text, title, and logo', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-footers' ),
+ 'blockTypes' => array( 'core/template-part/footer' ),
+ 'content' => '
+
+
+
+
' . esc_html__( 'About us', 'twentytwentytwo' ) . '
+
+
+
+
' . esc_html__( 'We are a rogue collective of bird watchers. We’ve been known to sneak through fences, climb perimeter walls, and generally trespass in order to observe the rarest of birds.', 'twentytwentytwo' ) . '
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-blog.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-blog.php
new file mode 100644
index 0000000000..7462d53f39
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-blog.php
@@ -0,0 +1,55 @@
+ __( 'Blog footer', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-footers' ),
+ 'blockTypes' => array( 'core/template-part/footer' ),
+ 'content' => '
+
+
+
+
' . esc_html__( 'About us', 'twentytwentytwo' ) . '
+
+
+
+
' . esc_html__( 'We are a rogue collective of bird watchers. We’ve been known to sneak through fences, climb perimeter walls, and generally trespass in order to observe the rarest of birds.', 'twentytwentytwo' ) . '
+
+
+
+
+
+
' . esc_html__( 'Latest posts', 'twentytwentytwo' ) . '
+
+
+
+
+
+
+
+
' . esc_html__( 'Categories', 'twentytwentytwo' ) . '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
' .
+ sprintf(
+ /* Translators: WordPress link. */
+ esc_html__( 'Proudly powered by %s', 'twentytwentytwo' ),
+ 'WordPress '
+ ) . '
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-dark.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-dark.php
new file mode 100644
index 0000000000..fb17ac3891
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-dark.php
@@ -0,0 +1,23 @@
+ __( 'Dark footer with title and citation', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-footers' ),
+ 'blockTypes' => array( 'core/template-part/footer' ),
+ 'content' => '
+
+
+
+
+
' .
+ sprintf(
+ /* Translators: WordPress link. */
+ esc_html__( 'Proudly powered by %s', 'twentytwentytwo' ),
+ 'WordPress '
+ ) . '
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-default.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-default.php
new file mode 100644
index 0000000000..543b1f37b1
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-default.php
@@ -0,0 +1,23 @@
+ __( 'Default footer', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-footers' ),
+ 'blockTypes' => array( 'core/template-part/footer' ),
+ 'content' => '
+
+
+
+
+
' .
+ sprintf(
+ /* Translators: WordPress link. */
+ esc_html__( 'Proudly powered by %s', 'twentytwentytwo' ),
+ 'WordPress '
+ ) . '
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-logo.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-logo.php
new file mode 100644
index 0000000000..7dea3c9b30
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-logo.php
@@ -0,0 +1,23 @@
+ __( 'Footer with logo and citation', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-footers' ),
+ 'blockTypes' => array( 'core/template-part/footer' ),
+ 'content' => '
+
+
+
+
+
' .
+ sprintf(
+ /* Translators: WordPress link. */
+ esc_html__( 'Proudly powered by %s', 'twentytwentytwo' ),
+ 'WordPress '
+ ) . '
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-navigation-copyright.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-navigation-copyright.php
new file mode 100644
index 0000000000..8f5666ecf1
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-navigation-copyright.php
@@ -0,0 +1,22 @@
+ __( 'Footer with navigation and copyright', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-footers' ),
+ 'blockTypes' => array( 'core/template-part/footer' ),
+ 'content' => '
+
+
+
+
+
+
+
+
+
+
' . esc_html__( '© Site Title', 'twentytwentytwo' ) . '
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-navigation.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-navigation.php
new file mode 100644
index 0000000000..c618ce4e96
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-navigation.php
@@ -0,0 +1,25 @@
+ __( 'Footer with navigation and citation', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-footers' ),
+ 'blockTypes' => array( 'core/template-part/footer' ),
+ 'content' => '
+
+
+
+
+
+
+
' .
+ sprintf(
+ /* Translators: WordPress link. */
+ esc_html__( 'Proudly powered by %s', 'twentytwentytwo' ),
+ 'WordPress '
+ ) . '
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-query-images-title-citation.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-query-images-title-citation.php
new file mode 100644
index 0000000000..cbd5fa06f3
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-query-images-title-citation.php
@@ -0,0 +1,41 @@
+ __( 'Footer with query, featured images, title, and citation', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-footers' ),
+ 'blockTypes' => array( 'core/template-part/footer' ),
+ 'content' => '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
' .
+ sprintf(
+ /* Translators: WordPress link. */
+ esc_html__( 'Proudly powered by %s', 'twentytwentytwo' ),
+ 'WordPress '
+ ) . '
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-query-title-citation.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-query-title-citation.php
new file mode 100644
index 0000000000..ea45b9041e
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-query-title-citation.php
@@ -0,0 +1,39 @@
+ __( 'Footer with query, title, and citation', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-footers' ),
+ 'blockTypes' => array( 'core/template-part/footer' ),
+ 'content' => '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
' .
+ sprintf(
+ /* Translators: WordPress link. */
+ esc_html__( 'Proudly powered by %s', 'twentytwentytwo' ),
+ 'WordPress '
+ ) . '
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-social-copyright.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-social-copyright.php
new file mode 100644
index 0000000000..5351d96755
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-social-copyright.php
@@ -0,0 +1,26 @@
+ __( 'Footer with social links and copyright', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-footers' ),
+ 'blockTypes' => array( 'core/template-part/footer' ),
+ 'content' => '
+
+
+
+
+
+
+
+
+
+
' . esc_html__( '© Site Title', 'twentytwentytwo' ) . '
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-title-tagline-social-dark.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-title-tagline-social-dark.php
new file mode 100644
index 0000000000..345db6fec9
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-title-tagline-social-dark.php
@@ -0,0 +1,26 @@
+ __( 'Footer with title, tagline, and social links (Dark)', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-footers' ),
+ 'blockTypes' => array( 'core/template-part/footer' ),
+ 'content' => '
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-title-tagline-social.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-title-tagline-social.php
new file mode 100644
index 0000000000..1dc2fcd0f1
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-title-tagline-social.php
@@ -0,0 +1,84 @@
+ __( 'Footer with title, tagline, and social links', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-footers' ),
+ 'blockTypes' => array( 'core/template-part/footer' ),
+ 'content' => '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-divider-dark.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-divider-dark.php
new file mode 100644
index 0000000000..e48c8bf24e
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-divider-dark.php
@@ -0,0 +1,13 @@
+ __( 'Divider with image and color (dark)', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-general' ),
+ 'content' => '
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-divider-light.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-divider-light.php
new file mode 100644
index 0000000000..3ddb604f65
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-divider-light.php
@@ -0,0 +1,13 @@
+ __( 'Divider with image and color (light)', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-general' ),
+ 'content' => '
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-featured-posts.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-featured-posts.php
new file mode 100644
index 0000000000..b3bc0e357a
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-featured-posts.php
@@ -0,0 +1,25 @@
+ __( 'Featured posts', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-general' ),
+ 'content' => '
+
+
' . esc_html__( 'Latest posts', 'twentytwentytwo' ) . '
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-image-with-caption.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-image-with-caption.php
new file mode 100644
index 0000000000..bafbbc802f
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-image-with-caption.php
@@ -0,0 +1,19 @@
+ __( 'Image with caption', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-general' ),
+ 'content' => '
+
+
+
' . esc_html__( 'Hummingbird', 'twentytwentytwo' ) . '
+
+
+
+
' . esc_html__( 'A beautiful bird featuring a surprising set of color feathers.', 'twentytwentytwo' ) . '
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-large-list-names.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-large-list-names.php
new file mode 100644
index 0000000000..25c19f60bc
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-large-list-names.php
@@ -0,0 +1,35 @@
+ __( 'Large list of names', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-general' ),
+ 'content' => '
+
+
+
+
+
+
+
+
+
+
+
+
+
' . esc_html__( 'Jesús Rodriguez, Doug Stilton, Emery Driscoll, Megan Perry, Rowan Price, Angelo Tso, Edward Stilton, Amy Jensen, Boston Bell, Shay Ford, Lee Cunningham, Evelynn Ray, Landen Reese, Ewan Hart, Jenna Chan, Phoenix Murray, Mel Saunders, Aldo Davidson, Zain Hall.', 'twentytwentytwo' ) . '
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-layered-images-with-duotone.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-layered-images-with-duotone.php
new file mode 100644
index 0000000000..c815ffdd3f
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-layered-images-with-duotone.php
@@ -0,0 +1,13 @@
+ __( 'Layered images with duotone', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-general' ),
+ 'content' => '
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-list-events.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-list-events.php
new file mode 100644
index 0000000000..e271e6b853
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-list-events.php
@@ -0,0 +1,133 @@
+ __( 'List of events', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-general' ),
+ 'content' => '
+
+
+
' . esc_html__( 'Speaker Series', 'twentytwentytwo' ) . '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
' . esc_html__( 'May 14th, 2022, 6 PM', 'twentytwentytwo' ) . '
+
+
+
+
+
+
' . esc_html__( 'Jesús Rodriguez', 'twentytwentytwo' ) . '
+
+
+
+
+
+
' . wp_kses_post( __( 'The Vintagé Theater 245 Arden Rd. Gardenville, NH', 'twentytwentytwo' ) ) . '
+
+
+
+
+
+
+
+
+
+
+
+
' . esc_html__( 'May 16th, 2022, 6 PM', 'twentytwentytwo' ) . '
+
+
+
+
+
+
' . esc_html__( 'Doug Stilton', 'twentytwentytwo' ) . '
+
+
+
+
+
+
' . wp_kses_post( __( 'The Swell Theater 120 River Rd. Rainfall, NH', 'twentytwentytwo' ) ) . '
+
+
+
+
+
+
+
+
+
+
+
+
' . esc_html__( 'May 18th, 2022, 7 PM', 'twentytwentytwo' ) . '
+
+
+
+
+
+
' . esc_html__( 'Amy Jensen', 'twentytwentytwo' ) . '
+
+
+
+
+
+
' . wp_kses_post( __( 'The Vintagé Theater 245 Arden Rd. Gardenville, NH', 'twentytwentytwo' ) ) . '
+
+
+
+
+
+
+
+
+
+
+
+
' . esc_html__( 'May 20th, 2022, 6 PM', 'twentytwentytwo' ) . '
+
+
+
+
+
+
' . esc_html__( 'Emery Driscoll', 'twentytwentytwo' ) . '
+
+
+
+
+
+
' . wp_kses_post( __( 'The Swell Theater 120 River Rd. Rainfall, NH', 'twentytwentytwo' ) ) . '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-pricing-table.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-pricing-table.php
new file mode 100644
index 0000000000..fdf803663a
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-pricing-table.php
@@ -0,0 +1,93 @@
+ __( 'Pricing table', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-general' ),
+ 'content' => '
+
+
+
+
+
+
+
' . esc_html( _x( '1', 'First item in a numbered list.', 'twentytwentytwo' ) ) . '
+
+
+
+
' . esc_html__( 'Pigeon', 'twentytwentytwo' ) . '
+
+
+
+
' . esc_html__( 'Help support our growing community by joining at the Pigeon level. Your support will help pay our writers, and you’ll get access to our exclusive newsletter.', 'twentytwentytwo' ) . '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
' . esc_html( _x( '2', 'Second item in a numbered list.', 'twentytwentytwo' ) ) . '
+
+
+
+
' . esc_html__( 'Sparrow', 'twentytwentytwo' ) . '
+
+
+
+
' . esc_html__( 'Join at the Sparrow level and become a member of our flock! You’ll receive our newsletter, plus a bird pin that you can wear with pride when you’re out in nature.', 'twentytwentytwo' ) . '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
' . esc_html( _x( '3', 'Third item in a numbered list.', 'twentytwentytwo' ) ) . '
+
+
+
+
' . esc_html__( 'Falcon', 'twentytwentytwo' ) . '
+
+
+
+
' . esc_html__( 'Play a leading role for our community by joining at the Falcon level. This level earns you a seat on our board, where you can help plan future birdwatching expeditions.', 'twentytwentytwo' ) . '
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-subscribe.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-subscribe.php
new file mode 100644
index 0000000000..d25fa7fd9d
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-subscribe.php
@@ -0,0 +1,27 @@
+ __( 'Subscribe callout', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-general' ),
+ 'content' => '
+
+
+
' . wp_kses_post( __( 'Watch birds from your inbox', 'twentytwentytwo' ) ) . '
+
+
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-two-images-text.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-two-images-text.php
new file mode 100644
index 0000000000..b4cdfd8990
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-two-images-text.php
@@ -0,0 +1,47 @@
+ __( 'Two images with text', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-general' ),
+ 'content' => '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
' . esc_html__( 'SCREENING', 'twentytwentytwo' ) . '
+
+
+
+
' . wp_kses_post( __( 'May 14th, 2022 @ 7:00PM The Vintagé Theater, 245 Arden Rd. Gardenville, NH', 'twentytwentytwo' ) ) . '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-video-header-details.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-video-header-details.php
new file mode 100644
index 0000000000..38b878ddda
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-video-header-details.php
@@ -0,0 +1,47 @@
+ __( 'Video with header and details', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-general' ),
+ 'content' => '
+
+
+
' . wp_kses_post( __( 'Warble , a film about hobbyist bird watchers.', 'twentytwentytwo' ) ) . '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
' . esc_html__( 'Featuring', 'twentytwentytwo' ) . '
+
+
+
+
+
+
' . wp_kses_post( __( 'Jesús Rodriguez Doug Stilton Emery Driscoll Megan Perry Rowan Price', 'twentytwentytwo' ) ) . '
+
+
+
+
+
+
' . wp_kses_post( __( 'Angelo Tso Edward Stilton Amy Jensen Boston Bell Shay Ford', 'twentytwentytwo' ) ) . '
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-video-trailer.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-video-trailer.php
new file mode 100644
index 0000000000..a91db2a535
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-video-trailer.php
@@ -0,0 +1,27 @@
+ __( 'Video trailer', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-general' ),
+ 'content' => '
+
+
+
+
' . esc_html__( 'Extended Trailer', 'twentytwentytwo' ) . '
+
+
+
+
' . esc_html__( 'A film about hobbyist bird watchers, a catalog of different birds, paired with the noises they make. Each bird is listed by their scientific name so things seem more official.', 'twentytwentytwo' ) . '
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-wide-image-intro-buttons.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-wide-image-intro-buttons.php
new file mode 100644
index 0000000000..eb93abfed4
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-wide-image-intro-buttons.php
@@ -0,0 +1,41 @@
+ __( 'Wide image with introduction and buttons', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-general' ),
+ 'content' => '
+
+
+
+
+
+
+
+
' . wp_kses_post( __( 'Welcome to the Aviary', 'twentytwentytwo' ) ) . '
+
+
+
+
+
+
' . esc_html__( 'A film about hobbyist bird watchers, a catalog of different birds, paired with the noises they make. Each bird is listed by their scientific name so things seem more official.', 'twentytwentytwo' ) . '
+
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/header-centered-logo-black-background.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-centered-logo-black-background.php
new file mode 100644
index 0000000000..802885cf0c
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-centered-logo-black-background.php
@@ -0,0 +1,22 @@
+ __( 'Header with centered logo and black background', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-headers' ),
+ 'blockTypes' => array( 'core/template-part/header' ),
+ 'content' => '
+
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/header-centered-logo.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-centered-logo.php
new file mode 100644
index 0000000000..796ae76931
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-centered-logo.php
@@ -0,0 +1,24 @@
+ __( 'Header with centered logo', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-headers' ),
+ 'blockTypes' => array( 'core/template-part/header' ),
+ 'content' => '
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/header-centered-title-navigation-social.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-centered-title-navigation-social.php
new file mode 100644
index 0000000000..a2081d7724
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-centered-title-navigation-social.php
@@ -0,0 +1,30 @@
+ __( 'Centered header with navigation, social links, and salmon background', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-headers' ),
+ 'blockTypes' => array( 'core/template-part/header' ),
+ 'content' => '
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/header-default.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-default.php
new file mode 100644
index 0000000000..0c91fa93f2
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-default.php
@@ -0,0 +1,21 @@
+ __( 'Default header', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-headers' ),
+ 'blockTypes' => array( 'core/template-part/header' ),
+ 'content' => '
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/header-image-background-overlay.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-image-background-overlay.php
new file mode 100644
index 0000000000..d5d6807a7b
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-image-background-overlay.php
@@ -0,0 +1,18 @@
+ __( 'Header with image background and overlay', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-headers' ),
+ 'blockTypes' => array( 'core/template-part/header' ),
+ 'content' => '
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/header-image-background.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-image-background.php
new file mode 100644
index 0000000000..f76d95504f
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-image-background.php
@@ -0,0 +1,22 @@
+ __( 'Header with image background', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-headers' ),
+ 'blockTypes' => array( 'core/template-part/header' ),
+ 'content' => '
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/header-large-dark.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-large-dark.php
new file mode 100644
index 0000000000..bf16482a40
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-large-dark.php
@@ -0,0 +1,32 @@
+ __( 'Large header', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-headers' ),
+ 'blockTypes' => array( 'core/template-part/header' ),
+ 'content' => '
+
+
+
+
+
+
+
' . wp_kses_post( __( 'The Hatchery : a blog about my adventures in bird watching', 'twentytwentytwo' ) ) . '
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/header-logo-navigation-gray-background.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-logo-navigation-gray-background.php
new file mode 100644
index 0000000000..0eb755223d
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-logo-navigation-gray-background.php
@@ -0,0 +1,18 @@
+ __( 'Logo and navigation header with gray background', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-headers' ),
+ 'blockTypes' => array( 'core/template-part/header' ),
+ 'content' => '
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/header-logo-navigation-offset-tagline.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-logo-navigation-offset-tagline.php
new file mode 100644
index 0000000000..6b20d8a1cf
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-logo-navigation-offset-tagline.php
@@ -0,0 +1,28 @@
+ __( 'Logo, navigation, and offset tagline Header', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-headers' ),
+ 'blockTypes' => array( 'core/template-part/header' ),
+ 'content' => '
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/header-logo-navigation-social-black-background.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-logo-navigation-social-black-background.php
new file mode 100644
index 0000000000..31b9eb98ea
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-logo-navigation-social-black-background.php
@@ -0,0 +1,24 @@
+ __( 'Logo, navigation, and social links header with black background', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-headers' ),
+ 'blockTypes' => array( 'core/template-part/header' ),
+ 'content' => '
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/header-stacked.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-stacked.php
new file mode 100644
index 0000000000..be69f09a30
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-stacked.php
@@ -0,0 +1,26 @@
+ __( 'Logo and navigation header', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-headers' ),
+ 'blockTypes' => array( 'core/template-part/header' ),
+ 'content' => '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/header-text-only-green-background.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-text-only-green-background.php
new file mode 100644
index 0000000000..320e98cde5
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-text-only-green-background.php
@@ -0,0 +1,22 @@
+ __( 'Text-only header with green background', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-headers' ),
+ 'blockTypes' => array( 'core/template-part/header' ),
+ 'content' => '
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/header-text-only-salmon-background.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-text-only-salmon-background.php
new file mode 100644
index 0000000000..09e7a46a52
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-text-only-salmon-background.php
@@ -0,0 +1,18 @@
+ __( 'Text-only header with salmon background', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-headers' ),
+ 'blockTypes' => array( 'core/template-part/header' ),
+ 'content' => '
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/header-text-only-with-tagline-black-background.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-text-only-with-tagline-black-background.php
new file mode 100644
index 0000000000..4d72bd355b
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-text-only-with-tagline-black-background.php
@@ -0,0 +1,22 @@
+ __( 'Text-only header with tagline and black background', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-headers' ),
+ 'blockTypes' => array( 'core/template-part/header' ),
+ 'content' => '
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/header-title-and-button.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-title-and-button.php
new file mode 100644
index 0000000000..1d150d5424
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-title-and-button.php
@@ -0,0 +1,16 @@
+ __( 'Title and button header', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-headers' ),
+ 'blockTypes' => array( 'core/template-part/header' ),
+ 'content' => '
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/header-title-navigation-social.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-title-navigation-social.php
new file mode 100644
index 0000000000..4b7aba2c67
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-title-navigation-social.php
@@ -0,0 +1,22 @@
+ __( 'Title, navigation, and social links header', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-headers' ),
+ 'blockTypes' => array( 'core/template-part/header' ),
+ 'content' => '
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/header-with-tagline.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-with-tagline.php
new file mode 100644
index 0000000000..108119d471
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-with-tagline.php
@@ -0,0 +1,24 @@
+ __( 'Header with tagline', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-headers' ),
+ 'blockTypes' => array( 'core/template-part/header' ),
+ 'content' => '
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/hidden-404.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/hidden-404.php
new file mode 100644
index 0000000000..452cc9d7d9
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/hidden-404.php
@@ -0,0 +1,18 @@
+ __( '404 content', 'twentytwentytwo' ),
+ 'inserter' => false,
+ 'content' => '
+ ' . esc_html( _x( '404', 'Error code for a webpage that is not found.', 'twentytwentytwo' ) ) . '
+
+
+ ' . esc_html__( 'This page could not be found. Maybe try a search?', 'twentytwentytwo' ) . '
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/hidden-heading-and-bird.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/hidden-heading-and-bird.php
new file mode 100644
index 0000000000..1cc5745de9
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/hidden-heading-and-bird.php
@@ -0,0 +1,21 @@
+ __( 'Heading and bird image', 'twentytwentytwo' ),
+ 'inserter' => false,
+ 'content' => '
+
+
' . wp_kses_post( __( 'The Hatchery : a blog about my adventures in bird watching', 'twentytwentytwo' ) ) . '
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-about-big-image-and-buttons.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-about-big-image-and-buttons.php
new file mode 100644
index 0000000000..e6975963b9
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-about-big-image-and-buttons.php
@@ -0,0 +1,79 @@
+ __( 'About page with big image and buttons', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-pages' ),
+ 'content' => '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-about-links-dark.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-about-links-dark.php
new file mode 100644
index 0000000000..157b440b88
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-about-links-dark.php
@@ -0,0 +1,47 @@
+ __( 'About page links (dark)', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-pages' ),
+ 'content' => '
+
+
+
+
+
+
+
+
+
' . esc_html__( 'A trouble of hummingbirds', 'twentytwentytwo' ) . '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-about-links.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-about-links.php
new file mode 100644
index 0000000000..f7010334d0
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-about-links.php
@@ -0,0 +1,63 @@
+ __( 'About page links', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-pages' ),
+ 'content' => '
+
+
+
+
+
+
+
' . esc_html__( 'Swoop', 'twentytwentytwo' ) . '
+
+
+
+
' . esc_html__( 'A podcast about birds', 'twentytwentytwo' ) . '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-about-media-left.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-about-media-left.php
new file mode 100644
index 0000000000..ce49ed997d
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-about-media-left.php
@@ -0,0 +1,45 @@
+ __( 'About page with media on the left', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-pages' ),
+ 'content' => '
+
+
+
+
+
+
+
+
+
+
+
+
+
' . esc_html__( 'Doug', 'twentytwentytwo' ) . ' ' . esc_html__( 'Stilton', 'twentytwentytwo' ) . '
+
+
+
+
' . esc_html__( 'Oh hello. My name’s Doug, and you’ve found your way to my website. I’m an avid bird watcher, and I also broadcast my own radio show on Tuesday evenings at 11PM EDT.' ) . '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-about-media-right.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-about-media-right.php
new file mode 100644
index 0000000000..7b4c9e7f5b
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-about-media-right.php
@@ -0,0 +1,40 @@
+ __( 'About page with media on the right', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-pages' ),
+ 'content' => '
+
+
+
+
+
+
+
+
Emery Driscoll
+
+
+
+
' . esc_html__( 'Oh hello. My name’s Emery, and you’ve found your way to my website. I’m an avid bird watcher, and I also broadcast my own radio show on Tuesday evenings at 11PM EDT.', 'twentytwentytwo' ) . '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-about-simple-dark.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-about-simple-dark.php
new file mode 100644
index 0000000000..a924b17ae4
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-about-simple-dark.php
@@ -0,0 +1,45 @@
+ __( 'Simple dark about page', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-pages' ),
+ 'content' => '
+
+
+
+
+
+
+
+
+
+
' . wp_kses_post( __( 'Jesús Rodriguez', 'twentytwentytwo' ) ) . '
+
+
+
+
' . esc_html__( 'Oh hello. My name’s Jesús, and you’ve found your way to my website. I’m an avid bird watcher, and I also broadcast my own radio show on Tuesday evenings at 11PM EDT.', 'twentytwentytwo' ) . '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-and-text.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-and-text.php
new file mode 100644
index 0000000000..a667fcf0e3
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-and-text.php
@@ -0,0 +1,32 @@
+ __( 'Page layout with image and text', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-pages' ),
+ 'content' => '
+
+
' . wp_kses_post( __( 'Watching Birds in the Garden ', 'twentytwentytwo' ) ) . '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
' . wp_kses_post( __( 'Oh hello. My name’s Angelo, and I operate this blog. I was born in Portland, but I currently live in upstate New York. You may recognize me from publications with names like Eagle Beagle and Mourning Dive . I write for a living. I usually use this blog to catalog extensive lists of birds and other things that I find interesting. If you find an error with one of my lists, please keep it to yourself. If that’s not your cup of tea, I definitely recommend this tea . It’s my favorite.', 'twentytwentytwo' ) ) . '
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-text-and-video.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-text-and-video.php
new file mode 100644
index 0000000000..09ce01c2d2
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-text-and-video.php
@@ -0,0 +1,65 @@
+ __( 'Page layout with image, text and video', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-pages' ),
+ 'content' => '
+
+
+
' . wp_kses_post( __( 'Warble , a film about hobbyist bird watchers.', 'twentytwentytwo' ) ) . '
+
+
+
+
+
+
+
+
+
+
' . esc_html__( 'Screening', 'twentytwentytwo' ) . '
+
+
+
+
' . wp_kses_post( __( 'May 14th, 2022 @ 7:00PM The Vintagé Theater, 245 Arden Rd. Gardenville, NH', 'twentytwentytwo' ) ) . '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
' . esc_html__( 'Extended Trailer', 'twentytwentytwo' ) . '
+
+
+
+
' . esc_html__( 'Oh hello. My name’s Angelo, and you’ve found your way to my blog. I write about a range of topics, but lately I’ve been sharing my hopes for next year.', 'twentytwentytwo' ) . '
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-two-columns.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-two-columns.php
new file mode 100644
index 0000000000..ede5072368
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-two-columns.php
@@ -0,0 +1,73 @@
+ __( 'Page layout with two columns', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-pages' ),
+ 'content' => '
+
+
' . wp_kses_post( __( 'Goldfinch & Sparrow ', 'twentytwentytwo' ) ) . '
+
+
+
+
+
+
+
+
+
+
+
' . esc_html__( 'WELCOME', 'twentytwentytwo' ) . '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
' . wp_kses_post( __( 'Oh hello. My name’s Angelo, and I operate this blog. I was born in Portland, but I currently live in upstate New York. You may recognize me from publications with names like Eagle Beagle and Mourning Dive . I write for a living. I usually use this blog to catalog extensive lists of birds and other things that I find interesting. If you find an error with one of my lists, please keep it to yourself. If that’s not your cup of tea, I definitely recommend this tea . It’s my favorite.', 'twentytwentytwo' ) ) . '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
' . esc_html__( 'POSTS', 'twentytwentytwo' ) . '
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-blog-posts-right.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-blog-posts-right.php
new file mode 100644
index 0000000000..62ccb552f2
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-blog-posts-right.php
@@ -0,0 +1,87 @@
+ __( 'Blog posts with right sidebar', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-pages' ),
+ 'content' => '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
' . esc_html__( 'Categories', 'twentytwentytwo' ) . '
+
+
+
+
+
+
' . esc_html__( 'Tags', 'twentytwentytwo' ) . '
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-blog-posts.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-blog-posts.php
new file mode 100644
index 0000000000..562b5c9921
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-blog-posts.php
@@ -0,0 +1,79 @@
+ __( 'Blog posts with left sidebar', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-pages' ),
+ 'content' => '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-grid-posts.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-grid-posts.php
new file mode 100644
index 0000000000..930335ace9
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-grid-posts.php
@@ -0,0 +1,77 @@
+ __( 'Grid of posts with left sidebar', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-pages' ),
+ 'content' => '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-poster.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-poster.php
new file mode 100644
index 0000000000..ab1621eb74
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-poster.php
@@ -0,0 +1,65 @@
+ __( 'Poster with right sidebar', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-pages' ),
+ 'content' => '
+
+
+
+
+
+
' . wp_kses_post( __( 'Flutter , a collection of bird-related ephemera', 'twentytwentytwo' ) ) . '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
' . esc_html__( 'Date', 'twentytwentytwo' ) . '
+
+
+
+
' . esc_html__( 'February, 12 2021', 'twentytwentytwo' ) . '
+
+
+
+
+
+
+
+
' . esc_html__( 'Location', 'twentytwentytwo' ) . '
+
+
+
+
' . wp_kses_post( __( 'The Grand Theater 154 Eastern Avenue Maryland NY, 12345', 'twentytwentytwo' ) ) . '
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/query-default.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/query-default.php
new file mode 100644
index 0000000000..4207ccd957
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/query-default.php
@@ -0,0 +1,50 @@
+ __( 'Default posts', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-query' ),
+ 'blockTypes' => array( 'core/query' ),
+ 'content' => '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/query-grid.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/query-grid.php
new file mode 100644
index 0000000000..cd80c42f20
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/query-grid.php
@@ -0,0 +1,32 @@
+ __( 'Grid of posts', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-query' ),
+ 'blockTypes' => array( 'core/query' ),
+ 'content' => '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/query-image-grid.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/query-image-grid.php
new file mode 100644
index 0000000000..b1f10d715e
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/query-image-grid.php
@@ -0,0 +1,32 @@
+ __( 'Grid of image posts', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-query' ),
+ 'blockTypes' => array( 'core/query' ),
+ 'content' => '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/query-irregular-grid.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/query-irregular-grid.php
new file mode 100644
index 0000000000..68f7d57436
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/query-irregular-grid.php
@@ -0,0 +1,170 @@
+ __( 'Irregular grid of posts', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-query' ),
+ 'blockTypes' => array( 'core/query' ),
+ 'content' => '
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/query-large-titles.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/query-large-titles.php
new file mode 100644
index 0000000000..a1fea0def9
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/query-large-titles.php
@@ -0,0 +1,26 @@
+ __( 'Large post titles', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-query' ),
+ 'blockTypes' => array( 'core/query' ),
+ 'content' => '
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/query-simple-blog.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/query-simple-blog.php
new file mode 100644
index 0000000000..51f9fd8470
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/query-simple-blog.php
@@ -0,0 +1,38 @@
+ __( 'Simple blog posts', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-query' ),
+ 'blockTypes' => array( 'core/query' ),
+ 'content' => '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/query-text-grid.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/query-text-grid.php
new file mode 100644
index 0000000000..2d3368c3b3
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/query-text-grid.php
@@ -0,0 +1,31 @@
+ __( 'Text-based grid of posts', 'twentytwentytwo' ),
+ 'categories' => array( 'twentytwentytwo-query' ),
+ 'blockTypes' => array( 'core/query' ),
+ 'content' => '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ',
+);
diff --git a/src/wp-content/themes/twentytwentytwo/index.php b/src/wp-content/themes/twentytwentytwo/index.php
new file mode 100644
index 0000000000..27dc7057dc
--- /dev/null
+++ b/src/wp-content/themes/twentytwentytwo/index.php
@@ -0,0 +1,5 @@
+