# thumbs-up icon

Thumbs up. Gentleface icon, drawn on the 16 px pixel grid. Free, MIT licensed. Page: https://gentleface.com/icons/thumbs-up

- Category: Social & emotions
- Use it for: approve, upvote, helpful, useful
- Tags: like, thumb, good, agree, vote
- Family: thumbs-down
- Component name: ThumbsUpIcon
- Added: 2026-10-14

## Alternatives

- `check`: approve a request or a review step
- `user-check`: approve a member
- `smile`: positive sentiment on a face scale

## Also fits

- like: like, where the product's hearts mean favorite
- happy: binary helpful feedback

## Not for

- confirm (use `check`): thumbs-up means approve or like as feedback, not confirm a dialog

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

The SVG of every style: https://gentleface.com/icons/thumbs-up.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="M7.053 2.276C7.325 1.733 7.649 1.366 8.026 1.178C8.189 1.097 8.367 1.044 8.563 1.019C8.667 1.006 8.813 1 9 1C9.226 1 9.467 1.085 9.723 1.256C9.935 1.397 10.134 1.58 10.322 1.805C10.52 2.043 10.678 2.297 10.795 2.567C10.932 2.883 11 3.194 11 3.5L11 6L14 6C14.276 6 14.512 6.098 14.707 6.293C14.902 6.488 15 6.724 15 7L15 8.5C15 9.245 14.833 9.951 14.5 10.618L13.362 12.894C13.192 13.233 12.947 13.502 12.624 13.701C12.302 13.9 11.952 14 11.573 14L3 14C2.746 14 2.5 13.953 2.264 13.86C2.007 13.758 1.781 13.609 1.586 13.414C1.391 13.219 1.242 12.993 1.14 12.736C1.047 12.5 1 12.254 1 12L1 8C1 7.746 1.047 7.5 1.14 7.264C1.242 7.007 1.391 6.781 1.586 6.586C1.781 6.391 2.007 6.242 2.264 6.14C2.5 6.047 2.746 6 3 6L5.191 6L7.053 2.276ZM12.099 12.851C12.26 12.751 12.383 12.617 12.467 12.447L13.606 10.171C13.869 9.645 14 9.088 14 8.5L14 7L11 7C10.724 7 10.488 6.902 10.293 6.707C10.098 6.512 10 6.276 10 6L10 3.5C10 3.332 9.959 3.153 9.877 2.964C9.798 2.783 9.691 2.61 9.553 2.445C9.428 2.295 9.3 2.176 9.168 2.088C9.115 2.053 9.068 2.027 9.026 2.011C9.013 2.006 9.002 2.002 8.993 2L8.993 2C8.851 2 8.749 2.004 8.687 2.012C8.605 2.022 8.534 2.042 8.474 2.072C8.295 2.161 8.12 2.379 7.947 2.724L6.085 6.447C6.001 6.617 5.878 6.751 5.717 6.851C5.556 6.95 5.38 7 5.191 7L5 7L5 13L11.573 13C11.762 13 11.938 12.95 12.099 12.851ZM2.293 12.707C2.488 12.902 2.724 13 3 13L4 13L4 7L3 7C2.724 7 2.488 7.098 2.293 7.293C2.098 7.488 2 7.724 2 8L2 12C2 12.276 2.098 12.512 2.293 12.707Z"/></svg>
```

### React

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

export function ThumbsUpIcon(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="M7.053 2.276C7.325 1.733 7.649 1.366 8.026 1.178C8.189 1.097 8.367 1.044 8.563 1.019C8.667 1.006 8.813 1 9 1C9.226 1 9.467 1.085 9.723 1.256C9.935 1.397 10.134 1.58 10.322 1.805C10.52 2.043 10.678 2.297 10.795 2.567C10.932 2.883 11 3.194 11 3.5L11 6L14 6C14.276 6 14.512 6.098 14.707 6.293C14.902 6.488 15 6.724 15 7L15 8.5C15 9.245 14.833 9.951 14.5 10.618L13.362 12.894C13.192 13.233 12.947 13.502 12.624 13.701C12.302 13.9 11.952 14 11.573 14L3 14C2.746 14 2.5 13.953 2.264 13.86C2.007 13.758 1.781 13.609 1.586 13.414C1.391 13.219 1.242 12.993 1.14 12.736C1.047 12.5 1 12.254 1 12L1 8C1 7.746 1.047 7.5 1.14 7.264C1.242 7.007 1.391 6.781 1.586 6.586C1.781 6.391 2.007 6.242 2.264 6.14C2.5 6.047 2.746 6 3 6L5.191 6L7.053 2.276ZM12.099 12.851C12.26 12.751 12.383 12.617 12.467 12.447L13.606 10.171C13.869 9.645 14 9.088 14 8.5L14 7L11 7C10.724 7 10.488 6.902 10.293 6.707C10.098 6.512 10 6.276 10 6L10 3.5C10 3.332 9.959 3.153 9.877 2.964C9.798 2.783 9.691 2.61 9.553 2.445C9.428 2.295 9.3 2.176 9.168 2.088C9.115 2.053 9.068 2.027 9.026 2.011C9.013 2.006 9.002 2.002 8.993 2L8.993 2C8.851 2 8.749 2.004 8.687 2.012C8.605 2.022 8.534 2.042 8.474 2.072C8.295 2.161 8.12 2.379 7.947 2.724L6.085 6.447C6.001 6.617 5.878 6.751 5.717 6.851C5.556 6.95 5.38 7 5.191 7L5 7L5 13L11.573 13C11.762 13 11.938 12.95 12.099 12.851ZM2.293 12.707C2.488 12.902 2.724 13 3 13L4 13L4 7L3 7C2.724 7 2.488 7.098 2.293 7.293C2.098 7.488 2 7.724 2 8L2 12C2 12.276 2.098 12.512 2.293 12.707Z" />
    </svg>
  );
}
```

### Vue

```vue
<!-- Gentleface "thumbs-up" (line-round), MIT. https://gentleface.com/icons/thumbs-up -->
<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="M7.053 2.276C7.325 1.733 7.649 1.366 8.026 1.178C8.189 1.097 8.367 1.044 8.563 1.019C8.667 1.006 8.813 1 9 1C9.226 1 9.467 1.085 9.723 1.256C9.935 1.397 10.134 1.58 10.322 1.805C10.52 2.043 10.678 2.297 10.795 2.567C10.932 2.883 11 3.194 11 3.5L11 6L14 6C14.276 6 14.512 6.098 14.707 6.293C14.902 6.488 15 6.724 15 7L15 8.5C15 9.245 14.833 9.951 14.5 10.618L13.362 12.894C13.192 13.233 12.947 13.502 12.624 13.701C12.302 13.9 11.952 14 11.573 14L3 14C2.746 14 2.5 13.953 2.264 13.86C2.007 13.758 1.781 13.609 1.586 13.414C1.391 13.219 1.242 12.993 1.14 12.736C1.047 12.5 1 12.254 1 12L1 8C1 7.746 1.047 7.5 1.14 7.264C1.242 7.007 1.391 6.781 1.586 6.586C1.781 6.391 2.007 6.242 2.264 6.14C2.5 6.047 2.746 6 3 6L5.191 6L7.053 2.276ZM12.099 12.851C12.26 12.751 12.383 12.617 12.467 12.447L13.606 10.171C13.869 9.645 14 9.088 14 8.5L14 7L11 7C10.724 7 10.488 6.902 10.293 6.707C10.098 6.512 10 6.276 10 6L10 3.5C10 3.332 9.959 3.153 9.877 2.964C9.798 2.783 9.691 2.61 9.553 2.445C9.428 2.295 9.3 2.176 9.168 2.088C9.115 2.053 9.068 2.027 9.026 2.011C9.013 2.006 9.002 2.002 8.993 2L8.993 2C8.851 2 8.749 2.004 8.687 2.012C8.605 2.022 8.534 2.042 8.474 2.072C8.295 2.161 8.12 2.379 7.947 2.724L6.085 6.447C6.001 6.617 5.878 6.751 5.717 6.851C5.556 6.95 5.38 7 5.191 7L5 7L5 13L11.573 13C11.762 13 11.938 12.95 12.099 12.851ZM2.293 12.707C2.488 12.902 2.724 13 3 13L4 13L4 7L3 7C2.724 7 2.488 7.098 2.293 7.293C2.098 7.488 2 7.724 2 8L2 12C2 12.276 2.098 12.512 2.293 12.707Z" />
  </svg>
</template>
```

### Svelte

```svelte
<!-- Gentleface "thumbs-up" (line-round), MIT. https://gentleface.com/icons/thumbs-up -->
<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="M7.053 2.276C7.325 1.733 7.649 1.366 8.026 1.178C8.189 1.097 8.367 1.044 8.563 1.019C8.667 1.006 8.813 1 9 1C9.226 1 9.467 1.085 9.723 1.256C9.935 1.397 10.134 1.58 10.322 1.805C10.52 2.043 10.678 2.297 10.795 2.567C10.932 2.883 11 3.194 11 3.5L11 6L14 6C14.276 6 14.512 6.098 14.707 6.293C14.902 6.488 15 6.724 15 7L15 8.5C15 9.245 14.833 9.951 14.5 10.618L13.362 12.894C13.192 13.233 12.947 13.502 12.624 13.701C12.302 13.9 11.952 14 11.573 14L3 14C2.746 14 2.5 13.953 2.264 13.86C2.007 13.758 1.781 13.609 1.586 13.414C1.391 13.219 1.242 12.993 1.14 12.736C1.047 12.5 1 12.254 1 12L1 8C1 7.746 1.047 7.5 1.14 7.264C1.242 7.007 1.391 6.781 1.586 6.586C1.781 6.391 2.007 6.242 2.264 6.14C2.5 6.047 2.746 6 3 6L5.191 6L7.053 2.276ZM12.099 12.851C12.26 12.751 12.383 12.617 12.467 12.447L13.606 10.171C13.869 9.645 14 9.088 14 8.5L14 7L11 7C10.724 7 10.488 6.902 10.293 6.707C10.098 6.512 10 6.276 10 6L10 3.5C10 3.332 9.959 3.153 9.877 2.964C9.798 2.783 9.691 2.61 9.553 2.445C9.428 2.295 9.3 2.176 9.168 2.088C9.115 2.053 9.068 2.027 9.026 2.011C9.013 2.006 9.002 2.002 8.993 2L8.993 2C8.851 2 8.749 2.004 8.687 2.012C8.605 2.022 8.534 2.042 8.474 2.072C8.295 2.161 8.12 2.379 7.947 2.724L6.085 6.447C6.001 6.617 5.878 6.751 5.717 6.851C5.556 6.95 5.38 7 5.191 7L5 7L5 13L11.573 13C11.762 13 11.938 12.95 12.099 12.851ZM2.293 12.707C2.488 12.902 2.724 13 3 13L4 13L4 7L3 7C2.724 7 2.488 7.098 2.293 7.293C2.098 7.488 2 7.724 2 8L2 12C2 12.276 2.098 12.512 2.293 12.707Z" />
</svg>
```

### HTML img

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

### CSS

```css
/* Gentleface "thumbs-up" (line-round), MIT. https://gentleface.com/icons/thumbs-up. Takes the text color. */
.icon-thumbs-up {
  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='M7.053 2.276C7.325 1.733 7.649 1.366 8.026 1.178C8.189 1.097 8.367 1.044 8.563 1.019C8.667 1.006 8.813 1 9 1C9.226 1 9.467 1.085 9.723 1.256C9.935 1.397 10.134 1.58 10.322 1.805C10.52 2.043 10.678 2.297 10.795 2.567C10.932 2.883 11 3.194 11 3.5L11 6L14 6C14.276 6 14.512 6.098 14.707 6.293C14.902 6.488 15 6.724 15 7L15 8.5C15 9.245 14.833 9.951 14.5 10.618L13.362 12.894C13.192 13.233 12.947 13.502 12.624 13.701C12.302 13.9 11.952 14 11.573 14L3 14C2.746 14 2.5 13.953 2.264 13.86C2.007 13.758 1.781 13.609 1.586 13.414C1.391 13.219 1.242 12.993 1.14 12.736C1.047 12.5 1 12.254 1 12L1 8C1 7.746 1.047 7.5 1.14 7.264C1.242 7.007 1.391 6.781 1.586 6.586C1.781 6.391 2.007 6.242 2.264 6.14C2.5 6.047 2.746 6 3 6L5.191 6L7.053 2.276ZM12.099 12.851C12.26 12.751 12.383 12.617 12.467 12.447L13.606 10.171C13.869 9.645 14 9.088 14 8.5L14 7L11 7C10.724 7 10.488 6.902 10.293 6.707C10.098 6.512 10 6.276 10 6L10 3.5C10 3.332 9.959 3.153 9.877 2.964C9.798 2.783 9.691 2.61 9.553 2.445C9.428 2.295 9.3 2.176 9.168 2.088C9.115 2.053 9.068 2.027 9.026 2.011C9.013 2.006 9.002 2.002 8.993 2L8.993 2C8.851 2 8.749 2.004 8.687 2.012C8.605 2.022 8.534 2.042 8.474 2.072C8.295 2.161 8.12 2.379 7.947 2.724L6.085 6.447C6.001 6.617 5.878 6.751 5.717 6.851C5.556 6.95 5.38 7 5.191 7L5 7L5 13L11.573 13C11.762 13 11.938 12.95 12.099 12.851ZM2.293 12.707C2.488 12.902 2.724 13 3 13L4 13L4 7L3 7C2.724 7 2.488 7.098 2.293 7.293C2.098 7.488 2 7.724 2 8L2 12C2 12.276 2.098 12.512 2.293 12.707Z'/%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='M7.053 2.276C7.325 1.733 7.649 1.366 8.026 1.178C8.189 1.097 8.367 1.044 8.563 1.019C8.667 1.006 8.813 1 9 1C9.226 1 9.467 1.085 9.723 1.256C9.935 1.397 10.134 1.58 10.322 1.805C10.52 2.043 10.678 2.297 10.795 2.567C10.932 2.883 11 3.194 11 3.5L11 6L14 6C14.276 6 14.512 6.098 14.707 6.293C14.902 6.488 15 6.724 15 7L15 8.5C15 9.245 14.833 9.951 14.5 10.618L13.362 12.894C13.192 13.233 12.947 13.502 12.624 13.701C12.302 13.9 11.952 14 11.573 14L3 14C2.746 14 2.5 13.953 2.264 13.86C2.007 13.758 1.781 13.609 1.586 13.414C1.391 13.219 1.242 12.993 1.14 12.736C1.047 12.5 1 12.254 1 12L1 8C1 7.746 1.047 7.5 1.14 7.264C1.242 7.007 1.391 6.781 1.586 6.586C1.781 6.391 2.007 6.242 2.264 6.14C2.5 6.047 2.746 6 3 6L5.191 6L7.053 2.276ZM12.099 12.851C12.26 12.751 12.383 12.617 12.467 12.447L13.606 10.171C13.869 9.645 14 9.088 14 8.5L14 7L11 7C10.724 7 10.488 6.902 10.293 6.707C10.098 6.512 10 6.276 10 6L10 3.5C10 3.332 9.959 3.153 9.877 2.964C9.798 2.783 9.691 2.61 9.553 2.445C9.428 2.295 9.3 2.176 9.168 2.088C9.115 2.053 9.068 2.027 9.026 2.011C9.013 2.006 9.002 2.002 8.993 2L8.993 2C8.851 2 8.749 2.004 8.687 2.012C8.605 2.022 8.534 2.042 8.474 2.072C8.295 2.161 8.12 2.379 7.947 2.724L6.085 6.447C6.001 6.617 5.878 6.751 5.717 6.851C5.556 6.95 5.38 7 5.191 7L5 7L5 13L11.573 13C11.762 13 11.938 12.95 12.099 12.851ZM2.293 12.707C2.488 12.902 2.724 13 3 13L4 13L4 7L3 7C2.724 7 2.488 7.098 2.293 7.293C2.098 7.488 2 7.724 2 8L2 12C2 12.276 2.098 12.512 2.293 12.707Z'/%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='M7.053 2.276C7.325 1.733 7.649 1.366 8.026 1.178C8.189 1.097 8.367 1.044 8.563 1.019C8.667 1.006 8.813 1 9 1C9.226 1 9.467 1.085 9.723 1.256C9.935 1.397 10.134 1.58 10.322 1.805C10.52 2.043 10.678 2.297 10.795 2.567C10.932 2.883 11 3.194 11 3.5L11 6L14 6C14.276 6 14.512 6.098 14.707 6.293C14.902 6.488 15 6.724 15 7L15 8.5C15 9.245 14.833 9.951 14.5 10.618L13.362 12.894C13.192 13.233 12.947 13.502 12.624 13.701C12.302 13.9 11.952 14 11.573 14L3 14C2.746 14 2.5 13.953 2.264 13.86C2.007 13.758 1.781 13.609 1.586 13.414C1.391 13.219 1.242 12.993 1.14 12.736C1.047 12.5 1 12.254 1 12L1 8C1 7.746 1.047 7.5 1.14 7.264C1.242 7.007 1.391 6.781 1.586 6.586C1.781 6.391 2.007 6.242 2.264 6.14C2.5 6.047 2.746 6 3 6L5.191 6L7.053 2.276ZM12.099 12.851C12.26 12.751 12.383 12.617 12.467 12.447L13.606 10.171C13.869 9.645 14 9.088 14 8.5L14 7L11 7C10.724 7 10.488 6.902 10.293 6.707C10.098 6.512 10 6.276 10 6L10 3.5C10 3.332 9.959 3.153 9.877 2.964C9.798 2.783 9.691 2.61 9.553 2.445C9.428 2.295 9.3 2.176 9.168 2.088C9.115 2.053 9.068 2.027 9.026 2.011C9.013 2.006 9.002 2.002 8.993 2L8.993 2C8.851 2 8.749 2.004 8.687 2.012C8.605 2.022 8.534 2.042 8.474 2.072C8.295 2.161 8.12 2.379 7.947 2.724L6.085 6.447C6.001 6.617 5.878 6.751 5.717 6.851C5.556 6.95 5.38 7 5.191 7L5 7L5 13L11.573 13C11.762 13 11.938 12.95 12.099 12.851ZM2.293 12.707C2.488 12.902 2.724 13 3 13L4 13L4 7L3 7C2.724 7 2.488 7.098 2.293 7.293C2.098 7.488 2 7.724 2 8L2 12C2 12.276 2.098 12.512 2.293 12.707Z'/%3E%3C/svg%3E
```

### Sprite

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

### SwiftUI

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

struct ThumbsUpIcon: Shape {
    func path(in rect: CGRect) -> Path {
        var p = Path()
        p.move(to: CGPoint(x: 7.053, y: 2.276))
        p.addCurve(to: CGPoint(x: 8.026, y: 1.178), control1: CGPoint(x: 7.325, y: 1.733), control2: CGPoint(x: 7.649, y: 1.366))
        p.addCurve(to: CGPoint(x: 8.563, y: 1.019), control1: CGPoint(x: 8.189, y: 1.097), control2: CGPoint(x: 8.367, y: 1.044))
        p.addCurve(to: CGPoint(x: 9, y: 1), control1: CGPoint(x: 8.667, y: 1.006), control2: CGPoint(x: 8.813, y: 1))
        p.addCurve(to: CGPoint(x: 9.723, y: 1.256), control1: CGPoint(x: 9.226, y: 1), control2: CGPoint(x: 9.467, y: 1.085))
        p.addCurve(to: CGPoint(x: 10.322, y: 1.805), control1: CGPoint(x: 9.935, y: 1.397), control2: CGPoint(x: 10.134, y: 1.58))
        p.addCurve(to: CGPoint(x: 10.795, y: 2.567), control1: CGPoint(x: 10.52, y: 2.043), control2: CGPoint(x: 10.678, y: 2.297))
        p.addCurve(to: CGPoint(x: 11, y: 3.5), control1: CGPoint(x: 10.932, y: 2.883), control2: CGPoint(x: 11, y: 3.194))
        p.addLine(to: CGPoint(x: 11, y: 6))
        p.addLine(to: CGPoint(x: 14, y: 6))
        p.addCurve(to: CGPoint(x: 14.707, y: 6.293), control1: CGPoint(x: 14.276, y: 6), control2: CGPoint(x: 14.512, y: 6.098))
        p.addCurve(to: CGPoint(x: 15, y: 7), control1: CGPoint(x: 14.902, y: 6.488), control2: CGPoint(x: 15, y: 6.724))
        p.addLine(to: CGPoint(x: 15, y: 8.5))
        p.addCurve(to: CGPoint(x: 14.5, y: 10.618), control1: CGPoint(x: 15, y: 9.245), control2: CGPoint(x: 14.833, y: 9.951))
        p.addLine(to: CGPoint(x: 13.362, y: 12.894))
        p.addCurve(to: CGPoint(x: 12.624, y: 13.701), control1: CGPoint(x: 13.192, y: 13.233), control2: CGPoint(x: 12.947, y: 13.502))
        p.addCurve(to: CGPoint(x: 11.573, y: 14), control1: CGPoint(x: 12.302, y: 13.9), control2: CGPoint(x: 11.952, y: 14))
        p.addLine(to: CGPoint(x: 3, y: 14))
        p.addCurve(to: CGPoint(x: 2.264, y: 13.86), control1: CGPoint(x: 2.746, y: 14), control2: CGPoint(x: 2.5, y: 13.953))
        p.addCurve(to: CGPoint(x: 1.586, y: 13.414), control1: CGPoint(x: 2.007, y: 13.758), control2: CGPoint(x: 1.781, y: 13.609))
        p.addCurve(to: CGPoint(x: 1.14, y: 12.736), control1: CGPoint(x: 1.391, y: 13.219), control2: CGPoint(x: 1.242, y: 12.993))
        p.addCurve(to: CGPoint(x: 1, y: 12), control1: CGPoint(x: 1.047, y: 12.5), control2: CGPoint(x: 1, y: 12.254))
        p.addLine(to: CGPoint(x: 1, y: 8))
        p.addCurve(to: CGPoint(x: 1.14, y: 7.264), control1: CGPoint(x: 1, y: 7.746), control2: CGPoint(x: 1.047, y: 7.5))
        p.addCurve(to: CGPoint(x: 1.586, y: 6.586), control1: CGPoint(x: 1.242, y: 7.007), control2: CGPoint(x: 1.391, y: 6.781))
        p.addCurve(to: CGPoint(x: 2.264, y: 6.14), control1: CGPoint(x: 1.781, y: 6.391), control2: CGPoint(x: 2.007, y: 6.242))
        p.addCurve(to: CGPoint(x: 3, y: 6), control1: CGPoint(x: 2.5, y: 6.047), control2: CGPoint(x: 2.746, y: 6))
        p.addLine(to: CGPoint(x: 5.191, y: 6))
        p.addLine(to: CGPoint(x: 7.053, y: 2.276))
        p.closeSubpath()
        p.move(to: CGPoint(x: 12.099, y: 12.851))
        p.addCurve(to: CGPoint(x: 12.467, y: 12.447), control1: CGPoint(x: 12.26, y: 12.751), control2: CGPoint(x: 12.383, y: 12.617))
        p.addLine(to: CGPoint(x: 13.606, y: 10.171))
        p.addCurve(to: CGPoint(x: 14, y: 8.5), control1: CGPoint(x: 13.869, y: 9.645), control2: CGPoint(x: 14, y: 9.088))
        p.addLine(to: CGPoint(x: 14, y: 7))
        p.addLine(to: CGPoint(x: 11, y: 7))
        p.addCurve(to: CGPoint(x: 10.293, y: 6.707), control1: CGPoint(x: 10.724, y: 7), control2: CGPoint(x: 10.488, y: 6.902))
        p.addCurve(to: CGPoint(x: 10, y: 6), control1: CGPoint(x: 10.098, y: 6.512), control2: CGPoint(x: 10, y: 6.276))
        p.addLine(to: CGPoint(x: 10, y: 3.5))
        p.addCurve(to: CGPoint(x: 9.877, y: 2.964), control1: CGPoint(x: 10, y: 3.332), control2: CGPoint(x: 9.959, y: 3.153))
        p.addCurve(to: CGPoint(x: 9.553, y: 2.445), control1: CGPoint(x: 9.798, y: 2.783), control2: CGPoint(x: 9.691, y: 2.61))
        p.addCurve(to: CGPoint(x: 9.168, y: 2.088), control1: CGPoint(x: 9.428, y: 2.295), control2: CGPoint(x: 9.3, y: 2.176))
        p.addCurve(to: CGPoint(x: 9.026, y: 2.011), control1: CGPoint(x: 9.115, y: 2.053), control2: CGPoint(x: 9.068, y: 2.027))
        p.addCurve(to: CGPoint(x: 8.993, y: 2), control1: CGPoint(x: 9.013, y: 2.006), control2: CGPoint(x: 9.002, y: 2.002))
        p.addLine(to: CGPoint(x: 8.993, y: 2))
        p.addCurve(to: CGPoint(x: 8.687, y: 2.012), control1: CGPoint(x: 8.851, y: 2), control2: CGPoint(x: 8.749, y: 2.004))
        p.addCurve(to: CGPoint(x: 8.474, y: 2.072), control1: CGPoint(x: 8.605, y: 2.022), control2: CGPoint(x: 8.534, y: 2.042))
        p.addCurve(to: CGPoint(x: 7.947, y: 2.724), control1: CGPoint(x: 8.295, y: 2.161), control2: CGPoint(x: 8.12, y: 2.379))
        p.addLine(to: CGPoint(x: 6.085, y: 6.447))
        p.addCurve(to: CGPoint(x: 5.717, y: 6.851), control1: CGPoint(x: 6.001, y: 6.617), control2: CGPoint(x: 5.878, y: 6.751))
        p.addCurve(to: CGPoint(x: 5.191, y: 7), control1: CGPoint(x: 5.556, y: 6.95), control2: CGPoint(x: 5.38, y: 7))
        p.addLine(to: CGPoint(x: 5, y: 7))
        p.addLine(to: CGPoint(x: 5, y: 13))
        p.addLine(to: CGPoint(x: 11.573, y: 13))
        p.addCurve(to: CGPoint(x: 12.099, y: 12.851), control1: CGPoint(x: 11.762, y: 13), control2: CGPoint(x: 11.938, y: 12.95))
        p.closeSubpath()
        p.move(to: CGPoint(x: 2.293, y: 12.707))
        p.addCurve(to: CGPoint(x: 3, y: 13), control1: CGPoint(x: 2.488, y: 12.902), control2: CGPoint(x: 2.724, y: 13))
        p.addLine(to: CGPoint(x: 4, y: 13))
        p.addLine(to: CGPoint(x: 4, y: 7))
        p.addLine(to: CGPoint(x: 3, y: 7))
        p.addCurve(to: CGPoint(x: 2.293, y: 7.293), control1: CGPoint(x: 2.724, y: 7), control2: CGPoint(x: 2.488, y: 7.098))
        p.addCurve(to: CGPoint(x: 2, y: 8), control1: CGPoint(x: 2.098, y: 7.488), control2: CGPoint(x: 2, y: 7.724))
        p.addLine(to: CGPoint(x: 2, y: 12))
        p.addCurve(to: CGPoint(x: 2.293, y: 12.707), control1: CGPoint(x: 2, y: 12.276), control2: CGPoint(x: 2.098, y: 12.512))
        p.closeSubpath()
        return p.applying(CGAffineTransform(scaleX: rect.width / 16, y: rect.height / 16))
    }
}

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

### Compose

```kotlin
// Gentleface "thumbs-up" (line-round), MIT. https://gentleface.com/icons/thumbs-up
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 ThumbsUpIcon: ImageVector by lazy {
    ImageVector.Builder(
        name = "thumbs-up", defaultWidth = 16.dp, defaultHeight = 16.dp,
        viewportWidth = 16f, viewportHeight = 16f,
    ).addPath(
        pathData = addPathNodes("M7.053 2.276C7.325 1.733 7.649 1.366 8.026 1.178C8.189 1.097 8.367 1.044 8.563 1.019C8.667 1.006 8.813 1 9 1C9.226 1 9.467 1.085 9.723 1.256C9.935 1.397 10.134 1.58 10.322 1.805C10.52 2.043 10.678 2.297 10.795 2.567C10.932 2.883 11 3.194 11 3.5L11 6L14 6C14.276 6 14.512 6.098 14.707 6.293C14.902 6.488 15 6.724 15 7L15 8.5C15 9.245 14.833 9.951 14.5 10.618L13.362 12.894C13.192 13.233 12.947 13.502 12.624 13.701C12.302 13.9 11.952 14 11.573 14L3 14C2.746 14 2.5 13.953 2.264 13.86C2.007 13.758 1.781 13.609 1.586 13.414C1.391 13.219 1.242 12.993 1.14 12.736C1.047 12.5 1 12.254 1 12L1 8C1 7.746 1.047 7.5 1.14 7.264C1.242 7.007 1.391 6.781 1.586 6.586C1.781 6.391 2.007 6.242 2.264 6.14C2.5 6.047 2.746 6 3 6L5.191 6L7.053 2.276ZM12.099 12.851C12.26 12.751 12.383 12.617 12.467 12.447L13.606 10.171C13.869 9.645 14 9.088 14 8.5L14 7L11 7C10.724 7 10.488 6.902 10.293 6.707C10.098 6.512 10 6.276 10 6L10 3.5C10 3.332 9.959 3.153 9.877 2.964C9.798 2.783 9.691 2.61 9.553 2.445C9.428 2.295 9.3 2.176 9.168 2.088C9.115 2.053 9.068 2.027 9.026 2.011C9.013 2.006 9.002 2.002 8.993 2L8.993 2C8.851 2 8.749 2.004 8.687 2.012C8.605 2.022 8.534 2.042 8.474 2.072C8.295 2.161 8.12 2.379 7.947 2.724L6.085 6.447C6.001 6.617 5.878 6.751 5.717 6.851C5.556 6.95 5.38 7 5.191 7L5 7L5 13L11.573 13C11.762 13 11.938 12.95 12.099 12.851ZM2.293 12.707C2.488 12.902 2.724 13 3 13L4 13L4 7L3 7C2.724 7 2.488 7.098 2.293 7.293C2.098 7.488 2 7.724 2 8L2 12C2 12.276 2.098 12.512 2.293 12.707Z"),
        fill = SolidColor(Color.Black),
    ).build()
}

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

### Android XML

```xml
<!-- res/drawable/ic_thumbs_up.xml · Gentleface "thumbs-up" (line-round), MIT. https://gentleface.com/icons/thumbs-up -->
<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="M7.053 2.276C7.325 1.733 7.649 1.366 8.026 1.178C8.189 1.097 8.367 1.044 8.563 1.019C8.667 1.006 8.813 1 9 1C9.226 1 9.467 1.085 9.723 1.256C9.935 1.397 10.134 1.58 10.322 1.805C10.52 2.043 10.678 2.297 10.795 2.567C10.932 2.883 11 3.194 11 3.5L11 6L14 6C14.276 6 14.512 6.098 14.707 6.293C14.902 6.488 15 6.724 15 7L15 8.5C15 9.245 14.833 9.951 14.5 10.618L13.362 12.894C13.192 13.233 12.947 13.502 12.624 13.701C12.302 13.9 11.952 14 11.573 14L3 14C2.746 14 2.5 13.953 2.264 13.86C2.007 13.758 1.781 13.609 1.586 13.414C1.391 13.219 1.242 12.993 1.14 12.736C1.047 12.5 1 12.254 1 12L1 8C1 7.746 1.047 7.5 1.14 7.264C1.242 7.007 1.391 6.781 1.586 6.586C1.781 6.391 2.007 6.242 2.264 6.14C2.5 6.047 2.746 6 3 6L5.191 6L7.053 2.276ZM12.099 12.851C12.26 12.751 12.383 12.617 12.467 12.447L13.606 10.171C13.869 9.645 14 9.088 14 8.5L14 7L11 7C10.724 7 10.488 6.902 10.293 6.707C10.098 6.512 10 6.276 10 6L10 3.5C10 3.332 9.959 3.153 9.877 2.964C9.798 2.783 9.691 2.61 9.553 2.445C9.428 2.295 9.3 2.176 9.168 2.088C9.115 2.053 9.068 2.027 9.026 2.011C9.013 2.006 9.002 2.002 8.993 2L8.993 2C8.851 2 8.749 2.004 8.687 2.012C8.605 2.022 8.534 2.042 8.474 2.072C8.295 2.161 8.12 2.379 7.947 2.724L6.085 6.447C6.001 6.617 5.878 6.751 5.717 6.851C5.556 6.95 5.38 7 5.191 7L5 7L5 13L11.573 13C11.762 13 11.938 12.95 12.099 12.851ZM2.293 12.707C2.488 12.902 2.724 13 3 13L4 13L4 7L3 7C2.724 7 2.488 7.098 2.293 7.293C2.098 7.488 2 7.724 2 8L2 12C2 12.276 2.098 12.512 2.293 12.707Z"/>
</vector>
```

### Flutter

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

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

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

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

  @override
  void paint(Canvas canvas, Size size) {
    canvas.scale(size.width / 16, size.height / 16);
    final p = Path()
      ..moveTo(7.053, 2.276)
      ..cubicTo(7.325, 1.733, 7.649, 1.366, 8.026, 1.178)
      ..cubicTo(8.189, 1.097, 8.367, 1.044, 8.563, 1.019)
      ..cubicTo(8.667, 1.006, 8.813, 1, 9, 1)
      ..cubicTo(9.226, 1, 9.467, 1.085, 9.723, 1.256)
      ..cubicTo(9.935, 1.397, 10.134, 1.58, 10.322, 1.805)
      ..cubicTo(10.52, 2.043, 10.678, 2.297, 10.795, 2.567)
      ..cubicTo(10.932, 2.883, 11, 3.194, 11, 3.5)
      ..lineTo(11, 6)
      ..lineTo(14, 6)
      ..cubicTo(14.276, 6, 14.512, 6.098, 14.707, 6.293)
      ..cubicTo(14.902, 6.488, 15, 6.724, 15, 7)
      ..lineTo(15, 8.5)
      ..cubicTo(15, 9.245, 14.833, 9.951, 14.5, 10.618)
      ..lineTo(13.362, 12.894)
      ..cubicTo(13.192, 13.233, 12.947, 13.502, 12.624, 13.701)
      ..cubicTo(12.302, 13.9, 11.952, 14, 11.573, 14)
      ..lineTo(3, 14)
      ..cubicTo(2.746, 14, 2.5, 13.953, 2.264, 13.86)
      ..cubicTo(2.007, 13.758, 1.781, 13.609, 1.586, 13.414)
      ..cubicTo(1.391, 13.219, 1.242, 12.993, 1.14, 12.736)
      ..cubicTo(1.047, 12.5, 1, 12.254, 1, 12)
      ..lineTo(1, 8)
      ..cubicTo(1, 7.746, 1.047, 7.5, 1.14, 7.264)
      ..cubicTo(1.242, 7.007, 1.391, 6.781, 1.586, 6.586)
      ..cubicTo(1.781, 6.391, 2.007, 6.242, 2.264, 6.14)
      ..cubicTo(2.5, 6.047, 2.746, 6, 3, 6)
      ..lineTo(5.191, 6)
      ..lineTo(7.053, 2.276)
      ..close()
      ..moveTo(12.099, 12.851)
      ..cubicTo(12.26, 12.751, 12.383, 12.617, 12.467, 12.447)
      ..lineTo(13.606, 10.171)
      ..cubicTo(13.869, 9.645, 14, 9.088, 14, 8.5)
      ..lineTo(14, 7)
      ..lineTo(11, 7)
      ..cubicTo(10.724, 7, 10.488, 6.902, 10.293, 6.707)
      ..cubicTo(10.098, 6.512, 10, 6.276, 10, 6)
      ..lineTo(10, 3.5)
      ..cubicTo(10, 3.332, 9.959, 3.153, 9.877, 2.964)
      ..cubicTo(9.798, 2.783, 9.691, 2.61, 9.553, 2.445)
      ..cubicTo(9.428, 2.295, 9.3, 2.176, 9.168, 2.088)
      ..cubicTo(9.115, 2.053, 9.068, 2.027, 9.026, 2.011)
      ..cubicTo(9.013, 2.006, 9.002, 2.002, 8.993, 2)
      ..lineTo(8.993, 2)
      ..cubicTo(8.851, 2, 8.749, 2.004, 8.687, 2.012)
      ..cubicTo(8.605, 2.022, 8.534, 2.042, 8.474, 2.072)
      ..cubicTo(8.295, 2.161, 8.12, 2.379, 7.947, 2.724)
      ..lineTo(6.085, 6.447)
      ..cubicTo(6.001, 6.617, 5.878, 6.751, 5.717, 6.851)
      ..cubicTo(5.556, 6.95, 5.38, 7, 5.191, 7)
      ..lineTo(5, 7)
      ..lineTo(5, 13)
      ..lineTo(11.573, 13)
      ..cubicTo(11.762, 13, 11.938, 12.95, 12.099, 12.851)
      ..close()
      ..moveTo(2.293, 12.707)
      ..cubicTo(2.488, 12.902, 2.724, 13, 3, 13)
      ..lineTo(4, 13)
      ..lineTo(4, 7)
      ..lineTo(3, 7)
      ..cubicTo(2.724, 7, 2.488, 7.098, 2.293, 7.293)
      ..cubicTo(2.098, 7.488, 2, 7.724, 2, 8)
      ..lineTo(2, 12)
      ..cubicTo(2, 12.276, 2.098, 12.512, 2.293, 12.707)
      ..close();
    canvas.drawPath(p, Paint()..color = color);
  }

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