In this release we keep pushing Penpot’s design system foundations forward, with a big focus on design tokens. We’re making long token names easier to navigate, opening up tokens in the plugins API, and tackling one of the trickiest moments in token workflows: renaming (without breaking everything).
On top of that, you’ll find a handful of quality-of-life improvements and some performance work in the sidebar to keep things feeling smooth as your files grow. Let’s dive in ![]()
Design Tokens groups
Token names tend to be long because they carry structure (type, state, variant, etc.). That structure is useful, but browsing a flat list of dotted paths is not. Token groups let you navigate dotted token paths as nested, collapsible sections.
Everything before the final segment becomes a group, and only the last segment stays as the token pill (so the “chip” is still where your actions live). Open groups stay open while you move around (they reset on page reload), creating a token auto-unfolds the path so it’s visible, and tokens keep the same actions (delete/edit/duplicate). If you edit a token path and change group segments, the token moves accordingly (creating groups if needed) and empty groups are cleaned up.
Design tokens in the plugins API
Design tokens are now available in the Penpot plugins API. That means plugins (and external tools built around Penpot, like AI clients or Penpot MCP) can finally work with tokens programmatically and automate token workflows that used to be purely manual.
As a concrete example of what this unlocks: check out the Design Token Manager plugin by @juan.delacruz.
If you’ve been waiting to generate tokens, sync them, or manipulate them from your own tools, this is the missing piece.
Remap references when renaming tokens
Renaming tokens sounds simple until you remember the references. One change can ripple through aliases, applied tokens, tooltips, math operations… and suddenly you’re left with a broken chain. In 2.14, renaming a token can optionally remap its references so connections stay intact and the design updates to the new token name.
Remapping is always optional and we’ll prompt you (because sometimes you don’t want to keep the current connections). When enabled, it works across the file and takes libraries into account so updates can propagate through components. This covers single-token renames (e.g. color.background.secondary → c.bg.sec); group renames are planned separately, and we’re also looking at bulk/import/sync remapping.
Layer panel: lock & hide controls
Lock and hide controls in the layer panel are getting a usability boost. The lock and visibility icons stay fixed in a right-aligned column regardless of indentation, and scrolling won’t make them awkward to click (even in deeply nested files).
Sidebar performance
We’re also improving sidebar performance, with a focus on keeping interactions fluent. The goal is to lazy-load the shape list on-demand and avoid UI stalls when clicking or hovering around the sidebar.
Color picker: keyboard stepping
And one more: you can now use Shift/Alt arrow key stepping in color picker inputs (a community contribution by @eureka928
, PR: https://github.com/penpot/penpot/pull/8301).
More coming soon
For a complete breakdown, you can always visit the Dev Diaries. Stay tuned because we have juicy things in the oven, some of them related to the MCP server and the new render engine ![]()



