# battery-sparkle icon

Battery sparkle. Gentleface icon, drawn on the 16 px pixel grid. Free, MIT licensed. Page: https://gentleface.com/icons/battery-sparkle

- Category: Devices & hardware
- Use it for: adaptive battery, smart charging, optimized charging
- Example: Adaptive battery setting on a phone
- Built from: battery + sparkle
- Tags: charge, energy, power, level, empty, sparkle
- Family: battery, battery-alert, battery-arrow-right, battery-charging, battery-check, battery-clock, battery-full, battery-gear, battery-low, battery-medium, battery-off, battery-plus, battery-question, battery-saver, battery-swap
- Component name: BatterySparkleIcon
- Added: 2026-11-06
- Since: version 0.4.0
- npm: `import { BatterySparkleIcon } from '@gentleface/react';` (@gentleface/react 0.6.0)

## Files

Each icon is drawn on the 16 px grid, and most also on the 20 and 24 px grids (at 24 in three weights: light 1 px, regular 1.5 px, bold 2 px). Show the drawing made for your size, or an exact multiple of it, on whole pixels: 16 for 16 and 32 px, 20 for 20 and 40, 24 for 24 and 48. A size in between or a fractional position blurs it. The code on each icon page is the 16 px drawing, an SVG with fill="currentColor"; the icon page's downloads follow its Grid switch, and npm has the 20 and 24 px drawings too.

- line-round: https://gentleface.com/svg/line-round/16/battery-sparkle.svg · PNG https://gentleface.com/png/line-round/16/battery-sparkle.png · https://gentleface.com/png/line-round/32/battery-sparkle.png · https://gentleface.com/png/line-round/48/battery-sparkle.png
- line-soft: https://gentleface.com/svg/line-soft/16/battery-sparkle.svg · PNG https://gentleface.com/png/line-soft/16/battery-sparkle.png · https://gentleface.com/png/line-soft/32/battery-sparkle.png · https://gentleface.com/png/line-soft/48/battery-sparkle.png
- line-sharp: https://gentleface.com/svg/line-sharp/16/battery-sparkle.svg · PNG https://gentleface.com/png/line-sharp/16/battery-sparkle.png · https://gentleface.com/png/line-sharp/32/battery-sparkle.png · https://gentleface.com/png/line-sharp/48/battery-sparkle.png
- solid-round: https://gentleface.com/svg/solid-round/16/battery-sparkle.svg · PNG https://gentleface.com/png/solid-round/16/battery-sparkle.png · https://gentleface.com/png/solid-round/32/battery-sparkle.png · https://gentleface.com/png/solid-round/48/battery-sparkle.png
- solid-soft: https://gentleface.com/svg/solid-soft/16/battery-sparkle.svg · PNG https://gentleface.com/png/solid-soft/16/battery-sparkle.png · https://gentleface.com/png/solid-soft/32/battery-sparkle.png · https://gentleface.com/png/solid-soft/48/battery-sparkle.png
- solid-sharp: https://gentleface.com/svg/solid-sharp/16/battery-sparkle.svg · PNG https://gentleface.com/png/solid-sharp/16/battery-sparkle.png · https://gentleface.com/png/solid-sharp/32/battery-sparkle.png · https://gentleface.com/png/solid-sharp/48/battery-sparkle.png

The SVG of every style: https://gentleface.com/icons/battery-sparkle.json (`svg`).

## Animated

`battery-sparkle-limit`: The sparkle twinkles out. A charge level fills the battery from the left and stops at about two thirds with a small bounce, the smart limit, and the sparkle twinkles in. The level then drains away.

File: https://gentleface.com/motion/battery-sparkle-limit.svg (line-round, 16 px). Native SVG animation that loops by itself. To play it once, run 0.2 s to 2.3 s. Patterns: https://gentleface.com/animated-icons.md

```svg
<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.001" stroke-linecap="round" stroke-linejoin="round"><path d="M12.061 9.061C11.789 9.332 11.414 9.5 11 9.5L3 9.5C2.172 9.5 1.5 8.828 1.5 8L1.5 4C1.5 3.172 2.172 2.5 3 2.5L7 2.5L11 2.5C11.828 2.5 12.5 3.172 12.5 4L12.5 8C12.5 8.414 12.332 8.789 12.06 9.06" stroke-dasharray="26.042 35.392" stroke-dashoffset="-3.674"><animate attributeName="stroke-dasharray" dur="2.8s" repeatCount="indefinite" keyTimes="0;0.089;0.098;0.107;0.116;0.125;0.134;0.143;0.152;0.161;0.35;0.359;0.368;0.376;0.385;0.394;0.403;0.412;0.421;0.429;0.438;0.447;0.456;0.465;0.474;0.482;0.491;0.5;1" values="26.042 35.392;26.042 35.392;26.042 35.392;26.042 35.392;26.042 35.392;26.042 35.392;28.042 35.392;30.153 35.392;33.392 35.392;33.392 35.392;33.392 35.392;33.392 35.392;29.718 35.392;28.827 35.392;27.042 35.392;26.042 35.392;26.042 35.392;26.042 35.392;26.042 35.392;25.042 35.392;25.042 35.392;25.042 35.392;26.042 35.392;26.042 35.392;26.042 35.392;26.042 35.392;26.042 35.392;26.042 35.392;26.042 35.392"/><animate attributeName="stroke-dashoffset" dur="2.8s" repeatCount="indefinite" keyTimes="0;0.089;0.098;0.107;0.116;0.125;0.134;0.143;0.152;0.161;0.35;0.359;0.368;0.376;0.385;0.394;0.403;0.412;0.421;0.429;0.438;0.447;0.456;0.465;0.474;0.482;0.491;0.5;1" values="-3.674;-3.674;-3.674;-3.674;-3.674;-3.674;-2.674;-1.629;0;0;0;0;-3.674;-3.674;-3.674;-3.674;-3.674;-3.674;-3.674;-4.674;-4.674;-4.674;-3.674;-3.674;-3.674;-3.674;-3.674;-3.674;-3.674"/></path><mask id="btm" maskUnits="userSpaceOnUse" x="-2" y="-2" width="20" height="20"><rect x="-2" y="-2" width="20" height="20" fill="#fff" stroke="none"/><g transform="translate(11.5 11.5)"><g><animateTransform attributeName="transform" type="scale" dur="2.8s" repeatCount="indefinite" keyTimes="0;0.089;0.161;0.35;0.421;1" values="1;1;0;0;1;1" calcMode="spline" keySplines="0 0 1 1;.6 0 .9 .4;0 0 1 1;.15 .75 .25 1;0 0 1 1"/><g><animateTransform attributeName="transform" type="rotate" dur="2.8s" repeatCount="indefinite" keyTimes="0;0.089;0.161;0.35;0.443;0.5;1" values="0;0;45;-90;12;0;0" calcMode="spline" keySplines="0 0 1 1;.6 0 .9 .4;0 0 1 1;.15 .75 .25 1;.37 0 .63 1;0 0 1 1"/><g transform="translate(-11.5 -11.5)"><path fill="#000" stroke="none" d="M16.986 11.336C16.916 10.914 16.586 10.584 16.164 10.514C15.467 10.397 14.904 10.253 14.475 10.08C14.078 9.92 13.759 9.72 13.52 9.48C13.28 9.241 13.08 8.922 12.92 8.525C12.747 8.096 12.603 7.533 12.486 6.836C12.396 6.291 11.88 5.923 11.336 6.014C10.914 6.084 10.584 6.414 10.514 6.836C10.397 7.533 10.253 8.096 10.08 8.525C9.92 8.922 9.72 9.241 9.48 9.48C9.241 9.72 8.922 9.92 8.525 10.08C8.096 10.253 7.533 10.397 6.836 10.514C6.291 10.604 5.923 11.12 6.014 11.664C6.084 12.086 6.414 12.416 6.836 12.486C7.533 12.603 8.096 12.747 8.525 12.92C8.922 13.08 9.241 13.28 9.48 13.52C9.72 13.759 9.92 14.078 10.08 14.475C10.253 14.904 10.397 15.467 10.514 16.164C10.557 16.426 10.703 16.66 10.919 16.814C11.135 16.968 11.403 17.03 11.664 16.986C12.086 16.916 12.416 16.586 12.486 16.164C12.603 15.467 12.747 14.904 12.92 14.475C13.08 14.078 13.28 13.759 13.52 13.52C13.759 13.28 14.078 13.08 14.475 12.92C14.904 12.747 15.467 12.603 16.164 12.486C16.426 12.443 16.66 12.297 16.814 12.081C16.968 11.865 17.03 11.597 16.986 11.336Z"/></g></g></g></g></mask><g mask="url(#btm)"><path fill="currentColor" stroke="none" d="M14 4L14.5 4C14.776 4 15 4.224 15 4.5L15 7.5C15 7.776 14.776 8 14.5 8L13.5 8C13.224 8 13 7.776 13 7.5L13 4.5C13 4.224 13.224 4 13.5 4L14 4Z"></path></g><rect x="3.5" y="4.5" width="0" height="3" fill="currentColor" stroke="none" visibility="hidden"><animate attributeName="width" dur="2.8s" repeatCount="indefinite" keyTimes="0;0.161;0.314;0.35;0.679;0.786;1" values="0;0;5.8;5.5;5.5;0;0" calcMode="spline" keySplines="0 0 1 1;.15 .75 .25 1;.37 0 .63 1;0 0 1 1;.6 0 .9 .4;0 0 1 1"/><animate attributeName="visibility" calcMode="discrete" dur="2.8s" repeatCount="indefinite" keyTimes="0;0.161;0.786" values="hidden;visible;hidden"/></rect><g transform="translate(11.5 11.5)"><g><animateTransform attributeName="transform" type="scale" dur="2.8s" repeatCount="indefinite" keyTimes="0;0.089;0.161;0.35;0.421;1" values="1;1;0;0;1;1" calcMode="spline" keySplines="0 0 1 1;.6 0 .9 .4;0 0 1 1;.15 .75 .25 1;0 0 1 1"/><animate attributeName="visibility" calcMode="discrete" dur="2.8s" repeatCount="indefinite" keyTimes="0;0.161;0.35" values="visible;hidden;visible"/><g><animateTransform attributeName="transform" type="rotate" dur="2.8s" repeatCount="indefinite" keyTimes="0;0.089;0.161;0.35;0.443;0.5;1" values="0;0;45;-90;12;0;0" calcMode="spline" keySplines="0 0 1 1;.6 0 .9 .4;0 0 1 1;.15 .75 .25 1;.37 0 .63 1;0 0 1 1"/><g transform="translate(-11.5 -11.5)"><path fill="currentColor" stroke="none" d="M16 11.5C13 12 12 13 11.5 16C11 13 10 12 7 11.5C10 11 11 10 11.5 7C12 10 13 11 16 11.5Z"></path></g></g></g></g></svg>
```

## Code (line-round)

The snippets are decorative (aria-hidden). For an icon that carries meaning on its own, such as an icon-only button, label the button, or give the SVG role="img" and an aria-label. For another style, take its SVG from the JSON and swap the path `d`.

### SVG

```svg
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M13.5 4L14.5 4C14.641 4 14.759 4.048 14.856 4.144C14.952 4.241 15 4.359 15 4.5L15 7.5C15 7.641 14.952 7.759 14.856 7.856C14.759 7.952 14.641 8 14.5 8L13.5 8C13.359 8 13.241 7.952 13.144 7.856C13.048 7.759 13 7.641 13 7.5L13 5.5C13 5.641 12.952 5.759 12.856 5.856C12.759 5.952 12.641 6 12.5 6C12.359 6 12.241 5.952 12.144 5.856C12.048 5.759 12 5.641 12 5.5L12 4C12 3.724 11.902 3.488 11.707 3.293C11.512 3.098 11.276 3 11 3L3 3C2.724 3 2.488 3.098 2.293 3.293C2.098 3.488 2 3.724 2 4L2 8C2 8.276 2.098 8.512 2.293 8.707C2.488 8.902 2.724 9 3 9L8.5 9C8.641 9 8.759 9.048 8.856 9.144C8.952 9.241 9 9.359 9 9.5C9 9.641 8.952 9.759 8.856 9.856C8.759 9.952 8.641 10 8.5 10L3 10C2.746 10 2.5 9.953 2.264 9.86C2.007 9.758 1.781 9.609 1.586 9.414C1.391 9.219 1.242 8.993 1.14 8.736C1.047 8.5 1 8.254 1 8L1 4C1 3.746 1.047 3.5 1.14 3.264C1.242 3.007 1.391 2.781 1.586 2.586C1.781 2.391 2.007 2.242 2.264 2.14C2.5 2.047 2.746 2 3 2L11 2C11.254 2 11.5 2.047 11.736 2.14C11.993 2.242 12.219 2.391 12.414 2.586C12.609 2.781 12.758 3.007 12.86 3.264C12.953 3.5 13 3.746 13 4L13 4.5C13 4.359 13.048 4.241 13.144 4.144C13.241 4.048 13.359 4 13.5 4ZM11.5 16C11 13 10 12 7 11.5C10 11 11 10 11.5 7C12 10 13 11 16 11.5C13 12 12 13 11.5 16Z"/></svg>
```

### React

```tsx
// Gentleface "battery-sparkle" (line-round), MIT. https://gentleface.com/icons/battery-sparkle
import type { SVGProps } from 'react';

export function BatterySparkleIcon(props: SVGProps<SVGSVGElement>) {
  return (
    <svg xmlns="http://www.w3.org/2000/svg" width={16} height={16} viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" {...props}>
      <path d="M13.5 4L14.5 4C14.641 4 14.759 4.048 14.856 4.144C14.952 4.241 15 4.359 15 4.5L15 7.5C15 7.641 14.952 7.759 14.856 7.856C14.759 7.952 14.641 8 14.5 8L13.5 8C13.359 8 13.241 7.952 13.144 7.856C13.048 7.759 13 7.641 13 7.5L13 5.5C13 5.641 12.952 5.759 12.856 5.856C12.759 5.952 12.641 6 12.5 6C12.359 6 12.241 5.952 12.144 5.856C12.048 5.759 12 5.641 12 5.5L12 4C12 3.724 11.902 3.488 11.707 3.293C11.512 3.098 11.276 3 11 3L3 3C2.724 3 2.488 3.098 2.293 3.293C2.098 3.488 2 3.724 2 4L2 8C2 8.276 2.098 8.512 2.293 8.707C2.488 8.902 2.724 9 3 9L8.5 9C8.641 9 8.759 9.048 8.856 9.144C8.952 9.241 9 9.359 9 9.5C9 9.641 8.952 9.759 8.856 9.856C8.759 9.952 8.641 10 8.5 10L3 10C2.746 10 2.5 9.953 2.264 9.86C2.007 9.758 1.781 9.609 1.586 9.414C1.391 9.219 1.242 8.993 1.14 8.736C1.047 8.5 1 8.254 1 8L1 4C1 3.746 1.047 3.5 1.14 3.264C1.242 3.007 1.391 2.781 1.586 2.586C1.781 2.391 2.007 2.242 2.264 2.14C2.5 2.047 2.746 2 3 2L11 2C11.254 2 11.5 2.047 11.736 2.14C11.993 2.242 12.219 2.391 12.414 2.586C12.609 2.781 12.758 3.007 12.86 3.264C12.953 3.5 13 3.746 13 4L13 4.5C13 4.359 13.048 4.241 13.144 4.144C13.241 4.048 13.359 4 13.5 4ZM11.5 16C11 13 10 12 7 11.5C10 11 11 10 11.5 7C12 10 13 11 16 11.5C13 12 12 13 11.5 16Z" />
    </svg>
  );
}
```

### Vue

```vue
<!-- Gentleface "battery-sparkle" (line-round), MIT. https://gentleface.com/icons/battery-sparkle -->
<template>
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true">
    <path d="M13.5 4L14.5 4C14.641 4 14.759 4.048 14.856 4.144C14.952 4.241 15 4.359 15 4.5L15 7.5C15 7.641 14.952 7.759 14.856 7.856C14.759 7.952 14.641 8 14.5 8L13.5 8C13.359 8 13.241 7.952 13.144 7.856C13.048 7.759 13 7.641 13 7.5L13 5.5C13 5.641 12.952 5.759 12.856 5.856C12.759 5.952 12.641 6 12.5 6C12.359 6 12.241 5.952 12.144 5.856C12.048 5.759 12 5.641 12 5.5L12 4C12 3.724 11.902 3.488 11.707 3.293C11.512 3.098 11.276 3 11 3L3 3C2.724 3 2.488 3.098 2.293 3.293C2.098 3.488 2 3.724 2 4L2 8C2 8.276 2.098 8.512 2.293 8.707C2.488 8.902 2.724 9 3 9L8.5 9C8.641 9 8.759 9.048 8.856 9.144C8.952 9.241 9 9.359 9 9.5C9 9.641 8.952 9.759 8.856 9.856C8.759 9.952 8.641 10 8.5 10L3 10C2.746 10 2.5 9.953 2.264 9.86C2.007 9.758 1.781 9.609 1.586 9.414C1.391 9.219 1.242 8.993 1.14 8.736C1.047 8.5 1 8.254 1 8L1 4C1 3.746 1.047 3.5 1.14 3.264C1.242 3.007 1.391 2.781 1.586 2.586C1.781 2.391 2.007 2.242 2.264 2.14C2.5 2.047 2.746 2 3 2L11 2C11.254 2 11.5 2.047 11.736 2.14C11.993 2.242 12.219 2.391 12.414 2.586C12.609 2.781 12.758 3.007 12.86 3.264C12.953 3.5 13 3.746 13 4L13 4.5C13 4.359 13.048 4.241 13.144 4.144C13.241 4.048 13.359 4 13.5 4ZM11.5 16C11 13 10 12 7 11.5C10 11 11 10 11.5 7C12 10 13 11 16 11.5C13 12 12 13 11.5 16Z" />
  </svg>
</template>
```

### Svelte

```svelte
<!-- Gentleface "battery-sparkle" (line-round), MIT. https://gentleface.com/icons/battery-sparkle -->
<script>
  let props = $props();
</script>

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" {...props}>
  <path d="M13.5 4L14.5 4C14.641 4 14.759 4.048 14.856 4.144C14.952 4.241 15 4.359 15 4.5L15 7.5C15 7.641 14.952 7.759 14.856 7.856C14.759 7.952 14.641 8 14.5 8L13.5 8C13.359 8 13.241 7.952 13.144 7.856C13.048 7.759 13 7.641 13 7.5L13 5.5C13 5.641 12.952 5.759 12.856 5.856C12.759 5.952 12.641 6 12.5 6C12.359 6 12.241 5.952 12.144 5.856C12.048 5.759 12 5.641 12 5.5L12 4C12 3.724 11.902 3.488 11.707 3.293C11.512 3.098 11.276 3 11 3L3 3C2.724 3 2.488 3.098 2.293 3.293C2.098 3.488 2 3.724 2 4L2 8C2 8.276 2.098 8.512 2.293 8.707C2.488 8.902 2.724 9 3 9L8.5 9C8.641 9 8.759 9.048 8.856 9.144C8.952 9.241 9 9.359 9 9.5C9 9.641 8.952 9.759 8.856 9.856C8.759 9.952 8.641 10 8.5 10L3 10C2.746 10 2.5 9.953 2.264 9.86C2.007 9.758 1.781 9.609 1.586 9.414C1.391 9.219 1.242 8.993 1.14 8.736C1.047 8.5 1 8.254 1 8L1 4C1 3.746 1.047 3.5 1.14 3.264C1.242 3.007 1.391 2.781 1.586 2.586C1.781 2.391 2.007 2.242 2.264 2.14C2.5 2.047 2.746 2 3 2L11 2C11.254 2 11.5 2.047 11.736 2.14C11.993 2.242 12.219 2.391 12.414 2.586C12.609 2.781 12.758 3.007 12.86 3.264C12.953 3.5 13 3.746 13 4L13 4.5C13 4.359 13.048 4.241 13.144 4.144C13.241 4.048 13.359 4 13.5 4ZM11.5 16C11 13 10 12 7 11.5C10 11 11 10 11.5 7C12 10 13 11 16 11.5C13 12 12 13 11.5 16Z" />
</svg>
```

### HTML img

```html
<!-- Gentleface "battery-sparkle" (line-round), MIT. https://gentleface.com/icons/battery-sparkle. An <img> can't take currentColor: it draws black. Inline the SVG or use the CSS mask to color it. -->
<img src="https://gentleface.com/svg/line-round/16/battery-sparkle.svg" width="16" height="16" alt="">
```

### CSS

```css
/* Gentleface "battery-sparkle" (line-round), MIT. https://gentleface.com/icons/battery-sparkle. Takes the text color. */
.icon-battery-sparkle {
  display: inline-block;
  width: 16px;
  height: 16px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M13.5 4L14.5 4C14.641 4 14.759 4.048 14.856 4.144C14.952 4.241 15 4.359 15 4.5L15 7.5C15 7.641 14.952 7.759 14.856 7.856C14.759 7.952 14.641 8 14.5 8L13.5 8C13.359 8 13.241 7.952 13.144 7.856C13.048 7.759 13 7.641 13 7.5L13 5.5C13 5.641 12.952 5.759 12.856 5.856C12.759 5.952 12.641 6 12.5 6C12.359 6 12.241 5.952 12.144 5.856C12.048 5.759 12 5.641 12 5.5L12 4C12 3.724 11.902 3.488 11.707 3.293C11.512 3.098 11.276 3 11 3L3 3C2.724 3 2.488 3.098 2.293 3.293C2.098 3.488 2 3.724 2 4L2 8C2 8.276 2.098 8.512 2.293 8.707C2.488 8.902 2.724 9 3 9L8.5 9C8.641 9 8.759 9.048 8.856 9.144C8.952 9.241 9 9.359 9 9.5C9 9.641 8.952 9.759 8.856 9.856C8.759 9.952 8.641 10 8.5 10L3 10C2.746 10 2.5 9.953 2.264 9.86C2.007 9.758 1.781 9.609 1.586 9.414C1.391 9.219 1.242 8.993 1.14 8.736C1.047 8.5 1 8.254 1 8L1 4C1 3.746 1.047 3.5 1.14 3.264C1.242 3.007 1.391 2.781 1.586 2.586C1.781 2.391 2.007 2.242 2.264 2.14C2.5 2.047 2.746 2 3 2L11 2C11.254 2 11.5 2.047 11.736 2.14C11.993 2.242 12.219 2.391 12.414 2.586C12.609 2.781 12.758 3.007 12.86 3.264C12.953 3.5 13 3.746 13 4L13 4.5C13 4.359 13.048 4.241 13.144 4.144C13.241 4.048 13.359 4 13.5 4ZM11.5 16C11 13 10 12 7 11.5C10 11 11 10 11.5 7C12 10 13 11 16 11.5C13 12 12 13 11.5 16Z'/%3E%3C/svg%3E") center / 16px 16px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M13.5 4L14.5 4C14.641 4 14.759 4.048 14.856 4.144C14.952 4.241 15 4.359 15 4.5L15 7.5C15 7.641 14.952 7.759 14.856 7.856C14.759 7.952 14.641 8 14.5 8L13.5 8C13.359 8 13.241 7.952 13.144 7.856C13.048 7.759 13 7.641 13 7.5L13 5.5C13 5.641 12.952 5.759 12.856 5.856C12.759 5.952 12.641 6 12.5 6C12.359 6 12.241 5.952 12.144 5.856C12.048 5.759 12 5.641 12 5.5L12 4C12 3.724 11.902 3.488 11.707 3.293C11.512 3.098 11.276 3 11 3L3 3C2.724 3 2.488 3.098 2.293 3.293C2.098 3.488 2 3.724 2 4L2 8C2 8.276 2.098 8.512 2.293 8.707C2.488 8.902 2.724 9 3 9L8.5 9C8.641 9 8.759 9.048 8.856 9.144C8.952 9.241 9 9.359 9 9.5C9 9.641 8.952 9.759 8.856 9.856C8.759 9.952 8.641 10 8.5 10L3 10C2.746 10 2.5 9.953 2.264 9.86C2.007 9.758 1.781 9.609 1.586 9.414C1.391 9.219 1.242 8.993 1.14 8.736C1.047 8.5 1 8.254 1 8L1 4C1 3.746 1.047 3.5 1.14 3.264C1.242 3.007 1.391 2.781 1.586 2.586C1.781 2.391 2.007 2.242 2.264 2.14C2.5 2.047 2.746 2 3 2L11 2C11.254 2 11.5 2.047 11.736 2.14C11.993 2.242 12.219 2.391 12.414 2.586C12.609 2.781 12.758 3.007 12.86 3.264C12.953 3.5 13 3.746 13 4L13 4.5C13 4.359 13.048 4.241 13.144 4.144C13.241 4.048 13.359 4 13.5 4ZM11.5 16C11 13 10 12 7 11.5C10 11 11 10 11.5 7C12 10 13 11 16 11.5C13 12 12 13 11.5 16Z'/%3E%3C/svg%3E") center / 16px 16px no-repeat;
}
```

### Data URL

```text
data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M13.5 4L14.5 4C14.641 4 14.759 4.048 14.856 4.144C14.952 4.241 15 4.359 15 4.5L15 7.5C15 7.641 14.952 7.759 14.856 7.856C14.759 7.952 14.641 8 14.5 8L13.5 8C13.359 8 13.241 7.952 13.144 7.856C13.048 7.759 13 7.641 13 7.5L13 5.5C13 5.641 12.952 5.759 12.856 5.856C12.759 5.952 12.641 6 12.5 6C12.359 6 12.241 5.952 12.144 5.856C12.048 5.759 12 5.641 12 5.5L12 4C12 3.724 11.902 3.488 11.707 3.293C11.512 3.098 11.276 3 11 3L3 3C2.724 3 2.488 3.098 2.293 3.293C2.098 3.488 2 3.724 2 4L2 8C2 8.276 2.098 8.512 2.293 8.707C2.488 8.902 2.724 9 3 9L8.5 9C8.641 9 8.759 9.048 8.856 9.144C8.952 9.241 9 9.359 9 9.5C9 9.641 8.952 9.759 8.856 9.856C8.759 9.952 8.641 10 8.5 10L3 10C2.746 10 2.5 9.953 2.264 9.86C2.007 9.758 1.781 9.609 1.586 9.414C1.391 9.219 1.242 8.993 1.14 8.736C1.047 8.5 1 8.254 1 8L1 4C1 3.746 1.047 3.5 1.14 3.264C1.242 3.007 1.391 2.781 1.586 2.586C1.781 2.391 2.007 2.242 2.264 2.14C2.5 2.047 2.746 2 3 2L11 2C11.254 2 11.5 2.047 11.736 2.14C11.993 2.242 12.219 2.391 12.414 2.586C12.609 2.781 12.758 3.007 12.86 3.264C12.953 3.5 13 3.746 13 4L13 4.5C13 4.359 13.048 4.241 13.144 4.144C13.241 4.048 13.359 4 13.5 4ZM11.5 16C11 13 10 12 7 11.5C10 11 11 10 11.5 7C12 10 13 11 16 11.5C13 12 12 13 11.5 16Z'/%3E%3C/svg%3E
```

### Sprite

```html
<!-- Gentleface "battery-sparkle" (line-round), MIT. https://gentleface.com/icons/battery-sparkle
     Every icon of this style in one file: https://gentleface.com/sprite/line-round.svg
     Serve it from your own origin: <use> does not load from another origin. -->
<svg width="16" height="16" aria-hidden="true"><use href="/sprite/line-round.svg#battery-sparkle"/></svg>
```

### SwiftUI

```swift
// Gentleface "battery-sparkle" (line-round), MIT. https://gentleface.com/icons/battery-sparkle
import SwiftUI

struct BatterySparkleIcon: Shape {
    func path(in rect: CGRect) -> Path {
        var p = Path()
        p.move(to: CGPoint(x: 13.5, y: 4))
        p.addLine(to: CGPoint(x: 14.5, y: 4))
        p.addCurve(to: CGPoint(x: 14.856, y: 4.144), control1: CGPoint(x: 14.641, y: 4), control2: CGPoint(x: 14.759, y: 4.048))
        p.addCurve(to: CGPoint(x: 15, y: 4.5), control1: CGPoint(x: 14.952, y: 4.241), control2: CGPoint(x: 15, y: 4.359))
        p.addLine(to: CGPoint(x: 15, y: 7.5))
        p.addCurve(to: CGPoint(x: 14.856, y: 7.856), control1: CGPoint(x: 15, y: 7.641), control2: CGPoint(x: 14.952, y: 7.759))
        p.addCurve(to: CGPoint(x: 14.5, y: 8), control1: CGPoint(x: 14.759, y: 7.952), control2: CGPoint(x: 14.641, y: 8))
        p.addLine(to: CGPoint(x: 13.5, y: 8))
        p.addCurve(to: CGPoint(x: 13.144, y: 7.856), control1: CGPoint(x: 13.359, y: 8), control2: CGPoint(x: 13.241, y: 7.952))
        p.addCurve(to: CGPoint(x: 13, y: 7.5), control1: CGPoint(x: 13.048, y: 7.759), control2: CGPoint(x: 13, y: 7.641))
        p.addLine(to: CGPoint(x: 13, y: 5.5))
        p.addCurve(to: CGPoint(x: 12.856, y: 5.856), control1: CGPoint(x: 13, y: 5.641), control2: CGPoint(x: 12.952, y: 5.759))
        p.addCurve(to: CGPoint(x: 12.5, y: 6), control1: CGPoint(x: 12.759, y: 5.952), control2: CGPoint(x: 12.641, y: 6))
        p.addCurve(to: CGPoint(x: 12.144, y: 5.856), control1: CGPoint(x: 12.359, y: 6), control2: CGPoint(x: 12.241, y: 5.952))
        p.addCurve(to: CGPoint(x: 12, y: 5.5), control1: CGPoint(x: 12.048, y: 5.759), control2: CGPoint(x: 12, y: 5.641))
        p.addLine(to: CGPoint(x: 12, y: 4))
        p.addCurve(to: CGPoint(x: 11.707, y: 3.293), control1: CGPoint(x: 12, y: 3.724), control2: CGPoint(x: 11.902, y: 3.488))
        p.addCurve(to: CGPoint(x: 11, y: 3), control1: CGPoint(x: 11.512, y: 3.098), control2: CGPoint(x: 11.276, y: 3))
        p.addLine(to: CGPoint(x: 3, y: 3))
        p.addCurve(to: CGPoint(x: 2.293, y: 3.293), control1: CGPoint(x: 2.724, y: 3), control2: CGPoint(x: 2.488, y: 3.098))
        p.addCurve(to: CGPoint(x: 2, y: 4), control1: CGPoint(x: 2.098, y: 3.488), control2: CGPoint(x: 2, y: 3.724))
        p.addLine(to: CGPoint(x: 2, y: 8))
        p.addCurve(to: CGPoint(x: 2.293, y: 8.707), control1: CGPoint(x: 2, y: 8.276), control2: CGPoint(x: 2.098, y: 8.512))
        p.addCurve(to: CGPoint(x: 3, y: 9), control1: CGPoint(x: 2.488, y: 8.902), control2: CGPoint(x: 2.724, y: 9))
        p.addLine(to: CGPoint(x: 8.5, y: 9))
        p.addCurve(to: CGPoint(x: 8.856, y: 9.144), control1: CGPoint(x: 8.641, y: 9), control2: CGPoint(x: 8.759, y: 9.048))
        p.addCurve(to: CGPoint(x: 9, y: 9.5), control1: CGPoint(x: 8.952, y: 9.241), control2: CGPoint(x: 9, y: 9.359))
        p.addCurve(to: CGPoint(x: 8.856, y: 9.856), control1: CGPoint(x: 9, y: 9.641), control2: CGPoint(x: 8.952, y: 9.759))
        p.addCurve(to: CGPoint(x: 8.5, y: 10), control1: CGPoint(x: 8.759, y: 9.952), control2: CGPoint(x: 8.641, y: 10))
        p.addLine(to: CGPoint(x: 3, y: 10))
        p.addCurve(to: CGPoint(x: 2.264, y: 9.86), control1: CGPoint(x: 2.746, y: 10), control2: CGPoint(x: 2.5, y: 9.953))
        p.addCurve(to: CGPoint(x: 1.586, y: 9.414), control1: CGPoint(x: 2.007, y: 9.758), control2: CGPoint(x: 1.781, y: 9.609))
        p.addCurve(to: CGPoint(x: 1.14, y: 8.736), control1: CGPoint(x: 1.391, y: 9.219), control2: CGPoint(x: 1.242, y: 8.993))
        p.addCurve(to: CGPoint(x: 1, y: 8), control1: CGPoint(x: 1.047, y: 8.5), control2: CGPoint(x: 1, y: 8.254))
        p.addLine(to: CGPoint(x: 1, y: 4))
        p.addCurve(to: CGPoint(x: 1.14, y: 3.264), control1: CGPoint(x: 1, y: 3.746), control2: CGPoint(x: 1.047, y: 3.5))
        p.addCurve(to: CGPoint(x: 1.586, y: 2.586), control1: CGPoint(x: 1.242, y: 3.007), control2: CGPoint(x: 1.391, y: 2.781))
        p.addCurve(to: CGPoint(x: 2.264, y: 2.14), control1: CGPoint(x: 1.781, y: 2.391), control2: CGPoint(x: 2.007, y: 2.242))
        p.addCurve(to: CGPoint(x: 3, y: 2), control1: CGPoint(x: 2.5, y: 2.047), control2: CGPoint(x: 2.746, y: 2))
        p.addLine(to: CGPoint(x: 11, y: 2))
        p.addCurve(to: CGPoint(x: 11.736, y: 2.14), control1: CGPoint(x: 11.254, y: 2), control2: CGPoint(x: 11.5, y: 2.047))
        p.addCurve(to: CGPoint(x: 12.414, y: 2.586), control1: CGPoint(x: 11.993, y: 2.242), control2: CGPoint(x: 12.219, y: 2.391))
        p.addCurve(to: CGPoint(x: 12.86, y: 3.264), control1: CGPoint(x: 12.609, y: 2.781), control2: CGPoint(x: 12.758, y: 3.007))
        p.addCurve(to: CGPoint(x: 13, y: 4), control1: CGPoint(x: 12.953, y: 3.5), control2: CGPoint(x: 13, y: 3.746))
        p.addLine(to: CGPoint(x: 13, y: 4.5))
        p.addCurve(to: CGPoint(x: 13.144, y: 4.144), control1: CGPoint(x: 13, y: 4.359), control2: CGPoint(x: 13.048, y: 4.241))
        p.addCurve(to: CGPoint(x: 13.5, y: 4), control1: CGPoint(x: 13.241, y: 4.048), control2: CGPoint(x: 13.359, y: 4))
        p.closeSubpath()
        p.move(to: CGPoint(x: 11.5, y: 16))
        p.addCurve(to: CGPoint(x: 7, y: 11.5), control1: CGPoint(x: 11, y: 13), control2: CGPoint(x: 10, y: 12))
        p.addCurve(to: CGPoint(x: 11.5, y: 7), control1: CGPoint(x: 10, y: 11), control2: CGPoint(x: 11, y: 10))
        p.addCurve(to: CGPoint(x: 16, y: 11.5), control1: CGPoint(x: 12, y: 10), control2: CGPoint(x: 13, y: 11))
        p.addCurve(to: CGPoint(x: 11.5, y: 16), control1: CGPoint(x: 13, y: 12), control2: CGPoint(x: 12, y: 13))
        p.closeSubpath()
        return p.applying(CGAffineTransform(scaleX: rect.width / 16, y: rect.height / 16))
    }
}

// BatterySparkleIcon().frame(width: 16, height: 16) fills with the foreground style. Keep it on whole points to stay crisp.
```

### Compose

```kotlin
// Gentleface "battery-sparkle" (line-round), MIT. https://gentleface.com/icons/battery-sparkle
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.graphics.vector.addPathNodes
import androidx.compose.ui.unit.dp

val BatterySparkleIcon: ImageVector by lazy {
    ImageVector.Builder(
        name = "battery-sparkle", defaultWidth = 16.dp, defaultHeight = 16.dp,
        viewportWidth = 16f, viewportHeight = 16f,
    ).addPath(
        pathData = addPathNodes("M13.5 4L14.5 4C14.641 4 14.759 4.048 14.856 4.144C14.952 4.241 15 4.359 15 4.5L15 7.5C15 7.641 14.952 7.759 14.856 7.856C14.759 7.952 14.641 8 14.5 8L13.5 8C13.359 8 13.241 7.952 13.144 7.856C13.048 7.759 13 7.641 13 7.5L13 5.5C13 5.641 12.952 5.759 12.856 5.856C12.759 5.952 12.641 6 12.5 6C12.359 6 12.241 5.952 12.144 5.856C12.048 5.759 12 5.641 12 5.5L12 4C12 3.724 11.902 3.488 11.707 3.293C11.512 3.098 11.276 3 11 3L3 3C2.724 3 2.488 3.098 2.293 3.293C2.098 3.488 2 3.724 2 4L2 8C2 8.276 2.098 8.512 2.293 8.707C2.488 8.902 2.724 9 3 9L8.5 9C8.641 9 8.759 9.048 8.856 9.144C8.952 9.241 9 9.359 9 9.5C9 9.641 8.952 9.759 8.856 9.856C8.759 9.952 8.641 10 8.5 10L3 10C2.746 10 2.5 9.953 2.264 9.86C2.007 9.758 1.781 9.609 1.586 9.414C1.391 9.219 1.242 8.993 1.14 8.736C1.047 8.5 1 8.254 1 8L1 4C1 3.746 1.047 3.5 1.14 3.264C1.242 3.007 1.391 2.781 1.586 2.586C1.781 2.391 2.007 2.242 2.264 2.14C2.5 2.047 2.746 2 3 2L11 2C11.254 2 11.5 2.047 11.736 2.14C11.993 2.242 12.219 2.391 12.414 2.586C12.609 2.781 12.758 3.007 12.86 3.264C12.953 3.5 13 3.746 13 4L13 4.5C13 4.359 13.048 4.241 13.144 4.144C13.241 4.048 13.359 4 13.5 4ZM11.5 16C11 13 10 12 7 11.5C10 11 11 10 11.5 7C12 10 13 11 16 11.5C13 12 12 13 11.5 16Z"),
        fill = SolidColor(Color.Black),
    ).build()
}

// Icon(BatterySparkleIcon, contentDescription = null) tints it with LocalContentColor.
```

### Android XML

```xml
<!-- res/drawable/ic_battery_sparkle.xml · Gentleface "battery-sparkle" (line-round), MIT. https://gentleface.com/icons/battery-sparkle -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="16dp"
    android:height="16dp"
    android:viewportWidth="16"
    android:viewportHeight="16"
    android:tint="?attr/colorControlNormal">
  <path
      android:fillColor="@android:color/white"
      android:pathData="M13.5 4L14.5 4C14.641 4 14.759 4.048 14.856 4.144C14.952 4.241 15 4.359 15 4.5L15 7.5C15 7.641 14.952 7.759 14.856 7.856C14.759 7.952 14.641 8 14.5 8L13.5 8C13.359 8 13.241 7.952 13.144 7.856C13.048 7.759 13 7.641 13 7.5L13 5.5C13 5.641 12.952 5.759 12.856 5.856C12.759 5.952 12.641 6 12.5 6C12.359 6 12.241 5.952 12.144 5.856C12.048 5.759 12 5.641 12 5.5L12 4C12 3.724 11.902 3.488 11.707 3.293C11.512 3.098 11.276 3 11 3L3 3C2.724 3 2.488 3.098 2.293 3.293C2.098 3.488 2 3.724 2 4L2 8C2 8.276 2.098 8.512 2.293 8.707C2.488 8.902 2.724 9 3 9L8.5 9C8.641 9 8.759 9.048 8.856 9.144C8.952 9.241 9 9.359 9 9.5C9 9.641 8.952 9.759 8.856 9.856C8.759 9.952 8.641 10 8.5 10L3 10C2.746 10 2.5 9.953 2.264 9.86C2.007 9.758 1.781 9.609 1.586 9.414C1.391 9.219 1.242 8.993 1.14 8.736C1.047 8.5 1 8.254 1 8L1 4C1 3.746 1.047 3.5 1.14 3.264C1.242 3.007 1.391 2.781 1.586 2.586C1.781 2.391 2.007 2.242 2.264 2.14C2.5 2.047 2.746 2 3 2L11 2C11.254 2 11.5 2.047 11.736 2.14C11.993 2.242 12.219 2.391 12.414 2.586C12.609 2.781 12.758 3.007 12.86 3.264C12.953 3.5 13 3.746 13 4L13 4.5C13 4.359 13.048 4.241 13.144 4.144C13.241 4.048 13.359 4 13.5 4ZM11.5 16C11 13 10 12 7 11.5C10 11 11 10 11.5 7C12 10 13 11 16 11.5C13 12 12 13 11.5 16Z"/>
</vector>
```

### Flutter

```dart
// Gentleface "battery-sparkle" (line-round), MIT. https://gentleface.com/icons/battery-sparkle
import 'package:flutter/widgets.dart';

class BatterySparkleIcon extends StatelessWidget {
  const BatterySparkleIcon({super.key, this.size = 16, this.color});
  final double size;
  final Color? color;

  @override
  Widget build(BuildContext context) => CustomPaint(
        size: Size.square(size),
        painter: _BatterySparkleIconPainter(color ?? IconTheme.of(context).color ?? const Color(0xFF000000)),
      );
}

class _BatterySparkleIconPainter extends CustomPainter {
  _BatterySparkleIconPainter(this.color);
  final Color color;

  @override
  void paint(Canvas canvas, Size size) {
    canvas.scale(size.width / 16, size.height / 16);
    final p = Path()
      ..moveTo(13.5, 4)
      ..lineTo(14.5, 4)
      ..cubicTo(14.641, 4, 14.759, 4.048, 14.856, 4.144)
      ..cubicTo(14.952, 4.241, 15, 4.359, 15, 4.5)
      ..lineTo(15, 7.5)
      ..cubicTo(15, 7.641, 14.952, 7.759, 14.856, 7.856)
      ..cubicTo(14.759, 7.952, 14.641, 8, 14.5, 8)
      ..lineTo(13.5, 8)
      ..cubicTo(13.359, 8, 13.241, 7.952, 13.144, 7.856)
      ..cubicTo(13.048, 7.759, 13, 7.641, 13, 7.5)
      ..lineTo(13, 5.5)
      ..cubicTo(13, 5.641, 12.952, 5.759, 12.856, 5.856)
      ..cubicTo(12.759, 5.952, 12.641, 6, 12.5, 6)
      ..cubicTo(12.359, 6, 12.241, 5.952, 12.144, 5.856)
      ..cubicTo(12.048, 5.759, 12, 5.641, 12, 5.5)
      ..lineTo(12, 4)
      ..cubicTo(12, 3.724, 11.902, 3.488, 11.707, 3.293)
      ..cubicTo(11.512, 3.098, 11.276, 3, 11, 3)
      ..lineTo(3, 3)
      ..cubicTo(2.724, 3, 2.488, 3.098, 2.293, 3.293)
      ..cubicTo(2.098, 3.488, 2, 3.724, 2, 4)
      ..lineTo(2, 8)
      ..cubicTo(2, 8.276, 2.098, 8.512, 2.293, 8.707)
      ..cubicTo(2.488, 8.902, 2.724, 9, 3, 9)
      ..lineTo(8.5, 9)
      ..cubicTo(8.641, 9, 8.759, 9.048, 8.856, 9.144)
      ..cubicTo(8.952, 9.241, 9, 9.359, 9, 9.5)
      ..cubicTo(9, 9.641, 8.952, 9.759, 8.856, 9.856)
      ..cubicTo(8.759, 9.952, 8.641, 10, 8.5, 10)
      ..lineTo(3, 10)
      ..cubicTo(2.746, 10, 2.5, 9.953, 2.264, 9.86)
      ..cubicTo(2.007, 9.758, 1.781, 9.609, 1.586, 9.414)
      ..cubicTo(1.391, 9.219, 1.242, 8.993, 1.14, 8.736)
      ..cubicTo(1.047, 8.5, 1, 8.254, 1, 8)
      ..lineTo(1, 4)
      ..cubicTo(1, 3.746, 1.047, 3.5, 1.14, 3.264)
      ..cubicTo(1.242, 3.007, 1.391, 2.781, 1.586, 2.586)
      ..cubicTo(1.781, 2.391, 2.007, 2.242, 2.264, 2.14)
      ..cubicTo(2.5, 2.047, 2.746, 2, 3, 2)
      ..lineTo(11, 2)
      ..cubicTo(11.254, 2, 11.5, 2.047, 11.736, 2.14)
      ..cubicTo(11.993, 2.242, 12.219, 2.391, 12.414, 2.586)
      ..cubicTo(12.609, 2.781, 12.758, 3.007, 12.86, 3.264)
      ..cubicTo(12.953, 3.5, 13, 3.746, 13, 4)
      ..lineTo(13, 4.5)
      ..cubicTo(13, 4.359, 13.048, 4.241, 13.144, 4.144)
      ..cubicTo(13.241, 4.048, 13.359, 4, 13.5, 4)
      ..close()
      ..moveTo(11.5, 16)
      ..cubicTo(11, 13, 10, 12, 7, 11.5)
      ..cubicTo(10, 11, 11, 10, 11.5, 7)
      ..cubicTo(12, 10, 13, 11, 16, 11.5)
      ..cubicTo(13, 12, 12, 13, 11.5, 16)
      ..close();
    canvas.drawPath(p, Paint()..color = color);
  }

  @override
  bool shouldRepaint(_BatterySparkleIconPainter old) => old.color != color;
}
```
