หัวข้อที่ติดแท็กเป็นคุณลักษณะทั่วไปในบล็อก ป้ายข้อความธรรมดาใช้งานได้ดี — แต่ฉันอยากจะเพิ่มสีสันสักหน่อย ด้วยสีสันแน่นอน!

มาทำให้แท็กแต่ละแท็กมีสีที่แตกต่างกัน และเนื่องจากเราเป็นนักพัฒนา เรามาทำโค้ดกันดีกว่า!

ทุกครั้งที่ผู้ใช้ต้องอ่านอะไรบางอย่าง จะมีอุปสรรคเล็กน้อย นักออกแบบ UX รู้เรื่องนี้ดี — พวกเขาเลี่ยงป้ายข้อความที่มีไอคอนมาหลายปีแล้ว ความคิดของฉันคือหากมีใครกำลังมองหา บทความ MacOS ที่ฉันเขียน พวกเขาก็ไม่จำเป็นต้องอ่านแท็กจริงๆ เพียงเลื่อนไปรอบๆ มองหาหยดสีแดงสดใส ซึ่งง่ายกว่ามาก!

เปลี่ยนข้อความให้เป็นตัวเลข

เราได้รับแรงบันดาลใจจากเทคนิคที่เรียกว่าการแฮช

การแฮชคือกระบวนการแปลงคีย์ที่กำหนดหรือสตริงอักขระให้เป็นค่าอื่น

ในกรณีของเรา อินพุตเป็นสตริงและเอาต์พุตควรเป็นตัวเลข คุณสามารถรับการใช้งานฟังก์ชันแฮชที่มีอยู่ได้ แต่คุณยังสามารถเขียนของคุณเองเพื่อการควบคุมที่มากขึ้น ที่ฉันใช้มีลักษณะดังนี้:

function hash(text: string): number {
    if (!text) return 0

    let state = 13 // prime
    for (let index = 0; index < text.length; index++) {
        const charCode: number = text.charCodeAt(index);
        state += state * charCode;
        // Prevent overflow by %
        state %= (charCode * 3109) // prime
    }
    return state;
}

เป้าหมายของกระบวนการนี้คือเพื่อให้ได้ตัวเลขสุ่มสำหรับการป้อนข้อความของเรา จากนั้นคุณสามารถใช้ค่านั้นเพื่อสร้างสีด้วยฟังก์ชัน hsv หรือ rgb หรือเป็นดัชนีสำหรับการเลือกสีจากอาร์เรย์สี!

ฟังก์ชันแฮชไม่ได้ถูกสร้างขึ้นเท่ากันทั้งหมด

นี่ไม่ใช่เรื่องน่าแปลกใจ แต่วิธีการบางอย่างอาจจะดีกว่าการเลือกสีมากกว่าวิธีอื่นๆ

ตัวอย่างเช่น การใช้งาน JS เป็นที่นิยมมาก ของ "ฟังก์ชัน Java hash" ทำงานได้ไม่ดีนักในการเลือกจากอาร์เรย์สีเล็กๆ มีรูปแบบที่มองเห็นได้ชัดเจน - คอลัมน์สว่างและแถวที่มีสีคล้ายกัน - ซึ่งไม่ดีนัก

ฟังก์ชันแฮชของฉันเอง (ดังที่กล่าวไว้ข้างต้น) ดูเหมือนว่าจะให้สีที่หลากหลายมากขึ้น นี่แสดงให้เห็นว่าการสร้างการใช้งานของคุณเองอาจคุ้มค่า! คุณสามารถปรับแต่งและปรับแต่งได้ตามใจชอบ :)

สีที่คัดสรรด้วยมือและสีที่สร้างขึ้น

เราอยู่ที่ทางแยกที่นี่ คุณจะทำตามขั้นตอนทั้งหมดและสร้างสีของคุณด้วย — หรือคุณเพียงแค่เลือกจากชุดสีที่เลือก

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

เราเลือกสีเริ่มต้นของ Tailwind ทั้งหมดด้วยมือ ปรับสมดุลด้วยตาอย่างพิถีพิถัน และทดสอบในการออกแบบจริงเพื่อให้แน่ใจว่าเราพอใจกับสีเหล่านั้น

มีมีวิธีในการสร้างสี

คุณเพียงแค่ต้องฉลาดเกี่ยวกับเรื่องนี้ ปรับขอบเขตสีตามที่คุณต้องการและจำกัดการเลือกสีจริงให้แคบลง การเลือกสีใดๆ ก็ตามไม่ได้ผล ส่วนใหญ่ของสีที่เป็นไปได้ทั้งหมดจะใกล้เคียงกับสีดำ เราไม่สนใจขยะสีโคลนพวกนั้นเลย

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

ที่นี่เราเจอปัญหาอื่น พื้นที่สีส่วนใหญ่เป็นสีน้ำเงินหรือสีเขียว! นั่นหมายความว่าสีขั้นตอนของคุณจะเป็นสีฟ้าและเขียวเป็นส่วนใหญ่ โอกาสที่จะได้สีเหลืองหรือสีส้มสวยๆ นั้นมีไม่มากนัก 🥲

สารละลาย? เลือกใช้แนวทางแบบพาเลท

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

ฉันได้ยินคุณ: “การไม่ต้องการเลือกสีด้วยตนเองคือสิ่งที่ทำให้เรามาที่นี่ตั้งแต่แรก…” และคุณก็พูดถูก แน่นอนว่าเราจะใช้จานสีที่ทำไว้ล่วงหน้า เพียงแค่มองไปรอบ ๆ เลือกเฟรมเวิร์ก CSS ที่มีโทนสีที่สวยงามแล้วขโมยมันมา!!

ฉันเองขโมยสีของฉันจาก Tailwind — ทุกรูปแบบที่สว่างตั้งแต่ 400 ถึงประมาณ 700 ความมืด พวกมันจะถูกเก็บไว้อย่างปลอดภัยในอาเรย์ และฉันก็หยิบมาหนึ่งอันทุกครั้งที่ต้องการ!

การสร้างแท็กจริง

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

หากคุณต้องการข้อความสีขาว (เช่นฉัน) ฉันขอแนะนำให้ใส่ข้อความแท็กของคุณเป็นเงาเล็กน้อย ทำให้อ่านง่ายขึ้นและโดดเด่นด้วยสีสันสดใสยิ่งขึ้น! การตั้งค่าแท็กทั้งหมดของฉันมีลักษณะดังนี้:

function tagColor(text) {
  return palette[hash(text) % palette.length];
}
// ...
<span 
  style={{ background: tagColor(text), textShadow: "1px 1px 0px black" }}
>
  {text}
</span>

ตอนนี้เมื่อคุณเพิ่มแท็กให้กับบทความใหม่ล่าสุดของคุณ — มันจะให้สีสันที่สวยงามในตัวมันเอง!

หากคุณได้เรียนรู้อะไรบางอย่างในบทความนี้ ปรบมือ 👏 หรือติดตามจะยินดีเป็นอย่างยิ่ง! ขอบคุณที่อ่าน! ❤️

เผยแพร่ครั้งแรกที่ https://www.vojtechstruhar.com.