একটি transition শুধু দুটি state-এর মধ্যে animate করে — A থেকে B। @keyframes দিয়ে বানানো একটি CSS animation, বেশ কয়েকটি step-এর মধ্য দিয়ে যেতে পারে, repeat করতে পারে, আর trigger করতে একটি hover বা click ছাড়াই স্বয়ংক্রিয়ভাবে চলতে পারে।
@keyframes 0% (শুরু) থেকে 100% (শেষ) পর্যন্ত step-এর একটি ধারা নাম দেয়।
@keyframes slide-in {
0% {
opacity: 0;
transform: translateX(-50px);
}
100% {
opacity: 1;
transform: translateX(0);
}
}.card {
animation-name: slide-in;
animation-duration: 0.5s;
}| প্রপার্টি | নিয়ন্ত্রণ করে |
|---|---|
| animation-name | কোন @keyframes rule চলবে |
| animation-duration | একটি cycle কতক্ষণ সময় নেয় |
| animation-timing-function | গতির curve, transition-এর মতোই মান |
| animation-delay | শুরু করার আগে কতক্ষণ অপেক্ষা করবে |
| animation-iteration-count | কতবার repeat হবে — একটি সংখ্যা, বা "infinite" |
| animation-direction | normal, reverse, alternate (সামনে-পেছনে) |
| animation-fill-mode | চলার আগে/পরে এলিমেন্ট প্রথম/শেষ keyframe-এর style রাখবে কিনা |
.spinner {
animation: spin 1s linear infinite;
/* name, duration, timing-function, iteration-count */
}
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}0% আর 100%-এর মধ্যে যেকোনো percentage একটি step define করতে পারে।
@keyframes pulse {
0% { transform: scale(1); }
50% { transform: scale(1.1); }
100% { transform: scale(1); }
}
.badge {
animation: pulse 2s ease-in-out infinite;
}Interactively practice করুন
এই সাইটের Animation tool (Tools-এর নিচে) একটি visual keyframe/easing editor দেয় আর এখানে দেখানো ঠিক CSS output করে — মান আন্দাজ করার চেয়ে timing curve preview করার দ্রুত উপায়।