Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(en): merge docs/main into docs-ru/main @ ee683ae8 #127

Open
wants to merge 148 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
148 commits
Select commit Hold shift + click to select a range
152e0f6
docs: typo in sidebar (#43)
mathieutu Nov 15, 2021
ad008f0
docs: typos in code (#45)
posva Nov 17, 2021
5d92892
docs: typo (#44)
posva Nov 17, 2021
c393c03
chore: typo (#46)
cheesi Dec 3, 2021
fbc97d8
docs: fix typo (#47)
Deckluhm Dec 8, 2021
a261c23
chore: typo (#48)
tkgroot Dec 20, 2021
06ae275
feat: add TOC documentation (#49)
tonai Jan 17, 2022
ce73d58
fix: broken links (#50)
chengpeiquan Jan 18, 2022
4890d42
Minor notation change (#51)
p1atdev Feb 6, 2022
d99ebc3
feat: add ja trans
antfu Feb 7, 2022
e89a81b
docs: add favicon frontmatter configure (#53)
alexanderdavide Feb 14, 2022
871a293
docs: update shiki URL (#54)
ashramwen Feb 16, 2022
5b4af78
Add slidev-theme-academic (#55)
alexanderdavide Mar 7, 2022
61b06f2
Add showcase Git's Most Wanted (#56)
alexanderdavide Mar 7, 2022
e9cccdb
feat: update install.md to fix the missed docker part (#57)
tangramor Mar 16, 2022
1abac97
Update install.md to fix typos about docker section (#58)
tangramor Mar 16, 2022
b18d6f4
docs: add custom-nav-controls documents (#60)
LarchLiu Mar 22, 2022
d68398a
docs: add mention to --dark option when exporting (#61)
ruyadorno Mar 25, 2022
9fa6829
fix: correct typo in the name of the generated pdf (#62)
twitwi Apr 13, 2022
7308799
Document parameter listClass of Toc (#63)
alexanderdavide Apr 14, 2022
0daa359
feat: add doc for Titles and Link components (#64)
tonai Apr 14, 2022
37797ff
feat: update config doc (#65)
tonai Apr 15, 2022
0305762
docs: update previews of slidev-theme-academic (#66)
alexanderdavide Apr 25, 2022
87e46ef
feat: add doc for CLI commands (#67)
tonai May 19, 2022
017f644
doc: propose a new showcase (#68)
webup May 22, 2022
afa4515
docs: typo with NavControls action description (#69)
lirantal May 24, 2022
1821696
feat: addons doc (#71)
tonai May 25, 2022
1f593ab
docs: fix typos in addons/ (#72)
GeopJr May 27, 2022
2f3c88e
docs: markdown code highlighting for none of the lines (#73)
lirantal Jun 9, 2022
448d7d1
docs: update reference to unplugin-icons (#74)
D3SOX Jun 14, 2022
0d7183d
docs: change some references from http to https (#75)
D3SOX Jun 14, 2022
55faf79
Update navigation.md wording (#77)
CodyBontecou Jun 15, 2022
893d0b6
docs: update custom keybindings (#78)
lirantal Jun 18, 2022
c8121c1
docs: align comments (#80)
yjl9903 Jun 24, 2022
af30fcf
chore: update deps
antfu Jun 30, 2022
6cf71f5
fix: update links
antfu Jun 30, 2022
eca0155
fix: remove work in progress note
antfu Jun 30, 2022
8b430ee
chore: upgrade vitepress
antfu Jul 12, 2022
8c6068a
docs: added description and example usage for auto scroll feature (#83)
wolodev Jul 21, 2022
ea87df4
docs: add previews of slidev-theme-eloc (#85)
zthxxx Jul 27, 2022
e385300
fix: dark mode switch (#86)
leonardssh Jul 31, 2022
1798f9b
Update hosting.md (#88)
pagobls Aug 12, 2022
e9156da
docs: fix exportFilename (#89)
YazanShannak Aug 12, 2022
2b46447
feat: migration message and examples for the new setupShortcuts (#90)
twitwi Sep 12, 2022
f3e4a95
docs: update global-layers.md (#93)
godkun Sep 21, 2022
a9706e0
docs: fix typos and tweak grammar (#94)
Oct 5, 2022
550ff2f
chore: update algolia component
antfu Oct 18, 2022
ecd8bf0
docs(search): correct credentials for docsearch (#95)
Haroenv Oct 18, 2022
7fa7d16
doc: add presenter notes export guide (#96)
lomby92 Oct 25, 2022
26a4550
docs: update for advanced navigation features (#79)
lirantal Oct 25, 2022
37da379
docs: Update showcase list (#92)
alstn2468 Oct 25, 2022
e414b8d
docs: add slidev ppt template with naive-ui (#97)
godkun Nov 4, 2022
041453d
Add slidev-theme-mokkapps (#98)
Mokkapps Nov 4, 2022
eb148aa
fix: disable search box auto open, close #99
antfu Nov 8, 2022
35a71a1
docs: add parser customization (preparser, but also link vite config)…
twitwi Nov 24, 2022
2761858
docs: update parameters in definePreparserSetup (#101)
twitwi Dec 13, 2022
5cffe3b
fix: use bold instead of code tag to avoid breaking chars on mobile (…
jdbruxelles Dec 19, 2022
c32272e
chore(typos): fix typos (#102)
stavares843 Dec 21, 2022
a89202a
docs: update syntax.md (#103)
Mokkapps Jan 10, 2023
2236db4
feat: add LightOrDark component doc (#106)
tonai Jan 20, 2023
9477d41
feat: add presenter mode documentation (#105)
tonai Jan 20, 2023
8d6e5c8
Update showcases.ts (#108)
Mokkapps Jan 23, 2023
2e53e8c
feat: page transition
antfu Jan 29, 2023
fcb11d1
docs: fix broken link in faq (#111)
jChapman Feb 3, 2023
e1c823d
docs: added an example of creating custom Mermaid styles (#110)
estruyf Feb 3, 2023
d6bb78b
docs: Added the unnamed theme (#109)
estruyf Feb 3, 2023
4e268b6
docs: add documentation for export range feature Fix #821 (#104)
neilmispelaar Feb 3, 2023
38e076f
docs: improve slide transition explanation
antfu Feb 3, 2023
8ffa1fd
Update syntax.md: Embedded Styles (#113)
yheuhtozr Feb 5, 2023
dbdc820
docs: fix typo in builtin slide transitions (#114)
matteo-azzolini Feb 6, 2023
9cb6406
docs: update Showcases (#107)
alexanderdavide Feb 7, 2023
7f25ea8
docs(themes): added dracula (#115)
jd-solanki Feb 17, 2023
6c48fa7
feat/export-options
tonai Jan 24, 2023
b66a4ce
feat: add built-in components doc and add buil-in menu (#116)
tonai Feb 24, 2023
c6bd8fa
docs: fix typo in output directory (#118)
enzonotario Mar 6, 2023
46f1104
docs: Added pnpm script (#117)
estruyf Mar 6, 2023
1317cbc
docs: updates for 0.40.5 (#119)
tonai Mar 24, 2023
c2931a4
ci: update checkout and setup-node (#120)
imanmalekian31 Apr 3, 2023
6a80cc0
fix: replace commas with underscores in atomic-css (#122)
matttrice Apr 4, 2023
86744c7
docs: grids-cols to grid-cols (#121)
matttrice Apr 4, 2023
7acc339
docs: add pnpm to install.md instructions (#123)
timozander May 18, 2023
d29625c
docs: align theme docs with types (#124)
bru02 May 21, 2023
19d3ad7
feat: configuring UnoCSS
antfu May 26, 2023
e2d97fb
docs: fix incorrect option name (#125)
kaakaa May 29, 2023
44920cd
docs: support setting startLines for codeblocks slidev (#126)
fr0zn May 31, 2023
281e164
fix: IPA correction (#127)
alephpi Jun 14, 2023
c608c01
fix: FAQ page UnoCSS url (#129)
fakelbst Jul 11, 2023
8f99a82
docs(hosting): Update snippet for GitHub pages workflow (#131)
jd-solanki Jul 16, 2023
cd758d9
docs: improve doc about Link and routeAlias
twitwi Jul 27, 2023
8e6b3c0
docs: Document PDF author and keywords (#132)
marshallfWCCI Aug 6, 2023
333d273
docs: fix motion link (#133)
btea Aug 7, 2023
004c016
docs: mention support for scoped packages (#134)
Plumtree3D Aug 7, 2023
e83fcdc
feat: add built-in layout `two-cols-header` (#135)
btea Aug 11, 2023
a6243d6
fix: the third parameter of userIntervalFn is wrong (#136)
btea Aug 14, 2023
0faff2a
chore: upgrade pnpm
antfu Aug 31, 2023
d45ed05
feat: update docs
antfu Aug 31, 2023
8024ec4
docs: about `$clicks` and `$nav` context shorthand
antfu Aug 31, 2023
f03f026
docs: note about `$clicks` context
antfu Sep 1, 2023
2fe32c4
docs: remove unnecessary colons (#140)
kawamataryo Sep 1, 2023
234e7b1
feat: add `$page` and `$renderContext` context
antfu Sep 3, 2023
6e0af1f
feat: view transitions (#141)
Jannchie Sep 3, 2023
4b8e2bb
docs: add monaco editorOptions (#142)
carlosingles Sep 4, 2023
20eef62
docs(layouts): fix typo (#144)
cerinoligutom Sep 5, 2023
c3ab951
docs: update node version
antfu Sep 5, 2023
11d3475
docs: add LaTex line highlighting (#145)
Sep 7, 2023
0c89704
docs: update hosting guide for GitHub Pages (#146)
george-gca Sep 23, 2023
b67d676
docs: call out required leading slash in base path (#148)
adamdehaven Oct 11, 2023
285da45
docs: update showcase (#149)
zyf722 Oct 24, 2023
cbaf809
docs: `at` option in line highlightning (#150)
TechWatching Nov 9, 2023
32ffb9e
feat: add slidev-theme-frankfurt to themes.ts (#152)
MuTsunTsai Nov 10, 2023
5c3b2e7
docs: yaml block as frontmatter
antfu Nov 16, 2023
4e57682
docs: update hosting.md for gh-pages (#155)
george-gca Nov 21, 2023
e041d9f
docs: explain that Slidev adds custom UnoCSS shortcuts (#157)
Hofer-Julian Nov 23, 2023
a6529b6
docs: support shikiji
antfu Dec 13, 2023
7df7697
feat: Add notice to the custom clicks count when using the at directi…
John98Zakaria Jan 22, 2024
9b64ca2
fix: Remove extra space for props to be parsed correctly (#159)
John98Zakaria Jan 22, 2024
145fc07
docs: fix Shikiji link (#161)
jessarcher Jan 25, 2024
0ef9dde
chore: typos in Highlighters documentation (#162)
laymonage Jan 29, 2024
094f9d5
feat: migrate to latest VitePress
antfu Feb 2, 2024
a1ae7cf
docs: update docs with latest features
antfu Feb 2, 2024
6733ad9
chore: update
antfu Feb 2, 2024
0a3ecb1
chore: update
antfu Feb 2, 2024
6e98b89
chore: fix css scope
antfu Feb 2, 2024
36a1b5a
chore: fix netlify
antfu Feb 2, 2024
b41368d
chore: update
antfu Feb 2, 2024
79a4d45
chore: fix demo style
antfu Feb 2, 2024
f6bcb59
docs: layout image: add backgroundSize doc (#164)
jdeniau Feb 4, 2024
9bbccbb
docs: updated GitHub actions versions on hosting.md (#163)
george-gca Feb 4, 2024
e52d01f
docs: add 'cards' prop in Tweet component (#166)
ethanniser Feb 6, 2024
2ff4590
fix: components not found (#165) (#167)
KermanX Feb 11, 2024
dbfb016
docs: added info about the possibility to start YouTube video at spec…
BogdanCerovac Feb 11, 2024
178a989
docs: update docs about click animations (#169)
KermanX Feb 15, 2024
5bb36b8
chore: update lint
antfu Feb 15, 2024
081241c
docs: fix typo in syntax.md (#171)
stefanfreitag Feb 18, 2024
7a04557
docs: fix typo in fonts.md (#173)
stone-zeng Feb 20, 2024
c3c1774
docs: update latest features (#174)
KermanX Feb 21, 2024
1d54c86
docs: fix icons installation guide (#175)
KermanX Feb 23, 2024
aa8c4ca
docs: update MDC support
antfu Feb 25, 2024
97da56b
docs: more detailed explain about code snippets (#178)
KermanX Feb 27, 2024
55df176
docs: add docs about the Prettier plugin (#177)
KermanX Feb 27, 2024
15820b0
docs: fix dead link in `animations.md` (#180)
KermanX Feb 29, 2024
3ecc509
docs: mention about magic-shiki integration
antfu Mar 2, 2024
7ce53a8
docs: mention about click markers
antfu Mar 2, 2024
5a1464e
chore: update deps
antfu Mar 2, 2024
609f2b6
chore: fix links
antfu Mar 2, 2024
e805422
chore: update
antfu Mar 2, 2024
ee683ae
docs: explain mode parameter for preparser extensions (#176)
twitwi Mar 3, 2024
b145582
docs(en): merging all conflicts
docschina-bot Mar 3, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
docs: update docs about click animations (#169)
Co-authored-by: Anthony Fu <anthonyfu117@hotmail.com>
  • Loading branch information
KermanX and antfu authored Feb 15, 2024
commit 178a989f589711edd18c5f67699e14917e0fae0b
181 changes: 131 additions & 50 deletions guide/animations.md
Original file line number Diff line number Diff line change
@@ -1,66 +1,72 @@
---
outline: deep
---

# Animations

## Click Animations

> [!NOTE]
> Since v0.48.0, we are rewritten the click animations system with much more consistent behaviors. It might change the behaviors of your existing slides in edge cases. While this page is showing the new click system, you can find more details about the refactor in [#1279](https://github.com/slidevjs/slidev/pull/1279).

### `v-click`

To apply "click animations" for elements, you can use the `v-click` directive or `<v-click>` components

```md
# Hello

<!-- Component usage: this will be invisible until you press "next" -->
<v-click>

Hello World

</v-click>

<!-- Directive usage: this will be invisible until you press "next" the second time -->
<div v-click class="text-xl p-2">
<!-- Component usage:
this will be invisible until you press "next" -->
<v-click> Hello **World** </v-click>

Hey!

</div>
<!-- Directive usage:
this will be invisible until you press "next" the second time -->
<div v-click class="text-xl"> Hey! </div>
```

### `v-after`

The usage of `v-after` is similar to `v-click` but it will turn the element visible when the previous `v-click` is triggered.
`v-after` is only provided as a directive. It will turn the element visible when the previous `v-click` is triggered.

```md
<div v-click>Hello</div>
<div v-after>World</div>
<div v-click> Hello </div>
<div v-after> World </div>
```

When you click the "next" button, both `Hello` and `World` will show up together.
When you press "next", both `Hello` and `World` will show up together.

### `v-click-hide`
### Hide after clicking

Same as `v-click` but instead of making the element appear, it makes the element invisible after clicking.
Add a `.hide` modifier to `v-click` or `v-after` to make the element invisible after clicking, instead of showing up.

```md
<div v-click-hide>Hello</div>
<div v-click> Visible after 1 click </div>
<div v-click.hide> Hidden after 2 click </div>
<div v-after.hide> Hidden after 2 click </div>
```

For `v-click` component, you can use the `hide` prop to achieve the same effect:

```md
<v-click> Visible after 1 click </v-click>
<v-click hide> Hidden after 2 click </v-click>
```

### `v-clicks`

`v-clicks` is only provided as a component. It's a shorthand to apply the `v-click` directive to all its child elements. It is especially useful when working with lists.
`v-clicks` is only provided as a component. It's a shorthand to apply the `v-click` directive to all its child elements. It is especially useful when working with lists and tables.

```md
<v-clicks>

- Item 1
- Item 2
- Item 3
- Item 4

</v-clicks>
```

An item will become visible each time you click "next".

It accepts a `depth` props for nested list:
It accepts a `depth` prop for nested list:

```md
<v-clicks depth="2">
Expand All @@ -75,44 +81,108 @@ It accepts a `depth` props for nested list:
</v-clicks>
```

### Custom Clicks Count
Also, you can use the `every` prop to specify the number of items to show after each click:

By default, Slidev counts how many steps are needed before going to the next slide. You can override this setting by passing the `clicks` frontmatter option:
```md
<v-clicks every="2">

```yaml
---
# 10 clicks in this slide, before going to the next
clicks: 10
---
- Item 1 (part 1)
- Item 1 (part 2)
- Item 2 (part 1)
- Item 2 (part 2)

</v-clicks>
```

### Ordering
### Positioning

Passing the click index to your directives, you can customize the order of the revealing
By default, the clicking animations take place one by one. You can customize the animation position of elements by using the `at` prop or the `v-click` directive with value.

```md
<div v-click>1</div>
<div v-click>2</div>
<div v-click>3</div>
Like the CSS layout system, click-animated elements can be "relative" or "absolute":

#### Relative Position

This actual position of relative elements are calculated based on the previous relative elements:

~~~md
<div v-click> visible after 1 click </div>
<v-click at="+2"><div> visible after 3 clicks </div></v-click>
<div v-click.hide="'-1'"> hidden after 2 clicks </div>

```js {none|1|2}{at:'+5'}
1 // highlighted after 7 clicks
2 // highlighted after 8 clicks
```
~~~

> [!NOTE]
> The default value of `v-click` is `'+1'` when you don't specify it.

In fact, `v-after` are just shortcuts for `v-click` with `at` prop:

```md
<!-- the order is reversed -->
<div v-click="3">1</div>
<div v-click="2">2</div>
<div v-click="1">3</div>
<!-- The following 2 usages are equivalent -->
<img v-after />
<img v-click="'+0'" />

<!-- The following 3 usages are equivalent -->
<img v-click />
<img v-click="'+1'" />
<v-click-gap size="1" /><img v-after />
```

```md
---
clicks: 3
---
:::info
Only string values start with `'+'` or `'-'` like `'+1'` are treated as relative positions:

<!-- visible after 3 clicks -->
<v-clicks at="3">
<div>Hi</div>
</v-clicks>
| Value | Kind |
| -------------- | -------- |
| `'-1'`, `'+1'` | Relative |
| `+1` === `1` | Absolute |
| `'1'` | Absolute |

So don't forget the single quotes for the relative values.
:::

#### Absolute Position

The given value is the exact click count to show the element:

~~~md
<div v-click="3"> visible after 3 clicks </div>
<v-click at="2"><div> visible after 2 clicks </div></v-click>
<div v-click.hide="1"> hidden after 1 click </div>

```js {none|1|2}{at:3}
1 // highlighted after 3 clicks
2 // highlighted after 4 clicks
```
~~~

#### Mixed Case

You can mix the absolute and relative positions:

~~~md
<div v-click> visible after 1 click </div>
<div v-click="3"> visible after 3 clicks </div>
<div v-click> visible after 2 click </div>
<div v-click="'-1'"> visible after 1 click </div>
<div v-click="4"> visible after 4 clicks </div>
~~~

The following example synchronizes the highlighting of the two code blocks:

~~~md
```js {1|2}{at:1}
1 + 1
'a' + 'b'
```

```js {1|2}{at:1}
2
'ab'
```
~~~

### Enter & Leave

Expand All @@ -124,6 +194,17 @@ You can also specify the enter and leave index for the `v-click` directive by pa
<div v-click="[2, 4]">This will be shown on the 2nd and 3rd clicks, and hide again after the 4th.</div>
```

### Custom Total Clicks Count

By default, Slidev counts how many steps are needed before going to the next slide. You can override this setting by passing the `clicks` frontmatter option:

```yaml
---
# 10 clicks in this slide, before going to the next
clicks: 10
---
```

### Element Transitions

When you apply the `v-click` directive to your elements, it will attach the class name `slidev-vclick-target` to it. When the elements are hidden, the class name `slidev-vclick-hidden` will also be attached. For example:
Expand Down
49 changes: 13 additions & 36 deletions guide/syntax.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,20 +120,7 @@ function add(
```
~~~

You can enable line number to all slides by setting `lineNumbers: true` on the config or enable each code block individually by setting `lines:true`. In case you want to disable the numbering for an specific block when `lineNumbers: true` you can set `lines:false` for that block:

~~~md
```ts {2,3}{lines:true}
function add(
a: Ref<number> | number,
b: Ref<number> | number
) {
return computed(() => unref(a) + unref(b))
}
```
~~~

You can also set the starting line for each code block and highlight the lines accordingly, defaults to 1:
You can enable line number to all slides by setting `lineNumbers: true` on the config or enable each code block individually by setting `lines:true`. You can also set the starting line for each code block and highlight the lines accordingly, defaults to 1:

~~~md
```ts {6,7}{lines:true, startLine:5}
Expand All @@ -146,7 +133,7 @@ function add(
```
~~~

To change the highlight in multiple steps, you can use `|` to separate them. For example
To change the highlight in multiple clicks, you can use `|` to separate them:

~~~md
```ts {2-3|5|all}
Expand All @@ -159,12 +146,12 @@ function add(
```
~~~

This will first highlight `a: Ref<number> | number` and `b: Ref<number> | number`, and then `return computed(() => unref(a) + unref(b))` after one click, and lastly, the whole block. Learn more in the [clicks animations guide](/guide/animations).
This will first highlight `a: Ref<number> | number` and `b: Ref<number> | number`, and then `return computed(() => unref(a) + unref(b))` after one click, and lastly, the whole block.

You can start the highlight at a specific click:
You can set the line number to `hide` to hide the code block or `none` to not highlight any line:

~~~md
```ts {2-3|5|all}{at:0}
```ts {hide|none}
function add(
a: Ref<number> | number,
b: Ref<number> | number
Expand All @@ -174,26 +161,14 @@ function add(
```
~~~

This is especially useful when you need to sync different animations (when using `two-cols` layout and list animation for instance).
You may need to set the [custom clicks count](/guide/animations#custom-clicks-count) for the slide progression to function correctly.

To skip highlighting any lines, you can set the line number to `0`. For example
::: tip
Learn more in the [clicks animations guide](./animations#positioning).
:::

~~~md {1}
```ts {0}
function add(
a: Ref<number> | number,
b: Ref<number> | number
) {
return computed(() => unref(a) + unref(b))
}
```
~~~

If the code doesn't fit into one slide, you can pass an extra maxHeight option which will set fixed height
and enable scrolling
If the code doesn't fit into one slide, you use the `maxHeight` to set fixed height and enable scrolling:

~~~md {1}
~~~md
```ts {2|3|7|12}{maxHeight:'100px'}
function add(
a: Ref<number> | number,
Expand Down Expand Up @@ -469,7 +444,7 @@ You can import code snippets from existing files via following syntax:
<<< @/snippets/snippet.js
```

::: ttp
::: tip
The value of `@` corresponds to the source root, the directory where the `slides.md` is located.
:::

Expand Down Expand Up @@ -546,6 +521,8 @@ $$ {1|3|all}
$$
```

The `at` and `finally` options of [code blocks](#line-highlighting) are also available for LaTeX blocks.

## Diagrams

You can also create diagrams / graphs from textual descriptions in your Markdown, powered by [Mermaid](https://mermaid-js.github.io/mermaid).
Expand Down