Browse Source

Menu: add theme for review (#7014)

* Add Menu theme for review

* update templates and add credits in readme

* update index page

* translate patterns

* remove id references from templates

* compress images and update version

* fix style variation issues

---------

Co-authored-by: madhusudhand <madhusudhan.dollu@gmail.com>
Matias Benedetto 2 years ago
parent
commit
fc6c7409e0

BIN
menu/assets/fonts/dm-mono_italic_400.ttf


BIN
menu/assets/fonts/dm-mono_normal_400.ttf


BIN
menu/assets/fonts/fraunces_italic_600.ttf


BIN
menu/assets/fonts/fraunces_normal_600.ttf


BIN
menu/assets/fonts/texgyreadventor_italic_700.woff


BIN
menu/assets/fonts/texgyreadventor_normal_700.woff


BIN
menu/assets/images/girl-holding-a-juicy-beef-burger.jpg


BIN
menu/assets/images/young-lady-holding-huge-burger.jpg


+ 60 - 0
menu/functions.php

@@ -0,0 +1,60 @@
+<?php
+/**
+ * MENU functions and definitions
+ *
+ * @link https://developer.wordpress.org/themes/basics/theme-functions/
+ *
+ * @package MENU
+ * @since MENU 1.0
+ */
+
+
+if ( ! function_exists( 'menu_support' ) ) :
+
+	/**
+	 * Sets up theme defaults and registers support for various WordPress features.
+	 *
+	 * @since MENU 1.0
+	 *
+	 * @return void
+	 */
+	function menu_support() {
+
+		// Enqueue editor styles.
+		add_editor_style( 'style.css' );
+
+		// Make theme available for translation.
+		load_theme_textdomain( 'menu' );
+	}
+
+endif;
+
+add_action( 'after_setup_theme', 'menu_support' );
+
+if ( ! function_exists( 'menu_styles' ) ) :
+
+	/**
+	 * Enqueue styles.
+	 *
+	 * @since MENU 1.0
+	 *
+	 * @return void
+	 */
+	function menu_styles() {
+
+		// Register theme stylesheet.
+		wp_register_style(
+			'menu-style',
+			get_stylesheet_directory_uri() . '/style.css',
+			array(),
+			wp_get_theme()->get( 'Version' )
+		);
+
+		// Enqueue theme stylesheet.
+		wp_enqueue_style( 'menu-style' );
+
+	}
+
+endif;
+
+add_action( 'wp_enqueue_scripts', 'menu_styles' );

+ 1 - 0
menu/parts/footer.html

@@ -0,0 +1 @@
+<!-- wp:pattern {"slug":"menu/footer"} /-->

+ 13 - 0
menu/parts/header.html

@@ -0,0 +1,13 @@
+<!-- wp:group {"style":{"border":{"bottom":{"width":"1px"}}}} -->
+<div class="wp-block-group" style="border-bottom-width:1px"><!-- wp:group {"align":"wide","layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide"><!-- wp:columns {"align":"wide","style":{"border":{"right":{"width":"1px"},"left":{"width":"1px"}}}} -->
+<div class="wp-block-columns alignwide" style="border-right-width:1px;border-left-width:1px"><!-- wp:column {"verticalAlignment":"center","width":"25%","style":{"border":{"right":{"width":"1px"}},"spacing":{"padding":{"top":"0px","right":"24px","bottom":"0px","left":"24px"}}}} -->
+<div class="wp-block-column is-vertically-aligned-center" style="border-right-width:1px;padding-top:0px;padding-right:24px;padding-bottom:0px;padding-left:24px;flex-basis:25%"><!-- wp:site-logo {"width":128,"shouldSyncIcon":true,"align":"center","style":{"spacing":{"margin":{"top":"24px","bottom":"24px"}}}} /--></div>
+<!-- /wp:column -->
+
+<!-- wp:column {"verticalAlignment":"center","style":[]} -->
+<div class="wp-block-column is-vertically-aligned-center"><!-- wp:navigation {"layout":{"type":"flex","setCascadingProperties":true,"justifyContent":"center","orientation":"horizontal"},"style":{"spacing":{"margin":{"top":"0"},"blockGap":"48px"},"typography":{"fontSize":"24px","letterSpacing":"1px","textTransform":"uppercase","lineHeight":"1.2"}},"fontFamily":"texgyreadventor"} /--></div>
+<!-- /wp:column --></div>
+<!-- /wp:columns --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->

+ 7 - 0
menu/parts/post-meta.html

@@ -0,0 +1,7 @@
+<!-- wp:group {"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:paragraph {"style":{"typography":{"fontSize":"48px","lineHeight":1}},"fontFamily":"texgyreadventor"} -->
+<p class="has-texgyreadventor-font-family" style="font-size:48px;line-height:1">$</p>
+<!-- /wp:paragraph -->
+
+<!-- wp:post-terms {"term":"post_tag","style":{"typography":{"fontSize":"48px","lineHeight":1}},"fontFamily":"texgyreadventor"} /--></div>
+<!-- /wp:group -->

+ 46 - 0
menu/patterns/404.php

@@ -0,0 +1,46 @@
+<?php
+/**
+ * Title: A 404 page
+ * Slug: menu/404
+ * Inserter: no
+ */
+
+?>
+
+<!-- wp:group {"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:group {"align":"wide","style":{"spacing":{"padding":{"bottom":"40px","top":"64px"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide" style="padding-top:64px;padding-bottom:40px"><!-- wp:spacer {"height":"40px"} -->
+<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:heading {"textAlign":"left","level":1,"align":"wide","anchor":"oops-that-page-can-t-be-found"} -->
+<h1 class="wp-block-heading alignwide has-text-align-left"><?php echo esc_html__( 'We\'re sorry!', 'menu' ); ?></h1>
+<!-- /wp:heading -->
+
+<!-- wp:heading {"textAlign":"left","level":1,"align":"wide","anchor":"oops-that-page-can-t-be-found"} -->
+<h1 class="wp-block-heading alignwide has-text-align-left"><?php echo esc_html__( 'Nothing has last...', 'menu' ); ?></h1>
+<!-- /wp:heading -->
+
+<!-- wp:spacer {"height":"40px"} -->
+<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:group {"align":"wide","style":{"spacing":{"blockGap":"40px"}},"layout":{"type":"constrained","justifyContent":"left"}} -->
+<div class="wp-block-group alignwide"><!-- wp:paragraph -->
+<p><?php echo esc_html__( 'We are apparently out of that item. What about a new selection?', 'menu' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group -->
+
+<!-- wp:spacer {"height":"20px"} -->
+<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:group {"align":"full","layout":{"type":"constrained","justifyContent":"left"}} -->
+<div class="wp-block-group alignfull"><!-- wp:search {"showLabel":false,"width":100,"widthUnit":"%","buttonText":"<?php echo esc_html__( 'Search', 'menu' ); ?>"} /-->
+
+<!-- wp:spacer {"height":"40px"} -->
+<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->

+ 52 - 0
menu/patterns/comments.php

@@ -0,0 +1,52 @@
+<?php
+/**
+ * Title: Comments
+ * slug: menu/comments
+ * inserter: no
+ */
+
+?>
+
+<!-- wp:comments {"className":"wp-block-comments-query-loop"} -->
+<div class="wp-block-comments wp-block-comments-query-loop">
+	<!-- wp:comments-title {"level":3} /-->
+
+	<!-- wp:comment-template -->
+		<!-- wp:group {"style":{"spacing":{"margin":{"top":"0","bottom":"var:preset|spacing|50"}}}} -->
+		<div class="wp-block-group" style="margin-top:0;margin-bottom:var(--wp--preset--spacing--50)">
+			<!-- wp:group {"layout":{"type":"flex","flexWrap":"nowrap"},"style":{"spacing":{"blockGap":"0.5em"}}} -->
+			<div class="wp-block-group">
+				<!-- wp:avatar {"size":40,"style":{"spacing":{"margin":{"top":"0.5em"}}}} /-->
+
+				<!-- wp:group -->
+				<div class="wp-block-group">
+					<!-- wp:comment-author-name /-->
+
+					<!-- wp:group {"layout":{"type":"flex"},"style":{"spacing":{"margin":{"top":"0px","bottom":"0px"},"blockGap":"0.5em"}}} -->
+					<div class="wp-block-group" style="margin-top:0px;margin-bottom:0px">
+						<!-- wp:comment-date {"format":"F j, Y \\a\\t g:i a"} /-->
+
+						<!-- wp:comment-edit-link /-->
+					</div>
+					<!-- /wp:group -->
+				</div>
+				<!-- /wp:group -->
+			</div>
+			<!-- /wp:group -->
+
+			<!-- wp:comment-content /-->
+
+			<!-- wp:comment-reply-link /-->
+		</div>
+		<!-- /wp:group -->
+	<!-- /wp:comment-template -->
+
+	<!-- wp:comments-pagination -->
+		<!-- wp:comments-pagination-previous /-->
+		<!-- wp:comments-pagination-numbers /-->
+		<!-- wp:comments-pagination-next /-->
+	<!-- /wp:comments-pagination -->
+
+	<!-- wp:post-comments-form /-->
+</div>
+<!-- /wp:comments -->

+ 43 - 0
menu/patterns/footer.php

@@ -0,0 +1,43 @@
+<?php
+/**
+ * Title: Default footer
+ * Slug: menu/footer
+ * Categories: footer
+ * Block Types: core/template-part/footer
+ */
+?>
+
+<!-- wp:spacer {"height":"var(\u002d\u002dwp\u002d\u002dpreset\u002d\u002dspacing\u002d\u002d80)"} -->
+<div style="height:var(--wp--preset--spacing--80)" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:group {"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:group {"align":"wide"} -->
+<div class="wp-block-group alignwide"><!-- wp:group {"layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"space-between"}} -->
+<div class="wp-block-group"><!-- wp:paragraph {"align":"left"} -->
+<p class="has-text-align-left">
+	<?php
+		$wordpress_link = '<a href="' . esc_url( __( 'https://wordpress.org', 'menu' ) ) . '" rel="nofollow">WordPress</a>';
+		echo sprintf(
+			/* Translators: WordPress link. */
+			esc_html__( 'Designed with %1$s', 'menu' ),
+			$wordpress_link
+		);
+	?>
+</p>
+<!-- /wp:paragraph -->
+
+<!-- wp:social-links {"iconColor":"primary","iconColorValue":"var(--wp--preset--color--foreground)","iconBackgroundColor":"background","iconBackgroundColorValue":"var(--wp--preset--color--tertiary)"} -->
+<ul class="wp-block-social-links has-icon-color has-icon-background-color"><!-- wp:social-link {"url":"https://tumblr.com","service":"tumblr","label":"Tumblr"} /-->
+
+<!-- wp:social-link {"url":"https://instagram.com","service":"instagram","label":"Instagram"} /-->
+
+<!-- wp:social-link {"url":"https://twitter.com","service":"twitter","label":"Twitter"} /--></ul>
+<!-- /wp:social-links --></div>
+<!-- /wp:group -->
+
+<!-- wp:spacer {"height":"80px","style":{"spacing":{"margin":{"top":"0px","bottom":"0px"}}}} -->
+<div style="margin-top:0px;margin-bottom:0px;height:80px" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->

+ 28 - 0
menu/patterns/gallery.php

@@ -0,0 +1,28 @@
+<?php
+/**
+ * Title: Gallery
+ * Slug: menu/gallery
+ * Categories: hidden
+ * Inserter: no
+ */
+?>
+
+<!-- wp:group {"align":"wide"} -->
+<div class="wp-block-group alignwide"><!-- wp:columns {"style":{"spacing":{"blockGap":{"top":"1px","left":"1px"},"padding":{"top":"0px","right":"0px","bottom":"0px","left":"0px"},"margin":{"top":"0px","bottom":"0px"}}}} -->
+<div class="wp-block-columns" style="margin-top:0px;margin-bottom:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px"><!-- wp:column {"width":"29%","style":{"spacing":{"padding":{"top":"0px","right":"0px","bottom":"0px","left":"0px"}}}} -->
+<div class="wp-block-column" style="padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;flex-basis:29%"><!-- wp:gallery {"linkTo":"media","sizeSlug":"full"} -->
+<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><!-- wp:image {"sizeSlug":"full","linkDestination":"media","style":{"color":{"duotone":["#1d1d1d","#f8f8f7"]}}} -->
+<figure class="wp-block-image size-full"><a href="<?php echo esc_url( get_stylesheet_directory_uri() ); ?>/assets/images/young-lady-holding-huge-burger.jpg"><img src="<?php echo esc_url( get_stylesheet_directory_uri() ); ?>/assets/images/young-lady-holding-huge-burger.jpg" alt="<?php echo esc_attr__( 'Young lady holding huge burger', 'menu' ); ?>"/></a></figure>
+<!-- /wp:image --></figure>
+<!-- /wp:gallery --></div>
+<!-- /wp:column -->
+
+<!-- wp:column {"width":"","style":{"spacing":{"padding":{"top":"0px","right":"0px","bottom":"0px","left":"0px"}}}} -->
+<div class="wp-block-column" style="padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px"><!-- wp:gallery {"linkTo":"media","sizeSlug":"full"} -->
+<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><!-- wp:image {"sizeSlug":"full","linkDestination":"media","style":{"color":{"duotone":["#1d1d1d","#f8f8f7"]}}} -->
+<figure class="wp-block-image size-full"><a href="<?php echo esc_url( get_stylesheet_directory_uri() ); ?>/assets/images/girl-holding-a-juicy-beef-burger.jpg"><img src="<?php echo esc_url( get_stylesheet_directory_uri() ); ?>/assets/images/girl-holding-a-juicy-beef-burger.jpg" alt="<?php echo esc_attr__( 'Girl holding a juicy beef burger', 'menu' ); ?>"/></a></figure>
+<!-- /wp:image --></figure>
+<!-- /wp:gallery --></div>
+<!-- /wp:column --></div>
+<!-- /wp:columns --></div>
+<!-- /wp:group -->

+ 50 - 0
menu/patterns/posts-list.php

@@ -0,0 +1,50 @@
+<?php
+/**
+ * Title: Posts List
+ * Slug: menu/posts-list
+ * Categories: hidden
+ * Inserter: no
+ */
+?>
+
+<!-- wp:group {"align":"wide","style":{"spacing":{"padding":{"bottom":"40px","top":"64px"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide" style="padding-top:64px;padding-bottom:40px"><!-- wp:heading {"level":1,"align":"wide"} -->
+<h1 class="wp-block-heading alignwide"><?php echo esc_html__( 'Burgers', 'menu' ); ?></h1>
+<!-- /wp:heading -->
+
+<!-- wp:spacer {"height":"40px","style":{"spacing":{"margin":{"top":"0px","bottom":"0px"}}}} -->
+<div style="margin-top:0px;margin-bottom:0px;height:40px" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:query {"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"asc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":false,"parents":[]},"tagName":"main","align":"wide","layout":{"type":"constrained","justifyContent":"left"}} -->
+<main class="wp-block-query alignwide"><!-- wp:post-template {"align":"wide"} -->
+<!-- wp:group {"style":{"border":{"bottom":{"width":"1px"}}}} -->
+<div class="wp-block-group" style="border-bottom-width:1px"><!-- wp:columns -->
+<div class="wp-block-columns"><!-- wp:column {"width":"25%","style":{"border":{"right":{"width":"1px"},"left":{"width":"1px"}},"spacing":{"padding":{"top":"12px","right":"24px","bottom":"0px","left":"24px"}}}} -->
+<div class="wp-block-column" style="border-right-width:1px;border-left-width:1px;padding-top:12px;padding-right:24px;padding-bottom:0px;padding-left:24px;flex-basis:25%"><!-- wp:post-title {"isLink":true} /--></div>
+<!-- /wp:column -->
+
+<!-- wp:column {"style":{"spacing":{"padding":{"top":"24px","right":"24px","bottom":"0px","left":"24px"}}}} -->
+<div class="wp-block-column" style="padding-top:24px;padding-right:24px;padding-bottom:0px;padding-left:24px"><!-- wp:post-excerpt {"showMoreOnNewLine":false} /--></div>
+<!-- /wp:column -->
+
+<!-- wp:column {"width":"7.5%","style":{"border":{"left":{"width":"1px"}},"spacing":{"padding":{"top":"24px","right":"24px","bottom":"0px","left":"24px"}}}} -->
+<div class="wp-block-column" style="border-left-width:1px;padding-top:24px;padding-right:24px;padding-bottom:0px;padding-left:24px;flex-basis:7.5%"><!-- wp:post-terms {"term":"post_tag","style":{"typography":{"fontStyle":"normal","fontWeight":"700"}}} /--></div>
+<!-- /wp:column --></div>
+<!-- /wp:columns -->
+
+<!-- wp:spacer {"height":"40px","style":{"spacing":{"margin":{"top":"0px","bottom":"0px"}}}} -->
+<div style="margin-top:0px;margin-bottom:0px;height:40px" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer --></div>
+<!-- /wp:group -->
+
+<!-- wp:spacer {"height":"20px","style":{"spacing":{"margin":{"top":"0px","bottom":"0px"}}}} -->
+<div style="margin-top:0px;margin-bottom:0px;height:20px" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+<!-- /wp:post-template --></main>
+<!-- /wp:query --></div>
+<!-- /wp:group -->
+
+<!-- wp:spacer {"height":"20px","style":{"spacing":{"margin":{"top":"0px","bottom":"0px"}}}} -->
+<div style="margin-top:0px;margin-bottom:0px;height:20px" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->

+ 54 - 0
menu/readme.txt

@@ -0,0 +1,54 @@
+=== MENU ===
+Contributors: the WordPress team
+Requires at least: 6.1
+Tested up to: 6.2
+Requires PHP: 5.7
+License: GPLv2 or later
+License URI: http://www.gnu.org/licenses/gpl-2.0.html
+
+== Description ==
+
+A simple theme designed to facilitate restaurant owners' experience when building their sites. Is clean, direct, and customizable.
+
+== Changelog ==
+
+= 0.0.1 =
+* Initial release
+
+== Copyright ==
+
+MENU WordPress Theme, (C) 2023 the WordPress team
+MENU is distributed under the terms of the GNU GPL.
+MENU is based on Block Canvas (https://github.com/Automattic/themes/tree/trunk/block-canvas), (C) Automattic, [GPLv2 or later](http://www.gnu.org/licenses/gpl-2.0.html)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+This theme bundles the following third-party resources:
+
+Font: DM Mono from Google Fonts
+License: Open Font License (https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL)
+Source: https://fonts.google.com/specimen/DM+Mono
+
+Font: Fraunces from Google Fonts
+License: Open Font License (https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL)
+Source: https://fonts.google.com/specimen/Fraunces
+
+Font: TeX Gyre Adventor font
+License: GUST e-foundry License v1.00 (http://www.gust.org.pl/fonts/licenses/GUST-FONT-LICENSE.txt)
+Source: https://www.fontsquirrel.com/fonts/tex-gyre-adventor
+
+Image: girl-holding-a-juicy-beef-burger 
+License: CCO (https://creativecommons.org/publicdomain/zero/1.0/)
+Source: https://www.foodiesfeed.com/free-food-photo/girl-holding-a-juicy-beef-burger/
+
+Image: young-lady-holding-huge-burger
+License: CCO (https://creativecommons.org/publicdomain/zero/1.0/)
+Source: https://www.foodiesfeed.com/free-food-photo/young-lady-holding-huge-burger/

BIN
menu/screenshot.png


+ 67 - 0
menu/style.css

@@ -0,0 +1,67 @@
+/*
+Theme Name: MENU
+Theme URI: https://github.com/wordpress/menutheme/
+Author: the WordPress team
+Author URI: https://wordpress.org/themes/
+Description: A simple theme designed to facilitate restaurant owners' experience when building their sites. Is clean, direct, and customizable.
+Requires at least: 6.1
+Tested up to: 6.2
+Requires PHP: 5.7
+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: menu
+Tags: food-and-drink, three-columns, wide-blocks, block-patterns, block-styles, custom-background, custom-colors, custom-header, custom-logo, custom-menu, editor-style, flexible-header, full-site-editing, auto-loading-homepage, post-formats, rtl-language-support, style-variations, theme-options, threaded-comments, translation-ready, restaurants, menu, cuisine, food, lacarte, static, dujour, fixedmenu, bar, cafeteria, coffeeshop
+*/
+
+/*
+ * Font smoothing
+ * https://github.com/WordPress/gutenberg/issues/35934
+ */
+body {
+	-moz-osx-font-smoothing: grayscale;
+	-webkit-font-smoothing: antialiased;
+}
+
+/*
+ * Control the hover stylings of outline block style.
+ * Unnecessary once block styles are configurable via theme.json
+ * https://github.com/WordPress/gutenberg/issues/42794
+ */
+.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background):hover {
+	background-color: var(--wp--preset--color--secondary);
+	color: var(--wp--preset--color--background);
+	border-color: var(--wp--preset--color--secondary);
+}
+
+/**
+ * Currently table styles are only available with 'wp-block-styles' 
+ * theme support (block css) thus the following needs to be included
+ * since 'wp-block-styles' aren't used for this theme.
+ * https://github.com/WordPress/gutenberg/issues/45065
+ */
+.wp-block-table thead {
+	border-bottom: 3px solid;
+}
+.wp-block-table tfoot {
+	border-top: 3px solid;
+}
+.wp-block-table td,
+.wp-block-table th {
+	padding: var(--wp--preset--spacing--30);
+	border: 1px solid;
+	word-break: normal;
+}
+.wp-block-table figcaption {
+	font-size: var(--wp--preset--font-size--small);
+	text-align: center;
+}
+
+/*
+ * Link styles
+ * https://github.com/WordPress/gutenberg/issues/42319
+ */
+a {
+	text-decoration-thickness: .0625em !important;
+	text-underline-offset: .15em;
+}

+ 47 - 0
menu/styles/cyan.json

@@ -0,0 +1,47 @@
+{
+	"settings": {
+		"appearanceTools": true,
+		"color": {
+			"palette": [
+				{
+					"color": "#004390",
+					"name": "Primary",
+					"slug": "primary"
+				},
+				{
+					"color": "#004390",
+					"name": "Secondary",
+					"slug": "secondary"
+				},
+				{
+					"color": "#004390",
+					"name": "Foreground",
+					"slug": "foreground"
+				},
+				{
+					"color": "#bddfd7",
+					"name": "Background",
+					"slug": "background"
+				},
+				{
+					"color": "#f8f8f7",
+					"name": "Tertiary",
+					"slug": "tertiary"
+				}
+			]
+		},
+		"useRootPaddingAwareAlignments": true
+	},
+	"templateParts": [
+		{
+			"area": "header",
+			"name": "header"
+		},
+		{
+			"area": "footer",
+			"name": "footer"
+		}
+	],
+	"version": 2,
+	"$schema": "https://schemas.wp.org/trunk/theme.json"
+}

+ 47 - 0
menu/styles/maroon.json

@@ -0,0 +1,47 @@
+{
+	"settings": {
+		"appearanceTools": true,
+		"color": {
+			"palette": [
+				{
+					"color": "#bd002d",
+					"name": "Primary",
+					"slug": "primary"
+				},
+				{
+					"color": "#bd002d",
+					"name": "Secondary",
+					"slug": "secondary"
+				},
+				{
+					"color": "#bd002d",
+					"name": "Foreground",
+					"slug": "foreground"
+				},
+				{
+					"color": "#f3dabf",
+					"name": "Background",
+					"slug": "background"
+				},
+				{
+					"color": "#f8f8f7",
+					"name": "Tertiary",
+					"slug": "tertiary"
+				}
+			]
+		},
+		"useRootPaddingAwareAlignments": true
+	},
+	"templateParts": [
+		{
+			"area": "header",
+			"name": "header"
+		},
+		{
+			"area": "footer",
+			"name": "footer"
+		}
+	],
+	"version": 2,
+	"$schema": "https://schemas.wp.org/trunk/theme.json"
+}

+ 5 - 0
menu/templates/404.html

@@ -0,0 +1,5 @@
+<!-- wp:template-part {"slug":"header","tagName":"header","align":"full"} /-->
+
+<!-- wp:pattern {"slug":"menu/404"} /-->
+
+<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->

+ 37 - 0
menu/templates/archive.html

@@ -0,0 +1,37 @@
+<!-- wp:template-part {"slug":"header","tagName":"header","align":"full"} /-->
+
+<!-- wp:group {"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:group {"align":"wide","style":{"spacing":{"padding":{"bottom":"40px","top":"64px"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide" style="padding-top:64px;padding-bottom:40px"><!-- wp:query {"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true,"taxQuery":null,"parents":[]},"tagName":"main","align":"wide","layout":{"type":"constrained"}} -->
+<main class="wp-block-query alignwide"><!-- wp:query-title {"type":"archive","align":"wide","style":{"spacing":{"margin":{"bottom":"100px"}}}} /-->
+
+<!-- wp:post-template {"align":"wide"} -->
+<!-- wp:group -->
+<div class="wp-block-group"><!-- wp:post-title {"level":1,"isLink":true} /-->
+
+<!-- wp:post-featured-image {"isLink":true,"style":{"color":{"duotone":["#1d1d1d","#f8f8f7"]}}} /-->
+
+<!-- wp:post-excerpt /-->
+
+<!-- wp:template-part {"slug":"post-meta"} /-->
+
+<!-- wp:spacer {"height":"80px"} -->
+<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer --></div>
+<!-- /wp:group -->
+<!-- /wp:post-template -->
+
+<!-- wp:group {"align":"wide","layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide"><!-- wp:query-pagination {"align":"wide","style":{"typography":{"fontStyle":"normal","fontWeight":"700"}},"layout":{"type":"flex","flexWrap":"wrap"}} -->
+<!-- wp:query-pagination-previous /-->
+
+<!-- wp:query-pagination-numbers /-->
+
+<!-- wp:query-pagination-next /-->
+<!-- /wp:query-pagination --></div>
+<!-- /wp:group --></main>
+<!-- /wp:query --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->

+ 10 - 0
menu/templates/index.html

@@ -0,0 +1,10 @@
+<!-- wp:template-part {"slug":"header","tagName":"header","align":"full"} /-->
+
+<!-- wp:group {"layout":{"type":"constrained"}} -->
+<div class="wp-block-group">
+    <!-- wp:pattern {"slug":"menu/posts-list"} /-->
+    <!-- wp:pattern {"slug":"menu/gallery"} /-->
+</div>
+<!-- /wp:group -->
+
+<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->

+ 15 - 0
menu/templates/page.html

@@ -0,0 +1,15 @@
+<!-- wp:template-part {"slug":"header","tagName":"header","align":"full"} /-->
+
+<!-- wp:group {"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:group {"align":"wide","style":{"spacing":{"padding":{"bottom":"40px","top":"64px"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide" style="padding-top:64px;padding-bottom:40px"><!-- wp:post-title {"level":1,"align":"wide"} /-->
+
+<!-- wp:spacer {"height":"40px","style":{"spacing":{"margin":{"top":"0px","bottom":"0px"}}}} -->
+<div style="margin-top:0px;margin-bottom:0px;height:40px" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:post-content {"lock":{"move":false,"remove":false},"align":"wide","layout":{"type":"default"}} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->

+ 43 - 0
menu/templates/search.html

@@ -0,0 +1,43 @@
+<!-- wp:template-part {"slug":"header","tagName":"header","align":"full"} /-->
+
+<!-- wp:group {"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:group {"align":"wide","style":{"spacing":{"padding":{"bottom":"40px","top":"64px"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide" style="padding-top:64px;padding-bottom:40px"><!-- wp:group {"align":"full","layout":{"type":"constrained","justifyContent":"left"}} -->
+<div class="wp-block-group alignfull"><!-- wp:search {"showLabel":false,"width":100,"widthUnit":"%","buttonText":"Search"} /-->
+
+<!-- wp:spacer {"height":"40px"} -->
+<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer --></div>
+<!-- /wp:group -->
+
+<!-- wp:query {"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true,"taxQuery":null,"parents":[]},"tagName":"main","align":"wide","layout":{"type":"constrained"}} -->
+<main class="wp-block-query alignwide"><!-- wp:post-template {"align":"wide"} -->
+<!-- wp:group -->
+<div class="wp-block-group"><!-- wp:post-title {"level":1,"isLink":true} /-->
+
+<!-- wp:post-featured-image {"isLink":true,"style":{"color":{"duotone":["#1d1d1d","#f8f8f7"]}}} /-->
+
+<!-- wp:post-excerpt /-->
+
+<!-- wp:template-part {"slug":"post-meta","theme":"menu"} /-->
+
+<!-- wp:spacer {"height":"80px"} -->
+<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer --></div>
+<!-- /wp:group -->
+<!-- /wp:post-template -->
+
+<!-- wp:group {"align":"wide","layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide"><!-- wp:query-pagination {"align":"wide","style":{"typography":{"fontStyle":"normal","fontWeight":"700"}},"layout":{"type":"flex","flexWrap":"wrap"}} -->
+<!-- wp:query-pagination-previous /-->
+
+<!-- wp:query-pagination-numbers /-->
+
+<!-- wp:query-pagination-next /-->
+<!-- /wp:query-pagination --></div>
+<!-- /wp:group --></main>
+<!-- /wp:query --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->

+ 23 - 0
menu/templates/single.html

@@ -0,0 +1,23 @@
+<!-- wp:template-part {"slug":"header","tagName":"header","align":"full"} /-->
+
+<!-- wp:group {"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:group {"align":"wide","style":{"spacing":{"padding":{"bottom":"40px","top":"64px"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide" style="padding-top:64px;padding-bottom:40px"><!-- wp:post-title {"level":1,"align":"wide"} /-->
+
+<!-- wp:spacer {"height":"40px","style":{"spacing":{"margin":{"top":"0px","bottom":"0px"}}}} -->
+<div style="margin-top:0px;margin-bottom:0px;height:40px" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:post-content {"lock":{"move":false,"remove":false},"align":"wide","layout":{"type":"default"}} /-->
+
+<!-- wp:template-part {"slug":"post-meta","align":"wide"} /-->
+
+<!-- wp:spacer {"height":"40px","style":{"spacing":{"margin":{"top":"0px","bottom":"0px"}}}} -->
+<div style="margin-top:0px;margin-bottom:0px;height:40px" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:post-featured-image {"aspectRatio":"4/3","align":"full","style":{"color":{"duotone":["#1d1d1d","#f8f8f7"]}}} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->

+ 485 - 0
menu/theme.json

@@ -0,0 +1,485 @@
+{
+	"settings": {
+		"appearanceTools": true,
+		"color": {
+			"palette": [
+				{
+					"color": "#1d1d1d",
+					"name": "Primary",
+					"slug": "primary"
+				},
+				{
+					"color": "#1d1d1d",
+					"name": "Secondary",
+					"slug": "secondary"
+				},
+				{
+					"color": "#1d1d1d",
+					"name": "Foreground",
+					"slug": "foreground"
+				},
+				{
+					"color": "#dfdedb",
+					"name": "Background",
+					"slug": "background"
+				},
+				{
+					"color": "#f8f8f7",
+					"name": "Tertiary",
+					"slug": "tertiary"
+				}
+			]
+		},
+		"layout": {
+			"contentSize": "960px",
+			"wideSize": "1200px"
+		},
+		"spacing": {
+			"units": [
+				"%",
+				"px",
+				"em",
+				"rem",
+				"vh",
+				"vw"
+			]
+		},
+		"typography": {
+			"fluid": true,
+			"fontFamilies": [
+				{
+					"fontFamily": "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif",
+					"name": "System Font",
+					"slug": "system-font"
+				},
+				{
+					"fontFace": [
+						{
+							"fontFamily": "DM Mono",
+							"fontStyle": "normal",
+							"fontWeight": "400",
+							"src": [
+								"file:./assets/fonts/dm-mono_normal_400.ttf"
+							]
+						},
+						{
+							"fontFamily": "DM Mono",
+							"fontStyle": "italic",
+							"fontWeight": "400",
+							"src": [
+								"file:./assets/fonts/dm-mono_italic_400.ttf"
+							]
+						}
+					],
+					"fontFamily": "DM Mono",
+					"slug": "dm-mono"
+				},
+				{
+					"fontFace": [
+						{
+							"fontFamily": "TeXGyreAdventor",
+							"fontStyle": "normal",
+							"fontWeight": "700",
+							"src": [
+								"file:./assets/fonts/texgyreadventor_normal_700.woff"
+							]
+						},
+						{
+							"fontFamily": "TeXGyreAdventor",
+							"fontStyle": "italic",
+							"fontWeight": "700",
+							"src": [
+								"file:./assets/fonts/texgyreadventor_italic_700.woff"
+							]
+						}
+					],
+					"fontFamily": "TeXGyreAdventor",
+					"slug": "texgyreadventor"
+				},
+				{
+					"fontFace": [
+						{
+							"fontFamily": "Fraunces",
+							"fontStyle": "normal",
+							"fontWeight": "600",
+							"src": [
+								"file:./assets/fonts/fraunces_normal_600.ttf"
+							]
+						},
+						{
+							"fontFamily": "Fraunces",
+							"fontStyle": "italic",
+							"fontWeight": "600",
+							"src": [
+								"file:./assets/fonts/fraunces_italic_600.ttf"
+							]
+						}
+					],
+					"fontFamily": "Fraunces",
+					"slug": "fraunces"
+				}
+			],
+			"fontSizes": [
+				{
+					"fluid": {
+						"max": "1.0625rem",
+						"min": "0.825rem"
+					},
+					"name": "Small",
+					"size": "1rem",
+					"slug": "small"
+				},
+				{
+					"fluid": {
+						"max": "1.25rem",
+						"min": "1rem"
+					},
+					"name": "Medium",
+					"size": "1.125rem",
+					"slug": "medium"
+				},
+				{
+					"fluid": {
+						"max": "2rem",
+						"min": "1.75rem"
+					},
+					"name": "Large",
+					"size": "1.75rem",
+					"slug": "large"
+				},
+				{
+					"fluid": {
+						"max": "3rem",
+						"min": "2.5rem"
+					},
+					"name": "Extra Large",
+					"size": "3rem",
+					"slug": "x-large"
+				}
+			]
+		},
+		"useRootPaddingAwareAlignments": true
+	},
+	"styles": {
+		"blocks": {
+			"core/code": {
+				"border": {
+					"color": "var(--wp--preset--color--foreground)",
+					"radius": "0.25rem",
+					"style": "solid",
+					"width": "2px"
+				},
+				"spacing": {
+					"padding": {
+						"bottom": "var(--wp--preset--spacing--50)",
+						"left": "var(--wp--preset--spacing--50)",
+						"right": "var(--wp--preset--spacing--50)",
+						"top": "var(--wp--preset--spacing--50)"
+					}
+				},
+				"typography": {
+					"fontFamily": "monospace"
+				}
+			},
+			"core/comment-author-name": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--small)"
+				}
+			},
+			"core/comment-date": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--small)"
+				}
+			},
+			"core/comment-edit-link": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--small)"
+				}
+			},
+			"core/comment-reply-link": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--small)"
+				}
+			},
+			"core/gallery": {
+				"spacing": {
+					"margin": {
+						"bottom": "var(--wp--preset--spacing--50)"
+					}
+				}
+			},
+			"core/list": {
+				"spacing": {
+					"padding": {
+						"left": "var(--wp--preset--spacing--70)"
+					}
+				}
+			},
+			"core/navigation": {
+				"elements": {
+					"link": {
+						":hover": {
+							"typography": {
+								"textDecoration": "underline"
+							}
+						},
+						"typography": {
+							"textDecoration": "none"
+						}
+					}
+				}
+			},
+			"core/post-author-name": {
+				"elements": {
+					"link": {
+						":hover": {
+							"typography": {
+								"textDecoration": "underline"
+							}
+						},
+						"typography": {
+							"textDecoration": "none"
+						}
+					}
+				}
+			},
+			"core/post-date": {
+				"color": {
+					"text": "var(--wp--preset--color--foreground)"
+				},
+				"elements": {
+					"link": {
+						":hover": {
+							"typography": {
+								"textDecoration": "underline"
+							}
+						},
+						"typography": {
+							"textDecoration": "none"
+						}
+					}
+				},
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--small)"
+				}
+			},
+			"core/post-title": {
+				"elements": {
+					"link": {
+						":hover": {
+							"typography": {
+								"textDecoration": "underline"
+							}
+						},
+						"typography": {
+							"textDecoration": "none"
+						}
+					}
+				},
+				"spacing": {
+					"margin": {
+						"bottom": "0"
+					}
+				}
+			},
+			"core/pullquote": {
+				"border": {
+					"color": "var(--wp--preset--color--foreground)",
+					"style": "solid",
+					"width": "1px 0"
+				},
+				"spacing": {
+					"padding": {
+						"bottom": "var(--wp--preset--spacing--50)",
+						"left": "var(--wp--preset--spacing--50)",
+						"right": "var(--wp--preset--spacing--50)",
+						"top": "var(--wp--preset--spacing--50)"
+					}
+				},
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--large)",
+					"fontStyle": "italic"
+				}
+			},
+			"core/quote": {
+				"border": {
+					"color": "var(--wp--preset--color--primary)",
+					"style": "solid",
+					"width": "0 0 0 1px"
+				},
+				"spacing": {
+					"padding": {
+						"left": "var(--wp--preset--spacing--50)"
+					}
+				},
+				"typography": {
+					"fontStyle": "normal"
+				}
+			},
+			"core/search": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--medium)",
+					"lineHeight": "1.6"
+				}
+			},
+			"core/separator": {
+				"border": {
+					"color": "currentColor",
+					"style": "solid",
+					"width": "0 0 1px 0"
+				},
+				"color": {
+					"text": "var(--wp--preset--color--foreground)"
+				}
+			},
+			"core/site-tagline": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--small)"
+				}
+			},
+			"core/site-title": {
+				"elements": {
+					"link": {
+						":hover": {
+							"typography": {
+								"textDecoration": "underline"
+							}
+						},
+						"typography": {
+							"textDecoration": "none"
+						}
+					}
+				},
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--medium)",
+					"fontWeight": "700"
+				}
+			}
+		},
+		"color": {
+			"background": "var:preset|color|background",
+			"text": "var:preset|color|primary"
+		},
+		"elements": {
+			"button": {
+				":active": {
+					"color": {
+						"background": "var(--wp--preset--color--primary)",
+						"text": "var(--wp--preset--color--background)"
+					}
+				},
+				":focus": {
+					"color": {
+						"background": "var(--wp--preset--color--primary)",
+						"text": "var(--wp--preset--color--background)"
+					},
+					"outline": {
+						"color": "var(--wp--preset--color--primary)",
+						"offset": "2px",
+						"style": "dotted",
+						"width": "1px"
+					}
+				},
+				":hover": {
+					"color": {
+						"background": "var(--wp--preset--color--secondary)",
+						"text": "var(--wp--preset--color--background)"
+					}
+				},
+				"border": {
+					"radius": "0.25rem"
+				},
+				"color": {
+					"background": "var:preset|color|primary",
+					"text": "var:preset|color|tertiary"
+				}
+			},
+			"h1": {
+				"typography": {
+					"fontSize": "80px",
+					"lineHeight": "1"
+				}
+			},
+			"h2": {
+				"typography": {
+					"fontSize": "48px",
+					"lineHeight": "1"
+				}
+			},
+			"h3": {
+				"typography": {
+					"fontSize": "clamp(1.5rem, calc(1.5rem + ((1vw - 0.48rem) * 0.4808)), 1.75rem)"
+				}
+			},
+			"h4": {
+				"typography": {
+					"fontSize": "clamp(1.25rem, calc(1.25rem + ((1vw - 0.48rem) * 0.4808)), 1.5rem)"
+				}
+			},
+			"h5": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--medium)"
+				}
+			},
+			"h6": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--small)"
+				}
+			},
+			"heading": {
+				"color": {
+					"text": "var:preset|color|primary"
+				},
+				"typography": {
+					"fontFamily": "var:preset|font-family|texgyreadventor",
+					"fontWeight": "400",
+					"lineHeight": "1.125"
+				}
+			},
+			"link": {
+				":hover": {
+					"color": {
+						"text": "var:preset|color|primary"
+					},
+					"typography": {
+						"textDecoration": "none"
+					}
+				},
+				"color": {
+					"text": "var:preset|color|primary"
+				},
+				"typography": {
+					"lineHeight": "1.2"
+				}
+			}
+		},
+		"spacing": {
+			"blockGap": "1rem",
+			"padding": {
+				"bottom": "0px",
+				"left": "var(--wp--preset--spacing--50)",
+				"right": "var(--wp--preset--spacing--50)",
+				"top": "0px"
+			}
+		},
+		"typography": {
+			"fontFamily": "var:preset|font-family|dm-mono",
+			"fontSize": "1.4rem",
+			"fontStyle": "normal",
+			"fontWeight": "500",
+			"lineHeight": "1.5"
+		}
+	},
+	"templateParts": [
+		{
+			"area": "header",
+			"name": "header"
+		},
+		{
+			"area": "footer",
+			"name": "footer"
+		}
+	],
+	"version": 2,
+	"$schema": "https://schemas.wp.org/trunk/theme.json"
+}