Practical Product Design
Practical Product Design
Overview
Overview
Overview
Practical Product Design is a platform designed to cater to the learning needs of product designers. The platform offers a series of engaging and interactive games that help designers learn, retain, and apply key principles of product design.
Practical Product Design is a platform designed to cater to the learning needs of product designers. The platform offers a series of engaging and interactive games that help designers learn, retain, and apply key principles of product design.
My Role
My Role
My Role
Research, Design
Research, Design
Project Type
Project Type
Project Type
Personal Project.
Personal Project.
Status
Status
Status
In Progress
In Progress
View Plugin in Figma
View Plugin in Figma
The Problem being solved
The Problem being solved
Many aspiring product designers struggle with the overwhelming amount of online resources available for learning product design. These resources often lack interactivity and practical application, making it difficult for designers to retain knowledge and apply it effectively in real-world scenarios. The absence of engaging and fun learning platforms results in a gap between theoretical understanding and practical implementation.
Many aspiring product designers struggle with the overwhelming amount of online resources available for learning product design. These resources often lack interactivity and practical application, making it difficult for designers to retain knowledge and apply it effectively in real-world scenarios. The absence of engaging and fun learning platforms results in a gap between theoretical understanding and practical implementation.
User Personas
User Personas
I reached out to a few fellow designers to learn how they label color styles in their projects, and also shared my idea of creating a plugin to automate the task. They were excited about the idea of such a plugin and encouraged me to try creating it.
Brainstorming ideas
Brainstorming ideas
First, I created a flow for the plugin. As I wanted to include multiple types of labels, I decided to use check boxes for each type. Users can select the appropriate label type based on their requirements.
First, I created a flow for the plugin. As I wanted to include multiple types of labels, I decided to use check boxes for each type. Users can select the appropriate label type based on their requirements.
Inspiration
Inspiration
Although I am quite comfortable with HTML and CSS, I am still an amateur when it comes to JavaScript. That's why I turned to ChatGPT for help in writing the JS code.
After 4 hours and over 30 prompts, I finally created the minimum viable product, which includes two labeling options: HEX and RGB color values.
Although I am quite comfortable with HTML and CSS, I am still an amateur when it comes to JavaScript. That's why I turned to ChatGPT for help in writing the JS code.
After 4 hours and over 30 prompts, I finally created the minimum viable product, which includes two labeling options: HEX and RGB color values.
Concept Designs
Concept Designs
I published this version to the Figma Community and posted it on LinkedIn. I was surprised to see the positive response from many designers.
I published this version to the Figma Community and posted it on LinkedIn. I was surprised to see the positive response from many designers.


Building an MVP
Building an MVP
I took a week to gather necessary feedback on the MVP and observed multiple style guides from various design systems.
Based on the suggestions and feedback I received as well as observing some common patterns in multiple style guides, I decided to include 3 key types of labelling options.
I took a week to gather necessary feedback on the MVP and observed multiple style guides from various design systems.
Based on the suggestions and feedback I received as well as observing some common patterns in multiple style guides, I decided to include 3 key types of labelling options.
I took a week to gather necessary feedback on the MVP and observed multiple style guides from various design systems.
Based on the suggestions and feedback I received as well as observing some common patterns in multiple style guides, I decided to include 3 key types of labelling options.
1) Color values - HEX, RGB, HSL and HSB.
2) Custom Color name.
3) Color/Tone format for multiple shades.
1) Color values - HEX, RGB, HSL and HSB.
2) Custom Color name.
3) Color/Tone format for multiple shades.
Implementing these features in code seemed like a complex and challenging task. However, considering the positive response I received for the initial version, I decided to push myself to improve the plugin.
Implementing these features in code seemed like a complex and challenging task. However, considering the positive response I received for the initial version, I decided to push myself to improve the plugin.
Enter ChatGPT
Enter ChatGPT
Since I had already designed and implemented HEX and RGB color values in the MVP, adding HSL and HSB to the plugin was relatively easy.
Since I had already designed and implemented HEX and RGB color values in the first version, adding HSL and HSB to the plugin was relatively easy.
Figma Dev Mode
Figma Dev Mode
Designing and implementing this feature was challenging because there is no repository of standard color names. I searched for APIs that could provide custom color names, but none met my expectations. Some APIs had too few custom colors, while others had too many.
I have always loved Coolors.co for their collection of color palettes and gradients. Coolors also has a collection of more than 500 unique custom color names. Since Coolors is also quite popular in the design community, I chose to go with it.
Designing and implementing this feature was challenging because there is no repository of standard color names. I searched for APIs that could provide custom color names, but none met my expectations. Some APIs had too few custom colors, while others had too many.
I have always loved Coolors.co for their collection of color palettes and gradients. Coolors also has a collection of more than 500 unique custom color names. Since Coolors is also quite popular in the design community, I chose to go with it.


I extracted all the color names from their website using a Python script and mapped them in a "Hex Code" : "Color Name" format in the JavaScript code.
I extracted all the color names from their website using a Python script and mapped them in a "Hex Code" : "Color Name" format in the JavaScript code.

Challenge faced with Coolors approach
Challenge faced with Coolors approach
Challenge faced with Coolors approach
The list only contains 540 colors, while there are millions of HEX values. Therefore, the plugin might result in an error or fail to display a color name if the user selects a color value outside of this list. This results in a poor user experience.
The list only contains 540 colors, while there are millions of HEX values. Therefore, the plugin might result in an error or fail to display a color name if the user selects a color value outside of this list. This results in a poor user experience.
Solution
Solution
Solution
If User selects a Hex value that is not present in the list, the Plugin checks for the nearest color value present in the list and automatically maps the Color name.
In this way the plugin will be able to provide a custom name for any Hex code that a user selects.
If User selects a Hex value that is not present in the list, the Plugin checks for the nearest color value present in the list and automatically maps the Color name.
In this way the plugin will be able to provide a custom name for any Hex code that a user selects.
MVP
MVP
The next challenge was to design and implement the ideal user flow for Color Name/Tone format.
The next challenge was to design and implement the ideal user flow for Color Name/Tone format.


In this format, color names do not have a standard pattern as they vary depending on the type of color, such as Primary, Secondary, Neutral, Blue, Green, etc.
However, the tone does have a standard format: higher numbers represent darker shades and lower numbers represent lighter shades.
In this format, color names do not have a standard pattern as they vary depending on the type of color, such as Primary, Secondary, Neutral, Blue, Green, etc.
However, the tone does have a standard format: higher numbers represent darker shades and lower numbers represent lighter shades.
Since the color names are not standard, adding an input field where use can enter the required Color name felt like an ideal choice. The plugin will then check each color and applies the appropriate tone automatically.
Since the color names are not standard, adding an input field where use can enter the required Color name felt like an ideal choice. The plugin will then check each color and applies the appropriate tone automatically.
Currently working on
Currently working on
If user clicks on “Display Label” button without selecting anything, the below warning appears.
If user clicks in “Display Label” button without selecting anything, the below warning appears.

If user clicks on “Display Label” button without selecting any check box, the below warning appears.
If user clicks in “Display Label” button without selecting any check box, the below warning appears.

Final UI
Final UI
Results and Impact
Results and Impact
“Wow, this plugin sounds like an absolute game-changer! 🚀 Can't wait to give it a whirl and bring some colorful magic to my designs!”
Prince Mukherjee, UI/UX Designer
Prince Mukherjee, UI/UX Designer
Prince Mukherjee,
UI/UX Designer
“Really practical for color theme prospection on a small-scale project! Thank you 😍”
Myriam O. , UI/UX Designer
Myriam O. , UI/UX Designer
Myriam O. ,
UI/UX Designer
“I have tested the plugin with my design systems and it works well. This plugin is great and very helpful. Thank you Naren for sharing it and taking my feedback into account.”
Seng Hout, Lead UI/UX Designer
Seng Hout, Lead UI/UX Designer
Seng Hout,
Lead UI/UX Designer
Key Learnings and Challenges faced
Key Learnings and Challenges faced
In certain cases, creating an MVP and taking suggestions and feedback from target users, rather than working on too many features at once, can save a significant amount of time and energy.
Considering error scenarios or edge cases is crucial for any product. Providing clear guidance helps in reducing user dropout rate.
The results you obtain from AI tools are only as good as the prompts you provide.
When asking an AI tool to perform a task, it is important to provide detailed instructions progressively through separate prompts. Requesting it to do multiple tasks at once will result in failure. (Total prompts for this plugin - 70+🥲)
In the era of AI tools, having basic knowledge in different domains like coding will create new avenues of exploration for designers.
In certain cases, creating an MVP and taking suggestions and feedback from target users, rather than working on too many features at once, can save a significant amount of time and energy.
Considering error scenarios or edge cases is crucial for any product. Providing clear guidance helps in reducing user dropout rate.
The results you obtain from AI tools are only as good as the prompts you provide.
When asking an AI tool to perform a task, it is important to provide detailed instructions progressively through separate prompts. Requesting it to do multiple tasks at once will result in failure. (Total prompts for this plugin - 70+🥲)
In the era of AI tools, having basic knowledge in different domains like coding will create new avenues of exploration for designers.
In certain cases, creating an MVP and taking suggestions and feedback from target users, rather than working on too many features at once, can save a significant amount of time and energy.
Considering error scenarios or edge cases is crucial for any product. Providing clear guidance helps in reducing user dropout rate.
The results you obtain from AI tools are only as good as the prompts you provide.
When asking an AI tool to perform a task, it is important to provide detailed instructions progressively through separate prompts. Requesting it to do multiple tasks at once will result in failure. (Total prompts for this plugin - 70+🥲)
In the era of AI tools, having basic knowledge in different domains like coding will create new avenues of exploration for designers.
Next Steps in My Journey
Next Steps in My Journey
I am constantly learning more about Design Systems and am fascinated by how much there is still to learn.
At each step, I question myself if the process can be automated in any way.
I am eager to explore how OpenAI's API's can be integrated into Figma plugins to make designers' workflows easier.
I am constantly learning more about Design Systems and am fascinated by how much there is still to learn.
At each step, I question myself if the process can be automated in any way.
I am eager to explore how OpenAI's API's can be integrated into Figma plugins to make designers' workflows easier.
I am constantly learning more about Design Systems and am fascinated by how much there is still to learn.
At each step, I question myself if the process can be automated in any way.
I am eager to explore how OpenAI's API's can be integrated into Figma plugins to make designers' workflows easier.
Check out my plugins in the Figma Profile: figma.com/@naren_abbaraju
Check out my plugins in the Figma Profile: figma.com/@naren_abbaraju
Framer 2023
Amsterdam