---
title: Mark
icon: mingcute:mark-pen-line
createTime: 2025/03/23 14:33:48
permalink: /en/guide/markdown/mark/
---

## Overview

The ==marker pen== feature extends Markdown's `==Mark==` syntax, allowing text to be marked with various colors and customizable options.

## Syntax

### Basic Usage

Use `== ==` to mark text. Note the spaces around the equals signs.

**Input:**

```md
vuepress-theme-plume is a ==simple and beautiful== theme
```

**Output:**

vuepress-theme-plume is a ==simple and beautiful== theme

### Color Customization

Different marker pen colors are set using [Markdown attribute syntax](./extensions.md#attribute-support).

Add `{.classname}` immediately after the `==Mark==` syntax to customize colors.

**Input:**

```md
==a tip=={.tip} ==a warning=={.warning} ==an error=={.danger} ==important content=={.important}
```

**Output:**

==a tip=={.tip} ==a warning=={.warning} ==an error=={.danger} ==important content=={.important}

## Built-in Color Schemes

The theme includes these predefined schemes:

- **default**: `==Default==` - ==Default==
- **info**: `==Info=={.info}` - ==Info=={.info}
- **note**: `==Note=={.note}` - ==Note=={.note}
- **tip**: `==Tip=={.tip}` - ==Tip=={.tip}
- **warning**: `==Warning=={.warning}` - ==Warning=={.warning}
- **danger**: `==Danger=={.danger}` - ==Danger=={.danger}
- **caution**: `==Caution=={.caution}` - ==Caution=={.caution}
- **important**: `==Important=={.important}` - ==Important=={.important}

## Custom Color Schemes

Marker pen can be customized via [custom styles](../custom/style.md).

You can fully customize highlighter colors, including modifying built-in schemes.

Within the theme, markers are set using the combination of `class name` and `CSS variables`.

The following are `CSS variables` related to markers:

- `--vp-mark-text` - Text color of marker pen
- `--vp-mark-bg` - Background color of marker pen
- `--vp-mark-linear-color` - gradient color, only used in the built-in `--vp-mark-bg-image`
- `--vp-mark-bg-shift` - Built in gradient background offset of marker pen
- `--vp-mark-bg-image` - Background image of marker pen

### Modifying Built-in Schemes

Copy these built-in configurations to your [style file](../custom/style.md#style-file) for modification:

```css :collapsed-lines
mark {
  --vp-mark-text: currentcolor;
  --vp-mark-bg: transparent;
  --vp-mark-bg-shift: 0.55lh;
  --vp-mark-linear-color: var(--vp-c-brand-3);
  --vp-mark-bg-image: linear-gradient(to right, var(--vp-mark-linear-color) 50%, transparent 50%);
  animation: var(--vp-mark-animation, mark-highlight 1.5s 0.5s forwards);
}

[data-mark-mode="lazy"] mark {
  --vp-mark-animation: none;
}

[data-mark-mode="lazy"] mark.vp-mark-visible {
  animation: mark-highlight 1.5s 0.2s forwards;
}

mark.note {
  --vp-mark-linear-color: #ff0;
}

mark.info {
  --vp-mark-linear-color: var(--vp-c-default-1);
}

mark.tip {
  --vp-mark-linear-color: #39ff14;
}

mark.warning {
  --vp-mark-linear-color: #fc0;
}

mark.caution, mark.danger {
  --vp-mark-linear-color: #f99;
}

mark.important {
  --vp-mark-linear-color: #ccf;
}

[data-theme="dark"] mark.note {
  --vp-mark-linear-color: #660;
}

[data-theme="dark"] mark.tip {
  --vp-mark-linear-color: #063;
}

[data-theme="dark"] mark.warning {
  --vp-mark-linear-color: #c60;
}

[data-theme="dark"] mark.caution,
[data-theme="dark"] mark.danger {
  --vp-mark-linear-color: #c66;
}

[data-theme="dark"] mark.important {
  --vp-mark-linear-color: #66c;
}
```

### Adding New Schemes

Add new color schemes in your [style file](../custom/style.md#style-file) using this format:

```css
mark.classname {
  --vp-mark-text: marktext;  /* Text color */
  --vp-mark-bg-image: none;  /* Background image */
  --vp-mark-bg: mark;        /* Background color */
  --vp-mark-linear-color: mark;  /* Gradient color */
}
```

Use `==Mark=={.classname}` in Markdown.

You can name `classname` freely and add other CSS properties besides modifying CSS variables.

## Animation Modes

By default, the highlight animation plays as soon as the page renders.

If you prefer to animate only when the marker enters the viewport, set `markdown.mark` to `'lazy'` in your theme config:

```ts title=".vuepress/config.ts" {5}
export default defineUserConfig({
  theme: plumeTheme({
    markdown: {
      mark: 'lazy',
    },
  }),
})
```
