This experiment makes a note’s description, tags, and aliases visible before its body, then combines search, dark mode, and reader mode into a toolbar. It also demonstrates configuration-level layout overrides for different page types. These are sandbox composition choices, not a proposed global layout for the 51 wikis using the shared engine.

Exact excerpt from /home/loca/dev/quartz-sandbox/sandbox/engine/quartz.config.yaml, lines 42–58:

  - source: "@quartz-community/note-properties"
    enabled: true
    options:
      includeAll: false
      includedProperties:
        - description
        - tags
        - aliases
      excludedProperties: []
      hidePropertiesView: false
      delimiters: "---"
      language: yaml
    order: 5
    layout:
      position: beforeBody
      priority: 15
      display: all

The corresponding real frontmatter is copied from /home/loca/dev/quartz-sandbox/sandbox/vault/experiments/note-properties-and-layout-groups.md, lines 1–11. Only the configured fields are selected for the properties view; this is not an instruction to display every frontmatter key.

---
title: Note Properties and Layout Groups
description: "A visible frontmatter properties panel plus grouped toolbar controls, breadcrumbs conditions and page-type layout overrides."
tags:
  - sandbox
  - experiment
  - layout
  - frontmatter
aliases:
  - properties-layout-demo
---

Search joins the toolbar through this exact config excerpt, lines 229–243:

  - source: "@quartz-community/search"
    enabled: true
    options:
      enablePreview: true
      fieldPriority:
        - title
        - content
        - tags
    order: 50
    layout:
      position: left
      priority: 20
      group: toolbar
      groupOptions:
        grow: true

The other toolbar members and conditional breadcrumbs are configured in the same file, lines 273–298:

  - source: "@quartz-community/darkmode"
    enabled: true
    order: 50
    layout:
      position: left
      priority: 30
      group: toolbar
  - source: "@quartz-community/reader-mode"
    enabled: true
    order: 50
    layout:
      position: left
      priority: 35
      group: toolbar
  - source: "@quartz-community/breadcrumbs"
    enabled: true
    options:
      spacerSymbol: "❯"
      rootName: Home
      resolveFrontmatterTitle: true
      showCurrentPage: true
    order: 50
    layout:
      position: beforeBody
      priority: 5
      condition: not-index

Exact global layout block from the same file, lines 376–407:

layout:
  groups:
    toolbar:
      priority: 35
      direction: row
      gap: 0.5rem
  byPageType:
    "404":
      positions:
        beforeBody: []
        left: []
        right: []
    content: {}
    folder:
      exclude:
        - reader-mode
      positions:
        right: []
    tag:
      exclude:
        - reader-mode
      positions:
        right: []
    canvas:
      exclude:
        - table-of-contents
      positions:
        right: []
    bases:
      exclude:
        - table-of-contents
        - reader-mode

The content entry supplies no overrides. Folder and tag pages exclude reader mode and clear the right position; canvas excludes the table of contents and clears the right position. Bases excludes the table of contents and reader mode, but does not clear the right position. The 404 entry clears three positions. These are configuration facts, not measured interaction results.

What the rendered output proves

Live demonstration URL: https://quartz.loca.zone/experiments/note-properties-and-layout-groups.html.

The prior capture in /home/loca/dev/quartz-sandbox/evidence/2026-09-15-quartz-migration-f1fd35c3/sandbox-experiments.json classifies Note properties and layout groups with proof_route: /experiments/note-properties-and-layout-groups.html and the literal proof_markers value note_properties: 1.

The matching rendered_proof.routes entry records 46,982 DOM bytes and these markers:

  • note_properties: 1
  • graph_container: 1, global_graph_container: 1
  • explorer_content: 1, nav_files_container: 1
  • search_button: 1, search_container: 1
  • reading_stats: 1, reading_words: "249", reading_minutes: "2"

This is historical evidence from the prior receipt. The capture used a temporary static origin at http://127.0.0.1:51963 and exact emitted .html routes; its Chrome command exited 0 for all 22 captured routes. The receipt records all_routes_raw_wikilinks: 0 and all_routes_internal_broken_class: 0 across that capture.

The marker proves the properties component was present. It does not separately count each property row, measure toolbar alignment, or establish that every page-type override behaved correctly in the browser. The source config establishes the intended grouping and exclusions. No provided receipt proves graph dragging, explorer navigation, a search query, or a reader-mode toggle. Native canvas and bases outputs are separate fixtures, not this explanatory page: the receipt records canvas_viewport: 1, canvas_nodes: 1, and canvas_node_ids: 20 at https://quartz.loca.zone/experiments/sandbox-tour.canvas.html, and bases_table: 2 and bases_tabs: 1 at https://quartz.loca.zone/experiments/sandbox-notes.base.html. Those markers do not measure layout exclusion behavior.

Safe for the shared engine?

Recorded assessment: safe_for_shared_engine: false.

Receipt reason, verbatim:

Changing global layout groups and page-type overrides would alter navigation chrome across all 51 wikis.

Keep this composition in the isolated sandbox. A safe_for_shared_engine: true verdict does NOT authorize a shared-engine change; report any requirement for such a change as a BLOCKER, not an action. The false classification here is a recorded assessment, not deployment authority either.

Try it in the sandbox

After editing the isolated sandbox’s source or configuration, use its existing build wrapper:

cd /home/loca/dev/quartz-sandbox/sandbox && ./build.sh

The wrapper pins the isolated engine to commit 3dff48b5df6d84c9544a5ae19c8f2cbb01dc44e5 and acquires the nonblocking sandbox/.build.lock; a competing wrapper build fails instead of waiting. It runs install-plugins before bootstrap-cli.mjs build, using --directory /home/loca/dev/quartz-sandbox/sandbox/vault and --output pointing to a fresh timestamped /home/loca/dev/quartz-sandbox/sandbox/dist-<timestamp> release. It checks for index.html before atomically swapping sandbox/current. The running origin sees the new release on the next request without a restart. These steps come from sandbox/build.sh, especially lines 6–8, 28–47, and 72–98.

Recorded runtime invocation from sandbox-runtime.json, reference only:

PATH=/usr/bin:/bin PORT=51947 SANDBOX_ROOT=/home/loca/dev/quartz-sandbox/sandbox/current NODE_ENV=production /usr/bin/node /home/loca/dev/quartz-sandbox/sandbox/serve.mjs

The production service already owns port 51947. Do NOT start a second process or restart the service. The runtime receipt’s earlier hot-swap exercise records without_restart: true, with server_pid_before: 2343441 and server_pid_after: 2343441; that historical manual process is not the present service. No sandbox rebuild or service change was performed to author this documentation.

index