Skip to content

Configuration

VueFinder provides a comprehensive configuration system that allows you to customize its behavior and appearance.

Config Options

All configuration options are passed via the config prop:

vue
<vue-finder
  id="my_vuefinder"
  :driver="driver"
  :config="{
    view: 'grid',
    theme: 'valorite',
    persist: true,
  }"
/>

Configuration Properties

PropertyTypeDefaultDescription
view'grid' | 'list''grid'View mode: grid or list
themeTheme'silver'Theme name (see Theming)
fullScreenbooleanfalseStart in full-screen mode
showTreeViewbooleanfalseShow sidebar tree view
expandTreeByDefaultbooleanfalseExpand storage root and first-level tree folders by default
expandedTreePathsstring[][]Paths that should be expanded in tree view (for targeted default expansion)
showHiddenFilesbooleantrueShow hidden files
metricUnitsbooleanfalseUse metric file sizes (KB, MB) instead of binary (KiB, MiB)
showThumbnailsbooleantrueShow image thumbnails
persistbooleanfalsePersist current path/config to localStorage
showMenuBarbooleantrueShow menu bar (non-persistent, resets on page reload)
showToolbarbooleantrueShow toolbar (non-persistent, resets on page reload)
showBreadcrumbBarbooleantrueShow breadcrumb bar (non-persistent, resets on page reload)
initialPathstring | nullnullInitial path on mount
loadingIndicator'linear' | 'circular' | string'circular'Loading indicator style
maxFileSizenumber | string | nullnullMaximum file upload size (e.g., '10mb', '50mb')
pinnedFoldersDirEntry[][]Array of pinned folders
notificationsEnabledbooleantrueEnable/disable toast notifications (non-persistent, prop always applies)
notificationPosition'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right''bottom-center'Toast position
notificationDurationnumber3000Toast duration in milliseconds
notificationVisibleToastsnumber4Max visible toasts at once
notificationRichColorsbooleantrueEnable rich toast colors
gridItemWidthnumber96Width of grid items in pixels
gridItemHeightnumber80Height of grid items in pixels
gridItemGapnumber8Gap between grid items in pixels
gridIconSizenumber48Size of icons in grid view (pixels)
listItemHeightnumber32Height of list items in pixels
listItemGapnumber2Gap between list items in pixels
listIconSizenumber16Size of icons in list view (pixels)

Examples

Basic Configuration

vue
<template>
  <vue-finder
    id="basic"
    :driver="driver"
    :config="{
      view: 'grid',
      theme: 'silver',
      persist: false,
    }"
  />
</template>

Advanced Configuration

vue
<template>
  <vue-finder
    id="advanced"
    :driver="driver"
    :config="{
      view: 'list',
      theme: 'valorite',
      fullScreen: false,
      showTreeView: true,
      showHiddenFiles: false,
      metricUnits: true,
      showThumbnails: true,
      persist: true,
      initialPath: 'local://documents',
      loadingIndicator: 'linear',
      maxFileSize: '50mb',
      pinnedFolders: [],
    }"
  />
</template>

With Persistence

When persist: true, VueFinder saves the current path and user-toggled settings (view, theme, showHiddenFiles, …) to localStorage so they survive a page reload:

vue
<template>
  <vue-finder
    id="persistent"
    :driver="driver"
    :config="{
      persist: true,
      initialPath: 'local://',
    }"
  />
</template>

How :config interacts with persisted values

The :config prop is treated as initial defaults, not an override. When persist: true and a value already exists in localStorage, the persisted value wins on reload — otherwise the user toggling view/theme/etc. would silently get reset every time the page loaded.

In practice:

  • First load (no persisted value yet) — :config values are used.
  • Subsequent loads — persisted values take precedence; :config only fills in keys the user hasn't touched.

The persisted values live under the vuefinder_config_<id> localStorage key. To force a reset back to the :config defaults during development, clear that key (or call localStorage.removeItem('vuefinder_config_<id>')) and reload.

persist governs the path, not the settings — view, theme, fullScreen, showTreeView and the rest are stored either way. persist: false only means the instance opens at initialPath instead of resuming where the user left off.

UI Visibility Settings

You can control the visibility of the menu bar, toolbar and breadcrumb bar using the showMenuBar, showToolbar and showBreadcrumbBar config options. These are non-persistent options that reset to their default values (true) on page reload.

Setting showBreadcrumbBar: false is useful when a custom menu bar (built via MenuBar's #menu-items slot) already displays the current path and navigation actions, so the default breadcrumb bar would be redundant.

For detailed examples and usage, see the UI Visibility example.

Notifications + @notify

You can keep event notifications while disabling built-in toast UI:

vue
<vue-finder
  id="notify"
  :driver="driver"
  :config="{
    notificationsEnabled: false,
    notificationDuration: 5000,
    notificationPosition: 'top-right',
  }"
  @notify="({ type, message }) => handleNotify(type, message)"
/>
  • notificationsEnabled: false hides toast popups.
  • @notify still emits { type, message } for external handling.
  • All notification options (notificationsEnabled, notificationPosition, notificationDuration, …) are non-persistent, so the :config value always takes effect — even with persist: true, they are never read back from localStorage.

Tree Expansion

Use these options together for default tree expansion behavior:

vue
<vue-finder
  id="tree"
  :driver="driver"
  :config="{
    showTreeView: true,
    expandTreeByDefault: false,
    expandedTreePaths: ['local://documents', 'local://documents/work'],
  }"
/>
  • expandTreeByDefault: true expands storage roots and first level.
  • expandedTreePaths expands specific branches (and required parent nodes) by path.