SVG — ikki o‘lchamli vector grafika, shakl, matn va animatsiyani XML asosida ifodalovchi format. To‘liq nomi Scalable Vector Graphics. SVG rasm pixel to‘plami emas, geometrik elementlar va style qoidalaridan tashkil topadi.
Vector bo‘lgani sabab SVG turli ekran o‘lchamida sifatni yo‘qotmasdan masshtablanadi. Icon, diagramma, logo, chart, map va illustrationlarda keng ishlatiladi.
SVG elementi
Inline SVG HTML ichida yozilishi mumkin:
<svg viewBox="0 0 100 100">
<circle cx="50" cy="50" r="40" />
</svg>
svg root viewport va koordinata tizimini belgilaydi.
Child elementlar shakllarni ifodalaydi.
ViewBox
viewBox to‘rtta qiymatga ega:
min-x min-y width height
Masalan:
0 0 100 100
Bu ichki koordinata tizimini beradi.
SVG elementining CSS o‘lchami o‘zgarsa viewBox contentni mos scale qiladi.
PreserveAspectRatio
Viewport va viewBox nisbatlari farq qilganda content qanday joylashishini boshqaradi.
Variantlar:
- contain’ga o‘xshash
meet; - cover’ga o‘xshash
slice; - alignment;
- nisbatni saqlamaslik.
Logo va responsive diagrammada muhim.
Asosiy shakllar
SVG elementlari:
rect;circle;ellipse;line;polyline;polygon;path;text;image.
Har biri atributlar bilan geometriyani belgilaydi.
Path
path eng moslashuvchan shakl elementidir.
d atributida commandlar yoziladi:
<path d="M10 10 L90 10 L50 90 Z" />
Commandlar move, line, curve, arc va close operationlarini ifodalaydi.
Absolute va relative variantlar mavjud.
Fill va stroke
Shakl ichki rangi:
fill
konturi:
stroke
bilan boshqariladi.
Qo‘shimcha style:
- stroke-width;
- linecap;
- linejoin;
- opacity;
- dash array.
CSS property sifatida ham ishlatilishi mumkin.
CSS
Inline SVG elementlari HTML DOMning bir qismi bo‘lib, class va CSS selector bilan style qilinadi.
Masalan:
.icon {
fill: currentColor;
}
currentColor iconni parent text rangiga moslashtiradi.
External image sifatida yuklangan SVG ichki elementlariga parent CSS bevosita kira olmasligi mumkin.
DOM
Har SVG shakl DOM elementidir.
- atributni o‘zgartiradi;
- event listener qo‘shadi;
- yangi element yaratadi;
- class almashtiradi;
- animation boshqaradi.
Ko‘p ming element DOM performance’iga ta’sir qilishi mumkin.
Gradient
SVG linear va radial gradientni defs ichida belgilaydi:
<defs>
<linearGradient id="g">
<stop offset="0%" stop-color="black" />
<stop offset="100%" stop-color="white" />
</linearGradient>
</defs>
Shakl fill="url(#g)" orqali foydalanadi.
Pattern va clip
pattern takroriy grafika bilan fill yaratadi.
clipPath shaklning ko‘rinadigan qismini cheklaydi.
mask alpha yoki luminance orqali yumshoq mask beradi.
Bu vector compositing imkoniyatlarini kengaytiradi.
Text
SVG text elementi koordinata bilan matn chizadi.
U DOM text bo‘lgani sabab select va ayrim accessibility imkoniyatlariga ega.
Font mavjudligi, text wrapping va layout HTMLdan farq qiladi.
Murakkab paragraph uchun HTML ko‘proq mos.
Symbol va use
Takroriy icon symbol ichida aniqlanib, use bilan chaqirilishi mumkin:
<use href="#icon-search" />
Bu sprite va reusable elementlar uchun qulay.
External reference security va browser policy’ga bog‘liq.
Animation
SVG animation:
- CSS transition;
- CSS keyframes;
- JavaScript;
- SMILga oid elementlar
orqali bajarilishi mumkin.
Transform animation ko‘pincha performance uchun qulay.
Motion preference hisobga olinadi.
Accessibility
Meaningful SVG:
- accessible name;
title;desc;- ARIA;
- focus;
- keyboard interaction
bilan ta’minlanishi mumkin.
Decorative icon screen readerdan yashiriladi.
Faqat rang orqali ma’no berilmaydi.
Inline va image
Inline:
<svg>...</svg>
External:
<img src="icon.svg" alt="...">
oddiy image sifatida ishlaydi.
External SVG ichidagi script va interaction embedding contextga qarab cheklanishi mumkin.
SVG file
SVG XML text fayl.
U oddiy editor bilan ochiladi, gzip bilan yaxshi siqiladi.
Metadata, comment va keraksiz editor ma’lumotlari optimizationda olib tashlanishi mumkin.
ViewBoxni noto‘g‘ri olib tashlash responsive behaviorni buzadi.
Security
Untrusted SVG faqat “rasm” emas.
U quyidagilarni saqlashi mumkin:
Upload qilingan SVG sanitize qilinadi yoki xavfsiz raster formatga qayta render qilinadi.
SVG va Canvas
SVG retained-mode: shakllar DOMda saqlanadi.
Canvas immediate-mode: pixel yuzasi yangilanadi.
SVG interactive icon va diagramma uchun, Canvas ko‘p obyektli real-time scene uchun qulay bo‘lishi mumkin.
Marker
Line va path boshiga yoki oxiriga arrow kabi marker qo‘shish mumkin. marker-start, marker-mid va marker-end diagramma hamda grafiklar uchun ishlatiladi. Marker viewBox va stroke bilan birga scale qilinishi mumkin.
Filter
SVG filter blur, color matrix, shadow va compositing effektlarini yaratadi. Murakkab filter katta yuzada rendering xarajatini oshiradi. Filter region noto‘g‘ri bo‘lsa shadow yoki blur kesilib qolishi mumkin.
Responsive SVG
width="100%" va to‘g‘ri viewBox SVGni containerga moslashtiradi. Fixed width va height olib tashlanganda aspect ratio saqlanishi tekshiriladi. Icon uchun stroke scale behaviori design talabiga bog‘liq.
Optimallashtirish
Editor yaratgan metadata, yashirin group va ortiqcha decimal qiymatlar fayl hajmini oshiradi. Optimizer visual natijani saqlab keraksiz qismlarni olib tashlaydi. ID va accessibility elementlari kerak bo‘lsa saqlanadi.
Bog‘liq tushunchalar
Scalable Vector Graphics, Vector graphics, XML, viewBox, Path, Fill, Stroke, CSS, DOM, Canvas, Accessibility