Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions src/wp-admin/css/view-transitions.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
@view-transition {
navigation: auto;
}

#adminmenu > .menu-top {
view-transition-name: attr(id type(<custom-ident>), none);
}
1 change: 1 addition & 0 deletions src/wp-includes/default-filters.php
Original file line number Diff line number Diff line change
Expand Up @@ -599,6 +599,7 @@
add_action( 'admin_enqueue_scripts', 'wp_localize_jquery_ui_datepicker', 1000 );
add_action( 'admin_enqueue_scripts', 'wp_common_block_scripts_and_styles' );
add_action( 'admin_enqueue_scripts', 'wp_enqueue_command_palette_assets' );
add_action( 'admin_enqueue_scripts', 'wp_enqueue_view_transitions_admin_css' );
add_action( 'enqueue_block_assets', 'wp_enqueue_classic_theme_styles' );
add_action( 'enqueue_block_assets', 'wp_enqueue_registered_block_scripts_and_styles' );
add_action( 'enqueue_block_assets', 'enqueue_block_styles_assets', 30 );
Expand Down
3 changes: 3 additions & 0 deletions src/wp-includes/script-loader.php
Original file line number Diff line number Diff line change
Expand Up @@ -1696,6 +1696,9 @@ function wp_default_styles( $styles ) {
$wp_edit_blocks_dependencies
);

$styles->add( 'wp-view-transitions-admin', false );
$styles->add_inline_style( 'wp-view-transitions-admin', wp_get_view_transitions_admin_css() );

$package_styles = array(
'block-editor' => array( 'wp-components', 'wp-preferences' ),
'block-library' => array(),
Expand Down
30 changes: 30 additions & 0 deletions src/wp-includes/view-transitions.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?php
/**
* View Transitions API.
*
* @package WordPress
* @subpackage View Transitions
* @since 7.0.0
*/

/**
* Enqueues View Transitions CSS for the admin.
*
* @since 7.0.0
*/
function wp_enqueue_view_transitions_admin_css(): void {
wp_enqueue_style( 'wp-view-transitions-admin' );
}

/**
* Gets the CSS for View Transitions in the admin.
*
* @since 7.0.0
*
* @return string The CSS.
*/
function wp_get_view_transitions_admin_css(): string {
$affix = SCRIPT_DEBUG ? '' : '.min';
$path = ABSPATH . "wp-admin/css/view-transitions{$affix}.css";
return file_get_contents( $path );
}
1 change: 1 addition & 0 deletions src/wp-settings.php
Original file line number Diff line number Diff line change
Expand Up @@ -429,6 +429,7 @@
require ABSPATH . WPINC . '/class-wp-url-pattern-prefixer.php';
require ABSPATH . WPINC . '/class-wp-speculation-rules.php';
require ABSPATH . WPINC . '/speculative-loading.php';
require ABSPATH . WPINC . '/view-transitions.php';

add_action( 'after_setup_theme', array( wp_script_modules(), 'add_hooks' ) );
add_action( 'after_setup_theme', array( wp_interactivity(), 'add_hooks' ) );
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
<?php
/**
* Tests for the wp_enqueue_view_transitions_admin_css() function.
*
* @package WordPress
* @subpackage View Transitions
*/

/**
* @group view-transitions
* @covers ::wp_enqueue_view_transitions_admin_css
*/
class Tests_View_Transitions_wpEnqueueViewTransitionsAdminCss extends WP_UnitTestCase {

private $original_wp_styles = null;

public function set_up() {
global $wp_styles;

parent::set_up();
$this->original_wp_styles = $wp_styles;
}

public function tear_down() {
global $wp_styles;

$wp_styles = $this->original_wp_styles;
parent::tear_down();
}

/**
* Tests that the hook for enqueuing admin view transitions CSS is set up.
*
* @ticket 64470
*/
public function test_hook() {
$this->assertSame( 10, has_action( 'admin_enqueue_scripts', 'wp_enqueue_view_transitions_admin_css' ) );
}

/**
* Tests that the admin view transitions style handle includes the inline CSS.
*
* @ticket 64470
*/
public function test_inline_css_included() {
$inline_css = wp_styles()->get_data( 'wp-view-transitions-admin', 'after' );
$this->assertIsArray( $inline_css );
$this->assertContains( wp_get_view_transitions_admin_css(), $inline_css );
}

/**
* Tests enqueuing admin view transitions CSS.
*
* @ticket 64470
*/
public function test_wp_enqueue_view_transitions_admin_css() {
$this->assertFalse( wp_style_is( 'wp-view-transitions-admin' ) );

wp_enqueue_view_transitions_admin_css();
$this->assertTrue( wp_style_is( 'wp-view-transitions-admin' ) );
}
}
Loading