udemere

Transitions

CSS transitions

SU

CSS Transitions

CSS Transitions elementlarning uslubi (style) o‘zgarishini yumshoq animatsiya bilan ko‘rsatishga yordam beradi. Ya’ni bir holatdan boshqasiga sakrab o‘tmasdan, asta-sekin o‘zgarish amalga oshadi.


Asosiy Sintaksis

selector {
  transition: property duration timing-function delay;
}
  • property → qaysi CSS xossasi animatsiya qilinadi (color, transform, opacity ...).
  • duration → davomiylik (masalan, 0.5s, 200ms).
  • timing-function → animatsiya tezligi (masalan, ease, linear, ease-in, ease-out, ease-in-out, cubic-bezier).
  • delay → animatsiya boshlanishidan oldingi kechikish.

1. Oddiy Misol

.box {
  width: 100px;
  height: 100px;
  background: blue;
  transition: background 0.5s ease;
}
 
.box:hover {
  background: red;
}

Hover qilinganda fon rangi asta-sekin ko‘kdan qizilga o‘tadi.


2. Bir nechta property

Bir vaqtning o‘zida bir nechta xossani transition qilish mumkin.

.card {
  width: 200px;
  height: 150px;
  background: lightgray;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
 
.card:hover {
  transform: scale(1.05);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}

3. Transition Shorthand

/* To‘liq yozilishi */
.box {
  transition-property: background;
  transition-duration: 0.5s;
  transition-timing-function: ease-in-out;
  transition-delay: 0.2s;
}
 
/* Shorthand */
.box {
  transition: background 0.5s ease-in-out 0.2s;
}

4. Timing Functions

.ease       { transition-timing-function: ease; }
.linear     { transition-timing-function: linear; }
.ease-in    { transition-timing-function: ease-in; }
.ease-out   { transition-timing-function: ease-out; }
.ease-in-out{ transition-timing-function: ease-in-out; }
 
/* Custom cubic-bezier */
.custom     { transition-timing-function: cubic-bezier(0.68, -0.55, 0.27, 1.55); }

cubic-bezier bilan o‘z animatsiya egri chizig‘ingizni yaratishingiz mumkin.


5. All property

button {
  transition: all 0.3s ease;
}
 
button:hover {
  background: green;
  color: white;
  transform: scale(1.1);
}

Ehtiyot bo‘ling! all ishlatish ba’zan performance muammolar keltirishi mumkin. Faqat kerakli propertylarni yozish yaxshiroq.


6. Delay bilan misol

.alert {
  opacity: 0;
  transition: opacity 0.5s ease 1s; /* 1 soniya kechikish */
}
 
.alert.show {
  opacity: 1;
}

.show qo‘shilganda alert asta-sekin chiqadi, lekin faqat 1s kutib bo‘lgach.


7. Amaliy Hover Misoli

<button class="btn">Hover qiling</button>
.btn {
  padding: 10px 20px;
  border: none;
  background: #007bff;
  color: white;
  font-size: 16px;
  cursor: pointer;
  transition: background 0.3s ease, transform 0.2s ease;
}
 
.btn:hover {
  background: #0056b3;
  transform: translateY(-3px);
}

Keng Tarqalgan Xatolar

  1. Juda ko‘p property’ga transition: all; yozish.
  2. transition ni faqat hover’da yozib qo‘yish → ishlamaydi, asosiy state’da yozish kerak.
  3. Juda uzun yoki juda qisqa davomiylik → UX buziladi.

Amaliy Maslahatlar

  • Har doim transition asosiy selector’da yozilsin.
  • Faqat kerakli property’larni transition qiling.
  • UX uchun 0.2s – 0.5s oralig‘i eng optimal.
  • cubic-bezier bilan unique effektlar yarating.

Yakuniy Maslahat

Transitions – oddiy CSS bilan smooth UI effektlar yaratishning eng yaxshi yo‘li.

⚡ "Qattiq sakrash o‘rniga, foydalanuvchini yumshoq o‘tishlar bilan olib boring." 🚀

Last updated on

On this page

Xato haqida xabar berish