@hexcanvas/vue

Vue binding for HexCanvas, wrapping the custom element.
684 1
Install
npm install @hexcanvas/vue
Latest Version:0.2.0
Vue:3
License:MIT
Last Updated:Oct 24, 2026
Links: GitHub  ·  npm
Maintainer: htjulia

@hexcanvas/vue

hexcanvas.htcom.org · Repository

The Vue binding for HexCanvas, a hex viewer and editor painted on a canvas. It is a wrapper over the <hexcanvas-editor> custom element, not a second implementation: the editor chrome exists once, so a Vue release cannot drift from the React or Svelte one.

npm install @hexcanvas/vue @hexcanvas/core

Vue 3.4 or later (vue is a peer dependency).

<script setup lang="ts">
import { HexEditor } from "@hexcanvas/vue";
import { MemoryByteSource } from "@hexcanvas/core";

const source = new MemoryByteSource(bytes);
</script>

<template>
  <HexEditor :source="source" :byte-group="4" @change="markDirty" />
</template>

Props and events

source is required — a ByteSource from @hexcanvas/core, or the older synchronous BinaryBuffer, which is adapted. The rest are optional: bytesPerRow, rowHeight, addressRadix ("hex" or "decimal"), byteGroup (1, 2, 4 or 8), font, editMode ("read-only", "overwrite" or "insert") and theme.

Events: change, selectionchange, and ready, which hands over the HexEngine so the host can drive search, history or the cursor.

<HexEditor :source="source" edit-mode="read-only" @ready="(engine) => (hex = engine)" />

A template ref also exposes engine() and element(), for the same access outside the ready handler. The element is created in a render function rather than in a template, so no isCustomElement compiler option is needed in your build.

Styling

There is no stylesheet to import. Appearance reads --hexcanvas-* custom properties declared anywhere above the editor, and the chrome — living in a shadow root — is restyled through ::part().

The element adopts those styles as a constructed CSSStyleSheet rather than appending a <style>, so an app with a strict style-src needs no nonce and no hash. From 0.2.0 that sets the browser floor: Chrome 73, Firefox 101 and Safari 16.4.

hexcanvas-editor { --hexcanvas-bg: #fff; --hexcanvas-selection: #bcd9ff; }
hexcanvas-editor::part(panel) { border-radius: 0; }

The full list of custom properties, the keymap, the byte sources and the decoration API are in the repository README.

Licence

MIT. See LICENSE.

Related Packages

vuehex

A fast and flexible Vue 3 component for viewing and editing binary data as a hex...

3,333 7
happy-little-trees

A style guide with auto-generating code samples and on-page nav.

809
honeycomb-grid

Create hexagon grids easily

243,317 707
vue-color-gradient-picker

Color and gradient picker for vue.js

36,015 61
@rareformlabs/vue-colorful

A tiny color picker component library for Vue 3 apps. Fast, accessible, dependen...

1,045 1

Version History

Version Released Vue License
0.2.0 ^3.4.0 MIT
0.1.1 ^3.4.0 MIT
0.1.0 ^3.4.0 MIT
Pre-releases (1)
Version Released Vue License
0.1.0-next.0 ^3.4.0 MIT