Dev ToolbarBuilt-in AppsSettings

Settings

Control the toolbar's appearance, behaviour, and keyboard shortcuts. All settings are persisted to localStorage and applied immediately.

Last updated:

App ID: dev-toolbar:settings

The Settings app provides a UI for every user-adjustable preference. Changes are applied immediately and persisted to localStorage under the key __v_dt__frame_state, so they survive page reloads. Plugin-level defaults (from vite.config.ts) are used as the initial values; user choices always take priority.

Setting Groups

Appearance

SettingDescriptionDefault
ThemeLight, Dark, or System (follows prefers-color-scheme)System
Reduce motionDisable all animations and transitions in the toolbarOff

Toolbar

SettingDescriptionDefault
Auto-hide when inactiveCollapse the toolbar pill after a period of inactivity. Options: Never, Always, 2 s, 5 s, 10 s, 30 s5 s
Show toolbar when panel is closedKeep the toolbar pill visible even when no app panel is openOn

Panel

SettingDescriptionDefault
Close on outside clickClose the DevTools panel when clicking anywhere outside itOn

Editor

SettingDescriptionDefault
Preferred editorEditor used when clicking "Open in editor" in the Inspector. Overrides the plugin-level editor option per-userAuto-detected

Select from a dropdown of all editors supported by launch-editor (VS Code, WebStorm, Cursor, Vim, etc.). Choose Auto-detected to let launch-editor detect the running IDE from the OS process list or EDITOR / VISUAL environment variables.

Keyboard Shortcuts

SettingDescriptionDefault
Toggle toolbarOpen or close the DevTools panelAlt+Shift+D
Close panelDismiss the active app or close the panelEscape

Each keyboard shortcut has a Record button that enters capture mode — the next key combination you press (excluding lone modifier keys) is saved as the new binding. A Reset link appears next to a customised binding to restore the default.

Recording a Custom Shortcut

  1. Click Record next to the shortcut you want to change
  2. The button pulses and reads "Press keys…"
  3. Press the desired key combination (e.g. Ctrl+Shift+F)
  4. The new binding is saved immediately
  5. A Reset link appears if the binding differs from the default

To cancel without saving, click the button.

Supported Key Formats

Key names follow the browser's KeyboardEvent.key specification. Modifier prefixes are:

ModifierPrefix
Alt / OptionAlt
ControlControl
Meta / Cmd / WinMeta
ShiftShift

Examples: Alt+Shift+D, Control+Shift+P, Meta+K, F12

localStorage Schema

All settings are stored as a JSON object:

interface DevToolsFrameState {
    closeOnOutsideClick: boolean;
    editor: string; // preferred editor key, "" = auto-detect
    height: number; // panel height % (20–95)
    isPip: boolean; // picture-in-picture mode
    isFirstVisit: boolean; // onboarding hint shown
    keybindings: {
        toggle: string; // e.g. "Alt+Shift+D"
        close: string; // e.g. "Escape"
    };
    left: number; // pill horizontal position % (0–100)
    minimizePanelInactive: number; // ms, -1 = never
    open: boolean; // panel open state (never restored on load)
    position: "top" | "bottom" | "left" | "right";
    preferShowFloatingPanel: boolean;
    reduceMotion: boolean;
    route: string;
    top: number; // pill vertical position % (0–100)
    viewMode: "default" | "fullscreen" | "wide";
    width: number; // panel width % (0–100)
}

Storage key: __v_dt__frame_state

Plugin Defaults

You can set project-level defaults in vite.config.ts. These are used as the initial values when no localStorage state exists:

vite.config.ts
devToolbar({
    closeOnOutsideClick: true,
    editor: "webstorm", // seeds the "Preferred editor" dropdown for all users
    height: 60,
    keybindings: {
        toggle: "Alt+Shift+D",
        close: "Escape",
    },
    minimizePanelInactive: 5000,
    position: "bottom",
    reduceMotion: false,
    width: 80,
});

User choices in the Settings app always override these defaults.

View Modes

The panel supports three view modes accessible via the panel header controls:

ModeDescription
defaultPanel fills the configured width percentage
widePanel expands to 100% viewport width
fullscreenPanel covers the entire viewport

View mode can also be set programmatically via the Global API.

Support

Contribute to our work and keep us going

Community is the heart of open source. The success of our packages wouldn't be possible without the incredible contributions of users, testers, and developers who collaborate with us every day.Want to get involved? Here are some tips on how you can make a meaningful impact on our open source projects.

Ready to help us out?

Be sure to check out the package's contribution guidelines first. They'll walk you through the process on how to properly submit an issue or pull request to our repositories.

Submit a pull request

Found something to improve? Fork the repo, make your changes, and open a PR. We review every contribution and provide feedback to help you get merged.

Good first issues

Simple issues suited for people new to open source development, and often a good place to start working on a package.
View good first issues