Your video on creating buttons using variables is incredibly helpful. Your teaching style is easy to understand, and you're doing an awesome job. Keep rocking!
Amazing tutorials. The most valuable playlist on Figma variables I've ever found! Unbelievable how effortlessly and beautifully you explain. Plus that pretty smile and enthusiasm of teaching. Just won my ❤ It's been quite some time since I have been looking for such detailed and complete design system tutorials! Finally here I am! Thanks for making this, that too for free. This is premium content. God bless you!
Awesome video! I am a software engineer with no artistic skill, so using these techniques and Figma has been able to get me to start designing a UI framework! A little bit of coding knowledge / help when it comes to renaming: I found it easy to make my first state and give it all of the names. For example: Color = Default, Variant = Solid, State = Default, Radius = None, Icon = None, Size = Small Then when you go to copy it, you can change the individual properties you want. So for example, if you want to change the State from Default to Hover you can use the Match (top textbox) to match to something you want to change. So if you wanted to change the state you can put in the following in the Rename modal State = Default State = Hover When you rename it you will get the following Color = Default, Variant = Solid, State = Hover, Radius = None, Icon = None, Size = Small It helps when you have a ton of properties and you are doing the things in batch!
This is one of the best best video on the internet about how to create buttons with instances.. Thanks a ton. Finally I have created a bundle of 240 button. Keep Uploading. Love
This is cool! I've been looking for some tutorials on how to use Figma design tokens (cause then I can theoretically just export those directly to CSS / Tailwind). Can you do fonts with variable tokens too? Rather than making like 100 font styles (cause I have font styles for regular text, code, icons all at 2-3 weights, and at like 10 sizes)
Hey, Just wanted to drop a thank you message here. You're the reason for helping me to expand my knowledge on design systems a lot! Learning something new each time. Thanks 🥰
Your Figma design system series are VERY helpful and very clear and broken down. Thanks for sharing! One remark, regarding 'focused' state. I heard you mentioning it several times to be the split second when selecting the item before you let go your mouse (on mousedown) which is true in a way but it's more of a tiny visual feedback gimmick. In front-end development, the focus state is more often linked to the 'focus-visible' state, for accesibility purposes: keyboard navigation (tabbing). I guess that's your 'selected' state? But then what happens if the buttons are used in a set of select options - where you actually need one of the buttons to show to be selected/toggled? Then you need another way to display a focus-visible version. So you might want to change the focus state to a more contrasty version (usually an outline), OR, if you really want a mousedown effect, create two variants. The mousedown (CSS focus attribute) does cause trouble out of the box tough (Kevin Powell beautifully explains it here: ruclips.net/video/j68WvpUX41c/видео.htmlsi=uLbLW2b0ENzbjpsA), so I prefer to only design the accessibilty version - as that is way more important than a clicky effect.
You are amazing! I have searched all over RUclips before coming to you to learn how to use variables for DS. Figma should pay you for this if it doesn't already! Super Helpful. 🙏
Love your videos & enthusiasm. Awesome work ♥️ Im a seasoned designer, but i’m still learning many new methods & applying them to the design system at my work
You’re welcome! sometimes you might need two types of buttons in your system but sometimes one is enough 🙃 I guess I wanted to show a version with both as an example. I think pill buttons are great to use as part of tables for example or in cards . But there is no one right way of when to use them. ☀️🙏🏼
hahahaha that "useeee" at 14:16 was soo smooth hahaha, beautiful voice ma'am. Btw amazing video, really informative. I'm binging the whole playlist on Sunday, really exciting it has been, learning soo much new about figma. keep going ma'am I'm grateful for this content!
Of course! H padding is horizontal padding so the padding the goes on the right and left of the elements inside the auto layout and the auto layout. And v padding is the vertical padding, so the padding that goes above and below. I hope that helps! 🙏🏼☀️
If to add button inner gap as a paddings of label wrap itself, then you'll not needed separate instance for Icon only button. Example: - label has itself wrapper with 8px horizontal paddings - icon and label wrapper will have 0px gap (because 8px was already added) - button as a parent container will have the same vertical & horizontal paddings for ex also 8px Then no matter, was icon only selected or label only - you'll have right paddings: for text button - bigger (8+default8=16hor & 8vertical), for Icon only - smaller, default only 8 hor x 8 vert. Also you could play with hidden paddings trick in left or right icon wrappers, or provide Icon Only with a separate Third icon as a property. It's more about performance for huge highly-loaded libraries. Figma doesn't like duplicating instances, but loves properties)
You can't create component properties through naming sadly only variants :/ BUT if you have a variant property which is a true/false one than you can use naming this way - "name of property = True" (or false) and then in the instance you will have a toggle to control this variant. Hope that makes sense 🙏🏻 I go through this in this video at 17:13 ☀️
Thank you for making tutorial videos. Your videos have been a great resource in learning how to use the variable/token system. I have one question about using semantic colors. In the case where one might want to have a light dark mode, do you have to abandon the semantic color tokens? So instead of having 4 different modes, you would have two modes (light vs dark). In that case, I guess it would make the most sense to then have semantic colors as variables (surface_primary, surface_error, etc)? Hopefully, I am making sense. Thank you again! You are awesome!
Thanks! its a matter of approach and need. If you are more in need of dark and light then maybe setting them up as modes is more useful or maybe semantics are more useful modes. You can always use variables on components for the colour change alone by just changing the variable and not the variables mode. I hope that makes sense ☀️🤗
I love all your videos, really great work! I am trying to learn variables as well, and considering these are still in Beta, I am really in owe of your knowledge and ease of working with them :) well done!
@@TDSunshine Same! and your videos are super helpful! I am gathering some feedback for Figma team as there are some bits that could be very helpful in official release ;)
You do button incorrect... Need to do is dual icons+ text in 1 button... then, may be ,icon btn... In component turn on/off icons.. Prime btn after that will be 10 items in your example 20... Upd Need's create 1 button with state ... & will be 5 btn instead 20
There is no correct or incorrect in design 🙏🏼 it’s all up to preference and need 🤗 the way you describe works too though! You can definitely have both icons in one and then turn them on/off with Boolean component properties but because I wanted an option with just an icon on its own I decided to do it this way to avoid confusion and to have better padding ☀️
wow... just wow. I really love the way you rename all of them. I used to cmd c cmd v at the left layers and its killing me LOL. Also with the component token, does that means theres no need for us to create variant of small medium large icon anymore? 🤩
Thank you for this tutorial! but i wanna ask after making this button components and adding it to the design for the prototype, why aren’t there any actions like hover or selected? do i need to prototype it again? if so, is there a tutorial for it?
I've learned so much from this series, thank you!! I do have a question about maintaining aspect ratio for icons that don't have the same width and height. When using a variable (icon-size) for the width of my icons, the height does not adjust automatically to keep the icon's aspect ratio and the icon becomes warped. How would you go about using variables in this scenario?
Great question! aspect ratio is always a bit of a tricky one when resizing or fitting things into a new space. I think you can try different combinations of constraints or fixed/fill/hug and see if any of them make the swapping work better and keep the icons from distorting. Another good trick is to wrap all your icons in a square frame and set your icon inside to scale scale. that can just make swapping a bit easier. I hope that helps! ☀️🙏🏻
I have a case about a set width for a button. mostly I use the width is hug content. but in some cases, I want to fill a container. Ex: form sign-up, the width button is 100% (that means the width is fill container). Can we create a token with width as auto?
What about buttons that have an icon on both sides? Does it make sense to use Boolean in that case? But then there remains the case for displaying only one icon (Alone). Well done! Keep going!
Hmm double icon buttons are always a bit tricky :/ you could use Boolean component properties on both, label them left and right and then you can toggle the visibility so you can see just the left just the right , both or none. Sometimes variants are more appropriate and sometimes component properties 🙃 hope that helps! ☀️💛
Hi, Tair. I'm trying to build a component library. I have a question, what if I have different sizes of icons with DIFFERENT STROKE WEIGHTS, Should I define one more variable for stroke. Because I have a icons collection with different sizes and if follow the advice i the video it manages the icon size but not the stroke weight. What should I do?
That’s a great idea! I filmed this video before you couldn’t use variables for stroke but Figma keep making amazing updates! It could be a great idea to use them that way ☀️🤗
Thank you so much for making these great videos! I'm learning a lot from them. When I made my buttons, I realized that the icon I used was only a vector, so I could not select all instances to create the instance swap. Do you know of a solution to this problem?
Hi, first of all I would like to tell you that I love your videos and they are very useful and for that THANK YOU! but I think I have a problem with the V-padding of all the "label" buttons: despite following all the steps the button is smaller. Can you please tell me what the problem might be?
Thanks! I'm glad you like them! ☀️🙏🏻 Check that your button is set to "hug" in the width? it might not be hugging and therefore ignoring the size of the label + the padding. I hope that helps!
Great series of videos! Learning loads from them atm. I did have a quick question about the radius group in the sizing tokens though. What is the reasoning for this and would it not just be easier to have a collection called 'Component Tokens' and have a Radius group in there, seeing as generally radius will just be set on components? Many thanks :)
Thanks! My answer is as always - it depends 🙃 I think for me I found that radius is used a lot on components but I also use it on single elements sometimes when designing so it's a good one to have defined kind of separate to any component. If there is something you feel might be used across all your designs like page margins, graphic element sizing, spacings, or paddings it's great to have a collection for those. ☀️
@@TDSunshine thanks for your reply! Makes total sense. I’m just starting out a brand new design system for a large rewrite and trying to think of as much as possible up front before getting started….nightmare 😂
good luck! planning ahead is a great idea but remember design systems are ever evolving and Figma is also ever-evolving! haha so if in a few weeks, you find out you actually want to do something in a different way just remember that that's part of the fun! #breathdeepandchangeitagain 🤪 @@kieronsykes
Great Videos, the only issue I have is, When I swap the Icons it goes back to the button orginal color which is Icon/Default but my button Icon is set to Neutral/Test/Negative. Please advice. I am sure you have a solution for this and I know I am not doing it correct.
Hello again, I have a question. In the last part, if I want to use icons of different sizes, how can I do it? So if I want to use a smaller icon on the smallest button
Great question! you have a few options for this. You can either just change the size of the icon instance in the different button variants OR you can create different variants of the original icon in different sizes and then select the right variant when you use an instance of it in the different buttons. I hope that makes sense. ☀️🙏🏻💛
Great video thank you! I am running into an issue with my icon swapping. When I set my button to disabled state with an icon and then swap the icon to something else the icon does not keep the same color it changes to the original color of my icon not the one I set on the button. Do you have a fix for this?
Great question! the icon vector levels need to all have the same name for them to stay the same colour. So it's ok that they are in frames with different names but the "lowest level" need to all be named the same. I hope that helps ☀️💛🙏🏻
That’s amazing. I just have a question, if the line-height of text using 120%. Maybe the height of text larger/smaller with icon. the issue is the heigh of button will be different between icon only with text only. we will fix with fix line-height of text , right?
So I would recommend either fixing the height of the button so that the elements inside don’t change its height OR you can change the line height of your text. I hope that helps! 🙏🏼☀️
If I have 3 colors: primary, secondary, and accent, how can organize all these colors in button component? Or should I create another new component for each of the secondary, accent colors?
there are a few approaches you can take. You could make 3 variants of the button, each with a different color, and then give them a "state" property with values for primary, secondary, and accent. Or you could keep just one button colour and then when you use an instance of it you can just change the background colour as you please. I think the first option is better for documentation and you can add a description for each variant on when to use it. I hope that helps! ☀️
Thank you sooo much for this videos, they are great! But I have a question: My icons are all in 1 color, so when I change the Icon on my buttons it doesn't come with the color assigned to the previous one. Is there any way I can create a controller for color like that on the button or do I have to create an instance for all my icons with multiple colors?
You're welcome! 💛 That's a great question I hate when that happens! the solution I found to this is pretty silly but it works 🙃 you just need to make sure that the icons all have the same name. and by that I mean the vector itself has the same name across all the icons. They can still be components or component sets with different names but the icon itself should all have the same name. I hope that helps ☀️🙏🏻
@TDSunshine Thanks a lot for such great tutorial. It Helped me a lot. Just a small problem where I stuck, when I change button from small to medium and large, the button without icon is smaller than buttons with icon. Can you suggest how to fix?
@@TDSunshine Thank you for suggestion, I already fixed by increasing line height 😎. I really loved the way you explain. It is really motivating and helpful for me. Keep posting your amazing works..
Once you have created a number variable, hover over it in the variables table and you will get a little edit button appear. You will find scoping in that extra menu. ☀️🙏🏻💛
Great video. Your videos are really well explained if a bit fast! I find keeping up difficult - must be my age! One comment I have is your icons are centred with padding so when you add left and right icons the padding left and right is inconsistent over the whole button, and it looks off to me. How do you get around that? I realise we need icons to be consistent sizes which is why they are within a regular square and some icons are irregular shapes. But I find it really jarring for there to be more visible padding on the outer side where the icon appears. Any thoughts?
I'm a fast speaker I know sorry 🙈 The icon issue is a very common one! I do prefer having them in frames sometimes to make sure that they are all the same size regardless of the shape of the icon itself but I see your pint completely about it creating different paddings sometimes 🙃 at the end of the day I think its all up to your preference as a designer. If the designs end up going to someone else its really important to have good documentation to show this point because like you said, it can be jarring to have padding there but not know where it came from. Hope that helps! ☀️🤗
Thanks@@TDSunshine - I have another query about the icons, sorry if I am asking dumb questions! I have set up the buttons using the variable including sizing for the icons - small, med and large. But when I switch modes the icons size is not changing. What have I done wrong! I haven't named or made them into components yet as I need to fix the icon sizing. Do I need to put the icon into an autolayout and make it hug? I don't need the icon in the button to change just resize for small, medium and large. Thanks so much. I actually worked it out, but even so, when I change the variable for small, med and large, I have to change both dimensions, horizontal and vertical - it doesn't scale even though my icons are set to scale - must have done something wrong!
so! this is where old-school constraints come in! the icon is in a frame so you need to set up how the vector reacts when its parent changes size. I have a video where I go through constraints if you want to check it out -> *Figma Frames & Constraints* - ruclips.net/video/GeXF7r0Xfn4/видео.html @@karenbeal2387
Have followed along with all your videos but when I choose the appropriate Primitive Number Scale for the Spacing it doesn't show the actual value like in your video here, just the token name like 2XS and so forth which isn't that practical. Any idea?
Yes I agree with you actually! In my first video where I set up the number scale primitives I used XS, S, M etc. But then, just like you, I realised it wasn't practical so I changed the primitive variable names to reflect their actual value. ☀️🙃 I'm also still trying to learn what's the most easy way to use variables and like I always say with Figma there is never just one way to do something! its al about what suits your preferences and needs best 🙏🏻🤗
Hey if you are able to please help with this: I got an error message about my small icon buttons after creating a component set; It reads like this : Some layers have invalid names. Prop=Value, Prop=Value...Do you have any idea to fix this? Thank you
You are so fast and great at what you do. Please I am using the free Figma version so I cannot use mode as like you did for the button variation. Please how do I create the different button variations using group?
Thanks! Its a bit trickier without modes but if you just create a few variables and then select them all and right click then you can group them. This is helpful because later when you swap variables on the file you can search by group name. I hope that helps! ☀️🤗
It’s the batch renaming tool in Figma 🤩 if you select a few elements at the same time and hit CMD+R you will get it ☀️ Sorry I know a bit fast sometimes 🙈
Instead of deleting all items of the page to add the Label property, CMD + F to find all instances with text set to 'Label', these should be the buttons you recently created, now you can add the Property. Voila.
You are super organized that watching your process is almost therapeutic.
aww thanks! ☀️🤗
Your explanations are top-notch-clear, lively, and super helpful! Thank you!
Thanks! ☀️🙏🏻💛
Your video on creating buttons using variables is incredibly helpful. Your teaching style is easy to understand, and you're doing an awesome job. Keep rocking!
Aww Thanks! 🙏🏼☀️
Amazing tutorials. The most valuable playlist on Figma variables I've ever found! Unbelievable how effortlessly and beautifully you explain. Plus that pretty smile and enthusiasm of teaching. Just won my ❤ It's been quite some time since I have been looking for such detailed and complete design system tutorials! Finally here I am! Thanks for making this, that too for free. This is premium content. God bless you!
aww thank you so much for your kind words! ☀️🙏🏻💛
Awesome video! I am a software engineer with no artistic skill, so using these techniques and Figma has been able to get me to start designing a UI framework! A little bit of coding knowledge / help when it comes to renaming:
I found it easy to make my first state and give it all of the names. For example:
Color = Default, Variant = Solid, State = Default, Radius = None, Icon = None, Size = Small
Then when you go to copy it, you can change the individual properties you want. So for example, if you want to change the State from Default to Hover you can use the Match (top textbox) to match to something you want to change. So if you wanted to change the state you can put in the following in the Rename modal
State = Default
State = Hover
When you rename it you will get the following
Color = Default, Variant = Solid, State = Hover, Radius = None, Icon = None, Size = Small
It helps when you have a ton of properties and you are doing the things in batch!
Great tips! 🤗☀️💛
Why god why this much time to find this gems. Grateful to you TD. No one has explained this simple!!
Thanks!! ☀️🙏🏻💛
Organize, engaging, and straight to the point explanation for Variables, Tokens, Variants & Component Properties.
👍🏼🙏🏼☀️
This is one of the best best video on the internet about how to create buttons with instances.. Thanks a ton. Finally I have created a bundle of 240 button. Keep Uploading. Love
Thanks! ☀️🙏🏻💛
This is cool! I've been looking for some tutorials on how to use Figma design tokens (cause then I can theoretically just export those directly to CSS / Tailwind). Can you do fonts with variable tokens too? Rather than making like 100 font styles (cause I have font styles for regular text, code, icons all at 2-3 weights, and at like 10 sizes)
Fonts are not yet manageable by variables but Figma say they are in the works! ☀️🙏🏻
You're awesome. I have learnt finally how to create 100s of buttons within 2 minutes. Thanks a lot
☀️🙏🏻
Hey, Just wanted to drop a thank you message here. You're the reason for helping me to expand my knowledge on design systems a lot! Learning something new each time. Thanks 🥰
so happy to hear that! ☀️🤗🙏
Your Figma design system series are VERY helpful and very clear and broken down. Thanks for sharing!
One remark, regarding 'focused' state. I heard you mentioning it several times to be the split second when selecting the item before you let go your mouse (on mousedown) which is true in a way but it's more of a tiny visual feedback gimmick. In front-end development, the focus state is more often linked to the 'focus-visible' state, for accesibility purposes: keyboard navigation (tabbing).
I guess that's your 'selected' state? But then what happens if the buttons are used in a set of select options - where you actually need one of the buttons to show to be selected/toggled? Then you need another way to display a focus-visible version.
So you might want to change the focus state to a more contrasty version (usually an outline), OR, if you really want a mousedown effect, create two variants. The mousedown (CSS focus attribute) does cause trouble out of the box tough (Kevin Powell beautifully explains it here: ruclips.net/video/j68WvpUX41c/видео.htmlsi=uLbLW2b0ENzbjpsA), so I prefer to only design the accessibilty version - as that is way more important than a clicky effect.
Great tips! thanks for sharing! ☀️🙏🏻💛
You are amazing! I have searched all over RUclips before coming to you to learn how to use variables for DS. Figma should pay you for this if it doesn't already! Super Helpful. 🙏
haha thanks! I'm glad you found it helpful ☀️🙏🏻
blown away with the way u used renaking panel to make components
Its such a great trick right?? ☀️🤗
@@TDSunshine does that mean all the layers are named when u used bulk renaming right , there is no need to rename them as we design right ?
@@smilli6415 yes which ever layers you selected will be renamed :)
I was searching this kind of detailed design system tutorial for a long time. Thank you so much. :) Subscribed!! :)
yay! thanks Im glad you found it helpful! ☀️🙏🏻
@@TDSunshine why you don't upload video on daily basis?😀
Love your videos & enthusiasm. Awesome work ♥️
Im a seasoned designer, but i’m still learning many new methods & applying them to the design system at my work
Thanks! I’m glad they are helpful! ☀️💛🙏🏼
18:24 That was the funniest moment of truth I've seen in a while :D
Thanks for the fantastic tutorial Tair
haha thanks! ☀️🙏🏻💛
Button size? It can not be same as icon size tokens did I miss video about button sizing tokens or?
You should extend this series. Please.. Please (like components for dropdowns, accordions, tags etc.)
Working on it ! ☀️🙏🏻💛
Thank you. Your calm and super organized way of designing and teaching is aspiring and beautiful. Also you're lovely and truly a sunshine 🤍
thanks! I appreciate it! ☀️💛🙏🏻
I love this series
I'm glad it helped! ☀️🙏🏻
Thank you sister !! you have been a great help ! btw could you please tell me the usage of pill , sorry i didn understand that part
You’re welcome! sometimes you might need two types of buttons in your system but sometimes one is enough 🙃 I guess I wanted to show a version with both as an example. I think pill buttons are great to use as part of tables for example or in cards . But there is no one right way of when to use them. ☀️🙏🏼
Your level of focus is inspiring
Thanks! ☀️🙏🏻
hahahaha that "useeee" at 14:16 was soo smooth hahaha, beautiful voice ma'am. Btw amazing video, really informative. I'm binging the whole playlist on Sunday, really exciting it has been, learning soo much new about figma. keep going ma'am I'm grateful for this content!
haha Im always in sing song mode 🤗☀️
Thank you so much for all your videos, it's super clear and well detailed ! keep going
You're welcome! ☀️💛
Could you tell me what's a different between h-padding and v-padding. Thank you🙏
Of course! H padding is horizontal padding so the padding the goes on the right and left of the elements inside the auto layout and the auto layout. And v padding is the vertical padding, so the padding that goes above and below. I hope that helps! 🙏🏼☀️
If to add button inner gap as a paddings of label wrap itself, then you'll not needed separate instance for Icon only button.
Example:
- label has itself wrapper with 8px horizontal paddings
- icon and label wrapper will have 0px gap (because 8px was already added)
- button as a parent container will have the same vertical & horizontal paddings for ex also 8px
Then no matter, was icon only selected or label only - you'll have right paddings:
for text button - bigger (8+default8=16hor & 8vertical),
for Icon only - smaller, default only 8 hor x 8 vert.
Also you could play with hidden paddings trick in left or right icon wrappers, or provide Icon Only with a separate Third icon as a property.
It's more about performance for huge highly-loaded libraries.
Figma doesn't like duplicating instances, but loves properties)
Great tips thanks! 🙏🏼☀️
How to add Boolean using naming convention, if you can please suggest
You can't create component properties through naming sadly only variants :/ BUT if you have a variant property which is a true/false one than you can use naming this way - "name of property = True" (or false) and then in the instance you will have a toggle to control this variant. Hope that makes sense 🙏🏻 I go through this in this video at 17:13 ☀️
@@TDSunshine yeah actually I was able to find solution to that..but thanks!
Love your work, thank you so much for releasing these series
Thanks! You’re welcome ☀️💛
Another way to create button components with an option for a right and left icon would be to use a boolean variable instead 😊
Yes! I love how there are so many different ways to achieve the same outcome in Figma ☀️🙏🏼
Thank you for making tutorial videos. Your videos have been a great resource in learning how to use the variable/token system. I have one question about using semantic colors. In the case where one might want to have a light dark mode, do you have to abandon the semantic color tokens? So instead of having 4 different modes, you would have two modes (light vs dark). In that case, I guess it would make the most sense to then have semantic colors as variables (surface_primary, surface_error, etc)? Hopefully, I am making sense. Thank you again! You are awesome!
Thanks! its a matter of approach and need. If you are more in need of dark and light then maybe setting them up as modes is more useful or maybe semantics are more useful modes. You can always use variables on components for the colour change alone by just changing the variable and not the variables mode. I hope that makes sense ☀️🤗
Thank you@@TDSunshine !
I love all your videos, really great work! I am trying to learn variables as well, and considering these are still in Beta, I am really in owe of your knowledge and ease of working with them :) well done!
Thank you ! ☀️🙏🏼 variables are so fun I can’t stop playing with them 🤪
@@TDSunshine Same! and your videos are super helpful! I am gathering some feedback for Figma team as there are some bits that could be very helpful in official release ;)
You do button incorrect... Need to do is dual icons+ text in 1 button... then, may be ,icon btn... In component turn on/off icons.. Prime btn after that will be 10 items in your example 20...
Upd
Need's create 1 button with state ... & will be 5 btn instead 20
There is no correct or incorrect in design 🙏🏼 it’s all up to preference and need 🤗 the way you describe works too though! You can definitely have both icons in one and then turn them on/off with Boolean component properties but because I wanted an option with just an icon on its own I decided to do it this way to avoid confusion and to have better padding ☀️
wow... just wow. I really love the way you rename all of them. I used to cmd c cmd v at the left layers and its killing me LOL. Also with the component token, does that means theres no need for us to create variant of small medium large icon anymore? 🤩
Yes! tokens for different sizes are a real game changer ☀️🙏🏻💛
Thank you for this tutorial! but i wanna ask after making this button components and adding it to the design for the prototype, why aren’t there any actions like hover or selected? do i need to prototype it again? if so, is there a tutorial for it?
Yes! I put all the prototyping into a different video because it was too long ☀️🙏🏻 - ruclips.net/video/to8ZXM1HFJU/видео.html
This is incredible, you just earned a new subscriber
Thanks! ☀️🙏🏻💛
I still enjoy watching your videos, though I set the playback speed on 0.5 and it's also very funny :D
😂😂 sorry I know I speak a bit too fast sometimes 🙈🙈 glad you’re still with me though 🙏🏼☀️
I've learned so much from this series, thank you!!
I do have a question about maintaining aspect ratio for icons that don't have the same width and height. When using a variable (icon-size) for the width of my icons, the height does not adjust automatically to keep the icon's aspect ratio and the icon becomes warped. How would you go about using variables in this scenario?
Great question! aspect ratio is always a bit of a tricky one when resizing or fitting things into a new space. I think you can try different combinations of constraints or fixed/fill/hug and see if any of them make the swapping work better and keep the icons from distorting. Another good trick is to wrap all your icons in a square frame and set your icon inside to scale scale. that can just make swapping a bit easier. I hope that helps! ☀️🙏🏻
Thank you so much for your answer@@TDSunshine ! I like your frame trick, I'll stick with that.
OUAW!!! Thanks you! I love you knowledge, it's fun to learn with you! 🔥🔥🔥
aww thanks! ☀️💛🙏🏻
Thank youuuuu! 🌿
You're welcome! ☀️🙏🏻
You are so fun to watch! Keep it up!
haha thanks! ☀️🙏🏻
Thank u for sharing, appreciate it very much. 🙏🏼
My pleasure!☀️🤗
You're awesome. Thanks for this wonderful series.
aww thanks! ☀️🙏🏻💛
I have a case about a set width for a button. mostly I use the width is hug content. but in some cases, I want to fill a container. Ex: form sign-up, the width button is 100% (that means the width is fill container). Can we create a token with width as auto?
hmm... I think this isn't possible right now :/ maybe check on Figma's forum though some people might have found ways around this! ☀️
@@TDSunshine I think so, For now, Manual setting up.
What about buttons that have an icon on both sides? Does it make sense to use Boolean in that case? But then there remains the case for displaying only one icon (Alone). Well done! Keep going!
Hmm double icon buttons are always a bit tricky :/ you could use Boolean component properties on both, label them left and right and then you can toggle the visibility so you can see just the left just the right , both or none. Sometimes variants are more appropriate and sometimes component properties 🙃 hope that helps! ☀️💛
Hi, Tair. I'm trying to build a component library. I have a question, what if I have different sizes of icons with DIFFERENT STROKE WEIGHTS, Should I define one more variable for stroke. Because I have a icons collection with different sizes and if follow the advice i the video it manages the icon size but not the stroke weight. What should I do?
That’s a great idea! I filmed this video before you couldn’t use variables for stroke but Figma keep making amazing updates! It could be a great idea to use them that way ☀️🤗
You are just an amazing teacher!
aww thanks! 🙏🏻☀️💛
Thank you so much for making these great videos! I'm learning a lot from them. When I made my buttons, I realized that the icon I used was only a vector, so I could not select all instances to create the instance swap. Do you know of a solution to this problem?
You’re welcome! You can only use instance swap on other components so once you make your icons into components it should work 🤞🏼☀️
@@TDSunshine I'll try that. Thanks for the tip!
Hi, first of all I would like to tell you that I love your videos and they are very useful and for that THANK YOU! but I think I have a problem with the V-padding of all the "label" buttons: despite following all the steps the button is smaller. Can you please tell me what the problem might be?
Thanks! I'm glad you like them! ☀️🙏🏻 Check that your button is set to "hug" in the width? it might not be hugging and therefore ignoring the size of the label + the padding. I hope that helps!
In what video do you reference the other collections you created?
You can find all of them in this playlist - ruclips.net/p/PLx-zZQ15gdAqcVCE_EQvm820iWfgoKarq ☀️🙏🏻💛
Great series of videos! Learning loads from them atm. I did have a quick question about the radius group in the sizing tokens though. What is the reasoning for this and would it not just be easier to have a collection called 'Component Tokens' and have a Radius group in there, seeing as generally radius will just be set on components? Many thanks :)
Thanks! My answer is as always - it depends 🙃 I think for me I found that radius is used a lot on components but I also use it on single elements sometimes when designing so it's a good one to have defined kind of separate to any component. If there is something you feel might be used across all your designs like page margins, graphic element sizing, spacings, or paddings it's great to have a collection for those. ☀️
@@TDSunshine thanks for your reply! Makes total sense. I’m just starting out a brand new design system for a large rewrite and trying to think of as much as possible up front before getting started….nightmare 😂
good luck! planning ahead is a great idea but remember design systems are ever evolving and Figma is also ever-evolving! haha so if in a few weeks, you find out you actually want to do something in a different way just remember that that's part of the fun! #breathdeepandchangeitagain 🤪 @@kieronsykes
Cool video. but a bit confused states.
Focused is not the same as Pressed
Pressed is not the same as Selected
Material guidelines explain this really clearly - m2.material.io/design/interaction/states.html#usage ☀️🙏🏼
Thanks for this tutorials! I'm really looking forward to Design System Part 6, 7, 8. Are they coming?
Hey! you can find them all here ☀️ - ruclips.net/p/PLx-zZQ15gdAqcVCE_EQvm820iWfgoKarq
Thanks you so much, FOLLLOWING your tutorials, thanks
You’re very welcome! ☀️🙏🏼🤗
Great Videos, the only issue I have is, When I swap the Icons it goes back to the button orginal color which is Icon/Default but my button Icon is set to Neutral/Test/Negative. Please advice. I am sure you have a solution for this and I know I am not doing it correct.
Thanks! yes this is a weird one! you need all your icon vectors to have the same name and then it should keep the colour. I hope that helps! ☀️
I saw this video some many times, that now I discovered you've a great singing voice 14:16 🥰
Haha thanks! 🙈☀️🙏🏼
@@TDSunshine BTW, yesterday 279 buttons variants came to life in a component set (animations included) all thanks to you!
Amazing and clean explanation
Glad you liked it! ☀️🤗🙏
Really helpful! great job buddy
thanks! ☀️🙏🏻
Thank you so much, This video was extremely helpful
Thanks! 🙏🏻☀️💛
Hello again, I have a question. In the last part, if I want to use icons of different sizes, how can I do it? So if I want to use a smaller icon on the smallest button
Great question! you have a few options for this. You can either just change the size of the icon instance in the different button variants OR you can create different variants of the original icon in different sizes and then select the right variant when you use an instance of it in the different buttons. I hope that makes sense. ☀️🙏🏻💛
Thank you!
You’re welcome! 🙏🏼☀️
Great video thank you! I am running into an issue with my icon swapping. When I set my button to disabled state with an icon and then swap the icon to something else the icon does not keep the same color it changes to the original color of my icon not the one I set on the button. Do you have a fix for this?
Great question! the icon vector levels need to all have the same name for them to stay the same colour. So it's ok that they are in frames with different names but the "lowest level" need to all be named the same. I hope that helps ☀️💛🙏🏻
That’s amazing. I just have a question, if the line-height of text using 120%. Maybe the height of text larger/smaller with icon. the issue is the heigh of button will be different between icon only with text only. we will fix with fix line-height of text , right?
So I would recommend either fixing the height of the button so that the elements inside don’t change its height OR you can change the line height of your text. I hope that helps! 🙏🏼☀️
Thank youuu, i will adapt to your workflow 😊
You're welcome 😊☀️
great practical video!
Glad it was helpful! ☀️💛🙏🏼
Thank you, great video🫶🏻🤍🤍
Glad you liked it!☀️🙏🏼
If I have 3 colors: primary, secondary, and accent, how can organize all these colors in button component? Or should I create another new component for each of the secondary, accent colors?
there are a few approaches you can take. You could make 3 variants of the button, each with a different color, and then give them a "state" property with values for primary, secondary, and accent. Or you could keep just one button colour and then when you use an instance of it you can just change the background colour as you please. I think the first option is better for documentation and you can add a description for each variant on when to use it.
I hope that helps! ☀️
@@TDSunshine Thank you so much💞
I couldn't find the video you mentioned where you created your icons for this project. Would you mind sharing the link?
here you go -> *Passive income - Icon set* - ruclips.net/video/8V3LMRq5cEs/видео.html
☀️
@@TDSunshine Thanks!
you have a typo on the "disabled button .. 2min into into the video :)
I have a typo in almost every video 🙈🙈 haha thanks for flagging though 🤪☀️
at 2:30 you talk about a video where you dive into icons, can't seem to find it? :D
Here you go - Creating an Icon Set - Passive Income for Designers [Figma & ChatGPT]
ruclips.net/video/8V3LMRq5cEs/видео.html
🙏🏼☀️
@@TDSunshine Thank you!
Thank you sooo much for this videos, they are great! But I have a question: My icons are all in 1 color, so when I change the Icon on my buttons it doesn't come with the color assigned to the previous one. Is there any way I can create a controller for color like that on the button or do I have to create an instance for all my icons with multiple colors?
You're welcome! 💛 That's a great question I hate when that happens! the solution I found to this is pretty silly but it works 🙃 you just need to make sure that the icons all have the same name. and by that I mean the vector itself has the same name across all the icons. They can still be components or component sets with different names but the icon itself should all have the same name. I hope that helps ☀️🙏🏻
So useful, thank you for the video
You are welcome! 🙏☀️
amazing tutorial!😍
Thank you! 😊☀️
Your channel is such a gem! ✨ Thank you, thank you so much for being generous with your knowledge! 💖🫶
awww thanks! 🙏🏻☀️💛
Great video!!! (and nice hair 😁)
Thanks! 💁🏽♀️ ☀️
@TDSunshine Thanks a lot for such great tutorial. It Helped me a lot. Just a small problem where I stuck, when I change button from small to medium and large, the button without icon is smaller than buttons with icon. Can you suggest how to fix?
You're welcome! You can trey fixing the size of the button so it stays the same size with or without the button! I hope that helps 🙏🏻☀️💛
@@TDSunshine Thank you for suggestion, I already fixed by increasing line height 😎. I really loved the way you explain. It is really motivating and helpful for me. Keep posting your amazing works..
How can i see number scoping? Is just for premium version?
Once you have created a number variable, hover over it in the variables table and you will get a little edit button appear. You will find scoping in that extra menu. ☀️🙏🏻💛
What about instance swap feature, I think you missed it
I add one at 20:42. ☀️🙏🏻
You are the best!!! Thank you very much!
aww thank you so much! ☀️🙏🏻
OK when i chosse H padding and V padding also spacing it takes the first value.And I can't change the value.why & How?
Not sure what you mean by "first value"?
@@TDSunshine Thanks For Reply. I Figure it out later. Actually I have to change the mode from the layer.
Again Thanks for this great series.
Really awesome thanks 🙏🙏
Most welcome 😊 ☀️🙏🏼
you are like supet jet fast..........hard to caught you 😀very good tutorial👌👌
Haha sorry! 🏎️🏎️ hope you were still able to follow along! 🙈☀️
@@TDSunshine need to change my video speed to slow and have to watch to caught your speed.... you are very exited to teach us 😀
Great video. Your videos are really well explained if a bit fast! I find keeping up difficult - must be my age! One comment I have is your icons are centred with padding so when you add left and right icons the padding left and right is inconsistent over the whole button, and it looks off to me. How do you get around that? I realise we need icons to be consistent sizes which is why they are within a regular square and some icons are irregular shapes. But I find it really jarring for there to be more visible padding on the outer side where the icon appears. Any thoughts?
I'm a fast speaker I know sorry 🙈 The icon issue is a very common one! I do prefer having them in frames sometimes to make sure that they are all the same size regardless of the shape of the icon itself but I see your pint completely about it creating different paddings sometimes 🙃 at the end of the day I think its all up to your preference as a designer. If the designs end up going to someone else its really important to have good documentation to show this point because like you said, it can be jarring to have padding there but not know where it came from. Hope that helps! ☀️🤗
Thanks@@TDSunshine - I have another query about the icons, sorry if I am asking dumb questions! I have set up the buttons using the variable including sizing for the icons - small, med and large. But when I switch modes the icons size is not changing. What have I done wrong! I haven't named or made them into components yet as I need to fix the icon sizing. Do I need to put the icon into an autolayout and make it hug? I don't need the icon in the button to change just resize for small, medium and large. Thanks so much.
I actually worked it out, but even so, when I change the variable for small, med and large, I have to change both dimensions, horizontal and vertical - it doesn't scale even though my icons are set to scale - must have done something wrong!
so! this is where old-school constraints come in! the icon is in a frame so you need to set up how the vector reacts when its parent changes size. I have a video where I go through constraints if you want to check it out -> *Figma Frames & Constraints* - ruclips.net/video/GeXF7r0Xfn4/видео.html @@karenbeal2387
@@TDSunshine - thanks - I worked out what I had done wrong in the end, thanks for the link!
Nice tips 😁👍
Thanks 😁☀️
Have followed along with all your videos but when I choose the appropriate Primitive Number Scale for the Spacing it doesn't show the actual value like in your video here, just the token name like 2XS and so forth which isn't that practical. Any idea?
Yes I agree with you actually! In my first video where I set up the number scale primitives I used XS, S, M etc. But then, just like you, I realised it wasn't practical so I changed the primitive variable names to reflect their actual value. ☀️🙃 I'm also still trying to learn what's the most easy way to use variables and like I always say with Figma there is never just one way to do something! its al about what suits your preferences and needs best 🙏🏻🤗
Hey if you are able to please help with this: I got an error message about my small icon buttons after creating a component set; It reads like this : Some layers have invalid names. Prop=Value, Prop=Value...Do you have any idea to fix this? Thank you
Make sure you have commas separating each prop = value, and also make sure that you don’t have a comma at the end. I hope that helps 🤞🏼🤗☀️
Alright, thank you!🙏@hine
You are so fast and great at what you do. Please I am using the free Figma version so I cannot use mode as like you did for the button variation. Please how do I create the different button variations using group?
Thanks! Its a bit trickier without modes but if you just create a few variables and then select them all and right click then you can group them. This is helpful because later when you swap variables on the file you can search by group name. I hope that helps! ☀️🤗
Thank you for your quick response. I will try it and see I can get.
@@TDSunshine
hello How I can invite you to my team library to create different mode token
Invite me? 🤔☀️
Design system beginner here, I noticed the button token variables are divisible by 4. Is this a general rule? Do they have to be like that?
It's considered best practice to select one number scale and use it across your radius, padding and spacing. I hope that helps! ☀️🙏🏻
@@TDSunshine Thank you!
@@TDSunshine Another question, Should I make another set for mobile screens or should this desktop set be good to use?
wow!
🙏🏼☀️
GENIUS!!!
Thanks! ☀️🙏🏻
What was the plugin that you used for the naming tool? You said 'battery'? I tried command R but nothing. Any tips?
It’s the batch renaming tool in Figma 🤩 if you select a few elements at the same time and hit CMD+R you will get it ☀️
Sorry I know a bit fast sometimes 🙈
Oh amazing! that worked. thanks so much. love your whole channel. just discovered it. keep on doing what your doing :)@@TDSunshine
@@alimo-studios thanks! 🥹🙏🏼❤️
Cool!
🙏🏻☀️
Instead of deleting all items of the page to add the Label property, CMD + F to find all instances with text set to 'Label', these should be the buttons you recently created, now you can add the Property. Voila.
great tip! ☀️🙏🏻
I wish I can like this video 10^19
🙏🏻☀️
Soooo cool👍
thanks! 🙏🏻☀️
if your buttons are autolayout maybe they aren't set to "hug" ? and then they aren't shrinking down or expanding to fit? ☀
@@kirubavathielumalai1311
thank, thank, thank yuuuo! Sweet girl!! Wonderfull
You're so welcome! ☀️🙏🏼💛
🤯
🙏🏼☀️
Niceee
Thanks 🤗☀️
a little bit too fast to me lol
🙈☀️🙏🏻