diff --git a/view_transitions.module b/view_transitions.module
index f85e4d9e957c83070946e581a29aae0e0b92ef8a..c19cb38a1d896ca4e14ec687f9093b8a47cdbfc8 100644
--- a/view_transitions.module
+++ b/view_transitions.module
@@ -31,7 +31,7 @@ function view_transitions_preprocess_html(&$variables) {
   $page_transitions = \Drupal::config('view_transitions.settings')->get('page_transitions');
   $animation_type = \Drupal::config('view_transitions.settings')->get('animation_type');
   $transition_in_admin = \Drupal::config('view_transitions.settings')->get('transition_in_admin');
-  $is_admin = \Drupal::service('router.admin_context')->isAdminRoute();
+  $is_admin = view_transitions_is_admin();
 
   // Don't transition on admin pages unless explicitly enabled
   if (!$is_admin || ($is_admin && $transition_in_admin)) {
@@ -58,4 +58,17 @@ function view_transitions_preprocess_html(&$variables) {
       $variables['html_attributes']->addClass('view-transition-none');
     }
   }
+}
+
+/**
+ * Determine if the user is at an admin route, or a non-admin route using the toolbar
+ */
+function view_transitions_is_admin() {
+  if (\Drupal::service('router.admin_context')->isAdminRoute()) {
+    return true;
+  }
+  if (\Drupal::currentUser()->isAuthenticated() && \Drupal::currentUser()->hasPermission('access toolbar')) {
+    return true;
+  }
+  return false;
 }
\ No newline at end of file