Text Formatting


Bold Text

To make text bold, use ** or __ around the word or phrase:
Example: This text is bold or This text is bold

Italic Text

To italicize text, use * or _ around the word or phrase:
Example: This text is italic or This text is italic

Underline Text

To underline text, use HTML <u> tags:

Example:

<u>This text is underlined</u>

Result:

This text is underlined

Strikethrough

To strike through text, use ~~ around the word or phrase:
Example: This text is struck through

Button


jsx
// This button has creative-fill hover animation

<Button
  hoverEffect="creative-fill"
  class="effect-color-accent"
  label="Creative Fill"
  url="/"
/>

// This button has magnetic hover animation

<Button hoverEffect="magnetic" label="Magnetic" url="/" />

// This button has text-flip hover animation

<Button hoverEffect="text-flip" label="Text Flip" url="/" />

// This button combines the magnetic and text-flip hover animations

<Button
  hoverEffect="magnetic-text-flip"
  label="Magnetic With Text Flip"
  url="/"
/>
<Button
  variant="circle"
  hoverEffect="magnetic-text-flip"
  label="Magnetic With Text Flip"
  url="/"
/>

This button has creative-fill hover animation

Creative Fill

This button has magnetic hover animation

Magnetic

This button has text-flip hover animation

Text Flip

This button combines the magnetic and text-flip hover animations

Magnetic With Text Flip

Button Variants

Customize each button color by adding class=“btn-accent” or class=“btn-light”

jsx
<Button variant="circle" label="Example Button" url="/" />
<Button label="Example Button" url="/" />
<Button class="btn-accent" label="Example Button" url="/" />
<Button
  variant="outline"
  label="With External Link"
  url="https://astro.build"
/>
<Button variant="text" label="Example Button" url="/" />
Example Button Example Button Example Button

Accordion


jsx
<Accordion label="Example Accordion Label 01" group="accordion-01" expanded="true">

Every service gets its own build pipeline, environment variables, and scaling rules. Pick the plan that fits your traffic.

- **Starter**: Deploy from Git with a preview environment for every pull request.
- **Team**: A shared workspace with role-based access and audit logs.
- **Enterprise**: Dedicated regions, SSO, and a support SLA.

</Accordion>

<Accordion label="Example Accordion Label 02" group="accordion-01" expanded="false">

Every service gets its own build pipeline, environment variables, and scaling rules. Pick the plan that fits your traffic.

- **Starter**: Deploy from Git with a preview environment for every pull request.
- **Team**: A shared workspace with role-based access and audit logs.
- **Enterprise**: Dedicated regions, SSO, and a support SLA.

</Accordion>

---

<Accordion label="Example Accordion Label 03" group="accordion-01" expanded="false">

Every service gets its own build pipeline, environment variables, and scaling rules. Pick the plan that fits your traffic.

- **Starter**: Deploy from Git with a preview environment for every pull request.
- **Team**: A shared workspace with role-based access and audit logs.
- **Enterprise**: Dedicated regions, SSO, and a support SLA.

</Accordion>

Every service gets its own build pipeline, environment variables, and scaling rules. Pick the plan that fits your traffic.

  • Starter: Deploy from Git with a preview environment for every pull request.
  • Team: A shared workspace with role-based access and audit logs.
  • Enterprise: Dedicated regions, SSO, and a support SLA.

Tab


jsx
<Tabs>
  <Tab name="Overview">
    **What can you run?** Web services, workers, cron jobs, and databases from
    one dashboard. Pick a tab to see how each part works. - Deploys -
    Autoscaling - Observability
  </Tab>

  <Tab name="Deploy">
    **Deploys: Ship on every push** Connect a repository and every push to main
    starts a build. You get: - Automatic builds - Preview environments -
    Zero-downtime deploys
  </Tab>
</Tabs>

What can you run?

Web services, workers, cron jobs, and databases from one dashboard. Pick a tab to see how each part works.

  • Deploys
  • Autoscaling
  • Observability

YouTube Video


jsx
<VideoInline src="rFVpSwgCkCo" provider="youtube" />

Custom Video


jsx
<VideoInline
  src="/videos/test-video.mp4"
  provider="html5"
  poster="/images/video-thumbnail.jpg"
/>

Callout


Use a callout to pull a note, tip, warning, or danger out of the text. type is note (default), tip, warning, or danger. Without a title, the type name is shown.

jsx
<Callout type="note">
  Preview environments use the `preview` environment variables, not production ones.
</Callout>

<Callout type="tip" title="Pin the CLI version">
  Install the CLI as a dev dependency so CI and every teammate run the same version.
</Callout>

<Callout type="warning">
  Deleting a project also deletes its preview environments and database branches.
</Callout>

<Callout type="danger" title="Rotating the root key">
  Every token signed with the old key stops working at once. Plan a maintenance window.
</Callout>

Note

Preview environments use the preview environment variables, not production ones.

Pin the CLI version

Install the CLI as a dev dependency so CI and every teammate run the same version.

Warning

Deleting a project also deletes its preview environments and database branches.

Rotating the root key

Every token signed with the old key stops working at once. Plan a maintenance window.

<Notice> still works and renders the same callout: info → note, success → tip, warning → warning, error → danger.

Steps


Wrap headings in <Steps> to number them. Each ## or ### heading starts a step, and everything below it belongs to that step.

jsx
<Steps>

### Install the CLI

```bash
npm install -g @cloud/cli
```

### Link the project

Run `cloud link` in the root of your repository.

### Deploy

Push to `main`, or run `cloud deploy` to ship from your machine.

</Steps>

Install the CLI

bash
npm install -g @cloud/cli

Run cloud link in the root of your repository.

Deploy

Push to main, or run cloud deploy to ship from your machine.

File Tree


Write a nested list inside <FileTree>. A name that ends in / (or has children) is a folder, bold highlights an entry, and text after the name is a comment.

jsx
<FileTree>

- src/
  - pages/
    - **index.astro** the home page
  - content/
- cloud.config.ts
- package.json

</FileTree>
  • src/
    • pages/
      • index.astrothe home page
    • content/
  • cloud.config.ts
  • package.json

Keyboard Keys


jsx
Press <Kbd>⌘</Kbd> <Kbd>K</Kbd> to open search, or <Kbd keys={["Ctrl", "Shift", "P"]} /> for the command palette.

Press ⌘ K to open search, or CtrlShiftP for the command palette.

Blockquote


To create a blockquote, start the line with a >:
Example:

This is a blockquote.
It spans multiple lines.

Author

Code


To format inline code, use backticks (`):
Example: This is inline code

For multi-line code blocks, use triple backticks (```):
Example:

astro
---
import type { z } from "astro/zod";
import config from ".astro/config.generated.json";
import SectionIntro from "@/components/widgets/SectionIntro.astro";
import SubscriptionForm from "@/components/widgets/SubscriptionForm.astro";
import { getEntryCTM } from "@/lib/contentParser.astro";
import overrideObjects from "@/lib/utils/overrideObjects.ts";
import type { newsletterSectionSchema } from "@/sections.schema";

export type NewsletterSection = z.infer<typeof newsletterSectionSchema>;

type Props = {
  content?: Partial<NewsletterSection>;
};

const defaultContent = (
  await getEntryCTM("sections", "newsletter-section", Astro.currentLocale)
)?.data as NewsletterSection;

const {
  enable = true,
  eyebrow,
  title,
  description,
  note,
} = overrideObjects(
  { ...defaultContent },
  Astro.props.content,
) as NewsletterSection;

// The form posts to `[settings.subscription]` in config.toml
const { subscription } = config.settings;

if (!enable || !subscription?.enable) return;
---

<section class="newsletter-section">
  <div class="container">
    <div
      class="flex flex-col gap-8 lg:flex-row lg:items-end lg:justify-between">
      <SectionIntro eyebrow={eyebrow} title={title} description={description} />
      <div class="w-full lg:max-w-md" data-scroll-reveal="fade-up">
        <SubscriptionForm
          id="newsletter"
          enable={true}
          layout="inline"
          formAction={subscription.formAction}
          mailchimpTagValue={subscription.mailchimpTagValue}
          note={note}
        />
      </div>
    </div>
  </div>
</section>

Add a title to the fence to label the block:

deploy.config.ts
import { defineConfig } from "@cloud/cli";

export default defineConfig({
  service: "web-frontend",
  region: "eu-west",
  instances: { min: 2, max: 10 },
});

Code Tabs

Wrap fences in <CodeTabs> to show alternatives, such as package managers. The selected tab is remembered across blocks and pages.

jsx
<CodeTabs>

```bash title="npm"
npm install @cloud/sdk
```

```bash title="pnpm"
pnpm add @cloud/sdk
```

</CodeTabs>
npm install @cloud/sdk
npx cloud deploy --env production

Horizontal Rule


To create a horizontal rule, use three or more dashes (---), asterisks (***), or underscores (___) on a new line:
Example:


Headings


Create headings by adding # symbols before your text. Add custom classes in brackets [.class-name].
Example:

txt
# Heading 1 [.custom-class .mt-0! .another-class]
## Heading 2 [.custom-class .mt-0! .another-class4]
### Heading 3 [.custom-class .mt-0! .another-class]
#### Heading 4 [.custom-class .mt-0! .another-class]
##### Heading 5 [.custom-class .mt-0! .another-class]
###### Heading 6 [.custom-class .mt-0! .another-class]

Table


Create tables using pipes (|) and dashes (-):

Example:

Column 1Column 2Column 3
Data 1Data 2Data 3
Data 4Data 5Data 6

Images


Local Image alt text

Components

Styled List


md
<ListCheck>

- **Slow releases**: Manual deploy steps turned every release into a half-day task.
- **Late reviews**: Changes reached staging only after merge, so reviewers missed real issues.
- **Scattered signals**: Logs and metrics lived in separate tools, so incidents took longer to trace.

</ListCheck>
  • Slow releases: Manual deploy steps turned every release into a half-day task.
  • Late reviews: Changes reached staging only after merge, so reviewers missed real issues.
  • Scattered signals: Logs and metrics lived in separate tools, so incidents took longer to trace.

Information Block Card


jsx
<CardWrapper>
  <Card
    title="Managed databases"
    description="Postgres and Redis with automated backups and point-in-time recovery."
    icon="/images/icons/services/web.svg"
    buttonLabel="Contact us"
    buttonUrl="/contact/"
  />
  <Card
    title="Private networking"
    description="Services talk over an internal network that is never exposed to the internet."
    icon="/images/icons/services/web.svg"
    buttonLabel="Contact us"
    buttonUrl="/contact/"
  />
</CardWrapper>

Managed databases

Postgres and Redis with automated backups and point-in-time recovery.

Private networking

Services talk over an internal network that is never exposed to the internet.

Image List With Video


jsx
<ImageList>
  <ImageItem
    imageSrc="/images/gallery/1.jpg"
    imageAlt="Team reviewing a digital product roadmap"
    videoSrc="rFVpSwgCkCo"
  />
  <ImageItem
    imageSrc="/images/gallery/2.jpg"
    imageAlt="Engineer working on a secure application release"
    videoSrc="/videos/test-video.mp4"
    videoProvider="html5"
  />
  <ImageItem
    width="1/2"
    imageSrc="/images/gallery/3.jpg"
    imageAlt="Analytics dashboard displayed during a strategy review"
  />
  <ImageItem
    width="1/2"
    imageSrc="/images/gallery/4.jpg"
    imageAlt="Modern workspace for product collaboration"
  />
</ImageList>
Team reviewing a digital product roadmap
Engineer working on a secure application release
Analytics dashboard displayed during a strategy review
Modern workspace for product collaboration

Testimonial


The following code generates the testimonial shown below.

jsx
<Testimonial
  customerImage="/images/customers/avatar/1.jpg"
  customerName="Sarah Jones"
  customerRole="CEO, Founder"
  customerCompanyLogo="/images/customers/company-logo/acme.png"
  customerCompanyName="Acme Inc."
>
  We moved our services over in a week. Deploys that used to need a release
  manager now run on every merge, and rolling back takes one click.
</Testimonial>
Acme Inc.
Acme Inc.

We moved our services over in a week. Deploys that used to need a release manager now run on every merge, and rolling back takes one click.

Sarah Jones
Sarah Jones

CEO, Founder

Free tier · No credit card

Push code today. Be live before your coffee cools.

Connect a repository, pick a region, and get a production URL with HTTPS, logs, and autoscaling already switched on.

$ git push origin main

  1. Build34 s
  2. Deploy12 s
  3. Health checks3 s

your-app.example.com

Buy NowTheme Details