Framework APAC: Office hours: Design systems, AMA

Figma
24 Apr 202431:49

Summary

TLDRIn this insightful session, Figma's designer advocate Corey and his colleague discuss the intricacies of Design Systems during an AMA session. They cover topics like variable scopes for typography, the use of Q&A for questions, and the utility of modes for translations. They also delve into the benefits of typography variables over styles, the coexistence of design guidelines and systems, and the potential of code connect for accessibility. The conversation provides a rich resource for designers looking to enhance their understanding and application of Design Systems in their work.

Takeaways

  • πŸ˜€ The AMA session is focused on Design Systems and aims to answer questions related to design systems and recent feature launches in Figma.
  • πŸ” Corey, a designer advocate at Figma, is working on variable scopes for typography, which are in the early stages and will have updates in the future.
  • 🌟 Figma has introduced new features like typography variables, gradients, code connect data, and library analytics to enhance design systems.
  • πŸ“ Users can utilize text variables for translations and change labels and languages using modes, which is currently possible with existing variable features.
  • πŸ”„ Modes can be used for more than just translations, such as adjusting the tone and manner of text in a single language environment.
  • πŸ”— Code connect is currently in beta and open for organizations and enterprise plans, aiming to bridge the gap between design and code.
  • πŸ“š Design Systems and traditional design guidelines are seen as complementary, with Figma offering a spectrum of documentation options.
  • πŸ› οΈ There is an ongoing discussion about the best practices for documentation, with some organizations using both Figma and external tools like Storybook.
  • πŸ”‘ Figma's approach to composite variables, such as typography and gradients, is to use styles that wrap individual variables together for easier management.
  • πŸ”„ The session touched on the possibility of using variables for dynamic font scaling and testing designs across different platforms like iOS and Android.
  • πŸ›‘ The AMA session concluded with a Q&A, emphasizing the importance of community engagement and the continuous evolution of design systems in Figma.

Q & A

  • What is the AMA session about?

    -The AMA (Ask Me Anything) session is about Design Systems, where the hosts, Corey and Jess, discuss various aspects of Design Systems, answer questions, and talk about recent feature launches in Figma related to Design Systems.

  • What is the current status of variable scopes for typography in Figma?

    -Variable scopes for typography are intentionally being worked on and are still in their early stages. The audience is advised to stay tuned for more updates on this feature.

  • Can text variables be set for text layers in Figma?

    -Yes, text variables can be set for the value of a text layer, such as a button label, and can be changed using modes for different translations or languages.

  • What is the role of Design Systems in relation to traditional design guidelines?

    -Design Systems and traditional design guidelines are complementary. They should work hand in hand, with Design Systems providing a more interactive and scalable approach, while traditional guidelines offer detailed documentation.

  • How can developers add accessibility to components via Code Connect?

    -Developers can refer to the Code Connect repository on GitHub for examples on writing different ARA tags for components in various formats like React or Storybook.

  • Is it possible to use text variables for dynamic font scaling across iOS and Android designs?

    -Yes, modes can be utilized to test design variations for different platforms like iOS and Android, allowing for dynamic font scaling adjustments.

  • What is the current stance on composite variables for typography in Figma?

    -Styles are considered the composite variables in Figma. They allow packaging all typography variables together, making it easier to manage and apply as a whole.

  • Does Dev mode support low-code platforms like OutSystems?

    -The script does not provide specific information about OutSystems support in Dev mode. It suggests that more context or details are needed to provide an accurate answer.

  • Can Figma's Code Connect support other types of development frameworks besides React and Swift UI?

    -While React and Swift UI are currently supported, Figma is considering support for other frameworks like Angular, indicating that updates on this matter will be provided in the future.

  • How should a single component library be set up for multiple products with different theming?

    -A single component library can be efficiently set up using variables with separate modes for different themes. This allows for easy updates and theming across multiple products.

  • What is the benefit of using typography variables over Styles in Figma?

    -Typography variables are beneficial for scaling Design Systems, allowing for quick switching between different modes or brands. They also help in syncing better with the code base, bringing design and development closer together.

  • How does Figma plan to make its products more comprehensive for designers as new features are added?

    -Figma is aware of the increasing complexity and is focused on making the product more comprehensive. Designer advocates serve as a bridge between the product and the community, helping to educate and share best practices to adopt new features without overwhelming users.

  • What is the difference between Storybook and Code Connect in the context of documenting design and code?

    -Code Connect is a native Figma feature that connects code repositories to Figma for documentation, while Storybook is a separate tool outside of Figma for documenting design and code together, with additional features not native to Figma.

  • How should a team approach modifications to an existing Design System to fit their business needs?

    -Teams should start with an existing design system framework and gradually customize it as their needs grow. It's important to build on the initial framework, adjusting and scaling it to suit the business requirements over time.

Outlines

00:00

🎨 Design Systems AMA Session Introduction

Corey, a designer advocate at Figma, introduces the final session of an AMA about Design Systems. The session aims to answer questions on Design Systems and recent feature launches. Corey explains the use of the Q&A option on Zoom for submitting questions. The discussion includes updates on variable scopes for typography, which are in early stages, and encourages participants to stay tuned for future improvements. The session also covers how to build and scale Design Systems, with a reminder of a previous 'Design Systems 101' talk.

05:02

πŸ” Discussion on Design Systems and Traditional Guidelines

The conversation explores whether Design Systems are replacing traditional design guidelines. The participants agree that both should coexist, with Design Systems providing a spectrum of documentation needs. They discuss the use of Figma's description fields and Code Connect for documentation, alongside external tools like Storybook. The summary touches on the importance of documentation for different needs and how teams use a combination of tools.

10:06

πŸ“š Addressing Documentation and Design System Queries

This section delves into customer approaches to maintaining documentation for Design Systems, including having separate sets for design and developer documentation. The discussion highlights the importance of having documentation that lives both within Figma and externally, such as in code repositories, to cater to different organizational needs and functions.

15:07

πŸ›  Customizing Component Libraries for Multiple Products

The paragraph discusses strategies for setting up a single component library that can be re-themed for multiple products. It suggests using variables to define aspects like color, size, and corner radius, with different modes for each theme. The summary addresses how to manage design libraries efficiently and the use of variables to adapt components to various themes.

20:08

πŸ”‘ Typography Variables and Design System Management

The discussion focuses on the benefits of using typography variables over styles when designing with Design Systems. It emphasizes the ease of switching between different modes or brands and the efficiency of managing individual values. The summary also touches on the coexistence of Styles and variables for ease of application and better syncing with the code base.

25:11

πŸ€” Navigating Complexity in Design Systems

This section addresses concerns about the increasing complexity of Design Systems and the challenges designers face in understanding and creating them. The speakers acknowledge the product's growing feature set and the role of advocates in educating the community on best practices and adopting new features without feeling overwhelmed.

30:13

πŸ“ˆ Comparing Storybook and Code Connect

The paragraph differentiates between Storybook and Code Connect, explaining that Code Connect is a native Figma feature for linking code repositories, while Storybook is an external tool for documenting design and code together. The summary highlights the overlap in functionality and the unique aspects of each tool.

πŸ—οΈ Adapting Design Systems to Business Needs

The final paragraph discusses the challenges of modifying existing Design Systems to fit business needs. The speakers suggest starting with a UI kit and gradually customizing it as the team and use cases grow. They emphasize the importance of not reinventing the wheel and building on existing systems to create a tailored Design System.

πŸŽ‰ Wrapping Up the Design Systems Day

The session concludes with a thank you to the participants, highlighting the value of the information shared throughout the Design Systems Day. The speakers encourage continued engagement with Design Systems and invite participants to follow up on social media for further questions and interactions.

Mindmap

Keywords

πŸ’‘Design Systems

Design Systems are a set of reusable design components and rules that ensure consistency and efficiency in product design. In the video's context, Design Systems are the central theme, with discussions on their creation, management, and use in various design and development scenarios. The AMA session focuses on answering questions related to Design Systems, indicating their importance in the current design landscape.

πŸ’‘Figma

Figma is a cloud-based interface design and collaboration tool that is frequently mentioned in the script. It is the platform where the AMA session is taking place, and it is also the tool that supports the creation and management of Design Systems. The video discusses new features and updates in Figma that are particularly relevant for Design Systems, such as typography variables and code connect.

πŸ’‘AMA (Ask Me Anything)

An AMA session is an open forum where participants can ask questions on a specific topic. In this video, the AMA session is dedicated to discussing Design Systems, allowing participants to engage with the hosts, Corey and Jess, on various aspects of Design Systems in Figma. The script mentions using the Q&A option in Zoom for this purpose.

πŸ’‘Typography Variables

Typography Variables in Figma are a feature that allows designers to create and manage text styles dynamically. In the script, Corey mentions that they are working on variable scopes for typography, indicating an area of active development within Figma to improve Design Systems' text element management.

πŸ’‘Variable Scopes

Variable Scopes refer to the context or conditions under which a variable's value is applicable. In the context of the video, Corey discusses the intention to develop scopes for typography, which would allow for more granular control over text styles within Design Systems, as seen in the script where he says, 'Cory are, variable Scopes intentionally emitted, for typography...'.

πŸ’‘Code Connect

Code Connect is a feature in Figma that connects design components with their corresponding code implementations. This feature is highlighted in the script as a way to enhance the relationship between design and development within a Design System, allowing for better documentation and collaboration between designers and developers.

πŸ’‘Accessibility

Accessibility in design refers to the practice of ensuring that products can be used by people with a wide range of abilities. In the script, there is a question about adding accessibility to components via Code Connect, indicating an interest in making Design Systems more inclusive and compliant with standards such as WCAG.

πŸ’‘Modes

In Figma, Modes are used to switch between different sets of variables, which can be useful for managing different states or themes within a Design System. The script discusses using Modes to change text for translations or to adjust the tone and manner of text, as mentioned when Jess says, 'you can use the mode to change different languages...'.

πŸ’‘Atomic Design

Atomic Design is a methodology for creating Design Systems based on the concept of atomic theory, where the smallest units of design (atoms) combine to form larger components. The script references Atomic Design as a foundational concept for understanding how Design Systems are structured and how variables are named and organized.

πŸ’‘UI Kit

A UI Kit is a collection of pre-designed user interface elements that can be used to speed up the design process. In the script, there is a discussion about starting with an existing UI Kit and then customizing it to fit specific business needs, which is a common practice in building Design Systems.

πŸ’‘Component Library

A Component Library in the context of Design Systems is a collection of reusable components that can be themed or customized for different products. The script mentions the idea of having a single component library that can be re-themed for multiple products, showcasing the flexibility of Design Systems.

Highlights

Corey, a designer advocate at Figma, and Jess discuss Design Systems in an AMA session.

They encourage participants to use the Q&A option on Zoom for questions about Design Systems.

Variable Scopes for typography are in development, with updates to be released in the future.

Design Systems 101 session from the previous week is recommended for understanding how to build scalable Design Systems.

New features like typography variables, gradients, and code connect data are discussed, with a call for feedback on favorites.

Text layers can utilize variables, allowing for dynamic changes in translations and label languages.

Modes can be used for different languages or to change the tone and manner of text in a single language context.

Code Connect is open for beta to organization and enterprise plans, supporting documentation and development.

Design Systems and traditional design guidelines are seen as complementary, with Figma offering tools for both.

Accessibility in components via Code Connect is addressed, with GitHub repo examples provided.

The possibility of using text variables for dynamic font scaling across iOS and Android is confirmed.

Styles are considered composite variables in Figma, packaging multiple typography variables together.

Code Connect supports other development frameworks beyond React and Swift UI, with more to be added.

Documentation strategies for Design Systems vary, with some organizations using both Figma and external tools.

Nested component properties can be selectively exposed in Figma, allowing for customization of instance properties.

Efficient setup for theming multiple products with a single component library is discussed, using variables for customization.

Typography variables offer benefits over Styles, such as faster setup and better syncing with code bases.

Figma's approach to making complex features more accessible for designers includes education and community support.

The difference between Storybook and Code Connect is explained, highlighting their unique features and use cases.

Atomic Design Systems are recommended as a starting point for understanding component structure and variable setup.

Advice on modifying existing Design Systems to fit business needs includes starting with a base and customizing as necessary.

Transcripts

play00:00

[Music]

play00:06

So today we're GNA do um oh I give quick

play00:09

intro so I'm Corey I'm a designer

play00:11

advocate here um at figma and I'm here

play00:14

with just today and this is our final

play00:16

session and we're going to do a AMA

play00:18

about all things Design Systems so um

play00:21

what we're going to do is um we have a

play00:24

chat but um instead of using a chat you

play00:27

should see a Q&A um option on Zoom so

play00:31

we'd like you to use that Q&A option

play00:33

there to write down your questions um

play00:35

any questions you have about Design

play00:37

Systems um we'll try to answer them

play00:39

today y or anything in general

play00:43

really but yeah specifically for Design

play00:46

Systems or anything related to um any

play00:49

feature launches that you guys have seen

play00:51

um that was released particularly for

play00:53

free workor we're here to answer

play00:55

that so Jess is in Singapore and I'm in

play01:01

yep are vable are sorry our variable so

play01:05

here comes our first question Cory are

play01:07

variable Scopes intentionally emitted

play01:10

for typography

play01:12

applications that is something we're

play01:14

working on at the moment so I'd say like

play01:16

stay tuned that we'll have some more

play01:18

updates on that so at the moment there

play01:20

are no scopes for tyover

play01:23

specifically it's still in its early

play01:26

stages so I think um really stay tuned

play01:29

and keep a look out for any future

play01:34

improvements yeah hope you guys have

play01:36

tried out the typography variables or if

play01:39

not maybe you guys have tried building

play01:42

um a variable Library um we went through

play01:46

a Design Systems 101 last week um so

play01:50

hope that gives you a clear idea how to

play01:53

um build the imun Design Systems and all

play01:55

the way to scaling them to a bigger one

play01:58

yeah so of all the features that kind of

play02:00

launched this week with uh let's say

play02:02

typography variables we have gradients

play02:03

we got code connect data um Library

play02:06

analytics which one was your favorite

play02:08

love to hear from you guys on the chat

play02:11

for all of you guys who are just

play02:13

trickling in um or you know tuning in

play02:16

sorry um this is an AMA session so any

play02:20

questions that you have related to

play02:22

design systems or any framework future

play02:24

releases drop your questions on the Q&A

play02:28

um button below

play02:30

on the zoom navigation and we'll answer

play02:33

them so Cory this is our next question

play02:36

can we already have variables set for

play02:38

text layers given the update to

play02:40

typography variables in particular in

play02:43

this use case could be helpful for

play02:46

translations variable set for text

play02:50

layers um is this in regards to that

play02:53

just the text value itself yeah that's

play02:56

the case and that that's you know um

play02:58

that currently does work so for text for

play03:00

text variables you can set them to the

play03:02

value of like a text layer um so if you

play03:05

have a a button with a label you can set

play03:07

the variable um to the value of that

play03:09

label and you can change the the label

play03:11

language using modes um depending on the

play03:14

different translations you have so yeah

play03:17

that is currently possible with the

play03:18

current variable yeah you can utilize it

play03:21

as Norm as per normal with

play03:24

strings and then you can use the

play03:26

different modes to change like what

play03:28

Corey mentioned to the different um

play03:33

languages any existing or upcoming

play03:35

features to cater for

play03:37

translations um we are still currently

play03:40

working on that I think as for now it's

play03:42

probably using modes uh under

play03:45

variables but I think Corey here or if

play03:50

you happen to see Hiroki um I assume

play03:53

they've met made some plugins related to

play03:55

this I don't know right I think you guys

play03:57

made some plugins um for transl

play04:01

not really to translations but I think

play04:02

for like when it comes to modes there's

play04:04

some interesting things you can do you

play04:06

can use obviously use a string variable

play04:09

for um the text the text value of like a

play04:13

button or something like that um and use

play04:15

the mode to change different languages

play04:18

but you can also use that for like a

play04:20

kind of like a tone and manner like if

play04:21

you have maybe you just have only one

play04:24

language your your language is is solely

play04:25

English but if you want to use um maybe

play04:29

be a more polite type of like phrasing

play04:32

and then in some places and more like a

play04:34

casual phrasing in different places um

play04:36

you can use modes to kind of change

play04:37

between those things um as another just

play04:40

different idea for how to use uh modes

play04:43

with text when you don't have

play04:47

translations yeah and should we go down

play04:50

there um this co connect open to all

play04:52

figma license type so this is actually

play04:55

um currently open uh for beta for

play04:57

organization and Enterprise price yeah

play05:01

yeah with the trend towards Design

play05:04

Systems would you think they are

play05:05

replacing the traditional design

play05:07

guidelines documents or do you see need

play05:09

of both Trend towards Design Systems

play05:13

would you think that they're replacing

play05:15

traditional what do you mean by

play05:17

traditional design guidelines I think to

play05:20

me I mean this is my take but like I

play05:22

think design both design guidelines and

play05:24

design sys goes hand inand um I think it

play05:29

should be I think it should accompany

play05:31

one uh and another yeah I think it's a

play05:35

gradient though of like of how much

play05:39

people need um and again I think for

play05:41

like fig mother we offer a certain you

play05:44

know uh spectrum of that gradient as

play05:46

well when it comes to like writing

play05:49

documentation inside of figma we've seen

play05:51

again DBS is example they had some

play05:54

documentation on the canvas but there's

play05:56

also things like documenting um and the

play05:58

description fields and stuff like like

play05:59

that and another we have COC connect

play06:01

that also brings more documentation and

play06:03

even with COC connect people still use

play06:05

that um in conjunction with like story

play06:08

book and external tools and stuff so I

play06:10

think it really depends on your needs I

play06:12

think there's still going to be maybe an

play06:14

option for people who have more specific

play06:15

needs to use something external um or

play06:18

people who have um maybe not as specific

play06:21

needs can use something more streamlined

play06:23

and just depend on only FMA

play06:25

itself

play06:27

yep can you provide any sights into

play06:30

adding accessibility to components via

play06:33

code connect oh this looks like

play06:38

yeah would be I would say just check our

play06:42

um code connect repo on GitHub um and

play06:45

then there's some good examples of how

play06:47

to actually write like different um ARA

play06:50

tags um for your components whether it's

play06:52

in react or like story book format and

play06:54

stuff like that so um yeah please check

play06:56

the code connect repo on GitHub for some

play06:58

good examples on that

play07:01

will it be possible to use text

play07:03

variables to test Dynamic font scaling

play07:06

across IOS and Android designs I believe

play07:09

so

play07:12

um I believe yeah I think you can also

play07:16

utilize modes to kind of test those

play07:18

design or if you are separating your

play07:21

files you can actually separate those

play07:23

variable libraries

play07:25

accordingly yeah if you go back to the

play07:27

session earlier with Anna um she did

play07:30

Show an example of that when she was

play07:31

showing type type variables she had a

play07:33

font size and she had different modes

play07:35

that she would um change between and

play07:37

then the font size was changing so you

play07:39

could use that again user modes for iOS

play07:41

versus Android um toale and you can

play07:44

scope I think going back to scoping now

play07:46

it's not like scoping towards like um

play07:49

Corner radius but you can actually use

play07:51

the variables to kind of um tag it to

play07:54

your leting or curing and even font

play07:57

sizes to kind of scale that

play08:00

mhm are composite variables for

play08:03

typography on the road map detaching

play08:05

from

play08:06

textiles I would say that like um our

play08:10

current stance is that styles are

play08:12

essentially the composite variable um so

play08:15

that's that's just the the reason why

play08:16

they still continue to exist together is

play08:18

that styles are the ones that allow you

play08:20

to you know package all those variables

play08:22

together um again a great example was

play08:24

the session today where she had all the

play08:27

different you know typography variables

play08:28

of like the name um the line height the

play08:32

size Etc and then you wrap that in a

play08:34

single style which is essentially the

play08:36

same as a compositive variable um the

play08:38

same thing with gradients as well

play08:39

gradients are you know two to three

play08:41

different colors for example and that

play08:43

goes into a style that you know wraps

play08:46

them all together so I would say that

play08:48

those are the the the current solution

play08:50

or direction for UNC composite tokens or

play08:52

composite variables

play08:54

here

play08:57

M okay next question question does Dev

play09:00

mode also support low code platforms

play09:03

like out systems oh I've never heard of

play09:05

out systems have you I haven't heard of

play09:08

it specifically um I'm not

play09:11

sure yeah maybe we need some more

play09:14

context on like what type of support um

play09:17

whether it be you me

play09:20

Cod

play09:22

yeah any plans to allow changing modes

play09:25

for language and presentation mode that

play09:27

are easier than exist ing work arounds

play09:31

um I would say again we are definitely

play09:34

working um something around that um so

play09:38

stay tuned on any updates about

play09:42

that for code connect with their be

play09:45

support for other types of development

play09:47

Frameworks since right now it's launched

play09:49

for react and Swift UI for

play09:52

now yes um we do have a lot of other

play09:56

support on the works I think things like

play09:58

angler and stuff like that are current

play09:59

being considered so um look for some

play10:01

updates on that

play10:05

soon have you noticed um have you

play10:08

noticed customers to having two sets of

play10:11

documentation for their Design Systems

play10:14

for instance design documentation and

play10:16

FMA and

play10:17

developer documentation elsewhere

play10:19

curious to hear some approaches you've

play10:23

you've see in and if there are any been

play10:25

preferred any platforms to have allinone

play10:28

documentation oh this is actually a

play10:30

great question I can um answer on that

play10:33

and then Cory can take over I think um

play10:35

based on our learnings or rather my

play10:37

learnings is that let's take for example

play10:40

DBS s dbs's session earlier on um to

play10:44

them I think documentation is such an

play10:46

important uh process or aspect of it so

play10:49

they actually did both um documentation

play10:53

um on the code repo and for the ux

play10:56

engineers to uh take a look at and also

play11:00

that lives on figma for the Design

play11:02

Systems designer so that but I guess

play11:05

everything still Tellies together so um

play11:08

it kind of really depends on uh case to

play11:11

case or how big is your organization or

play11:13

maybe the function of it um

play11:16

but there are some instances that they

play11:20

both of those documentation live

play11:22

together um yeah I don't know what are

play11:26

interesting insights that you've seen

play11:28

Corey

play11:29

yeah I think on both sides so there's a

play11:32

certain overlap point where um you know

play11:35

on the design side and the development

play11:37

side we need to speak the same language

play11:38

and talk about the same thing um for

play11:40

this component but there are also Parts

play11:42

where they don't exist on either side

play11:44

there are some things that exist in figa

play11:45

that you need to know about to you know

play11:48

use design and build more design with

play11:49

that component but don't actually show

play11:51

up in um code and the same thing with

play11:54

code you know when you translate to code

play11:55

then you have more things like you have

play11:58

um and you have data like that you know

play12:01

and a button component in figma um f

play12:05

word designer doesn't really have to

play12:06

worry about like what happens if on on

play12:08

click on this button right uh what is

play12:09

that function that's that's um attached

play12:12

to that right um but with like a

play12:14

component say um and code you might want

play12:17

to think about like oh what is this

play12:18

there's a function on click on here and

play12:20

there's a call back and it does these

play12:21

other other different things and this is

play12:23

how you import data into this component

play12:25

right um so there's going to be like

play12:28

extra information on both sides um so

play12:30

sometimes it's not really relevant for

play12:33

for a designer to look at all the

play12:34

information same information as a

play12:36

engineer right so there are kind of use

play12:38

cases where it makes sense to have like

play12:40

um two separate um sources or or sources

play12:44

of documentation for the same thing um

play12:46

and one for one written for engineers

play12:48

one written for

play12:49

designers yeah I think um we kind of

play12:53

discussed about this last week during

play12:55

our um designs 101 I think it's also

play12:58

great to kind of identify like who are

play12:59

your consumers when you identify and

play13:01

understood like who are your consumers

play13:03

and kind of your producers as well then

play13:06

you'll be able to identify like okay

play13:08

that means that I kind of need to Branch

play13:09

out my documentation so that um both

play13:12

consum types of personas or consumers

play13:15

are able to um speak the same language

play13:18

with it being having to like types of

play13:21

documentation

play13:25

regardless okay on to the next one for

play13:27

nested component properties uhhuh are

play13:30

there any plans to customs select what

play13:33

individual properties show up within the

play13:35

nested

play13:37

component

play13:39

we I think this is in reference to when

play13:42

you have a component with a nest

play13:44

component and then you have exposed

play13:45

nested properties uhuh um so right now

play13:48

if you do exposed nested um let me

play13:52

double check I thought I believe you

play13:54

could actually choose choose yeah

play13:56

specifically which yeah I'm pretty sure

play13:59

that you can choose which um n

play14:01

components to expose when you're

play14:02

exposing properties that way um so in

play14:06

that case then you would be able to do

play14:08

individual component

play14:10

properties yeah maybe go it just give an

play14:14

example

play14:16

here let me grab a okay I can't find

play14:21

any let me find a complicated comp

play14:24

component that has okay we'll go back to

play14:26

that you'll find once you find the uh

play14:28

good example for that um double check

play14:31

that so I'll go to the next one here

play14:34

while you're looking for that component

play14:36

um is it possible to have one component

play14:38

library that can easily be re themed for

play14:40

multiple products um so that when you

play14:43

update a component and it updates all

play14:45

products say five products with the same

play14:47

component library but different theming

play14:49

how would you suggest setting this up um

play14:53

I think that's there's a lot of

play14:54

different use cases on that

play14:58

um I would

play15:00

say if you have a single component

play15:04

library and then you just have um really

play15:06

the changes being applied via variables

play15:09

that would probably be like the most

play15:10

efficient setup that way um so then that

play15:13

way you'd have just say some basic you

play15:15

know um vanilla components like a you

play15:18

know here's a here's a button but um the

play15:20

color this the size you know um the

play15:23

corner radius all those different

play15:25

aspects are all defined in variables and

play15:27

all those variables have a

play15:29

uh separate mode um per different like

play15:32

theme and then changing that the the

play15:35

look and feel of things based on that

play15:36

would probably like the most I guess

play15:38

straightforward way to set that up if

play15:40

that makes sense um so like yeah the

play15:42

actual construction um of your design

play15:45

library in that case could be a single

play15:46

file with a single component Library um

play15:49

but those are linked to a collection of

play15:52

variables that have a um mode column per

play15:56

different theme that you want to use and

play15:57

that will change everything I think that

play15:59

would be like a good place to

play16:04

start um same for like and then the last

play16:06

part can you easily theme a button but

play16:08

it doesn't um theme the hover States um

play16:12

so I wouldn't

play16:14

use variables for States like hover

play16:18

States right so when we think about like

play16:20

um modes we tend to think about modes as

play16:23

something that applies to the whole page

play16:25

the whole screen right um so things like

play16:27

hover States I think those are best

play16:29

um Define more like an invariance um

play16:32

rather than um using a mode to change

play16:33

those and the last followup for that

play16:35

would be this would mean we should have

play16:37

component level tokens um doesn't

play16:40

necessarily mean you need component

play16:42

level tokens I think most cases people

play16:44

would have a um primitive set and just a

play16:46

semantic set um I think component level

play16:49

tokens you know depending on your needs

play16:52

they could work but in most cases I

play16:53

think sometimes you know it's a little

play16:55

bit just more work for not really much

play16:57

kind of payoff it's um when it comes to

play16:59

dis

play17:00

management hope that answers your

play17:07

question I think I found um a file by

play17:11

Louie um Cory you might want to check

play17:13

that let's see if it's actually relevant

play17:16

to it because it's actually

play17:19

a card component that is being nested

play17:23

and nested and

play17:26

nested okay what's the component

play17:29

here so if you go to want to go to

play17:33

the main component here um and then so

play17:38

sorry I have a bunch of windows open

play17:39

there so then we have some instances in

play17:42

there and

play17:44

then if another instance is in

play17:47

there yeah so if did you want

play17:50

to Define one of these instances as a

play17:53

implanted property

play18:00

oh here um the button

play18:06

itself yeah Define maybe a component

play18:08

property there so here you go exposed

play18:11

from nested instances here's the menu

play18:13

I'm talking about here um if you can see

play18:15

my screen um in this case here when we

play18:18

expose properties from nested instances

play18:20

you can see that there's a check mark

play18:21

for each and that way you can choose you

play18:24

could say like I just want this ID

play18:26

instance versus this EX instance um so

play18:30

in this case you can see like each of

play18:31

these Banner rows um is an Ned instance

play18:35

as part of this Banner grid list um so

play18:37

if I just want the first I want the

play18:40

first one and not the other three I can

play18:42

remove that there and then now I've

play18:44

Exposed on neity instances for just that

play18:46

first Banner instance so I think that

play18:48

maybe answers the question there is that

play18:51

um when you know setting the exposing

play18:55

instances you can custom select which

play18:57

individual individual property show

play18:59

actually that might be oh I'm sorry I

play19:03

think I think going back to that

play19:04

question there I I actually understand

play19:06

it now um so it's not the actual

play19:08

instance it's the properties on that

play19:10

instance here um so in that case um for

play19:14

example we have this nested instance

play19:15

here of we have Banner grid instance

play19:18

then we expose Banner row um as a

play19:21

exposed nested instance Banner row has

play19:24

its own properties here all these like

play19:26

say BP type and stuff like that um and

play19:30

in that case maybe they will uh the RO

play19:32

poster here wants to um expose maybe

play19:35

just BP and not and not type right um in

play19:38

this case no that's not possible when

play19:40

you expose n instance it will expose all

play19:43

properties that are attached to that

play19:44

nested intense itself um

play19:48

yeah i' say if you wanted to make it a

play19:50

little bit cleaner um you could try

play19:52

using say b booleans um where we have a

play19:55

Boolean and then um and if you show our

play19:58

that depending on that then you show the

play20:00

other kind of like

play20:02

dependent properties um with that um you

play20:05

get the example is like um an icon

play20:08

sometimes you have a um icon instance

play20:10

inside of like a button um what you

play20:12

could do is you could do a show or hide

play20:14

the icon and then if the icon is hidden

play20:17

then the instance for that icon instance

play20:20

um won't actually show up um that makes

play20:22

sense there um so yeah I think that'll

play20:25

answer that question there

play20:32

sorry a long question there no problem

play20:36

thanks for answering Cory um what's the

play20:38

benefit of using typography variable

play20:40

over Styles just in terms of Designing

play20:42

one thing I can think of is the type

play20:44

system would be faster to set up from

play20:47

scratch any other major benefits you had

play20:49

in mind while launching um variables H

play20:53

great question I think um while we still

play20:58

want to Styles I think for um typography

play21:01

variables it's really useful for scaling

play21:03

Design Systems particularly um like you

play21:06

don't want actually to have like all all

play21:10

your colors and semantics um set up for

play21:14

um all your buttons and all that but

play21:16

when you want to change maybe you have

play21:18

multiple brands or platforms that

play21:20

requires you to change those

play21:24

texts um I think um typography variables

play21:28

actually really helps a lot for you to

play21:30

be able to quickly switch um from one

play21:33

mode to another or like from one brand

play21:35

to another I think it really helps to

play21:37

package the whole um variables or tokens

play21:40

um as a whole but um I think in terms of

play21:44

styles itself it is definitely useful on

play21:48

its own feature for example if maybe I

play21:50

sit on marketing and like um I want to

play21:52

be able to just um use um styles for a

play21:57

simple deck for things like that and I

play21:59

think um Styles is still useful for pro

play22:03

probably cross functional Partners so

play22:05

that's kind of where the my thought is

play22:09

that yeah just to F that I would say

play22:11

like um from a management St standpoint

play22:15

obviously for typography you want to

play22:17

manage every single value individually

play22:19

but from the application standpoint of

play22:21

someone using it like the design system

play22:23

user they don't want to have to click on

play22:26

um you know the right line height the

play22:28

right font the right font size all these

play22:30

things by one right that's like you know

play22:33

you know five or six things they need to

play22:34

apply every single day time they apply

play22:36

text um layer so instead of that it's

play22:39

like just put a style here's heading one

play22:42

right um here's you know label right um

play22:45

much much easier um to apply those

play22:47

things um as one but manage them as many

play22:50

I think so that's why again Styles and

play22:53

like variables would continue to coexist

play22:56

I think another thing that I would also

play22:58

add here is that we've been talking so

play23:00

much about like bringing um design to

play23:02

development closer and like with um

play23:05

typography variables it kind of syncs

play23:08

better with your um code base so that

play23:11

you know you don't have to keep on like

play23:13

inviting the Tex stle all over again and

play23:16

again so really it's all about bringing

play23:18

design to development

play23:22

closer yeah do you have a link to the

play23:25

talk about creating Design Systems I'm

play23:27

starting to create one wish you could

play23:29

move variable between Collections and

play23:31

group as I got this wrong to start

play23:34

with we can send you some resources

play23:37

there's a lot of resources how um you

play23:40

might want to consider when you stack

play23:43

um Design Systems with variables uh yeah

play23:47

I'll so we did a I was call out that we

play23:51

did a Design Systems 101 talk the other

play23:53

day um I think that should be up on as

play23:56

an archive pretty soon on our um my's

play23:59

page there so definitely check that out

play24:01

um

play24:03

yeah so we've got a lot of questions

play24:05

left so maybe let go pretty quickly um

play24:08

yeah last few

play24:10

minutes is there plans for inbuilt

play24:13

accessibility auditing um in figma to

play24:16

check uh the component with the wcag

play24:22

compliant um I don't think I've heard

play24:24

anything about that so yeah not natively

play24:27

yeah not at the moment yeah that would

play24:30

be a good plugin though mhm do you think

play24:33

with these design some friendly features

play24:35

rolling it's getting harder for

play24:36

designers to understand and create

play24:37

design system design freely using

play24:39

variables just because it might be too

play24:41

complicated and overwhelming for them to

play24:43

understand if so how figma how is figma

play24:46

planning to make products more

play24:47

comprehensive for designers to use oh

play24:49

actually I can answer this thing um it's

play24:52

such an interesting topic because I

play24:54

think for designer Advocates both cor

play24:56

and I and hoki as well we kind of also

play25:00

um are the people between um almost like

play25:05

are responsible for product education as

play25:07

well um I we kind of don't want to deny

play25:10

the fact that the product is getting

play25:12

more complex it's getting more there's

play25:14

more and more features embedded onto the

play25:16

product because we want to cover all

play25:19

grounds and all use cases and all

play25:21

personas so I think um the way to answer

play25:24

is that like um we on the product side

play25:28

of course they are always thinking ways

play25:30

to be more comprehensive to really

play25:33

onboard users more easily but there are

play25:36

that's also the reason why um we have

play25:39

kind of Advocates as the bridge between

play25:41

the product and the community uh we are

play25:44

here to kind of help you upscale or

play25:47

educate you or really just to share best

play25:50

practices what we think it's best and

play25:51

how to best adopt these features uh

play25:54

without really having to overwhelm all

play25:56

of you

play25:58

yeah um great one um next up let's talk

play26:03

about what's the difference between

play26:03

store book and code connect oh that's a

play26:06

difficult one but I would say like um so

play26:09

code connect is a netive feature in in

play26:11

in figma to connect your your code your

play26:14

repository um to figma and document that

play26:17

right natively um storybook itself you

play26:20

know um I would say you're documenting

play26:24

your design and code together but it's

play26:26

not a native feature and outside of

play26:29

figma so there are some overlap on being

play26:31

able to um document you know design and

play26:34

code in the same place but it's not need

play26:36

to be built into figma it's a separate

play26:38

tool as well as there are other features

play26:40

in in story book as well that um you

play26:43

know don't exist in figma yet or R um

play26:47

you know are more interior oriented um

play26:49

outside of like the context just design

play26:52

or just the the way the um the component

play26:54

looks in figma so yeah it's it's a comp

play26:58

ated space there but like uh I guess

play27:00

that's the best I can answer at the

play27:03

moment thanks

play27:05

guys to three minutes here we just spoke

play27:08

about this um last week again on our

play27:11

design SS 101 but I think

play27:14

it's I think on the topic of atomic

play27:16

Design Systems a lot of people have

play27:18

probably different approach but I think

play27:20

for both of us um an atomic design

play27:22

system is probably a great way or an

play27:24

entry point to kind of understanding how

play27:26

um things are being set up how um code

play27:30

is being set up as well and why are why

play27:34

do you kind of have to set up variables

play27:35

in that manner or why do you have to

play27:37

frame or sorry name your layers and

play27:40

frames in a certain manner it's all of

play27:42

those are actually connected to one

play27:44

another so I think uh having a basic

play27:47

understanding of how Atomic design

play27:48

system design works is actually a great

play27:52

way to understanding a lot of things so

play27:56

we will link our slide SL deck in the

play27:59

chat yeah this is a slide deck from the

play28:01

other day um definitely check that out

play28:03

on the figma community guess we have

play28:04

time Forbe one last question here yeah

play28:07

one or two yeah okay

play28:11

[Music]

play28:15

seeing Oh okay if devs are already using

play28:18

some design system framework it seems we

play28:20

do not necessarily have to build Design

play28:22

Systems from scratch however it's often

play28:24

painful to make modification based on

play28:27

Design Systems k K provided to fit the

play28:29

business need any suggestions and

play28:31

advices on this that's a great

play28:38

question you want to go first now or

play28:40

should I

play28:41

go uh I'll I'll process this and you'll

play28:44

go first and then I'll I'll take my um

play28:47

take on

play28:49

this um I mean I think it's good to have

play28:52

a start point if if possible I think for

play28:54

you know again building things from

play28:55

scratch takes a lot of effort and if you

play28:57

don't need to to build it from scratch

play29:00

um and you can take something that's off

play29:01

the shelf and and slightly customize

play29:03

that I think that good but I think

play29:05

eventually you're going to as you build

play29:06

your product you'll probably run into

play29:07

areas where you need more custom things

play29:10

so um I think eventually you have to

play29:12

build something um more customized um to

play29:16

meet the needs of your designing and

play29:18

have the best design possible um so it's

play29:21

just a matter of when maybe you start

play29:23

with like a um an existing UI kit and

play29:26

because you know it has that designs are

play29:28

already and like the Cod is are already

play29:30

but then you slowly P slowly build off

play29:32

that and create your own design um

play29:35

system or you can go from scratch I

play29:37

think there's just many different

play29:38

options there yeah I think my take here

play29:40

is that I've definitely been in your

play29:43

shoes as well I understood like oh

play29:45

sometimes it's so iffy and having to

play29:47

change everything because you need

play29:48

modification I think um not having to

play29:51

reinvent the wheel is a great way to

play29:53

start um you at least have a base to

play29:57

start with um when it comes to

play29:58

modification it's almost like a muscle

play30:00

memory when you think that the team

play30:02

grows bigger or like the use cases gets

play30:05

bigger as well and there are more

play30:06

complexity in the usage of Design

play30:08

Systems that's where you kind of start

play30:10

to transition and really you don't have

play30:13

to kind of do it alone um so I

play30:16

understand that uh those modification

play30:18

might be difficult but I think it's also

play30:20

um when

play30:21

you uh start off with like a UI kit it's

play30:24

almost like you're practicing or that

play30:26

it's almost like a muscle memory to kind

play30:27

of

play30:28

get it get things adjusted and how

play30:30

things can uh best suit your Design

play30:33

Systems for your business and your

play30:35

company if that makes sense yeah all

play30:37

right I think we're at time now so what

play30:38

we'll do is well there's a lot of

play30:41

questions that are still still there I

play30:42

sure you have a lot more questions um

play30:44

we'd love for you to fill up this

play30:46

um this poll here um just to uh get some

play30:50

more information there but um if you

play30:52

have more questions you can always find

play30:53

us like on social um look for us on like

play30:55

X or say Instagram or lington um and

play30:59

maybe we can follow up there and we can

play31:01

answer your questions but um I think

play31:02

that's all for today do you want to wrap

play31:04

it up chess yeah um thank you so much

play31:07

all of you uh it has been really a great

play31:09

session thanks for tuning in for all the

play31:12

sessions from shows keyot to um Anna and

play31:16

Jake's Deep dive to DBS session and

play31:19

finally to our Amy we've come to the

play31:21

framework um day to an end I hope

play31:25

everyone finds today useful and keep on

play31:29

creating Your Design system so happy

play31:31

Design Systems day have a great day

play31:34

everyone um I'll see you guys on the

play31:36

next

play31:38

webinar thank you very much

play31:41

[Music]

Rate This
β˜…
β˜…
β˜…
β˜…
β˜…

5.0 / 5 (0 votes)

Related Tags
Design SystemsFigma AMAAMA SessionTypographyVariablesAccessibilityCode ConnectUI DesignWebinarDesign Guidelines