# search-sparkle icon

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

- Category: Actions
- Use it for: ai search, semantic search, smart search
- Example: AI search
- Built from: search + sparkle
- Tags: magnifier, lens, find, sparkle
- Family: search, search-clock, search-gear, search-off, search-star, search-x, zoom-in, zoom-out
- Component name: SearchSparkleIcon
- Added: 2026-10-15

## Alternatives

- `filter-sparkle`: filter a list by describing it
- `message-sparkle`: ask an AI assistant in a chat

## Also fits

- ai filter: AI search across content rather than filtering a list
- search: AI or semantic search

## Files

Each SVG is 16 × 16 with fill="currentColor". Keep it at 16 px or an exact multiple (32, 48) on whole pixels: a fractional size or position blurs it.

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

The SVG of every style: https://gentleface.com/icons/search-sparkle.json (`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="M3.717 11.244C3.152 10.912 2.661 10.493 2.246 9.986C1.831 9.479 1.516 8.916 1.302 8.297C1.101 7.715 1 7.116 1 6.5C1 5.801 1.129 5.126 1.386 4.475C1.666 3.769 2.074 3.148 2.611 2.611C3.148 2.074 3.769 1.666 4.475 1.386C5.126 1.129 5.801 1 6.5 1C7.116 1 7.715 1.101 8.297 1.302C8.916 1.516 9.479 1.831 9.986 2.246C10.493 2.661 10.912 3.152 11.244 3.717C11.556 4.248 11.772 4.816 11.893 5.42C11.92 5.555 11.895 5.68 11.819 5.795C11.748 5.901 11.653 5.969 11.533 6.001C11.467 5.998 11.401 6.003 11.336 6.014C11.334 6.014 11.333 6.014 11.332 6.014C11.26 6.004 11.191 5.978 11.125 5.934C11.01 5.857 10.939 5.751 10.912 5.616C10.813 5.122 10.636 4.658 10.381 4.223C10.11 3.76 9.767 3.359 9.352 3.019C8.938 2.68 8.477 2.422 7.97 2.247C7.494 2.082 7.004 2 6.5 2C5.928 2 5.376 2.105 4.844 2.316C4.266 2.545 3.757 2.879 3.318 3.318C2.879 3.757 2.545 4.266 2.316 4.844C2.105 5.376 2 5.928 2 6.5C2 7.004 2.082 7.494 2.247 7.97C2.422 8.477 2.68 8.938 3.019 9.352C3.359 9.767 3.76 10.11 4.223 10.381C4.657 10.636 5.122 10.813 5.616 10.912C5.754 10.94 5.861 11.01 5.936 11.124C5.979 11.188 6.005 11.256 6.015 11.328C6.003 11.396 5.998 11.464 6.001 11.532C5.969 11.653 5.901 11.748 5.795 11.819C5.68 11.895 5.555 11.92 5.419 11.893C4.815 11.772 4.248 11.555 3.717 11.244ZM11.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 "search-sparkle" (line-round), MIT. https://gentleface.com/icons/search-sparkle
import type { SVGProps } from 'react';

export function SearchSparkleIcon(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="M3.717 11.244C3.152 10.912 2.661 10.493 2.246 9.986C1.831 9.479 1.516 8.916 1.302 8.297C1.101 7.715 1 7.116 1 6.5C1 5.801 1.129 5.126 1.386 4.475C1.666 3.769 2.074 3.148 2.611 2.611C3.148 2.074 3.769 1.666 4.475 1.386C5.126 1.129 5.801 1 6.5 1C7.116 1 7.715 1.101 8.297 1.302C8.916 1.516 9.479 1.831 9.986 2.246C10.493 2.661 10.912 3.152 11.244 3.717C11.556 4.248 11.772 4.816 11.893 5.42C11.92 5.555 11.895 5.68 11.819 5.795C11.748 5.901 11.653 5.969 11.533 6.001C11.467 5.998 11.401 6.003 11.336 6.014C11.334 6.014 11.333 6.014 11.332 6.014C11.26 6.004 11.191 5.978 11.125 5.934C11.01 5.857 10.939 5.751 10.912 5.616C10.813 5.122 10.636 4.658 10.381 4.223C10.11 3.76 9.767 3.359 9.352 3.019C8.938 2.68 8.477 2.422 7.97 2.247C7.494 2.082 7.004 2 6.5 2C5.928 2 5.376 2.105 4.844 2.316C4.266 2.545 3.757 2.879 3.318 3.318C2.879 3.757 2.545 4.266 2.316 4.844C2.105 5.376 2 5.928 2 6.5C2 7.004 2.082 7.494 2.247 7.97C2.422 8.477 2.68 8.938 3.019 9.352C3.359 9.767 3.76 10.11 4.223 10.381C4.657 10.636 5.122 10.813 5.616 10.912C5.754 10.94 5.861 11.01 5.936 11.124C5.979 11.188 6.005 11.256 6.015 11.328C6.003 11.396 5.998 11.464 6.001 11.532C5.969 11.653 5.901 11.748 5.795 11.819C5.68 11.895 5.555 11.92 5.419 11.893C4.815 11.772 4.248 11.555 3.717 11.244ZM11.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 "search-sparkle" (line-round), MIT. https://gentleface.com/icons/search-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="M3.717 11.244C3.152 10.912 2.661 10.493 2.246 9.986C1.831 9.479 1.516 8.916 1.302 8.297C1.101 7.715 1 7.116 1 6.5C1 5.801 1.129 5.126 1.386 4.475C1.666 3.769 2.074 3.148 2.611 2.611C3.148 2.074 3.769 1.666 4.475 1.386C5.126 1.129 5.801 1 6.5 1C7.116 1 7.715 1.101 8.297 1.302C8.916 1.516 9.479 1.831 9.986 2.246C10.493 2.661 10.912 3.152 11.244 3.717C11.556 4.248 11.772 4.816 11.893 5.42C11.92 5.555 11.895 5.68 11.819 5.795C11.748 5.901 11.653 5.969 11.533 6.001C11.467 5.998 11.401 6.003 11.336 6.014C11.334 6.014 11.333 6.014 11.332 6.014C11.26 6.004 11.191 5.978 11.125 5.934C11.01 5.857 10.939 5.751 10.912 5.616C10.813 5.122 10.636 4.658 10.381 4.223C10.11 3.76 9.767 3.359 9.352 3.019C8.938 2.68 8.477 2.422 7.97 2.247C7.494 2.082 7.004 2 6.5 2C5.928 2 5.376 2.105 4.844 2.316C4.266 2.545 3.757 2.879 3.318 3.318C2.879 3.757 2.545 4.266 2.316 4.844C2.105 5.376 2 5.928 2 6.5C2 7.004 2.082 7.494 2.247 7.97C2.422 8.477 2.68 8.938 3.019 9.352C3.359 9.767 3.76 10.11 4.223 10.381C4.657 10.636 5.122 10.813 5.616 10.912C5.754 10.94 5.861 11.01 5.936 11.124C5.979 11.188 6.005 11.256 6.015 11.328C6.003 11.396 5.998 11.464 6.001 11.532C5.969 11.653 5.901 11.748 5.795 11.819C5.68 11.895 5.555 11.92 5.419 11.893C4.815 11.772 4.248 11.555 3.717 11.244ZM11.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 "search-sparkle" (line-round), MIT. https://gentleface.com/icons/search-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="M3.717 11.244C3.152 10.912 2.661 10.493 2.246 9.986C1.831 9.479 1.516 8.916 1.302 8.297C1.101 7.715 1 7.116 1 6.5C1 5.801 1.129 5.126 1.386 4.475C1.666 3.769 2.074 3.148 2.611 2.611C3.148 2.074 3.769 1.666 4.475 1.386C5.126 1.129 5.801 1 6.5 1C7.116 1 7.715 1.101 8.297 1.302C8.916 1.516 9.479 1.831 9.986 2.246C10.493 2.661 10.912 3.152 11.244 3.717C11.556 4.248 11.772 4.816 11.893 5.42C11.92 5.555 11.895 5.68 11.819 5.795C11.748 5.901 11.653 5.969 11.533 6.001C11.467 5.998 11.401 6.003 11.336 6.014C11.334 6.014 11.333 6.014 11.332 6.014C11.26 6.004 11.191 5.978 11.125 5.934C11.01 5.857 10.939 5.751 10.912 5.616C10.813 5.122 10.636 4.658 10.381 4.223C10.11 3.76 9.767 3.359 9.352 3.019C8.938 2.68 8.477 2.422 7.97 2.247C7.494 2.082 7.004 2 6.5 2C5.928 2 5.376 2.105 4.844 2.316C4.266 2.545 3.757 2.879 3.318 3.318C2.879 3.757 2.545 4.266 2.316 4.844C2.105 5.376 2 5.928 2 6.5C2 7.004 2.082 7.494 2.247 7.97C2.422 8.477 2.68 8.938 3.019 9.352C3.359 9.767 3.76 10.11 4.223 10.381C4.657 10.636 5.122 10.813 5.616 10.912C5.754 10.94 5.861 11.01 5.936 11.124C5.979 11.188 6.005 11.256 6.015 11.328C6.003 11.396 5.998 11.464 6.001 11.532C5.969 11.653 5.901 11.748 5.795 11.819C5.68 11.895 5.555 11.92 5.419 11.893C4.815 11.772 4.248 11.555 3.717 11.244ZM11.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 "search-sparkle" (line-round), MIT. https://gentleface.com/icons/search-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/search-sparkle.svg" width="16" height="16" alt="">
```

### CSS

```css
/* Gentleface "search-sparkle" (line-round), MIT. https://gentleface.com/icons/search-sparkle. Takes the text color. */
.icon-search-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='M3.717 11.244C3.152 10.912 2.661 10.493 2.246 9.986C1.831 9.479 1.516 8.916 1.302 8.297C1.101 7.715 1 7.116 1 6.5C1 5.801 1.129 5.126 1.386 4.475C1.666 3.769 2.074 3.148 2.611 2.611C3.148 2.074 3.769 1.666 4.475 1.386C5.126 1.129 5.801 1 6.5 1C7.116 1 7.715 1.101 8.297 1.302C8.916 1.516 9.479 1.831 9.986 2.246C10.493 2.661 10.912 3.152 11.244 3.717C11.556 4.248 11.772 4.816 11.893 5.42C11.92 5.555 11.895 5.68 11.819 5.795C11.748 5.901 11.653 5.969 11.533 6.001C11.467 5.998 11.401 6.003 11.336 6.014C11.334 6.014 11.333 6.014 11.332 6.014C11.26 6.004 11.191 5.978 11.125 5.934C11.01 5.857 10.939 5.751 10.912 5.616C10.813 5.122 10.636 4.658 10.381 4.223C10.11 3.76 9.767 3.359 9.352 3.019C8.938 2.68 8.477 2.422 7.97 2.247C7.494 2.082 7.004 2 6.5 2C5.928 2 5.376 2.105 4.844 2.316C4.266 2.545 3.757 2.879 3.318 3.318C2.879 3.757 2.545 4.266 2.316 4.844C2.105 5.376 2 5.928 2 6.5C2 7.004 2.082 7.494 2.247 7.97C2.422 8.477 2.68 8.938 3.019 9.352C3.359 9.767 3.76 10.11 4.223 10.381C4.657 10.636 5.122 10.813 5.616 10.912C5.754 10.94 5.861 11.01 5.936 11.124C5.979 11.188 6.005 11.256 6.015 11.328C6.003 11.396 5.998 11.464 6.001 11.532C5.969 11.653 5.901 11.748 5.795 11.819C5.68 11.895 5.555 11.92 5.419 11.893C4.815 11.772 4.248 11.555 3.717 11.244ZM11.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='M3.717 11.244C3.152 10.912 2.661 10.493 2.246 9.986C1.831 9.479 1.516 8.916 1.302 8.297C1.101 7.715 1 7.116 1 6.5C1 5.801 1.129 5.126 1.386 4.475C1.666 3.769 2.074 3.148 2.611 2.611C3.148 2.074 3.769 1.666 4.475 1.386C5.126 1.129 5.801 1 6.5 1C7.116 1 7.715 1.101 8.297 1.302C8.916 1.516 9.479 1.831 9.986 2.246C10.493 2.661 10.912 3.152 11.244 3.717C11.556 4.248 11.772 4.816 11.893 5.42C11.92 5.555 11.895 5.68 11.819 5.795C11.748 5.901 11.653 5.969 11.533 6.001C11.467 5.998 11.401 6.003 11.336 6.014C11.334 6.014 11.333 6.014 11.332 6.014C11.26 6.004 11.191 5.978 11.125 5.934C11.01 5.857 10.939 5.751 10.912 5.616C10.813 5.122 10.636 4.658 10.381 4.223C10.11 3.76 9.767 3.359 9.352 3.019C8.938 2.68 8.477 2.422 7.97 2.247C7.494 2.082 7.004 2 6.5 2C5.928 2 5.376 2.105 4.844 2.316C4.266 2.545 3.757 2.879 3.318 3.318C2.879 3.757 2.545 4.266 2.316 4.844C2.105 5.376 2 5.928 2 6.5C2 7.004 2.082 7.494 2.247 7.97C2.422 8.477 2.68 8.938 3.019 9.352C3.359 9.767 3.76 10.11 4.223 10.381C4.657 10.636 5.122 10.813 5.616 10.912C5.754 10.94 5.861 11.01 5.936 11.124C5.979 11.188 6.005 11.256 6.015 11.328C6.003 11.396 5.998 11.464 6.001 11.532C5.969 11.653 5.901 11.748 5.795 11.819C5.68 11.895 5.555 11.92 5.419 11.893C4.815 11.772 4.248 11.555 3.717 11.244ZM11.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='M3.717 11.244C3.152 10.912 2.661 10.493 2.246 9.986C1.831 9.479 1.516 8.916 1.302 8.297C1.101 7.715 1 7.116 1 6.5C1 5.801 1.129 5.126 1.386 4.475C1.666 3.769 2.074 3.148 2.611 2.611C3.148 2.074 3.769 1.666 4.475 1.386C5.126 1.129 5.801 1 6.5 1C7.116 1 7.715 1.101 8.297 1.302C8.916 1.516 9.479 1.831 9.986 2.246C10.493 2.661 10.912 3.152 11.244 3.717C11.556 4.248 11.772 4.816 11.893 5.42C11.92 5.555 11.895 5.68 11.819 5.795C11.748 5.901 11.653 5.969 11.533 6.001C11.467 5.998 11.401 6.003 11.336 6.014C11.334 6.014 11.333 6.014 11.332 6.014C11.26 6.004 11.191 5.978 11.125 5.934C11.01 5.857 10.939 5.751 10.912 5.616C10.813 5.122 10.636 4.658 10.381 4.223C10.11 3.76 9.767 3.359 9.352 3.019C8.938 2.68 8.477 2.422 7.97 2.247C7.494 2.082 7.004 2 6.5 2C5.928 2 5.376 2.105 4.844 2.316C4.266 2.545 3.757 2.879 3.318 3.318C2.879 3.757 2.545 4.266 2.316 4.844C2.105 5.376 2 5.928 2 6.5C2 7.004 2.082 7.494 2.247 7.97C2.422 8.477 2.68 8.938 3.019 9.352C3.359 9.767 3.76 10.11 4.223 10.381C4.657 10.636 5.122 10.813 5.616 10.912C5.754 10.94 5.861 11.01 5.936 11.124C5.979 11.188 6.005 11.256 6.015 11.328C6.003 11.396 5.998 11.464 6.001 11.532C5.969 11.653 5.901 11.748 5.795 11.819C5.68 11.895 5.555 11.92 5.419 11.893C4.815 11.772 4.248 11.555 3.717 11.244ZM11.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 "search-sparkle" (line-round), MIT. https://gentleface.com/icons/search-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#search-sparkle"/></svg>
```

### SwiftUI

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

struct SearchSparkleIcon: Shape {
    func path(in rect: CGRect) -> Path {
        var p = Path()
        p.move(to: CGPoint(x: 3.717, y: 11.244))
        p.addCurve(to: CGPoint(x: 2.246, y: 9.986), control1: CGPoint(x: 3.152, y: 10.912), control2: CGPoint(x: 2.661, y: 10.493))
        p.addCurve(to: CGPoint(x: 1.302, y: 8.297), control1: CGPoint(x: 1.831, y: 9.479), control2: CGPoint(x: 1.516, y: 8.916))
        p.addCurve(to: CGPoint(x: 1, y: 6.5), control1: CGPoint(x: 1.101, y: 7.715), control2: CGPoint(x: 1, y: 7.116))
        p.addCurve(to: CGPoint(x: 1.386, y: 4.475), control1: CGPoint(x: 1, y: 5.801), control2: CGPoint(x: 1.129, y: 5.126))
        p.addCurve(to: CGPoint(x: 2.611, y: 2.611), control1: CGPoint(x: 1.666, y: 3.769), control2: CGPoint(x: 2.074, y: 3.148))
        p.addCurve(to: CGPoint(x: 4.475, y: 1.386), control1: CGPoint(x: 3.148, y: 2.074), control2: CGPoint(x: 3.769, y: 1.666))
        p.addCurve(to: CGPoint(x: 6.5, y: 1), control1: CGPoint(x: 5.126, y: 1.129), control2: CGPoint(x: 5.801, y: 1))
        p.addCurve(to: CGPoint(x: 8.297, y: 1.302), control1: CGPoint(x: 7.116, y: 1), control2: CGPoint(x: 7.715, y: 1.101))
        p.addCurve(to: CGPoint(x: 9.986, y: 2.246), control1: CGPoint(x: 8.916, y: 1.516), control2: CGPoint(x: 9.479, y: 1.831))
        p.addCurve(to: CGPoint(x: 11.244, y: 3.717), control1: CGPoint(x: 10.493, y: 2.661), control2: CGPoint(x: 10.912, y: 3.152))
        p.addCurve(to: CGPoint(x: 11.893, y: 5.42), control1: CGPoint(x: 11.556, y: 4.248), control2: CGPoint(x: 11.772, y: 4.816))
        p.addCurve(to: CGPoint(x: 11.819, y: 5.795), control1: CGPoint(x: 11.92, y: 5.555), control2: CGPoint(x: 11.895, y: 5.68))
        p.addCurve(to: CGPoint(x: 11.533, y: 6.001), control1: CGPoint(x: 11.748, y: 5.901), control2: CGPoint(x: 11.653, y: 5.969))
        p.addCurve(to: CGPoint(x: 11.336, y: 6.014), control1: CGPoint(x: 11.467, y: 5.998), control2: CGPoint(x: 11.401, y: 6.003))
        p.addCurve(to: CGPoint(x: 11.332, y: 6.014), control1: CGPoint(x: 11.334, y: 6.014), control2: CGPoint(x: 11.333, y: 6.014))
        p.addCurve(to: CGPoint(x: 11.125, y: 5.934), control1: CGPoint(x: 11.26, y: 6.004), control2: CGPoint(x: 11.191, y: 5.978))
        p.addCurve(to: CGPoint(x: 10.912, y: 5.616), control1: CGPoint(x: 11.01, y: 5.857), control2: CGPoint(x: 10.939, y: 5.751))
        p.addCurve(to: CGPoint(x: 10.381, y: 4.223), control1: CGPoint(x: 10.813, y: 5.122), control2: CGPoint(x: 10.636, y: 4.658))
        p.addCurve(to: CGPoint(x: 9.352, y: 3.019), control1: CGPoint(x: 10.11, y: 3.76), control2: CGPoint(x: 9.767, y: 3.359))
        p.addCurve(to: CGPoint(x: 7.97, y: 2.247), control1: CGPoint(x: 8.938, y: 2.68), control2: CGPoint(x: 8.477, y: 2.422))
        p.addCurve(to: CGPoint(x: 6.5, y: 2), control1: CGPoint(x: 7.494, y: 2.082), control2: CGPoint(x: 7.004, y: 2))
        p.addCurve(to: CGPoint(x: 4.844, y: 2.316), control1: CGPoint(x: 5.928, y: 2), control2: CGPoint(x: 5.376, y: 2.105))
        p.addCurve(to: CGPoint(x: 3.318, y: 3.318), control1: CGPoint(x: 4.266, y: 2.545), control2: CGPoint(x: 3.757, y: 2.879))
        p.addCurve(to: CGPoint(x: 2.316, y: 4.844), control1: CGPoint(x: 2.879, y: 3.757), control2: CGPoint(x: 2.545, y: 4.266))
        p.addCurve(to: CGPoint(x: 2, y: 6.5), control1: CGPoint(x: 2.105, y: 5.376), control2: CGPoint(x: 2, y: 5.928))
        p.addCurve(to: CGPoint(x: 2.247, y: 7.97), control1: CGPoint(x: 2, y: 7.004), control2: CGPoint(x: 2.082, y: 7.494))
        p.addCurve(to: CGPoint(x: 3.019, y: 9.352), control1: CGPoint(x: 2.422, y: 8.477), control2: CGPoint(x: 2.68, y: 8.938))
        p.addCurve(to: CGPoint(x: 4.223, y: 10.381), control1: CGPoint(x: 3.359, y: 9.767), control2: CGPoint(x: 3.76, y: 10.11))
        p.addCurve(to: CGPoint(x: 5.616, y: 10.912), control1: CGPoint(x: 4.657, y: 10.636), control2: CGPoint(x: 5.122, y: 10.813))
        p.addCurve(to: CGPoint(x: 5.936, y: 11.124), control1: CGPoint(x: 5.754, y: 10.94), control2: CGPoint(x: 5.861, y: 11.01))
        p.addCurve(to: CGPoint(x: 6.015, y: 11.328), control1: CGPoint(x: 5.979, y: 11.188), control2: CGPoint(x: 6.005, y: 11.256))
        p.addCurve(to: CGPoint(x: 6.001, y: 11.532), control1: CGPoint(x: 6.003, y: 11.396), control2: CGPoint(x: 5.998, y: 11.464))
        p.addCurve(to: CGPoint(x: 5.795, y: 11.819), control1: CGPoint(x: 5.969, y: 11.653), control2: CGPoint(x: 5.901, y: 11.748))
        p.addCurve(to: CGPoint(x: 5.419, y: 11.893), control1: CGPoint(x: 5.68, y: 11.895), control2: CGPoint(x: 5.555, y: 11.92))
        p.addCurve(to: CGPoint(x: 3.717, y: 11.244), control1: CGPoint(x: 4.815, y: 11.772), control2: CGPoint(x: 4.248, y: 11.555))
        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))
    }
}

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

### Compose

```kotlin
// Gentleface "search-sparkle" (line-round), MIT. https://gentleface.com/icons/search-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 SearchSparkleIcon: ImageVector by lazy {
    ImageVector.Builder(
        name = "search-sparkle", defaultWidth = 16.dp, defaultHeight = 16.dp,
        viewportWidth = 16f, viewportHeight = 16f,
    ).addPath(
        pathData = addPathNodes("M3.717 11.244C3.152 10.912 2.661 10.493 2.246 9.986C1.831 9.479 1.516 8.916 1.302 8.297C1.101 7.715 1 7.116 1 6.5C1 5.801 1.129 5.126 1.386 4.475C1.666 3.769 2.074 3.148 2.611 2.611C3.148 2.074 3.769 1.666 4.475 1.386C5.126 1.129 5.801 1 6.5 1C7.116 1 7.715 1.101 8.297 1.302C8.916 1.516 9.479 1.831 9.986 2.246C10.493 2.661 10.912 3.152 11.244 3.717C11.556 4.248 11.772 4.816 11.893 5.42C11.92 5.555 11.895 5.68 11.819 5.795C11.748 5.901 11.653 5.969 11.533 6.001C11.467 5.998 11.401 6.003 11.336 6.014C11.334 6.014 11.333 6.014 11.332 6.014C11.26 6.004 11.191 5.978 11.125 5.934C11.01 5.857 10.939 5.751 10.912 5.616C10.813 5.122 10.636 4.658 10.381 4.223C10.11 3.76 9.767 3.359 9.352 3.019C8.938 2.68 8.477 2.422 7.97 2.247C7.494 2.082 7.004 2 6.5 2C5.928 2 5.376 2.105 4.844 2.316C4.266 2.545 3.757 2.879 3.318 3.318C2.879 3.757 2.545 4.266 2.316 4.844C2.105 5.376 2 5.928 2 6.5C2 7.004 2.082 7.494 2.247 7.97C2.422 8.477 2.68 8.938 3.019 9.352C3.359 9.767 3.76 10.11 4.223 10.381C4.657 10.636 5.122 10.813 5.616 10.912C5.754 10.94 5.861 11.01 5.936 11.124C5.979 11.188 6.005 11.256 6.015 11.328C6.003 11.396 5.998 11.464 6.001 11.532C5.969 11.653 5.901 11.748 5.795 11.819C5.68 11.895 5.555 11.92 5.419 11.893C4.815 11.772 4.248 11.555 3.717 11.244ZM11.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(SearchSparkleIcon, contentDescription = null) tints it with LocalContentColor.
```

### Android XML

```xml
<!-- res/drawable/ic_search_sparkle.xml · Gentleface "search-sparkle" (line-round), MIT. https://gentleface.com/icons/search-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="M3.717 11.244C3.152 10.912 2.661 10.493 2.246 9.986C1.831 9.479 1.516 8.916 1.302 8.297C1.101 7.715 1 7.116 1 6.5C1 5.801 1.129 5.126 1.386 4.475C1.666 3.769 2.074 3.148 2.611 2.611C3.148 2.074 3.769 1.666 4.475 1.386C5.126 1.129 5.801 1 6.5 1C7.116 1 7.715 1.101 8.297 1.302C8.916 1.516 9.479 1.831 9.986 2.246C10.493 2.661 10.912 3.152 11.244 3.717C11.556 4.248 11.772 4.816 11.893 5.42C11.92 5.555 11.895 5.68 11.819 5.795C11.748 5.901 11.653 5.969 11.533 6.001C11.467 5.998 11.401 6.003 11.336 6.014C11.334 6.014 11.333 6.014 11.332 6.014C11.26 6.004 11.191 5.978 11.125 5.934C11.01 5.857 10.939 5.751 10.912 5.616C10.813 5.122 10.636 4.658 10.381 4.223C10.11 3.76 9.767 3.359 9.352 3.019C8.938 2.68 8.477 2.422 7.97 2.247C7.494 2.082 7.004 2 6.5 2C5.928 2 5.376 2.105 4.844 2.316C4.266 2.545 3.757 2.879 3.318 3.318C2.879 3.757 2.545 4.266 2.316 4.844C2.105 5.376 2 5.928 2 6.5C2 7.004 2.082 7.494 2.247 7.97C2.422 8.477 2.68 8.938 3.019 9.352C3.359 9.767 3.76 10.11 4.223 10.381C4.657 10.636 5.122 10.813 5.616 10.912C5.754 10.94 5.861 11.01 5.936 11.124C5.979 11.188 6.005 11.256 6.015 11.328C6.003 11.396 5.998 11.464 6.001 11.532C5.969 11.653 5.901 11.748 5.795 11.819C5.68 11.895 5.555 11.92 5.419 11.893C4.815 11.772 4.248 11.555 3.717 11.244ZM11.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 "search-sparkle" (line-round), MIT. https://gentleface.com/icons/search-sparkle
import 'package:flutter/widgets.dart';

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

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

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

  @override
  void paint(Canvas canvas, Size size) {
    canvas.scale(size.width / 16, size.height / 16);
    final p = Path()
      ..moveTo(3.717, 11.244)
      ..cubicTo(3.152, 10.912, 2.661, 10.493, 2.246, 9.986)
      ..cubicTo(1.831, 9.479, 1.516, 8.916, 1.302, 8.297)
      ..cubicTo(1.101, 7.715, 1, 7.116, 1, 6.5)
      ..cubicTo(1, 5.801, 1.129, 5.126, 1.386, 4.475)
      ..cubicTo(1.666, 3.769, 2.074, 3.148, 2.611, 2.611)
      ..cubicTo(3.148, 2.074, 3.769, 1.666, 4.475, 1.386)
      ..cubicTo(5.126, 1.129, 5.801, 1, 6.5, 1)
      ..cubicTo(7.116, 1, 7.715, 1.101, 8.297, 1.302)
      ..cubicTo(8.916, 1.516, 9.479, 1.831, 9.986, 2.246)
      ..cubicTo(10.493, 2.661, 10.912, 3.152, 11.244, 3.717)
      ..cubicTo(11.556, 4.248, 11.772, 4.816, 11.893, 5.42)
      ..cubicTo(11.92, 5.555, 11.895, 5.68, 11.819, 5.795)
      ..cubicTo(11.748, 5.901, 11.653, 5.969, 11.533, 6.001)
      ..cubicTo(11.467, 5.998, 11.401, 6.003, 11.336, 6.014)
      ..cubicTo(11.334, 6.014, 11.333, 6.014, 11.332, 6.014)
      ..cubicTo(11.26, 6.004, 11.191, 5.978, 11.125, 5.934)
      ..cubicTo(11.01, 5.857, 10.939, 5.751, 10.912, 5.616)
      ..cubicTo(10.813, 5.122, 10.636, 4.658, 10.381, 4.223)
      ..cubicTo(10.11, 3.76, 9.767, 3.359, 9.352, 3.019)
      ..cubicTo(8.938, 2.68, 8.477, 2.422, 7.97, 2.247)
      ..cubicTo(7.494, 2.082, 7.004, 2, 6.5, 2)
      ..cubicTo(5.928, 2, 5.376, 2.105, 4.844, 2.316)
      ..cubicTo(4.266, 2.545, 3.757, 2.879, 3.318, 3.318)
      ..cubicTo(2.879, 3.757, 2.545, 4.266, 2.316, 4.844)
      ..cubicTo(2.105, 5.376, 2, 5.928, 2, 6.5)
      ..cubicTo(2, 7.004, 2.082, 7.494, 2.247, 7.97)
      ..cubicTo(2.422, 8.477, 2.68, 8.938, 3.019, 9.352)
      ..cubicTo(3.359, 9.767, 3.76, 10.11, 4.223, 10.381)
      ..cubicTo(4.657, 10.636, 5.122, 10.813, 5.616, 10.912)
      ..cubicTo(5.754, 10.94, 5.861, 11.01, 5.936, 11.124)
      ..cubicTo(5.979, 11.188, 6.005, 11.256, 6.015, 11.328)
      ..cubicTo(6.003, 11.396, 5.998, 11.464, 6.001, 11.532)
      ..cubicTo(5.969, 11.653, 5.901, 11.748, 5.795, 11.819)
      ..cubicTo(5.68, 11.895, 5.555, 11.92, 5.419, 11.893)
      ..cubicTo(4.815, 11.772, 4.248, 11.555, 3.717, 11.244)
      ..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(_SearchSparkleIconPainter old) => old.color != color;
}
```
