Skip to content

Commit db26faa

Browse files
committed
Editor: Navigation overlay - patterns and template part definition.
Adds a new template part for the Navigation block called WP_TEMPLATE_PART_AREA_NAVIGATION_OVERLAY, corresponding area definition in block-template-utils.php to support navigation overlay template parts. Also adds the navigation block pattern category registration in block-patterns.php and five new navigation overlay block patterns. Reviewed by mikachan, get_dave. Props onemaggie, scruffian, get_dave, mikachan, wildworks. Fixes #64589. git-svn-id: https://develop.svn.wordpress.org/trunk@61609 602fd350-edb4-49c9-b593-d223f7449a82
1 parent 3dbdf1a commit db26faa

7 files changed

Lines changed: 157 additions & 0 deletions

src/wp-includes/block-patterns.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,11 @@ function _register_core_block_patterns_and_categories() {
7979
'query-grid-posts',
8080
'query-large-title-posts',
8181
'query-offset-posts',
82+
'navigation-overlay',
83+
'navigation-overlay-black-bg',
84+
'navigation-overlay-accent-bg',
85+
'navigation-overlay-centered',
86+
'navigation-overlay-centered-with-extras',
8287
);
8388

8489
foreach ( $core_block_patterns as $core_block_pattern ) {
@@ -228,6 +233,13 @@ function _register_core_block_patterns_and_categories() {
228233
'description' => __( 'A variety of header designs displaying your site title and navigation.' ),
229234
)
230235
);
236+
register_block_pattern_category(
237+
'navigation',
238+
array(
239+
'label' => _x( 'Navigation', 'Block pattern category' ),
240+
'description' => __( 'A variety of designs displaying site navigation.' ),
241+
)
242+
);
231243
}
232244

233245
/**
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?php
2+
/**
3+
* Navigation: Overlay with orange background.
4+
*
5+
* @package WordPress
6+
*/
7+
8+
return array(
9+
'title' => _x( 'Overlay with orange background', 'Block pattern title' ),
10+
'blockTypes' => array( 'core/template-part/navigation-overlay' ),
11+
'categories' => array( 'navigation' ),
12+
'content' => '<!-- wp:group {"metadata":{"name":"' . esc_attr( __( 'Navigation Overlay' ) ) . '"},"style":{"spacing":{"padding":{"right":"var:preset|spacing|50","left":"var:preset|spacing|50","top":"var:preset|spacing|50","bottom":"var:preset|spacing|50"}},"color":{"background":"#f57600"},"dimensions":{"minHeight":"100vh"},"elements":{"link":{"color":{"text":"var:preset|color|black"}}}},"textColor":"black","layout":{"type":"grid","columnCount":2,"minimumColumnWidth":"600px","rowCount":2,"isManualPlacement":true}} -->
13+
<div class="wp-block-group has-black-color has-text-color has-background has-link-color" style="background-color:#f57600;min-height:100vh;padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--50)"><!-- wp:group {"style":{"layout":{"columnStart":1,"rowStart":1}},"layout":{"type":"default"}} -->
14+
<div class="wp-block-group"><!-- wp:navigation-overlay-close {"style":{"layout":{"columnStart":1,"rowStart":1}}} /--></div>
15+
<!-- /wp:group -->
16+
17+
<!-- wp:group {"style":{"typography":{"lineHeight":"0.8"},"layout":{"columnStart":1,"rowStart":2}},"layout":{"type":"flex","orientation":"vertical","verticalAlignment":"bottom"}} -->
18+
<div class="wp-block-group" style="line-height:0.8"><!-- wp:site-title {"fontSize":"large"} /-->
19+
20+
<!-- wp:site-tagline {"style":{"typography":{"lineHeight":"1.2"},"elements":{"link":{"color":{"text":"#000000a6"}}},"color":{"text":"#000000a6"}},"fontSize":"large"} /--></div>
21+
<!-- /wp:group -->
22+
23+
<!-- wp:spacer {"height":"10rem","style":{"layout":{"columnStart":2,"rowStart":2}}} -->
24+
<div style="height:10rem" aria-hidden="true" class="wp-block-spacer"></div>
25+
<!-- /wp:spacer -->
26+
27+
<!-- wp:navigation {"overlayMenu":"never","style":{"typography":{"lineHeight":"1"},"layout":{"columnStart":2,"rowStart":1}},"fontSize":"large","layout":{"type":"flex","orientation":"vertical"}} /--></div>
28+
<!-- /wp:group -->',
29+
);
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
/**
3+
* Navigation: Overlay with black background.
4+
*
5+
* @package WordPress
6+
*/
7+
8+
return array(
9+
'title' => _x( 'Overlay with black background', 'Block pattern title' ),
10+
'blockTypes' => array( 'core/template-part/navigation-overlay' ),
11+
'categories' => array( 'navigation' ),
12+
'content' => '<!-- wp:group {"metadata":{"name":"' . esc_attr( __( 'Navigation Overlay' ) ) . '"},"style":{"spacing":{"padding":{"right":"var:preset|spacing|40","left":"var:preset|spacing|40","top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}},"dimensions":{"minHeight":"100vh"},"elements":{"link":{"color":{"text":"var:preset|color|white"}}},"color":{"background":"#000000"}},"textColor":"white","layout":{"type":"default"}} -->
13+
<div class="wp-block-group has-white-color has-text-color has-background has-link-color" style="background-color:#000000;min-height:100vh;padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)"><!-- wp:group {"align":"wide","style":{"spacing":{"padding":{"top":"var:preset|spacing|30","bottom":"var:preset|spacing|30","left":"var:preset|spacing|30","right":"var:preset|spacing|30"}}},"layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"space-between","verticalAlignment":"top"}} -->
14+
<div class="wp-block-group alignwide" style="padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)"><!-- wp:navigation {"style":{"typography":{"lineHeight":"1"}},"fontSize":"xx-large","layout":{"type":"flex","orientation":"vertical"}} /-->
15+
16+
<!-- wp:navigation-overlay-close {"displayMode":"text","style":{"elements":{"link":{"color":{"text":"var:preset|color|white"}}},"spacing":{"padding":{"top":"0","bottom":"0","left":"0","right":"0"}}},"textColor":"white"} /--></div>
17+
<!-- /wp:group --></div>
18+
<!-- /wp:group -->',
19+
);
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<?php
2+
/**
3+
* Navigation: Overlay with site info and CTA.
4+
*
5+
* @package WordPress
6+
*/
7+
8+
return array(
9+
'title' => _x( 'Overlay with site info and CTA', 'Block pattern title' ),
10+
'blockTypes' => array( 'core/template-part/navigation-overlay' ),
11+
'categories' => array( 'navigation' ),
12+
'content' => '<!-- wp:group {"metadata":{"name":"' . esc_attr( __( 'Navigation Overlay' ) ) . '"},"style":{"spacing":{"padding":{"right":"var:preset|spacing|40","left":"var:preset|spacing|40","top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}},"dimensions":{"minHeight":"100vh"},"elements":{"link":{"color":{"text":"var:preset|color|black"}}},"backgroundColor":"white","textColor":"black","layout":{"type":"default"}} -->
13+
<div class="wp-block-group has-black-color has-white-background-color has-text-color has-background has-link-color" style="min-height:100vh;padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)"><!-- wp:group {"align":"wide","layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"right"}} -->
14+
<div class="wp-block-group alignwide"><!-- wp:navigation-overlay-close /--></div>
15+
<!-- /wp:group -->
16+
17+
<!-- wp:group {"align":"wide","layout":{"type":"constrained"}} -->
18+
<div class="wp-block-group alignwide"><!-- wp:site-logo {"width":80,"isLink":false,"align":"center","className":"is-style-rounded"} /-->
19+
20+
<!-- wp:site-title {"textAlign":"center","fontSize":"large"} /-->
21+
22+
<!-- wp:site-tagline {"textAlign":"center","fontSize":"medium"} /-->
23+
24+
<!-- wp:group {"style":{"spacing":{"padding":{"top":"var:preset|spacing|50","bottom":"var:preset|spacing|50"}}},"layout":{"type":"constrained"}} -->
25+
<div class="wp-block-group" style="padding-top:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50)"><!-- wp:navigation {"overlayMenu":"never","style":{"typography":{"textTransform":"uppercase"}},"fontSize":"x-large","layout":{"type":"flex","orientation":"vertical","justifyContent":"center"}} /--></div>
26+
<!-- /wp:group -->
27+
28+
<!-- wp:group {"align":"full","style":{"border":{"top":{"color":"#eeeeee","width":"1px"}},"spacing":{"padding":{"top":"var:preset|spacing|60","bottom":"var:preset|spacing|60"}}},"layout":{"type":"constrained"}} -->
29+
<div class="wp-block-group alignfull" style="border-top-color:#eeeeee;border-top-width:1px;padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60)"><!-- wp:paragraph {"style":{"typography":{"textAlign":"center"}}} -->
30+
<p class="has-text-align-center">' . esc_html( __( 'Find out how we can help your business.' ) ) . ' <a href="#">' . esc_html( __( 'Learn more' ) ) . '</a></p>
31+
<!-- /wp:paragraph -->
32+
33+
<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"}} -->
34+
<div class="wp-block-buttons"><!-- wp:button {"style":{"typography":{"textTransform":"uppercase"}}} -->
35+
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" style="text-transform:uppercase">' . esc_html( __( 'Get started today!' ) ) . '</a></div>
36+
<!-- /wp:button -->
37+
38+
<!-- wp:button -->
39+
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button"></a></div>
40+
<!-- /wp:button --></div>
41+
<!-- /wp:buttons --></div>
42+
<!-- /wp:group --></div>
43+
<!-- /wp:group --></div>
44+
<!-- /wp:group -->',
45+
);
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
/**
3+
* Navigation: Overlay with centered navigation.
4+
*
5+
* @package WordPress
6+
*/
7+
8+
return array(
9+
'title' => _x( 'Overlay with centered navigation', 'Block pattern title' ),
10+
'blockTypes' => array( 'core/template-part/navigation-overlay' ),
11+
'categories' => array( 'navigation' ),
12+
'content' => '<!-- wp:group {"metadata":{"name":"' . esc_attr( __( 'Navigation Overlay' ) ) . '"},"style":{"spacing":{"padding":{"right":"var:preset|spacing|40","left":"var:preset|spacing|40","top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}},"dimensions":{"minHeight":"100vh"},"elements":{"link":{"color":{"text":"var:preset|color|black"}}},"color":{"background":"#eeeeee"}},"textColor":"black","layout":{"type":"default"}} -->
13+
<div class="wp-block-group has-black-color has-text-color has-background has-link-color" style="background-color:#eeeeee;min-height:100vh;padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)"><!-- wp:group {"align":"wide","layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"right"}} -->
14+
<div class="wp-block-group alignwide"><!-- wp:navigation-overlay-close /--></div>
15+
<!-- /wp:group -->
16+
17+
<!-- wp:group {"align":"wide","style":{"dimensions":{"minHeight":"90vh"}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"center","verticalAlignment":"center"}} -->
18+
<div class="wp-block-group alignwide" style="min-height:90vh"><!-- wp:navigation {"layout":{"type":"flex","orientation":"vertical","justifyContent":"center"}} /--></div>
19+
<!-- /wp:group --></div>
20+
<!-- /wp:group -->',
21+
);
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
/**
3+
* Navigation: Overlay.
4+
*
5+
* @package WordPress
6+
*/
7+
8+
return array(
9+
'title' => _x( 'Navigation Overlay', 'Block pattern title' ),
10+
'blockTypes' => array( 'core/template-part/navigation-overlay' ),
11+
'categories' => array( 'navigation' ),
12+
'content' => '<!-- wp:group {"metadata":{"name":"' . esc_attr( __( 'Navigation Overlay' ) ) . '"},"style":{"spacing":{"padding":{"right":"var:preset|spacing|40","left":"var:preset|spacing|40","top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}},"dimensions":{"minHeight":"100vh"}},"backgroundColor":"white","layout":{"type":"default"}} -->
13+
<div class="wp-block-group has-white-background-color has-background" style="min-height:100vh;padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)"><!-- wp:group {"align":"wide","layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"right"}} -->
14+
<div class="wp-block-group alignwide"><!-- wp:navigation-overlay-close /--></div>
15+
<!-- /wp:group -->
16+
17+
<!-- wp:navigation {"layout":{"type":"flex","orientation":"vertical"},"showSubmenuIcon":false,"submenuVisibility":"always"} /--></div>
18+
<!-- /wp:group -->',
19+
);

src/wp-includes/block-template-utils.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
if ( ! defined( 'WP_TEMPLATE_PART_AREA_UNCATEGORIZED' ) ) {
2020
define( 'WP_TEMPLATE_PART_AREA_UNCATEGORIZED', 'uncategorized' );
2121
}
22+
if ( ! defined( 'WP_TEMPLATE_PART_AREA_NAVIGATION_OVERLAY' ) ) {
23+
define( 'WP_TEMPLATE_PART_AREA_NAVIGATION_OVERLAY', 'navigation-overlay' );
24+
}
2225

2326
/**
2427
* For backward compatibility reasons,
@@ -96,6 +99,15 @@ function get_allowed_block_template_part_areas() {
9699
'icon' => 'footer',
97100
'area_tag' => 'footer',
98101
),
102+
array(
103+
'area' => WP_TEMPLATE_PART_AREA_NAVIGATION_OVERLAY,
104+
'label' => _x( 'Navigation Overlay', 'template part area' ),
105+
'description' => __(
106+
'The Navigation Overlay template defines a full-screen overlay area that typically contains navigation links and can be toggled on and off.'
107+
),
108+
'icon' => 'overlay',
109+
'area_tag' => 'div',
110+
),
99111
);
100112

101113
/**

0 commit comments

Comments
 (0)