diff --git a/packages/docusaurus-theme-classic/src/theme/Admonition/Layout/index.tsx b/packages/docusaurus-theme-classic/src/theme/Admonition/Layout/index.tsx index d72cc05461..7bdda31bc3 100644 --- a/packages/docusaurus-theme-classic/src/theme/Admonition/Layout/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/Admonition/Layout/index.tsx @@ -41,7 +41,9 @@ function AdmonitionHeading({icon, title}: Pick) { } function AdmonitionContent({children}: Pick) { - return
{children}
; + return children ? ( +
{children}
+ ) : null; } export default function AdmonitionLayout(props: Props): JSX.Element { diff --git a/packages/docusaurus-theme-classic/src/theme/Admonition/Layout/styles.module.css b/packages/docusaurus-theme-classic/src/theme/Admonition/Layout/styles.module.css index 2580873f11..cc5f8655f1 100644 --- a/packages/docusaurus-theme-classic/src/theme/Admonition/Layout/styles.module.css +++ b/packages/docusaurus-theme-classic/src/theme/Admonition/Layout/styles.module.css @@ -13,6 +13,10 @@ font: var(--ifm-heading-font-weight) var(--ifm-h5-font-size) / var(--ifm-heading-line-height) var(--ifm-heading-font-family); text-transform: uppercase; +} + +/* Heading alone without content (does not handle fragment content) */ +.admonitionHeading:not(:last-child) { margin-bottom: 0.3rem; } diff --git a/packages/docusaurus-theme-common/src/utils/admonitionUtils.tsx b/packages/docusaurus-theme-common/src/utils/admonitionUtils.tsx index 2c58477cd1..b960d3883a 100644 --- a/packages/docusaurus-theme-common/src/utils/admonitionUtils.tsx +++ b/packages/docusaurus-theme-common/src/utils/admonitionUtils.tsx @@ -20,10 +20,10 @@ function extractMDXAdmonitionTitle(children: ReactNode): { (item.props as {mdxType: string} | null)?.mdxType === 'mdxAdmonitionTitle', ) as JSX.Element | undefined; - const rest = <>{items.filter((item) => item !== mdxAdmonitionTitle)}; + const rest = items.filter((item) => item !== mdxAdmonitionTitle); return { mdxAdmonitionTitle: mdxAdmonitionTitle?.props.children, - rest, + rest: rest.length > 0 ? <>{rest} : null, }; } diff --git a/website/_dogfooding/_docs tests/tests/admonitions.mdx b/website/_dogfooding/_docs tests/tests/admonitions.mdx new file mode 100644 index 0000000000..94d751430b --- /dev/null +++ b/website/_dogfooding/_docs tests/tests/admonitions.mdx @@ -0,0 +1,61 @@ +# Admonitions tests + +## Empty content + +:::note Title Only + +::: + +## Empty fragment content + +:::note Title Only + +<> + +::: + +## Large font icon + +```mdx-code-block +💡} + title="Did you know..."> +

+ content +

+
+ +ℹ️} + title="Did you know..."> +

+ content +

+
+``` + +## Large svg icon + +```mdx-code-block +import InfoIcon from "@theme/Admonition/Icon/Info" + +} + title="Did you know..."> +

+ content +

+
+ +} + title="Did you know..."> +

+ content +

+
+``` diff --git a/website/src/components/BrowserWindow/styles.module.css b/website/src/components/BrowserWindow/styles.module.css index 9793395e2d..aec42957ce 100644 --- a/website/src/components/BrowserWindow/styles.module.css +++ b/website/src/components/BrowserWindow/styles.module.css @@ -82,6 +82,6 @@ padding: 1rem; } -.browserWindowBody *:last-child { +.browserWindowBody > *:last-child { margin-bottom: 0; }