Typix LogoTypix
Components

Image

Renderer, toolbar, caption, alignment popover, and context menu for image nodes — composable so you can swap any piece.

The image UI is the most modular of the Typix components. It ships a renderer (imageRenderer) you register with extension-image, plus a handful of subcomponents you can mix into your own renderer.

Install

npx typix ui add image

The CLI also installs @typix-editor/extension-image if needed.

Import

import {
  imageRenderer,
  ImageComponent,
  ImageResizer,
  ImageToolbar,
  ImageToolbarButton,
  ImageCaption,
  ImageContextMenu,
  ImageAlignmentPopover,
  type ImageAlignment,
  type ImageFeatureFlags,
} from "@/components/typix/main/image";

Components

ExportPurpose
imageRendererThe default renderer to plug into extension-image.
ImageComponentTop-level renderer with toolbar + caption + alignment composed.
ImageResizerDrag-to-resize handles.
ImageToolbarThe hover toolbar (align / replace / download / caption / delete).
ImageToolbarButtonOne toolbar button, for custom toolbars.
ImageCaptionThe editable caption strip.
ImageContextMenuRight-click menu wrapper.
ImageAlignmentPopoverStandalone alignment picker.

ImageFeatureFlags

Toggle which subcomponents render. All default to true:

interface ImageFeatureFlags {
  contextMenu?: boolean;
  toolbar?: boolean;
  resizable?: boolean;
  caption?: boolean;
  alignment?: boolean;
}

ImageAlignment

type ImageAlignment = "left" | "center" | "right" | "full-width";

Usage

Plug the default renderer into the extension:

import { ImageExtension } from "@typix-editor/extension-image";
import { imageRenderer } from "@/components/typix/main/image";

const extensions = [
  StarterKit(),
  ImageExtension({ renderer: imageRenderer }),
];

Custom renderer using just the pieces you want:

import { ImageComponent } from "@/components/typix/main/image";

function MyImageRenderer(props) {
  return (
    <ImageComponent
      {...props}
      features={{ caption: false, resizable: true, toolbar: true }}
    />
  );
}

On this page