بیایید آن افکت متن شیب متحرک را با ویژگی های سفارشی محدوده و پس زمینه کلیپ بسازیم
به CodePen بروید و یک قلم جدید بسازید.
نشانه گذاری برای متن خود ایجاد کنید. بیایید از یک هدر با کلمه "Speedy" استفاده کنیم:
<h1 class="boujee-text">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
اعمال کنید و آن را 90 درجه بچرخانید:
.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
و گرادیان مورد استفاده در background-image
را آزمایش کنید. یا، می توانید آن گرادیان را در متن خود متحرک کنید. ابتدا یک فریم کلیدی برای انیمیشن تعریف کنید. با این کار از ویژگی سفارشی --bg-size
که قبلاً تعریف کرده اید استفاده می شود. یک مثال خوب از ویژگیهای سفارشی محدودهای که تعمیر و نگهداری را برای شما آسانتر میکند.
@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;
}
}
}
انجام شد! 🎉 شما با استفاده از ویژگیهای سفارشی محدودهدار و background-clip
مقداری متن گرادیان متحرک با CSS ایجاد کردهاید.
در اینجا این نکته در فرم ویدیویی سریع آن است! ⚡️
این را به صورت توییت ترجیح می دهید؟ 🐦
عالی بمان! ʕ •ᴥ•ʔ
تصویر قهرمان توسط ولادیسلاو کلاپین در Unsplash