เผยแพร่เมื่อ 2026-08-06
จาก Figma สู่ Tailwind CSS: คู่มือแปลงงานฉบับใช้งานจริง
Tailwind CSS เป็นหนึ่งในฟอร์แมตเอาต์พุตที่นักพัฒนาขอบ่อยที่สุดเมื่อต้องส่งต่องาน Figma ไปเป็นโค้ด และก็เป็นหนึ่งในฟอร์แมตที่ทำด้วยมือแล้วเหนื่อยที่สุดด้วย ทุกค่า spacing สี และขนาดฟอนต์ในดีไซน์ต้องถูก "แปล" ในหัวให้กลายเป็นคลาส utility ของ Tailwind ที่ "ถูกต้อง" — และขั้นตอนแปลนี้เองที่แอบกินเวลาส่วนใหญ่ของการส่งมอบงานไปเงียบๆ
ทำไมการแปลง Figma เป็น Tailwind ด้วยมือถึงช้า
จุดแข็งของ Tailwind อยู่ที่สเกลที่จำกัดและสม่ำเสมอ — spacing สี และ typography ล้วนอิงกับชุด token ที่กำหนดไว้ล่วงหน้า ไม่ใช่ค่าตามใจ พอโค้ดเสร็จแล้วมันเยี่ยมมาก แต่การจะไปถึงจุดนั้นจากไฟล์ Figma ต้องมีคนมานั่งทำให้ค่ามัน "เข้าสเกล" ด้วยมือ:
- เดาขั้นของ spacing ดีไซเนอร์ตั้ง padding ไว้ที่ 18px นี่คือ
p-4(16px) หรือp-5(20px) หรือต้องใช้ค่าตามใจอย่างp-[18px]? คูณการตัดสินใจแบบนี้ด้วยทุก gap, margin และ padding ในไฟล์ - จับคู่สีให้เข้ากับธีม color picker ของ Figma ไม่รู้จักพาเลตใน
tailwind.configของคุณเลย ค่า hex ต้องถูกเทียบกับสีเทา สีฟ้า และสีแบรนด์ในธีม ไม่งั้นจะได้คลาสแบบbg-[#f4f4f5]กระจายอยู่ทั่วโค้ดแทนที่จะเป็นbg-gray-100 - สร้างสเกล typography ขึ้นใหม่ ขนาดฟอนต์ ความสูงบรรทัด และน้ำหนักฟอนต์ต้อง map เข้ากับ utility
text-*และfont-*อย่างสม่ำเสมอ ไม่งั้นหัวข้อที่หน้าตาเหมือนกันเป๊ะใน Figma จะกลายเป็นการผสมคลาสสามแบบต่างกันในโค้ด - ทำซ้ำทั้งหมดในทุก breakpoint สิ่งที่กล่าวมาทั้งหมดไม่ใช่ต้นทุนครั้งเดียว มันเกิดซ้ำในทุก variant ของ responsive ด้วยมือ พร้อมเติม prefix
sm:,md:,lg:เข้าไปอีก
ไม่มีขั้นตอนไหนที่ยากด้วยตัวมันเอง แต่นี่คืองานประเภทที่ทำซ้ำๆ และใช้วิจารณญาณน้อย ซึ่งเป็นจุดที่ความไม่สม่ำเสมอแทรกซึมเข้ามาได้ง่ายที่สุด และคลาส utility ที่ไม่สม่ำเสมอก็ทำลายจุดประสงค์หลักของการใช้ Tailwind ไปเลย
MarkupGen สร้างเอาต์พุต Tailwind จากดีไซน์จริงได้อย่างไร
MarkupGen ถูกสร้างมาเพื่อตัดขั้นตอนการแปลนี้ออกไปเลย ไม่ใช่แค่ช่วยให้ทำด้วยมือได้เร็วขึ้น เวิร์กโฟลว์เหมือนกันไม่ว่าคุณจะเอ็กซ์พอร์ตเป็น CSS ธรรมดาหรือ Tailwind:
- เอ็กซ์พอร์ตเฟรมจาก Figma ด้วยปลั๊กอินของ MarkupGen ซึ่งจะจับโครงสร้าง สไตล์ และรูปภาพของเฟรมแล้วส่งเข้าเวิร์กสเปซของคุณ
- AI สร้างมาร์กอัป จากโครงสร้างและสไตล์จริงของดีไซน์ ไม่ใช่การประมาณคร่าวๆ
- ปรับแต่งเนื้อหา ฟอนต์ และเลย์เอาต์ แบบเห็นภาพในตัวแก้ไขภายในแอปก่อนสรุปงานจริง
- เอ็กซ์พอร์ตแพ็กเกจโค้ดสุดท้าย ตามฟอร์แมตที่คุณเลือก
ส่วนที่สำคัญที่สุดสำหรับบทความนี้คือขั้นตอนที่ 4: เมื่อเลือก Tailwind CSS เป็นฟอร์แมตเอาต์พุต คลาส utility จะถูกสร้างจาก token ของ spacing สี และ typography จริงของดีไซน์ — ไม่ใช่การเดาจากภาพหน้าจอ ค่า padding ในเฟรม Figma จะถูก map ไปยัง utility spacing ของ Tailwind ที่ใกล้เคียงที่สุด สี fill จะถูกตีความเทียบกับค่าสีจริงของดีไซน์ และขนาด/น้ำหนักฟอนต์ก็ถูกแปลงเป็นคลาส text-* และ font-* ที่ตรงกัน นี่คือการแปลแบบเดียวกับที่นักพัฒนาทำด้วยมือ เพียงแต่ทำโดยตรงจากข้อมูลดีไซน์แทนที่จะใช้สายตา
HTML/CSS ธรรมดาและ React เป็นอีกสองฟอร์แมตเอาต์พุตที่มีให้เลือก — Tailwind เป็นเพียงหนึ่งในสามตัวเลือก ซึ่งเลือกได้แยกกันในแต่ละครั้งที่เอ็กซ์พอร์ตตามที่โค้ดเบสปลายทางต้องการ
Auto Layout กลายเป็นคลาส utility ของ Flexbox
ไฟล์ Figma จริงส่วนใหญ่ใช้ Auto Layout กับทุกอย่างที่คล้าย component ดังนั้นวิธีที่มันถูกแปลงจึงสำคัญพอๆ กับสีและ spacing MarkupGen จะ map ทิศทาง, gap, padding และการจัดตำแหน่งของ Auto Layout ไปเป็นโครงสร้าง CSS Flexbox ที่เทียบเท่ากัน และในเอาต์พุต Tailwind สิ่งนี้จะออกมาเป็นคลาส flex ที่ตรงกัน — ทิศทางจะกลายเป็น utility flex-row / flex-col ที่เหมาะสม, gap จะกลายเป็น utility gap-*, padding จะกลายเป็น p-* / px-* / py-* และการตั้งค่าการจัดตำแหน่งจะกลายเป็น utility items-* / justify-* breakpoint แบบ responsive และพฤติกรรมแบบ fluid ก็ถูกสร้างขึ้นอัตโนมัติเช่นกัน โดยอิงจากข้อจำกัดการปรับขนาดที่ตั้งไว้บนเฟรมอยู่แล้ว ไม่ต้องมาทำเพิ่มเป็นขั้นตอนแยกด้วยมืออีก หากต้องการเจาะลึกว่าแต่ละคุณสมบัติของ Auto Layout ถูก map ไปเป็น Flexbox อย่างไร ดูได้ที่ Auto Layout to CSS
ตรวจสอบคลาสที่สร้างขึ้นก่อนใช้งานจริง
การแปลงอัตโนมัติให้คลาส utility ที่ถูกต้องสำหรับดีไซน์ส่วนใหญ่ แต่ก็ยังคุ้มที่จะตรวจสอบก่อน merge:
- สแกนหาค่าที่โดดเดี่ยว ถ้าดีไซน์ใช้ค่า spacing ที่เบี่ยงจากสเกลของ Tailwind เล็กน้อย ให้พิจารณาว่าควรปรับดีไซน์ให้เข้าขั้นมาตรฐานหรือจะคงค่าที่แน่นอนไว้
- ตรวจสอบความสม่ำเสมอของสีทั่วทั้งหน้า โดยเฉพาะจุดที่ component เดียวกันปรากฏซ้ำหลายครั้ง — สีที่เห็นเหมือนกันควรถูกตีความเป็นคลาส utility เดียวกันทุกที่
- ยืนยันลำดับชั้นของหัวข้อและแท็กเชิงความหมาย เพราะเอาต์พุตถูกสร้างเป็น HTML ที่สะอาดและมีความหมายโดยดีฟอลต์ ไม่มี
<div>ที่ซ้อนกันโดยไม่จำเป็น - ใช้ตัวแก้ไขภายในแอป เพื่อปรับเนื้อหา ฟอนต์ หรือเลย์เอาต์แบบเห็นภาพ แทนการแก้คลาสที่เอ็กซ์พอร์ตออกมาด้วยมือ แล้วค่อยเอ็กซ์พอร์ตใหม่เมื่อพอใจ
ทุกการเอ็กซ์พอร์ตยังได้รับคะแนนคุณภาพจาก AI โดยอัตโนมัติ ทำให้คุณได้สัญญาณเร็วๆ ว่าเอ็กซ์พอร์ตนั้นพร้อมใช้งานจริงหรือควรตรวจดูอีกครั้งก่อนไปต่อ
ลองใช้กับดีไซน์ของคุณเอง
ถ้าคุณยังคงแปลงค่าจาก Figma เป็นคลาส Tailwind ด้วยมืออยู่ ลองดูว่างานส่วนนี้จะหายไปมากแค่ไหนเมื่อคลาสมาจาก token จริงของดีไซน์แทนที่จะเป็นการเดา ลองใช้ MarkupGen ฟรี กับเฟรม Figma ของคุณเอง หรืออ่าน คู่มือทั่วไปสำหรับ Figma สู่ HTML เพื่อดูเวิร์กโฟลว์สี่ขั้นตอนแบบเต็ม มีคำถามติดต่อได้ที่ support@markupgen.com