github ufira-ai/Vibma v1.1.0

latest releases: v1.1.2, v1.1.1
6 hours ago

New Endpoints

  • library — discover and use published team library components and styles via Figma REST API. Results grouped by source file and section, mirroring Figma's Libraries browser. Scoped library and section filters on get disambiguate overlapping names.
  • icons — search 200,000+ icons from 100+ collections via the Iconify public API. Auto-detects fill vs stroke icons and routes color bindings accordingly. (#100)
  • images — search Pexels stock photos with search, visually confirm with preview, and place with imageUrl:"pexel:<id>". Photographer attribution applied automatically. (#101)
  • annotations — create and manage design annotations with categories, markdown labels, and measurement properties. Inline annotations param on frames.create, text.create, and shape creation. (#104)

New Features

  • imageUrl on all node types — accepts pexel:<id>, any public URL, or a local file path. SVGs are inserted as vector nodes; raster images become IMAGE fills. imageScaleMode controls FILL/FIT/CROP/TILE. (#101)
  • Unified style resolutiontextStyleName, fillStyleName, strokeStyleName, and effectStyleName all resolve local styles first, falling back to library import on demand. No manual import step.
  • explicitMode on instances.create — pin variable modes (e.g. Light/Dark) at creation time.
  • Post-append overflow warning — warns when children exceed a FIXED-sized auto-layout parent.
  • skipInstances and minSeverity on lint.check — consistent with audit on all node endpoints.
  • flexStringList coercion — bare strings auto-wrap to arrays for all string[] params.
  • dev_reload tool — hot-reload the MCP server without restarting the AI client.
  • Claude Code skillsfigma-start-macos automates Figma launch, plugin loading, and connection. vibma-dev enforces single-source-of-truth workflow for plugin development.

Bug Fixes

  • instances.clone on library instances no longer produces a COMPONENT_SET — clone now returns a same-type copy.
  • text.update with library textStyleName no longer silently drops the style.
  • text.update with explicit width now sets textAutoResize:"HEIGHT" so the dimension takes effect.
  • text.update with an unresolved style name now emits an error hint instead of silent "ok".
  • lint empty-container no longer flags frames with image or gradient fills.
  • lint overflow-parent suppresses instance-internal findings when skipInstances is true.
  • Cross-axis sizing respects parent alignment — FILL no longer overrides CENTER or BASELINE. (#105)
  • Width/height with HUG or FILL now warns instead of silently discarding the value. (#106)
  • lineHeight < 10 warns when a bare number looks like a CSS multiplier instead of pixels. (#102)
  • fontWeight on update suggests fontStyle when the agent passes a non-standard weight name. (#102)
  • REST API gradient format detected and warned — gradientHandlePositions is stripped before applying fills to avoid plugin API rejection. (#102)
  • imageUrl in children — pre-processor now recurses into nested children arrays. (#102)
  • Library style imports guarded against plugin thread stalls with per-call timeouts and batch caps.

Schema & Compiler

  • Atomic mixins — new fill_params, stroke_params, corner_params, scene_params, vector_style_params for cleaner param composition. (#100)
  • $mixin at method level — compiler now supports mixin expansion inside method params, not just type discriminants.

Configuration

Three optional environment variables unlock additional tools:

Variable Purpose
FIGMA_API_TOKEN Library tool — requires a Figma PAT with file_content:read and team_library_content:read scopes
FIGMA_TEAM_ID Default team for library discovery — the number in figma.com/files/team/<ID>/…
PEXELS_API_KEY Images tool — free at pexels.com/api/key

All core design tools work without API keys. The library tool validates credentials at startup and is hidden when they are missing or invalid.

Don't miss a new Vibma release

NewReleases is sending notifications on new releases.