Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
yoanbernabeu avatar

Slidev Navigation

  • 129 installs
  • 33 repo stars
  • Updated January 30, 2026
  • yoanbernabeu/slidev-skills

Covers all Slidev navigation features including keyboard shortcuts, navigation bar configuration, overview mode, and custom navigation component creation.

About

slidev-navigation is a skill that covers all navigation capabilities in Slidev presentations, from built-in keyboard shortcuts and the navigation bar to overview mode and fully custom navigation components. It helps developers understand the default controls and customize them to fit specific presentation styles or audience needs. Reach for it when setting up a Slidev project and wanting to tailor how presenters and viewers move through slides.

  • Complete guide to Slidev keyboard shortcuts and navigation controls
  • Navigation bar configuration and customization
  • Overview mode setup for presentation planning
  • Custom navigation component creation
  • 109 installs from the slidev-skills repository

Slidev Navigation by the numbers

  • 129 all-time installs (skills.sh)
  • +6 installs in the week ending Jul 28, 2026 (Skillselion tracking)
  • Ranked #995 of 2,245 Frontend Development skills by installs in the Skillselion catalog
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
npx skills add https://github.com/yoanbernabeu/slidev-skills --skill slidev-navigation

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs129
repo stars33
Last updatedJanuary 30, 2026
Repositoryyoanbernabeu/slidev-skills

What it does

Covers all Slidev navigation features including keyboard shortcuts, navigation bar configuration, overview mode, and custom navigation component creation.

Who is it for?

Slidev users who want to customize how their presentations are navigated

Skip if: Non-Slidev presentation tools

What you get

  • configured navigation bar
  • custom navigation component

Files

SKILL.mdMarkdownGitHub ↗

Slidev Navigation

This skill covers all navigation features in Slidev, including keyboard shortcuts, navigation bar, overview mode, and customizing navigation behavior.

When to Use This Skill

  • Learning navigation controls
  • Customizing keyboard shortcuts
  • Setting up presentation navigation
  • Configuring navigation bar
  • Creating custom navigation components

Default Keyboard Shortcuts

Basic Navigation

KeyAction
SpaceNext animation or slide
/ RightNext animation or slide
/ LeftPrevious animation or slide
/ UpPrevious slide (skip animations)
/ DownNext slide (skip animations)

Mode Toggles

KeyAction
oToggle overview mode
dToggle dark mode
fToggle fullscreen
pToggle presenter mode

Navigation Jumps

KeyAction
gGo to specific slide
HomeGo to first slide
EndGo to last slide

Other Controls

KeyAction
EscExit fullscreen/overview/drawing
eToggle drawing mode
rToggle recording

Navigation Bar

Location

Bottom-left corner of the slide (appears on hover).

Available Buttons

  • Home: Go to first slide
  • Previous: Previous slide/animation
  • Current/Total: Click to open go-to dialog
  • Next: Next slide/animation
  • Presenter: Open presenter mode
  • Camera: Toggle camera view
  • Record: Start/stop recording
  • Drawing: Toggle drawing mode
  • Overview: Open slide overview
  • Dark Mode: Toggle dark/light
  • Fullscreen: Toggle fullscreen
  • Export: Export options
  • Info: Presentation info

Overview Mode

Accessing

  • Press o key
  • Click overview button in navigation bar
  • Navigate to /overview URL

Features

  • Grid view of all slides
  • Click any slide to navigate
  • Keyboard navigation within overview
  • Search slides (if implemented)

Overview Navigation

KeyAction
Navigate grid
EnterSelect slide
Esc / oClose overview

Go-To Dialog

Opening

  • Press g key
  • Click slide number in navigation bar

Usage

1. Dialog opens 2. Type slide number 3. Press Enter

Quick Jump

g → 15 → Enter

Goes directly to slide 15.

Customizing Shortcuts

Configuration File

Create setup/shortcuts.ts:

import { defineShortcutsSetup } from '@slidev/types'

export default defineShortcutsSetup((nav, base) => {
  return [
    ...base, // Keep default shortcuts
    {
      key: 'enter',
      fn: () => nav.next(),
      autoRepeat: true,
    },
    {
      key: 'backspace',
      fn: () => nav.prev(),
      autoRepeat: true,
    },
    {
      key: 'ctrl+f',
      fn: () => nav.go(1),
    },
  ]
})

Shortcut Properties

PropertyTypeDescription
keystringKey combination
fnfunctionAction to perform
autoRepeatbooleanRepeat when held

Key Syntax

// Single key
{ key: 'enter', fn: () => {} }

// Modifier + key
{ key: 'ctrl+s', fn: () => {} }

// Multiple modifiers
{ key: 'ctrl+shift+s', fn: () => {} }

Available Modifiers

  • ctrl
  • shift
  • alt
  • meta (Cmd on Mac)

Navigation API

In Components

<script setup>
import { useNav } from '@slidev/client'

const {
  currentSlideNo,  // Current slide number (ref)
  currentPage,     // Current page number
  total,           // Total slides
  clicks,          // Current click count
  next,            // Go to next
  prev,            // Go to previous
  go,              // Go to slide number
  nextSlide,       // Next slide (skip animations)
  prevSlide,       // Previous slide (skip animations)
} = useNav()
</script>

Navigation Functions

<template>
  <!-- Custom navigation buttons -->
  <button @click="nav.prev()">Previous</button>
  <button @click="nav.next()">Next</button>
  <button @click="nav.go(1)">Go to Start</button>
  <button @click="nav.go(total.value)">Go to End</button>
</template>

<script setup>
import { useNav } from '@slidev/client'
const nav = useNav()
</script>

Custom Navigation Components

Slide Progress Bar

<!-- components/ProgressBar.vue -->
<script setup>
import { computed } from 'vue'
import { useNav } from '@slidev/client'

const { currentSlideNo, total } = useNav()
const progress = computed(() =>
  (currentSlideNo.value / total.value) * 100
)
</script>

<template>
  <div class="fixed top-0 left-0 right-0 h-1 bg-gray-200">
    <div
      class="h-full bg-blue-500 transition-all"
      :style="{ width: `${progress}%` }"
    />
  </div>
</template>

Custom Page Number

<!-- components/PageNumber.vue -->
<script setup>
import { useNav } from '@slidev/client'
const { currentSlideNo, total } = useNav()
</script>

<template>
  <div class="fixed bottom-4 right-4 text-sm">
    {{ currentSlideNo }} / {{ total }}
  </div>
</template>

Navigation Buttons

<!-- components/NavButtons.vue -->
<script setup>
import { useNav } from '@slidev/client'
const { prev, next, currentSlideNo, total } = useNav()
</script>

<template>
  <div class="fixed bottom-4 flex gap-2">
    <button
      @click="prev()"
      :disabled="currentSlideNo === 1"
      class="px-4 py-2 bg-blue-500 text-white rounded disabled:opacity-50"
    >
      Previous
    </button>
    <button
      @click="next()"
      :disabled="currentSlideNo === total"
      class="px-4 py-2 bg-blue-500 text-white rounded disabled:opacity-50"
    >
      Next
    </button>
  </div>
</template>

Touch Navigation

Default Behavior

  • Swipe left: Next slide
  • Swipe right: Previous slide

Touch Areas

Screen is divided into:

  • Left third: Previous
  • Right two-thirds: Next

Mouse Navigation

Click Areas

  • Left side of slide: Previous
  • Right side of slide: Next

Disable Click Navigation

---
# In frontmatter
---

Custom CSS to disable:

.slidev-page {
  pointer-events: none;
}

URL Navigation

Direct Slide Access

http://localhost:3030/5      # Slide 5
http://localhost:3030/10     # Slide 10

Presenter Mode

http://localhost:3030/presenter
http://localhost:3030/presenter/5  # Presenter at slide 5

Overview Mode

http://localhost:3030/overview

Slide Numbering

Default Numbering

Slides numbered 1 to N based on order.

Custom Slide IDs

---
routeAlias: introduction
---

Access via:

http://localhost:3030/introduction

Link to Slide by ID

[Go to Introduction](/introduction)

Navigation Events

Watch Navigation

<script setup>
import { watch } from 'vue'
import { useNav } from '@slidev/client'

const { currentSlideNo } = useNav()

watch(currentSlideNo, (newSlide, oldSlide) => {
  console.log(`Navigated from ${oldSlide} to ${newSlide}`)
})
</script>

Best Practices

1. Learn Core Shortcuts

Essential for smooth presenting:

  • Space / - Forward
  • - Back
  • o - Overview
  • g - Go to

2. Custom Shortcuts for Your Style

// If you prefer Enter/Backspace
{
  key: 'enter',
  fn: () => nav.next(),
}

3. Hide Navigation for Clean Presentations

CSS to hide nav bar:

.slidev-nav {
  display: none;
}

4. Add Progress Indicator

Global bottom component for progress.

5. Practice Navigation

Before presenting:

  • Run through all slides
  • Practice overview jumping
  • Test any custom shortcuts

Output Format

When configuring navigation:

// setup/shortcuts.ts
import { defineShortcutsSetup } from '@slidev/types'

export default defineShortcutsSetup((nav, base) => {
  return [
    ...base, // Keep defaults

    // Custom shortcuts
    { key: '[key]', fn: () => nav.[action]() },
  ]
})

NAVIGATION PLAN:

  • Forward: [key]
  • Backward: [key]
  • Overview: [key]
  • Jump: [method]

CUSTOM COMPONENTS:

  • Progress bar: [yes/no]
  • Page numbers: [yes/no]
  • Custom buttons: [yes/no]

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.