Skip to the content.

getWidgetReference

Get comprehensive documentation for a Fluvie widget including properties, methods, and usage examples.

Overview

The getWidgetReference tool provides detailed information about Fluvie widgets:

Input Schema

{
  "type": "object",
  "properties": {
    "widgetName": {
      "type": "string",
      "description": "Name of the widget (PascalCase)"
    }
  },
  "required": ["widgetName"]
}

Available Widgets

Core Widgets

Layout Widgets

Text Widgets

Media Widgets

Audio Widgets

Animation Widgets

Example Request

{
  "widgetName": "Layer"
}

Example Response

{
  "name": "Layer",
  "description": "A layer with time-based visibility for video compositions. Layers automatically show and hide based on the current frame, with optional fade transitions.",
  "category": "layout",
  "properties": [
    {
      "name": "id",
      "type": "String?",
      "required": false,
      "description": "Optional identifier for the layer"
    },
    {
      "name": "startFrame",
      "type": "int",
      "required": false,
      "default": 0,
      "description": "Frame when the layer becomes visible"
    },
    {
      "name": "endFrame",
      "type": "int?",
      "required": false,
      "default": null,
      "description": "Frame when the layer becomes hidden (null = visible until end)"
    },
    {
      "name": "fadeInFrames",
      "type": "int",
      "required": false,
      "default": 0,
      "description": "Number of frames for fade-in transition"
    },
    {
      "name": "fadeOutFrames",
      "type": "int",
      "required": false,
      "default": 0,
      "description": "Number of frames for fade-out transition"
    },
    {
      "name": "blendMode",
      "type": "BlendMode",
      "required": false,
      "default": "BlendMode.srcOver",
      "description": "How this layer blends with layers below"
    },
    {
      "name": "child",
      "type": "Widget",
      "required": true,
      "description": "The content of this layer"
    }
  ],
  "constructors": {
    "default": "Layer({id, startFrame, endFrame, fadeInFrames, fadeOutFrames, blendMode, required child})",
    "background": "Layer.background({fadeInFrames, required child}) - Always visible background",
    "overlay": "Layer.overlay({blendMode, required child}) - Always visible overlay"
  },
  "example": "LayerStack(\n  children: [\n    Layer.background(\n      child: GradientBackground(),\n    ),\n    Layer(\n      startFrame: 30,\n      endFrame: 120,\n      fadeInFrames: 15,\n      fadeOutFrames: 15,\n      child: TitleText('Hello World'),\n    ),\n    Layer.overlay(\n      blendMode: BlendMode.screen,\n      child: Watermark(),\n    ),\n  ],\n)",
  "seeAlso": ["LayerStack", "Sequence", "TimeConsumer"],
  "tips": [
    "Use Layer.background() for content that should always be visible",
    "Fade transitions create smooth visual flow",
    "Combine with BlendMode for creative compositing effects"
  ]
}

Error Handling

If the widget is not found:

{
  "error": "Widget not found",
  "widgetName": "NonExistent",
  "suggestions": ["Layer", "LayerStack", "VideoComposition"],
  "hint": "Did you mean one of these? Widget names are case-sensitive."
}