# barrel icon

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

- Category: Food & drink
- Use it for: barrel, keg, cask
- Tags: barrel, keg, cask, wine-barrel, beer-keg, whiskey, brewery, winery, cellar, storage, wood, food
- Component name: BarrelIcon
- Added: 2026-10-29
- Since: version 0.2.0
- npm: `import { BarrelIcon } from '@gentleface/react';` (@gentleface/react 0.2.0)
- Changed: 2026-10-30 (added)

## Alternatives

- `beer`: beer or a pub
- `wine`: wine

## Don't confuse with

- `database`: database is the stacked-cylinder data store, not a barrel

## Also fits

- wine: a barrel or keg

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

The SVG of every style: https://gentleface.com/icons/barrel.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.1 13.8C2.437 12.916 1.926 11.951 1.568 10.905C1.189 9.802 1 8.667 1 7.5C1 6.333 1.189 5.198 1.568 4.095C1.926 3.049 2.437 2.084 3.1 1.2C3.2 1.067 3.333 1 3.5 1L11.5 1C11.667 1 11.8 1.067 11.9 1.2C12.563 2.084 13.074 3.049 13.432 4.095C13.811 5.198 14 6.333 14 7.5C14 8.667 13.811 9.802 13.432 10.905C13.074 11.951 12.563 12.916 11.9 13.8C11.8 13.933 11.667 14 11.5 14L3.5 14C3.333 14 3.2 13.933 3.1 13.8ZM11.246 2L9.445 2C9.833 2.63 10.151 3.296 10.4 4L12.332 4C12.051 3.29 11.689 2.624 11.246 2ZM2.668 4L4.6 4C4.849 3.296 5.167 2.63 5.555 2L3.754 2C3.311 2.624 2.949 3.29 2.668 4ZM8.246 2L6.754 2C6.311 2.624 5.949 3.29 5.668 4L9.332 4C9.051 3.29 8.689 2.624 8.246 2ZM2 7.5C2 8.352 2.111 9.185 2.334 10L4.301 10C4.1 9.183 4 8.35 4 7.5C4 6.65 4.1 5.817 4.301 5L2.334 5C2.111 5.815 2 6.648 2 7.5ZM10 7.5C10 6.648 9.889 5.815 9.666 5L5.334 5C5.111 5.815 5 6.648 5 7.5C5 8.352 5.111 9.185 5.334 10L9.666 10C9.889 9.185 10 8.352 10 7.5ZM11 7.5C11 8.35 10.9 9.183 10.699 10L12.666 10C12.889 9.185 13 8.352 13 7.5C13 6.648 12.889 5.815 12.666 5L10.699 5C10.9 5.817 11 6.65 11 7.5ZM3.754 13L5.555 13C5.167 12.37 4.849 11.704 4.6 11L2.668 11C2.949 11.71 3.311 12.376 3.754 13ZM6.754 13L8.246 13C8.689 12.376 9.051 11.71 9.332 11L5.668 11C5.949 11.71 6.311 12.376 6.754 13ZM12.332 11L10.4 11C10.151 11.704 9.833 12.37 9.445 13L11.246 13C11.689 12.376 12.051 11.71 12.332 11Z"/></svg>
```

### React

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

export function BarrelIcon(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.1 13.8C2.437 12.916 1.926 11.951 1.568 10.905C1.189 9.802 1 8.667 1 7.5C1 6.333 1.189 5.198 1.568 4.095C1.926 3.049 2.437 2.084 3.1 1.2C3.2 1.067 3.333 1 3.5 1L11.5 1C11.667 1 11.8 1.067 11.9 1.2C12.563 2.084 13.074 3.049 13.432 4.095C13.811 5.198 14 6.333 14 7.5C14 8.667 13.811 9.802 13.432 10.905C13.074 11.951 12.563 12.916 11.9 13.8C11.8 13.933 11.667 14 11.5 14L3.5 14C3.333 14 3.2 13.933 3.1 13.8ZM11.246 2L9.445 2C9.833 2.63 10.151 3.296 10.4 4L12.332 4C12.051 3.29 11.689 2.624 11.246 2ZM2.668 4L4.6 4C4.849 3.296 5.167 2.63 5.555 2L3.754 2C3.311 2.624 2.949 3.29 2.668 4ZM8.246 2L6.754 2C6.311 2.624 5.949 3.29 5.668 4L9.332 4C9.051 3.29 8.689 2.624 8.246 2ZM2 7.5C2 8.352 2.111 9.185 2.334 10L4.301 10C4.1 9.183 4 8.35 4 7.5C4 6.65 4.1 5.817 4.301 5L2.334 5C2.111 5.815 2 6.648 2 7.5ZM10 7.5C10 6.648 9.889 5.815 9.666 5L5.334 5C5.111 5.815 5 6.648 5 7.5C5 8.352 5.111 9.185 5.334 10L9.666 10C9.889 9.185 10 8.352 10 7.5ZM11 7.5C11 8.35 10.9 9.183 10.699 10L12.666 10C12.889 9.185 13 8.352 13 7.5C13 6.648 12.889 5.815 12.666 5L10.699 5C10.9 5.817 11 6.65 11 7.5ZM3.754 13L5.555 13C5.167 12.37 4.849 11.704 4.6 11L2.668 11C2.949 11.71 3.311 12.376 3.754 13ZM6.754 13L8.246 13C8.689 12.376 9.051 11.71 9.332 11L5.668 11C5.949 11.71 6.311 12.376 6.754 13ZM12.332 11L10.4 11C10.151 11.704 9.833 12.37 9.445 13L11.246 13C11.689 12.376 12.051 11.71 12.332 11Z" />
    </svg>
  );
}
```

### Vue

```vue
<!-- Gentleface "barrel" (line-round), MIT. https://gentleface.com/icons/barrel -->
<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.1 13.8C2.437 12.916 1.926 11.951 1.568 10.905C1.189 9.802 1 8.667 1 7.5C1 6.333 1.189 5.198 1.568 4.095C1.926 3.049 2.437 2.084 3.1 1.2C3.2 1.067 3.333 1 3.5 1L11.5 1C11.667 1 11.8 1.067 11.9 1.2C12.563 2.084 13.074 3.049 13.432 4.095C13.811 5.198 14 6.333 14 7.5C14 8.667 13.811 9.802 13.432 10.905C13.074 11.951 12.563 12.916 11.9 13.8C11.8 13.933 11.667 14 11.5 14L3.5 14C3.333 14 3.2 13.933 3.1 13.8ZM11.246 2L9.445 2C9.833 2.63 10.151 3.296 10.4 4L12.332 4C12.051 3.29 11.689 2.624 11.246 2ZM2.668 4L4.6 4C4.849 3.296 5.167 2.63 5.555 2L3.754 2C3.311 2.624 2.949 3.29 2.668 4ZM8.246 2L6.754 2C6.311 2.624 5.949 3.29 5.668 4L9.332 4C9.051 3.29 8.689 2.624 8.246 2ZM2 7.5C2 8.352 2.111 9.185 2.334 10L4.301 10C4.1 9.183 4 8.35 4 7.5C4 6.65 4.1 5.817 4.301 5L2.334 5C2.111 5.815 2 6.648 2 7.5ZM10 7.5C10 6.648 9.889 5.815 9.666 5L5.334 5C5.111 5.815 5 6.648 5 7.5C5 8.352 5.111 9.185 5.334 10L9.666 10C9.889 9.185 10 8.352 10 7.5ZM11 7.5C11 8.35 10.9 9.183 10.699 10L12.666 10C12.889 9.185 13 8.352 13 7.5C13 6.648 12.889 5.815 12.666 5L10.699 5C10.9 5.817 11 6.65 11 7.5ZM3.754 13L5.555 13C5.167 12.37 4.849 11.704 4.6 11L2.668 11C2.949 11.71 3.311 12.376 3.754 13ZM6.754 13L8.246 13C8.689 12.376 9.051 11.71 9.332 11L5.668 11C5.949 11.71 6.311 12.376 6.754 13ZM12.332 11L10.4 11C10.151 11.704 9.833 12.37 9.445 13L11.246 13C11.689 12.376 12.051 11.71 12.332 11Z" />
  </svg>
</template>
```

### Svelte

```svelte
<!-- Gentleface "barrel" (line-round), MIT. https://gentleface.com/icons/barrel -->
<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.1 13.8C2.437 12.916 1.926 11.951 1.568 10.905C1.189 9.802 1 8.667 1 7.5C1 6.333 1.189 5.198 1.568 4.095C1.926 3.049 2.437 2.084 3.1 1.2C3.2 1.067 3.333 1 3.5 1L11.5 1C11.667 1 11.8 1.067 11.9 1.2C12.563 2.084 13.074 3.049 13.432 4.095C13.811 5.198 14 6.333 14 7.5C14 8.667 13.811 9.802 13.432 10.905C13.074 11.951 12.563 12.916 11.9 13.8C11.8 13.933 11.667 14 11.5 14L3.5 14C3.333 14 3.2 13.933 3.1 13.8ZM11.246 2L9.445 2C9.833 2.63 10.151 3.296 10.4 4L12.332 4C12.051 3.29 11.689 2.624 11.246 2ZM2.668 4L4.6 4C4.849 3.296 5.167 2.63 5.555 2L3.754 2C3.311 2.624 2.949 3.29 2.668 4ZM8.246 2L6.754 2C6.311 2.624 5.949 3.29 5.668 4L9.332 4C9.051 3.29 8.689 2.624 8.246 2ZM2 7.5C2 8.352 2.111 9.185 2.334 10L4.301 10C4.1 9.183 4 8.35 4 7.5C4 6.65 4.1 5.817 4.301 5L2.334 5C2.111 5.815 2 6.648 2 7.5ZM10 7.5C10 6.648 9.889 5.815 9.666 5L5.334 5C5.111 5.815 5 6.648 5 7.5C5 8.352 5.111 9.185 5.334 10L9.666 10C9.889 9.185 10 8.352 10 7.5ZM11 7.5C11 8.35 10.9 9.183 10.699 10L12.666 10C12.889 9.185 13 8.352 13 7.5C13 6.648 12.889 5.815 12.666 5L10.699 5C10.9 5.817 11 6.65 11 7.5ZM3.754 13L5.555 13C5.167 12.37 4.849 11.704 4.6 11L2.668 11C2.949 11.71 3.311 12.376 3.754 13ZM6.754 13L8.246 13C8.689 12.376 9.051 11.71 9.332 11L5.668 11C5.949 11.71 6.311 12.376 6.754 13ZM12.332 11L10.4 11C10.151 11.704 9.833 12.37 9.445 13L11.246 13C11.689 12.376 12.051 11.71 12.332 11Z" />
</svg>
```

### HTML img

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

### CSS

```css
/* Gentleface "barrel" (line-round), MIT. https://gentleface.com/icons/barrel. Takes the text color. */
.icon-barrel {
  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.1 13.8C2.437 12.916 1.926 11.951 1.568 10.905C1.189 9.802 1 8.667 1 7.5C1 6.333 1.189 5.198 1.568 4.095C1.926 3.049 2.437 2.084 3.1 1.2C3.2 1.067 3.333 1 3.5 1L11.5 1C11.667 1 11.8 1.067 11.9 1.2C12.563 2.084 13.074 3.049 13.432 4.095C13.811 5.198 14 6.333 14 7.5C14 8.667 13.811 9.802 13.432 10.905C13.074 11.951 12.563 12.916 11.9 13.8C11.8 13.933 11.667 14 11.5 14L3.5 14C3.333 14 3.2 13.933 3.1 13.8ZM11.246 2L9.445 2C9.833 2.63 10.151 3.296 10.4 4L12.332 4C12.051 3.29 11.689 2.624 11.246 2ZM2.668 4L4.6 4C4.849 3.296 5.167 2.63 5.555 2L3.754 2C3.311 2.624 2.949 3.29 2.668 4ZM8.246 2L6.754 2C6.311 2.624 5.949 3.29 5.668 4L9.332 4C9.051 3.29 8.689 2.624 8.246 2ZM2 7.5C2 8.352 2.111 9.185 2.334 10L4.301 10C4.1 9.183 4 8.35 4 7.5C4 6.65 4.1 5.817 4.301 5L2.334 5C2.111 5.815 2 6.648 2 7.5ZM10 7.5C10 6.648 9.889 5.815 9.666 5L5.334 5C5.111 5.815 5 6.648 5 7.5C5 8.352 5.111 9.185 5.334 10L9.666 10C9.889 9.185 10 8.352 10 7.5ZM11 7.5C11 8.35 10.9 9.183 10.699 10L12.666 10C12.889 9.185 13 8.352 13 7.5C13 6.648 12.889 5.815 12.666 5L10.699 5C10.9 5.817 11 6.65 11 7.5ZM3.754 13L5.555 13C5.167 12.37 4.849 11.704 4.6 11L2.668 11C2.949 11.71 3.311 12.376 3.754 13ZM6.754 13L8.246 13C8.689 12.376 9.051 11.71 9.332 11L5.668 11C5.949 11.71 6.311 12.376 6.754 13ZM12.332 11L10.4 11C10.151 11.704 9.833 12.37 9.445 13L11.246 13C11.689 12.376 12.051 11.71 12.332 11Z'/%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.1 13.8C2.437 12.916 1.926 11.951 1.568 10.905C1.189 9.802 1 8.667 1 7.5C1 6.333 1.189 5.198 1.568 4.095C1.926 3.049 2.437 2.084 3.1 1.2C3.2 1.067 3.333 1 3.5 1L11.5 1C11.667 1 11.8 1.067 11.9 1.2C12.563 2.084 13.074 3.049 13.432 4.095C13.811 5.198 14 6.333 14 7.5C14 8.667 13.811 9.802 13.432 10.905C13.074 11.951 12.563 12.916 11.9 13.8C11.8 13.933 11.667 14 11.5 14L3.5 14C3.333 14 3.2 13.933 3.1 13.8ZM11.246 2L9.445 2C9.833 2.63 10.151 3.296 10.4 4L12.332 4C12.051 3.29 11.689 2.624 11.246 2ZM2.668 4L4.6 4C4.849 3.296 5.167 2.63 5.555 2L3.754 2C3.311 2.624 2.949 3.29 2.668 4ZM8.246 2L6.754 2C6.311 2.624 5.949 3.29 5.668 4L9.332 4C9.051 3.29 8.689 2.624 8.246 2ZM2 7.5C2 8.352 2.111 9.185 2.334 10L4.301 10C4.1 9.183 4 8.35 4 7.5C4 6.65 4.1 5.817 4.301 5L2.334 5C2.111 5.815 2 6.648 2 7.5ZM10 7.5C10 6.648 9.889 5.815 9.666 5L5.334 5C5.111 5.815 5 6.648 5 7.5C5 8.352 5.111 9.185 5.334 10L9.666 10C9.889 9.185 10 8.352 10 7.5ZM11 7.5C11 8.35 10.9 9.183 10.699 10L12.666 10C12.889 9.185 13 8.352 13 7.5C13 6.648 12.889 5.815 12.666 5L10.699 5C10.9 5.817 11 6.65 11 7.5ZM3.754 13L5.555 13C5.167 12.37 4.849 11.704 4.6 11L2.668 11C2.949 11.71 3.311 12.376 3.754 13ZM6.754 13L8.246 13C8.689 12.376 9.051 11.71 9.332 11L5.668 11C5.949 11.71 6.311 12.376 6.754 13ZM12.332 11L10.4 11C10.151 11.704 9.833 12.37 9.445 13L11.246 13C11.689 12.376 12.051 11.71 12.332 11Z'/%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.1 13.8C2.437 12.916 1.926 11.951 1.568 10.905C1.189 9.802 1 8.667 1 7.5C1 6.333 1.189 5.198 1.568 4.095C1.926 3.049 2.437 2.084 3.1 1.2C3.2 1.067 3.333 1 3.5 1L11.5 1C11.667 1 11.8 1.067 11.9 1.2C12.563 2.084 13.074 3.049 13.432 4.095C13.811 5.198 14 6.333 14 7.5C14 8.667 13.811 9.802 13.432 10.905C13.074 11.951 12.563 12.916 11.9 13.8C11.8 13.933 11.667 14 11.5 14L3.5 14C3.333 14 3.2 13.933 3.1 13.8ZM11.246 2L9.445 2C9.833 2.63 10.151 3.296 10.4 4L12.332 4C12.051 3.29 11.689 2.624 11.246 2ZM2.668 4L4.6 4C4.849 3.296 5.167 2.63 5.555 2L3.754 2C3.311 2.624 2.949 3.29 2.668 4ZM8.246 2L6.754 2C6.311 2.624 5.949 3.29 5.668 4L9.332 4C9.051 3.29 8.689 2.624 8.246 2ZM2 7.5C2 8.352 2.111 9.185 2.334 10L4.301 10C4.1 9.183 4 8.35 4 7.5C4 6.65 4.1 5.817 4.301 5L2.334 5C2.111 5.815 2 6.648 2 7.5ZM10 7.5C10 6.648 9.889 5.815 9.666 5L5.334 5C5.111 5.815 5 6.648 5 7.5C5 8.352 5.111 9.185 5.334 10L9.666 10C9.889 9.185 10 8.352 10 7.5ZM11 7.5C11 8.35 10.9 9.183 10.699 10L12.666 10C12.889 9.185 13 8.352 13 7.5C13 6.648 12.889 5.815 12.666 5L10.699 5C10.9 5.817 11 6.65 11 7.5ZM3.754 13L5.555 13C5.167 12.37 4.849 11.704 4.6 11L2.668 11C2.949 11.71 3.311 12.376 3.754 13ZM6.754 13L8.246 13C8.689 12.376 9.051 11.71 9.332 11L5.668 11C5.949 11.71 6.311 12.376 6.754 13ZM12.332 11L10.4 11C10.151 11.704 9.833 12.37 9.445 13L11.246 13C11.689 12.376 12.051 11.71 12.332 11Z'/%3E%3C/svg%3E
```

### Sprite

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

### SwiftUI

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

struct BarrelIcon: Shape {
    func path(in rect: CGRect) -> Path {
        var p = Path()
        p.move(to: CGPoint(x: 3.1, y: 13.8))
        p.addCurve(to: CGPoint(x: 1.568, y: 10.905), control1: CGPoint(x: 2.437, y: 12.916), control2: CGPoint(x: 1.926, y: 11.951))
        p.addCurve(to: CGPoint(x: 1, y: 7.5), control1: CGPoint(x: 1.189, y: 9.802), control2: CGPoint(x: 1, y: 8.667))
        p.addCurve(to: CGPoint(x: 1.568, y: 4.095), control1: CGPoint(x: 1, y: 6.333), control2: CGPoint(x: 1.189, y: 5.198))
        p.addCurve(to: CGPoint(x: 3.1, y: 1.2), control1: CGPoint(x: 1.926, y: 3.049), control2: CGPoint(x: 2.437, y: 2.084))
        p.addCurve(to: CGPoint(x: 3.5, y: 1), control1: CGPoint(x: 3.2, y: 1.067), control2: CGPoint(x: 3.333, y: 1))
        p.addLine(to: CGPoint(x: 11.5, y: 1))
        p.addCurve(to: CGPoint(x: 11.9, y: 1.2), control1: CGPoint(x: 11.667, y: 1), control2: CGPoint(x: 11.8, y: 1.067))
        p.addCurve(to: CGPoint(x: 13.432, y: 4.095), control1: CGPoint(x: 12.563, y: 2.084), control2: CGPoint(x: 13.074, y: 3.049))
        p.addCurve(to: CGPoint(x: 14, y: 7.5), control1: CGPoint(x: 13.811, y: 5.198), control2: CGPoint(x: 14, y: 6.333))
        p.addCurve(to: CGPoint(x: 13.432, y: 10.905), control1: CGPoint(x: 14, y: 8.667), control2: CGPoint(x: 13.811, y: 9.802))
        p.addCurve(to: CGPoint(x: 11.9, y: 13.8), control1: CGPoint(x: 13.074, y: 11.951), control2: CGPoint(x: 12.563, y: 12.916))
        p.addCurve(to: CGPoint(x: 11.5, y: 14), control1: CGPoint(x: 11.8, y: 13.933), control2: CGPoint(x: 11.667, y: 14))
        p.addLine(to: CGPoint(x: 3.5, y: 14))
        p.addCurve(to: CGPoint(x: 3.1, y: 13.8), control1: CGPoint(x: 3.333, y: 14), control2: CGPoint(x: 3.2, y: 13.933))
        p.closeSubpath()
        p.move(to: CGPoint(x: 11.246, y: 2))
        p.addLine(to: CGPoint(x: 9.445, y: 2))
        p.addCurve(to: CGPoint(x: 10.4, y: 4), control1: CGPoint(x: 9.833, y: 2.63), control2: CGPoint(x: 10.151, y: 3.296))
        p.addLine(to: CGPoint(x: 12.332, y: 4))
        p.addCurve(to: CGPoint(x: 11.246, y: 2), control1: CGPoint(x: 12.051, y: 3.29), control2: CGPoint(x: 11.689, y: 2.624))
        p.closeSubpath()
        p.move(to: CGPoint(x: 2.668, y: 4))
        p.addLine(to: CGPoint(x: 4.6, y: 4))
        p.addCurve(to: CGPoint(x: 5.555, y: 2), control1: CGPoint(x: 4.849, y: 3.296), control2: CGPoint(x: 5.167, y: 2.63))
        p.addLine(to: CGPoint(x: 3.754, y: 2))
        p.addCurve(to: CGPoint(x: 2.668, y: 4), control1: CGPoint(x: 3.311, y: 2.624), control2: CGPoint(x: 2.949, y: 3.29))
        p.closeSubpath()
        p.move(to: CGPoint(x: 8.246, y: 2))
        p.addLine(to: CGPoint(x: 6.754, y: 2))
        p.addCurve(to: CGPoint(x: 5.668, y: 4), control1: CGPoint(x: 6.311, y: 2.624), control2: CGPoint(x: 5.949, y: 3.29))
        p.addLine(to: CGPoint(x: 9.332, y: 4))
        p.addCurve(to: CGPoint(x: 8.246, y: 2), control1: CGPoint(x: 9.051, y: 3.29), control2: CGPoint(x: 8.689, y: 2.624))
        p.closeSubpath()
        p.move(to: CGPoint(x: 2, y: 7.5))
        p.addCurve(to: CGPoint(x: 2.334, y: 10), control1: CGPoint(x: 2, y: 8.352), control2: CGPoint(x: 2.111, y: 9.185))
        p.addLine(to: CGPoint(x: 4.301, y: 10))
        p.addCurve(to: CGPoint(x: 4, y: 7.5), control1: CGPoint(x: 4.1, y: 9.183), control2: CGPoint(x: 4, y: 8.35))
        p.addCurve(to: CGPoint(x: 4.301, y: 5), control1: CGPoint(x: 4, y: 6.65), control2: CGPoint(x: 4.1, y: 5.817))
        p.addLine(to: CGPoint(x: 2.334, y: 5))
        p.addCurve(to: CGPoint(x: 2, y: 7.5), control1: CGPoint(x: 2.111, y: 5.815), control2: CGPoint(x: 2, y: 6.648))
        p.closeSubpath()
        p.move(to: CGPoint(x: 10, y: 7.5))
        p.addCurve(to: CGPoint(x: 9.666, y: 5), control1: CGPoint(x: 10, y: 6.648), control2: CGPoint(x: 9.889, y: 5.815))
        p.addLine(to: CGPoint(x: 5.334, y: 5))
        p.addCurve(to: CGPoint(x: 5, y: 7.5), control1: CGPoint(x: 5.111, y: 5.815), control2: CGPoint(x: 5, y: 6.648))
        p.addCurve(to: CGPoint(x: 5.334, y: 10), control1: CGPoint(x: 5, y: 8.352), control2: CGPoint(x: 5.111, y: 9.185))
        p.addLine(to: CGPoint(x: 9.666, y: 10))
        p.addCurve(to: CGPoint(x: 10, y: 7.5), control1: CGPoint(x: 9.889, y: 9.185), control2: CGPoint(x: 10, y: 8.352))
        p.closeSubpath()
        p.move(to: CGPoint(x: 11, y: 7.5))
        p.addCurve(to: CGPoint(x: 10.699, y: 10), control1: CGPoint(x: 11, y: 8.35), control2: CGPoint(x: 10.9, y: 9.183))
        p.addLine(to: CGPoint(x: 12.666, y: 10))
        p.addCurve(to: CGPoint(x: 13, y: 7.5), control1: CGPoint(x: 12.889, y: 9.185), control2: CGPoint(x: 13, y: 8.352))
        p.addCurve(to: CGPoint(x: 12.666, y: 5), control1: CGPoint(x: 13, y: 6.648), control2: CGPoint(x: 12.889, y: 5.815))
        p.addLine(to: CGPoint(x: 10.699, y: 5))
        p.addCurve(to: CGPoint(x: 11, y: 7.5), control1: CGPoint(x: 10.9, y: 5.817), control2: CGPoint(x: 11, y: 6.65))
        p.closeSubpath()
        p.move(to: CGPoint(x: 3.754, y: 13))
        p.addLine(to: CGPoint(x: 5.555, y: 13))
        p.addCurve(to: CGPoint(x: 4.6, y: 11), control1: CGPoint(x: 5.167, y: 12.37), control2: CGPoint(x: 4.849, y: 11.704))
        p.addLine(to: CGPoint(x: 2.668, y: 11))
        p.addCurve(to: CGPoint(x: 3.754, y: 13), control1: CGPoint(x: 2.949, y: 11.71), control2: CGPoint(x: 3.311, y: 12.376))
        p.closeSubpath()
        p.move(to: CGPoint(x: 6.754, y: 13))
        p.addLine(to: CGPoint(x: 8.246, y: 13))
        p.addCurve(to: CGPoint(x: 9.332, y: 11), control1: CGPoint(x: 8.689, y: 12.376), control2: CGPoint(x: 9.051, y: 11.71))
        p.addLine(to: CGPoint(x: 5.668, y: 11))
        p.addCurve(to: CGPoint(x: 6.754, y: 13), control1: CGPoint(x: 5.949, y: 11.71), control2: CGPoint(x: 6.311, y: 12.376))
        p.closeSubpath()
        p.move(to: CGPoint(x: 12.332, y: 11))
        p.addLine(to: CGPoint(x: 10.4, y: 11))
        p.addCurve(to: CGPoint(x: 9.445, y: 13), control1: CGPoint(x: 10.151, y: 11.704), control2: CGPoint(x: 9.833, y: 12.37))
        p.addLine(to: CGPoint(x: 11.246, y: 13))
        p.addCurve(to: CGPoint(x: 12.332, y: 11), control1: CGPoint(x: 11.689, y: 12.376), control2: CGPoint(x: 12.051, y: 11.71))
        p.closeSubpath()
        return p.applying(CGAffineTransform(scaleX: rect.width / 16, y: rect.height / 16))
    }
}

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

### Compose

```kotlin
// Gentleface "barrel" (line-round), MIT. https://gentleface.com/icons/barrel
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 BarrelIcon: ImageVector by lazy {
    ImageVector.Builder(
        name = "barrel", defaultWidth = 16.dp, defaultHeight = 16.dp,
        viewportWidth = 16f, viewportHeight = 16f,
    ).addPath(
        pathData = addPathNodes("M3.1 13.8C2.437 12.916 1.926 11.951 1.568 10.905C1.189 9.802 1 8.667 1 7.5C1 6.333 1.189 5.198 1.568 4.095C1.926 3.049 2.437 2.084 3.1 1.2C3.2 1.067 3.333 1 3.5 1L11.5 1C11.667 1 11.8 1.067 11.9 1.2C12.563 2.084 13.074 3.049 13.432 4.095C13.811 5.198 14 6.333 14 7.5C14 8.667 13.811 9.802 13.432 10.905C13.074 11.951 12.563 12.916 11.9 13.8C11.8 13.933 11.667 14 11.5 14L3.5 14C3.333 14 3.2 13.933 3.1 13.8ZM11.246 2L9.445 2C9.833 2.63 10.151 3.296 10.4 4L12.332 4C12.051 3.29 11.689 2.624 11.246 2ZM2.668 4L4.6 4C4.849 3.296 5.167 2.63 5.555 2L3.754 2C3.311 2.624 2.949 3.29 2.668 4ZM8.246 2L6.754 2C6.311 2.624 5.949 3.29 5.668 4L9.332 4C9.051 3.29 8.689 2.624 8.246 2ZM2 7.5C2 8.352 2.111 9.185 2.334 10L4.301 10C4.1 9.183 4 8.35 4 7.5C4 6.65 4.1 5.817 4.301 5L2.334 5C2.111 5.815 2 6.648 2 7.5ZM10 7.5C10 6.648 9.889 5.815 9.666 5L5.334 5C5.111 5.815 5 6.648 5 7.5C5 8.352 5.111 9.185 5.334 10L9.666 10C9.889 9.185 10 8.352 10 7.5ZM11 7.5C11 8.35 10.9 9.183 10.699 10L12.666 10C12.889 9.185 13 8.352 13 7.5C13 6.648 12.889 5.815 12.666 5L10.699 5C10.9 5.817 11 6.65 11 7.5ZM3.754 13L5.555 13C5.167 12.37 4.849 11.704 4.6 11L2.668 11C2.949 11.71 3.311 12.376 3.754 13ZM6.754 13L8.246 13C8.689 12.376 9.051 11.71 9.332 11L5.668 11C5.949 11.71 6.311 12.376 6.754 13ZM12.332 11L10.4 11C10.151 11.704 9.833 12.37 9.445 13L11.246 13C11.689 12.376 12.051 11.71 12.332 11Z"),
        fill = SolidColor(Color.Black),
    ).build()
}

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

### Android XML

```xml
<!-- res/drawable/ic_barrel.xml · Gentleface "barrel" (line-round), MIT. https://gentleface.com/icons/barrel -->
<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.1 13.8C2.437 12.916 1.926 11.951 1.568 10.905C1.189 9.802 1 8.667 1 7.5C1 6.333 1.189 5.198 1.568 4.095C1.926 3.049 2.437 2.084 3.1 1.2C3.2 1.067 3.333 1 3.5 1L11.5 1C11.667 1 11.8 1.067 11.9 1.2C12.563 2.084 13.074 3.049 13.432 4.095C13.811 5.198 14 6.333 14 7.5C14 8.667 13.811 9.802 13.432 10.905C13.074 11.951 12.563 12.916 11.9 13.8C11.8 13.933 11.667 14 11.5 14L3.5 14C3.333 14 3.2 13.933 3.1 13.8ZM11.246 2L9.445 2C9.833 2.63 10.151 3.296 10.4 4L12.332 4C12.051 3.29 11.689 2.624 11.246 2ZM2.668 4L4.6 4C4.849 3.296 5.167 2.63 5.555 2L3.754 2C3.311 2.624 2.949 3.29 2.668 4ZM8.246 2L6.754 2C6.311 2.624 5.949 3.29 5.668 4L9.332 4C9.051 3.29 8.689 2.624 8.246 2ZM2 7.5C2 8.352 2.111 9.185 2.334 10L4.301 10C4.1 9.183 4 8.35 4 7.5C4 6.65 4.1 5.817 4.301 5L2.334 5C2.111 5.815 2 6.648 2 7.5ZM10 7.5C10 6.648 9.889 5.815 9.666 5L5.334 5C5.111 5.815 5 6.648 5 7.5C5 8.352 5.111 9.185 5.334 10L9.666 10C9.889 9.185 10 8.352 10 7.5ZM11 7.5C11 8.35 10.9 9.183 10.699 10L12.666 10C12.889 9.185 13 8.352 13 7.5C13 6.648 12.889 5.815 12.666 5L10.699 5C10.9 5.817 11 6.65 11 7.5ZM3.754 13L5.555 13C5.167 12.37 4.849 11.704 4.6 11L2.668 11C2.949 11.71 3.311 12.376 3.754 13ZM6.754 13L8.246 13C8.689 12.376 9.051 11.71 9.332 11L5.668 11C5.949 11.71 6.311 12.376 6.754 13ZM12.332 11L10.4 11C10.151 11.704 9.833 12.37 9.445 13L11.246 13C11.689 12.376 12.051 11.71 12.332 11Z"/>
</vector>
```

### Flutter

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

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

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

class _BarrelIconPainter extends CustomPainter {
  _BarrelIconPainter(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.1, 13.8)
      ..cubicTo(2.437, 12.916, 1.926, 11.951, 1.568, 10.905)
      ..cubicTo(1.189, 9.802, 1, 8.667, 1, 7.5)
      ..cubicTo(1, 6.333, 1.189, 5.198, 1.568, 4.095)
      ..cubicTo(1.926, 3.049, 2.437, 2.084, 3.1, 1.2)
      ..cubicTo(3.2, 1.067, 3.333, 1, 3.5, 1)
      ..lineTo(11.5, 1)
      ..cubicTo(11.667, 1, 11.8, 1.067, 11.9, 1.2)
      ..cubicTo(12.563, 2.084, 13.074, 3.049, 13.432, 4.095)
      ..cubicTo(13.811, 5.198, 14, 6.333, 14, 7.5)
      ..cubicTo(14, 8.667, 13.811, 9.802, 13.432, 10.905)
      ..cubicTo(13.074, 11.951, 12.563, 12.916, 11.9, 13.8)
      ..cubicTo(11.8, 13.933, 11.667, 14, 11.5, 14)
      ..lineTo(3.5, 14)
      ..cubicTo(3.333, 14, 3.2, 13.933, 3.1, 13.8)
      ..close()
      ..moveTo(11.246, 2)
      ..lineTo(9.445, 2)
      ..cubicTo(9.833, 2.63, 10.151, 3.296, 10.4, 4)
      ..lineTo(12.332, 4)
      ..cubicTo(12.051, 3.29, 11.689, 2.624, 11.246, 2)
      ..close()
      ..moveTo(2.668, 4)
      ..lineTo(4.6, 4)
      ..cubicTo(4.849, 3.296, 5.167, 2.63, 5.555, 2)
      ..lineTo(3.754, 2)
      ..cubicTo(3.311, 2.624, 2.949, 3.29, 2.668, 4)
      ..close()
      ..moveTo(8.246, 2)
      ..lineTo(6.754, 2)
      ..cubicTo(6.311, 2.624, 5.949, 3.29, 5.668, 4)
      ..lineTo(9.332, 4)
      ..cubicTo(9.051, 3.29, 8.689, 2.624, 8.246, 2)
      ..close()
      ..moveTo(2, 7.5)
      ..cubicTo(2, 8.352, 2.111, 9.185, 2.334, 10)
      ..lineTo(4.301, 10)
      ..cubicTo(4.1, 9.183, 4, 8.35, 4, 7.5)
      ..cubicTo(4, 6.65, 4.1, 5.817, 4.301, 5)
      ..lineTo(2.334, 5)
      ..cubicTo(2.111, 5.815, 2, 6.648, 2, 7.5)
      ..close()
      ..moveTo(10, 7.5)
      ..cubicTo(10, 6.648, 9.889, 5.815, 9.666, 5)
      ..lineTo(5.334, 5)
      ..cubicTo(5.111, 5.815, 5, 6.648, 5, 7.5)
      ..cubicTo(5, 8.352, 5.111, 9.185, 5.334, 10)
      ..lineTo(9.666, 10)
      ..cubicTo(9.889, 9.185, 10, 8.352, 10, 7.5)
      ..close()
      ..moveTo(11, 7.5)
      ..cubicTo(11, 8.35, 10.9, 9.183, 10.699, 10)
      ..lineTo(12.666, 10)
      ..cubicTo(12.889, 9.185, 13, 8.352, 13, 7.5)
      ..cubicTo(13, 6.648, 12.889, 5.815, 12.666, 5)
      ..lineTo(10.699, 5)
      ..cubicTo(10.9, 5.817, 11, 6.65, 11, 7.5)
      ..close()
      ..moveTo(3.754, 13)
      ..lineTo(5.555, 13)
      ..cubicTo(5.167, 12.37, 4.849, 11.704, 4.6, 11)
      ..lineTo(2.668, 11)
      ..cubicTo(2.949, 11.71, 3.311, 12.376, 3.754, 13)
      ..close()
      ..moveTo(6.754, 13)
      ..lineTo(8.246, 13)
      ..cubicTo(8.689, 12.376, 9.051, 11.71, 9.332, 11)
      ..lineTo(5.668, 11)
      ..cubicTo(5.949, 11.71, 6.311, 12.376, 6.754, 13)
      ..close()
      ..moveTo(12.332, 11)
      ..lineTo(10.4, 11)
      ..cubicTo(10.151, 11.704, 9.833, 12.37, 9.445, 13)
      ..lineTo(11.246, 13)
      ..cubicTo(11.689, 12.376, 12.051, 11.71, 12.332, 11)
      ..close();
    canvas.drawPath(p, Paint()..color = color);
  }

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