Opacity shaffoflik
...
Opacity (Shaffoflik)
Udemere UI’da elementlarning shaffoflik darajasini boshqarish uchun opacity
xususiyati qo‘llanadi. Bu hujjat: tez ko‘rsatma, amaliy misollar, eng yaxshi amaliyotlar va keng tarqalgan xatolar bilan.
Tez ko‘rsatma (Quick Reference)
- Qiymat diapazoni:
0
(butunlay ko‘rinmas) →1
(to‘liq ko‘rinadigan). Masalan:opacity: 0.6;
- Meros: Yo‘q, lekin vizual ta’sir bolalar (child) elementlarga ham qo‘llanadi (butun blok xiralashadi).
- Farqi:
opacity
butun elementga ta’sir qiladi;rgba()/hsla()/#RRGGBBAA
esa faqat rangga alfa qo‘llaydi. - Animatsiya: CSS transition/animation bilan silliq o‘tishlar uchun juda qulay.
Sintaksis
Misollar:
Eslatma: opacity: 0
elementni faqat ko‘rinmas qiladi. Element haligacha klik oladi (pointer-events yoq bo‘lsa). Agar interaktivlikni o‘chirmoqchi bo‘lsangiz pointer-events: none;
dan foydalaning.
HTML/CSS Oddiy Misollar
1) Hover’da xiralashtirish
2) Rasmni xiralashtirish va ustiga matn
3) Faqat fonni shaffof qilish (bolalarni xiralashtirmasdan)
RGBA/HSLA va opacity
farqi
Holat | Tavsiya |
---|---|
Butun karta, soyalar, ichki kontent birga xiralashsin | opacity |
Faqat fon / border rangini shaffof qilmoqchi | rgba()/hsla()/#AARRGGBB |
Matn ko‘rinishi aniq bo‘lsin, fon xira | background: rgba(..., a) yoki pseudo-element overlay |
Overlay usuli (bolalarni xiralashtirmasdan fonni xiralashtirish):
Tailwind CSS (Udemere Frontend uchun)
- Element shaffofligi:
opacity-0
…opacity-100
- Hover bilan:
hover:opacity-60
- Transition:
transition-opacity duration-200
- Faqat rang alfa:
bg-black/10
,text-white/80
,border-zinc-900/20
Misol:
Faqat fonni xiralashtirish (matn aniq):
React misollari
JavaScript orqali boshqarish
SVG-da shaffoflik
opacity
: butun SVG elementiga ta’sir.fill-opacity
/stroke-opacity
: faqat to‘ldirish yoki chiziqqa ta’sir.
Animatsiya (CSS)
Qo‘llanish ssenariylari
- Hover/active holatlarda vizual feedback
- Modallar, tooltiplar, toastlar uchun paydo bo‘lish/yo‘qolish animatsiyasi
- Background rasmlarni xiralashtirib ustiga matn qo‘yish
- Disabled holat ko‘rsatish (
opacity-50
,cursor-not-allowed
)
Keng tarqalgan xatolar
- Butun kontent xiralashib qolishi: Matn ham xiralashadi →
rgba()
yoki overlay pseudo-elementdan foydalaning. - Kliklanadigan lekin ko‘rinmas element:
opacity:0
bo‘lsa ham klik oladi → kerak bo‘lsapointer-events:none
yokivisibility:hidden
/display:none
. - Kontrast pasayishi: Juda past opacity o‘qish imkonini buzadi → AA/AAA kontrastni tekshiring.
- Stacking context:
opacity < 1
element yangi stacking context yaratishi mumkin → z-index muammolarini tekshiring.
Brauzer qo‘llab-quvvatlashi
opacity
barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi (Chrome, Firefox, Safari, Edge, mobil brauzerlar). Legacy IE8- uchun prefikslar kerak edi, ammo Udemere’da legacy qo‘llab-quvvatlash talab qilinmaydi.
Performance va UX tavsiyalari
opacity
GPU tomonidan tez-tez samarali kompozitlanadi → animatsiya uchun yaxshi.- Silliq animatsiya uchun:
will-change: opacity;
ni faqat dinamik elementlarda va ehtiyotkorlik bilan qo‘llang. - Modal/overlaylarda
opacity
+transform
kombinatsiyasi judayam silliq ishlaydi.
Misol (modal paydo bo‘lishi):
Qisqa retseptlar
- Disabled tugma:
class="opacity-50 cursor-not-allowed"
- Hover highlight:
class="transition-opacity hover:opacity-80"
- Faqat fon xira:
class="bg-black/10"
(matn xiralashmaydi) - Tooltip: boshlanishida
opacity-0 pointer-events-none
, ko‘ringandaopacity-100 pointer-events-auto
.
Test ro‘yxati (Checklist)
- Bolalar elementi xiralashib ketmasligi kerakmi? →
rgba()
yoki overlay. - Interaktivlik kerakmi? →
pointer-events
ni tekshiring. - Kontrast yetarlimi? → Past opacity matnni o‘qish qiyinlashtirmasin.
- Animatsiya silliqmi? →
transition
/will-change
.
Savol-Javob
Q: opacity:0
va display:none
farqi?
J: opacity:0
elementni ko‘rinmas qiladi, lekin layout va interaktivlik saqlanib qoladi. display:none
esa elementni layoutdan butunlay olib tashlaydi.
Q: Matnni xiralashtirmay fonni qanday xira qilaman?
J: rgba()
/hsla()
rang alfa kanali yoki ::before
overlay ishlating.
Q: Tailwind’da tez yozmoqchiman?
J: opacity-0/25/50/75/100
, hover:opacity-80
, bg-black/20
, text-white/80
.
Yakuniy maslahat
opacity
– kuchli, lekin ehtiyotkorlik bilan ishlating: o‘qish mumkinligi va interaktivlikni tekshirib boring. Ko‘p holatda rang alfa (rgba/hsla//NN
) usuli bilan kombinatsiya qilish eng to‘g‘ri yechim beradi.
Last updated on