<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/the-hidden-gem-of-vaadin-25-the-element-api-now-supports-svg-and-mathml--jbo1lyoew" -->

---
title: The Hidden Gem of Vaadin 25: The Element API now...
description: Vaadin 25's Element API now supports creating and modifying SVG and MathML elements directly in Java, eliminating the need for string-based SVG construction....
canonical: https://daily.dev/posts/the-hidden-gem-of-vaadin-25-the-element-api-now-supports-svg-and-mathml--jbo1lyoew
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: The Hidden Gem of Vaadin 25: The Element API now supports SVG (and MathML) | daily.dev
og:description: Vaadin 25's Element API now supports creating and modifying SVG and MathML elements directly in Java, eliminating the need for string-based SVG construction....
og:url: https://daily.dev/posts/the-hidden-gem-of-vaadin-25-the-element-api-now-supports-svg-and-mathml--jbo1lyoew
og:image: https://api.daily.dev/og/posts/jbO1lYoew.png
og:image:alt: The Hidden Gem of Vaadin 25: The Element API now supports SVG (and MathML)
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# The Hidden Gem of Vaadin 25: The Element API now supports SVG (and MathML)

**[Vaadin](https://daily.dev/sources/vaadin)** · 6 min read · 0 upvotes · 0 comments

## Summary

Vaadin 25's Element API now supports creating and modifying SVG and MathML elements directly in Java, eliminating the need for string-based SVG construction. This enables developers to build interactive vector graphics programmatically with type safety, attach event listeners to SVG elements, and update specific DOM nodes incrementally. The change allows treating SVG as a first-class component surface rather than markup strings, with practical applications like clickable chart segments and dynamic line drawing between components. Helper classes in the Viritin library provide typed, IDE-friendly APIs for common SVG elements and path operations.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://blog.vaadin.com/the-hidden-gem-of-vaadin-25-the-element-api-now-supports-svg-and-mathml>

## Similar posts on daily.dev

- [Vaadin 25.2: Build UIs in plain language, and call the browser from Java](https://daily.dev/posts/vaadin-25-2-build-uis-in-plain-language-and-call-the-browser-from-java-oy0ibl7qx) · Vaadin · 6 upvotes · 0 comments
- [SVG in GTK](https://daily.dev/posts/svg-in-gtk-pu1kjdn5v) · Lobsters · 0 upvotes · 0 comments
- [How to Build a Scalable SVG Icon System for Your Web App](https://daily.dev/posts/how-to-build-a-scalable-svg-icon-system-for-your-web-app-xmcvyo3hx) · SitePoint · 7 upvotes · 0 comments

---

Tags: [#webdev](https://daily.dev/tags/webdev), [#java](https://daily.dev/tags/java), [#dom](https://daily.dev/tags/dom), [#svg](https://daily.dev/tags/svg), [#vaadin](https://daily.dev/tags/vaadin)

[View this post on daily.dev](https://daily.dev/posts/the-hidden-gem-of-vaadin-25-the-element-api-now-supports-svg-and-mathml--jbo1lyoew)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"The Hidden Gem of Vaadin 25: The Element API now supports SVG (and MathML)","url":"https://daily.dev/posts/the-hidden-gem-of-vaadin-25-the-element-api-now-supports-svg-and-mathml--jbo1lyoew","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/the-hidden-gem-of-vaadin-25-the-element-api-now-supports-svg-and-mathml--jbo1lyoew"},"datePublished":"2026-01-09T17:27:09.417Z","dateModified":"2026-08-24T06:50:49.035Z","description":"Vaadin 25's Element API now supports creating and modifying SVG and MathML elements directly in Java, eliminating the need for string-based SVG construction....","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/d343953609c60ab9a1431bb981684622?_a=AQAEulh","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/d343953609c60ab9a1431bb981684622?_a=AQAEulh","isAccessibleForFree":true,"articleSection":"Vaadin","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Vaadin","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/052f2fad97c542a19c754e60d6264e45","url":"https://daily.dev/sources/vaadin"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/the-hidden-gem-of-vaadin-25-the-element-api-now-supports-svg-and-mathml--jbo1lyoew","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"webdev,java,dom,svg,vaadin","timeRequired":"PT6M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Vaadin","item":"https://daily.dev/sources/vaadin"},{"@type":"ListItem","position":3,"name":"The Hidden Gem of Vaadin 25: The Element API now supports SVG (and MathML)"}]}
```

