Index: src/wp-admin/css/login.css
===================================================================
--- src/wp-admin/css/login.css	(revision 51726)
+++ src/wp-admin/css/login.css	(working copy)
@@ -5,6 +5,10 @@
 	padding: 0;
 }
 
+.admin-bar {
+	height: 100% - var(--wp-admin--admin-bar--height, 0px);
+}
+
 body {
 	background: #f0f0f1;
 	min-width: 0;
Index: src/wp-includes/css/admin-bar.css
===================================================================
--- src/wp-includes/css/admin-bar.css	(revision 51726)
+++ src/wp-includes/css/admin-bar.css	(working copy)
@@ -54,7 +54,8 @@
 #wpadminbar a,
 #wpadminbar a:hover,
 #wpadminbar a img,
-#wpadminbar a img:hover {
+#wpadminbar a img:hover,
+#wpadminbar form {
 	border: none;
 	text-decoration: none;
 	background: none;
@@ -653,6 +654,7 @@
 	height: 24px;
 	width: 24px;
 	max-width: none;
+	min-height: 24px;
 	padding: 0 3px 0 24px;
 	margin: 0;
 	color: #c3c4c7;
Index: src/wp-login.php
===================================================================
--- src/wp-login.php	(revision 51726)
+++ src/wp-login.php	(working copy)
@@ -47,6 +47,13 @@
 
 	add_action( 'login_head', 'wp_login_viewport_meta' );
 
+	// Add toolbar if show_admin_bar filter returns true. Filter is documented in wp-includes/admin-bar.php.
+	$show_toolbar = apply_filters( 'show_admin_bar', false ) && ! $interim_login;
+	if ( $show_toolbar ) {
+		add_action( 'login_head', '_wp_admin_bar_init' );
+		add_action( 'login_header', 'wp_admin_bar_render', 0 );
+	}
+
 	if ( ! is_wp_error( $wp_error ) ) {
 		$wp_error = new WP_Error();
 	}
@@ -87,7 +94,7 @@
 	$login_title = apply_filters( 'login_title', $login_title, $title );
 
 	?><!DOCTYPE html>
-	<html <?php language_attributes(); ?>>
+	<html <?php language_attributes(); if ( $show_toolbar ) { echo ' class="admin-bar"'; } ?>>
 	<head>
 	<meta http-equiv="Content-Type" content="<?php bloginfo( 'html_type' ); ?>; charset=<?php bloginfo( 'charset' ); ?>" />
 	<title><?php echo $login_title; ?></title>
