รูปแบบสี

ค่าสีสามารถระบุในรูปแบบ HSV หรือ RGB หรือใช้ชื่อสีก็ได้

โทนสี-ความอิ่มตัว-ค่า

วิธีกำหนดสีที่ง่ายที่สุดคือตัวเลขระหว่าง 0-360 ซึ่งกำหนดโทนสีในรูปแบบสี hue-saturation-value (HSV)

สเปกตรัมสี HSV

การใช้ HSV ที่มีความอิ่มตัวและค่าคงที่สำหรับสีของบล็อกทั้งหมดช่วยให้คุณเลือกสีของบล็อกได้ขณะที่มั่นใจว่าบล็อกทั้งหมดจะใช้สีในแบบเดียวกัน

คุณปรับความอิ่มตัวและค่าสำหรับแต่ละแอปพลิเคชันได้โดยเรียกใช้ฟังก์ชันต่อไปนี้

Blockly.utils.colour.setHsvSaturation(0.45) // 0 (inclusive) to 1 (exclusive), defaulting to 0.45
Blockly.utils.colour.setHsvValue(0.65) // 0 (inclusive) to 1 (exclusive), defaulting to 0.65

เครื่องมือเลือกสีหลายรายการมีรูปแบบสี HSV เช่น เครื่องมือเลือกสี HSV ป้อนค่าคงที่ความอิ่มตัวและค่าของ Blockly (ค่าเริ่มต้นคือ 45% และ 65% ตามลำดับ) จากนั้นเลื่อนแถบโทนสีไปยังสีที่เลือก ใช้ตัวเลขสีนี้เป็นค่า colour

RGB

เราขอแนะนำให้ใช้พื้นที่สี HSV แต่ Blockly รองรับสีที่ระบุเป็นสตริงเลขฐานสิบหก #RRGGBB แม้ว่าวิธีนี้จะช่วยให้คุณใช้สีที่ประสานกับสีของแอปพลิเคชันอื่นๆ (เช่น สไตล์ใน CSS) และแอปพลิเคชันการออกแบบ (เช่น Photoshop) อาจเป็นความเสี่ยงด้านการออกแบบที่อาจทําให้บล็อกไม่สอดคล้องกันหากไม่ได้เลือกอย่างระมัดระวัง

ตัวอย่างการเลือกสีที่ไม่เหมาะสม

เราขอแนะนำให้ใช้พื้นที่สี HSV เว้นแต่คุณจะมีทรัพยากรการออกแบบภาพโดยเฉพาะ หากต้องการกำหนดสีทั้งหมดใหม่ด้วยวิธีนี้ ให้ดูแหล่งข้อมูลเกี่ยวกับสีใน Material Design ของ Google

ชื่อสี

นอกจากนี้ คุณยังระบุสีโดยใช้ชื่อสีที่ W3C กำหนดได้ด้วย

ข้อมูลอ้างอิงสี

บ่อยครั้งที่บล็อกหลายรายการใช้สีเดียวกัน การรวมคำจำกัดความของสีไว้ในที่เดียวจะช่วยให้จัดการสีและเพิ่มบล็อกใหม่ที่มีสีถูกต้องได้ง่ายขึ้น หมวดหมู่สีบล็อกและกล่องเครื่องมือสามารถใช้โทเค็นการแปลภาษาเพื่อดำเนินการดังกล่าว

Blockly มีค่าคงที่สี 9 สีในตารางสตริง ซึ่งสอดคล้องกับหมวดหมู่กล่องเครื่องมือ รวมถึงสีที่ต่างกันสำหรับตัวแปรแบบไดนามิก ดังนี้

'%{BKY_LOGIC_HUE}'
'%{BKY_LOOPS_HUE}'
'%{BKY_MATH_HUE}'
'%{BKY_TEXTS_HUE}'
'%{BKY_LISTS_HUE}'
'%{BKY_COLOUR_HUE}'
'%{BKY_VARIABLES_HUE}'
'%{BKY_VARIABLES_DYNAMIC_HUE}'
'%{BKY_PROCEDURES_HUE}'

ค่าสตริงเหล่านี้ใช้ได้ทั้งในคําจํากัดความ JSON และ block.setColour(..)

คุณเพิ่มค่าคงที่สีของคุณเองได้โดยเพิ่มลงใน Blockly.Msg ดังนี้

// Define the colour
Blockly.Msg.EVERYTHING_HUE = '42';
// Use in a block or block definition:
block.setColour('%{BKY_EVERYTHING_HUE}');

การจัดเก็บสีในตารางสตริงการแปลอาจดูแปลก แต่สะดวกเนื่องจากรูปแบบ JSON รองรับการอ้างอิงอยู่แล้ว และยังช่วยให้แปลสีได้หากจำเป็น