diff --git a/packages/docusaurus-theme-classic/src/theme/ErrorPageContent.tsx b/packages/docusaurus-theme-classic/src/theme/ErrorPageContent.tsx
index 6ee3b9f8b3..b4134fa744 100644
--- a/packages/docusaurus-theme-classic/src/theme/ErrorPageContent.tsx
+++ b/packages/docusaurus-theme-classic/src/theme/ErrorPageContent.tsx
@@ -7,7 +7,10 @@
import React from 'react';
import Translate from '@docusaurus/Translate';
-import {ErrorBoundaryTryAgainButton} from '@docusaurus/theme-common';
+import {
+ ErrorBoundaryError,
+ ErrorBoundaryTryAgainButton,
+} from '@docusaurus/theme-common';
import type {Props} from '@theme/Error';
import Heading from '@theme/Heading';
@@ -26,9 +29,15 @@ export default function ErrorPageContent({
This page crashed.
-
{error.message}
-
diff --git a/packages/docusaurus-theme-common/src/index.ts b/packages/docusaurus-theme-common/src/index.ts
index 3e5f324e7c..6fa4b65191 100644
--- a/packages/docusaurus-theme-common/src/index.ts
+++ b/packages/docusaurus-theme-common/src/index.ts
@@ -96,4 +96,7 @@ export {
UnlistedMetadata,
} from './utils/unlistedUtils';
-export {ErrorBoundaryTryAgainButton} from './utils/errorBoundaryUtils';
+export {
+ ErrorBoundaryTryAgainButton,
+ ErrorBoundaryError,
+} from './utils/errorBoundaryUtils';
diff --git a/packages/docusaurus-theme-common/src/utils/errorBoundaryUtils.module.css b/packages/docusaurus-theme-common/src/utils/errorBoundaryUtils.module.css
new file mode 100644
index 0000000000..6b6ecfa607
--- /dev/null
+++ b/packages/docusaurus-theme-common/src/utils/errorBoundaryUtils.module.css
@@ -0,0 +1,11 @@
+/**
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+.errorBoundaryError {
+ white-space: pre-wrap;
+ color: red;
+}
diff --git a/packages/docusaurus-theme-common/src/utils/errorBoundaryUtils.tsx b/packages/docusaurus-theme-common/src/utils/errorBoundaryUtils.tsx
index df1a5277d9..193ec7cd4f 100644
--- a/packages/docusaurus-theme-common/src/utils/errorBoundaryUtils.tsx
+++ b/packages/docusaurus-theme-common/src/utils/errorBoundaryUtils.tsx
@@ -7,6 +7,7 @@
import React, {type ComponentProps} from 'react';
import Translate from '@docusaurus/Translate';
+import styles from './errorBoundaryUtils.module.css';
export function ErrorBoundaryTryAgainButton(
props: ComponentProps<'button'>,
@@ -21,3 +22,7 @@ export function ErrorBoundaryTryAgainButton(
);
}
+
+export function ErrorBoundaryError({error}: {error: Error}): JSX.Element {
+ return {error.message}
;
+}
diff --git a/packages/docusaurus/src/client/theme-fallback/Error/index.tsx b/packages/docusaurus/src/client/theme-fallback/Error/index.tsx
index 513348cce4..645bd1682b 100644
--- a/packages/docusaurus/src/client/theme-fallback/Error/index.tsx
+++ b/packages/docusaurus/src/client/theme-fallback/Error/index.tsx
@@ -21,16 +21,28 @@ function ErrorDisplay({error, tryAgain}: Props): JSX.Element {
display: 'flex',
flexDirection: 'column',
justifyContent: 'center',
- alignItems: 'center',
- height: '50vh',
+ alignItems: 'flex-start',
+ minHeight: '100vh',
width: '100%',
+ maxWidth: '80ch',
fontSize: '20px',
+ margin: '0 auto',
+ padding: '1rem',
}}>
- This page crashed.
- {error.message}
-