vizyble.
DocsPricing
vizyble.

Make websites beautiful at the speed of light.

Live text effects for your website. One script tag.

Make your wordSee pricing

Product

  • Docs
  • Pricing
  • Flower text generator
  • Custom designs
  • MCP for AI agents
  • FAQ

Works with

  • Webflow
  • Framer
  • WordPress
  • Next.js

Made for

  • Wedding websites
  • Portfolios
  • Landing pages
  • Florists

Company

  • About
  • Contact
  • Privacy
  • Terms
VIZYBLE

© 2026 Vizyble. All rights reserved.

Created byvikas.

Docs · Builder

Add a live text effect to your site

A live text effect visitors can play with. It moves in a breeze, follows the pointer and lets people drag the flowers around — from one <script> tag. Configure the look below and copy the snippet.

  • Made to be touched

    Moves with the pointer and scroll; every flower can be dragged.

  • Safe by default

    Pauses off screen and stays still for reduced-motion visitors.

  • Fallback built in

    The snippet carries a static image for when scripts can't run.

The word moves: flowers sway, follow the pointer and can be dragged. One small script.

Flower

Preview

Hover, scroll or drag the flowers

VIZYBLE

Motion pauses when the word is off screen or the tab is hidden, and stays still for visitors who prefer reduced motion.

Embed snippet

<div
  data-vizyble-live="/api/v1/live?word=VIZYBLE&font=font-2&flowerSize=42&spacing=7&jitter=8&wordSize=46&verticalStretch=2&letterSpacingScale=3.7"
  data-butterflies="2"
  aria-label="VIZYBLE"
>
  <img src="/api/v1?word=VIZYBLE&font=font-2&flowerSize=42&spacing=7&jitter=8&wordSize=46&verticalStretch=2&letterSpacingScale=3.7&fallback=1" alt="VIZYBLE" style="width:100%;height:auto">
</div>
<script src="/embed/vizyble-live.js" defer></script>

The word fills the width of its container. Add the <script> once per page — it brings every data-vizyble-live element to life, so more words need only more elements. The <img> inside is the static fallback: visitors see it until the live word is ready, or if scripts are blocked.

The live word shows a small “Vizyble” badge on the free plan. Pro removes it.

Works as-is, no key needed: keyless embeds carry a small “Vizyble” badge and get 200 fresh renders a day per site. Reuse the same URL with a different word to keep the look consistent across pages.

Sign in for a free key (below, or from the menu top right) to remove the image badge and raise the limit. Once you reveal it, it's added to these snippets for you.

Get an API key

Platform guides

  • Webflow
  • Framer
  • WordPress
  • Next.js

Use with AI agents

Vizyble has a hosted MCP server, so Claude Code, Cursor, VS Code and other agents can add a live headline to the site they're building. Read-only, no install, no key. Add it with:

claude mcp add --transport http vizyble https://vizyble.dev/api/mcp

Or add it to any client's MCP config:

{
  "mcpServers": {
    "vizyble": {
      "url": "https://vizyble.dev/api/mcp"
    }
  }
}
MCP setup for every client, tools and limits

Live embed attributes

Set on the element that holds the live word. Load /embed/vizyble-live.js once per page and it brings every such element to life.

NameDefaultRangeDescription
data-vizyble-live(required)URLThe /api/v1/live URL. It takes the same query parameters as the image, except the image-only ones.
data-wind-speed10–3How fast the breeze sways the flowers. 0 keeps the air still; pointer and scroll gusts still move them.
data-butterflies00–8Butterflies fluttering around the word, in front of and behind the letters.
data-max-heightnonepixelsLargest height of the word. It shrinks to fit and stays centered; otherwise it fills the element's width.
aria-labelnonetextWhat screen readers announce, usually the word. Leave it out when the text is already on the page, like in the heading snippet.

Query parameters

Shared by Live (/api/v1/live) and its static fallback (/api/v1), so one look works in both.

NameDefaultRangeDescription
word"Vizyble"up to 24 charsThe text to render. Omit it (or leave it blank) and the endpoint renders its own name — handy as a working example.
fontfont-1font-1 / font-2Which lettering style to use — see the Font picker's previews. Unknown values fall back to the default.
objectflower-1flower-1 / flower-2 / flower-3 / flower-4 / flower-5 / flower-6What the letters are made of: flower-1 Violet Cosmos, flower-2 Yellow Frangipani, flower-3 Pink Daisy, flower-4 Violet Bunch, flower-5 Tropical Leaves, flower-6 Blue Bouquet. Unknown values fall back to the default. The earlier name, flower, still works.
flowerSize5810–90Base size of each flower. Letter spacing auto-widens as this grows, so letters keep clearing their neighbors.
spacing154–50Distance between flowers along the letterforms.
jitter50–12Random offset applied to each flower for an organic (non-robotic) look.
strokeWidth00–40Widens the same perpendicular scatter jitter uses, so the letterforms read as a thicker band of flowers.
wordSize10040–250Overall scale of the word as a percentage.
verticalStretch1.001–2Stretches letters taller without widening them.
letterSpacingScaleauto (from flowerSize)1–10Extra tracking between letters. Leave it out to let flowerSize drive it automatically.
lineSpacingScale10.5–3Multiplier on the gap between wrapped rows. Only visible once a multi-word `word` actually wraps onto more than one line.
scaleImage only11–3Pixel density multiplier. Layout, flower count and spacing are unchanged — only the resolution goes up. Use 2 when the image is laid out at a fixed size, so browsers and high-DPI screens aren't downscaling a 1x render.
formatImage onlywebpwebp / pngImage format. webp keeps the transparent background in a much smaller file, so it loads faster. Use png for emails and newsletters — desktop Outlook can't display WebP.
bgcolorImage onlynone (transparent)any CSS color, or none/transparentFills the background instead of leaving it transparent — useful over busy page backgrounds.
fallbackImage only(off)1Set to 1 for the placeholder inside a live snippet: half resolution at lower quality, about a quarter of the download. It shows for a moment before the live word, or if scripts can't run. Leave it out for images shown on their own.
key(none)—Optional. Without it, the word carries a small Vizyble badge and each site gets 200 fresh renders a day. Your free API key (sign in below or from the account menu) removes the image badge and raises the limit. Pro (coming soon) will also remove the Live badge. A wrong key gets a 401.

FAQ

The layout and style stay consistent, but flower placement includes a small random jitter for an organic, hand-placed look rather than a robotic grid. That means two requests with identical parameters won't be pixel-identical, though they'll look the same at a glance.

Yes. The embed builder's "As a heading" snippet wraps the word in a heading tag with the real text kept as visually-hidden text in the page, while the artwork is hidden from screen readers. Search engines and screen readers see the actual heading text; sighted visitors see the flower artwork, so you don't lose that heading's SEO weight.

Without a key, each site gets 200 fresh renders a day; repeat views of the same word are served from cache and don't count. With a free API key, the limit is 60 requests per minute per key. Requests with a wrong key are limited tightly to discourage key-guessing. Limits may change over time.

Sign in and click "Reveal key" from the account menu to see it again. Only regenerate if you think the key's been exposed: that immediately invalidates the old one, so update any embeds still using it first. (Keys created before reveal shipped can't be revealed retroactively; regenerate once to enable it.)

Yes, on any site that lets you add HTML: Webflow, Framer, WordPress, Shopify, Next.js or plain HTML. Live words need the site to allow a script from vizyble.dev; where scripts aren't allowed (some email tools and site builders), use the image-only snippet.

Vizyble is made and run by vikas, an independent developer, and is used in production by real sites. There's no formal SLA yet. Every live embed carries a static image fallback, so if the live script can't load, your page still shows the word.
See all questions