Schema by Figma 2025: Keynote
By Figma
Summary
## Key takeaways - **Figma's Design Systems Remodel Boosts Performance**: A huge rewrite of Figma's core design systems architecture has significantly improved performance, with basic editing up to 60% faster and prototyping interactions up to three times faster. This foundational effort was necessary to unlock new features. [10:36], [12:14] - **Extended Collections Simplify Multi-Brand Design Systems**: Figma's new Extended Collections for variables address the complexity of managing large design systems across multiple brands. Internally, this feature reduced over 32,000 unique variable values to under 6,000, allowing for easier inheritance and overrides. [12:59], [24:32] - **Slots Enable Flexible Component Editing Without Detaching**: Slots introduce configurable regions within components that can be freely edited by consumers, similar to React children properties. This allows designers to easily insert content and make changes while staying connected to the main component, simplifying component management. [20:40], [23:44] - **Check Designs Linter Ensures Design System Adherence**: Check Designs is a native design linter powered by a custom-trained ML model that helps teams maintain consistency by flagging hard-coded values, low contrast, and other deviations from the design system. It can make dozens of changes in moments, saving significant downstream effort. [28:16], [32:46] - **Code Connect & MCP Align Design and Code for AI**: Figma's Code Connect and Model Context Protocol (MCP) enable deep alignment between design systems and codebase context, delivering precise information to AI tools. This eliminates search steps for AI, improves efficiency, reduces LLM costs, and increases confidence in production UI generation. [37:15], [47:15] - **Make Kits & NPM Import for AI-Powered Prototypes**: Figma Make now supports "Make Kits" to convert design libraries into interactive React components, and allows direct import of public and private NPM packages. This empowers teams to generate professional-grade, interactive prototypes using their own production components and design systems. [53:20], [58:40]
Topics Covered
- Design is Entering its Most Empowered Stage
- AI as a Creative Multiplier, Not an Assembly Line
- Design Systems: The Backbone of Great Products
- Figma Make: Professional-Grade Production Beyond Generic AI
- AI and Design Systems: Scaling Craft and Rising Quality
Full Transcript
Heat.
[Music]
[Music]
Hey Heat.
[Music]
Please welcome to the stage Figma's
chief design officer, Laurana Chrysam.
[Music]
Welcome to Schema and thank you so much
for waiting with us while we got
everyone in through the grueling SF
traffic. I'm Laura Donna Krishan,
Figma's chief design officer. And show
of hands, how many of you are new to
schema this year?
Wow, quite a few. And so am I. I joined
Figma a few weeks ago after nearly a
decade leading messaging and AI at Meta
because I believe design is entering its
most empowered stage yet. And we'll get
into that in a moment. But first,
Schema started four years ago with a
simple idea. Bring design systems people
together to share knowledge and expand
the craft. And that very much remains
our goal today.
But the world around us, well, that
definitely has changed.
It's a dizzying time to be a designer.
Every day brings about a new model, a
new buzzword, a new tool, and we're
expected to absorb it all, ship faster,
learn faster, redesign the whole app
before lunch.
And the problem is that the hype often
too often outruns the craft, leaving all
of us wondering, can this really be the
future of design?
And I believe that it can be, but only
if we step in and shape it ourselves.
We're in a moment of immense promise
where with just a few prompts, you could
design and build the app of your dreams.
This is mine. I built this AI outfit
generator in Figma make. It's inspired
by Clueless um in just a few days and I
am no coder. And this is why I joined
Figma because I saw an opportunity and
as a crafts person a responsibility
to elevate design as the most important
step between idea and finished product.
And I joined Figma
because as a company we see AI a bit
differently. Not as an assembly line for
pixels, but as a tool that makes you
creative, that speeds you up without
taking over. A multiplier that puts you
in control. And you could see this in
everything we build from Figma make to
simple things like removing backgrounds
and renaming layers. And so before we
get into the wonderful world of tokens
and variables today, I have an ask.
Designers, don't just adapt to this
moment. Shape it. Push your tools to not
only automate your possibilities, but
expand them. Because when we do, we will
enter design's most empowered stage yet,
where more builders can, yes, ship
faster. That's good, too. But most
importantly, imagine more. Because let's
face it,
there is nothing more human than the
drive to create and nothing more
powerful than the tools we build to
unlock it.
And with that, I would love to welcome
VP of product Paige Costello to the
stage to talk to you about the unsung
hero behind the world's best product
experiences. Yes, the design system.
Paige, come on over.
[Music]
What's up, schema? Hello. Hello.
Welcome. My name is Paige Costello. I'm
responsible for Figma Design and uh
before I joined Sche before I joined
schema and Figma. Uh I was responsible
for scaling design systems at ASA. Uh I
led their core product and their AI. I
also saw the impact of design systems at
intercom and into it. And now I'm
responsible for evolving the very
foundations of design systems
infrastructure here.
What I've learned is simple.
Design systems form the very backbone of
the world's best products. They create
coherence, consistency, and clarity for
the teams who build.
Design systems don't choose between
craft and scale. They build for both. No
matter how many teams, how many
products, how many platforms you're
supporting.
Now, many of you manage hundreds of
libraries across organizations and
products. You're juggling significant
complexity.
We've seen variant sets as large as
17,000 variants
and libraries with 1 million layers. Go
you.
uh you're shipping the components,
you're updating the documentation,
you're doing the bug bashes, you're
designing and redesigning those
contribution models,
you're answering the questions on Slack,
hosting the office hours, and yeah,
pulling some late nights when you need
to.
But in this moment, they're becoming
something more.
Today, design systems form that shared
language between engineering and design
that brings production into focus.
But tomorrow, they're going to power an
entirely new way to create.
With AI,
our workflows are changing. Suddenly, so
many more people can build. And as this
happens, our design systems gain more
leverage and reach more people than ever
before. It changes their role. So when
your system lives in Fig Figma, it's
connected to your repo and it's
interpreted by MCP. It stops being a
static library and it starts to becoming
to become a living system for how your
product looks, feels, and moves.
That's why it's a priority for us to
pull together all the context that
floats across your code, your
documentation, and Figma to make sure
that the context your teams need to
build is at their fingertips and that
they can get so much more from AI.
Our goal is clear. Design systems must
raise quality as more people join the
building frey. The future of design
systems is not about efficiency. It's
about building great products that are
high craft a lot faster.
I want to share three ways we're
evolving design systems to meet this
moment.
First, design systems need to be
adaptable. They need to make they need
to keep up and sprint ahead of the way
your teams explore ideas.
They need codebased context so that
design and engineering can finally move
as one. And they need to be built for
the whole team for everyone shaping
products, the PMs, the researchers,
built right into the tools they're
already using.
Many of the demos you're going to see
today are shipping this week, the rest
this month. Um, but we also heard from
you that a little heads up goes a long
way. So, we're going to be giving you
act insight into what's coming into
early access as well.
What you're going to see here isn't
everything we're working on. Some of
it's not ready for the main stage, but
we want you to see the pace and
direction. We hope you feel it, too.
Let's start with a look under the hood.
Please welcome engineers Naomi Jung and
Edward M to the stage.
Hello schema. How's everyone doing this
morning?
>> I'm I'm Naomi and I'm a software
engineer working on our design editor.
>> And I'm Edward. I'm also an engineer
working on design systems. We are both
so excited to be here today.
So I started at Figma in 2019 and for
the majority of the last six years I've
been working on design systems features
and performance and we've really come a
long way since I first started. In 2019
we had components but we didn't have
varants component properties variables.
Heck we didn't even have auto layout.
It's really been an honor to be behind
the scenes for many of these launches,
and it's been really cool to see how
both Figma and design systems have
evolved over the past few years. I mean,
who here remembers when the instance
swap picker looked like this?
We sure have come a long way.
But as design systems have progressed,
our architecture has often struggled to
keep up. Much of what we built optimized
for the constraints we faced back then,
not for the challenges of today. And
this manifested itself in many different
ways like slow performance, bugs, and
even slower development cycles on our
end. We knew that in order to continue
evolving, we had to address this.
>> And so our team began an initiative that
we called the design systems remodel. a
huge rewrite of some of our core design
systems architecture.
Over the last year, we've rebuilt the
foundations behind components,
variables, and shared assets. And I'm
super proud to be standing here to tell
you a bit about it today.
In practice, our remodel came down to
three core things. First, making the
editor more responsive by implementing
smarter caching logic to improve
performance even in the biggest, most
complex files.
Second, making sure components,
variables, and styles all behave
consistently and share underlying
architecture and code wherever possible.
And third, we wanted to give teams
across the Figma ecosystem a unified
platform to build connected, dynamic
features similar to the ones that power
design systems. It's one of the biggest
refactors in Figma's history, and we're
already starting to see results in how
design systems perform today.
Basic editing into the design editor,
such as this mode switch behind me, is
up to 60% faster.
In prototyping, interactions like this
state switch is up to three times faster
now.
And finally, we've completely reworked
asset publishing so that it takes
seconds instead of minutes with fewer
failed publishes as well.
We hope that you're feeling the
difference when you do your daily work
in Figma, even in massive design systems
files.
But ultimately, this remodel wasn't just
about fixing what was slow. It was about
unlocking what comes next. In fact, the
features we'll be announcing today could
not have been built without this huge
underlying effort. So, with that, let's
get to what you all are waiting for, the
product updates.
First up, let's talk about variables.
We launched variables just over two
years ago, and it was a huge milestone
for design system management. I mean,
can you imagine life without them? I
certainly can't. But we know that
managing large design systems with
complex variable collections across
multibrand design systems has not been
easy. And we've talked to many of you
about these challenges. And I've seen a
lot of workarounds.
Some of you create maxed out collections
with 40 modes leading your modal to look
like this. And this isn't just a pain in
terms of UI. When you want to ba update
a base value in this in these
collections, you'll end up having to
update hundreds or even thousands of
values.
And then your consumption experience
looks like this, which is super
confusing.
So, as many of you may have guessed,
after an extended timeline, today
extended collections is coming to
variables.
So, let's dive into our demo.
All right. So, here I am in my design
file. And today we're working with a
design system for a fictional video
editing company called Astra.
Here we have a few different screens
that show the different products that we
have, which all have different brand
colors. And all of our products support
light and dark mode.
So, scrolling over here to the right, I
have a few frames. And these frames,
there's one for each of the products.
But, as you can see, we currently have
all the products using the Astra video
brand theme. So, let's go ahead and
change that. If I zoom in to Astra Board
here, I've actually already set up an
extended collection for the green theme
colors that we want to use. So, I can
click here
and all I need to do is go over here and
change the collection from Astro video
to Astra board. And it's that simple.
But what's great about this is I can
also independently change the modes. So,
I can change from light to dark mode.
Next, let's go down to Astra Audio. So
for Astra audio, I haven't created an
extended collection for this yet. So
let's go ahead and do that together.
Like me, you might have some muscle
memory of deselecting everything and
then going over to the properties panel
to find the variables entry point. But
today, I want to call your attention to
the new left nav, which is over here.
Here we have a few tools related to
assets and AI, and now they're
accessible with a single click.
So if I open my variables modal, it'll
now open in full screen by default. And
we see here the Astra video brand or
Astra video collection. This is going to
be the collection that we'll base our
extended collections off of. Here we
have a few variables that are specific
to the Astra brand. But then down here
we have several variables that are meant
to be shared across all the brands.
So to go ahead and create my extended
collection, what I'll do is I'll go to
the left panel, right click on Astra
video, the base collection, and then
extend collection.
I'll rename it to Astra audio.
And my extended collection has been
created. What you can see here is all of
the variables, the modes, and their
values have all been inherited from the
base collection.
The last part of my setup will be to add
overrides.
So the audio theme uses the orange
colors. So I'll use some primitives for
my library.
Overrides for extended collections are
going to work similarly to instance
overrides.
Anything that you override will be
retained even if the underlying value
ends up changing. So all of these orange
values will persist when we change the
video brand theme colors.
But all of these other values which do
not have overrides will be inherited. So
if the base collection changes, we'll
automatically get those updates.
So now I can dock this modal and go back
to the canvas and change the color of
this frame from Astra video to Astra
audio.
And again I can independently change the
modes from light to dark.
So now let's look at updating variables
in action. So if I go back to my
variables modal here and I'll zoom out
so that we can see all of the frames.
Let's see what happens when I change one
of the colors such as this color surface
background which is used in all the
frames. Edward, do you have a suggestion
for what we might want to use here?
>> I'm a big fan of aqua.
>> All right, let's try aqua.
Oops. I actually changed the um extended
collection. So that only updated here.
Let me go ahead and change that back to
white or sorry, let me actually extend
this mode a little bit and revert that
override. So it's very easy to revert
overrides as well.
What I meant to do is change this to I
guess aqua. I'll
>> Yeah,
>> I'll choose that for you, Edward. Um,
and there we see that all of the frames
have automatically inherited that update
because I'm changing the base collection
here. Um, I don't think our designer Tom
will love that color. So, let me go
ahead and change it back. And again, it
updates across all the frames.
Meanwhile, I can also change one of the
inherited variable or sorry, one of the
brand colors. So, if I go here, I can
change perhaps this blural 600 to
something a bit darker. And what we see
is that just the Astra video frame is
getting updates, but the other frames
are not getting updates because these
frames have overridden that brand color.
So again, I'll change that back. And
great, that's extended collections in a
nutshell. And we're really excited for
how this will improve the design system
management experience for multibrand
design systems. But I'm excited to say
that for you design system managers out
there, our updates don't stop there. So,
Edward, do you want to tell them about
what else we've got cooking up?
>> Let's do it.
>> Yeah.
>> So, part of the goal of extended
collections was making it so brands like
Astra Board and Astra Audio don't have
to split off from the parent design
system. And this next update also makes
it even easier to stay connected to your
source of truth. So let's dive in.
You can see here I have a few things set
up which we'll go through real quickly.
To the left I have a few components set
up. Here I have a conversation component
with a few chat bubbles. And below it I
have this chat pane component.
To the right I have this Astra video
mock that we were working with in the
last section. And if I click into here
you can see that I've inserted an
instance of the chat pane component.
Now, this chat pane is looking a little
empty. So, one thing I might want to do
is insert some chat bubbles into here.
So, I'll go ahead and make an instance
of that component and drag it in.
>> H I don't really think that's going to
work. Don't you have to detach before
you can insert it?
>> You're right. But I don't think my
designer Tom would like it very much if
I detached.
Luckily, we don't have to because today
we're announcing slots for components.
Slots are configurable regions within
components that can then be freely
edited by consumers of that component.
They're sort of like React children
properties, but for Figma components.
So, let's set one up here and see how it
works. I'm going to go back to my main
component and click into this chat area
frame within it. From there, I'm going
to rightclick
and click this new option, convert to
slot.
Cool. Now that that's a slot, um, I can
add some configuration.
So, you can see there's a name already.
I'll add a description. Uh, add chats
here. And below that, there's also an
interface for me to add preferred
values. Now, preferred values are a way
for component authors to suggest things
that might work well in the slot. For
me, I'll select the conversation
component as a preferred value for this
slot.
I'll close that out and go back to my
mock and click into the instance.
You'll see now that the slot is
highlighted in pink and in the middle
there's this plus button which I'll
click on
which reveals an instance picker that
allows me to easily insert those
preferred values that I set up. So I'll
go ahead and do that.
I can also edit this slot freely. So say
I wanted to add more chat bubbles to
this. It's as easy as clicking in. Uh I
can command D to duplicate. And I can
even, this is my favorite, uh, click on
the slot, drag this magic handle, and
command enter to replace content with
AI.
>> That's super awesome. Does it work with
extended collections, too?
>> That's a good question. Let's give it a
try.
So, I'll zoom out so we can see
everything. And I'll click on this
frame.
And I'll pick, let's say, audio. And you
can see that everything in the slot
respects both the collection and the
mode that we select.
Slots can be a lot more free form as
well. So, to show that off, I'll zoom
out a little bit. go into my new assets
entry point in the leftnav and insert an
instance of this Astra editor template
that my designer Thomas has set up for
me. Now, many of you have used
components like these before. And to use
them, you typically have to detach to
start editing, but Tom has set this up
with a slot. So, I can just take my
content, which is a bunch of frames, and
drag it in.
I can also freely edit it once it's in
here. So, for example, say I wanted to
change around the order of these cards.
I can just click in and do that all
while staying connected to my main
component.
That's it for the demo.
All right. Can we give it up one more
time for the teams behind slots and
extended collections?
>> So at Figma, we've already started using
both extended collections and slots
internally, and we've seen a huge
simplification to our own multi-product
design system.
With extended collections, we've gone
from over 32,000 unique values to just
under 6,000.
And with slots, we are reducing our
component footprint and are excited
about better results from Figma make as
slots map more cleanly to code.
Extended collections is a really
powerful feature and we wanted to make
sure we got all the details right. We
know it took a minute, so we want to
thank you for your patience as we work
through all of these important details.
And now the wait is almost over.
Extended collections will begin rolling
out next month and will be available to
everyone on our enterprise plan.
And for slots, we are now opening early
access signups. Slots will be available
on all plans.
But wait, there's more.
We're also excited to share some quality
of life updates with you.
So, first, we're adding import and
export to variables.
Yeah.
Next, we're also simplifying the
variables authoring experience. You'll
now see all of your subscribe
collections directly in the authoring
modal.
You can now create new variables in
line.
And as Naomi showed off earlier, the
authoring modal will now open full
screen by default.
In addition, the new left navbar is
going to roll out starting next week.
>> Yeah, you can clap. You can clap.
>> And last but not least, we know that for
professional and organizational plans,
four modes just isn't enough for your
design system.
So starting today, professional plans
will now have 10 modes and organization
plans will have 20 modes.
So overall, we are super super stoked
about how your design systems will
evolve with these changes. But creating
a nimble system requires more than just
flexible building blocks. It actually
requires folks to adhere to them. And
that's been enough session for the
person I'd like to call to the stage
next. Please give a really warm welcome
to product manager Tara Nadella.
[Applause]
Hello everyone. I am so so excited to
get to be here with all of you today. As
a PM that gets to sit at the
intersection of design systems and AI, I
get a front row seat to how the way we
build is so rapidly changing with the
pace of innovation. It's something we
most certainly feel here at Figma.
Every designer, every engineer, and
every team is producing more artifacts
and moving faster than ever before. And
that momentum is thrilling for sure. But
when output outpaces understanding,
that's when things can start to fall
apart. When an engineer opens up a file
and they can't tell whether a design
system deviation is intentional or
accidental, they're left guessing and
chasing context.
Although you and I both know that this
perfectly concentric corner radius was
no accident.
Designers, meanwhile, are spending
really precious time tidying up instead
of exploring new ideas, and timelines
slow.
And all of this points to the same
challenge. Speed without direction leads
to divergence. So then the question
becomes, what anchors our work? What
connects our momentum with our
craftsmanship?
And that's why we're introducing Check
Designs, our native design ler right in
Figma, built to help teams move quickly
while staying true to their standards.
And with that, I want to show you where
we're starting.
All right.
So, I'm going to come over here and
let's say I've been exploring this for a
while and I'm feeling pretty good about
where it's landed. But before I go ahead
and share with my partners, I want to
give everything one last check. So,
let's figure out how we can quickly take
all of our maybe magic values that we
lean on when we're trying to just move
quickly and turn those into proper
design system variables. All right,
let's give ourselves a little bit of
space here. Nice. So, the first thing
I'm going to do is select the frame and
I'm going to mark this as ready for dev.
And then I get a little nudge to check
my designs. So, I'm going to go ahead
and click that. And this model pops up
and in just a few seconds it's scanned
my frame and is giving me a few
different places where I can better
align this with my design system.
All right, let's get oriented so we
understand what we're looking at. So
over here on the left, you've got our
handy dandy little navigation panel
where it groups things that have similar
patterns so you can go through the
design in these bite-sized chunks and
edit pretty quickly.
And it also will group repeating
elements together so that you can go one
by one and apply things in detail or you
can go ahead and just select the main
thumbnail in this carousel and apply in
bulk. And over here in my suggestions
view, you can see what I currently have
on the canvas. It's offering some
replacements of tokens from my design
system. And then this preview is going
to update live so that I can see how
everything would look if I went ahead
and applied these suggestions.
All right. And behind the scenes, just
to share how these suggestions are
working, Shuck Designs is powered by a
customtrained ML model tuned to your own
design system data. And it weighs a few
key factors. Things like how similar a
suggested value is to what's currently
on the canvas, how frequently a variable
is used in the file, how recently it was
used, and overall team usage across
files. And the best part is it's going
to get better over time. So the more
your team uses it and adopts this
process, the smarter and more
personalized these suggestions will
become.
All right, so let's go through this. The
first thing it's calling out is that I
may have used my favorite close but
never pure black and it wants me to
switch it to color secondary. Fair
enough, we can do that. And here it
looks like I've got some hardcoded
hard-coded corner radius values of four
and it found an exact match in my design
system.
All right, this all looks good. So, I'm
going to go ahead and apply changes down
here. And it's going to apply all of
these to every instance here.
Nice. Okay. So, now it seems to have
found where this PM may have detached a
text style and it's giving me a quick
replacement. Excellent. Okay. And that
looks fine. Pretty similar. Excellent.
And here it's calling out that I had a
padding of 19 and but I only have 16 and
24 in my design system. So it picked a
closer match of 16. And I'm going to go
ahead and accept this because I really
can't be showing a value that's not
divisible by eight to a room full of
designers.
All right. And now we have a text
contrast one. So let's go ahead and zoom
in on what this is covering on. All
right. So it's looking at this time
badge here. And let's just pull this up
so that we can see them side by side.
All right. So, looks like I may have
used a shade I thought looked cool, but
doesn't actually exist in my design
system. And I can see how it actually
does make this harder to read. All
right. So, it's giving me this color
brand tertiary to replace it with. And
that looks good, but let me go ahead and
click on this. And here I get a flyyou
of all the values in my design system
that have been scoped for this property.
And I can see which ones are accessible,
which ones don't meet that contrast
requirement right at a glance. And now
that I'm looking at it, this color on
brand actually might be better. I like
it. All right, so let's go ahead and
apply these changes. All right, just
like that, we made 44 changes in just a
few moments. And they were pretty
subtle, but it's exciting to see how a
little bit of time here can save us
quite a bit of downstream effort. So to
recap, check designs today helps your
Figma file stay consistent with your
system and saves you from those
repetitive one by one cleanups. And as
we saw, it flags hard-coded values that
can be swapped for design system
variables, things like text styles,
color variables, corner radius, padding,
and spacing.
It also checks for low fill color
contrast. And it's here to surface
issues before they spread. helps
designers stay in the flow and gives
engineers precise production ready
files. At its core, it's about
strengthening the connection between
your design vision and your engineering
implementation. Making sure that what's
imagined in design is what actually
ships.
By bridging that gap, check designs
helps designers articulate and capture
more of their rationale, becoming part
of that really rich context layer that
can enable Figma AI and our MCP server
to generate cleaner, more accurate
results, reducing ambiguity in design
and ensuring that every handoff, whether
to a developer or an AI agent, carries
the intent behind every pixel. And with
that, I'll hand it back to you, Paige.
[Applause]
Thanks, Tara. Thanks, Tara.
Very nice. Okay. What a great way to
make sure that the details ship, but we
don't have to do the dreary TDM, right?
Um, I know that Tara is already thinking
about how this might evolve to include
the more enforce more standards um, even
beyond uh, doing doing even more with
accessibility supporting effects and uh,
style coverage. We want to hear from you
about what you'd like to see. This is
going into early access. So, please sign
up. Please give us your feedback. And
when it does roll out, it'll be going
out to organization and enterprise
plans.
We know a goal for you is better
aligning design and development. Closer.
Closer. Come on. They won't bite. No,
really. This is how we get design intent
all the way into production. And it's
something we've been focused on for
years. Design systems need codebase
context. And Figma needs to pull this in
and understand it. We've been working on
it for a long time. But the specificity
matters more than ever. When AI has
specificity, you get higher quality
outputs. And at the end of the day, that
means quality. And we've been telling
you and you know in your hearts that
design is the differentiator. So you've
really got to make sure that code and
design talk. Okay. So we're going to
show you some stuff that we've changed
for the endto-end workflow for
engineers. I'd love for you to hear from
a pro today on this. Please welcome
developer advocate Jake Albo to the
stage.
>> Thank you. What's up schema?
This is great.
So many friendly faces some I recognize.
Hello everybody watching at home and
around the world. Uh I'm Jake. I'm a
developer advocate here at Figma. And
advocates are practitioners that work to
create value for the people that use our
products. And as a software engineer, I
couldn't be more excited than to be here
today to talk to you about how we see
design systems as a key part of modern
product development AI enabled
workflows.
In my time here over the past four
years, we have been working hard to
ensure that codebased context is
associated with your design systems
inside of Figma. Whether this is through
loosely inferred conventions like named
conventions on variables and components
or more tightly bound context through
features like code connect and variables
code syntax, the impact of those efforts
to stay aligned has never been greater
than in AI enabled engineering
workflows.
And a key part of this alignment is in
ensuring that the very specific code
conventions and patterns that teams have
in the codebase is connected to the
components and variables that you have
inside of Figma. This codebase context
has been huge for improving developer
handoff inside of dev mode, but is also
crucial when we compile potent codebased
context for AI tools.
Now, our position in these AI workflows
is really unique. Authoring code is one
of the most compelling applications of
AI today. LLMs are trained on vast
corpuses of text, which allows them to
write code exceptionally well and in
many different ways.
But teams need these tools to write code
the way they write code. And the only
way these tools can do that is if they
have an awareness of the codebase, which
is how you write code. Agentic coding
tools provide access to code bases,
which enables LLM to write code that's
aligned to the codebase. But this is all
about code that's already been written.
What about new ideas?
Well, we all know that new ideas are
best explored, refined, and defined on
Figma's platform. Figma can provide the
relevant context that AI tools need in
order to author the correct
implementation of those explorations.
The model context protocol or MCP is the
standard that enables the delivery of
this context to those tools. And Figma's
MCP server is how this context can be
accessed by AI tools. Today we have a
dedicated local server provided by the
native app and a remote server which
extends this access to more users as
well as to other MCP clients beyond ids.
Design systems though are a critical
piece in making all of this magic
happen. So let's see how this looks with
a little bit of a demo.
All right. So, here we are with the
latest Astra board design and we see
that designer Tom uh as well as designer
Tara with the help of check designs have
been adopting our system for this new
side panel that we're going to be
implementing today. Now, when we come
down here and click, we can see that the
right variables have been bound to the
gap and padding values. But most
importantly, we can see that the code
form of these variables in the form of
code syntax is surfaced on the canvas.
Now, this ensures that the developers
that are inspecting this and their AI
tools as they consume this context are
seeing the relevant codebase form of
these tokens.
Now, let's talk about components for a
second. And here we can see that we have
a new use case for components that's
been enabled by slots. So something like
a field set component can help us govern
this layout and this auto layout kind of
gap and padding without us having to
detach and put a bunch of instances
inside of that.
Now also in the side panel we can see
that code connect has been published to
these components. Code connect for the
past year and a half now has been the
best way to bring detailed rich codebase
informed representation of this context
into Figma. So we see the react forms of
these fields and this field set right in
line. Now this has been great to see for
developers inside of Figma so they can
make sure that they know which
components are being utilized. But now
this is the sort of context that we can
provide AI tools via MCP.
All right. So I'm going to select this
annotation here to select this parent
panel. And we can see that there's a
component in here that hasn't been
connected to the codebase yet. So we're
going to click connect components. And
this is the new code connect uh library
UI that we just recently released. And
we could see here that this icon button
has not yet been connected out of all of
the other components that are in the
selection. When I connect when I click
on this gear here, we can see that we've
actually authenticated uh GitHub to
access the repository uh that has the
definition of all of our components,
which means that Figma can actually
intelligently suggest the right file and
the right component inside of that file.
So there can be more than one and we can
connect this in just a few clicks
directly from the codebase. Now once
this connection is made, we can come
through to this details view and Figma
is able to intelligently generate
codebase snippets based on that files
context. So we're going to see here that
we have an icon button representation in
React. Now, this is using some of that
code definition, but also is using
Figma's metadata about these properties
to kind of put together this snippet.
Now, I know a lot of teams end up I'm
going to select this text node here. A
lot of teams have very custom specific
shapes of their configuration for their
components and their component APIs. And
so, to bring that context in, we
actually have the ability to paste in
rules. So in this case, I'm going to
indicate to Figma that I want that icon
to not be a slot property, but our team
uses the composed syntax with the
instance as a descendant of the of of
the parent icon button. And we can also
provide instructions about how to be
specific about the ARA label when we're
describing the action.
Now, in addition to this, we can come in
here and click change properties in the
component inspector in the playground
here. And I could switch this over to
primary. And those instructions are
going to be critical in Figma being able
to generate the right representation.
Now, this is really exciting. I'm so
stoked that this is a feature. Now, this
is just an example of how we're making
this easier for teams to bring into
Figma, especially for components like
this. All right. Now, we know that we've
uh connected all of our components here.
We know that our variables are bound and
that this panel that we're going to
implement today is ready for the
codebase. Before we switch over, I'm
going to call out here that we're going
to be running the MCP server locally
using the native app. In this settings
panel, here's the indicator that we've
enabled it. And we also have some
options for how we want to serve images.
Sometimes you're using placeholders
inside of Figma and so you don't really
care about that image data. Sometimes
those are media assets. We have the
ability to kind of indicate to the
server how we want to handle content
like that.
In addition to that, Figma is able to
anticipate roughly how many tokens,
which you can almost think of as a
character count for LLMs, uh, are going
to be required in order to convey this
panel to the AI tools that we're going
to implement this with in a second.
All right. So, before we hit the uh
before we hit the codebase, we're going
to stop in the browser. And we can see
that our Astra board, we've already
developed the left two/irds of this.
Right? Now, this is using real data
behind the scenes. So when we click on
these different shots, content is
updating. So when we implement this
right hand side panel, we want to make
sure that we're actually interacting
with the data model. We don't want to
just represent statically these these
components. Now, how many dark mode fans
do we have out there? Dark mode. All
right, it's a handful. Dozens of us. Um,
okay. So we're going to switch over to
dark mode. Now, this might seem not that
big of a deal to a lot of you, but
actually for engineers,
when you're trying to convert a design
to code, uh, when you're trying to match
hex codes, there's this you have to
switch to the thing that the design's in
and all this, but because we're using
systems because everything's hooked up,
we can actually keep our appearance
preferences on our machine while
simultaneously implementing the light
mode of this. It's really exciting.
Okay,
we're going to switch over to VS Code
here. I'm going to be using GitHub
C-Pilot with VS Code and I've already
preceded a prompt that says implement my
Figma selection in these two files. Be
sure to use my design system. So, we
have the React file right here for the
React code and then a CSS file right
here where we're going to want to see
those tokens showing up for auto layout
and stuff like that. Now, because we're
working with AI tools, I've indicated to
the tool that, hey, I'm going to be
doing a demo schema and we want to show
all of the features of the MCP server.
Now, your developers are going to be the
experts in knowing which combination of
these tools or you can think of them as
endpoints uh based on whatever task
they're doing. The tools that we're
calling out right now and later today in
the deep dive I'm going to get into the
contents of all of these if you're
interested. We have git metadata which
returns a highle skeleton allowing the
agent to understand at a high level
what's going on and then optionally make
further requests to dig in and get more
details. We have get screenshot which
returns image data and we can see that's
that's going to come back as light mode
image data because right now Figma is in
live mode. Then we have code connect map
which returns all of that react context
that we were talking about. Variable
dash returns the variables that are
relevant in the file just the names that
you need to know to make sure you're
using the right ones. Um, in addition to
the text styles that we're using, um,
all of this information is critical
because your engineers can write rules
in the codebase for how to interpret
this stuff and how to implement it
properly. Um, and then last but not
least, there's get design context, which
puts all of that together, including
those annotations. It preserves the
annotation categories. So, if your
product designers want to uh add
additional context for LLMs, they can.
Now, Figma's job has been done for a
while. These checks have been green for
a bit. And we can see that Copilot has
finished implementing this. Before we
actually look at the code, if you've
used these tools before, you will
commonly see them searching the
codebase, wildcard searches, trying to
find the right components, making sure
it's using the right things in the right
way. But because Figma is able to say,
"These are the pieces that are relevant.
Here's where they're located." We don't
see any of that. We are literally
eliminating search steps, alleviating
co-pilot of this need to do all of that
discovery. This increases the
efficiency. It reduces the LLM costs
that we have. Uh and it also ensures
that we can have more confidence in
these outcomes. Okay. So I'm going to go
ahead and hit keep here. And we can see
that the right React components have
been brought in. Uh we also see, you
know, here's our field set. And this is
using real data. We can already indicate
some of that right here. And then in the
CSS, we see that we're using the right
variables with the right syntax and
everything here. All right. Hold your
breath. Oh, would you look at that? So,
I this is so cool. Like this is the
future.
Um, now this is mapped to are, you know,
this is actually modifying our data
model under the hood, right? So, every
time we change these shots, uh, it's
actually updating to the settings that
we have in the database.
Big cheers for all the teams that have
been working hard on this. DevTools,
MCP, Code Connect, we've been working on
this for a while.
All right. So, because we've aligned our
design system between Figma and the
codebase, that's the work we've been
doing forever, right? And because we've
provided codebased context for Figma to
deliver to deliver strategically to
LLMs, we're in a position where our
engineers can deeply benefit. Design
systems don't only increase the quality
of our output, they save us time and
compute, which increases our confidence
in these tools for production UI
generation.
So many partners have eagerly supported
us as we've gone our MCP server to this
point and we're so grateful to have the
opportunity to work so closely with them
as we actively improve our tools
together to future the uh the future to
further the future of product
development. All right, Paige, back to
you.
[Applause]
>> Thank you, Jake.
Sweet. Woo! Code connect, we're changing
it. We're making it better. I'm so
excited that now you've got better
component mapping with those
suggestions. You've also got MCP
instructions and those code snippet
previews to make your code gen higher
quality. These things are just really
going to help improve the precision of
AI so that your teams can pay less for
it and obviously ship a better product.
This is all coming to organization and
professional or organization and
enterprise plans this week. Okay. You
also heard about MCP. We're taking that
out of beta 2. Um we are working on it
quite a bit still. So please give us
your feedback about what you need, what
you like, what you want to see more of.
Okay. So what we just talked about was
bringing that design context into the
places where developers are working and
to that straight into their coding
environments. Uh but what about everyone
else? Design systems could meet so many
more members of your team where they're
already working.
Design systems need to be built for the
whole team woven into the tools they
already use. your PMs, your researchers,
everyone you partner with to shape the
product needs the same context to build
it right?
Earlier this year at Config, we launched
Figma Make. It's a tool that helps you
create a prototype. You just describe
your idea, boom, prototype. You can
maybe persuade someone with it. You can
test it with customers. It was a great
start, but we're not going to start.
We're not gonna stop with a generic
prompt to app experience because good
enough is not good enough. Craft is the
differentiator and you need something
that's professional grade. That's why
we're focused on how your teams actually
design, how they actually build. And
we've been focusing on a few things
since. One of those things is
capitalizing on the multiplayer goodness
and the precision you expect from Figma
design. Now you can copy and make
straight into Figma design, see your
design layers and riff and revise with
your team.
We also are making it so that you can
ship to production. We are connecting
makes now with the MCP server you just
heard about coming to G and also with
dev tools like GitHub.
And of course, we're making sure it
talks to your design systems. you need
higher quality, more predictable outputs
that actually use your design systems
building blocks. So, let's talk about
that. Uh, this is just one of the AI
features that needs to use your design
system. We're excited to share progress
against how makes leverage your design
system. And to do that, I want to
introduce product designer Ethan M to
the stage.
[Applause]
[Music]
Hello schema. I'm Ethan. I'm one of the
product designers here working on design
systems here today at Figma. I'm very,
very excited to be sharing some updates
with you today.
So, we launched when we launched Make a
Config, the number one thing that you
all asked for was the ability to import
your design systems. Our first attempt
focused on bringing visual details from
your libraries such as color,
typography, and spacing. So, generation
started looking like your design system,
but it didn't quite feel like your
product. So, how do we solve that? When
you asked us to bring your design system
into make, we realized you were actually
asking us for several different things.
So, for some teams, it's to bring the
full fidelity and nuance of your Figma
design libraries into Make.
For others, bringing a design system
means directly consuming your production
components to make. And sometimes it's
actually a bit of both. Today, I'm
excited to share some updates. We want
to enable you to bring in your design
systems no matter where they are, either
in Figma design libraries or in code.
So, I want to talk a bit about the first
feature that we're launching, which is
something that we call make kits. Make
kits is a new way for you to export your
libraries in Figma design and convert
them to React components. Let's go ahead
and see the demo.
So here we have a library of an existing
design system and we have a couple of
components such as selectors, buttons,
avatars that are essentially just the
accumulation of this Astro video player.
And so we want to use these components
in make. How do we do that? Here in
quick actions, we see an option to
export a library to Figma make. And so
what this will do is it'll take the
design system and turn it into React
code components and CSS files. So let's
go ahead and export this library, but
because it's going to take a few
minutes. I did it ahead of time. So
let's just jump into make and check it
out.
So, the first thing that you'll notice
is a view we're calling the component
showcase, which is an overview of the
components that we've generated for you.
By default, make will do its best to
preserve the visual fidelity of your
design system as it converts it to code.
So, if you want interactivity to these
components, you can create it by
prompting. As as you can see, I've done
a bunch of manual work here. So, for
example, I can type into this prompt
box. I can have the search component
animate with a typewriter effect or I
can make my video controls interactive,
which I think is pretty cool.
So now let's add in an interaction
together. I'm going to click into this
button component and view all the
imported variants. If I hover over the
button, there's no change to the cursor.
So let's change the cursor
to a pointer on hover.
make will generate that interaction and
I'm just going to pray that the
conference Wi-Fi holds up. And so while
we watch that go, let's talk a little
bit about this new screen. We designed
it with a split view to show both the
component preview as well as the working
code side by side. We've also added a
small tag as a filter. So make knows to
only make changes to this component. So
now that we've prompted the interaction
and it's finished rendering, let's test
our interaction. And it's looking pretty
good.
All right. So, we've run through the
design system and looks pretty good to
me. Let's go ahead and update this and
publish it to the team so it's available
for everybody for my team to use.
So, we're going to let it publish and
it's finished. And now that we've made
the update, let's try it out. So,
remember when we were trying to create
UI for this video player? Let's try
making an interactive prototype for
this. So I'm going to copy this frame,
come into make,
select the make kit that I just
published so that generations will use
the component interactions that we just
made together. Um I'm going to write
recreate
this screen that I attached. Um and what
this should do is it'll turn our example
screen into the interactive prototype
that I want.
We're just going to let make keep going
and going, but
all right. And now it's done.
So make is going to take a few minutes.
So because we have a lot to demo, I'm
just going to jump to an output that I
prompted ahead of time.
And so here we have our final prototype
built with our make kit. Components used
in this generation come with the
interactivity that we saw earlier. So,
for example, typing, "Help me make this
video," adding in an attachment, as well
as submitting a prompt are all
interactions that are that now come with
the input box. I can also extend my
design system components to work with
other elements on the screen. So, if you
remember my video control component,
I've wired it up to work with the
editing tools below.
And that's the demo.
We've now unlocked the ability to not
only use your design systems in make,
but also build on top of it. And it'll
be as easier as ever to accelerate the
way that you build products.
We're still in active development for
make kits. Building design systems is
incredibly complex in nature and we
still have a little bit to iron out. But
today you can sign up if you're
interested in early access and we plan
to open up this feature to some
customers later this year.
So earlier I talked about the fact that
we want to enable you to bring in your
design systems no matter where they are
either in Figma design or from code.
Make kits gives you the ability to bring
in design systems from Figma design. Now
let's take a look at how you can bring
in your design systems from code.
I'm excited to announce that we're also
introducing the ability to directly
import MPM packages into Figma Make.
Yeah, pretty cool.
And so this means that you can bring
your production code right into Figma
make using either public or private MPM
packages. Personally, I'm excited for
the ability to pred to bring in
productionready React components into
make because we I can take advantage of
all the fine-tuning and interactions
that I've already built. The ability to
import public npm packages will be
available on all plans and private npm
imports will be available on Pro Plus.
This will be available starting next
month. All right, back to you, Paige.
Thank you, Ethan. I can't wait to see
what you all make with me. Okay, right
about now, you might be wondering, when
are we going to bring prompting straight
into Figma design? Don't worry, it's
coming. We actually already launched a
limited alpha a couple weeks ago um to
explore how this works and to make sure
that we get it right. And of course, the
biggest burning question is when will it
work with my design systems? We're
working on it. We've got styles and and
components working. Next is variables.
So, please stay tuned. We're doing it.
Okay. Now seems like a great time for a
recap. So, let's play it all back. This
week you're going to get more variable
modes, all those changes to code
connect, the new suggestions, MCP
instructions, the code snippets, and
you're going to get MCP server in G.
Next month, you're going to get extended
collections, variables, import and
export, and all of those authoring
improvements you saw. You'll also get
npm packages, both private and public.
Now, this list might be thrilling and
you might be like, "Hell yeah, I got
everything I wanted." And you might also
be thinking that was there was the am I
getting and so please tell us what you
need. Tell us what you're looking for
because we are all in on the design
systems and we are all ears. Truly, the
team is here. Talk to them, tweet at
them like we are building. This is very
much a focus for us. So, thank you so
much for joining us, for getting excited
about what's shipping this week and next
month and for signing up for what's on
early access because we've got check
design slots and make kits coming to
early access. There are going to be
stations outside where you can sign up
and talk to the people behind these
solutions. Later today, there are going
to be deep dives where you can learn
more about MCP, code connect and
extended collections and slots in the
next level of detail so that you can
really apply them.
Okay,
design systems have always been about
scaling craft.
From the Swiss grid, which changed how
we consume and read information to human
to Apple's human interface guidelines to
frameworks like
um sorry to to frameworks like material
design and bootstrap.
These design systems and every
generation of design systems has changed
how we build our products, elevated them
and really scaled them so that people
can touch every day something that's a
little bit better, something that's a
little bit tighter. But with AI, design
systems are so much more than that. They
are the way we make sure that as more
people build, quality doesn't just hold,
it rises.
Design systems are expanding. Their role
is changing. They are going to be the
context by which your design by which
your whole brand unfolds and is
experienced. And they are the context by
which your team is going to be able to
differentiate and ship better products
faster. This is the future and it's
clear that the future of building is
bright. Thank you so much for being with
us today. We're We're going to take a
quick break and we'll be back at 11.
Thanks folks.
[Music]
Loading video analysis...