Great demo as always. When watching this the need of batch actions in Figma is apparent. Should be a function called "same as former" in the mode tables, or just a pre-filled row with all the properties from the former mode table, so if you only need to edit one of the values it could be a huge timesaver. Batching other stuff like autolayout props to many frames simultaneously would also be neat. Hope someone from Figma is taking notes.
Even though the "Mapped" collection for each brand makes it nice and neat the experience of switching different modes within a brand, the issue is that you must duplicate all your design tokens when doing Mapped/Coke, or Mapped/Coke_Diet etc. Therefore, if you delete one alias/mapped token in one place, you must make sure you delete it everywhere and ofc it also applies when adding new tokens. So in my opinion, in the end, this doesn't differ much from maintaining the same design tokens but in different BRAND FILES (e.g. Sprite DS, Coke Diet DS or Coke DS). In this approach, you still must import/recreate the same list of variables you have in your master, but you do it locally in the Sprite DS file, for example. The advantage here is that you don't need a Mapped collection, which basically exists just to make this workaround. With the local tokens that were copied/recreated from the master naming convention, you can be more straighforward and create Light x Dark in the first level of variables collection.
Thanks for the video. 👏 Question: What if we need to make component-based tokens? Where should we put that? In Alias token? If yes why did we put radius token in Theme?
Really appreciating the consistent AND relevant content!! Cant lie, Im really missing the purpose of the 'mapped' variables you suggest in your systems videos. Im struggling to figure out why ALIAS isnt enough. Is 'mapped' essentially your version of component specific components?? Ive watched all of these vids more times than I care to admit, every time I think I understand the purpose/value of 'mapped' I find myself wondering why that's necessary again...
@@UICollectiveDesign it actually may be good if you could post it here, this way myself and others can screen shot and paste in figma to reference the explanation when building their own system instead of trying to remember time stamps where a good point was made etc,
Great video, thanks! I have an issue with two diffrent brands text on-action, color. One of the brands has an dark surface bacground, and the other has a lighter surface background. For the one with the darker surface background i have mapped a lighter text on-action color from my alias collection, and a darker text on-action from my alias collection on the other one. The problem is that when i am trying to switch between the two brands on my button, the text color does not change automaticly when i change the frame alias to the diffrent brands. Please help!
I really wish you could set a default mode on a file. Lets say you have a team of 3 designers, and each of them works on a different product brand, designers for brands 2 and 3 will always be forced to build in the default space of brand 1 and be constantly setting the mode overtime they import a component/add a new frame/ pull out a new device frame etc. This feels super tedious.
So I've setup 2 brands with 2 mapped collections: -Brand 1 -Brand 2 -Alias (brands as modes here) -mapped/brand 1 (with light and dark) -mapped/brand 2 (with light and dark) I can switch brands by selecting the alias, and I can switch to light and dark using mapped/brand a (mapped/brand 1's light/dark modes work for brand 2) Question is, the second mapped collection seems redundant to edit/apply, am I missing something with my setup? even when applying alias colors, I can only see the colors of Alias brand 1. would love some help with this, absolutely love the result I've gotten so far with switching brands using your method.
Sorry I missed this comment... So Figma has a weird bug that when two mapped collections share the same alias, only the first alias mode is shown in the preview. It's unfortunate I know, and hopefully something they fix soon!
Really Informative and nice video please keep it up! Could you please explain to me the difference between alias and mapped ? English isn't my first language so I find it a bit confusing.( idek if it has smth to do with lang )
Is there any way to create variables for images or brand assets as well? Say you have a Coca Cola frame that includes the Coca Cola logo. Duplicate that frame and set the mode to Sprite, the Sprite logo should be applied where the Coca Cola logo is - is this possible?
Great question! Alias or theme swapping is good if the mapped variables are consistent (ie. action primary uses alias primary). But in some cases you might want to apply different theme colours to different mapped variables (ie. action primary uses alias secondary). We simply wanted to show both in this example.
I'm having trouble getting this approach to work. I've implemented it exactly as in the video (I think) but it is still not working. I've reached out for support on Figma and no one seems to be able to help, and my UA-cam comment seems to automatically gets deleted here by a bot every time I put in the link to the Figma community forum issue with details.
@@UICollectiveDesign Looks like they are automatically hiding it, bummer. If you go to Figma forums and search for "Switching between mapped modes for different variable modes is not working", that is my post. Or alternatively, if you have an email address it is possible to share here, I can send you the link that way.
@@UICollectiveDesign Or does the Design System PRO include variables that use this approach and I can use that as a guide to get my own to working? Or does it just have one mapped mode?
100 scale is really good for when you have complex colors or see your number scale evolving... as you can add colors in-between shades (such as 150) By making 100 your lightest, it helps not mix them up, as you'll have a good idea of what is dark vs light. Happy to advise more on your particular use-case.
I was waiting for this video! Thanks!!
Sweet! Happy to help :) Please like, subscribe, and share our channel where you can
Great demo as always. When watching this the need of batch actions in Figma is apparent. Should be a function called "same as former" in the mode tables, or just a pre-filled row with all the properties from the former mode table, so if you only need to edit one of the values it could be a huge timesaver. Batching other stuff like autolayout props to many frames simultaneously would also be neat. Hope someone from Figma is taking notes.
100% agree. The process of creating variables and modes could be streamlined. Half the battle is recreating what you've already added!!
You can use Shift-Return to copy a line to the next line now.
Even though the "Mapped" collection for each brand makes it nice and neat the experience of switching different modes within a brand, the issue is that you must duplicate all your design tokens when doing Mapped/Coke, or Mapped/Coke_Diet etc. Therefore, if you delete one alias/mapped token in one place, you must make sure you delete it everywhere and ofc it also applies when adding new tokens. So in my opinion, in the end, this doesn't differ much from maintaining the same design tokens but in different BRAND FILES (e.g. Sprite DS, Coke Diet DS or Coke DS). In this approach, you still must import/recreate the same list of variables you have in your master, but you do it locally in the Sprite DS file, for example. The advantage here is that you don't need a Mapped collection, which basically exists just to make this workaround. With the local tokens that were copied/recreated from the master naming convention, you can be more straighforward and create Light x Dark in the first level of variables collection.
Great comment and also another great approach :)
Thanks for the video. 👏
Question: What if we need to make component-based tokens? Where should we put that? In Alias token? If yes why did we put radius token in Theme?
You can put them in Mapped :)
Really appreciating the consistent AND relevant content!! Cant lie, Im really missing the purpose of the 'mapped' variables you suggest in your systems videos. Im struggling to figure out why ALIAS isnt enough. Is 'mapped' essentially your version of component specific components?? Ive watched all of these vids more times than I care to admit, every time I think I understand the purpose/value of 'mapped' I find myself wondering why that's necessary again...
Have you watched our 'Guide to Advanced Naming & Set Up' video?
I would take a look at this, as it goes through it more in-depth. If not, I can post a longer explanation here.
@@UICollectiveDesign thanks for getting back, and yes I have
@@UICollectiveDesign it actually may be good if you could post it here, this way myself and others can screen shot and paste in figma to reference the explanation when building their own system instead of trying to remember time stamps where a good point was made etc,
Okay just on the go right now will post a longer explanation when I can. @@cp3onmtv963
Great video, thanks! I have an issue with two diffrent brands text on-action, color. One of the brands has an dark surface bacground, and the other has a lighter surface background. For the one with the darker surface background i have mapped a lighter text on-action color from my alias collection, and a darker text on-action from my alias collection on the other one.
The problem is that when i am trying to switch between the two brands on my button, the text color does not change automaticly when i change the frame alias to the diffrent brands.
Please help!
Did you solve the problem? I have the same :/
So, in your Collection naming structure, does "Brand" = primitive and "Mapped" = semantic? How does "Alias" effect the primitive/semantic hierarchy?
This video will explain more: ua-cam.com/video/WATzIK0Ai8I/v-deo.html
I really wish you could set a default mode on a file.
Lets say you have a team of 3 designers, and each of them works on a different product brand, designers for brands 2 and 3 will always be forced to build in the default space of brand 1 and be constantly setting the mode overtime they import a component/add a new frame/ pull out a new device frame etc. This feels super tedious.
So true. Drives me crazy as well!
wow, very insightful. thanks for creating this.
No problem :) Please subscribe and share our channel :)
So I've setup 2 brands with 2 mapped collections:
-Brand 1
-Brand 2
-Alias (brands as modes here)
-mapped/brand 1 (with light and dark)
-mapped/brand 2 (with light and dark)
I can switch brands by selecting the alias, and I can switch to light and dark using mapped/brand a (mapped/brand 1's light/dark modes work for brand 2)
Question is, the second mapped collection seems redundant to edit/apply, am I missing something with my setup? even when applying alias colors, I can only see the colors of Alias brand 1.
would love some help with this, absolutely love the result I've gotten so far with switching brands using your method.
Sorry I missed this comment... So Figma has a weird bug that when two mapped collections share the same alias, only the first alias mode is shown in the preview. It's unfortunate I know, and hopefully something they fix soon!
Really Informative and nice video please keep it up!
Could you please explain to me the difference between alias and mapped ?
English isn't my first language so I find it a bit confusing.( idek if it has smth to do with lang )
I would watch our video: Master Figma Tokens & Variables: Ultimate Guide to Advanced Naming and Set Up!
It goes through this in-depth
Is there any way to create variables for images or brand assets as well? Say you have a Coca Cola frame that includes the Coca Cola logo. Duplicate that frame and set the mode to Sprite, the Sprite logo should be applied where the Coca Cola logo is - is this possible?
You can put the image inside a component, and then use string variables.... checkout our video on swapping variants using variables.
Is there a way to sync your variables with Github without having to pay for the enterprise version of Figma?
Tokens Studio!
You dont show how to apply a mode variable to the frame itself, how is that done? Thanks
ua-cam.com/video/xNk3QnuowKE/v-deo.html I would watch this!!
Why are collections "Mapped/Diet Coke" and "Mapped/Sprite" created if the button uses "Mapped/Coke" and you just swap at the alias level?
Great question! Alias or theme swapping is good if the mapped variables are consistent (ie. action primary uses alias primary). But in some cases you might want to apply different theme colours to different mapped variables (ie. action primary uses alias secondary). We simply wanted to show both in this example.
I'm having trouble getting this approach to work. I've implemented it exactly as in the video (I think) but it is still not working. I've reached out for support on Figma and no one seems to be able to help, and my UA-cam comment seems to automatically gets deleted here by a bot every time I put in the link to the Figma community forum issue with details.
Hm strange. Can you share more about what's not working with it here? Maybe I can help
Ok, I managed to link the Figma Forum link here, please let me know if you can provide any insight! Thanks so much.
@@erikalogie I still can't see it unfortunately... maybe UA-cam is hiding it automatically
@@UICollectiveDesign Looks like they are automatically hiding it, bummer. If you go to Figma forums and search for "Switching between mapped modes for different variable modes is not working", that is my post. Or alternatively, if you have an email address it is possible to share here, I can send you the link that way.
@@UICollectiveDesign Or does the Design System PRO include variables that use this approach and I can use that as a guide to get my own to working? Or does it just have one mapped mode?
Why do you use 100 200 300 400 … naming? How do I not mix them up?
100 scale is really good for when you have complex colors or see your number scale evolving... as you can add colors in-between shades (such as 150)
By making 100 your lightest, it helps not mix them up, as you'll have a good idea of what is dark vs light.
Happy to advise more on your particular use-case.
it's cool
Thanks so much!!