HTML5 SVG: Scalable Vector Graphics
Learn HTML through interactive, bite-sized lessons. Build real websites and see your code come to life instantly.
Start HTML Journey →SVG (Scalable Vector Graphics) is a powerful feature introduced in HTML5 for creating and manipulating vector graphics directly within web pages. Unlike raster images, SVG graphics remain crisp and clear at any size, making them ideal for responsive design.
What is SVG?
SVG is an XML-based markup language for describing two-dimensional vector graphics. It allows for three types of graphic objects: vector graphic shapes, images, and text.
Basic SVG Syntax
To use SVG in HTML5, you can either embed it directly in your HTML or link to an external SVG file. Here's a simple example of an embedded SVG:
<svg width="100" height="100">
<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg>
This code creates a yellow circle with a green outline.
Common SVG Elements
<rect>: Rectangles<circle>: Circles<ellipse>: Ellipses<line>: Lines<polyline>: Connected lines<polygon>: Closed shapes<path>: Advanced paths<text>: Text elements
SVG Attributes
SVG elements use attributes to define properties such as size, position, color, and more. Some common attributes include:
widthandheight: Define the dimensions of the SVG canvasfill: Sets the fill color of shapesstroke: Sets the outline colorstroke-width: Defines the thickness of the outlinexandy: Set the position of elements
Advanced SVG Features
SVG supports advanced features like gradients, patterns, and animations. Here's an example of a linear gradient:
<svg width="200" height="100">
<defs>
<linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1" />
<stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1" />
</linearGradient>
</defs>
<rect width="200" height="100" fill="url(#grad1)" />
</svg>
SVG and Responsive Design
SVG graphics are inherently responsive. They can be scaled without loss of quality, making them perfect for HTML Responsive Web Design. To create a responsive SVG, omit the width and height attributes and use CSS to control the size.
Accessibility Considerations
When using SVG, it's important to consider accessibility. Use the title and desc elements within your SVG to provide text alternatives for screen readers. For complex graphics, consider using HTML and ARIA attributes to enhance accessibility.
Browser Support and Fallbacks
Modern browsers support SVG well, but for older browsers, it's wise to provide fallbacks. You can use the <picture> element or JavaScript to detect SVG support and serve alternative content if necessary.
Conclusion
HTML5 SVG offers a powerful way to create scalable, interactive graphics for the web. By mastering SVG, you can enhance your web pages with custom icons, illustrations, and data visualizations that look great on any device. For more advanced graphics, you might also want to explore HTML5 Canvas.