Browse commands

/impeccable extract

Extract

ดึงคอมโพเนนต์ โทเคน และรูปแบบที่ใช้ซ้ำได้เข้าสู่ระบบการออกแบบ

01Discover driftค่า hex ที่ซ้ำกัน ตัวแปรปุ่ม สเกลระยะห่าง สไตล์ข้อความ
02Propose primitivesชื่อโทเคน API คอมโพเนนต์พร้อมตัวแปร + ขนาด สไตล์ข้อความ
03Migrate call sitesแทนที่ CSS ที่ซ้ำกันด้วย primitives ใหม่ ไม่มีโค้ดกำพร้าเหลือ

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

เมื่อไรควรใช้

/impeccable extract มีไว้สำหรับช่วงเวลาที่โค้ดเบสของคุณกลายเป็นระบบการออกแบบโดยไม่ตั้งใจ สไตล์ปุ่มที่ซ้ำกันใน 12 ที่ ตัวแปรการ์ดสามแบบของการ์ดเดียวกัน ค่า hex กระจายไปทั่ว ระยะห่างที่ทำด้วยมือที่บังเอิญตรงกับสเกล ใช้เมื่อคุณต้องการรวมศูนย์การเบี่ยงเบนนี้เป็น primitives ที่ใช้ซ้ำได้

ใช้หลังผลิตภัณฑ์ส่งมอบฟีเจอร์เพียงพอที่จะเปิดเผยรูปแบบ การดึงล่วงหน้าสร้างสิ่งที่เป็นนามธรรมที่ไม่ตรงกับความเป็นจริง

วิธีการทำงาน

สกิลค้นพบโครงสร้างระบบการออกแบบก่อน แล้วระบุโอกาสในการดึง:

  1. โทเคน: หาค่า literal ที่ซ้ำกัน (สี ระยะห่าง รัศมี เงา ขนาดฟอนต์) เสนอชื่อโทเคน เพิ่มเข้าระบบโทเคน แทนที่การใช้
  2. คอมโพเนนต์: หารูปแบบ UI ที่ซ้ำกันด้วยความแตกต่างเล็กน้อย (ปุ่ม การ์ด อินพุต โมดัล) ดึงเป็นคอมโพเนนต์เดียวพร้อมตัวแปร ย้ายผู้เรียก
  3. รูปแบบคอมโพซิชัน: หารูปแบบเลย์เอาต์หรือการโต้ตอบที่ซ้ำกัน (แถวฟอร์ม กลุ่มแถบเครื่องมือ สเตทว่าง) ดึงเป็น primitives คอมโพซิชัน
  4. สไตล์ข้อความ: หาชุด font-size + weight + line-height ที่ซ้ำกัน ดึงเป็นสไตล์ข้อความ
  5. รูปแบบแอนิเมชัน: หาชุด easing, duration หรือ keyframe ที่ซ้ำกัน ดึงเป็นโทเคนการเคลื่อนไหว

สกิลระมัดระวัง มันดึงเฉพาะสิ่งที่ใช้สามครั้งขึ้นไป ด้วยเจตนาเดียวกัน มันไม่เคยดึง “เพราะอาจใช้ซ้ำในภายหลัง” สิ่งที่เป็นนามธรรมล่วงหน้าแย่กว่าการทำซ้ำ

ลองใช้งาน

/impeccable extract the button styles

ผลลัพธ์ที่คาดหวัง:

  • พบอินสแตนซ์ปุ่ม 14 อินสแตนซ์ใน 8 ไฟล์
  • ตัวแปรที่แตกต่าง 4 แบบ: primary (เติมสีเน้น), secondary (มีขอบ), ghost (เฉพาะข้อความ), destructive (เติมสีแดง)
  • ทั้ง 4 ตัวแปรใช้สเกลขนาดเดียวกัน (small, default, large)
  • ดึงเป็น <Button variant="primary" size="default"> พร้อมสไตล์ที่ขับเคลื่อนด้วยโทเคน
  • ย้าย 14 call site ลบ CSS ที่ซ้ำกันประมาณ 180 บรรทัด
  • เพิ่มโทเคนที่ขาดหาย 3 โทเคน: --button-radius, --button-padding-y, --button-padding-x

ข้อควรระวัง

  • ดึงเร็วเกินไป สองการใช้ไม่ใช่รูปแบบ สามอาจเป็น รอจนกว่ารูปแบบจะชัดเจน
  • ทั่วไปเกินไป คอมโพเนนต์ที่ดึงควรตรงกับกรณีการใช้งานปัจจุบันอย่างใกล้ชิด ไม่ใช่คาดการณ์ทุกกรณีในอนาคตที่เป็นไปได้ คุณสามารถเพิ่มตัวแปรได้ภายหลังเสมอ
  • ลืมการย้าย การดึงโดยไม่มีการย้ายทิ้งโค้ดที่ซ้ำเก่าไว้และสร้างวิธีที่สามในการทำสิ่งเดียวกัน ย้ายในพาสเดียวกันเสมอ
  • ดึงสิ่งที่แตกต่างกันในเจตนา สองปุ่มที่ดูคล้ายกันแต่รับใช้วัตถุประสงค์ที่แตกต่างกัน (แอคชันหลัก vs ลิงก์ที่จัดสไตล์เป็นปุ่ม) น่าจะควรแยกกัน