Skip to main content


The useWidgetId hook gives you a way to reference the active widget node in event handlers like onClick. It returns a node id which can be used to retrieve and identify the active WidgetNode via the plugin API (eg. figma.getNodeById).


useWidgetId(): string



Note that figma.getNodeById shouldn’t be called when rendering a widget (this will throw an error). Instead, this should be used inside event handlers where using the plugin API is allowed. See the Rendering Code for more details.

Usage Example

useWidgetId example
const { widget } = figma
const { Text, useWidgetId } = widget

function UseWidgetIdExample() {
const widgetId = useWidgetId()

return (
onClick={() => {
const widgetNode = figma.getNodeById(widgetId) as WidgetNode;
const clonedWidget = widgetNode.clone();

// Position the cloned widget beside this widget
clonedWidget.x = widgetNode.x + widgetNode.width + 50;
clonedWidget.y = widgetNode.y;
Make a copy