# quote icon

Quote. Gentleface icon, drawn on the 16 px pixel grid. Free, MIT licensed. Page: https://gentleface.com/icons/quote

- Category: Text & formatting
- Use it for: quote, blockquote, quotation, citation, block quote
- Tags: quote, quotation-marks, blockquote, citation, testimonial
- Family: quote-round
- Component name: QuoteIcon
- Added: 2026-10-14

## Alternatives

- `quote-round`: rounded quotation marks instead of the default drawing; pick one per product
- `message-quote`: a customer quote or a testimonial (testimonial)

## Also fits

- quote reply: a blockquote in text formatting

## 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/quote.svg · PNG https://gentleface.com/png/line-round/16/quote.png · https://gentleface.com/png/line-round/32/quote.png · https://gentleface.com/png/line-round/48/quote.png
- line-soft: https://gentleface.com/svg/line-soft/16/quote.svg · PNG https://gentleface.com/png/line-soft/16/quote.png · https://gentleface.com/png/line-soft/32/quote.png · https://gentleface.com/png/line-soft/48/quote.png
- line-sharp: https://gentleface.com/svg/line-sharp/16/quote.svg · PNG https://gentleface.com/png/line-sharp/16/quote.png · https://gentleface.com/png/line-sharp/32/quote.png · https://gentleface.com/png/line-sharp/48/quote.png
- solid-round: https://gentleface.com/svg/solid-round/16/quote.svg · PNG https://gentleface.com/png/solid-round/16/quote.png · https://gentleface.com/png/solid-round/32/quote.png · https://gentleface.com/png/solid-round/48/quote.png
- solid-soft: https://gentleface.com/svg/solid-soft/16/quote.svg · PNG https://gentleface.com/png/solid-soft/16/quote.png · https://gentleface.com/png/solid-soft/32/quote.png · https://gentleface.com/png/solid-soft/48/quote.png
- solid-sharp: https://gentleface.com/svg/solid-sharp/16/quote.svg · PNG https://gentleface.com/png/solid-sharp/16/quote.png · https://gentleface.com/png/solid-sharp/32/quote.png · https://gentleface.com/png/solid-sharp/48/quote.png

The SVG of every style: https://gentleface.com/icons/quote.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="M6.956 7.294C6.985 7.36 7 7.428 7 7.5L7 8.5C7 8.945 6.918 9.375 6.754 9.788C6.576 10.238 6.317 10.633 5.975 10.975C5.633 11.317 5.238 11.576 4.788 11.754C4.375 11.918 3.945 12 3.5 12C3.359 12 3.241 11.952 3.144 11.856C3.048 11.759 3 11.641 3 11.5C3 11.359 3.048 11.241 3.144 11.144C3.241 11.048 3.359 11 3.5 11C3.818 11 4.125 10.941 4.42 10.824C4.741 10.697 5.024 10.512 5.268 10.268C5.512 10.024 5.697 9.741 5.824 9.42C5.941 9.125 6 8.818 6 8.5L6 8L2 8C1.724 8 1.488 7.902 1.293 7.707C1.098 7.512 1 7.276 1 7L1 4C1 3.724 1.098 3.488 1.293 3.293C1.488 3.098 1.724 3 2 3L6 3C6.276 3 6.512 3.098 6.707 3.293C6.902 3.488 7 3.724 7 4L7 7C7 7.1 6.985 7.198 6.956 7.294ZM14.956 7.294C14.985 7.36 15 7.428 15 7.5L15 8.5C15 8.945 14.918 9.375 14.754 9.788C14.576 10.238 14.317 10.633 13.975 10.975C13.633 11.317 13.238 11.576 12.788 11.754C12.375 11.918 11.945 12 11.5 12C11.359 12 11.241 11.952 11.144 11.856C11.048 11.759 11 11.641 11 11.5C11 11.359 11.048 11.241 11.144 11.144C11.241 11.048 11.359 11 11.5 11C11.818 11 12.125 10.941 12.42 10.824C12.741 10.697 13.024 10.512 13.268 10.268C13.512 10.024 13.697 9.741 13.824 9.42C13.941 9.125 14 8.818 14 8.5L14 8L10 8C9.724 8 9.488 7.902 9.293 7.707C9.098 7.512 9 7.276 9 7L9 4C9 3.724 9.098 3.488 9.293 3.293C9.488 3.098 9.724 3 10 3L14 3C14.276 3 14.512 3.098 14.707 3.293C14.902 3.488 15 3.724 15 4L15 7C15 7.1 14.985 7.198 14.956 7.294Z"/></svg>
```

### React

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

export function QuoteIcon(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="M6.956 7.294C6.985 7.36 7 7.428 7 7.5L7 8.5C7 8.945 6.918 9.375 6.754 9.788C6.576 10.238 6.317 10.633 5.975 10.975C5.633 11.317 5.238 11.576 4.788 11.754C4.375 11.918 3.945 12 3.5 12C3.359 12 3.241 11.952 3.144 11.856C3.048 11.759 3 11.641 3 11.5C3 11.359 3.048 11.241 3.144 11.144C3.241 11.048 3.359 11 3.5 11C3.818 11 4.125 10.941 4.42 10.824C4.741 10.697 5.024 10.512 5.268 10.268C5.512 10.024 5.697 9.741 5.824 9.42C5.941 9.125 6 8.818 6 8.5L6 8L2 8C1.724 8 1.488 7.902 1.293 7.707C1.098 7.512 1 7.276 1 7L1 4C1 3.724 1.098 3.488 1.293 3.293C1.488 3.098 1.724 3 2 3L6 3C6.276 3 6.512 3.098 6.707 3.293C6.902 3.488 7 3.724 7 4L7 7C7 7.1 6.985 7.198 6.956 7.294ZM14.956 7.294C14.985 7.36 15 7.428 15 7.5L15 8.5C15 8.945 14.918 9.375 14.754 9.788C14.576 10.238 14.317 10.633 13.975 10.975C13.633 11.317 13.238 11.576 12.788 11.754C12.375 11.918 11.945 12 11.5 12C11.359 12 11.241 11.952 11.144 11.856C11.048 11.759 11 11.641 11 11.5C11 11.359 11.048 11.241 11.144 11.144C11.241 11.048 11.359 11 11.5 11C11.818 11 12.125 10.941 12.42 10.824C12.741 10.697 13.024 10.512 13.268 10.268C13.512 10.024 13.697 9.741 13.824 9.42C13.941 9.125 14 8.818 14 8.5L14 8L10 8C9.724 8 9.488 7.902 9.293 7.707C9.098 7.512 9 7.276 9 7L9 4C9 3.724 9.098 3.488 9.293 3.293C9.488 3.098 9.724 3 10 3L14 3C14.276 3 14.512 3.098 14.707 3.293C14.902 3.488 15 3.724 15 4L15 7C15 7.1 14.985 7.198 14.956 7.294Z" />
    </svg>
  );
}
```

### Vue

```vue
<!-- Gentleface "quote" (line-round), MIT. https://gentleface.com/icons/quote -->
<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="M6.956 7.294C6.985 7.36 7 7.428 7 7.5L7 8.5C7 8.945 6.918 9.375 6.754 9.788C6.576 10.238 6.317 10.633 5.975 10.975C5.633 11.317 5.238 11.576 4.788 11.754C4.375 11.918 3.945 12 3.5 12C3.359 12 3.241 11.952 3.144 11.856C3.048 11.759 3 11.641 3 11.5C3 11.359 3.048 11.241 3.144 11.144C3.241 11.048 3.359 11 3.5 11C3.818 11 4.125 10.941 4.42 10.824C4.741 10.697 5.024 10.512 5.268 10.268C5.512 10.024 5.697 9.741 5.824 9.42C5.941 9.125 6 8.818 6 8.5L6 8L2 8C1.724 8 1.488 7.902 1.293 7.707C1.098 7.512 1 7.276 1 7L1 4C1 3.724 1.098 3.488 1.293 3.293C1.488 3.098 1.724 3 2 3L6 3C6.276 3 6.512 3.098 6.707 3.293C6.902 3.488 7 3.724 7 4L7 7C7 7.1 6.985 7.198 6.956 7.294ZM14.956 7.294C14.985 7.36 15 7.428 15 7.5L15 8.5C15 8.945 14.918 9.375 14.754 9.788C14.576 10.238 14.317 10.633 13.975 10.975C13.633 11.317 13.238 11.576 12.788 11.754C12.375 11.918 11.945 12 11.5 12C11.359 12 11.241 11.952 11.144 11.856C11.048 11.759 11 11.641 11 11.5C11 11.359 11.048 11.241 11.144 11.144C11.241 11.048 11.359 11 11.5 11C11.818 11 12.125 10.941 12.42 10.824C12.741 10.697 13.024 10.512 13.268 10.268C13.512 10.024 13.697 9.741 13.824 9.42C13.941 9.125 14 8.818 14 8.5L14 8L10 8C9.724 8 9.488 7.902 9.293 7.707C9.098 7.512 9 7.276 9 7L9 4C9 3.724 9.098 3.488 9.293 3.293C9.488 3.098 9.724 3 10 3L14 3C14.276 3 14.512 3.098 14.707 3.293C14.902 3.488 15 3.724 15 4L15 7C15 7.1 14.985 7.198 14.956 7.294Z" />
  </svg>
</template>
```

### Svelte

```svelte
<!-- Gentleface "quote" (line-round), MIT. https://gentleface.com/icons/quote -->
<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="M6.956 7.294C6.985 7.36 7 7.428 7 7.5L7 8.5C7 8.945 6.918 9.375 6.754 9.788C6.576 10.238 6.317 10.633 5.975 10.975C5.633 11.317 5.238 11.576 4.788 11.754C4.375 11.918 3.945 12 3.5 12C3.359 12 3.241 11.952 3.144 11.856C3.048 11.759 3 11.641 3 11.5C3 11.359 3.048 11.241 3.144 11.144C3.241 11.048 3.359 11 3.5 11C3.818 11 4.125 10.941 4.42 10.824C4.741 10.697 5.024 10.512 5.268 10.268C5.512 10.024 5.697 9.741 5.824 9.42C5.941 9.125 6 8.818 6 8.5L6 8L2 8C1.724 8 1.488 7.902 1.293 7.707C1.098 7.512 1 7.276 1 7L1 4C1 3.724 1.098 3.488 1.293 3.293C1.488 3.098 1.724 3 2 3L6 3C6.276 3 6.512 3.098 6.707 3.293C6.902 3.488 7 3.724 7 4L7 7C7 7.1 6.985 7.198 6.956 7.294ZM14.956 7.294C14.985 7.36 15 7.428 15 7.5L15 8.5C15 8.945 14.918 9.375 14.754 9.788C14.576 10.238 14.317 10.633 13.975 10.975C13.633 11.317 13.238 11.576 12.788 11.754C12.375 11.918 11.945 12 11.5 12C11.359 12 11.241 11.952 11.144 11.856C11.048 11.759 11 11.641 11 11.5C11 11.359 11.048 11.241 11.144 11.144C11.241 11.048 11.359 11 11.5 11C11.818 11 12.125 10.941 12.42 10.824C12.741 10.697 13.024 10.512 13.268 10.268C13.512 10.024 13.697 9.741 13.824 9.42C13.941 9.125 14 8.818 14 8.5L14 8L10 8C9.724 8 9.488 7.902 9.293 7.707C9.098 7.512 9 7.276 9 7L9 4C9 3.724 9.098 3.488 9.293 3.293C9.488 3.098 9.724 3 10 3L14 3C14.276 3 14.512 3.098 14.707 3.293C14.902 3.488 15 3.724 15 4L15 7C15 7.1 14.985 7.198 14.956 7.294Z" />
</svg>
```

### HTML img

```html
<!-- Gentleface "quote" (line-round), MIT. https://gentleface.com/icons/quote. 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/quote.svg" width="16" height="16" alt="">
```

### CSS

```css
/* Gentleface "quote" (line-round), MIT. https://gentleface.com/icons/quote. Takes the text color. */
.icon-quote {
  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='M6.956 7.294C6.985 7.36 7 7.428 7 7.5L7 8.5C7 8.945 6.918 9.375 6.754 9.788C6.576 10.238 6.317 10.633 5.975 10.975C5.633 11.317 5.238 11.576 4.788 11.754C4.375 11.918 3.945 12 3.5 12C3.359 12 3.241 11.952 3.144 11.856C3.048 11.759 3 11.641 3 11.5C3 11.359 3.048 11.241 3.144 11.144C3.241 11.048 3.359 11 3.5 11C3.818 11 4.125 10.941 4.42 10.824C4.741 10.697 5.024 10.512 5.268 10.268C5.512 10.024 5.697 9.741 5.824 9.42C5.941 9.125 6 8.818 6 8.5L6 8L2 8C1.724 8 1.488 7.902 1.293 7.707C1.098 7.512 1 7.276 1 7L1 4C1 3.724 1.098 3.488 1.293 3.293C1.488 3.098 1.724 3 2 3L6 3C6.276 3 6.512 3.098 6.707 3.293C6.902 3.488 7 3.724 7 4L7 7C7 7.1 6.985 7.198 6.956 7.294ZM14.956 7.294C14.985 7.36 15 7.428 15 7.5L15 8.5C15 8.945 14.918 9.375 14.754 9.788C14.576 10.238 14.317 10.633 13.975 10.975C13.633 11.317 13.238 11.576 12.788 11.754C12.375 11.918 11.945 12 11.5 12C11.359 12 11.241 11.952 11.144 11.856C11.048 11.759 11 11.641 11 11.5C11 11.359 11.048 11.241 11.144 11.144C11.241 11.048 11.359 11 11.5 11C11.818 11 12.125 10.941 12.42 10.824C12.741 10.697 13.024 10.512 13.268 10.268C13.512 10.024 13.697 9.741 13.824 9.42C13.941 9.125 14 8.818 14 8.5L14 8L10 8C9.724 8 9.488 7.902 9.293 7.707C9.098 7.512 9 7.276 9 7L9 4C9 3.724 9.098 3.488 9.293 3.293C9.488 3.098 9.724 3 10 3L14 3C14.276 3 14.512 3.098 14.707 3.293C14.902 3.488 15 3.724 15 4L15 7C15 7.1 14.985 7.198 14.956 7.294Z'/%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='M6.956 7.294C6.985 7.36 7 7.428 7 7.5L7 8.5C7 8.945 6.918 9.375 6.754 9.788C6.576 10.238 6.317 10.633 5.975 10.975C5.633 11.317 5.238 11.576 4.788 11.754C4.375 11.918 3.945 12 3.5 12C3.359 12 3.241 11.952 3.144 11.856C3.048 11.759 3 11.641 3 11.5C3 11.359 3.048 11.241 3.144 11.144C3.241 11.048 3.359 11 3.5 11C3.818 11 4.125 10.941 4.42 10.824C4.741 10.697 5.024 10.512 5.268 10.268C5.512 10.024 5.697 9.741 5.824 9.42C5.941 9.125 6 8.818 6 8.5L6 8L2 8C1.724 8 1.488 7.902 1.293 7.707C1.098 7.512 1 7.276 1 7L1 4C1 3.724 1.098 3.488 1.293 3.293C1.488 3.098 1.724 3 2 3L6 3C6.276 3 6.512 3.098 6.707 3.293C6.902 3.488 7 3.724 7 4L7 7C7 7.1 6.985 7.198 6.956 7.294ZM14.956 7.294C14.985 7.36 15 7.428 15 7.5L15 8.5C15 8.945 14.918 9.375 14.754 9.788C14.576 10.238 14.317 10.633 13.975 10.975C13.633 11.317 13.238 11.576 12.788 11.754C12.375 11.918 11.945 12 11.5 12C11.359 12 11.241 11.952 11.144 11.856C11.048 11.759 11 11.641 11 11.5C11 11.359 11.048 11.241 11.144 11.144C11.241 11.048 11.359 11 11.5 11C11.818 11 12.125 10.941 12.42 10.824C12.741 10.697 13.024 10.512 13.268 10.268C13.512 10.024 13.697 9.741 13.824 9.42C13.941 9.125 14 8.818 14 8.5L14 8L10 8C9.724 8 9.488 7.902 9.293 7.707C9.098 7.512 9 7.276 9 7L9 4C9 3.724 9.098 3.488 9.293 3.293C9.488 3.098 9.724 3 10 3L14 3C14.276 3 14.512 3.098 14.707 3.293C14.902 3.488 15 3.724 15 4L15 7C15 7.1 14.985 7.198 14.956 7.294Z'/%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='M6.956 7.294C6.985 7.36 7 7.428 7 7.5L7 8.5C7 8.945 6.918 9.375 6.754 9.788C6.576 10.238 6.317 10.633 5.975 10.975C5.633 11.317 5.238 11.576 4.788 11.754C4.375 11.918 3.945 12 3.5 12C3.359 12 3.241 11.952 3.144 11.856C3.048 11.759 3 11.641 3 11.5C3 11.359 3.048 11.241 3.144 11.144C3.241 11.048 3.359 11 3.5 11C3.818 11 4.125 10.941 4.42 10.824C4.741 10.697 5.024 10.512 5.268 10.268C5.512 10.024 5.697 9.741 5.824 9.42C5.941 9.125 6 8.818 6 8.5L6 8L2 8C1.724 8 1.488 7.902 1.293 7.707C1.098 7.512 1 7.276 1 7L1 4C1 3.724 1.098 3.488 1.293 3.293C1.488 3.098 1.724 3 2 3L6 3C6.276 3 6.512 3.098 6.707 3.293C6.902 3.488 7 3.724 7 4L7 7C7 7.1 6.985 7.198 6.956 7.294ZM14.956 7.294C14.985 7.36 15 7.428 15 7.5L15 8.5C15 8.945 14.918 9.375 14.754 9.788C14.576 10.238 14.317 10.633 13.975 10.975C13.633 11.317 13.238 11.576 12.788 11.754C12.375 11.918 11.945 12 11.5 12C11.359 12 11.241 11.952 11.144 11.856C11.048 11.759 11 11.641 11 11.5C11 11.359 11.048 11.241 11.144 11.144C11.241 11.048 11.359 11 11.5 11C11.818 11 12.125 10.941 12.42 10.824C12.741 10.697 13.024 10.512 13.268 10.268C13.512 10.024 13.697 9.741 13.824 9.42C13.941 9.125 14 8.818 14 8.5L14 8L10 8C9.724 8 9.488 7.902 9.293 7.707C9.098 7.512 9 7.276 9 7L9 4C9 3.724 9.098 3.488 9.293 3.293C9.488 3.098 9.724 3 10 3L14 3C14.276 3 14.512 3.098 14.707 3.293C14.902 3.488 15 3.724 15 4L15 7C15 7.1 14.985 7.198 14.956 7.294Z'/%3E%3C/svg%3E
```

### Sprite

```html
<!-- Gentleface "quote" (line-round), MIT. https://gentleface.com/icons/quote
     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#quote"/></svg>
```

### SwiftUI

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

struct QuoteIcon: Shape {
    func path(in rect: CGRect) -> Path {
        var p = Path()
        p.move(to: CGPoint(x: 6.956, y: 7.294))
        p.addCurve(to: CGPoint(x: 7, y: 7.5), control1: CGPoint(x: 6.985, y: 7.36), control2: CGPoint(x: 7, y: 7.428))
        p.addLine(to: CGPoint(x: 7, y: 8.5))
        p.addCurve(to: CGPoint(x: 6.754, y: 9.788), control1: CGPoint(x: 7, y: 8.945), control2: CGPoint(x: 6.918, y: 9.375))
        p.addCurve(to: CGPoint(x: 5.975, y: 10.975), control1: CGPoint(x: 6.576, y: 10.238), control2: CGPoint(x: 6.317, y: 10.633))
        p.addCurve(to: CGPoint(x: 4.788, y: 11.754), control1: CGPoint(x: 5.633, y: 11.317), control2: CGPoint(x: 5.238, y: 11.576))
        p.addCurve(to: CGPoint(x: 3.5, y: 12), control1: CGPoint(x: 4.375, y: 11.918), control2: CGPoint(x: 3.945, y: 12))
        p.addCurve(to: CGPoint(x: 3.144, y: 11.856), control1: CGPoint(x: 3.359, y: 12), control2: CGPoint(x: 3.241, y: 11.952))
        p.addCurve(to: CGPoint(x: 3, y: 11.5), control1: CGPoint(x: 3.048, y: 11.759), control2: CGPoint(x: 3, y: 11.641))
        p.addCurve(to: CGPoint(x: 3.144, y: 11.144), control1: CGPoint(x: 3, y: 11.359), control2: CGPoint(x: 3.048, y: 11.241))
        p.addCurve(to: CGPoint(x: 3.5, y: 11), control1: CGPoint(x: 3.241, y: 11.048), control2: CGPoint(x: 3.359, y: 11))
        p.addCurve(to: CGPoint(x: 4.42, y: 10.824), control1: CGPoint(x: 3.818, y: 11), control2: CGPoint(x: 4.125, y: 10.941))
        p.addCurve(to: CGPoint(x: 5.268, y: 10.268), control1: CGPoint(x: 4.741, y: 10.697), control2: CGPoint(x: 5.024, y: 10.512))
        p.addCurve(to: CGPoint(x: 5.824, y: 9.42), control1: CGPoint(x: 5.512, y: 10.024), control2: CGPoint(x: 5.697, y: 9.741))
        p.addCurve(to: CGPoint(x: 6, y: 8.5), control1: CGPoint(x: 5.941, y: 9.125), control2: CGPoint(x: 6, y: 8.818))
        p.addLine(to: CGPoint(x: 6, y: 8))
        p.addLine(to: CGPoint(x: 2, y: 8))
        p.addCurve(to: CGPoint(x: 1.293, y: 7.707), control1: CGPoint(x: 1.724, y: 8), control2: CGPoint(x: 1.488, y: 7.902))
        p.addCurve(to: CGPoint(x: 1, y: 7), control1: CGPoint(x: 1.098, y: 7.512), control2: CGPoint(x: 1, y: 7.276))
        p.addLine(to: CGPoint(x: 1, y: 4))
        p.addCurve(to: CGPoint(x: 1.293, y: 3.293), control1: CGPoint(x: 1, y: 3.724), control2: CGPoint(x: 1.098, y: 3.488))
        p.addCurve(to: CGPoint(x: 2, y: 3), control1: CGPoint(x: 1.488, y: 3.098), control2: CGPoint(x: 1.724, y: 3))
        p.addLine(to: CGPoint(x: 6, y: 3))
        p.addCurve(to: CGPoint(x: 6.707, y: 3.293), control1: CGPoint(x: 6.276, y: 3), control2: CGPoint(x: 6.512, y: 3.098))
        p.addCurve(to: CGPoint(x: 7, y: 4), control1: CGPoint(x: 6.902, y: 3.488), control2: CGPoint(x: 7, y: 3.724))
        p.addLine(to: CGPoint(x: 7, y: 7))
        p.addCurve(to: CGPoint(x: 6.956, y: 7.294), control1: CGPoint(x: 7, y: 7.1), control2: CGPoint(x: 6.985, y: 7.198))
        p.closeSubpath()
        p.move(to: CGPoint(x: 14.956, y: 7.294))
        p.addCurve(to: CGPoint(x: 15, y: 7.5), control1: CGPoint(x: 14.985, y: 7.36), control2: CGPoint(x: 15, y: 7.428))
        p.addLine(to: CGPoint(x: 15, y: 8.5))
        p.addCurve(to: CGPoint(x: 14.754, y: 9.788), control1: CGPoint(x: 15, y: 8.945), control2: CGPoint(x: 14.918, y: 9.375))
        p.addCurve(to: CGPoint(x: 13.975, y: 10.975), control1: CGPoint(x: 14.576, y: 10.238), control2: CGPoint(x: 14.317, y: 10.633))
        p.addCurve(to: CGPoint(x: 12.788, y: 11.754), control1: CGPoint(x: 13.633, y: 11.317), control2: CGPoint(x: 13.238, y: 11.576))
        p.addCurve(to: CGPoint(x: 11.5, y: 12), control1: CGPoint(x: 12.375, y: 11.918), control2: CGPoint(x: 11.945, y: 12))
        p.addCurve(to: CGPoint(x: 11.144, y: 11.856), control1: CGPoint(x: 11.359, y: 12), control2: CGPoint(x: 11.241, y: 11.952))
        p.addCurve(to: CGPoint(x: 11, y: 11.5), control1: CGPoint(x: 11.048, y: 11.759), control2: CGPoint(x: 11, y: 11.641))
        p.addCurve(to: CGPoint(x: 11.144, y: 11.144), control1: CGPoint(x: 11, y: 11.359), control2: CGPoint(x: 11.048, y: 11.241))
        p.addCurve(to: CGPoint(x: 11.5, y: 11), control1: CGPoint(x: 11.241, y: 11.048), control2: CGPoint(x: 11.359, y: 11))
        p.addCurve(to: CGPoint(x: 12.42, y: 10.824), control1: CGPoint(x: 11.818, y: 11), control2: CGPoint(x: 12.125, y: 10.941))
        p.addCurve(to: CGPoint(x: 13.268, y: 10.268), control1: CGPoint(x: 12.741, y: 10.697), control2: CGPoint(x: 13.024, y: 10.512))
        p.addCurve(to: CGPoint(x: 13.824, y: 9.42), control1: CGPoint(x: 13.512, y: 10.024), control2: CGPoint(x: 13.697, y: 9.741))
        p.addCurve(to: CGPoint(x: 14, y: 8.5), control1: CGPoint(x: 13.941, y: 9.125), control2: CGPoint(x: 14, y: 8.818))
        p.addLine(to: CGPoint(x: 14, y: 8))
        p.addLine(to: CGPoint(x: 10, y: 8))
        p.addCurve(to: CGPoint(x: 9.293, y: 7.707), control1: CGPoint(x: 9.724, y: 8), control2: CGPoint(x: 9.488, y: 7.902))
        p.addCurve(to: CGPoint(x: 9, y: 7), control1: CGPoint(x: 9.098, y: 7.512), control2: CGPoint(x: 9, y: 7.276))
        p.addLine(to: CGPoint(x: 9, y: 4))
        p.addCurve(to: CGPoint(x: 9.293, y: 3.293), control1: CGPoint(x: 9, y: 3.724), control2: CGPoint(x: 9.098, y: 3.488))
        p.addCurve(to: CGPoint(x: 10, y: 3), control1: CGPoint(x: 9.488, y: 3.098), control2: CGPoint(x: 9.724, y: 3))
        p.addLine(to: CGPoint(x: 14, y: 3))
        p.addCurve(to: CGPoint(x: 14.707, y: 3.293), control1: CGPoint(x: 14.276, y: 3), control2: CGPoint(x: 14.512, y: 3.098))
        p.addCurve(to: CGPoint(x: 15, y: 4), control1: CGPoint(x: 14.902, y: 3.488), control2: CGPoint(x: 15, y: 3.724))
        p.addLine(to: CGPoint(x: 15, y: 7))
        p.addCurve(to: CGPoint(x: 14.956, y: 7.294), control1: CGPoint(x: 15, y: 7.1), control2: CGPoint(x: 14.985, y: 7.198))
        p.closeSubpath()
        return p.applying(CGAffineTransform(scaleX: rect.width / 16, y: rect.height / 16))
    }
}

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

### Compose

```kotlin
// Gentleface "quote" (line-round), MIT. https://gentleface.com/icons/quote
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 QuoteIcon: ImageVector by lazy {
    ImageVector.Builder(
        name = "quote", defaultWidth = 16.dp, defaultHeight = 16.dp,
        viewportWidth = 16f, viewportHeight = 16f,
    ).addPath(
        pathData = addPathNodes("M6.956 7.294C6.985 7.36 7 7.428 7 7.5L7 8.5C7 8.945 6.918 9.375 6.754 9.788C6.576 10.238 6.317 10.633 5.975 10.975C5.633 11.317 5.238 11.576 4.788 11.754C4.375 11.918 3.945 12 3.5 12C3.359 12 3.241 11.952 3.144 11.856C3.048 11.759 3 11.641 3 11.5C3 11.359 3.048 11.241 3.144 11.144C3.241 11.048 3.359 11 3.5 11C3.818 11 4.125 10.941 4.42 10.824C4.741 10.697 5.024 10.512 5.268 10.268C5.512 10.024 5.697 9.741 5.824 9.42C5.941 9.125 6 8.818 6 8.5L6 8L2 8C1.724 8 1.488 7.902 1.293 7.707C1.098 7.512 1 7.276 1 7L1 4C1 3.724 1.098 3.488 1.293 3.293C1.488 3.098 1.724 3 2 3L6 3C6.276 3 6.512 3.098 6.707 3.293C6.902 3.488 7 3.724 7 4L7 7C7 7.1 6.985 7.198 6.956 7.294ZM14.956 7.294C14.985 7.36 15 7.428 15 7.5L15 8.5C15 8.945 14.918 9.375 14.754 9.788C14.576 10.238 14.317 10.633 13.975 10.975C13.633 11.317 13.238 11.576 12.788 11.754C12.375 11.918 11.945 12 11.5 12C11.359 12 11.241 11.952 11.144 11.856C11.048 11.759 11 11.641 11 11.5C11 11.359 11.048 11.241 11.144 11.144C11.241 11.048 11.359 11 11.5 11C11.818 11 12.125 10.941 12.42 10.824C12.741 10.697 13.024 10.512 13.268 10.268C13.512 10.024 13.697 9.741 13.824 9.42C13.941 9.125 14 8.818 14 8.5L14 8L10 8C9.724 8 9.488 7.902 9.293 7.707C9.098 7.512 9 7.276 9 7L9 4C9 3.724 9.098 3.488 9.293 3.293C9.488 3.098 9.724 3 10 3L14 3C14.276 3 14.512 3.098 14.707 3.293C14.902 3.488 15 3.724 15 4L15 7C15 7.1 14.985 7.198 14.956 7.294Z"),
        fill = SolidColor(Color.Black),
    ).build()
}

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

### Android XML

```xml
<!-- res/drawable/ic_quote.xml · Gentleface "quote" (line-round), MIT. https://gentleface.com/icons/quote -->
<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="M6.956 7.294C6.985 7.36 7 7.428 7 7.5L7 8.5C7 8.945 6.918 9.375 6.754 9.788C6.576 10.238 6.317 10.633 5.975 10.975C5.633 11.317 5.238 11.576 4.788 11.754C4.375 11.918 3.945 12 3.5 12C3.359 12 3.241 11.952 3.144 11.856C3.048 11.759 3 11.641 3 11.5C3 11.359 3.048 11.241 3.144 11.144C3.241 11.048 3.359 11 3.5 11C3.818 11 4.125 10.941 4.42 10.824C4.741 10.697 5.024 10.512 5.268 10.268C5.512 10.024 5.697 9.741 5.824 9.42C5.941 9.125 6 8.818 6 8.5L6 8L2 8C1.724 8 1.488 7.902 1.293 7.707C1.098 7.512 1 7.276 1 7L1 4C1 3.724 1.098 3.488 1.293 3.293C1.488 3.098 1.724 3 2 3L6 3C6.276 3 6.512 3.098 6.707 3.293C6.902 3.488 7 3.724 7 4L7 7C7 7.1 6.985 7.198 6.956 7.294ZM14.956 7.294C14.985 7.36 15 7.428 15 7.5L15 8.5C15 8.945 14.918 9.375 14.754 9.788C14.576 10.238 14.317 10.633 13.975 10.975C13.633 11.317 13.238 11.576 12.788 11.754C12.375 11.918 11.945 12 11.5 12C11.359 12 11.241 11.952 11.144 11.856C11.048 11.759 11 11.641 11 11.5C11 11.359 11.048 11.241 11.144 11.144C11.241 11.048 11.359 11 11.5 11C11.818 11 12.125 10.941 12.42 10.824C12.741 10.697 13.024 10.512 13.268 10.268C13.512 10.024 13.697 9.741 13.824 9.42C13.941 9.125 14 8.818 14 8.5L14 8L10 8C9.724 8 9.488 7.902 9.293 7.707C9.098 7.512 9 7.276 9 7L9 4C9 3.724 9.098 3.488 9.293 3.293C9.488 3.098 9.724 3 10 3L14 3C14.276 3 14.512 3.098 14.707 3.293C14.902 3.488 15 3.724 15 4L15 7C15 7.1 14.985 7.198 14.956 7.294Z"/>
</vector>
```

### Flutter

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

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

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

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

  @override
  void paint(Canvas canvas, Size size) {
    canvas.scale(size.width / 16, size.height / 16);
    final p = Path()
      ..moveTo(6.956, 7.294)
      ..cubicTo(6.985, 7.36, 7, 7.428, 7, 7.5)
      ..lineTo(7, 8.5)
      ..cubicTo(7, 8.945, 6.918, 9.375, 6.754, 9.788)
      ..cubicTo(6.576, 10.238, 6.317, 10.633, 5.975, 10.975)
      ..cubicTo(5.633, 11.317, 5.238, 11.576, 4.788, 11.754)
      ..cubicTo(4.375, 11.918, 3.945, 12, 3.5, 12)
      ..cubicTo(3.359, 12, 3.241, 11.952, 3.144, 11.856)
      ..cubicTo(3.048, 11.759, 3, 11.641, 3, 11.5)
      ..cubicTo(3, 11.359, 3.048, 11.241, 3.144, 11.144)
      ..cubicTo(3.241, 11.048, 3.359, 11, 3.5, 11)
      ..cubicTo(3.818, 11, 4.125, 10.941, 4.42, 10.824)
      ..cubicTo(4.741, 10.697, 5.024, 10.512, 5.268, 10.268)
      ..cubicTo(5.512, 10.024, 5.697, 9.741, 5.824, 9.42)
      ..cubicTo(5.941, 9.125, 6, 8.818, 6, 8.5)
      ..lineTo(6, 8)
      ..lineTo(2, 8)
      ..cubicTo(1.724, 8, 1.488, 7.902, 1.293, 7.707)
      ..cubicTo(1.098, 7.512, 1, 7.276, 1, 7)
      ..lineTo(1, 4)
      ..cubicTo(1, 3.724, 1.098, 3.488, 1.293, 3.293)
      ..cubicTo(1.488, 3.098, 1.724, 3, 2, 3)
      ..lineTo(6, 3)
      ..cubicTo(6.276, 3, 6.512, 3.098, 6.707, 3.293)
      ..cubicTo(6.902, 3.488, 7, 3.724, 7, 4)
      ..lineTo(7, 7)
      ..cubicTo(7, 7.1, 6.985, 7.198, 6.956, 7.294)
      ..close()
      ..moveTo(14.956, 7.294)
      ..cubicTo(14.985, 7.36, 15, 7.428, 15, 7.5)
      ..lineTo(15, 8.5)
      ..cubicTo(15, 8.945, 14.918, 9.375, 14.754, 9.788)
      ..cubicTo(14.576, 10.238, 14.317, 10.633, 13.975, 10.975)
      ..cubicTo(13.633, 11.317, 13.238, 11.576, 12.788, 11.754)
      ..cubicTo(12.375, 11.918, 11.945, 12, 11.5, 12)
      ..cubicTo(11.359, 12, 11.241, 11.952, 11.144, 11.856)
      ..cubicTo(11.048, 11.759, 11, 11.641, 11, 11.5)
      ..cubicTo(11, 11.359, 11.048, 11.241, 11.144, 11.144)
      ..cubicTo(11.241, 11.048, 11.359, 11, 11.5, 11)
      ..cubicTo(11.818, 11, 12.125, 10.941, 12.42, 10.824)
      ..cubicTo(12.741, 10.697, 13.024, 10.512, 13.268, 10.268)
      ..cubicTo(13.512, 10.024, 13.697, 9.741, 13.824, 9.42)
      ..cubicTo(13.941, 9.125, 14, 8.818, 14, 8.5)
      ..lineTo(14, 8)
      ..lineTo(10, 8)
      ..cubicTo(9.724, 8, 9.488, 7.902, 9.293, 7.707)
      ..cubicTo(9.098, 7.512, 9, 7.276, 9, 7)
      ..lineTo(9, 4)
      ..cubicTo(9, 3.724, 9.098, 3.488, 9.293, 3.293)
      ..cubicTo(9.488, 3.098, 9.724, 3, 10, 3)
      ..lineTo(14, 3)
      ..cubicTo(14.276, 3, 14.512, 3.098, 14.707, 3.293)
      ..cubicTo(14.902, 3.488, 15, 3.724, 15, 4)
      ..lineTo(15, 7)
      ..cubicTo(15, 7.1, 14.985, 7.198, 14.956, 7.294)
      ..close();
    canvas.drawPath(p, Paint()..color = color);
  }

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