Mastering SVG
Ace web animations, visualizations, and vector graphics with HTML, CSS, and JavaScript
Rob Larsen
- 312 pages
- English
- ePUB (mobile friendly)
- Available on iOS & Android
Mastering SVG
Ace web animations, visualizations, and vector graphics with HTML, CSS, and JavaScript
Rob Larsen
About This Book
Take the plunge and develop cross-browser-compatible and responsive web designs with SVG
Key Features
- Master the art of custom animations and visualizations with SVG, CSS, and JavaScript
- Combine SVG with third-party libraries and frameworks such as React, JQuery, D3, and Snap.svg for GUI-rich apps
- Create an awesome user experience with high-performance graphics for your web applications
Book Description
SVG is the most powerful image format in use on the web. In addition to producing resolution-independent images for today's multi-device world, SVG allows you to create animations and visualizations to add to your sites and applications. The simplicity of cross-platform markup, mixed with familiar modern web languages, such as CSS and JavaScript, creates a winning combination for designers and developers alike.
In this book, you will learn how to author an SVG document using common SVG features, such as elements and attributes, and serve SVG on the web using simple configuration tips for common web servers. You will also use SVG elements and images in HTML documents.
Further, you will use SVG images for a variety of common tasks, such as manipulating SVG elements, adding animations using CSS, mastering the basic JavaScript SVG (API) using Document Object Model (DOM) methods, and interfacing SVG with common libraries and frameworks, such as React, jQuery, and Angular.
You will then build an understanding of the Snap.svg and SVG.js APIs, along with the basics of D3, and take a look at how to implement interesting visualizations using the library. By the end of the book, you will have mastered creating animations with SVG.
What you will learn
- Deliver the elements that make up an SVG image
- Replace your old CSS sprites with SVG
- Understand animation and data visualization with SVG are explained in pure JavaScript and using common libraries
- Use SVG to scale images across multiple devices easily
- Harness the power of CSS animations and transformations to manipulate your SVG images in a replicable, remixable way
- Interface SVG with common libraries and frameworks, such as jQuery, React, and Angular
Who this book is for
This book is for web developers and designers looking to add animation to their projects. Some experience with HTML, CSS, and JavaScript is required.
Frequently asked questions
Information
Working with SVG and CSS
- Using CSS background images
- How to optimize data URIs for SVG
- SVG sprites versus icon fonts
- How the different ways of embedding SVG interact with CSS
- Using common CSS properties to manipulate SVG
- Using SVG-specific CSS properties to manipulate SVG
- Basic CSS animations and transitions with SVG
CSS background images
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Mastering SVG- CSS Background Images</title>
<style type="text/css">
.logo{
width: 229px;
height: 196px;
background: url(icon.svg);
background-repeat: no-repeat;
background-size: 229px 196px;
}
</style>
</head>
<body>
<div class="logo">
</div>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Mastering SVG- Relative Background Images </title>
<link href="https://fonts.googleapis.com/css?
family=Raleway:600" rel="stylesheet">
<style type="text/css">
.logo{
width: 14.3rem;
height: 14.3rem;
background: url(icon.svg);
background-repeat: no-repeat;
background-size: contain;
background-position-y: 2.5rem;
}
h1 {
font-family: Raleway, sans-serif;
font-size: 2rem;
}
</style>
</head>
<body>
<div class="logo">
<h1>Rob Larsen</h1>
</div>
</body>
</html>
Data URLs for SVG background images
- Use single quotes for attribute values
- URL-encode any non-safe characters (<, >, #, and so on)
- Double quote the data URL
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Mastering SVG- CSS Background Images with Data
URLs</title>
<style type="text/css">
.logo{
width: 229px;
height: 196px;
background: url("data:image/svg+xml,%3Csvg
xmlns='http://www.w3.org/2000/svg' height='392' width='458'%3E%3Cg stroke='%23000' stroke-width='14.17'%3E%3Cpath d='M96.42 60.2s14 141.5-58 289l145.5-18.4 55.4-276.7z' fill='%23000012'/%3E%3Cpath d='M145.42 188l108.5 171.6 189.2 24.4-123.4-196z' fill='%23000012'/%3E%3Cpath d='M70.12 43.7s14 141.5-58 289l145.5-18.4 55.4-276.7z' fill='%23e9c21b'/%3E%3Cpath d='M59.02 23.6l116.2 237.2c-.1 0 411.3-239.1-116.2-237.2z' fill='%23000012'/%3E%3Cpath d='M119.12 171.6l108.5 171.6 189.2 24.4-123.4-196z' fill='%233fc4eb'/%3E%3Cpath d='M32.62 7.1l116.2 237.2S560.22 5.2 32.62 7.1z' fill='%2359ea39'/%3E%3C/g%3E%3C/svg%3E");
background-repeat: no-repeat;
background-size: 229px 196px;
}
</style>
</head>
<body>
<div class="logo">
</div>
</body>
</html>