Inside FPL: A Look at Figma's Design System | Figma
Ringkasan
TLDRFPL(Figma Pattern Library)是Figma内部设计系统,由工程和设计团队共同创建,旨在提升产品质量和用户体验。FPL团队通过建立统一的语言和属性分类体系,简化不同职能伙伴之间的沟通,从而在设计和工程之间实现无缝衔接。尽管在过程中遇到了设计和工程对齐的挑战,团队通过开发新的工具和方法来解决这些问题。FPL在短时间内成功支持了Figma多个新产品的发布。随着Figma产品线的扩展,FPL团队继续适应和发展设计系统,以提供支持产品一致性的灵活模式。团队强调内部测试和反馈的重要性,利用这些过程不断优化和改进设计系统。
Takeaways
- 🚀 FPL提升了Figma产品的开发效率和一致性。
- 🛠️ 设计和工程的沟通通过统一语言体系得到改善。
- 📚 FPL以图书馆模式帮助团队建立统一组件系统。
- 🔄 FPL系统中代码和设计的对齐通过工具来实现优化。
- 🎨 组件分为成分属性、状态和上下文属性三个部分。
- 📈 FPL团队通过快速反馈持续改进设计系统。
- 🌐 UI3和Slides产品在FPL的支持下成功推出。
- 🎯 FPL重视灵活性以支持Figma的产品扩展。
- 🔍 内部测试揭示FPL用户体验的改进机会。
- 💡 FPL的结构帮助在设计与工程之间实现有效协作。
Garis waktu
- 00:00:00 - 00:05:00
Anna presenta'l su cumpianu chi cunversat cun Tom e Wayne che sò incaricati di l'ingegneria e cuncepimentu per u sistema di cuncepimentu internu di Figma. U FPL (Figma Pattern Library) hè cuncipitu cum'è una fundazione scalabile per creà prudutti di alta qualità. Una di e prime attività era di sincronizà u linguaghju trà i partenarii cross-funziunali, è d'urganizà e prupietà di i cumpunenti in categurie per facilità a cumunicazione trà cuncepimentu è ingegneria.
- 00:05:00 - 00:10:00
Tom è Wayne discutenu di l'adopru di FPL per supportà e lanci di prudutti cum'è UI3 è slides. Enfatizanu l'importanza di stabilisce variabili di culore, distanziatore è raghji d'angulu cum'è fundamentu per u sviluppu successu. Spieganu u trasfurmazione di un sistema basatu in fogli di calcolu à unu gestitu tramindui in Figma è in codice, per assicurà coerenza è adattabilità à i bisogni di prudutti multipli cum'è FigJam è Figma Design.
- 00:10:00 - 00:15:00
L'accentu hè messu annantu à a creazione di un sistema chì sostiene diversi modii di prudutti specificamente per supportà culori di marca variabili in diversi ambienti. Questu hè realizatu utilizendu variabili CSS chì permettenu e cumpunenti di esse rispondenti in diversi cuntesti. Fenu paralleli cù l'adopru di biblioteche cumunitarie, esplicendu chì FPL hè statu cuncipitu cum'è una biblioteca di mudelli anziché una biblioteca di cumpunenti per una maior flessibilità è sara capaci d'evoluzione basatu annantu à u feedback di l'utilizzatori.
- 00:15:00 - 00:20:39
A discussione cunclude cù riflessioni annantu à l'azzioni future per u sviluppu è mantenimentu di FPL è cumu l'usu di Figma stessu influenza stu prucessu. Si parla di l'importanza di ritruvà un feedback per migliurà continualmente u sistema è cumu u distaccamentu di cumpunenti hè percepitu cum'è un signalu per l'ulteriore sviluppu. Enfatizanu chì u sistema di cuncepimentu ùn serà mai veramente finitu mentre ci sò prudutti novi è necessità in evoluzione, è chì l'obiettivu hè di travaglià in avanti per supportà a crescita cuntinua è u miglioramentu.
Peta Pikiran
Pertanyaan yang Sering Diajukan
什么是FPL?
FPL代表Figma Pattern Library,是Figma的内部设计系统。
FPL团队的目标是什么?
FPL团队的目标是为Figma提供一个可扩展的基础,使其产品高效、优质,并提升设计师、开发者及客户的体验。
FPL设计系统的结构是什么样的?
FPL设计系统结构包括组件的属性分类,如典型变体、成分属性和状态等,以便于在设设计和工程之间进行无缝衔接。
团队如何处理设计和代码之间的对齐问题?
团队使用像code connect这样的工具,帮助在设计组件和工程组件之间创建合适的代码,尽量减轻设计与代码之间的不一致性。
FPL对Figma的产品开发有哪些帮助?
FPL帮助Figma推出UI3和Slides产品,提升了产品的一致性和开发效率。
Lihat lebih banyak ringkasan video
- 00:00:00[Music]
- 00:00:05hi I'm Anna I'm a designer Advocate at
- 00:00:07figma and today I am super excited
- 00:00:10because I get to chat with Tom and Wayne
- 00:00:12who lead engineering and design for
- 00:00:14figma's internal design system so up
- 00:00:17until now figma's produced a lot of
- 00:00:19content around how to build your design
- 00:00:21system in figma we've also had a lot of
- 00:00:23different customers share how they build
- 00:00:25their own Design Systems through various
- 00:00:27live streams and our conference config
- 00:00:29which is why hi today I'm really excited
- 00:00:31that we finally get to take a look into
- 00:00:33our own design system here and learn
- 00:00:35from Tom and Wayne about the work that
- 00:00:37their team has been doing so to kick us
- 00:00:40off uh yeah Tom and Wayne uh why don't
- 00:00:42you guys give me a little bit of context
- 00:00:44on FPL what it is and what y'all are
- 00:00:47working on FPL stands for figma pattern
- 00:00:50library and you know in a nutshell what
- 00:00:52we work on is really we try to maintain
- 00:00:54the internal design system at figma and
- 00:00:56so the idea of that being you know we we
- 00:00:58have a scalable Foundation for figma to
- 00:01:00build forward with um so we can uh yeah
- 00:01:04just create products that are high
- 00:01:06quality and and great for people to use
- 00:01:08um I think a lot of the library name
- 00:01:10really comes from the fact that you know
- 00:01:12a lot of us grew up with community
- 00:01:13libraries and it was a place where you
- 00:01:15know you would Converge on and you would
- 00:01:17just go there to read picture books and
- 00:01:19and uh yeah just have fun and it
- 00:01:21connects communities together the goal
- 00:01:22of FPL really is just to make our
- 00:01:24designers our developers and our
- 00:01:26customers lives better by making us all
- 00:01:28be on the same page so like like one of
- 00:01:30the first things Wayne and I did when
- 00:01:32when we both started working on this was
- 00:01:34sat down and just got our language
- 00:01:35exactly the same we got on the same page
- 00:01:38we spent hours and hours and hours just
- 00:01:39figuring out what are the words we're
- 00:01:40going to use so that we can when we
- 00:01:42communicate it's going to not be losty
- 00:01:44communication so we can always know what
- 00:01:46we're talking what what each other's
- 00:01:47talking about which is always really
- 00:01:49difficult between cross functional
- 00:01:50Partners you guys started working
- 00:01:52together pretty much from the very
- 00:01:53beginning and I mean even your team is
- 00:01:55made up of pretty evenly matched
- 00:01:58designers and Engineers as you mentioned
- 00:02:00like creating that shared language like
- 00:02:02yeah what was the process of doing that
- 00:02:04we really want to keep things simple so
- 00:02:05we try to track as many things in the
- 00:02:08design editor as possible um so on the
- 00:02:10design side uh what we try to do is we
- 00:02:12try to fill out all of our component
- 00:02:14variants and we try to put them side by
- 00:02:15side with how we spill out behaviors and
- 00:02:17we really try to keep it as a source of
- 00:02:18Truth easy for design to consume and
- 00:02:20easy for engineering to reference and I
- 00:02:22think like with tools like Dev mode it
- 00:02:24allows us to uh you know allows any
- 00:02:26designer or engineer to really look at a
- 00:02:28component in the most microscopic good
- 00:02:30ways so that you have one piece of real
- 00:02:32estate and it flips meanings depending
- 00:02:34on who's consuming it so one thing that
- 00:02:36I want to talk about more is how we
- 00:02:38broke down our communication into the
- 00:02:39things we needed to share but one really
- 00:02:41interesting thing that way and I did
- 00:02:42right off the bat when we joined was we
- 00:02:45broke down our all of our component
- 00:02:46properties into three categories for all
- 00:02:48of our components our typical variants
- 00:02:50about your primary and your secondary
- 00:02:51but we didn't use all of the different
- 00:02:53variants as independent pieces instead
- 00:02:55we had two other parts for our component
- 00:02:57properties uh these are things that are
- 00:02:59dependent on the context so an input
- 00:03:02label being visible or hidden is a good
- 00:03:05example of a component property that's
- 00:03:06dependent on the context and we called
- 00:03:08we just called these our component
- 00:03:09properties and the second chunk is state
- 00:03:12which is something that changes based on
- 00:03:13user input and so this really helps
- 00:03:15designers know okay here are the
- 00:03:17component properties I need to worry
- 00:03:18about during handoff and it also helps
- 00:03:20Engineers know oh I can turn these
- 00:03:22directly into code because these are
- 00:03:24State variables I don't need to worry
- 00:03:25about this at all and they can just they
- 00:03:27can just ignore them when they're
- 00:03:28grabbing it it just allowed uh you know
- 00:03:30a project like ui3 or a project like
- 00:03:32slides at conf 2 our execution path to
- 00:03:34just be very clear and um for us to
- 00:03:36communicate what things look like but
- 00:03:38how things behave and what um how these
- 00:03:41components need to stretch and grow so
- 00:03:43that sounds really great but I'm sure it
- 00:03:45wasn't always possible to make the
- 00:03:48components and figma fully aligned to
- 00:03:50the components and code so yeah are
- 00:03:52there any instances where that came up
- 00:03:55and then how did you guys navigate that
- 00:03:56one thing that was interesting uh early
- 00:04:00on was when we when we set up this this
- 00:04:03system of different properties it like
- 00:04:05you said it's not going to be perfect
- 00:04:06it's not going to be perfect one to one
- 00:04:07match with uh with engineering and
- 00:04:09design and so we don't want to make
- 00:04:11components in the figma files optimized
- 00:04:13for engineering is what uh created a lot
- 00:04:15of the inspiration for what is today
- 00:04:16code connect we had a we had a bit of a
- 00:04:20uh false assumption that we were going
- 00:04:21to actually be able to make these two
- 00:04:23things align really well uh and what we
- 00:04:25found over time was that sometimes what
- 00:04:27is easy to consume for engineering does
- 00:04:28not always make it easy to cons for
- 00:04:30design and so in those cases we we we
- 00:04:34use code connects like extensibility to
- 00:04:36really help us create the right code
- 00:04:38that comes out of theine comes out of
- 00:04:40the design components and then Wayne can
- 00:04:42is free to make things that are really
- 00:04:43nice to use in design even though it
- 00:04:45doesn't match one to one with
- 00:04:46engineering we don't have to have a
- 00:04:48deterministic process to go from a
- 00:04:50design component to an engineering
- 00:04:51component because that can all be
- 00:04:52encoded in code con that's awesome yeah
- 00:04:54I think you mentioned before about how
- 00:04:56certain States can be ignored by
- 00:04:58engineering because it's already built
- 00:04:59into to the component I'm sure there's
- 00:05:01lots of other differences in terms of
- 00:05:03like what's already readily available
- 00:05:04versus what kinds of properties
- 00:05:06Engineers need that designers might not
- 00:05:07know exist FPL played a really huge role
- 00:05:10in figma being able to launch bui3 and
- 00:05:13slides and beta for config 20124 so
- 00:05:17considering the really short timeline of
- 00:05:19building FPL um how did you guys juggle
- 00:05:22that so yeah a really big part of that
- 00:05:23was um honestly just establishing
- 00:05:25variables um we had a whole set of uh
- 00:05:29color variables color tokens that we had
- 00:05:31turned into variables uh we had things
- 00:05:33like spacer variables and Corner radius
- 00:05:35variables and really at a very basic
- 00:05:37level that helped the slay a foundation
- 00:05:39for um a lot of the uh choices that we
- 00:05:43come to make Downstream especially in
- 00:05:44the project in u3 where it touches so
- 00:05:46many different surfaces and you know
- 00:05:49there's a lot of really controlled dense
- 00:05:51uh pieces of real estate like properties
- 00:05:53panel within the design editor um it's
- 00:05:55important to have those like very simple
- 00:05:57basic pieces to call on and uh often
- 00:05:59often times it's like the simplest units
- 00:06:01that are the most clearest that'll be
- 00:06:03the most effective in the long run the
- 00:06:05ui2 design system was built before figma
- 00:06:07variables existed and so we were
- 00:06:09managing our variables like many people
- 00:06:12in a spreadsheet that then got turned
- 00:06:14into code somehow um and so one of the
- 00:06:16first things that we did uh in this
- 00:06:19Trans in this transitionary period was
- 00:06:20we took all the ui2 uh variables and our
- 00:06:24tokens and we made a source of Truth a
- 00:06:26made fig of the source of Truth in them
- 00:06:27rather than this spreadsheet we put
- 00:06:29everything into the into figma variables
- 00:06:31and then we built a tool that what it
- 00:06:33does is it takes it uses figma's rest
- 00:06:35API sucks all of the uh or takes all of
- 00:06:38the tokens down down and turns into a
- 00:06:40format that we can then use to generate
- 00:06:43code for web for iOS for Android in turn
- 00:06:46it into our token system then we could
- 00:06:48do the same for ui3 variables now we had
- 00:06:50a way to manipulate them in the codebase
- 00:06:53and make sure that things were
- 00:06:54responding to them uh in both places
- 00:06:57since UI 2 not only has the team really
- 00:07:00grown as you guys mentioned but also the
- 00:07:03number of products that pigma supports
- 00:07:05has increased as well how are you guys
- 00:07:08thinking about how FPL can help support
- 00:07:11figma as it continues to grow and expand
- 00:07:13on top of the ui2 and ui3 modes to our
- 00:07:16design system we also have different
- 00:07:17modes for each product where fig Jam has
- 00:07:20a completely different brand color which
- 00:07:22then has to have a bunch of different
- 00:07:23accents and so all that is encoded into
- 00:07:24variables and then downloaded into our
- 00:07:26theme what's the what's really fun about
- 00:07:28modes is that not only does slides and
- 00:07:30fig gy and design all have different
- 00:07:32brand colors and other modes to their
- 00:07:34tokens we also need to sometimes embed
- 00:07:36pieces of fig jam into design also
- 00:07:40sometimes we need to put pieces of dark
- 00:07:41mode fig jam into design and so uh We've
- 00:07:45we or we made made all of our tokens
- 00:07:48work specifically using C CSS variables
- 00:07:51so that we can override them in in uh
- 00:07:53particular sections our components are
- 00:07:55responsive to the environment they're in
- 00:07:56so as long as we set hey your mode is
- 00:07:58set here inside of our application we
- 00:08:00can embed components in it whatever way
- 00:08:02people don't need to know that they're
- 00:08:03embedding a fig Jam button versus a
- 00:08:05figma button it's all just responsive to
- 00:08:07the to the design tokens yeah and the
- 00:08:09beauty of that approach in design is
- 00:08:11really um you know a designer can take
- 00:08:14um any brand color of their specific
- 00:08:17choice and adapt it to their context
- 00:08:19whether that's in light mode or dark
- 00:08:20mode and it makes you know designing a
- 00:08:22product um really easy because they can
- 00:08:24focus on solving the problem that they
- 00:08:25need but also color are uh color
- 00:08:27variables being mode specific can toggle
- 00:08:30between Dev modee slides and editor and
- 00:08:34if there's ever any sort of future sort
- 00:08:36of uh use cases that we need to cover we
- 00:08:38can automatically extend the modes in
- 00:08:40our variables to cover those cases and
- 00:08:43uh I think the modularity of it and the
- 00:08:45extensibility of it is is really it
- 00:08:47helps a lot because we can very quickly
- 00:08:49sort of publish a lot of these changes
- 00:08:51throughout the team and uh folks can
- 00:08:53just uh you know go off to the races
- 00:08:56with these with the colors that they
- 00:08:58need and um they can tweak them as
- 00:09:00needed through branching em merging yeah
- 00:09:02that's awesome yeah and like kind of
- 00:09:04building off of what you're mentioning
- 00:09:05branching emerging I mean you guys said
- 00:09:08that you know FPL it's inspired by how
- 00:09:10people think about public libraries
- 00:09:12really wanting to build a community
- 00:09:15around figma's internal design system so
- 00:09:17how are you thinking about how FPL is
- 00:09:20going to evolve based on teams feedback
- 00:09:23as more designers and Engineers are
- 00:09:25using it so one of the things that we
- 00:09:26built at the heart of FPL was that FPL
- 00:09:28is a pattern Library it's not a
- 00:09:30component library and so we actually
- 00:09:33separated out different parts of a
- 00:09:35component that are built independently
- 00:09:37so one of the foundations that we built
- 00:09:38on top of was this concept of a
- 00:09:40primitive which is this separate from
- 00:09:42separate from the typical visual design
- 00:09:44in that it is the behavior of a
- 00:09:45component and so we have for example a
- 00:09:48button primitive that is for all buttons
- 00:09:49in the product they should be backed by
- 00:09:52this one button primitive that handles
- 00:09:54everything you need to do about a button
- 00:09:55well You' think oh what is there that
- 00:09:57goes into a button but when you're
- 00:09:58building cool power user tools like
- 00:10:00figma you have these really intricate
- 00:10:02patterns that you need to make sure feel
- 00:10:05really good everywhere and can still be
- 00:10:08accessible and so one one pattern that
- 00:10:10you'll see is in the editor you know
- 00:10:12that you are when you are clicking on
- 00:10:14something a lot of our actions happen on
- 00:10:16your mouse down because it's just a
- 00:10:18nicer feel for the for the customer that
- 00:10:21would normally break accessibility and
- 00:10:24so we put a bunch of work in to make
- 00:10:26sure that this pattern not only does
- 00:10:28still feel good for for for our
- 00:10:30customers that are using a mouse but
- 00:10:31also customers that are using anything
- 00:10:32can use this ju all the same uh and so
- 00:10:36we've we've built that into the heart of
- 00:10:37our buttons so that all of our buttons
- 00:10:39use this down the line and so as the
- 00:10:41design system grows we can add new
- 00:10:43styling of button without losing that
- 00:10:46same feel to it and so the same is going
- 00:10:49to be true for many other patterns um as
- 00:10:51we move as we move through our our work
- 00:10:53and so design can be built e can when
- 00:10:56does design wants to add new components
- 00:10:57to the library it's small and smaller
- 00:10:59chunks of incremental work to do that on
- 00:11:02the code side yeah and I think uh you
- 00:11:05know building on Tom's point it's really
- 00:11:07important for us to build Timeless
- 00:11:10patterns things may change tomorrow but
- 00:11:13I think uh just giving us a solid
- 00:11:15foundation a functional and behavioral
- 00:11:17Foundation to build on is uh really key
- 00:11:19for just yeah just giving some staying
- 00:11:22power to the work that we're doing we
- 00:11:23have a great pretty great culture on the
- 00:11:25team of just having a service mindset
- 00:11:26and being embedded within teams to help
- 00:11:28them cover any new use cases or things
- 00:11:30that might come up um so at least on the
- 00:11:33design side you know we have uh slack
- 00:11:35forums and we we just constantly because
- 00:11:37our ui3 library is uh uh shared across
- 00:11:40both design and Engineering people can
- 00:11:42see a living and breathing sort of
- 00:11:44document and uh be able to ask questions
- 00:11:46in real time uh also we have um a series
- 00:11:48of crits where you know um a lot of
- 00:11:51folks on the FPL team a lot of designers
- 00:11:52on the FPL team where we'll be able to
- 00:11:54plug in and see things from beginning to
- 00:11:56end and uh really what the goal of that
- 00:11:58is to to be service-minded and how we um
- 00:12:02how we just help designers move the kit
- 00:12:03along all right I have to ask this
- 00:12:06question because it's something that
- 00:12:07everyone keeps asking but what's it like
- 00:12:10building figma's design system in figma
- 00:12:14yeah no that's a great question I think
- 00:12:16it's really important for us to dog food
- 00:12:17our own products so we can make them
- 00:12:19great for the customer and I think like
- 00:12:21uh you know a a company of our size and
- 00:12:25a design team of our size and scale and
- 00:12:27how we're we're growing really quickly
- 00:12:29helps us to battle test a lot of those
- 00:12:31tools in the field and I think us being
- 00:12:34able to manage such a complex system on
- 00:12:36top really speaks to like the sort of
- 00:12:38the durability of our tools and like but
- 00:12:40also it helps us expose like what's not
- 00:12:42working very quickly and so we really
- 00:12:44try to like improve the product as we go
- 00:12:46one really good example of this on how
- 00:12:50uh using your own product can make
- 00:12:51something better make make your product
- 00:12:53better early on the the the concept of
- 00:12:56code connect was kind of a uh it was a
- 00:12:59it was a quick idea we're like oh we can
- 00:13:01just quickly generate some code tiits
- 00:13:03for our for our stuff and see what
- 00:13:05happens and so the dev tools team had
- 00:13:07that rigged up really quickly and so but
- 00:13:10we started using it right away on on FPL
- 00:13:13and so as we started to use this we
- 00:13:14started to run into cases where not
- 00:13:17every property maps directly to a code
- 00:13:19to a code property they come into
- 00:13:20different categories and maybe
- 00:13:21ergonomics for designers are different
- 00:13:23than ergonomics for developers and so
- 00:13:25the flexibility of code connect grew and
- 00:13:26grew and grew until Cod connect was the
- 00:13:29awesome product that we have today
- 00:13:30instead of it instead of just being a
- 00:13:31simple okay let's convert figma
- 00:13:33properties to code properties uh and it
- 00:13:36allowed for it now it allows for pretty
- 00:13:39much any scale of design system to
- 00:13:41convert their design code or their
- 00:13:43design source of Truth directly into
- 00:13:45their uh engineering source of truth and
- 00:13:48that's that just comes from using our
- 00:13:49own product yeah I feel like normally
- 00:13:52when something sound straightforward it
- 00:13:54almost never actually turns out to be
- 00:13:56that way so but it's great you guys
- 00:13:59eventually got there um their testing
- 00:14:01and feedback I'm curious to know like as
- 00:14:03you worked on FPL for the past year and
- 00:14:05a half how has your opinion around
- 00:14:08Design Systems change like building them
- 00:14:10maintaining them I'm curious to know if
- 00:14:12this has changed your perspective in any
- 00:14:14way I can't speak for a time but I feel
- 00:14:16like I'm learning something new every
- 00:14:17day um uh don't mean to sound cliche
- 00:14:20about that answer but you know I think
- 00:14:22our team is just like growing so quickly
- 00:14:24and every day we're finding a new
- 00:14:26ceiling that our design system is
- 00:14:28hitting uh whether that's you know where
- 00:14:30do we draw the lines between Behavior
- 00:14:31inside editor or inside file browser uh
- 00:14:34where are the needs for any particular
- 00:14:36surfaces there's a lot of room for sort
- 00:14:39of improvement and um yeah like I think
- 00:14:42it's it's every every sort of day is a
- 00:14:45new lesson in how we can be uh how we
- 00:14:48can take into a different place so I've
- 00:14:51built I've been working in Design
- 00:14:52Systems for a while now uh before figma
- 00:14:55even but the big the the very
- 00:14:56interesting thing about figma's design
- 00:14:58system is how oh we have three products
- 00:15:00that really have their own feeling to
- 00:15:02them they have they have to be
- 00:15:03consistent and we want them to behave
- 00:15:04consistently but they need to feel
- 00:15:06different and so learning how to juggle
- 00:15:08a design system between three products
- 00:15:11and the file browser needs to have
- 00:15:12elements of all of them this is such an
- 00:15:14interesting challenge that like my team
- 00:15:16is working on that that that we're all
- 00:15:18working on every day um and it's it's a
- 00:15:21new adventure now that you know fpl's
- 00:15:24kind of in the hands of people at figma
- 00:15:26what are what are the next steps the
- 00:15:29next steps are let's figure out what
- 00:15:32needs to be improved there's a design
- 00:15:34system's never done anyone any Design
- 00:15:36Systems anyone who is working on Design
- 00:15:38Systems says my my design system is done
- 00:15:40I don't need to do anything more has
- 00:15:42stopped Building Product and so you know
- 00:15:44everything new that we do requires us to
- 00:15:47go back and revisit a pattern and say
- 00:15:49okay I if I'm stretching this pattern if
- 00:15:51this pattern doesn't feel right here do
- 00:15:53we need to make that pattern better I
- 00:15:56think figma as a product Suite is sort
- 00:15:58of of changing in ways that uh is always
- 00:16:01trying to ultimately service the
- 00:16:03customer and yeah and and with that uh
- 00:16:06you know we have to service those
- 00:16:07changes and adapts and I think uh you
- 00:16:10know the ambition of our team the FPL
- 00:16:12team is really to be at the Forefront of
- 00:16:15that and operationalize that and make
- 00:16:16that as easy to use and as easy to
- 00:16:19implement as possible um for both us and
- 00:16:23the End customer all right so the last
- 00:16:24couple minutes here I wanted to share a
- 00:16:27couple of questions that people posted
- 00:16:29on our socials uh that they would love
- 00:16:31to know about
- 00:16:32FPL first question what's the hardest
- 00:16:36thing to keep organized in a design
- 00:16:38system I think feedback is really hard
- 00:16:40to keep organized figma's gotten to be a
- 00:16:43big product right the most of most
- 00:16:45products in the world depend on us now
- 00:16:47and so we have a bunch of people trying
- 00:16:49to build them as the design system grows
- 00:16:51we have to get more and more feedback
- 00:16:53and that is an interesting Challenge and
- 00:16:56so we've had to a lot of a lot of my
- 00:16:58focus in the last six months has been
- 00:17:01figuring out the right the right points
- 00:17:03and time and the right ways to collect
- 00:17:05that feedback and make sure we don't
- 00:17:06lose it all right other question how do
- 00:17:08you manage documentation and usage
- 00:17:10guidelines so we actually just built a
- 00:17:13whole new Doc site for our for the for
- 00:17:15the engineering part of the design
- 00:17:17system um where we build it from the
- 00:17:19ground up to uh service all of all the
- 00:17:23things our customers are asking for um
- 00:17:25our customers being developers in the
- 00:17:27organization and so so we built it not
- 00:17:30only to document the components but also
- 00:17:32to document how some best practices to
- 00:17:37using them as well as some pitfalls to
- 00:17:39avoid especially around accessibility to
- 00:17:41help people help train help train people
- 00:17:43up on how to build more accessibly for
- 00:17:44the web and we built that all in uh
- 00:17:47cooperation with uh with Wayne and some
- 00:17:50of uh his design colleagues to make it
- 00:17:52look cool when you're going to design
- 00:17:53system doc you should feel good about it
- 00:17:55and so we spent a little bit of extra
- 00:17:56time making that look and feel good to
- 00:17:59the people that are using it too um one
- 00:18:01other question that someone asked was
- 00:18:03which component did you all create first
- 00:18:06don't tell me it's the button we created
- 00:18:08the checkbox first that was the first
- 00:18:10thing we did because buttons are too
- 00:18:12wide reaching and the first thing we
- 00:18:13wanted to do was something that was both
- 00:18:15simple uh but also didn't wasn't
- 00:18:18everywhere and so checkboxes are used
- 00:18:20they're important but buttons are kind
- 00:18:22of complicated like we talked about uh
- 00:18:25but buttons are buttons get crazy cuz
- 00:18:27they're everywhere whereas a checkbox is
- 00:18:28only used in a few places so checkboxes
- 00:18:31were an opportunity for us to just score
- 00:18:33quick early you know as a team that was
- 00:18:35still jelling and coming together we
- 00:18:36could celebrate something that was
- 00:18:38pretty achievable do people get punished
- 00:18:41if they detach yeah they go to fpl jail
- 00:18:44yeah I'm the one who slides notes under
- 00:18:45them and tells them how to get out but I
- 00:18:47think like uh no yeah I think like for
- 00:18:49for myself I try to make sure that you
- 00:18:52know uh in the event that they need to
- 00:18:53detach it probably means that we're not
- 00:18:55doing something right and so myself as a
- 00:18:58designer I try to just uh you know spend
- 00:19:00some time uh be very embedded within the
- 00:19:02teams and and just figure out why um and
- 00:19:05uh you know if it's a case of us not
- 00:19:07covering a particular state or variant
- 00:19:09we can solve that um and sometimes it's
- 00:19:11a deeper like functional thing in which
- 00:19:13case it might give rise to like new
- 00:19:15guidance and and new behaviors and us
- 00:19:17for us to actually like definitively
- 00:19:19draw a line and say hey this should be
- 00:19:20different for a very specific reason all
- 00:19:22that information is really helpful and
- 00:19:24um I think like a detach is just a
- 00:19:26symptom that you know maybe maybe
- 00:19:28there's something that we're not doing
- 00:19:30and so for myself I just take it as
- 00:19:31signal that hey how can we do things
- 00:19:33differently how can we help you um and
- 00:19:35to investigate those reasons uh one
- 00:19:38thing that we did early on was make it
- 00:19:40so that detachments were able to be
- 00:19:42visible in code and so what we can do is
- 00:19:44now we can go and audit why teams are
- 00:19:47detaching ask them followup questions if
- 00:19:49it's not obvious what they're detaching
- 00:19:50into uh and so now we we are able to
- 00:19:53track all these detachments and use them
- 00:19:54as a feedback channel for us to develop
- 00:19:56the design system for there very cool
- 00:19:58well thank you guys so much for sitting
- 00:20:01down with me and talking about FPL it
- 00:20:04sounds like you have a lot of work cut
- 00:20:06out for you but wishing you all the best
- 00:20:08of luck thank you yeah it's great doing
- 00:20:11this well thank you so much Tom and
- 00:20:14Wayne for sharing some of the insights
- 00:20:16of things that you've learned when
- 00:20:17building FPL as well as some of the
- 00:20:19details around how you built Your Design
- 00:20:21system to the people who are watching I
- 00:20:24hope you guys really enjoyed this
- 00:20:25conversation if you have any more
- 00:20:27questions around how to build a design
- 00:20:29system or how we build it here at figma
- 00:20:31please drop a comment below and we hope
- 00:20:34to see you guys some other time
- FPL
- Figma
- 设计系统
- 工程
- 组件属性
- code connect
- 产品开发