# flask icon

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

- Category: Science & education
- Use it for: experiment, lab, laboratory, experimental, experiments, feature preview, labs
- Tags: flask, erlenmeyer, experiment, lab, laboratory, chemistry, test, beta, science, research
- Family: flask-play
- Component name: FlaskIcon
- Added: 2026-10-14

## Alternatives

- `a-b`: an A/B or split test
- `flask-play`: run tests
- `beaker`: a chemical or a solution
- `test-tube`: a lab test or a sample

## Also fits

- ab test: experiments in general (labs, feature trials)
- science: an experiment or a lab
- beaker: an experiment or a lab
- microscope: an experiment or a lab
- molecule: an experiment or lab glass
- lab test: an experiment or a lab

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

The SVG of every style: https://gentleface.com/icons/flask.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="M10 5.5C10 6.088 10.131 6.645 10.394 7.171L12.862 12.106C13.006 12.393 13.076 12.698 13.073 13.02C13.069 13.391 12.97 13.735 12.774 14.051C12.579 14.368 12.316 14.61 11.985 14.78C11.699 14.927 11.395 15 11.073 15L4.927 15C4.605 15 4.301 14.927 4.015 14.78C3.684 14.61 3.421 14.368 3.226 14.051C3.03 13.735 2.931 13.391 2.927 13.02C2.924 12.698 2.994 12.393 3.138 12.106L5.606 7.171C5.869 6.645 6 6.088 6 5.5L6 3L5.5 3C5.359 3 5.241 2.952 5.144 2.856C5.048 2.759 5 2.641 5 2.5C5 2.359 5.048 2.241 5.144 2.144C5.241 2.048 5.359 2 5.5 2L10.5 2C10.641 2 10.759 2.048 10.856 2.144C10.952 2.241 11 2.359 11 2.5C11 2.641 10.952 2.759 10.856 2.856C10.759 2.952 10.641 3 10.5 3L10 3L10 5.5ZM7 5.5C7 6.245 6.833 6.951 6.5 7.618L4.033 12.553C3.961 12.697 3.926 12.849 3.927 13.01C3.929 13.196 3.979 13.368 4.076 13.526C4.174 13.684 4.306 13.805 4.471 13.89C4.614 13.963 4.766 14 4.927 14L11.073 14C11.234 14 11.386 13.963 11.529 13.89C11.694 13.805 11.826 13.684 11.924 13.526C12.021 13.368 12.071 13.196 12.073 13.01C12.074 12.849 12.039 12.697 11.967 12.553L9.5 7.618C9.167 6.951 9 6.245 9 5.5L9 3L7 3L7 5.5Z"/></svg>
```

### React

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

export function FlaskIcon(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="M10 5.5C10 6.088 10.131 6.645 10.394 7.171L12.862 12.106C13.006 12.393 13.076 12.698 13.073 13.02C13.069 13.391 12.97 13.735 12.774 14.051C12.579 14.368 12.316 14.61 11.985 14.78C11.699 14.927 11.395 15 11.073 15L4.927 15C4.605 15 4.301 14.927 4.015 14.78C3.684 14.61 3.421 14.368 3.226 14.051C3.03 13.735 2.931 13.391 2.927 13.02C2.924 12.698 2.994 12.393 3.138 12.106L5.606 7.171C5.869 6.645 6 6.088 6 5.5L6 3L5.5 3C5.359 3 5.241 2.952 5.144 2.856C5.048 2.759 5 2.641 5 2.5C5 2.359 5.048 2.241 5.144 2.144C5.241 2.048 5.359 2 5.5 2L10.5 2C10.641 2 10.759 2.048 10.856 2.144C10.952 2.241 11 2.359 11 2.5C11 2.641 10.952 2.759 10.856 2.856C10.759 2.952 10.641 3 10.5 3L10 3L10 5.5ZM7 5.5C7 6.245 6.833 6.951 6.5 7.618L4.033 12.553C3.961 12.697 3.926 12.849 3.927 13.01C3.929 13.196 3.979 13.368 4.076 13.526C4.174 13.684 4.306 13.805 4.471 13.89C4.614 13.963 4.766 14 4.927 14L11.073 14C11.234 14 11.386 13.963 11.529 13.89C11.694 13.805 11.826 13.684 11.924 13.526C12.021 13.368 12.071 13.196 12.073 13.01C12.074 12.849 12.039 12.697 11.967 12.553L9.5 7.618C9.167 6.951 9 6.245 9 5.5L9 3L7 3L7 5.5Z" />
    </svg>
  );
}
```

### Vue

```vue
<!-- Gentleface "flask" (line-round), MIT. https://gentleface.com/icons/flask -->
<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="M10 5.5C10 6.088 10.131 6.645 10.394 7.171L12.862 12.106C13.006 12.393 13.076 12.698 13.073 13.02C13.069 13.391 12.97 13.735 12.774 14.051C12.579 14.368 12.316 14.61 11.985 14.78C11.699 14.927 11.395 15 11.073 15L4.927 15C4.605 15 4.301 14.927 4.015 14.78C3.684 14.61 3.421 14.368 3.226 14.051C3.03 13.735 2.931 13.391 2.927 13.02C2.924 12.698 2.994 12.393 3.138 12.106L5.606 7.171C5.869 6.645 6 6.088 6 5.5L6 3L5.5 3C5.359 3 5.241 2.952 5.144 2.856C5.048 2.759 5 2.641 5 2.5C5 2.359 5.048 2.241 5.144 2.144C5.241 2.048 5.359 2 5.5 2L10.5 2C10.641 2 10.759 2.048 10.856 2.144C10.952 2.241 11 2.359 11 2.5C11 2.641 10.952 2.759 10.856 2.856C10.759 2.952 10.641 3 10.5 3L10 3L10 5.5ZM7 5.5C7 6.245 6.833 6.951 6.5 7.618L4.033 12.553C3.961 12.697 3.926 12.849 3.927 13.01C3.929 13.196 3.979 13.368 4.076 13.526C4.174 13.684 4.306 13.805 4.471 13.89C4.614 13.963 4.766 14 4.927 14L11.073 14C11.234 14 11.386 13.963 11.529 13.89C11.694 13.805 11.826 13.684 11.924 13.526C12.021 13.368 12.071 13.196 12.073 13.01C12.074 12.849 12.039 12.697 11.967 12.553L9.5 7.618C9.167 6.951 9 6.245 9 5.5L9 3L7 3L7 5.5Z" />
  </svg>
</template>
```

### Svelte

```svelte
<!-- Gentleface "flask" (line-round), MIT. https://gentleface.com/icons/flask -->
<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="M10 5.5C10 6.088 10.131 6.645 10.394 7.171L12.862 12.106C13.006 12.393 13.076 12.698 13.073 13.02C13.069 13.391 12.97 13.735 12.774 14.051C12.579 14.368 12.316 14.61 11.985 14.78C11.699 14.927 11.395 15 11.073 15L4.927 15C4.605 15 4.301 14.927 4.015 14.78C3.684 14.61 3.421 14.368 3.226 14.051C3.03 13.735 2.931 13.391 2.927 13.02C2.924 12.698 2.994 12.393 3.138 12.106L5.606 7.171C5.869 6.645 6 6.088 6 5.5L6 3L5.5 3C5.359 3 5.241 2.952 5.144 2.856C5.048 2.759 5 2.641 5 2.5C5 2.359 5.048 2.241 5.144 2.144C5.241 2.048 5.359 2 5.5 2L10.5 2C10.641 2 10.759 2.048 10.856 2.144C10.952 2.241 11 2.359 11 2.5C11 2.641 10.952 2.759 10.856 2.856C10.759 2.952 10.641 3 10.5 3L10 3L10 5.5ZM7 5.5C7 6.245 6.833 6.951 6.5 7.618L4.033 12.553C3.961 12.697 3.926 12.849 3.927 13.01C3.929 13.196 3.979 13.368 4.076 13.526C4.174 13.684 4.306 13.805 4.471 13.89C4.614 13.963 4.766 14 4.927 14L11.073 14C11.234 14 11.386 13.963 11.529 13.89C11.694 13.805 11.826 13.684 11.924 13.526C12.021 13.368 12.071 13.196 12.073 13.01C12.074 12.849 12.039 12.697 11.967 12.553L9.5 7.618C9.167 6.951 9 6.245 9 5.5L9 3L7 3L7 5.5Z" />
</svg>
```

### HTML img

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

### CSS

```css
/* Gentleface "flask" (line-round), MIT. https://gentleface.com/icons/flask. Takes the text color. */
.icon-flask {
  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='M10 5.5C10 6.088 10.131 6.645 10.394 7.171L12.862 12.106C13.006 12.393 13.076 12.698 13.073 13.02C13.069 13.391 12.97 13.735 12.774 14.051C12.579 14.368 12.316 14.61 11.985 14.78C11.699 14.927 11.395 15 11.073 15L4.927 15C4.605 15 4.301 14.927 4.015 14.78C3.684 14.61 3.421 14.368 3.226 14.051C3.03 13.735 2.931 13.391 2.927 13.02C2.924 12.698 2.994 12.393 3.138 12.106L5.606 7.171C5.869 6.645 6 6.088 6 5.5L6 3L5.5 3C5.359 3 5.241 2.952 5.144 2.856C5.048 2.759 5 2.641 5 2.5C5 2.359 5.048 2.241 5.144 2.144C5.241 2.048 5.359 2 5.5 2L10.5 2C10.641 2 10.759 2.048 10.856 2.144C10.952 2.241 11 2.359 11 2.5C11 2.641 10.952 2.759 10.856 2.856C10.759 2.952 10.641 3 10.5 3L10 3L10 5.5ZM7 5.5C7 6.245 6.833 6.951 6.5 7.618L4.033 12.553C3.961 12.697 3.926 12.849 3.927 13.01C3.929 13.196 3.979 13.368 4.076 13.526C4.174 13.684 4.306 13.805 4.471 13.89C4.614 13.963 4.766 14 4.927 14L11.073 14C11.234 14 11.386 13.963 11.529 13.89C11.694 13.805 11.826 13.684 11.924 13.526C12.021 13.368 12.071 13.196 12.073 13.01C12.074 12.849 12.039 12.697 11.967 12.553L9.5 7.618C9.167 6.951 9 6.245 9 5.5L9 3L7 3L7 5.5Z'/%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='M10 5.5C10 6.088 10.131 6.645 10.394 7.171L12.862 12.106C13.006 12.393 13.076 12.698 13.073 13.02C13.069 13.391 12.97 13.735 12.774 14.051C12.579 14.368 12.316 14.61 11.985 14.78C11.699 14.927 11.395 15 11.073 15L4.927 15C4.605 15 4.301 14.927 4.015 14.78C3.684 14.61 3.421 14.368 3.226 14.051C3.03 13.735 2.931 13.391 2.927 13.02C2.924 12.698 2.994 12.393 3.138 12.106L5.606 7.171C5.869 6.645 6 6.088 6 5.5L6 3L5.5 3C5.359 3 5.241 2.952 5.144 2.856C5.048 2.759 5 2.641 5 2.5C5 2.359 5.048 2.241 5.144 2.144C5.241 2.048 5.359 2 5.5 2L10.5 2C10.641 2 10.759 2.048 10.856 2.144C10.952 2.241 11 2.359 11 2.5C11 2.641 10.952 2.759 10.856 2.856C10.759 2.952 10.641 3 10.5 3L10 3L10 5.5ZM7 5.5C7 6.245 6.833 6.951 6.5 7.618L4.033 12.553C3.961 12.697 3.926 12.849 3.927 13.01C3.929 13.196 3.979 13.368 4.076 13.526C4.174 13.684 4.306 13.805 4.471 13.89C4.614 13.963 4.766 14 4.927 14L11.073 14C11.234 14 11.386 13.963 11.529 13.89C11.694 13.805 11.826 13.684 11.924 13.526C12.021 13.368 12.071 13.196 12.073 13.01C12.074 12.849 12.039 12.697 11.967 12.553L9.5 7.618C9.167 6.951 9 6.245 9 5.5L9 3L7 3L7 5.5Z'/%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='M10 5.5C10 6.088 10.131 6.645 10.394 7.171L12.862 12.106C13.006 12.393 13.076 12.698 13.073 13.02C13.069 13.391 12.97 13.735 12.774 14.051C12.579 14.368 12.316 14.61 11.985 14.78C11.699 14.927 11.395 15 11.073 15L4.927 15C4.605 15 4.301 14.927 4.015 14.78C3.684 14.61 3.421 14.368 3.226 14.051C3.03 13.735 2.931 13.391 2.927 13.02C2.924 12.698 2.994 12.393 3.138 12.106L5.606 7.171C5.869 6.645 6 6.088 6 5.5L6 3L5.5 3C5.359 3 5.241 2.952 5.144 2.856C5.048 2.759 5 2.641 5 2.5C5 2.359 5.048 2.241 5.144 2.144C5.241 2.048 5.359 2 5.5 2L10.5 2C10.641 2 10.759 2.048 10.856 2.144C10.952 2.241 11 2.359 11 2.5C11 2.641 10.952 2.759 10.856 2.856C10.759 2.952 10.641 3 10.5 3L10 3L10 5.5ZM7 5.5C7 6.245 6.833 6.951 6.5 7.618L4.033 12.553C3.961 12.697 3.926 12.849 3.927 13.01C3.929 13.196 3.979 13.368 4.076 13.526C4.174 13.684 4.306 13.805 4.471 13.89C4.614 13.963 4.766 14 4.927 14L11.073 14C11.234 14 11.386 13.963 11.529 13.89C11.694 13.805 11.826 13.684 11.924 13.526C12.021 13.368 12.071 13.196 12.073 13.01C12.074 12.849 12.039 12.697 11.967 12.553L9.5 7.618C9.167 6.951 9 6.245 9 5.5L9 3L7 3L7 5.5Z'/%3E%3C/svg%3E
```

### Sprite

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

### SwiftUI

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

struct FlaskIcon: Shape {
    func path(in rect: CGRect) -> Path {
        var p = Path()
        p.move(to: CGPoint(x: 10, y: 5.5))
        p.addCurve(to: CGPoint(x: 10.394, y: 7.171), control1: CGPoint(x: 10, y: 6.088), control2: CGPoint(x: 10.131, y: 6.645))
        p.addLine(to: CGPoint(x: 12.862, y: 12.106))
        p.addCurve(to: CGPoint(x: 13.073, y: 13.02), control1: CGPoint(x: 13.006, y: 12.393), control2: CGPoint(x: 13.076, y: 12.698))
        p.addCurve(to: CGPoint(x: 12.774, y: 14.051), control1: CGPoint(x: 13.069, y: 13.391), control2: CGPoint(x: 12.97, y: 13.735))
        p.addCurve(to: CGPoint(x: 11.985, y: 14.78), control1: CGPoint(x: 12.579, y: 14.368), control2: CGPoint(x: 12.316, y: 14.61))
        p.addCurve(to: CGPoint(x: 11.073, y: 15), control1: CGPoint(x: 11.699, y: 14.927), control2: CGPoint(x: 11.395, y: 15))
        p.addLine(to: CGPoint(x: 4.927, y: 15))
        p.addCurve(to: CGPoint(x: 4.015, y: 14.78), control1: CGPoint(x: 4.605, y: 15), control2: CGPoint(x: 4.301, y: 14.927))
        p.addCurve(to: CGPoint(x: 3.226, y: 14.051), control1: CGPoint(x: 3.684, y: 14.61), control2: CGPoint(x: 3.421, y: 14.368))
        p.addCurve(to: CGPoint(x: 2.927, y: 13.02), control1: CGPoint(x: 3.03, y: 13.735), control2: CGPoint(x: 2.931, y: 13.391))
        p.addCurve(to: CGPoint(x: 3.138, y: 12.106), control1: CGPoint(x: 2.924, y: 12.698), control2: CGPoint(x: 2.994, y: 12.393))
        p.addLine(to: CGPoint(x: 5.606, y: 7.171))
        p.addCurve(to: CGPoint(x: 6, y: 5.5), control1: CGPoint(x: 5.869, y: 6.645), control2: CGPoint(x: 6, y: 6.088))
        p.addLine(to: CGPoint(x: 6, y: 3))
        p.addLine(to: CGPoint(x: 5.5, y: 3))
        p.addCurve(to: CGPoint(x: 5.144, y: 2.856), control1: CGPoint(x: 5.359, y: 3), control2: CGPoint(x: 5.241, y: 2.952))
        p.addCurve(to: CGPoint(x: 5, y: 2.5), control1: CGPoint(x: 5.048, y: 2.759), control2: CGPoint(x: 5, y: 2.641))
        p.addCurve(to: CGPoint(x: 5.144, y: 2.144), control1: CGPoint(x: 5, y: 2.359), control2: CGPoint(x: 5.048, y: 2.241))
        p.addCurve(to: CGPoint(x: 5.5, y: 2), control1: CGPoint(x: 5.241, y: 2.048), control2: CGPoint(x: 5.359, y: 2))
        p.addLine(to: CGPoint(x: 10.5, y: 2))
        p.addCurve(to: CGPoint(x: 10.856, y: 2.144), control1: CGPoint(x: 10.641, y: 2), control2: CGPoint(x: 10.759, y: 2.048))
        p.addCurve(to: CGPoint(x: 11, y: 2.5), control1: CGPoint(x: 10.952, y: 2.241), control2: CGPoint(x: 11, y: 2.359))
        p.addCurve(to: CGPoint(x: 10.856, y: 2.856), control1: CGPoint(x: 11, y: 2.641), control2: CGPoint(x: 10.952, y: 2.759))
        p.addCurve(to: CGPoint(x: 10.5, y: 3), control1: CGPoint(x: 10.759, y: 2.952), control2: CGPoint(x: 10.641, y: 3))
        p.addLine(to: CGPoint(x: 10, y: 3))
        p.addLine(to: CGPoint(x: 10, y: 5.5))
        p.closeSubpath()
        p.move(to: CGPoint(x: 7, y: 5.5))
        p.addCurve(to: CGPoint(x: 6.5, y: 7.618), control1: CGPoint(x: 7, y: 6.245), control2: CGPoint(x: 6.833, y: 6.951))
        p.addLine(to: CGPoint(x: 4.033, y: 12.553))
        p.addCurve(to: CGPoint(x: 3.927, y: 13.01), control1: CGPoint(x: 3.961, y: 12.697), control2: CGPoint(x: 3.926, y: 12.849))
        p.addCurve(to: CGPoint(x: 4.076, y: 13.526), control1: CGPoint(x: 3.929, y: 13.196), control2: CGPoint(x: 3.979, y: 13.368))
        p.addCurve(to: CGPoint(x: 4.471, y: 13.89), control1: CGPoint(x: 4.174, y: 13.684), control2: CGPoint(x: 4.306, y: 13.805))
        p.addCurve(to: CGPoint(x: 4.927, y: 14), control1: CGPoint(x: 4.614, y: 13.963), control2: CGPoint(x: 4.766, y: 14))
        p.addLine(to: CGPoint(x: 11.073, y: 14))
        p.addCurve(to: CGPoint(x: 11.529, y: 13.89), control1: CGPoint(x: 11.234, y: 14), control2: CGPoint(x: 11.386, y: 13.963))
        p.addCurve(to: CGPoint(x: 11.924, y: 13.526), control1: CGPoint(x: 11.694, y: 13.805), control2: CGPoint(x: 11.826, y: 13.684))
        p.addCurve(to: CGPoint(x: 12.073, y: 13.01), control1: CGPoint(x: 12.021, y: 13.368), control2: CGPoint(x: 12.071, y: 13.196))
        p.addCurve(to: CGPoint(x: 11.967, y: 12.553), control1: CGPoint(x: 12.074, y: 12.849), control2: CGPoint(x: 12.039, y: 12.697))
        p.addLine(to: CGPoint(x: 9.5, y: 7.618))
        p.addCurve(to: CGPoint(x: 9, y: 5.5), control1: CGPoint(x: 9.167, y: 6.951), control2: CGPoint(x: 9, y: 6.245))
        p.addLine(to: CGPoint(x: 9, y: 3))
        p.addLine(to: CGPoint(x: 7, y: 3))
        p.addLine(to: CGPoint(x: 7, y: 5.5))
        p.closeSubpath()
        return p.applying(CGAffineTransform(scaleX: rect.width / 16, y: rect.height / 16))
    }
}

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

### Compose

```kotlin
// Gentleface "flask" (line-round), MIT. https://gentleface.com/icons/flask
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 FlaskIcon: ImageVector by lazy {
    ImageVector.Builder(
        name = "flask", defaultWidth = 16.dp, defaultHeight = 16.dp,
        viewportWidth = 16f, viewportHeight = 16f,
    ).addPath(
        pathData = addPathNodes("M10 5.5C10 6.088 10.131 6.645 10.394 7.171L12.862 12.106C13.006 12.393 13.076 12.698 13.073 13.02C13.069 13.391 12.97 13.735 12.774 14.051C12.579 14.368 12.316 14.61 11.985 14.78C11.699 14.927 11.395 15 11.073 15L4.927 15C4.605 15 4.301 14.927 4.015 14.78C3.684 14.61 3.421 14.368 3.226 14.051C3.03 13.735 2.931 13.391 2.927 13.02C2.924 12.698 2.994 12.393 3.138 12.106L5.606 7.171C5.869 6.645 6 6.088 6 5.5L6 3L5.5 3C5.359 3 5.241 2.952 5.144 2.856C5.048 2.759 5 2.641 5 2.5C5 2.359 5.048 2.241 5.144 2.144C5.241 2.048 5.359 2 5.5 2L10.5 2C10.641 2 10.759 2.048 10.856 2.144C10.952 2.241 11 2.359 11 2.5C11 2.641 10.952 2.759 10.856 2.856C10.759 2.952 10.641 3 10.5 3L10 3L10 5.5ZM7 5.5C7 6.245 6.833 6.951 6.5 7.618L4.033 12.553C3.961 12.697 3.926 12.849 3.927 13.01C3.929 13.196 3.979 13.368 4.076 13.526C4.174 13.684 4.306 13.805 4.471 13.89C4.614 13.963 4.766 14 4.927 14L11.073 14C11.234 14 11.386 13.963 11.529 13.89C11.694 13.805 11.826 13.684 11.924 13.526C12.021 13.368 12.071 13.196 12.073 13.01C12.074 12.849 12.039 12.697 11.967 12.553L9.5 7.618C9.167 6.951 9 6.245 9 5.5L9 3L7 3L7 5.5Z"),
        fill = SolidColor(Color.Black),
    ).build()
}

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

### Android XML

```xml
<!-- res/drawable/ic_flask.xml · Gentleface "flask" (line-round), MIT. https://gentleface.com/icons/flask -->
<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="M10 5.5C10 6.088 10.131 6.645 10.394 7.171L12.862 12.106C13.006 12.393 13.076 12.698 13.073 13.02C13.069 13.391 12.97 13.735 12.774 14.051C12.579 14.368 12.316 14.61 11.985 14.78C11.699 14.927 11.395 15 11.073 15L4.927 15C4.605 15 4.301 14.927 4.015 14.78C3.684 14.61 3.421 14.368 3.226 14.051C3.03 13.735 2.931 13.391 2.927 13.02C2.924 12.698 2.994 12.393 3.138 12.106L5.606 7.171C5.869 6.645 6 6.088 6 5.5L6 3L5.5 3C5.359 3 5.241 2.952 5.144 2.856C5.048 2.759 5 2.641 5 2.5C5 2.359 5.048 2.241 5.144 2.144C5.241 2.048 5.359 2 5.5 2L10.5 2C10.641 2 10.759 2.048 10.856 2.144C10.952 2.241 11 2.359 11 2.5C11 2.641 10.952 2.759 10.856 2.856C10.759 2.952 10.641 3 10.5 3L10 3L10 5.5ZM7 5.5C7 6.245 6.833 6.951 6.5 7.618L4.033 12.553C3.961 12.697 3.926 12.849 3.927 13.01C3.929 13.196 3.979 13.368 4.076 13.526C4.174 13.684 4.306 13.805 4.471 13.89C4.614 13.963 4.766 14 4.927 14L11.073 14C11.234 14 11.386 13.963 11.529 13.89C11.694 13.805 11.826 13.684 11.924 13.526C12.021 13.368 12.071 13.196 12.073 13.01C12.074 12.849 12.039 12.697 11.967 12.553L9.5 7.618C9.167 6.951 9 6.245 9 5.5L9 3L7 3L7 5.5Z"/>
</vector>
```

### Flutter

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

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

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

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

  @override
  void paint(Canvas canvas, Size size) {
    canvas.scale(size.width / 16, size.height / 16);
    final p = Path()
      ..moveTo(10, 5.5)
      ..cubicTo(10, 6.088, 10.131, 6.645, 10.394, 7.171)
      ..lineTo(12.862, 12.106)
      ..cubicTo(13.006, 12.393, 13.076, 12.698, 13.073, 13.02)
      ..cubicTo(13.069, 13.391, 12.97, 13.735, 12.774, 14.051)
      ..cubicTo(12.579, 14.368, 12.316, 14.61, 11.985, 14.78)
      ..cubicTo(11.699, 14.927, 11.395, 15, 11.073, 15)
      ..lineTo(4.927, 15)
      ..cubicTo(4.605, 15, 4.301, 14.927, 4.015, 14.78)
      ..cubicTo(3.684, 14.61, 3.421, 14.368, 3.226, 14.051)
      ..cubicTo(3.03, 13.735, 2.931, 13.391, 2.927, 13.02)
      ..cubicTo(2.924, 12.698, 2.994, 12.393, 3.138, 12.106)
      ..lineTo(5.606, 7.171)
      ..cubicTo(5.869, 6.645, 6, 6.088, 6, 5.5)
      ..lineTo(6, 3)
      ..lineTo(5.5, 3)
      ..cubicTo(5.359, 3, 5.241, 2.952, 5.144, 2.856)
      ..cubicTo(5.048, 2.759, 5, 2.641, 5, 2.5)
      ..cubicTo(5, 2.359, 5.048, 2.241, 5.144, 2.144)
      ..cubicTo(5.241, 2.048, 5.359, 2, 5.5, 2)
      ..lineTo(10.5, 2)
      ..cubicTo(10.641, 2, 10.759, 2.048, 10.856, 2.144)
      ..cubicTo(10.952, 2.241, 11, 2.359, 11, 2.5)
      ..cubicTo(11, 2.641, 10.952, 2.759, 10.856, 2.856)
      ..cubicTo(10.759, 2.952, 10.641, 3, 10.5, 3)
      ..lineTo(10, 3)
      ..lineTo(10, 5.5)
      ..close()
      ..moveTo(7, 5.5)
      ..cubicTo(7, 6.245, 6.833, 6.951, 6.5, 7.618)
      ..lineTo(4.033, 12.553)
      ..cubicTo(3.961, 12.697, 3.926, 12.849, 3.927, 13.01)
      ..cubicTo(3.929, 13.196, 3.979, 13.368, 4.076, 13.526)
      ..cubicTo(4.174, 13.684, 4.306, 13.805, 4.471, 13.89)
      ..cubicTo(4.614, 13.963, 4.766, 14, 4.927, 14)
      ..lineTo(11.073, 14)
      ..cubicTo(11.234, 14, 11.386, 13.963, 11.529, 13.89)
      ..cubicTo(11.694, 13.805, 11.826, 13.684, 11.924, 13.526)
      ..cubicTo(12.021, 13.368, 12.071, 13.196, 12.073, 13.01)
      ..cubicTo(12.074, 12.849, 12.039, 12.697, 11.967, 12.553)
      ..lineTo(9.5, 7.618)
      ..cubicTo(9.167, 6.951, 9, 6.245, 9, 5.5)
      ..lineTo(9, 3)
      ..lineTo(7, 3)
      ..lineTo(7, 5.5)
      ..close();
    canvas.drawPath(p, Paint()..color = color);
  }

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