Docs
Components
Components
Use React components in Markdown using MDX.
The following components are available out of the box for use in Markdown.
If you'd like to build and add your own custom components, see the Custom Components section below.
Built-in Components
1. Callout
<Callout type="default | warning | danger | note | info | success"> This is a default callout. You can embed **Markdown** inside a `callout`. </Callout>
2. Card
<Card href="#"> #### Heading You can use **markdown** inside cards. </Card>
Heading
You can use markdown inside cards.
</Card>You can also use HTML to embed cards in a grid.
<div className="grid grid-cols-2 gap-4"> <Card href="#"> #### Card One You can use **markdown** inside cards. </Card> <Card href="#"> #### Card Two You can also use `inline code` and code blocks. </Card> </div>
Custom Components
You can add your own custom components using the components
props from useMDXComponent
.
import { Callout } from "@/components/callout" import { CustomComponent } from "@/components/custom" const components = { Callout, CustomComponent, } export function Mdx({ code }) { const Component = useMDXComponent(code) return ( <div className="mdx"> <Component components={components} /> </div> ) }
Once you've added your custom component, you can use it in MDX as follows:
<CustomComponent propName="value" />
HTML Elements
You can overwrite HTML elements using the same technique above.
const components = { Callout, CustomComponent, hr: ({ ...props }) => <hr className="my-4 border-slate-200 md:my-6" />, }
This will overwrite the <hr />
tag or ---
in Mardown with the HTML output above.
Styling
Tailwind CSS classes can be used inside MDX for styling.
<p className="text-red-600">This text will be red.</p>
Make sure you have configured the path to your content in your tailwind.config.js
file: