การใช้สี HSL ใน CSS

เผยแพร่แล้ว: 2022-03-10
สรุปอย่างย่อ ↬ ในบทความนี้ Ahmad Shadeed จะอธิบายว่า HSL คืออะไร ใช้งานอย่างไร และแชร์กรณีการใช้งานและตัวอย่างที่เป็นประโยชน์ซึ่งคุณสามารถใช้ได้ทันทีในโครงการปัจจุบันของคุณ

จากประสบการณ์ของฉัน สีส่วนใหญ่ที่ฉันเห็นคนใช้ใน CSS เป็นเลขฐานสิบหกและ RGB เมื่อเร็ว ๆ นี้ฉันเริ่มเห็นการใช้สี HSL มากขึ้น แต่ฉันยังคงคิดว่า HSL เต็มศักยภาพนั้นถูกมองข้ามไป ด้วยความช่วยเหลือของบทความนี้ ฉันต้องการแสดงให้คุณเห็นว่า HSL สามารถช่วยให้เราทำงานได้ดีขึ้นกับสีใน CSS ได้อย่างไร

บทนำ

โดยปกติ เราใช้รหัสสีฐานสิบหก (สีฐานสิบหก) ซึ่งใช้ได้ แต่มีปัญหาสองสามประการ:

  • พวกเขากำลังจำกัด;
  • พวกเขาเข้าใจยากจากการอ่าน

โดย "จำกัด" ฉันหมายความว่ามันไม่ง่ายเลยที่จะเปลี่ยนสีโดยไม่เปิดวงล้อสีและเลือกสีด้วยตัวเอง ยิ่งไปกว่านั้น มันไม่ง่ายเลยที่จะเดาว่าสีอะไรจากการดูรหัสฐานสิบหก

พิจารณารูปต่อไปนี้:

รูปที่ 1
(ตัวอย่างขนาดใหญ่)

ฉันเลือกสีฐานสิบหกสำหรับสีฟ้าและสีที่เข้มกว่า สังเกตว่าสีฐานสิบหกไม่สัมพันธ์กัน เป็นการยากที่จะบอกว่าทั้งสองเป็นสีน้ำเงิน แต่มีเฉดสีต่างกัน

ในสถานการณ์จริง คุณอาจต้องสร้างเฉดสีที่อ่อนกว่าหรือเข้มกว่าเพื่อทดสอบหรือตรวจสอบบางสิ่งอย่างรวดเร็ว ด้วยสีฐานสิบหก เป็นไปไม่ได้จนกว่าคุณจะเปิดตัวเลือกสี

โชคดีที่สี HSL สามารถช่วยเราในการแก้ปัญหาเฉพาะนี้ และเปิดโอกาสมากมายให้กับเรา

HSL คืออะไร?

HSL ย่อมาจาก hue, saturation และ lightness มันขึ้นอยู่กับวงล้อสี RGB แต่ละสีมีมุมและค่าเปอร์เซ็นต์สำหรับค่าความอิ่มตัวและความสว่าง

รูปที่ 2
(ตัวอย่างขนาดใหญ่)

มาดูตัวอย่างสีฟ้าที่เราพูดถึงก่อนหน้านี้กัน อันดับแรก เราเลือกสีเหมือนที่เรามักทำจากตัวเลือกสี และเราแน่ใจว่าจะได้รับค่า HSL สำหรับสีนั้น

หมายเหตุ : ฉันใช้แอพ Sketch แต่คุณใช้เครื่องมือออกแบบอะไรก็ได้ที่คุณต้องการ

พิจารณารูปต่อไปนี้:

รูปที่ 3
(ตัวอย่างขนาดใหญ่)

สังเกตว่าค่า HSL ในนั้น อันแรกคือมุม ซึ่งแทนมุมของสีที่เรามี ในกรณีนี้ จะเป็นสีฟ้า เมื่อได้มุมแล้ว เราก็เริ่มปรับความอิ่มตัวและความสว่างได้ตามความต้องการ

รูปที่ 4
(ตัวอย่างขนาดใหญ่)

ความอิ่มตัว

ความอิ่มตัว ของสีจะควบคุมความอิ่มตัวของสี 0% นั้นไม่อิ่มตัวอย่างสมบูรณ์ ในขณะที่ 100% นั้นอิ่มตัวอย่างเต็มที่

รูปที่ 5
(ตัวอย่างขนาดใหญ่)

ความสว่าง

ส่วน ความสว่าง จะควบคุมความสว่างหรือความมืดของสี 0% คือสีดำ และ 100% คือสีขาว

รูปที่ 6
(ตัวอย่างขนาดใหญ่)

พิจารณารูปต่อไปนี้:

รูปที่ 7
(ตัวอย่างขนาดใหญ่)

ด้วยเหตุนี้ เรามีสามค่าที่แสดงสี มุม ความอิ่มตัว และความสว่าง นี่คือวิธีที่เราใช้สีใน CSS:

 .element { background-color: hsl(196, 73%, 62%); }

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

พิจารณารูปต่อไปนี้:

รูปที่ 8
(ตัวอย่างขนาดใหญ่)

คุณรู้สึกว่าทั้งสามสีมีความเกี่ยวข้องกันในแง่ของความอิ่มตัวของสีและความเข้มหรือแสงเป็นอย่างไร? ซึ่งทำได้โดยการเปลี่ยนมุมสีเท่านั้น นี่คือสิ่งที่ยอดเยี่ยมเกี่ยวกับสี HSL การอ่านและแก้ไขเป็นมิตรกับมนุษย์มากกว่าสีประเภทอื่นๆ

เพิ่มเติมหลังกระโดด! อ่านต่อด้านล่าง↓

ใช้กรณีสำหรับสี HSL

การเปลี่ยนสีบนโฮเวอร์

เมื่อสีในองค์ประกอบเฉพาะต้องปรากฏเข้มขึ้นเมื่อวางเมาส์เหนือ สี HSL ก็เหมาะสำหรับสิ่งนี้ อาจเป็นประโยชน์สำหรับส่วนประกอบต่างๆ เช่น ปุ่มและการ์ด

รูปที่ 9
(ตัวอย่างขนาดใหญ่)
 :root { --primary-h: 221; --primary-s: 72%; --primary-l: 62%; } .button { background-color: hsl(var(--primary-h), var(--primary-s), var(--primary-l)); } .button:hover { --primary-l: 54%; }

สังเกตว่าฉันรวมตัวแปร CSS กับสี HSL ได้อย่างไร เมื่อวางเมาส์เหนือ ฉันต้องเปลี่ยนค่าความสว่างเท่านั้น จำไว้ว่า ยิ่งค่าสูง ยิ่งเบา สำหรับเฉดสีที่เข้มกว่านั้น เราต้องลดค่าลง

การผสมผสานของสีย้อมสี

HSL จะมีประโยชน์เมื่อเรามีการออกแบบที่ใช้สีเดียวกัน แต่มีเฉดสีต่างกัน พิจารณาการออกแบบต่อไปนี้:

รูปที่ 10
(ตัวอย่างขนาดใหญ่)

การนำทางส่วนหัวหลักมีสีหลัก ในขณะที่การนำทางรองมีสีอ่อนกว่า ด้วย HSL เราจะได้เฉดสีที่สว่างกว่าอย่างง่ายดายโดยการเปลี่ยนค่า ความสว่าง

สิ่งนี้มีประโยชน์อย่างยิ่งในขณะที่มี UI ที่มีหลายธีม ฉันสร้างสองธีมและเปลี่ยนจากธีมหนึ่งไปอีกธีมหนึ่ง ฉันต้องแก้ไขระดับสีเท่านั้น

ธีมแรก:

รูปที่ 11
(ตัวอย่างขนาดใหญ่)

ธีมที่สอง:

รูปที่ 12
(ตัวอย่างขนาดใหญ่)

จานสี

โดยการปรับเปลี่ยนความสว่าง เราสามารถสร้างชุดของเฉดสีสำหรับสีที่สามารถใช้ได้ทั่วทั้ง UI ที่เป็นไปได้

รูปที่ 13
(ตัวอย่างขนาดใหญ่)

สิ่งนี้มีประโยชน์สำหรับระบบการออกแบบที่นักออกแบบจัดเตรียมเฉดสีสำหรับแต่ละสีของแบรนด์ให้กับนักพัฒนา

นี่คือการสาธิตเชิงโต้ตอบที่แสดงให้เห็นว่า แถบเลื่อนอินพุตจะเปลี่ยนเฉพาะค่าฮิว และเฉดสีที่เหลือจะเปลี่ยนตามค่านั้น

See the Pen [การทดสอบสี HSL (22 มิ.ย. 2021)](https://codepen.io/smashingmag/pen/gOWawpX) โดย Ahmad Shadeed

ดูการทดสอบปากกา HSL Colours (22 มิ.ย. 2021) โดย Ahmad Shadeed

สีขาวแบบกำหนดเอง

บ่อยครั้ง เราต้องระบายสีข้อความด้วยสีขาวเพื่อทำให้ข้อความโดดเด่น สีขาวนี้ดูน่าเบื่อ และเราสามารถแทนที่ด้วยเฉดสีอ่อนๆ ของสีที่เรามี

พิจารณาตัวอย่างต่อไปนี้:

รูปที่ 14
(ตัวอย่างขนาดใหญ่)

สังเกตว่าสีขาวด้านขวามากเกินไป เราสามารถแทนที่สิ่งนี้ด้วยสีขาวที่กำหนดเองซึ่งได้มาจากเฉดสีที่สว่างมากของสีที่เรามี ในความคิดของฉันมันดีกว่ามาก

รูปแบบของปุ่ม

กรณีการใช้งานที่มีประโยชน์อีกอย่างสำหรับสี HSL คือเมื่อเรามีตัวเลือกหลักและตัวเลือกรองที่มาจากสีเดียวกัน แต่มีเฉดสีต่างกัน ในตัวอย่างนี้ ปุ่มรองมีสีหลักอ่อนมาก สี HSL นั้นสมบูรณ์แบบสำหรับสิ่งนั้น

รูปที่ 15
(ตัวอย่างขนาดใหญ่)
 :root { --primary-h: 221; --primary-s: 72%; --primary-l: 62%; } .button { background-color: hsl(var(--primary-h), var(--primary-s), var(--primary-l)); } .button--secondary { --primary-l: 90%; color: #222; } .button--ghost { --primary-l: 90%; background-color: transparent; border: 3px solid hsl(var(--primary-h), var(--primary-s), var(--primary-l)); }

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

เอฟเฟกต์การล้างข้อมูลแบบไดนามิก

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

รูปที่ 16
(ตัวอย่างขนาดใหญ่)
 .section { background: linear-gradient(to left, hsl(var(--primary-h), var(--primary-s), var(--primary-l)), hsl(var(--primary-h), var(--primary-s), 95%)); } .section-2 { --primary-h: 167; }

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

รูปที่ 17
(ตัวอย่างขนาดใหญ่)

นั่นคือทั้งหมดที่มีกรณีการใช้งาน ฉันหวังว่าคุณจะได้เรียนรู้สิ่งใหม่และมีประโยชน์

บทสรุป

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