ابزار رایگان · بدون ثبت‌نام

فقط در مرورگر شما؛ چیزی ارسال نمی‌شود

تبدیل رنگ HEX‏، RGB و HSL و بررسی کنتراست WCAG

کد رنگ را به هر شکلی که دارید وارد کنید، از HEX سه تا هشت‌رقمی تا RGB‏، HSL و نام رنگ‌های CSS، تا معادل HEX‏، RGB‏، HSL و HSB آن را با یک کلیک کپی کنید. در بخش دوم، نسبت کنتراست متن و پس‌زمینه را طبق WCAG بسنجید و اگر رد شد، نزدیک‌ترین رنگ قابل‌قبول را بگیرید.

مثل #F70، #FA770080، rgb(250 119 0 / 50%)، hsl(29, 100%, 49%) یا navy. کلید Esc ورودی را پاک می‌کند.

نمونه‌ها

رنگ روی زمینهٔ سفید و تیره؛ کنتراست با سفید و با سیاه . رنگ متن خواناتر روی آن: .

HEX
RGB
HSL
HSB / HSV
متغیر CSS

HSB همان عددهای پنجرهٔ رنگ فتوشاپ و فیگماست و با HSL فرق دارد؛ در CSS از HSL استفاده کنید.

بررسی کنتراست متن و پس‌زمینه (WCAG 2.2)

نسبت کنتراست با فرمول درخشندگی نسبی WCAG محاسبه می‌شود؛ از ۱:۱ (بدون تفاوت) تا ۲۱:۱ (سیاه روی سفید).

نسبت کنتراست

: ۱

«متن درشت» یعنی دست‌کم ۲۴ پیکسل، یا ۱۸٫۶۶ پیکسل با وزن پررنگ. نسبت پیش از مقایسه گرد نمی‌شود؛ ۴٫۴۹ برای AA کافی نیست.

یکی از رنگ‌ها شفاف است؛ رنگ متن روی پس‌زمینه و پس‌زمینه روی سفید ترکیب و سپس سنجیده شد. روی زمینهٔ دیگری نتیجه فرق می‌کند.

نزدیک‌ترین رنگ متن با همان فام که روی این پس‌زمینه سطح AA را می‌گیرد:

راهنمای کامل

راهنمای کامل کدهای رنگ HEX‏، RGB و HSL برای وب

هر کسی که CSS نوشته، قالب وردپرس را شخصی‌سازی کرده یا رنگ برند را به یک برنامه‌نویس تحویل داده، با کدهای رنگ سروکار داشته است. طراح رنگ را به HEX می‌دهد، کتابخانهٔ نمودار RGB می‌خواهد و برای ساختن طیف روشن و تیره، HSL راحت‌ترین زبان است. این راهنما توضیح می‌دهد این سه مدل چه فرقی دارند، تبدیلشان چطور حساب می‌شود، عدد روشنایی این ابزار چه معنایی دارد و در ترمینال لینوکس با رنگ‌ها چه می‌شود کرد.

۱۰ بخش حدود ۹ دقیقه مطالعه

فهرست مطالب

HEX‏، RGB و HSL چیست و چه فرقی با هم دارند؟

هر سه مدل یک رنگ را در فضای رنگی sRGB توصیف می‌کنند که پیش‌فرض وب است؛ فقط زبانشان فرق دارد. RGB سهم سه نور قرمز، سبز و آبی را با عددی بین ۰ تا ۲۵۵ مشخص می‌کند. HEX همان سه عدد است که در مبنای شانزده و پشت سر هم نوشته شده‌اند: دو رقم برای قرمز، دو رقم برای سبز و دو رقم برای آبی. پس #FA7700 یعنی قرمز ۲۵۰، سبز ۱۱۹ و آبی صفر.

HSL رنگ را به زبانی نزدیک‌تر به درک انسان بیان می‌کند: Hue یا فام، زاویه‌ای بین ۰ تا ۳۶۰ درجه روی چرخهٔ رنگ است؛ Saturation یا اشباع نشان می‌دهد رنگ چقدر خالص یا خاکستری است؛ و Lightness یا روشنایی از سیاه مطلق تا سفید مطلق را می‌پوشاند. وقتی می‌خواهید نسخهٔ روشن‌تر یا تیره‌تر یک رنگ برند را بسازید، کافی است فقط عدد L را در HSL تغییر دهید؛ کاری که با HEX تقریباً حدسی است.

مدلنمونه برای رنگ زعفرانیبیشترین کاربرد
HEX#FA7700فایل‌های طراحی، CSS، تنظیمات قالب
RGBrgb(250, 119, 0)کتابخانه‌های گرافیکی، Canvas، نمودارها
RGBArgba(250, 119, 0, 1)رنگ با شفافیت در CSS
HSLhsl(29, 100%, 49%)ساخت طیف روشن و تیره، تم‌های تاریک

کار با ابزار تبدیل رنگ قدم‌به‌قدم

ابزار بالای صفحه دو راه ورود دارد. می‌توانید روی مربع رنگی کنار کادر کلیک کنید و با پنجرهٔ بومی سیستم‌عامل رنگ را برگزینید، یا کد رنگ را مستقیم در کادر بنویسید یا بچسبانید. کادر هر شکل رایجی را می‌پذیرد: HEX سه، چهار، شش یا هشت‌رقمی با یا بدون #، تابع‌های rgb و hsl با کاما یا با نحو جدید CSS که مقادیر را با فاصله جدا می‌کند، و نام رنگ‌های CSS مثل navy یا rebeccapurple. ارقام فارسی هم خودکار به لاتین تبدیل می‌شوند. اگر ورودی قابل‌فهم نباشد، دلیلش زیر کادر نوشته می‌شود؛ مثلاً اینکه کد HEX پنج رقم دارد و احتمالاً رقمی جا افتاده است.

کنار کادرها رنگ روی دو زمینهٔ سفید و تیره نمایش داده می‌شود و زیر آن ردیف‌های HEX‏، RGB‏، HSL‏، HSB و متغیر CSS با دکمهٔ کپی قرار دارند. نسبت کنتراست رنگ با سفید و سیاه هم همان‌جا نوشته شده تا بدانید متن روشن یا تیره روی آن خواناتر است. با لغزندهٔ شفافیت، آلفا را تغییر دهید تا خروجی‌ها به RGBA‏، HSLA و HEX هشت‌رقمی تبدیل شوند. دو دکمهٔ پایین، رنگ را به بخش بررسی کنتراست می‌فرستند.

  • رنگ را با انتخابگر برگزینید یا کد HEX‏، rgb‏، hsl یا نام رنگ را وارد کنید.
  • پیش‌نمایش و نسبت کنتراست با سفید و سیاه را ببینید تا رنگ متن مناسب را انتخاب کنید.
  • قالب موردنیاز را از ردیف‌ها پیدا کنید و با دکمهٔ کپی بردارید.
  • برای ساخت طیف، مقدار HSL را کپی کنید و فقط درصد روشنایی را در CSS تغییر دهید.

بازگشت به فهرست مطالب

تبدیل HEX به RGB و HSL چطور محاسبه می‌شود؟

تبدیل HEX به RGB ساده است: کد را دوبه‌دو جدا کنید و هر جفت را از مبنای شانزده به ده ببرید. در #FA7700، جفت FA برابر ۱۵ ضرب در ۱۶ به‌اضافهٔ ۱۰، یعنی ۲۵۰ است؛ جفت 77 برابر ۱۱۹ و جفت 00 برابر صفر. برعکسش هم همین‌قدر ساده است و به همین دلیل HEX و RGB بدون هیچ خطایی به هم تبدیل می‌شوند.

تبدیل به HSL چند مرحله دارد. ابتدا هر سه عدد بر ۲۵۵ تقسیم می‌شوند. روشنایی میانگین بزرگ‌ترین و کوچک‌ترین مقدار است؛ برای مثال ما (۰٫۹۸ + ۰) تقسیم بر دو، یعنی حدود ۴۹ درصد. اشباع از اختلاف بیشینه و کمینه به دست می‌آید که اینجا ۱۰۰ درصد است، و فام بر اساس اینکه کدام کانال بیشینه است حساب می‌شود؛ اینجا حدود ۲۹ درجه. ابزار زاویهٔ فام را به عدد صحیح و اشباع و روشنایی را به یک رقم اعشار گرد می‌کند، پس اگر HSL را دوباره به HEX برگردانید، ممکن است یکی دو واحد اختلاف ببینید؛ مثلاً hsl(29, 100%, 49%) به #FA7900 برمی‌گردد، نه #FA7700.

بازگشت به فهرست مطالب

استفاده از کدهای رنگ در CSS و طراحی سایت

بهترین روش در پروژه‌های امروزی تعریف رنگ‌های برند به شکل متغیر CSS است؛ مثلاً در :root یک متغیر --brand با مقدار رنگ اصلی بسازید و در همهٔ قالب از همان استفاده کنید. اگر رنگ را با HSL تعریف کنید، ساختن حالت‌های hover، پس‌زمینه‌های کم‌رنگ و تم تاریک فقط با تغییر درصد روشنایی ممکن می‌شود. مرورگرهای جدید نحو کوتاه‌تری هم می‌پذیرند که در آن مقادیر با فاصله جدا می‌شوند و شفافیت بعد از یک اسلش می‌آید.

برای شفافیت دو راه دارید: rgba با عدد چهارم بین صفر و یک، یا HEX هشت‌رقمی که دو رقم آخرش شفافیت است. در این ابزار با لغزندهٔ شفافیت یا با واردکردن rgba و HEX هشت‌رقمی، آلفا را تعیین کنید تا هر سه شکل یکجا ساخته شوند؛ مثلاً ۵۰ درصد شفافیت در HEX با دو رقم 80 در انتها نوشته می‌شود. اگر سایتتان را با وردپرس مدیریت‌شده یا سایت‌های آماده ساخته‌اید، معمولاً بخش تنظیمات ظاهری قالب، کد HEX می‌خواهد و همین ابزار کافی است.

بازگشت به فهرست مطالب

کنتراست و دسترس‌پذیری؛ بررسی‌گر WCAG این صفحه چطور حساب می‌کند؟

بخش دوم ابزار، نسبت کنتراست دو رنگ را دقیقاً با فرمول رهنمود WCAG می‌سنجد. ابتدا هر کانال از فضای sRGB به مقدار خطی برگردانده می‌شود (تصحیح گاما)، سپس درخشندگی نسبی با ضرایب ۰٫۲۱۲۶ برای قرمز، ۰٫۷۱۵۲ برای سبز و ۰٫۰۷۲۲ برای آبی به دست می‌آید. نسبت کنتراست برابر است با درخشندگی رنگ روشن‌تر به‌اضافهٔ ۰٫۰۵ تقسیم بر درخشندگی رنگ تیره‌تر به‌اضافهٔ ۰٫۰۵؛ عددی از ۱ تا ۲۱. ابزار این عدد را پیش از مقایسه گرد نمی‌کند، چون طبق رهنمود ۴٫۴۹ هنوز برای سطح AA کافی نیست.

برای سطح AA، متن معمولی دست‌کم ۴٫۵ به ۱ و متن درشت، یعنی دست‌کم ۲۴ پیکسل یا ۱۸٫۶۶ پیکسل پررنگ، دست‌کم ۳ به ۱ لازم دارد. سطح AAA سخت‌گیرانه‌تر است: ۷ به ۱ برای متن معمولی و ۴٫۵ به ۱ برای متن درشت. آیکون‌ها، حاشیهٔ کادرهای فرم و نمودارها هم طبق معیار کنتراست اجزای غیرمتنی دست‌کم ۳ به ۱ می‌خواهند. ابزار هر پنج مورد را با «قبول» یا «رد» نشان می‌دهد و اگر متن معمولی رد شود، نزدیک‌ترین رنگ با همان فام را پیشنهاد می‌کند که به ۴٫۵ برسد؛ با یک کلیک جایگزین می‌شود.

اگر یکی از رنگ‌ها شفاف باشد، ابزار رنگ متن را روی پس‌زمینه و پس‌زمینه را روی سفید ترکیب می‌کند و بعد می‌سنجد؛ روی زمینهٔ دیگر نتیجه فرق می‌کند. رنگ‌های زعفرانی و نارنجی روشن معمولاً با متن سفید کنتراست کافی ندارند؛ برای مثال #FA7700 روی سفید حدود ۲٫۷ به ۱ است و برای دکمه‌ها باید متن تیره روی آن‌ها گذاشت.

بازگشت به فهرست مطالب

ساخت پالت رنگ برند و تم تاریک با HSL

یک پالت کاربردی معمولاً از یک رنگ اصلی و هفت تا ده پلهٔ روشن و تیره از همان رنگ ساخته می‌شود. روش عملی این است که رنگ اصلی را در ابزار وارد کنید، مقدار HSL آن را بردارید و فام و اشباع را ثابت نگه دارید؛ سپس روشنایی را مثلاً روی ۹۵، ۸۵، ۷۰، ۵۰، ۴۰، ۳۰ و ۲۰ درصد بگذارید. پله‌های روشن برای پس‌زمینهٔ کارت‌ها و هشدارها، و پله‌های تیره برای متن و حالت hover مناسب‌اند.

برای تم تاریک کافی نیست رنگ‌ها را برعکس کنید. پس‌زمینه را روی خاکستری بسیار تیره به‌جای سیاه مطلق بگذارید و اشباع رنگ برند را کمی پایین بیاورید تا روی زمینهٔ تیره چشم را آزار ندهد. با پرس‌وجوی رسانه‌ای prefers-color-scheme در CSS، مرورگر خودش تم مناسب را انتخاب می‌کند. بعد از بازنویسی پالت، نسخهٔ قدیم و جدید فایل CSS را با ابزار مقایسهٔ متن کنار هم بگذارید تا مطمئن شوید رنگی جا نمانده است، و اگر سایت را روی سرور خودتان با Nginx سرو می‌کنید، برای فایل‌های CSS هدر کش مناسب تنظیم کنید.

بازگشت به فهرست مطالب

اشتباهات رایج هنگام کار با کدهای رنگ

بیشتر ناهماهنگی‌های رنگ بین فایل طراحی و سایت واقعی از چند اشتباه تکراری می‌آید. شایع‌ترینش اشتباه گرفتن HSL با HSB یا HSV است که در نرم‌افزارهای طراحی مثل فتوشاپ نمایش داده می‌شود؛ این دو مدل با وجود ظاهر مشابه، اعداد کاملاً متفاوتی دارند و نمی‌شود مقدار یکی را در دیگری گذاشت.

مورد بعدی پروفایل رنگ است. اگر طراح در فضای Display P3 کار کرده باشد، همان کد روی صفحهٔ معمولی کمی کدرتر دیده می‌شود. خروجی‌ها را برای وب همیشه در sRGB بگیرید. اشتباه آخر هم این است که رنگ‌ها در چند فایل CSS به‌صورت پراکنده تکرار شوند؛ وقتی برند تغییر می‌کند، پیدا کردن همهٔ آن‌ها سخت است و بهتر است از متغیرها استفاده کنید. برای پیدا کردن همهٔ کدهای HEX در یک فایل، ابزار Regex الگوی آماده دارد.

  • کد سه‌رقمی مثل #F70 کوتاه‌شدهٔ #FF7700 است، نه #F70000؛ ابزار هر رقم را دو بار تکرار می‌کند.
  • HSB فتوشاپ را با HSL اشتباه نگیرید.
  • خروجی طراحی را در sRGB بگیرید، نه Display P3.
  • روشنایی (L در HSL) را با نسبت کنتراست WCAG یکی ندانید؛ دو رنگ با L برابر می‌توانند کنتراست بسیار متفاوتی داشته باشند.
  • رنگ‌ها را به‌جای تکرار در فایل‌ها، در متغیرهای CSS تعریف کنید.

بازگشت به فهرست مطالب

رنگ در ترمینال لینوکس و ابزارهای خط فرمان

کدهای RGB فقط مخصوص وب نیستند. ترمینال‌های امروزی رنگ ۲۴ بیتی را پشتیبانی می‌کنند و می‌توانید با کدهای ANSI متن را دقیقاً با رنگ برند خودتان چاپ کنید؛ این برای اسکریپت‌های استقرار، پیام خوش‌آمد SSH یا prompt سرور تولید کاربرد دارد تا اشتباهاً دستوری را روی سرور اصلی اجرا نکنید. مقادیر R‏، G و B را از همین ابزار بردارید و در دنبالهٔ escape قرار دهید.

برای کار با تصویر هم ImageMagick روی هر توزیعی نصب می‌شود و می‌تواند از یک کد HEX، نمونهٔ رنگ بسازد یا رنگ غالب یک تصویر را استخراج کند. روی سرور ابری ایران‌کلاد این دستورها را مستقیم در SSH اجرا می‌کنید و برای ساخت خودکار نسخه‌های مختلف یک لوگو در خط لوله‌های CI هم کاربرد دارند.

کاردستور
چاپ متن با رنگ RGB دلخواهprintf "\033[38;2;250;119;0mHello\033[0m\n"
بررسی پشتیبانی ترمینال از رنگ ۲۴ بیتیecho $COLORTERM
تعداد رنگ‌های پشتیبانی‌شدهtput colors
ساخت نمونهٔ رنگ با ImageMagickconvert -size 120x120 xc:"#FA7700" swatch.png
رنگ میانگین یک تصویرconvert logo.png -resize 1x1 txt:-

بازگشت به فهرست مطالب

حریم خصوصی و نحوهٔ اجرای ابزار

تمام محاسبه‌های این صفحه با جاوااسکریپت در مرورگر خود شما انجام می‌شود. سرور ایران‌کلاد فقط صفحه را تحویل می‌دهد و رنگ‌هایی که انتخاب می‌کنید به هیچ سروری فرستاده نمی‌شوند و جایی ذخیره هم نمی‌شوند. رنگ‌های انتخابی فقط بعد از علامت # در آدرس صفحه نوشته می‌شوند تا با «کپی لینک این رنگ‌ها» همان نتیجه را برای همکارتان بفرستید؛ مرورگر این بخش از آدرس را هرگز به سرور نمی‌فرستد. دکمه‌های کپی از کلیپ‌بورد مرورگر استفاده می‌کنند و اگر مرورگرتان اجازهٔ دسترسی به کلیپ‌بورد را نداده باشد، کپی انجام نمی‌شود؛ در این صورت مقدار را دستی انتخاب کنید.

بازگشت به فهرست مطالب

از کد رنگ تا سایت سریع: رنگ، تصویر و کش

رنگ‌ها در CSS تقریباً هیچ وزنی ندارند، اما تصاویری که رنگ برند را حمل می‌کنند، مثل بنرها و پس‌زمینه‌ها، بخش بزرگی از حجم صفحه‌اند. جایی که می‌شود، پس‌زمینه‌های ساده را به‌جای تصویر با گرادیان CSS بسازید و آیکون‌ها را SVG نگه دارید تا رنگشان با متغیر CSS قابل‌تغییر باشد.

برای تصاویری که باقی می‌مانند، بهینه‌سازی تصویر حجم را کم می‌کند و CDN ایران‌کلاد فایل‌های ایستا مثل CSS، جاوااسکریپت و تصاویر را در لبهٔ داخل ایران کش می‌کند. چون فایل CSS کش می‌شود، بعد از تغییر رنگ‌های برند حتماً نسخهٔ فایل را عوض کنید یا کش را از پنل پاک کنید تا بازدیدکننده‌ها رنگ قدیمی را نبینند.

بازگشت به فهرست مطالب بازگشت به ابتدای راهنما

پرسش و پاسخ،  ۱۰ پرسش

سؤالات متداول

پاسخ پرسش خود را پیدا نکردید؟ با پشتیبانی در تماس باشید.

فرق HEX و RGB چیست؟
هیچ فرقی در خود رنگ ندارند. HEX همان سه عدد قرمز، سبز و آبی RGB است که در مبنای شانزده نوشته شده‌اند؛ برای مثال #FA7700 دقیقاً برابر rgb(250, 119, 0) است.
آیا این ابزار کد رنگ سه‌رقمی و هشت‌رقمی را می‌پذیرد؟
بله. HEX سه، چهار، شش و هشت‌رقمی با یا بدون # پذیرفته می‌شود. در کد کوتاه هر رقم دو بار تکرار می‌شود؛ مثلاً #F70 همان #FF7700 است. دو رقم آخر کد هشت‌رقمی شفافیت است.
چطور رنگ نیمه‌شفاف بسازم؟
لغزندهٔ شفافیت را جابه‌جا کنید یا rgba یا HEX هشت‌رقمی وارد کنید. خروجی‌ها خودکار به RGBA‏، HSLA و HEX هشت‌رقمی تبدیل می‌شوند؛ مثلاً ۵۰ درصد شفافیت در HEX با 80 در انتها نوشته می‌شود.
بررسی کنتراست این ابزار با WCAG یکی است؟
بله. نسبت با فرمول درخشندگی نسبی WCAG و با تصحیح گامای sRGB حساب می‌شود و پیش از مقایسه گرد نمی‌شود. نتیجه با بازرس عنصر Chrome و Firefox یکی است، جز اینکه ابزار عدد را به دو رقم اعشار رو به پایین نمایش می‌دهد.
برای متن معمولی چه نسبت کنتراستی لازم است؟
طبق رهنمود WCAG در سطح AA، متن معمولی دست‌کم نسبت ۴٫۵ به ۱ و متن درشت دست‌کم ۳ به ۱ با پس‌زمینه لازم دارد.
آیا رنگ‌هایی که انتخاب می‌کنم به سرور ارسال می‌شود؟
خیر. همهٔ تبدیل‌ها در مرورگر شما انجام می‌شود، چیزی به سرور ایران‌کلاد فرستاده نمی‌شود و جایی هم ذخیره نمی‌شود.
چرا تبدیل HSL به HEX گاهی یکی دو واحد اختلاف دارد؟
ابزار زاویهٔ فام را به عدد صحیح و درصدهای اشباع و روشنایی را به یک رقم اعشار گرد می‌کند. این گرد کردن در برگشت به HEX ممکن است یکی دو واحد تفاوت ایجاد کند که با چشم دیده نمی‌شود.
HSL با HSB فتوشاپ یکی است؟
خیر. HSB یا HSV مدل دیگری است و اعداد اشباع و روشنایی آن با HSL فرق دارد. ابزار هر دو را جدا نشان می‌دهد تا عدد فتوشاپ یا فیگما را با آن مقایسه کنید؛ برای CSS همیشه HSL یا HEX را بردارید.
چطور در ترمینال لینوکس متن را با رنگ RGB دلخواه چاپ کنم؟
اگر ترمینال رنگ ۲۴ بیتی را پشتیبانی کند، از دنبالهٔ escape با الگوی 38;2;R;G;B استفاده کنید و مقادیر R‏، G و B را از همین ابزار بردارید. خروجی echo $COLORTERM اگر truecolor باشد، پشتیبانی وجود دارد.
آیا بعد از تغییر رنگ برند در CSS باید کش CDN را پاک کرد؟
اگر فایل CSS از طریق CDN کش شده و نام یا نسخهٔ آن تغییر نکرده، بله. کش را از پنل پاک کنید یا به نام فایل نسخه اضافه کنید تا بازدیدکننده‌ها رنگ جدید را ببینند.

پاسخ پرسش خود را پیدا نکردید؟ با پشتیبانی در تماس باشید.

سرور ابری

سرور ابری ایران‌کلاد در کمتر از ۶۰ ثانیه آماده می‌شود؛ با دیسک NVMe SSD، پورت اختصاصی ۱۰ گیگابیت و صورت‌حساب ساعتی تومانی، از ۱٬۱۰۰ تومان در ساعت.