# file-heart icon

File heart. Gentleface icon, drawn on the 16 px pixel grid. Free, MIT licensed. Page: https://gentleface.com/icons/file-heart

- Category: Files & folders
- Use it for: favorite file
- Example: Favorite files in an app that uses the heart for favorite
- Built from: file + heart
- Tags: document, page, sheet, heart, favorite, liked, saved, love, file
- Family: file, file-star, contract, file-alert, file-arrow-down, file-arrow-up, file-binary, file-box, file-braces, file-broken, file-chart, file-check, file-clock, file-cloud, file-code, file-database, file-diff, file-dot, file-export, file-eye, file-gear, file-image, file-import, file-info, file-key, file-link, file-lock, file-medical, file-music, file-off, file-pencil, file-plus, file-presentation, file-question, file-scan, file-search, file-shield, file-signature, file-sparkle, file-spreadsheet, file-symlink, file-sync, file-template, file-terminal, file-text, file-type, file-unlock, file-user, file-video, file-x, file-zip, files
- Component name: FileHeartIcon
- Added: 2026-10-29
- Since: version 0.2.0
- npm: `import { FileHeartIcon } from '@gentleface/react';` (@gentleface/react 0.2.0)
- Changed: 2026-10-30 (added)

## Also fits

- favorite file: the heart convention of favorite

## Not for

- medical record (use `file-medical`): the heart means favorite, never health

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

The SVG of every style: https://gentleface.com/icons/file-heart.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.14 2.264C3.242 2.007 3.391 1.781 3.586 1.586C3.781 1.391 4.007 1.242 4.264 1.14C4.5 1.047 4.746 1 5 1L7.5 1C7.886 1 8.258 1.074 8.615 1.222C8.972 1.37 9.287 1.58 9.561 1.854L12.146 4.439C12.447 4.74 12.671 5.089 12.818 5.487C12.867 5.619 12.863 5.747 12.807 5.871C12.75 5.994 12.655 6.081 12.523 6.13C12.394 6.178 12.266 6.173 12.141 6.115C12.08 6.087 12.027 6.049 11.982 6L10 6C9.746 6 9.5 5.953 9.264 5.86C9.007 5.758 8.781 5.609 8.586 5.414C8.391 5.219 8.242 4.993 8.14 4.736C8.047 4.5 8 4.254 8 4L8 2.066C7.838 2.022 7.671 2 7.5 2L5 2C4.724 2 4.488 2.098 4.293 2.293C4.098 2.488 4 2.724 4 3L4 13C4 13.276 4.098 13.512 4.293 13.707C4.488 13.902 4.724 14 5 14L8.5 14C8.532 14 8.563 14.003 8.593 14.008L8.992 14.407C8.997 14.437 9 14.468 9 14.5C9 14.641 8.952 14.759 8.856 14.856C8.759 14.952 8.641 15 8.5 15L5 15C4.746 15 4.5 14.953 4.264 14.86C4.007 14.758 3.781 14.609 3.586 14.414C3.391 14.219 3.242 13.993 3.14 13.736C3.047 13.5 3 13.254 3 13L3 3C3 2.746 3.047 2.5 3.14 2.264ZM9 2.707L9 4C9 4.276 9.098 4.512 9.293 4.707C9.488 4.902 9.724 5 10 5L11.293 5L9 2.707ZM12.483 14.271C12.169 14.407 11.842 14.475 11.5 14.475C11.158 14.475 10.831 14.407 10.517 14.271C10.228 14.146 9.973 13.973 9.75 13.75L8 12C7.729 11.729 7.5 11.375 7.313 10.938C7.104 10.451 7 9.972 7 9.5C7 8.75 7.229 8.146 7.688 7.688C8.146 7.229 8.75 7 9.5 7C9.979 7 10.375 7.125 10.688 7.375C10.965 7.597 11.236 7.972 11.5 8.5C11.764 7.972 12.035 7.597 12.313 7.375C12.625 7.125 13.021 7 13.5 7C14.25 7 14.854 7.229 15.313 7.688C15.771 8.146 16 8.75 16 9.5C16 9.972 15.896 10.451 15.688 10.938C15.5 11.375 15.271 11.729 15 12L13.25 13.75C13.027 13.973 12.772 14.146 12.483 14.271Z"/></svg>
```

### React

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

export function FileHeartIcon(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.14 2.264C3.242 2.007 3.391 1.781 3.586 1.586C3.781 1.391 4.007 1.242 4.264 1.14C4.5 1.047 4.746 1 5 1L7.5 1C7.886 1 8.258 1.074 8.615 1.222C8.972 1.37 9.287 1.58 9.561 1.854L12.146 4.439C12.447 4.74 12.671 5.089 12.818 5.487C12.867 5.619 12.863 5.747 12.807 5.871C12.75 5.994 12.655 6.081 12.523 6.13C12.394 6.178 12.266 6.173 12.141 6.115C12.08 6.087 12.027 6.049 11.982 6L10 6C9.746 6 9.5 5.953 9.264 5.86C9.007 5.758 8.781 5.609 8.586 5.414C8.391 5.219 8.242 4.993 8.14 4.736C8.047 4.5 8 4.254 8 4L8 2.066C7.838 2.022 7.671 2 7.5 2L5 2C4.724 2 4.488 2.098 4.293 2.293C4.098 2.488 4 2.724 4 3L4 13C4 13.276 4.098 13.512 4.293 13.707C4.488 13.902 4.724 14 5 14L8.5 14C8.532 14 8.563 14.003 8.593 14.008L8.992 14.407C8.997 14.437 9 14.468 9 14.5C9 14.641 8.952 14.759 8.856 14.856C8.759 14.952 8.641 15 8.5 15L5 15C4.746 15 4.5 14.953 4.264 14.86C4.007 14.758 3.781 14.609 3.586 14.414C3.391 14.219 3.242 13.993 3.14 13.736C3.047 13.5 3 13.254 3 13L3 3C3 2.746 3.047 2.5 3.14 2.264ZM9 2.707L9 4C9 4.276 9.098 4.512 9.293 4.707C9.488 4.902 9.724 5 10 5L11.293 5L9 2.707ZM12.483 14.271C12.169 14.407 11.842 14.475 11.5 14.475C11.158 14.475 10.831 14.407 10.517 14.271C10.228 14.146 9.973 13.973 9.75 13.75L8 12C7.729 11.729 7.5 11.375 7.313 10.938C7.104 10.451 7 9.972 7 9.5C7 8.75 7.229 8.146 7.688 7.688C8.146 7.229 8.75 7 9.5 7C9.979 7 10.375 7.125 10.688 7.375C10.965 7.597 11.236 7.972 11.5 8.5C11.764 7.972 12.035 7.597 12.313 7.375C12.625 7.125 13.021 7 13.5 7C14.25 7 14.854 7.229 15.313 7.688C15.771 8.146 16 8.75 16 9.5C16 9.972 15.896 10.451 15.688 10.938C15.5 11.375 15.271 11.729 15 12L13.25 13.75C13.027 13.973 12.772 14.146 12.483 14.271Z" />
    </svg>
  );
}
```

### Vue

```vue
<!-- Gentleface "file-heart" (line-round), MIT. https://gentleface.com/icons/file-heart -->
<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.14 2.264C3.242 2.007 3.391 1.781 3.586 1.586C3.781 1.391 4.007 1.242 4.264 1.14C4.5 1.047 4.746 1 5 1L7.5 1C7.886 1 8.258 1.074 8.615 1.222C8.972 1.37 9.287 1.58 9.561 1.854L12.146 4.439C12.447 4.74 12.671 5.089 12.818 5.487C12.867 5.619 12.863 5.747 12.807 5.871C12.75 5.994 12.655 6.081 12.523 6.13C12.394 6.178 12.266 6.173 12.141 6.115C12.08 6.087 12.027 6.049 11.982 6L10 6C9.746 6 9.5 5.953 9.264 5.86C9.007 5.758 8.781 5.609 8.586 5.414C8.391 5.219 8.242 4.993 8.14 4.736C8.047 4.5 8 4.254 8 4L8 2.066C7.838 2.022 7.671 2 7.5 2L5 2C4.724 2 4.488 2.098 4.293 2.293C4.098 2.488 4 2.724 4 3L4 13C4 13.276 4.098 13.512 4.293 13.707C4.488 13.902 4.724 14 5 14L8.5 14C8.532 14 8.563 14.003 8.593 14.008L8.992 14.407C8.997 14.437 9 14.468 9 14.5C9 14.641 8.952 14.759 8.856 14.856C8.759 14.952 8.641 15 8.5 15L5 15C4.746 15 4.5 14.953 4.264 14.86C4.007 14.758 3.781 14.609 3.586 14.414C3.391 14.219 3.242 13.993 3.14 13.736C3.047 13.5 3 13.254 3 13L3 3C3 2.746 3.047 2.5 3.14 2.264ZM9 2.707L9 4C9 4.276 9.098 4.512 9.293 4.707C9.488 4.902 9.724 5 10 5L11.293 5L9 2.707ZM12.483 14.271C12.169 14.407 11.842 14.475 11.5 14.475C11.158 14.475 10.831 14.407 10.517 14.271C10.228 14.146 9.973 13.973 9.75 13.75L8 12C7.729 11.729 7.5 11.375 7.313 10.938C7.104 10.451 7 9.972 7 9.5C7 8.75 7.229 8.146 7.688 7.688C8.146 7.229 8.75 7 9.5 7C9.979 7 10.375 7.125 10.688 7.375C10.965 7.597 11.236 7.972 11.5 8.5C11.764 7.972 12.035 7.597 12.313 7.375C12.625 7.125 13.021 7 13.5 7C14.25 7 14.854 7.229 15.313 7.688C15.771 8.146 16 8.75 16 9.5C16 9.972 15.896 10.451 15.688 10.938C15.5 11.375 15.271 11.729 15 12L13.25 13.75C13.027 13.973 12.772 14.146 12.483 14.271Z" />
  </svg>
</template>
```

### Svelte

```svelte
<!-- Gentleface "file-heart" (line-round), MIT. https://gentleface.com/icons/file-heart -->
<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.14 2.264C3.242 2.007 3.391 1.781 3.586 1.586C3.781 1.391 4.007 1.242 4.264 1.14C4.5 1.047 4.746 1 5 1L7.5 1C7.886 1 8.258 1.074 8.615 1.222C8.972 1.37 9.287 1.58 9.561 1.854L12.146 4.439C12.447 4.74 12.671 5.089 12.818 5.487C12.867 5.619 12.863 5.747 12.807 5.871C12.75 5.994 12.655 6.081 12.523 6.13C12.394 6.178 12.266 6.173 12.141 6.115C12.08 6.087 12.027 6.049 11.982 6L10 6C9.746 6 9.5 5.953 9.264 5.86C9.007 5.758 8.781 5.609 8.586 5.414C8.391 5.219 8.242 4.993 8.14 4.736C8.047 4.5 8 4.254 8 4L8 2.066C7.838 2.022 7.671 2 7.5 2L5 2C4.724 2 4.488 2.098 4.293 2.293C4.098 2.488 4 2.724 4 3L4 13C4 13.276 4.098 13.512 4.293 13.707C4.488 13.902 4.724 14 5 14L8.5 14C8.532 14 8.563 14.003 8.593 14.008L8.992 14.407C8.997 14.437 9 14.468 9 14.5C9 14.641 8.952 14.759 8.856 14.856C8.759 14.952 8.641 15 8.5 15L5 15C4.746 15 4.5 14.953 4.264 14.86C4.007 14.758 3.781 14.609 3.586 14.414C3.391 14.219 3.242 13.993 3.14 13.736C3.047 13.5 3 13.254 3 13L3 3C3 2.746 3.047 2.5 3.14 2.264ZM9 2.707L9 4C9 4.276 9.098 4.512 9.293 4.707C9.488 4.902 9.724 5 10 5L11.293 5L9 2.707ZM12.483 14.271C12.169 14.407 11.842 14.475 11.5 14.475C11.158 14.475 10.831 14.407 10.517 14.271C10.228 14.146 9.973 13.973 9.75 13.75L8 12C7.729 11.729 7.5 11.375 7.313 10.938C7.104 10.451 7 9.972 7 9.5C7 8.75 7.229 8.146 7.688 7.688C8.146 7.229 8.75 7 9.5 7C9.979 7 10.375 7.125 10.688 7.375C10.965 7.597 11.236 7.972 11.5 8.5C11.764 7.972 12.035 7.597 12.313 7.375C12.625 7.125 13.021 7 13.5 7C14.25 7 14.854 7.229 15.313 7.688C15.771 8.146 16 8.75 16 9.5C16 9.972 15.896 10.451 15.688 10.938C15.5 11.375 15.271 11.729 15 12L13.25 13.75C13.027 13.973 12.772 14.146 12.483 14.271Z" />
</svg>
```

### HTML img

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

### CSS

```css
/* Gentleface "file-heart" (line-round), MIT. https://gentleface.com/icons/file-heart. Takes the text color. */
.icon-file-heart {
  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.14 2.264C3.242 2.007 3.391 1.781 3.586 1.586C3.781 1.391 4.007 1.242 4.264 1.14C4.5 1.047 4.746 1 5 1L7.5 1C7.886 1 8.258 1.074 8.615 1.222C8.972 1.37 9.287 1.58 9.561 1.854L12.146 4.439C12.447 4.74 12.671 5.089 12.818 5.487C12.867 5.619 12.863 5.747 12.807 5.871C12.75 5.994 12.655 6.081 12.523 6.13C12.394 6.178 12.266 6.173 12.141 6.115C12.08 6.087 12.027 6.049 11.982 6L10 6C9.746 6 9.5 5.953 9.264 5.86C9.007 5.758 8.781 5.609 8.586 5.414C8.391 5.219 8.242 4.993 8.14 4.736C8.047 4.5 8 4.254 8 4L8 2.066C7.838 2.022 7.671 2 7.5 2L5 2C4.724 2 4.488 2.098 4.293 2.293C4.098 2.488 4 2.724 4 3L4 13C4 13.276 4.098 13.512 4.293 13.707C4.488 13.902 4.724 14 5 14L8.5 14C8.532 14 8.563 14.003 8.593 14.008L8.992 14.407C8.997 14.437 9 14.468 9 14.5C9 14.641 8.952 14.759 8.856 14.856C8.759 14.952 8.641 15 8.5 15L5 15C4.746 15 4.5 14.953 4.264 14.86C4.007 14.758 3.781 14.609 3.586 14.414C3.391 14.219 3.242 13.993 3.14 13.736C3.047 13.5 3 13.254 3 13L3 3C3 2.746 3.047 2.5 3.14 2.264ZM9 2.707L9 4C9 4.276 9.098 4.512 9.293 4.707C9.488 4.902 9.724 5 10 5L11.293 5L9 2.707ZM12.483 14.271C12.169 14.407 11.842 14.475 11.5 14.475C11.158 14.475 10.831 14.407 10.517 14.271C10.228 14.146 9.973 13.973 9.75 13.75L8 12C7.729 11.729 7.5 11.375 7.313 10.938C7.104 10.451 7 9.972 7 9.5C7 8.75 7.229 8.146 7.688 7.688C8.146 7.229 8.75 7 9.5 7C9.979 7 10.375 7.125 10.688 7.375C10.965 7.597 11.236 7.972 11.5 8.5C11.764 7.972 12.035 7.597 12.313 7.375C12.625 7.125 13.021 7 13.5 7C14.25 7 14.854 7.229 15.313 7.688C15.771 8.146 16 8.75 16 9.5C16 9.972 15.896 10.451 15.688 10.938C15.5 11.375 15.271 11.729 15 12L13.25 13.75C13.027 13.973 12.772 14.146 12.483 14.271Z'/%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.14 2.264C3.242 2.007 3.391 1.781 3.586 1.586C3.781 1.391 4.007 1.242 4.264 1.14C4.5 1.047 4.746 1 5 1L7.5 1C7.886 1 8.258 1.074 8.615 1.222C8.972 1.37 9.287 1.58 9.561 1.854L12.146 4.439C12.447 4.74 12.671 5.089 12.818 5.487C12.867 5.619 12.863 5.747 12.807 5.871C12.75 5.994 12.655 6.081 12.523 6.13C12.394 6.178 12.266 6.173 12.141 6.115C12.08 6.087 12.027 6.049 11.982 6L10 6C9.746 6 9.5 5.953 9.264 5.86C9.007 5.758 8.781 5.609 8.586 5.414C8.391 5.219 8.242 4.993 8.14 4.736C8.047 4.5 8 4.254 8 4L8 2.066C7.838 2.022 7.671 2 7.5 2L5 2C4.724 2 4.488 2.098 4.293 2.293C4.098 2.488 4 2.724 4 3L4 13C4 13.276 4.098 13.512 4.293 13.707C4.488 13.902 4.724 14 5 14L8.5 14C8.532 14 8.563 14.003 8.593 14.008L8.992 14.407C8.997 14.437 9 14.468 9 14.5C9 14.641 8.952 14.759 8.856 14.856C8.759 14.952 8.641 15 8.5 15L5 15C4.746 15 4.5 14.953 4.264 14.86C4.007 14.758 3.781 14.609 3.586 14.414C3.391 14.219 3.242 13.993 3.14 13.736C3.047 13.5 3 13.254 3 13L3 3C3 2.746 3.047 2.5 3.14 2.264ZM9 2.707L9 4C9 4.276 9.098 4.512 9.293 4.707C9.488 4.902 9.724 5 10 5L11.293 5L9 2.707ZM12.483 14.271C12.169 14.407 11.842 14.475 11.5 14.475C11.158 14.475 10.831 14.407 10.517 14.271C10.228 14.146 9.973 13.973 9.75 13.75L8 12C7.729 11.729 7.5 11.375 7.313 10.938C7.104 10.451 7 9.972 7 9.5C7 8.75 7.229 8.146 7.688 7.688C8.146 7.229 8.75 7 9.5 7C9.979 7 10.375 7.125 10.688 7.375C10.965 7.597 11.236 7.972 11.5 8.5C11.764 7.972 12.035 7.597 12.313 7.375C12.625 7.125 13.021 7 13.5 7C14.25 7 14.854 7.229 15.313 7.688C15.771 8.146 16 8.75 16 9.5C16 9.972 15.896 10.451 15.688 10.938C15.5 11.375 15.271 11.729 15 12L13.25 13.75C13.027 13.973 12.772 14.146 12.483 14.271Z'/%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.14 2.264C3.242 2.007 3.391 1.781 3.586 1.586C3.781 1.391 4.007 1.242 4.264 1.14C4.5 1.047 4.746 1 5 1L7.5 1C7.886 1 8.258 1.074 8.615 1.222C8.972 1.37 9.287 1.58 9.561 1.854L12.146 4.439C12.447 4.74 12.671 5.089 12.818 5.487C12.867 5.619 12.863 5.747 12.807 5.871C12.75 5.994 12.655 6.081 12.523 6.13C12.394 6.178 12.266 6.173 12.141 6.115C12.08 6.087 12.027 6.049 11.982 6L10 6C9.746 6 9.5 5.953 9.264 5.86C9.007 5.758 8.781 5.609 8.586 5.414C8.391 5.219 8.242 4.993 8.14 4.736C8.047 4.5 8 4.254 8 4L8 2.066C7.838 2.022 7.671 2 7.5 2L5 2C4.724 2 4.488 2.098 4.293 2.293C4.098 2.488 4 2.724 4 3L4 13C4 13.276 4.098 13.512 4.293 13.707C4.488 13.902 4.724 14 5 14L8.5 14C8.532 14 8.563 14.003 8.593 14.008L8.992 14.407C8.997 14.437 9 14.468 9 14.5C9 14.641 8.952 14.759 8.856 14.856C8.759 14.952 8.641 15 8.5 15L5 15C4.746 15 4.5 14.953 4.264 14.86C4.007 14.758 3.781 14.609 3.586 14.414C3.391 14.219 3.242 13.993 3.14 13.736C3.047 13.5 3 13.254 3 13L3 3C3 2.746 3.047 2.5 3.14 2.264ZM9 2.707L9 4C9 4.276 9.098 4.512 9.293 4.707C9.488 4.902 9.724 5 10 5L11.293 5L9 2.707ZM12.483 14.271C12.169 14.407 11.842 14.475 11.5 14.475C11.158 14.475 10.831 14.407 10.517 14.271C10.228 14.146 9.973 13.973 9.75 13.75L8 12C7.729 11.729 7.5 11.375 7.313 10.938C7.104 10.451 7 9.972 7 9.5C7 8.75 7.229 8.146 7.688 7.688C8.146 7.229 8.75 7 9.5 7C9.979 7 10.375 7.125 10.688 7.375C10.965 7.597 11.236 7.972 11.5 8.5C11.764 7.972 12.035 7.597 12.313 7.375C12.625 7.125 13.021 7 13.5 7C14.25 7 14.854 7.229 15.313 7.688C15.771 8.146 16 8.75 16 9.5C16 9.972 15.896 10.451 15.688 10.938C15.5 11.375 15.271 11.729 15 12L13.25 13.75C13.027 13.973 12.772 14.146 12.483 14.271Z'/%3E%3C/svg%3E
```

### Sprite

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

### SwiftUI

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

struct FileHeartIcon: Shape {
    func path(in rect: CGRect) -> Path {
        var p = Path()
        p.move(to: CGPoint(x: 3.14, y: 2.264))
        p.addCurve(to: CGPoint(x: 3.586, y: 1.586), control1: CGPoint(x: 3.242, y: 2.007), control2: CGPoint(x: 3.391, y: 1.781))
        p.addCurve(to: CGPoint(x: 4.264, y: 1.14), control1: CGPoint(x: 3.781, y: 1.391), control2: CGPoint(x: 4.007, y: 1.242))
        p.addCurve(to: CGPoint(x: 5, y: 1), control1: CGPoint(x: 4.5, y: 1.047), control2: CGPoint(x: 4.746, y: 1))
        p.addLine(to: CGPoint(x: 7.5, y: 1))
        p.addCurve(to: CGPoint(x: 8.615, y: 1.222), control1: CGPoint(x: 7.886, y: 1), control2: CGPoint(x: 8.258, y: 1.074))
        p.addCurve(to: CGPoint(x: 9.561, y: 1.854), control1: CGPoint(x: 8.972, y: 1.37), control2: CGPoint(x: 9.287, y: 1.58))
        p.addLine(to: CGPoint(x: 12.146, y: 4.439))
        p.addCurve(to: CGPoint(x: 12.818, y: 5.487), control1: CGPoint(x: 12.447, y: 4.74), control2: CGPoint(x: 12.671, y: 5.089))
        p.addCurve(to: CGPoint(x: 12.807, y: 5.871), control1: CGPoint(x: 12.867, y: 5.619), control2: CGPoint(x: 12.863, y: 5.747))
        p.addCurve(to: CGPoint(x: 12.523, y: 6.13), control1: CGPoint(x: 12.75, y: 5.994), control2: CGPoint(x: 12.655, y: 6.081))
        p.addCurve(to: CGPoint(x: 12.141, y: 6.115), control1: CGPoint(x: 12.394, y: 6.178), control2: CGPoint(x: 12.266, y: 6.173))
        p.addCurve(to: CGPoint(x: 11.982, y: 6), control1: CGPoint(x: 12.08, y: 6.087), control2: CGPoint(x: 12.027, y: 6.049))
        p.addLine(to: CGPoint(x: 10, y: 6))
        p.addCurve(to: CGPoint(x: 9.264, y: 5.86), control1: CGPoint(x: 9.746, y: 6), control2: CGPoint(x: 9.5, y: 5.953))
        p.addCurve(to: CGPoint(x: 8.586, y: 5.414), control1: CGPoint(x: 9.007, y: 5.758), control2: CGPoint(x: 8.781, y: 5.609))
        p.addCurve(to: CGPoint(x: 8.14, y: 4.736), control1: CGPoint(x: 8.391, y: 5.219), control2: CGPoint(x: 8.242, y: 4.993))
        p.addCurve(to: CGPoint(x: 8, y: 4), control1: CGPoint(x: 8.047, y: 4.5), control2: CGPoint(x: 8, y: 4.254))
        p.addLine(to: CGPoint(x: 8, y: 2.066))
        p.addCurve(to: CGPoint(x: 7.5, y: 2), control1: CGPoint(x: 7.838, y: 2.022), control2: CGPoint(x: 7.671, y: 2))
        p.addLine(to: CGPoint(x: 5, y: 2))
        p.addCurve(to: CGPoint(x: 4.293, y: 2.293), control1: CGPoint(x: 4.724, y: 2), control2: CGPoint(x: 4.488, y: 2.098))
        p.addCurve(to: CGPoint(x: 4, y: 3), control1: CGPoint(x: 4.098, y: 2.488), control2: CGPoint(x: 4, y: 2.724))
        p.addLine(to: CGPoint(x: 4, y: 13))
        p.addCurve(to: CGPoint(x: 4.293, y: 13.707), control1: CGPoint(x: 4, y: 13.276), control2: CGPoint(x: 4.098, y: 13.512))
        p.addCurve(to: CGPoint(x: 5, y: 14), control1: CGPoint(x: 4.488, y: 13.902), control2: CGPoint(x: 4.724, y: 14))
        p.addLine(to: CGPoint(x: 8.5, y: 14))
        p.addCurve(to: CGPoint(x: 8.593, y: 14.008), control1: CGPoint(x: 8.532, y: 14), control2: CGPoint(x: 8.563, y: 14.003))
        p.addLine(to: CGPoint(x: 8.992, y: 14.407))
        p.addCurve(to: CGPoint(x: 9, y: 14.5), control1: CGPoint(x: 8.997, y: 14.437), control2: CGPoint(x: 9, y: 14.468))
        p.addCurve(to: CGPoint(x: 8.856, y: 14.856), control1: CGPoint(x: 9, y: 14.641), control2: CGPoint(x: 8.952, y: 14.759))
        p.addCurve(to: CGPoint(x: 8.5, y: 15), control1: CGPoint(x: 8.759, y: 14.952), control2: CGPoint(x: 8.641, y: 15))
        p.addLine(to: CGPoint(x: 5, y: 15))
        p.addCurve(to: CGPoint(x: 4.264, y: 14.86), control1: CGPoint(x: 4.746, y: 15), control2: CGPoint(x: 4.5, y: 14.953))
        p.addCurve(to: CGPoint(x: 3.586, y: 14.414), control1: CGPoint(x: 4.007, y: 14.758), control2: CGPoint(x: 3.781, y: 14.609))
        p.addCurve(to: CGPoint(x: 3.14, y: 13.736), control1: CGPoint(x: 3.391, y: 14.219), control2: CGPoint(x: 3.242, y: 13.993))
        p.addCurve(to: CGPoint(x: 3, y: 13), control1: CGPoint(x: 3.047, y: 13.5), control2: CGPoint(x: 3, y: 13.254))
        p.addLine(to: CGPoint(x: 3, y: 3))
        p.addCurve(to: CGPoint(x: 3.14, y: 2.264), control1: CGPoint(x: 3, y: 2.746), control2: CGPoint(x: 3.047, y: 2.5))
        p.closeSubpath()
        p.move(to: CGPoint(x: 9, y: 2.707))
        p.addLine(to: CGPoint(x: 9, y: 4))
        p.addCurve(to: CGPoint(x: 9.293, y: 4.707), control1: CGPoint(x: 9, y: 4.276), control2: CGPoint(x: 9.098, y: 4.512))
        p.addCurve(to: CGPoint(x: 10, y: 5), control1: CGPoint(x: 9.488, y: 4.902), control2: CGPoint(x: 9.724, y: 5))
        p.addLine(to: CGPoint(x: 11.293, y: 5))
        p.addLine(to: CGPoint(x: 9, y: 2.707))
        p.closeSubpath()
        p.move(to: CGPoint(x: 12.483, y: 14.271))
        p.addCurve(to: CGPoint(x: 11.5, y: 14.475), control1: CGPoint(x: 12.169, y: 14.407), control2: CGPoint(x: 11.842, y: 14.475))
        p.addCurve(to: CGPoint(x: 10.517, y: 14.271), control1: CGPoint(x: 11.158, y: 14.475), control2: CGPoint(x: 10.831, y: 14.407))
        p.addCurve(to: CGPoint(x: 9.75, y: 13.75), control1: CGPoint(x: 10.228, y: 14.146), control2: CGPoint(x: 9.973, y: 13.973))
        p.addLine(to: CGPoint(x: 8, y: 12))
        p.addCurve(to: CGPoint(x: 7.313, y: 10.938), control1: CGPoint(x: 7.729, y: 11.729), control2: CGPoint(x: 7.5, y: 11.375))
        p.addCurve(to: CGPoint(x: 7, y: 9.5), control1: CGPoint(x: 7.104, y: 10.451), control2: CGPoint(x: 7, y: 9.972))
        p.addCurve(to: CGPoint(x: 7.688, y: 7.688), control1: CGPoint(x: 7, y: 8.75), control2: CGPoint(x: 7.229, y: 8.146))
        p.addCurve(to: CGPoint(x: 9.5, y: 7), control1: CGPoint(x: 8.146, y: 7.229), control2: CGPoint(x: 8.75, y: 7))
        p.addCurve(to: CGPoint(x: 10.688, y: 7.375), control1: CGPoint(x: 9.979, y: 7), control2: CGPoint(x: 10.375, y: 7.125))
        p.addCurve(to: CGPoint(x: 11.5, y: 8.5), control1: CGPoint(x: 10.965, y: 7.597), control2: CGPoint(x: 11.236, y: 7.972))
        p.addCurve(to: CGPoint(x: 12.313, y: 7.375), control1: CGPoint(x: 11.764, y: 7.972), control2: CGPoint(x: 12.035, y: 7.597))
        p.addCurve(to: CGPoint(x: 13.5, y: 7), control1: CGPoint(x: 12.625, y: 7.125), control2: CGPoint(x: 13.021, y: 7))
        p.addCurve(to: CGPoint(x: 15.313, y: 7.688), control1: CGPoint(x: 14.25, y: 7), control2: CGPoint(x: 14.854, y: 7.229))
        p.addCurve(to: CGPoint(x: 16, y: 9.5), control1: CGPoint(x: 15.771, y: 8.146), control2: CGPoint(x: 16, y: 8.75))
        p.addCurve(to: CGPoint(x: 15.688, y: 10.938), control1: CGPoint(x: 16, y: 9.972), control2: CGPoint(x: 15.896, y: 10.451))
        p.addCurve(to: CGPoint(x: 15, y: 12), control1: CGPoint(x: 15.5, y: 11.375), control2: CGPoint(x: 15.271, y: 11.729))
        p.addLine(to: CGPoint(x: 13.25, y: 13.75))
        p.addCurve(to: CGPoint(x: 12.483, y: 14.271), control1: CGPoint(x: 13.027, y: 13.973), control2: CGPoint(x: 12.772, y: 14.146))
        p.closeSubpath()
        return p.applying(CGAffineTransform(scaleX: rect.width / 16, y: rect.height / 16))
    }
}

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

### Compose

```kotlin
// Gentleface "file-heart" (line-round), MIT. https://gentleface.com/icons/file-heart
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 FileHeartIcon: ImageVector by lazy {
    ImageVector.Builder(
        name = "file-heart", defaultWidth = 16.dp, defaultHeight = 16.dp,
        viewportWidth = 16f, viewportHeight = 16f,
    ).addPath(
        pathData = addPathNodes("M3.14 2.264C3.242 2.007 3.391 1.781 3.586 1.586C3.781 1.391 4.007 1.242 4.264 1.14C4.5 1.047 4.746 1 5 1L7.5 1C7.886 1 8.258 1.074 8.615 1.222C8.972 1.37 9.287 1.58 9.561 1.854L12.146 4.439C12.447 4.74 12.671 5.089 12.818 5.487C12.867 5.619 12.863 5.747 12.807 5.871C12.75 5.994 12.655 6.081 12.523 6.13C12.394 6.178 12.266 6.173 12.141 6.115C12.08 6.087 12.027 6.049 11.982 6L10 6C9.746 6 9.5 5.953 9.264 5.86C9.007 5.758 8.781 5.609 8.586 5.414C8.391 5.219 8.242 4.993 8.14 4.736C8.047 4.5 8 4.254 8 4L8 2.066C7.838 2.022 7.671 2 7.5 2L5 2C4.724 2 4.488 2.098 4.293 2.293C4.098 2.488 4 2.724 4 3L4 13C4 13.276 4.098 13.512 4.293 13.707C4.488 13.902 4.724 14 5 14L8.5 14C8.532 14 8.563 14.003 8.593 14.008L8.992 14.407C8.997 14.437 9 14.468 9 14.5C9 14.641 8.952 14.759 8.856 14.856C8.759 14.952 8.641 15 8.5 15L5 15C4.746 15 4.5 14.953 4.264 14.86C4.007 14.758 3.781 14.609 3.586 14.414C3.391 14.219 3.242 13.993 3.14 13.736C3.047 13.5 3 13.254 3 13L3 3C3 2.746 3.047 2.5 3.14 2.264ZM9 2.707L9 4C9 4.276 9.098 4.512 9.293 4.707C9.488 4.902 9.724 5 10 5L11.293 5L9 2.707ZM12.483 14.271C12.169 14.407 11.842 14.475 11.5 14.475C11.158 14.475 10.831 14.407 10.517 14.271C10.228 14.146 9.973 13.973 9.75 13.75L8 12C7.729 11.729 7.5 11.375 7.313 10.938C7.104 10.451 7 9.972 7 9.5C7 8.75 7.229 8.146 7.688 7.688C8.146 7.229 8.75 7 9.5 7C9.979 7 10.375 7.125 10.688 7.375C10.965 7.597 11.236 7.972 11.5 8.5C11.764 7.972 12.035 7.597 12.313 7.375C12.625 7.125 13.021 7 13.5 7C14.25 7 14.854 7.229 15.313 7.688C15.771 8.146 16 8.75 16 9.5C16 9.972 15.896 10.451 15.688 10.938C15.5 11.375 15.271 11.729 15 12L13.25 13.75C13.027 13.973 12.772 14.146 12.483 14.271Z"),
        fill = SolidColor(Color.Black),
    ).build()
}

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

### Android XML

```xml
<!-- res/drawable/ic_file_heart.xml · Gentleface "file-heart" (line-round), MIT. https://gentleface.com/icons/file-heart -->
<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.14 2.264C3.242 2.007 3.391 1.781 3.586 1.586C3.781 1.391 4.007 1.242 4.264 1.14C4.5 1.047 4.746 1 5 1L7.5 1C7.886 1 8.258 1.074 8.615 1.222C8.972 1.37 9.287 1.58 9.561 1.854L12.146 4.439C12.447 4.74 12.671 5.089 12.818 5.487C12.867 5.619 12.863 5.747 12.807 5.871C12.75 5.994 12.655 6.081 12.523 6.13C12.394 6.178 12.266 6.173 12.141 6.115C12.08 6.087 12.027 6.049 11.982 6L10 6C9.746 6 9.5 5.953 9.264 5.86C9.007 5.758 8.781 5.609 8.586 5.414C8.391 5.219 8.242 4.993 8.14 4.736C8.047 4.5 8 4.254 8 4L8 2.066C7.838 2.022 7.671 2 7.5 2L5 2C4.724 2 4.488 2.098 4.293 2.293C4.098 2.488 4 2.724 4 3L4 13C4 13.276 4.098 13.512 4.293 13.707C4.488 13.902 4.724 14 5 14L8.5 14C8.532 14 8.563 14.003 8.593 14.008L8.992 14.407C8.997 14.437 9 14.468 9 14.5C9 14.641 8.952 14.759 8.856 14.856C8.759 14.952 8.641 15 8.5 15L5 15C4.746 15 4.5 14.953 4.264 14.86C4.007 14.758 3.781 14.609 3.586 14.414C3.391 14.219 3.242 13.993 3.14 13.736C3.047 13.5 3 13.254 3 13L3 3C3 2.746 3.047 2.5 3.14 2.264ZM9 2.707L9 4C9 4.276 9.098 4.512 9.293 4.707C9.488 4.902 9.724 5 10 5L11.293 5L9 2.707ZM12.483 14.271C12.169 14.407 11.842 14.475 11.5 14.475C11.158 14.475 10.831 14.407 10.517 14.271C10.228 14.146 9.973 13.973 9.75 13.75L8 12C7.729 11.729 7.5 11.375 7.313 10.938C7.104 10.451 7 9.972 7 9.5C7 8.75 7.229 8.146 7.688 7.688C8.146 7.229 8.75 7 9.5 7C9.979 7 10.375 7.125 10.688 7.375C10.965 7.597 11.236 7.972 11.5 8.5C11.764 7.972 12.035 7.597 12.313 7.375C12.625 7.125 13.021 7 13.5 7C14.25 7 14.854 7.229 15.313 7.688C15.771 8.146 16 8.75 16 9.5C16 9.972 15.896 10.451 15.688 10.938C15.5 11.375 15.271 11.729 15 12L13.25 13.75C13.027 13.973 12.772 14.146 12.483 14.271Z"/>
</vector>
```

### Flutter

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

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

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

class _FileHeartIconPainter extends CustomPainter {
  _FileHeartIconPainter(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.14, 2.264)
      ..cubicTo(3.242, 2.007, 3.391, 1.781, 3.586, 1.586)
      ..cubicTo(3.781, 1.391, 4.007, 1.242, 4.264, 1.14)
      ..cubicTo(4.5, 1.047, 4.746, 1, 5, 1)
      ..lineTo(7.5, 1)
      ..cubicTo(7.886, 1, 8.258, 1.074, 8.615, 1.222)
      ..cubicTo(8.972, 1.37, 9.287, 1.58, 9.561, 1.854)
      ..lineTo(12.146, 4.439)
      ..cubicTo(12.447, 4.74, 12.671, 5.089, 12.818, 5.487)
      ..cubicTo(12.867, 5.619, 12.863, 5.747, 12.807, 5.871)
      ..cubicTo(12.75, 5.994, 12.655, 6.081, 12.523, 6.13)
      ..cubicTo(12.394, 6.178, 12.266, 6.173, 12.141, 6.115)
      ..cubicTo(12.08, 6.087, 12.027, 6.049, 11.982, 6)
      ..lineTo(10, 6)
      ..cubicTo(9.746, 6, 9.5, 5.953, 9.264, 5.86)
      ..cubicTo(9.007, 5.758, 8.781, 5.609, 8.586, 5.414)
      ..cubicTo(8.391, 5.219, 8.242, 4.993, 8.14, 4.736)
      ..cubicTo(8.047, 4.5, 8, 4.254, 8, 4)
      ..lineTo(8, 2.066)
      ..cubicTo(7.838, 2.022, 7.671, 2, 7.5, 2)
      ..lineTo(5, 2)
      ..cubicTo(4.724, 2, 4.488, 2.098, 4.293, 2.293)
      ..cubicTo(4.098, 2.488, 4, 2.724, 4, 3)
      ..lineTo(4, 13)
      ..cubicTo(4, 13.276, 4.098, 13.512, 4.293, 13.707)
      ..cubicTo(4.488, 13.902, 4.724, 14, 5, 14)
      ..lineTo(8.5, 14)
      ..cubicTo(8.532, 14, 8.563, 14.003, 8.593, 14.008)
      ..lineTo(8.992, 14.407)
      ..cubicTo(8.997, 14.437, 9, 14.468, 9, 14.5)
      ..cubicTo(9, 14.641, 8.952, 14.759, 8.856, 14.856)
      ..cubicTo(8.759, 14.952, 8.641, 15, 8.5, 15)
      ..lineTo(5, 15)
      ..cubicTo(4.746, 15, 4.5, 14.953, 4.264, 14.86)
      ..cubicTo(4.007, 14.758, 3.781, 14.609, 3.586, 14.414)
      ..cubicTo(3.391, 14.219, 3.242, 13.993, 3.14, 13.736)
      ..cubicTo(3.047, 13.5, 3, 13.254, 3, 13)
      ..lineTo(3, 3)
      ..cubicTo(3, 2.746, 3.047, 2.5, 3.14, 2.264)
      ..close()
      ..moveTo(9, 2.707)
      ..lineTo(9, 4)
      ..cubicTo(9, 4.276, 9.098, 4.512, 9.293, 4.707)
      ..cubicTo(9.488, 4.902, 9.724, 5, 10, 5)
      ..lineTo(11.293, 5)
      ..lineTo(9, 2.707)
      ..close()
      ..moveTo(12.483, 14.271)
      ..cubicTo(12.169, 14.407, 11.842, 14.475, 11.5, 14.475)
      ..cubicTo(11.158, 14.475, 10.831, 14.407, 10.517, 14.271)
      ..cubicTo(10.228, 14.146, 9.973, 13.973, 9.75, 13.75)
      ..lineTo(8, 12)
      ..cubicTo(7.729, 11.729, 7.5, 11.375, 7.313, 10.938)
      ..cubicTo(7.104, 10.451, 7, 9.972, 7, 9.5)
      ..cubicTo(7, 8.75, 7.229, 8.146, 7.688, 7.688)
      ..cubicTo(8.146, 7.229, 8.75, 7, 9.5, 7)
      ..cubicTo(9.979, 7, 10.375, 7.125, 10.688, 7.375)
      ..cubicTo(10.965, 7.597, 11.236, 7.972, 11.5, 8.5)
      ..cubicTo(11.764, 7.972, 12.035, 7.597, 12.313, 7.375)
      ..cubicTo(12.625, 7.125, 13.021, 7, 13.5, 7)
      ..cubicTo(14.25, 7, 14.854, 7.229, 15.313, 7.688)
      ..cubicTo(15.771, 8.146, 16, 8.75, 16, 9.5)
      ..cubicTo(16, 9.972, 15.896, 10.451, 15.688, 10.938)
      ..cubicTo(15.5, 11.375, 15.271, 11.729, 15, 12)
      ..lineTo(13.25, 13.75)
      ..cubicTo(13.027, 13.973, 12.772, 14.146, 12.483, 14.271)
      ..close();
    canvas.drawPath(p, Paint()..color = color);
  }

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