تولید گرادینت با CSS
بدون درگیری با کد نویسی، گرادینتهای جذاب و حرفهای، ساده و متحرک، و بسیار کاربردی تولید کن!
پانداگراف
این یک باکس متنی است که گرادینت روی پسزمینه آن نشسته؛ متن خوانا و کنتراست حفظ میشود.
پسزمینه صفحه
تصور کن این بخش، هدر یا کاور صفحه اصلی سایت توست.
المان سفارشی: <div class="pg-gradient-box"></div>
گرادینت چیست و چطور از این ابزار استفاده کنم؟
گرادینت (Gradient) یا گرادیان، گذار تدریجی بین دو یا چند رنگ است. مرورگرها بدون تصویر و فقط با CSS آن را میسازند؛ یعنی سبک، بینهایت شارپ در هر رزولوشن و کاملاً قابل انیمیت. این ابزار به تو اجازه میدهد گرادینت خطی، شعاعی و مخروطی بسازی، رنگها و موقعیتشان را دقیق تنظیم کنی، انیمیشن اضافه کنی، یک گرادینت جداگانه برای حالت هاور تعریف کنی و در نهایت یک تکه CSS تمیز برای المان سفارشی خودت کپی کنی.
مراحل استفاده
- نوع گرادینت را انتخاب کن: خطی، شعاعی یا مخروطی.
- اگر نوع خطی یا مخروطی است، زاویه را با اسلایدر تنظیم کن (۰ درجه رو به بالا، ۹۰ درجه رو به راست).
- روی مربع رنگ هر ردیف بزن و رنگ را تغییر بده؛ با اسلایدر کنارش موقعیت رنگ (color stop) را جابهجا کن.
- با دکمه «افزودن رنگ» تا ۶ رنگ اضافه کن. موقعیتها بهصورت خودکار بین رنگها پخش میشوند.
- اگر گرادینت متحرک میخواهی، کلید «گرادینت متحرک» را روشن کن و مدت انیمیشن را تعیین کن.
- برای تغییر رنگ هنگام عبور ماوس، کلید «گرادینت هاور» را روشن کن و رنگهای حالت هاور را تنظیم کن. کد خروجی بهصورت خودکار قاعده
:hoverرا اضافه میکند. - پیشنمایش را در سه حالت دکمه، باکس متن و پسزمینه صفحه ببین.
- دکمه «کپی کد» را بزن و CSS را در سایتت قرار بده.
جدول خواص CSS
| ویژگی | توضیح | نمونه |
|---|---|---|
linear-gradient() | گرادینت خطی در جهت یک زاویه | linear-gradient(135deg, #ff6b6b, #4ecdc4) |
radial-gradient() | گرادینت شعاعی از یک مرکز | radial-gradient(circle at 50% 50%, #ff6b6b, #4ecdc4) |
conic-gradient() | گرادینت مخروطی حول یک نقطه | conic-gradient(from 90deg, #ff6b6b, #4ecdc4) |
deg | واحد زاویه؛ ۰ رو به بالا، ۹۰ رو به راست | 45deg |
| color stop | ترکیب رنگ و موقعیت درصدی | #ff6b6b 0% |
background-size | بزرگکردن تصویر پسزمینه برای حرکت دادن | 300% 300% |
background-position | جابهجایی پسزمینه؛ قلب انیمیشن گرادینت | 100% 50% |
animation | اتصال کیفریم به المان | pg-gradient-move 6s ease-in-out infinite |
@keyframes | تعریف مراحل انیمیشن | @keyframes pg-gradient-move { … } |
:hover | حالت عبور ماوس روی المان | .pg-gradient-box:hover { background-image: … } |
background-clip | اعمال گرادینت روی خودِ متن | -webkit-background-clip: text; color: transparent; |
راهنمای استفاده در المنتور
- در صفحهساز المنتور، یک ویجت HTML را داخل ستون یا کانتینر موردنظر بکش و کد این ابزار را داخلش پیست کن.
- از ابزار، کد CSS را بساز و با دکمه «کپی کد» بردار.
- روی المان هدف (کانتینر، دکمه، باکس) کلیک کن و در تب Advanced → CSS Classes کلاس
pg-gradient-boxرا وارد کن. - برای اعمال CSS: اگر المنتور پرو داری از Advanced → Custom CSS همان المان استفاده کن؛ در غیر این صورت از نمایش → سفارشیسازی → CSS اضافی یا افزونهای مثل Code Snippets استفاده کن.
- اگر گرادینت متحرک است، حتماً بلوک
@keyframesرا هم همراه CSS کپی کن؛ بدون آن انیمیشن اجرا نمیشود. - برای حالت هاور، قاعده
.pg-gradient-box:hoverرا هم کپی کن. اگر میخواهی تغییر رنگ نرمتر شود، از یک لایه شبهالمان (::before) باopacityاستفاده کن.
سؤالات متداول
چرا گرادینت متحرک در سایت من حرکت نمیکند؟
سه دلیل رایج: ۱) بلوک @keyframes کپی نشده یا نامش با نامی که در animation نوشته شده یکی نیست. ۲) افزونههای بهینهسازی CSS (مثل LiteSpeed یا WP Rocket) کیفریمهای «استفادهنشده» را حذف میکنند؛ کیفریم را در همان فایل CSS قرار بده و کش را پاک کن. ۳) المان background-size نگرفته، پس فضایی برای جابهجایی وجود ندارد.
تغییر رنگ در حالت هاور با پرش انجام میشود؛ چطور نرمش کنم؟
خودِ background-image در مرورگرها بهصورت نرم transition نمیشود (مقدارش قابل درونیابی نیست). برای گذار نرم، دو راه داری: ۱) بهجای عوضکردن background-image، از یک شبهالمان (::before) با گرادینت دوم و opacity: 0 استفاده کن و در :hover مقدار opacity: 1 بده و روی opacity ترنزیشن بگذار. ۲) از دو لایه گرادینت روی هم استفاده کن و background-position یا opacity لایه بالایی را تغییر بده.
چطور گرادینت را روی خودِ متن اعمال کنم؟
روی همان المان متنی این سه خط را بگذار: background-image: linear-gradient(...)، سپس -webkit-background-clip: text و background-clip: text و در آخر color: transparent. اگر مرورگر پشتیبانی نکند، متن نامرئی میشود؛ به همین دلیل بهتر است یک color جایگزین هم با @supports تعریف کنی.
چرا در گرادینت مخروطی بین رنگ اول و آخر یک خط تیز دیده میشود؟
گرادینت مخروطی یک دور کامل ۳۶۰ درجه است و انتهای آن دقیقاً به ابتدایش میرسد. اگر رنگ آخر با رنگ اول یکی نباشد، یک لبه ایجاد میشود. این ابزار بهصورت خودکار رنگ اول را در ۱۰۰٪ تکرار میکند تا اتصال نرم شود؛ اگر خودت کد را دستی مینویسی همین کار را بکن.
گرادینت را روی دکمه المنتور چطور اعمال کنم؟
بهترین راه این است که روی ویجت دکمه یک کلاس مثل pg-gradient-box بدهی و CSS را در Custom CSS همان ویجت بگذاری. اگر با تنظیمات خودِ ویجت دکمه درگیر شد، از background-image: … !important; استفاده کن. برای حالت hover هم قاعده .pg-gradient-box:hover را جداگانه اضافه کن. توجه کن که تغییر گرادینت در حالت هاور با پرش انجام میشود؛ اگر گذار نرم میخواهی از تکنیک شبهالمان + opacity استفاده کن.