PresentationConfig
Presentation-level configuration — mirrors the reveal.js config options plus kslides-specific settings for theme, corner links, Google Analytics, and nested sub-configs (menuConfig, copyCodeConfig, slideConfig, playgroundConfig, letsPlotIframeConfig, diagramConfig).
Configured at three levels that merge in order: global → presentation → slide. The global instance is seeded with kslides defaults via assignDefaults; subsequent presentation- and slide-level instances only carry overrides and are merged on top.
Properties
Globally disable auto-animate transitions. Individual slides can still opt in via data-auto-animate.
Default duration (seconds) for auto-animate transitions.
Default CSS easing function for auto-animate transitions.
Optional custom element matcher used to decide which elements animate between slides.
CSS properties auto-animate can transition. Position and scale are handled separately, so top/left/width/height/margin are not needed here.
When true, elements not matched by auto-animate fade in/out.
Global override for autoplay on embedded media.
When true, user input halts auto-sliding until the next manual navigation.
Default transition style for full-page slide backgrounds.
Visibility of the backwards-navigation arrows. "faded", "hidden", or "visible".
Position of the navigation arrows. "edges" or "bottom-right".
Help the user learn the controls with hints (e.g. bouncing the down arrow the first time a vertical stack is encountered).
Typical time in seconds spent on each slide. Drives the pacing timer in the speaker view; has no effect on actual navigation.
Disable reveal.js's default scaling and centering so that a custom CSS layout can take over.
Load the CopyCode plugin (adds a copy button to code blocks). See CopyCodeConfig.
Load the reveal.js highlight.js plugin for syntax-highlighted code blocks.
Load the reveal.js Markdown plugin (required for com.kslides.slide.MarkdownSlide).
Load the math plugin with MathJax 2 support.
Load the math plugin with MathJax 3 support.
Load the math plugin with KaTeX support.
Load the reveal.js-menu plugin. See MenuConfig.
Load the reveal.js search plugin (keyboard: ctrl+shift+f).
Load the reveal.js speaker-notes plugin.
Load the reveal.js zoom plugin (keyboard: alt+click).
When true, focus the document body on visibility changes so keyboard shortcuts work.
Include the current fragment index in the URL so reloads land on the same fragment.
Google Analytics property id. When non-blank, injects the gtag.js loader and config.
When true, # URL links use 1-based indexing to match the slide number.
Milliseconds of inactivity before the cursor is hidden (requires hideInactiveCursor).
Hide the mouse cursor when it is inactive.
Code-highlighting theme (requires enableHighlight).
Jump-to-slide UI (reveal.js 4.5+). Allows typing a slide number to jump directly.
Optional keyboard-event gate. If set to "focused", embedded decks only receive keyboard events when they have focus.
Values consumed by kslides itself (theme, highlight plugin, corner links, iframe sizing, etc.).
Like viewDistance but for mobile devices; typically lower to conserve resources.
Enable slide navigation via the mouse wheel.
Navigation mode. One of:
Maximum number of pages a single slide can span when printing to PDF (unlimited by default).
Pixel offset subtracted from each exported PDF page's content height to avoid clipping in specific PDF renderers (CLI tools like phantomjs and wkpdf tend to render one pixel differently from in-browser printing).
When true, each fragment is printed on a separate PDF page.
Expose the reveal.js API via window.postMessage.
Dispatch every reveal.js event to the parent window via postMessage.
Global override for iframe lazy loading.
When true, links open in an iframe preview overlay. Individual links can opt out with data-preview-link="false".
When true, reveal.js watches the URL hash and navigates on changes.
Values that correspond to documented reveal.js config options.
Minimum viewport width in pixels before switching to scroll view.
Scroll-view layout (reveal.js 5.0+).
Scroll-progress indicator in scroll view.
Scroll-snap behavior (reveal.js 5.0+).
Context in which the slide number is displayed. "all", "print" (PDF only), or "speaker" (speaker view only).
Slide-number display.
reveal.js theme.
URL for the top-left corner link. Blank hides the corner element.
Inline SVG rendered inside the top-left corner link. Mutually useful with topLeftSvgSrc.
CSS class on the top-left corner <img>/SVG.
URL of an image to display in the top-left corner link (alternative to topLeftSvg).
Inline CSS on the top-left corner <img>/SVG.
<a target> value for the top-left corner link.
Text rendered inside the top-left corner link (after any SVG).
Tooltip / screen-reader title for the top-left corner link.
URL for the top-right corner link. Blank hides the corner element.
Inline SVG rendered inside the top-right corner link.
CSS class on the top-right corner <img>/SVG.
URL of an image for the top-right corner link.
Inline CSS on the top-right corner <img>/SVG.
<a target> value for the top-right corner link.
Text rendered inside the top-right corner link (after any SVG).
Tooltip / screen-reader title for the top-right corner link.
Default slide-transition style (see Transition).
Default slide-transition speed (see Speed).
Number of slides in each direction that remain in the DOM for smooth transitions.
Functions
Configure the CopyCode plugin. Only takes effect when enableCodeCopy is true.
Configure defaults for com.kslides.diagram Kroki images.
Configure defaults for letsPlot{} iframes (from the kslides-letsplot module).
Configure the reveal.js-menu plugin. Only takes effect when enableMenu is true.
Copy all entries from other's maps into this config's maps. Later puts overwrite earlier ones.
Configure defaults for com.kslides.playground iframes.
Configure the default SlideConfig values applied to every slide in the scope.