بیایید آن جلوه متن گرادیان متحرک را با ویژگیهای سفارشی scoped و background-clip بسازیم.
به CodePen بروید و یک قلم جدید ایجاد کنید.
برای متن خود نشانهگذاری ایجاد کنید. بیایید از یک هدر با کلمه "Speedy" استفاده کنیم:
<h1 class="boujee->text&q<uot>;Hello!/h1
سپس، بیایید به body خود یک background-color تیرهتر بدهیم:
body {
display: grid;
place-items: center;
min-height: 100vh;
background: hsl(0 0% 20%);
}
font-size متن را افزایش دهید. برای واکنشگرا کردن آن clamp استفاده کنید:
.boujee-text {
font-size: clamp(3rem, 25vmin, 8rem);
}
دو ویژگی سفارشی برای رنگهایی که قرار است استفاده کنیم ایجاد کنید. با استفاده از این رنگها، یک linear-gradient به background اعمال کنید و آن را ۹۰ درجه بچرخانید:
.boujee-text {
--color-one: hsl(15 90% 55%);
--color-two: hsl(40 95% 55%);
font-size: clamp(3rem, 25vmin, 8rem);
background: linear-gradient(
90deg,
var(--color-one),
var(--color-two),
var(--color-one)
) 0 0 / 100% 100%;
}
یک ویژگی سفارشی ایجاد کنید که بتوانید برای اندازه پسزمینه افقی از آن استفاده کنید. از آن برای background-size-x استفاده کنید:
.boujee-text {
--bg-size: 400%;
--color-one: hsl(15 90% 55%);
--color-two: hsl(40 95% 55%);
font-size: clamp(3rem, 25vmin, 8rem);
background: linear-gradient(
90deg,
var(--color-one),
var(--color-two),
var(--color-one)
) 0 0 / var(--bg-size) 100%;
}
برای چسباندن پسزمینه به متن، color را روی transparent تنظیم کنید و background-clip: text تنظیم کنید:
.boujee-text {
--bg-size: 400%;
--color-one: hsl(15 90% 55%);
--color-two: hsl(40 95% 55%);
font-size: clamp(3rem, 25vmin, 8rem);
background: linear-gradient(
90deg,
var(--color-one),
var(--color-two),
var(--color-one)
) 0 0 / var(--bg-size) 100%;
color: transparent;
-webkit-background-clip: text;
background-clip: text;
}
در این مرحله، میتوانید آن را همانجا رها کنید و با background-position و gradient استفاده شده در background-image آزمایش کنید. یا میتوانید آن gradient را در سراسر متن خود متحرک کنید. ابتدا، یک keyframe برای انیمیشن تعریف کنید. این از ویژگی سفارشی --bg-size که قبلاً تعریف کردید استفاده میکند. مثال خوبی از ویژگیهای سفارشی scoped که نگهداری را برای شما آسانتر میکند.
@keyframes move-bg {
to {
background-position: var(--bg-size) 0;
}
}
سپس با استفاده از animation انیمیشن را اعمال کنید:
.boujee-text {
--bg-size: 400%;
--color-one: hsl(15 90% 55%);
--color-two: hsl(40 95% 55%);
font-size: clamp(3rem, 25vmin, 8rem);
background: linear-gradient(
90deg,
var(--color-one),
var(--color-two),
var(--color-one)
) 0 0 / var(--bg-size) 100%;
color: transparent;
background-clip: text;
-webkit-background-clip: text;
animation: move-bg 8s infinite linear;
}
برای پیشرفت بیشتر در این زمینه، میتوانید کد انیمیشن خود را در یک کوئری رسانهای قرار دهید تا به ترجیحات کاربر برای حرکت احترام بگذارید:
@media (prefers-reduced-motion: no-preference) {
.boujee-text {
animation: move-bg 8s linear infinite;
}
@keyframes move-bg {
to {
background-position: var(--bg-size) 0;
}
}
}
تمام شد! 🎉 شما با استفاده از ویژگیهای سفارشی scoped و background-clip یک متن گرادیان متحرک با CSS ایجاد کردهاید.
این نکته را در قالب یک ویدیوی سریع ببینید! ⚡️
اینو به صورت توییت ترجیح میدی؟ 🐦
عالی بمان!