find_nodes
Query Figma document nodes using optional ANDed predicates evaluated inside Figma, returning matching rows as a columnar table for auditing, paging, and design-system checks.
Instructions
Query the document for nodes matching a set of predicates, evaluated inside Figma so only matching rows come back (use this instead of reading a whole subtree and filtering). All predicates are optional and are ANDed together. Returns a columnar table: fields names the columns, rows holds one array per match, plus scanned/total/truncated counts. Examples: {types:["INSTANCE"], mainComponentName:"Button", fillHex:"#ff0000"} finds red button instances; {missingFillStyle:true} finds hardcoded fills with no style or variable bound (design-system drift); {types:["INSTANCE"], hasOverrides:true} finds overridden instances.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Glob against the node name: * and ? wildcards, anchored (e.g. "Button/*"). | |
| limit | No | Max matches to return. Default 200, cap 1000. | |
| types | No | Node types to match, e.g. ["INSTANCE","TEXT"]. | |
| fields | No | Extra per-match columns: fillHex, characters, boundVariableIds, or any node property (e.g. opacity). | |
| offset | No | Skip this many matches, for paging. | |
| fillHex | No | Match nodes with a SOLID fill of this hex, e.g. "#ff0000". | |
| verbose | No | Return an array of objects instead of the columnar fields/rows table. | |
| visible | No | Filter by visibility. | |
| allPages | No | Search every page. Default false (current page only). | |
| matchCase | No | Case-sensitive name/text matching. Default false. | |
| nameRegex | No | Regex against the node name (unanchored). Use instead of name for complex patterns. | |
| layoutMode | No | Match auto-layout mode: NONE, HORIZONTAL, VERTICAL, or GRID. | |
| rootNodeId | No | Restrict to this node's subtree (any page). When set, allPages is ignored. | |
| fillStyleId | No | Match nodes using this paint style id. | |
| textStyleId | No | Match nodes using this text style id. | |
| hasOverrides | No | Instances only: true = has overrides, false = clean. Implies types:["INSTANCE"]. | |
| textContains | No | Substring of a TEXT node's characters. Implies types:["TEXT"]. | |
| fillTolerance | No | 0-1 RGB distance allowed around fillHex. Default 0 (exact). ~0.1 catches near shades. | |
| boundVariableId | No | Match nodes bound to this specific variable id. | |
| hasBoundVariable | No | true = nodes with any bound variable; false = nodes with none. | |
| missingFillStyle | No | true = nodes with a solid fill but no paint style and no bound variable (hardcoded colors); false = the inverse. | |
| mainComponentName | No | Instances only: substring of the main component's name. Implies types:["INSTANCE"]. |