diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/SettingsNavigation.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/SettingsNavigation.kt
index e870ce05b..19358a0e9 100644
--- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/SettingsNavigation.kt
+++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/SettingsNavigation.kt
@@ -17,6 +17,7 @@ import com.x8bit.bitwarden.ui.platform.feature.settings.other.navigateToOther
 import com.x8bit.bitwarden.ui.platform.feature.settings.other.otherDestination
 import com.x8bit.bitwarden.ui.platform.feature.settings.vault.navigateToVault
 import com.x8bit.bitwarden.ui.platform.feature.settings.vault.vaultDestination
+import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
 
 const val SETTINGS_GRAPH_ROUTE: String = "settings_graph"
 private const val SETTINGS_ROUTE: String = "settings"
@@ -31,7 +32,13 @@ fun NavGraphBuilder.settingsGraph(
         startDestination = SETTINGS_ROUTE,
         route = SETTINGS_GRAPH_ROUTE,
     ) {
-        composable(SETTINGS_ROUTE) {
+        composable(
+            route = SETTINGS_ROUTE,
+            enterTransition = TransitionProviders.Enter.stay,
+            exitTransition = TransitionProviders.Exit.pushLeft,
+            popEnterTransition = TransitionProviders.Enter.pushRight,
+            popExitTransition = TransitionProviders.Exit.fadeOut,
+        ) {
             SettingsScreen(
                 onNavigateToAbout = { navController.navigateToAbout() },
                 onNavigateToAccountSecurity = { navController.navigateToAccountSecurity() },
diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutNavigation.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutNavigation.kt
index 318619191..48ba740de 100644
--- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutNavigation.kt
+++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutNavigation.kt
@@ -4,6 +4,7 @@ import androidx.navigation.NavController
 import androidx.navigation.NavGraphBuilder
 import androidx.navigation.NavOptions
 import androidx.navigation.compose.composable
+import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
 
 private const val ABOUT_ROUTE = "settings_about"
 
@@ -13,7 +14,13 @@ private const val ABOUT_ROUTE = "settings_about"
 fun NavGraphBuilder.aboutDestination(
     onNavigateBack: () -> Unit,
 ) {
-    composable(ABOUT_ROUTE) {
+    composable(
+        route = ABOUT_ROUTE,
+        enterTransition = TransitionProviders.Enter.pushLeft,
+        exitTransition = TransitionProviders.Exit.pushLeft,
+        popEnterTransition = TransitionProviders.Enter.pushLeft,
+        popExitTransition = TransitionProviders.Exit.pushRight,
+    ) {
         AboutScreen(onNavigateBack = onNavigateBack)
     }
 }
diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityNavigation.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityNavigation.kt
index d12fe9a0b..97aea094b 100644
--- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityNavigation.kt
+++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityNavigation.kt
@@ -4,6 +4,7 @@ import androidx.navigation.NavController
 import androidx.navigation.NavGraphBuilder
 import androidx.navigation.NavOptions
 import androidx.navigation.compose.composable
+import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
 
 private const val ACCOUNT_SECURITY_ROUTE = "settings_account_security"
 
@@ -13,7 +14,13 @@ private const val ACCOUNT_SECURITY_ROUTE = "settings_account_security"
 fun NavGraphBuilder.accountSecurityDestination(
     onNavigateBack: () -> Unit,
 ) {
-    composable(ACCOUNT_SECURITY_ROUTE) {
+    composable(
+        route = ACCOUNT_SECURITY_ROUTE,
+        enterTransition = TransitionProviders.Enter.pushLeft,
+        exitTransition = TransitionProviders.Exit.pushLeft,
+        popEnterTransition = TransitionProviders.Enter.pushLeft,
+        popExitTransition = TransitionProviders.Exit.pushRight,
+    ) {
         AccountSecurityScreen(onNavigateBack = onNavigateBack)
     }
 }
diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/appearance/AppearanceNavigation.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/appearance/AppearanceNavigation.kt
index a5a4f5587..d01ca794d 100644
--- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/appearance/AppearanceNavigation.kt
+++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/appearance/AppearanceNavigation.kt
@@ -4,6 +4,7 @@ import androidx.navigation.NavController
 import androidx.navigation.NavGraphBuilder
 import androidx.navigation.NavOptions
 import androidx.navigation.compose.composable
+import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
 
 private const val APPEARANCE_ROUTE = "settings_appearance"
 
@@ -13,7 +14,13 @@ private const val APPEARANCE_ROUTE = "settings_appearance"
 fun NavGraphBuilder.appearanceDestination(
     onNavigateBack: () -> Unit,
 ) {
-    composable(APPEARANCE_ROUTE) {
+    composable(
+        route = APPEARANCE_ROUTE,
+        enterTransition = TransitionProviders.Enter.pushLeft,
+        exitTransition = TransitionProviders.Exit.pushLeft,
+        popEnterTransition = TransitionProviders.Enter.pushLeft,
+        popExitTransition = TransitionProviders.Exit.pushRight,
+    ) {
         AppearanceScreen(onNavigateBack = onNavigateBack)
     }
 }
diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/AutoFillNavigation.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/AutoFillNavigation.kt
index ad28f72d7..5f1f05bb6 100644
--- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/AutoFillNavigation.kt
+++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/AutoFillNavigation.kt
@@ -4,6 +4,7 @@ import androidx.navigation.NavController
 import androidx.navigation.NavGraphBuilder
 import androidx.navigation.NavOptions
 import androidx.navigation.compose.composable
+import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
 
 private const val AUTO_FILL_ROUTE = "settings_auto_fill"
 
@@ -13,7 +14,13 @@ private const val AUTO_FILL_ROUTE = "settings_auto_fill"
 fun NavGraphBuilder.autoFillDestination(
     onNavigateBack: () -> Unit,
 ) {
-    composable(AUTO_FILL_ROUTE) {
+    composable(
+        route = AUTO_FILL_ROUTE,
+        enterTransition = TransitionProviders.Enter.pushLeft,
+        exitTransition = TransitionProviders.Exit.pushLeft,
+        popEnterTransition = TransitionProviders.Enter.pushLeft,
+        popExitTransition = TransitionProviders.Exit.pushRight,
+    ) {
         AutoFillScreen(onNavigateBack = onNavigateBack)
     }
 }
diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/other/OtherNavigation.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/other/OtherNavigation.kt
index 0d736b7f7..7fa24dcf5 100644
--- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/other/OtherNavigation.kt
+++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/other/OtherNavigation.kt
@@ -4,6 +4,7 @@ import androidx.navigation.NavController
 import androidx.navigation.NavGraphBuilder
 import androidx.navigation.NavOptions
 import androidx.navigation.compose.composable
+import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
 
 private const val OTHER_ROUTE = "settings_other"
 
@@ -13,7 +14,13 @@ private const val OTHER_ROUTE = "settings_other"
 fun NavGraphBuilder.otherDestination(
     onNavigateBack: () -> Unit,
 ) {
-    composable(OTHER_ROUTE) {
+    composable(
+        route = OTHER_ROUTE,
+        enterTransition = TransitionProviders.Enter.pushLeft,
+        exitTransition = TransitionProviders.Exit.pushLeft,
+        popEnterTransition = TransitionProviders.Enter.pushLeft,
+        popExitTransition = TransitionProviders.Exit.pushRight,
+    ) {
         OtherScreen(onNavigateBack = onNavigateBack)
     }
 }
diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/vault/VaultNavigation.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/vault/VaultNavigation.kt
index 67e4249fd..f575538ac 100644
--- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/vault/VaultNavigation.kt
+++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/vault/VaultNavigation.kt
@@ -4,6 +4,7 @@ import androidx.navigation.NavController
 import androidx.navigation.NavGraphBuilder
 import androidx.navigation.NavOptions
 import androidx.navigation.compose.composable
+import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
 
 private const val VAULT_ROUTE = "settings_vault"
 
@@ -13,7 +14,13 @@ private const val VAULT_ROUTE = "settings_vault"
 fun NavGraphBuilder.vaultDestination(
     onNavigateBack: () -> Unit,
 ) {
-    composable(VAULT_ROUTE) {
+    composable(
+        route = VAULT_ROUTE,
+        enterTransition = TransitionProviders.Enter.pushLeft,
+        exitTransition = TransitionProviders.Exit.pushLeft,
+        popEnterTransition = TransitionProviders.Enter.pushLeft,
+        popExitTransition = TransitionProviders.Exit.pushRight,
+    ) {
         VaultScreen(onNavigateBack = onNavigateBack)
     }
 }
diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/Transition.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/Transition.kt
index c038386bc..245ff7bb3 100644
--- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/Transition.kt
+++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/Transition.kt
@@ -57,6 +57,26 @@ object TransitionProviders {
                 .takeIf { isSameGraphNavigation }
         }
 
+        /**
+         * Slides the new screen in from the left of the screen.
+         */
+        val pushLeft: EnterTransitionProvider = {
+            RootTransitionProviders
+                .Enter
+                .pushLeft(this)
+                .takeIf { isSameGraphNavigation }
+        }
+
+        /**
+         * Slides the new screen in from the right of the screen.
+         */
+        val pushRight: EnterTransitionProvider = {
+            RootTransitionProviders
+                .Enter
+                .pushRight(this)
+                .takeIf { isSameGraphNavigation }
+        }
+
         /**
          * Slides the new screen in from the bottom of the screen.
          *
@@ -103,6 +123,26 @@ object TransitionProviders {
                 .takeIf { isSameGraphNavigation }
         }
 
+        /**
+         * Slides the current screen out to the left of the screen.
+         */
+        val pushLeft: ExitTransitionProvider = {
+            RootTransitionProviders
+                .Exit
+                .pushLeft(this)
+                .takeIf { isSameGraphNavigation }
+        }
+
+        /**
+         * Slides the current screen out to the right of the screen.
+         */
+        val pushRight: ExitTransitionProvider = {
+            RootTransitionProviders
+                .Exit
+                .pushRight(this)
+                .takeIf { isSameGraphNavigation }
+        }
+
         /**
          * Slides the current screen down to the bottom of the screen.
          *
@@ -149,6 +189,26 @@ object RootTransitionProviders {
             fadeIn(tween(DEFAULT_TRANSITION_TIME_MS))
         }
 
+        /**
+         * Slides the new screen in from the left of the screen.
+         */
+        val pushLeft: NonNullEnterTransitionProvider = {
+            slideIntoContainer(
+                towards = AnimatedContentTransitionScope.SlideDirection.Left,
+                animationSpec = tween(DEFAULT_TRANSITION_TIME_MS),
+            ) + fadeIn(tween(DEFAULT_TRANSITION_TIME_MS))
+        }
+
+        /**
+         * Slides the new screen in from the right of the screen.
+         */
+        val pushRight: NonNullEnterTransitionProvider = {
+            slideIntoContainer(
+                towards = AnimatedContentTransitionScope.SlideDirection.Right,
+                animationSpec = tween(DEFAULT_TRANSITION_TIME_MS),
+            ) + fadeIn(tween(DEFAULT_TRANSITION_TIME_MS))
+        }
+
         /**
          * Slides the new screen in from the bottom of the screen.
          */
@@ -183,6 +243,26 @@ object RootTransitionProviders {
             fadeOut(tween(DEFAULT_TRANSITION_TIME_MS))
         }
 
+        /**
+         * Slides the current screen out to the left of the screen.
+         */
+        val pushLeft: NonNullExitTransitionProvider = {
+            slideOutOfContainer(
+                towards = AnimatedContentTransitionScope.SlideDirection.Left,
+                animationSpec = tween(DEFAULT_TRANSITION_TIME_MS),
+            ) + fadeOut(tween(DEFAULT_TRANSITION_TIME_MS))
+        }
+
+        /**
+         * Slides the current screen out to the right of the screen.
+         */
+        val pushRight: NonNullExitTransitionProvider = {
+            slideOutOfContainer(
+                towards = AnimatedContentTransitionScope.SlideDirection.Right,
+                animationSpec = tween(DEFAULT_TRANSITION_TIME_MS),
+            ) + fadeOut(tween(DEFAULT_TRANSITION_TIME_MS))
+        }
+
         /**
          * Slides the current screen down to the bottom of the screen.
          */