mirror of
https://github.com/jackyzha0/quartz.git
synced 2026-03-22 05:55:42 -05:00
61 lines
2.6 KiB
Markdown
61 lines
2.6 KiB
Markdown
---
|
||
title: StackedPages
|
||
tags:
|
||
- plugin/component
|
||
image:
|
||
---
|
||
|
||
Andy Matuschak-style stacked pages (sliding panes). Clicking internal links opens pages side by side in a horizontal stack, allowing you to trace your path through your notes. Each pane shows a full page and can be individually scrolled or closed.
|
||
|
||
> [!note]
|
||
> For information on how to add, remove or configure plugins, see the [[configuration#Plugins|Configuration]] page.
|
||
|
||
## Usage
|
||
|
||
Once enabled, clicking any internal link on a page opens the linked page as a new pane to the right instead of navigating away. The URL updates with a `#stacked=slug1,slug2` hash encoding your current stack, so you can share or bookmark a specific trail of pages.
|
||
|
||
Stacked pages are disabled on mobile by default (below 800px) since horizontal panning doesn't work well on small screens. On mobile, links navigate normally.
|
||
|
||
### Interactions
|
||
|
||
- **Click a link**: Opens the target page in a new pane to the right. If the maximum number of panes is reached, the leftmost pane is removed.
|
||
- **Close a pane**: Click the × button in the pane header to remove it from the stack.
|
||
- **Collapsed spines**: When panes overflow the viewport, earlier panes collapse to a thin vertical spine showing the page title. Click a spine to bring that pane back into focus.
|
||
- **Browser back/forward**: The full stack state is stored in the URL hash and integrated with browser history, so back/forward navigation works as expected.
|
||
|
||
## Configuration
|
||
|
||
This plugin accepts the following configuration options:
|
||
|
||
- `paneWidth`: Width of each stacked pane in pixels. Defaults to `640`.
|
||
- `maxPanes`: Maximum number of panes visible at once. Defaults to `5`.
|
||
- `enableOnMobile`: Whether to enable stacked pages on mobile devices. Defaults to `false`.
|
||
- `mobileBreakpoint`: Viewport width (in pixels) below which the mobile behavior applies. Matches the Quartz mobile breakpoint. Defaults to `800`.
|
||
- `showSpines`: Whether to show collapsed spine headers when panes overflow. Defaults to `true`.
|
||
- `animateTransitions`: Whether to animate pane open/close transitions. Defaults to `true`.
|
||
|
||
### Default options
|
||
|
||
```yaml title="quartz.config.yaml"
|
||
- source: github:quartz-community/stacked-pages
|
||
enabled: true
|
||
layout:
|
||
position: afterBody
|
||
priority: 50
|
||
display: all
|
||
options:
|
||
paneWidth: 640
|
||
maxPanes: 5
|
||
enableOnMobile: false
|
||
mobileBreakpoint: 800
|
||
showSpines: true
|
||
animateTransitions: true
|
||
```
|
||
|
||
## API
|
||
|
||
- Category: Component
|
||
- Function name: `ExternalPlugin.StackedPages()`.
|
||
- Source: [`quartz-community/stacked-pages`](https://github.com/quartz-community/stacked-pages)
|
||
- Install: `npx quartz plugin add github:quartz-community/stacked-pages`
|