สรุป “Design Tokens ฉบับสามัญชน: ว่าด้วยการจัดการสีด้วย Figma Variable”

Event Apr 27, 2025

Design Tokens คืออะไร? แล้ว Figma Variable คืออะไร?

ทำไม designer ต้องรู้ แล้ว developer รู้แล้วทำอะไรได้บ้าง?

จดสรุปจาก session “Design Tokens, Made Simple: Coloring with Variables: Design Tokens ฉบับสามัญชน ว่าด้วยการจัดการสีด้วย Figma Variable” โดยคุณมารัช ตรีคุณประภา (March) – UX Engineer ที่จัดแบบออนไลน์ของ Friends of Figma, Bangkok เมื่อวันเสาร์ที่ 26 เมษายน 2025 เวลาทุ่มนิด ๆ

Design Tokens, Made Simple: Coloring with Variables : Design Tokens ฉบับสามัญชน ว่าด้วยการจัดการสีด้วย Figma Variable | Figma
Virtual Event - Design Tokens ฉบับสามัญชน: ว่าด้วยการจัดการสีด้วย Figma Variable🎉 Design System จะไม่งงอีกต่อไป!มาเรียนรู้เคล็ด(ไม่)ลับก...
https://friends.figma.com/events/details/figma-bangkok-presents-design-tokens-made-simple-coloring-with-variables-design-tokens-chbabsaamaychn-waadwykaarcchadkaarsiidwy-figma-variable/?showTickets=true

ตัวไลฟ์เหมือนตัว Facebook ให้มีอายุแค่ 90 วัน ไม่แน่ใจว่าเปิดอันนี้ดูย้อนหลังได้ไหมนะ

ก่อนอื่นแนะนำ speaker กันก่อน เพื่อให้เข้าใจ context คร่าว ๆ เขาเป็น UX Engineer ของทาง Muang Thai Life Assurance PLC เป็น UX Designer ที่พอเขียนโค้ดได้ จะมาลองก่อนว่า design นี้สามารถ dev ได้ไหม ยังไง

และอยู่ในทีมที่ชื่อว่า Human-Centered Design Team ซึ่งคนจะน้อยมาก ทำกับ 3 squad อยู่ใต้ digital platform transformation ในบริษัทมีหลายทีม และแต่ละทีมมีวิธีการทำงานที่แตกต่างกัน

Design Token

Design Token เป็น buzz word ที่ใคร ๆ ก็พูดถึง แล้วในมุมของ figma เขา setup ประมาณไหน session นี้เขามาบอก concept เพื่อเอาไปใช้งานในทีมได้

ก่อนอื่นเลยสีเป็นหนึ่งใน design token ที่ใช้เยอะมาก ๆ

แล้วเจ้า Design Token มันคืออะไรกันนะ?

คือชื่อคำของค่าในการออกแบบ เช่น สี, space, typography ตอนแรกเราอาจจะใช้ hex color ใด ๆ พอเริ่มใช้บ่อยก็จะเริ่มตั้งชื่อให้มัน เหมือนเดฟตั้งชื่อตัวแปรนั่นแหละ

ซึ่ง design token เป็นพื้นฐานของทุกอย่าง ตั้งชื่อดี ตัว design ก็จะมี structure ที่ดีไปด้วย

ทำไม sandwitch ถึงอร่อย? ทั้ง ๆ ที่เป็นเมนูง่าย ๆ แค่เอาของมาเรียง ๆ กัน ก็เพราะว่ามีวัตถุดิบที่ดี ก็ทำให้อร่อยได้ โดยที่แทบไม่ต้องทำอะไรเลย ส่วน design token ก็เช่นกัน ประกอบออกมาได้ของที่มีคุณภาพ

เอาบางอย่างออก เช่น เอาขนมปังออก กลายเปนเมนูใหม่ได้ ได้สลัด

ถ้าเพิ่มของเข้าไป เช่น เอาถั่วแดง กับแป้งตอติญ่า จะได้เป็นแร็พออกมา

สรุปก็คือ เอาจาก base ตรงนี้ มาผสมกัน การที่เรามี process ที่ดี ก็จะได้อาหารที่ดีด้วย

ส่วนผสมเล็กสุด คือ design token มีวิธีการตั้งชื่อ เช่น space จิ๋ว, space น้อย, space ใหญ่

เอาหลาย ๆ ส่วน มาประกอบกันเป็น design component

บางที่เอา design component มาแล้วแยกเป็น design token ทำให้ใช้พลังเยอะขึ้นในการทำ แต่ถ้าเริ่มจาก token จะง่ายขึ้น

ส่วน design system คือ ระบบในการออกแบบ เช่น ระบบการทำงาน process principle ใด ๆ เราต้องออกแบบได้ดี

Token use cases

มีประโยชน์ยังไง

  • Design consistency: ทำให้ design ออกแบบได้เหมือน ๆ กัน ทำให้คนออกแบบได้เหมือน ๆ กัน คนที่ได้ประโยชน์กลุ่มหลัก ๆ คือ UX หรือคนที่ต้องจำเป็นออกแบบ แล้วสามารถออกแบบได้ดีได้ยังไง → ในวันนี้คุยอันนี้
  • Theming & Branding: ใช้ในการสลับธีม หรือแบรนด์ เช่น light/dark theme, branding change เปลี่ยนเฉดสีชมพู ใช้ token มาทำตรงนี้ได้ ถ้า setup ไว้ดี สามารถสลับ token และเปลี่ยนตาม token ที่เราเลือกมา
  • Development collaboration: เอาไว้ใช้ทำงานร่วมกันกับ developer ซึ่งมันเป็น concept เดียวกับที่ developer ใช้ เพราะ set variable แล้วเรียกตัวแปรเหมือนกัน ทำเป็น code หรือ json ก็ได้ ให้เดฟหยิบไปใช้ได้ และเอาไป code ได้

Color tokens deep dive

แล้วเราจะรู้ได้ยังไงว่าต้องเตรียมส่วนผสมยังไง?

🔴 pain point 1: ใช้สีไหนดีนะ?

มีการตั้งสีใช้บ่อย ซึ่งตั้งแบบนี้พัง เพราะแอพพัฒนาเรื่อย ๆ สีไม่จบแค่นี้ มีเพิ่มระหว่างทาง

เริ่มทำ Color Palettes ก่อน หรือ Primitive Token เป็น set สี ตั้งชื่อสี แล้วไล่ intersity ไล่จากเข้มไปอ่อน ทำให้ช่วยในการ generate และใช้สีที่ครอบคลุมกับ use case ต่าง ๆ ใน design ของเรา

แล้วทำไมตั้งแบบนี้ เป็นเลข 100, 200, …? เพราะบางทีมีอะไรแทรกตรงกลางได้ เช่นเอาสี 350 มายัดตรงกลางได้

ตัวอย่างการตั้งชื่อสีแบบนี้ เช่น ของ Tailwind CSS ที่ตั้งเฉดสีที่ครอบคลุม

Colors - Core concepts
Using and customizing the color palette in Tailwind CSS projects.
https://tailwindcss.com/docs/colors

ในช่องแชทก็แนะนำตัวนี้มา สำหรับใช้ generate สีสำหรับ Tailwind CSS

💡
การแก้ปัญหาว่าเราใช้สีไหนดี แก้ได้โดยใช้ Primitive Token หรือ Color Palettes

🔴 pain point 2: สีไหน ควรใช้เมื่อไหร่

แล้วแต่ละสีใช้ตอนไหน หรือทำตัวหนังสือ ใส่สีชมพู แล้วใช้ชมพูไหน ที่ align กับ principle ของแอพเรา เช่น สีตัวหนังสือ สีพื้นหลัง

วิธีการใช้งานไม่ได้คิดในมุม palette ล่ะ เป็นการเลือกตามการใช้งานว่าจะใช้สีไหน แล้ว group ตามการใช้งาน

ใช้ / เป็น subset เป็นการสร้างตัวแปรใต้ folder ในรูปแบบการใช้งานแทน

การตั้งชื่อเริ่มมีความหมายในตัวมันเอง เราเรียกสิ่งนี้ว่า semantic

ข้อสำคัญ คือ ไม่พิมพ์สีไปตรง ๆ (คือไม่ใช้ hex color) ดึงสีที่สร้างมาแล้วจากพาเลตมาใช้

ถ้าตัวแปรเปลี่ยน เราก็ไม่ต้องไปเปลี่ยนทีละก้อน มัน appiled ใช้ได้เลย

ในมุม developer เหมือนเราเปลี่ยน value ของตัวแปรตัวนึง แล้วใช้ได้ทั้งแอพ โดยไม่ต้องเปลี่ยนทีละตัว ซึ่งแต่ละแอพก็ไม่ใช่เล็ก ๆ อะเนอะ ไม่งั้นเหนื่อยตาย

semantic = มีความหมาย ใช้ความหมายถูกต้องไหม

พอดึงค่ามาใช้แล้ว เราใช้งานง่ายขึ้น เวลาออกแบบอยาก cover use case ให้มากที่สุด แต่ปุ่มในแอพก็ไม่ได้มีแบบเดียว ทำให้ไม่ได้ตั้งชื่อ cover use case ทั้งหมด อาจจะใช้เป็น surface ส่วน background คือ พื้นหลังสุด เช่นสีพื้นหลังแอพ

🗒️
อันไหนเป็นชุดสีที่เราใช้ประมาณนึง ไม่ต้องใช้ logic เป๊ะ ๆ มาบวกก็ได้ หรือถ้าเอาเร็วก็ plug-in แล้วเอามา twist
🗒️
ตั้งชื่อไม่ให้สับสน และทุกคนเข้าใจตรงกัน

ในบริบทการใช้งาน สีชมพูคือสีแบรนด์ อยากใช้สีหลัก ตั้งชื่อ Primary เพื่อให้มันมีความหมายมากขึ้น เปิดมาดูแล้วรู้เลยว่าต้องใช้สีไหน

เปลี่ยนเป็น intensity mid สีกลาง ๆ เป็นสีหลัก ถ้าอยากให้เข้มใช้ strong อ่อนเป็น weak ซึ่งใช้น้อย

💡
การแก้ปัญหาว่าสีไหน ควรใช้เมื่อไหร่ แก้ได้โดยใช้ Semantic Token

สรุปการใช้ design token ในการแก้ปัญหาเรื่องตั้งชื่อสี

  • Primitive Token = Color Palettes
  • Semantic Token = มีความหมาย และดึงจาก Primitive Token มาใช้

ปล. ในความจริงมีสีอื่น ๆ เยอะแยะมากมาย

Quick Demo

เริ่มลงสีใหม่ทำยังไงใน Figma

สรุปคร่าว ๆ คือเราทำ Figma Variable พวกสีต่าง ๆ ไว้ แล้วเอามาใช้งานบน Figma โดยการ search หาชื่อสีนั้น ๆ แล้วลงสี

primary color เป็นสีหลักของแบรนด์ ส่วน secondary color เป็นสีที่เอาไว้ใช้ในการ interaction ต่าง ๆ ภายในแอพของเรา

ใส่สีทั้งหมดแล้วจะเป็นแบบนี้

ถ้าฝั่ง developer เจอสีหลุดมา เช่น เป็น hex color ที่ไม่ได้เป็นชื่อ Figma Variable ให้ตีกลับไปที่ designer ได้เลย

ตรง selection colors designer สามารถตรวจดูได้ว่าตรง screen หรือ component หรืออะไรใด ๆ มีสีที่ไม่ match ไหม ถ้าเป็น hex color ให้เปลี่ยนเป็นตัว Figma Variable

🗒️
ควรมี level palette สี สร้าง component ก่อนว่าสี work ไหมบน UI แล้วมาตั้งเป็น Semantic Token

plug-in linter บน Figma

Some nice updates from our Accessibility designers to the ADS Lint plugin… | Alexander Fandén
Some nice updates from our Accessibility designers to the ADS Lint plugin in Figma — Accessibility onboarding, now built right in. It even tracks progress for every designer. Bonus: onboarding, peer reviews, lint issues (and more) are fully tracked across the org. Helps us spot where support is nee…
https://www.linkedin.com/feed/update/urn:li:activity:7321062373245517824/

ถ้าเป็น dev mode แล้ว developer จะเห็นอะไรบ้าง? เห็นชื่อตัวแปรของสีประมาณนี้ และมัน appiled กับ design ที่ developer ต้อง handle

plug-in ที่ช่วยสื่อสารระหว่าง designer และ developer ในกรณีที่ทำ Design Token เสร็จแล้ว คือ Specs มันจะช่วยบอก Design Components ต่าง ๆ และมีบางส่วนที่เราต้อง upgrade หรือเสียตังค์ด้วย

แล้ว token studio กับ figma variable เหมือนหรือต่างกันยังไง?

token studio เป็นชื่อ plug-in บน Figma ใช้งานได้ 2 แบบ คือแปะสี หรือ token ลงไป แปะ data ลงใน UI ของมันตรง ๆ และพ่น Figma Variable ออกมาก่อน แล้วไปแปะบน UI เป็นวิธีการใช้งานปกติที่ designer ชินอยู่แล้ว และอันนี้เป็น config ที่ดีกว่าของ designer

ทั้งหมดของ session นี้ก็ประมาณนี้เนอะ เผื่อใครอยากทบทวน หรือมาฟังไม่ทัน จะได้เอาไปต่อรองกับ designer ได้ แหะ


ติดตามข่าวสารตามช่องทางต่าง ๆ และทุกช่องทางโดเนทกันไว้ที่นี่เลย แนะนำให้ใช้ tipme เน้อ ผ่าน promptpay ได้เต็มไม่หักจ้า

ติดตามข่าวสารแบบไว ๆ มาที่ Twitter เลย บางอย่างไม่มีในบล็อก และหน้าเพจนะ

Tags

Minseo Chayabanjonglerd

I am a full-time Android Developer and part-time contributor with developer community and web3 world, who believe people have hard skills and soft skills to up-skill to da moon.