Kiritiş · compound

Rasm kesiş

Avatar yoki muqova uçun rasmni kesiş: rasm ramka içida suriladi (siçqonça, barmoq, strelkalar) va kattalaştiriladi (slider, ğildirak, ikki barmoq, + −). Rasm ramkani doim töliq qoplaydi. Doira (avatar) yoki nisbat (1, 4/3, 3/4, 16/9); natija — canvas'dan JPEG Blob va kesiş törtburçagi.

beta0.28.0 dan.fx-imagecropCSS + JS

Suring yoki strelkalar bilan joylang; + va − — kattalaştiriş, 0 — boşlanğiç holat.

Variantlar

AtributQiymatlarStandart
data-shaperect
circle Avatar — doira ramka (natija kvadrat)
rect
data-aspect1
4/3
3/4
16/9
1

Anatomiya

  1. root.fx-imagecropşart
  2. stage.fx-imagecrop__stageşart
  3. img.fx-imagecrop__imgşart
  4. frame.fx-imagecrop__frameşart
  5. help.fx-imagecrop__helpixtiyoriy
  6. controls.fx-imagecrop__controlsixtiyoriy
  7. btn.fx-imagecrop__btnixtiyoriy
  8. actions.fx-imagecrop__actionsixtiyoriy
  9. file.fx-imagecrop__fileixtiyoriy
  10. result.fx-imagecrop__resultixtiyoriy

Holatlar

draggingfocus

Klaviatura va kiriş

TugmaAmal
← → ↑ ↓Rasmni suradi (Shift — katta qadam)
+ / −Kattalaştiradi / kiçraytiradi
0Boşlanğiç holat
TabSlider va tugmalarga

Maydon tabindex=0, role=group, aria-roledescription «rasm kesiş maydoni» va yordam matni aria-describedby bilan. Strelkalar suradi (Shift — katta qadam), + − kattalaştiradi, 0 — boşlanğiç. Kattalaştiriş slider'i aria-valuetext «150 %». Natija aria-live bilan aytiladi.

Naqş: WAI-ARIA APG slider · rol group

Kod

AI uçun: qaçon işlatiladi
Işlating
  • Profil rasmi (doira), kurs/mahsulot muqovasi (16/9, 4/3) yuklaşda.
  • Rasm aniq nisbatda bölişi şart bölgan joy (kartoçka, banner).
Işlatmang
  • Rasmni faqat yuklaş, kesmasdan → dropzone
  • Rasmni kattalaştirib köriş → lightbox
  • Rasmni ramkadan çiqib böş joy qoldiradigan qilib surişga ruxsat bermang — xulq çegaralaydi.
  • Kesişni faqat siçqonça bilan qilmang — strelkalar va + − ham işlaydi, yordam matni bilan.
  • Boşqa domendagi (CORS'siz) rasmni kesmang — canvas ifloslanadi; avval yuklab, blob'dan oçing.
npx foxui add imagecrop
<div class="fx-imagecrop" data-fx-imagecrop data-shape="circle" data-output="400">
  <div class="fx-imagecrop__stage" tabindex="0" role="group" aria-roledescription="rasm kesiş maydoni" aria-label="Profil rasmi" aria-describedby="ic-h">
    <img class="fx-imagecrop__img" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='800' viewBox='0 0 1200 800'%3E%3Cdefs%3E%3ClinearGradient id='s' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='lightsteelblue'/%3E%3Cstop offset='1' stop-color='lavender'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='1200' height='800' fill='url%28%23s%29'/%3E%3Ccircle cx='930' cy='190' r='90' fill='gold'/%3E%3Cpath d='M0 560 Q300 420 600 540 T1200 500 V800 H0z' fill='darkseagreen'/%3E%3Cpath d='M0 650 Q400 560 800 660 T1200 640 V800 H0z' fill='seagreen'/%3E%3Ccircle cx='560' cy='380' r='95' fill='peru'/%3E%3Cpath d='M410 800 Q420 520 560 500 Q700 520 710 800z' fill='steelblue'/%3E%3C/svg%3E" alt="">
    <div class="fx-imagecrop__frame" aria-hidden="true"></div>
  </div>
  <p class="fx-imagecrop__help" id="ic-h">Suring yoki strelkalar bilan joylang; + va − — kattalaştiriş, 0 — boşlanğiç holat.</p>
  <div class="fx-imagecrop__controls">
    <button class="fx-imagecrop__btn" type="button" data-crop="out" aria-label="Kiçraytiriş">−</button>
    <input class="fx-slider" type="range" value="1" aria-label="Kattalaştiriş" data-fx-slider>
    <button class="fx-imagecrop__btn" type="button" data-crop="in" aria-label="Kattalaştiriş">+</button>
    <button class="fx-imagecrop__btn" type="button" data-crop="reset" aria-label="Boşlanğiç holat"><svg viewBox="0 0 20 20" aria-hidden="true"><path d="M4 10a6 6 0 1 0 2-4.5M4 3v3h3" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/></svg></button>
  </div>
  <div class="fx-imagecrop__actions">
    <label class="fx-btn fx-imagecrop__file" data-variant="ghost">Boşqa rasm<input type="file" accept="image/*"></label>
    <button class="fx-btn" type="button" data-variant="primary" data-crop="apply">Saqlaş</button>
  </div>
  <div class="fx-imagecrop__result" hidden aria-live="polite"><img alt="Kesilgan profil rasmi">Yangi rasm tayyor</div>
</div>
<div class="fx-imagecrop" data-fx-imagecrop data-aspect="16/9" data-output="1280">
  <div class="fx-imagecrop__stage" tabindex="0" role="group" aria-roledescription="rasm kesiş maydoni" aria-label="Kurs muqovasi"><img class="fx-imagecrop__img" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='800' viewBox='0 0 1200 800'%3E%3Cdefs%3E%3ClinearGradient id='s' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='lightsteelblue'/%3E%3Cstop offset='1' stop-color='lavender'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='1200' height='800' fill='url%28%23s%29'/%3E%3Ccircle cx='930' cy='190' r='90' fill='gold'/%3E%3Cpath d='M0 560 Q300 420 600 540 T1200 500 V800 H0z' fill='darkseagreen'/%3E%3Cpath d='M0 650 Q400 560 800 660 T1200 640 V800 H0z' fill='seagreen'/%3E%3Ccircle cx='560' cy='380' r='95' fill='peru'/%3E%3Cpath d='M410 800 Q420 520 560 500 Q700 520 710 800z' fill='steelblue'/%3E%3C/svg%3E" alt=""><div class="fx-imagecrop__frame" aria-hidden="true"></div></div>
  <div class="fx-imagecrop__controls"><button class="fx-imagecrop__btn" type="button" data-crop="out" aria-label="Kiçraytiriş">−</button><input class="fx-slider" type="range" value="1" aria-label="Kattalaştiriş" data-fx-slider><button class="fx-imagecrop__btn" type="button" data-crop="in" aria-label="Kattalaştiriş">+</button></div>
</div>

Tokenlar: --fx-bg-muted --fx-bg-overlay --fx-bg-static-light --fx-border-color-focus --fx-border-width-default --fx-border-width-focus --fx-control-h-sm --fx-ease-standard --fx-font-size-lg --fx-font-size-sm --fx-font-size-xs --fx-motion-fast --fx-motion-instant --fx-motion-press --fx-radius-circle --fx-radius-control --fx-radius-surface --fx-size-avatar-lg --fx-size-icon-sm --fx-space-12 --fx-space-2 --fx-space-3 --fx-space-4 --fx-space-6 --fx-text-disabled --fx-text-primary --fx-text-secondary --fx-text-tertiary

Şu toifadan

Libosni sozlangButun sayt şu zahoti kiyinadi

Libos

Premium liboslar — obunada: bepul 3 ta ustiga yana 13 ta. Bu yerda hammasini sinab körasiz. Narxlar

Brendlar ilhomida · 11

Faqat uslub ilhomi; belgilar — Simple Icons (CC0) va logobank.uz (Uzum), savdo belgilari egalariga tegişli.

Rejim
Qölda sozlaş — dasturçilar uçun

Rang

Şakl va çegara

Şrift juftligi

Qölda tanlaş

Qulaylik

Harakat
Ziçlik
Material (tajriba)