# list icon

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

- Category: Text & formatting
- Use it for: list, bulleted list, list view, lists, bullet list, unordered list, bullets, view as list, list layout
- Tags: list, bullets, items, unordered, view
- Family: checklist, list-ordered, list-pencil, list-plus, list-sparkle, list-tree, list-user
- Component name: ListIcon
- Added: 2026-10-14

## Alternatives

- `checklist`: a list of tasks with check marks (checklist)
- `list-ordered`: a numbered list (numbered-list)
- `grid`: a grid of tiles (grid-view)
- `table`: a table with columns (table-view)
- `rows`: full-width bands (row-layout)

## Don't confuse with

- `menu`: three bars without bullets are the navigation menu

## Also fits

- grid view: the list view mode (list-view)
- rows: a list of items (list-view)
- table: a list view (list-view)

## Not for

- menu (use `menu`): a bulleted list has bullets; the menu is three equal bars

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

The SVG of every style: https://gentleface.com/icons/list.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="M1.439 2.439C1.732 2.146 2.086 2 2.5 2C2.914 2 3.268 2.146 3.561 2.439C3.854 2.732 4 3.086 4 3.5C4 3.914 3.854 4.268 3.561 4.561C3.268 4.854 2.914 5 2.5 5C2.086 5 1.732 4.854 1.439 4.561C1.146 4.268 1 3.914 1 3.5C1 3.086 1.146 2.732 1.439 2.439ZM6.144 3.856C6.048 3.759 6 3.641 6 3.5C6 3.359 6.048 3.241 6.144 3.144C6.241 3.048 6.359 3 6.5 3L13.5 3C13.641 3 13.759 3.048 13.856 3.144C13.952 3.241 14 3.359 14 3.5C14 3.641 13.952 3.759 13.856 3.856C13.759 3.952 13.641 4 13.5 4L6.5 4C6.359 4 6.241 3.952 6.144 3.856ZM3.561 6.439C3.854 6.732 4 7.086 4 7.5C4 7.914 3.854 8.268 3.561 8.561C3.268 8.854 2.914 9 2.5 9C2.086 9 1.732 8.854 1.439 8.561C1.146 8.268 1 7.914 1 7.5C1 7.086 1.146 6.732 1.439 6.439C1.732 6.146 2.086 6 2.5 6C2.914 6 3.268 6.146 3.561 6.439ZM6.144 7.856C6.048 7.759 6 7.641 6 7.5C6 7.359 6.048 7.241 6.144 7.144C6.241 7.048 6.359 7 6.5 7L13.5 7C13.641 7 13.759 7.048 13.856 7.144C13.952 7.241 14 7.359 14 7.5C14 7.641 13.952 7.759 13.856 7.856C13.759 7.952 13.641 8 13.5 8L6.5 8C6.359 8 6.241 7.952 6.144 7.856ZM1.439 10.439C1.732 10.146 2.086 10 2.5 10C2.914 10 3.268 10.146 3.561 10.439C3.854 10.732 4 11.086 4 11.5C4 11.914 3.854 12.268 3.561 12.561C3.268 12.854 2.914 13 2.5 13C2.086 13 1.732 12.854 1.439 12.561C1.146 12.268 1 11.914 1 11.5C1 11.086 1.146 10.732 1.439 10.439ZM13.856 11.144C13.952 11.241 14 11.359 14 11.5C14 11.641 13.952 11.759 13.856 11.856C13.759 11.952 13.641 12 13.5 12L6.5 12C6.359 12 6.241 11.952 6.144 11.856C6.048 11.759 6 11.641 6 11.5C6 11.359 6.048 11.241 6.144 11.144C6.241 11.048 6.359 11 6.5 11L13.5 11C13.641 11 13.759 11.048 13.856 11.144Z"/></svg>
```

### React

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

export function ListIcon(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="M1.439 2.439C1.732 2.146 2.086 2 2.5 2C2.914 2 3.268 2.146 3.561 2.439C3.854 2.732 4 3.086 4 3.5C4 3.914 3.854 4.268 3.561 4.561C3.268 4.854 2.914 5 2.5 5C2.086 5 1.732 4.854 1.439 4.561C1.146 4.268 1 3.914 1 3.5C1 3.086 1.146 2.732 1.439 2.439ZM6.144 3.856C6.048 3.759 6 3.641 6 3.5C6 3.359 6.048 3.241 6.144 3.144C6.241 3.048 6.359 3 6.5 3L13.5 3C13.641 3 13.759 3.048 13.856 3.144C13.952 3.241 14 3.359 14 3.5C14 3.641 13.952 3.759 13.856 3.856C13.759 3.952 13.641 4 13.5 4L6.5 4C6.359 4 6.241 3.952 6.144 3.856ZM3.561 6.439C3.854 6.732 4 7.086 4 7.5C4 7.914 3.854 8.268 3.561 8.561C3.268 8.854 2.914 9 2.5 9C2.086 9 1.732 8.854 1.439 8.561C1.146 8.268 1 7.914 1 7.5C1 7.086 1.146 6.732 1.439 6.439C1.732 6.146 2.086 6 2.5 6C2.914 6 3.268 6.146 3.561 6.439ZM6.144 7.856C6.048 7.759 6 7.641 6 7.5C6 7.359 6.048 7.241 6.144 7.144C6.241 7.048 6.359 7 6.5 7L13.5 7C13.641 7 13.759 7.048 13.856 7.144C13.952 7.241 14 7.359 14 7.5C14 7.641 13.952 7.759 13.856 7.856C13.759 7.952 13.641 8 13.5 8L6.5 8C6.359 8 6.241 7.952 6.144 7.856ZM1.439 10.439C1.732 10.146 2.086 10 2.5 10C2.914 10 3.268 10.146 3.561 10.439C3.854 10.732 4 11.086 4 11.5C4 11.914 3.854 12.268 3.561 12.561C3.268 12.854 2.914 13 2.5 13C2.086 13 1.732 12.854 1.439 12.561C1.146 12.268 1 11.914 1 11.5C1 11.086 1.146 10.732 1.439 10.439ZM13.856 11.144C13.952 11.241 14 11.359 14 11.5C14 11.641 13.952 11.759 13.856 11.856C13.759 11.952 13.641 12 13.5 12L6.5 12C6.359 12 6.241 11.952 6.144 11.856C6.048 11.759 6 11.641 6 11.5C6 11.359 6.048 11.241 6.144 11.144C6.241 11.048 6.359 11 6.5 11L13.5 11C13.641 11 13.759 11.048 13.856 11.144Z" />
    </svg>
  );
}
```

### Vue

```vue
<!-- Gentleface "list" (line-round), MIT. https://gentleface.com/icons/list -->
<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="M1.439 2.439C1.732 2.146 2.086 2 2.5 2C2.914 2 3.268 2.146 3.561 2.439C3.854 2.732 4 3.086 4 3.5C4 3.914 3.854 4.268 3.561 4.561C3.268 4.854 2.914 5 2.5 5C2.086 5 1.732 4.854 1.439 4.561C1.146 4.268 1 3.914 1 3.5C1 3.086 1.146 2.732 1.439 2.439ZM6.144 3.856C6.048 3.759 6 3.641 6 3.5C6 3.359 6.048 3.241 6.144 3.144C6.241 3.048 6.359 3 6.5 3L13.5 3C13.641 3 13.759 3.048 13.856 3.144C13.952 3.241 14 3.359 14 3.5C14 3.641 13.952 3.759 13.856 3.856C13.759 3.952 13.641 4 13.5 4L6.5 4C6.359 4 6.241 3.952 6.144 3.856ZM3.561 6.439C3.854 6.732 4 7.086 4 7.5C4 7.914 3.854 8.268 3.561 8.561C3.268 8.854 2.914 9 2.5 9C2.086 9 1.732 8.854 1.439 8.561C1.146 8.268 1 7.914 1 7.5C1 7.086 1.146 6.732 1.439 6.439C1.732 6.146 2.086 6 2.5 6C2.914 6 3.268 6.146 3.561 6.439ZM6.144 7.856C6.048 7.759 6 7.641 6 7.5C6 7.359 6.048 7.241 6.144 7.144C6.241 7.048 6.359 7 6.5 7L13.5 7C13.641 7 13.759 7.048 13.856 7.144C13.952 7.241 14 7.359 14 7.5C14 7.641 13.952 7.759 13.856 7.856C13.759 7.952 13.641 8 13.5 8L6.5 8C6.359 8 6.241 7.952 6.144 7.856ZM1.439 10.439C1.732 10.146 2.086 10 2.5 10C2.914 10 3.268 10.146 3.561 10.439C3.854 10.732 4 11.086 4 11.5C4 11.914 3.854 12.268 3.561 12.561C3.268 12.854 2.914 13 2.5 13C2.086 13 1.732 12.854 1.439 12.561C1.146 12.268 1 11.914 1 11.5C1 11.086 1.146 10.732 1.439 10.439ZM13.856 11.144C13.952 11.241 14 11.359 14 11.5C14 11.641 13.952 11.759 13.856 11.856C13.759 11.952 13.641 12 13.5 12L6.5 12C6.359 12 6.241 11.952 6.144 11.856C6.048 11.759 6 11.641 6 11.5C6 11.359 6.048 11.241 6.144 11.144C6.241 11.048 6.359 11 6.5 11L13.5 11C13.641 11 13.759 11.048 13.856 11.144Z" />
  </svg>
</template>
```

### Svelte

```svelte
<!-- Gentleface "list" (line-round), MIT. https://gentleface.com/icons/list -->
<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="M1.439 2.439C1.732 2.146 2.086 2 2.5 2C2.914 2 3.268 2.146 3.561 2.439C3.854 2.732 4 3.086 4 3.5C4 3.914 3.854 4.268 3.561 4.561C3.268 4.854 2.914 5 2.5 5C2.086 5 1.732 4.854 1.439 4.561C1.146 4.268 1 3.914 1 3.5C1 3.086 1.146 2.732 1.439 2.439ZM6.144 3.856C6.048 3.759 6 3.641 6 3.5C6 3.359 6.048 3.241 6.144 3.144C6.241 3.048 6.359 3 6.5 3L13.5 3C13.641 3 13.759 3.048 13.856 3.144C13.952 3.241 14 3.359 14 3.5C14 3.641 13.952 3.759 13.856 3.856C13.759 3.952 13.641 4 13.5 4L6.5 4C6.359 4 6.241 3.952 6.144 3.856ZM3.561 6.439C3.854 6.732 4 7.086 4 7.5C4 7.914 3.854 8.268 3.561 8.561C3.268 8.854 2.914 9 2.5 9C2.086 9 1.732 8.854 1.439 8.561C1.146 8.268 1 7.914 1 7.5C1 7.086 1.146 6.732 1.439 6.439C1.732 6.146 2.086 6 2.5 6C2.914 6 3.268 6.146 3.561 6.439ZM6.144 7.856C6.048 7.759 6 7.641 6 7.5C6 7.359 6.048 7.241 6.144 7.144C6.241 7.048 6.359 7 6.5 7L13.5 7C13.641 7 13.759 7.048 13.856 7.144C13.952 7.241 14 7.359 14 7.5C14 7.641 13.952 7.759 13.856 7.856C13.759 7.952 13.641 8 13.5 8L6.5 8C6.359 8 6.241 7.952 6.144 7.856ZM1.439 10.439C1.732 10.146 2.086 10 2.5 10C2.914 10 3.268 10.146 3.561 10.439C3.854 10.732 4 11.086 4 11.5C4 11.914 3.854 12.268 3.561 12.561C3.268 12.854 2.914 13 2.5 13C2.086 13 1.732 12.854 1.439 12.561C1.146 12.268 1 11.914 1 11.5C1 11.086 1.146 10.732 1.439 10.439ZM13.856 11.144C13.952 11.241 14 11.359 14 11.5C14 11.641 13.952 11.759 13.856 11.856C13.759 11.952 13.641 12 13.5 12L6.5 12C6.359 12 6.241 11.952 6.144 11.856C6.048 11.759 6 11.641 6 11.5C6 11.359 6.048 11.241 6.144 11.144C6.241 11.048 6.359 11 6.5 11L13.5 11C13.641 11 13.759 11.048 13.856 11.144Z" />
</svg>
```

### HTML img

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

### CSS

```css
/* Gentleface "list" (line-round), MIT. https://gentleface.com/icons/list. Takes the text color. */
.icon-list {
  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='M1.439 2.439C1.732 2.146 2.086 2 2.5 2C2.914 2 3.268 2.146 3.561 2.439C3.854 2.732 4 3.086 4 3.5C4 3.914 3.854 4.268 3.561 4.561C3.268 4.854 2.914 5 2.5 5C2.086 5 1.732 4.854 1.439 4.561C1.146 4.268 1 3.914 1 3.5C1 3.086 1.146 2.732 1.439 2.439ZM6.144 3.856C6.048 3.759 6 3.641 6 3.5C6 3.359 6.048 3.241 6.144 3.144C6.241 3.048 6.359 3 6.5 3L13.5 3C13.641 3 13.759 3.048 13.856 3.144C13.952 3.241 14 3.359 14 3.5C14 3.641 13.952 3.759 13.856 3.856C13.759 3.952 13.641 4 13.5 4L6.5 4C6.359 4 6.241 3.952 6.144 3.856ZM3.561 6.439C3.854 6.732 4 7.086 4 7.5C4 7.914 3.854 8.268 3.561 8.561C3.268 8.854 2.914 9 2.5 9C2.086 9 1.732 8.854 1.439 8.561C1.146 8.268 1 7.914 1 7.5C1 7.086 1.146 6.732 1.439 6.439C1.732 6.146 2.086 6 2.5 6C2.914 6 3.268 6.146 3.561 6.439ZM6.144 7.856C6.048 7.759 6 7.641 6 7.5C6 7.359 6.048 7.241 6.144 7.144C6.241 7.048 6.359 7 6.5 7L13.5 7C13.641 7 13.759 7.048 13.856 7.144C13.952 7.241 14 7.359 14 7.5C14 7.641 13.952 7.759 13.856 7.856C13.759 7.952 13.641 8 13.5 8L6.5 8C6.359 8 6.241 7.952 6.144 7.856ZM1.439 10.439C1.732 10.146 2.086 10 2.5 10C2.914 10 3.268 10.146 3.561 10.439C3.854 10.732 4 11.086 4 11.5C4 11.914 3.854 12.268 3.561 12.561C3.268 12.854 2.914 13 2.5 13C2.086 13 1.732 12.854 1.439 12.561C1.146 12.268 1 11.914 1 11.5C1 11.086 1.146 10.732 1.439 10.439ZM13.856 11.144C13.952 11.241 14 11.359 14 11.5C14 11.641 13.952 11.759 13.856 11.856C13.759 11.952 13.641 12 13.5 12L6.5 12C6.359 12 6.241 11.952 6.144 11.856C6.048 11.759 6 11.641 6 11.5C6 11.359 6.048 11.241 6.144 11.144C6.241 11.048 6.359 11 6.5 11L13.5 11C13.641 11 13.759 11.048 13.856 11.144Z'/%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='M1.439 2.439C1.732 2.146 2.086 2 2.5 2C2.914 2 3.268 2.146 3.561 2.439C3.854 2.732 4 3.086 4 3.5C4 3.914 3.854 4.268 3.561 4.561C3.268 4.854 2.914 5 2.5 5C2.086 5 1.732 4.854 1.439 4.561C1.146 4.268 1 3.914 1 3.5C1 3.086 1.146 2.732 1.439 2.439ZM6.144 3.856C6.048 3.759 6 3.641 6 3.5C6 3.359 6.048 3.241 6.144 3.144C6.241 3.048 6.359 3 6.5 3L13.5 3C13.641 3 13.759 3.048 13.856 3.144C13.952 3.241 14 3.359 14 3.5C14 3.641 13.952 3.759 13.856 3.856C13.759 3.952 13.641 4 13.5 4L6.5 4C6.359 4 6.241 3.952 6.144 3.856ZM3.561 6.439C3.854 6.732 4 7.086 4 7.5C4 7.914 3.854 8.268 3.561 8.561C3.268 8.854 2.914 9 2.5 9C2.086 9 1.732 8.854 1.439 8.561C1.146 8.268 1 7.914 1 7.5C1 7.086 1.146 6.732 1.439 6.439C1.732 6.146 2.086 6 2.5 6C2.914 6 3.268 6.146 3.561 6.439ZM6.144 7.856C6.048 7.759 6 7.641 6 7.5C6 7.359 6.048 7.241 6.144 7.144C6.241 7.048 6.359 7 6.5 7L13.5 7C13.641 7 13.759 7.048 13.856 7.144C13.952 7.241 14 7.359 14 7.5C14 7.641 13.952 7.759 13.856 7.856C13.759 7.952 13.641 8 13.5 8L6.5 8C6.359 8 6.241 7.952 6.144 7.856ZM1.439 10.439C1.732 10.146 2.086 10 2.5 10C2.914 10 3.268 10.146 3.561 10.439C3.854 10.732 4 11.086 4 11.5C4 11.914 3.854 12.268 3.561 12.561C3.268 12.854 2.914 13 2.5 13C2.086 13 1.732 12.854 1.439 12.561C1.146 12.268 1 11.914 1 11.5C1 11.086 1.146 10.732 1.439 10.439ZM13.856 11.144C13.952 11.241 14 11.359 14 11.5C14 11.641 13.952 11.759 13.856 11.856C13.759 11.952 13.641 12 13.5 12L6.5 12C6.359 12 6.241 11.952 6.144 11.856C6.048 11.759 6 11.641 6 11.5C6 11.359 6.048 11.241 6.144 11.144C6.241 11.048 6.359 11 6.5 11L13.5 11C13.641 11 13.759 11.048 13.856 11.144Z'/%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='M1.439 2.439C1.732 2.146 2.086 2 2.5 2C2.914 2 3.268 2.146 3.561 2.439C3.854 2.732 4 3.086 4 3.5C4 3.914 3.854 4.268 3.561 4.561C3.268 4.854 2.914 5 2.5 5C2.086 5 1.732 4.854 1.439 4.561C1.146 4.268 1 3.914 1 3.5C1 3.086 1.146 2.732 1.439 2.439ZM6.144 3.856C6.048 3.759 6 3.641 6 3.5C6 3.359 6.048 3.241 6.144 3.144C6.241 3.048 6.359 3 6.5 3L13.5 3C13.641 3 13.759 3.048 13.856 3.144C13.952 3.241 14 3.359 14 3.5C14 3.641 13.952 3.759 13.856 3.856C13.759 3.952 13.641 4 13.5 4L6.5 4C6.359 4 6.241 3.952 6.144 3.856ZM3.561 6.439C3.854 6.732 4 7.086 4 7.5C4 7.914 3.854 8.268 3.561 8.561C3.268 8.854 2.914 9 2.5 9C2.086 9 1.732 8.854 1.439 8.561C1.146 8.268 1 7.914 1 7.5C1 7.086 1.146 6.732 1.439 6.439C1.732 6.146 2.086 6 2.5 6C2.914 6 3.268 6.146 3.561 6.439ZM6.144 7.856C6.048 7.759 6 7.641 6 7.5C6 7.359 6.048 7.241 6.144 7.144C6.241 7.048 6.359 7 6.5 7L13.5 7C13.641 7 13.759 7.048 13.856 7.144C13.952 7.241 14 7.359 14 7.5C14 7.641 13.952 7.759 13.856 7.856C13.759 7.952 13.641 8 13.5 8L6.5 8C6.359 8 6.241 7.952 6.144 7.856ZM1.439 10.439C1.732 10.146 2.086 10 2.5 10C2.914 10 3.268 10.146 3.561 10.439C3.854 10.732 4 11.086 4 11.5C4 11.914 3.854 12.268 3.561 12.561C3.268 12.854 2.914 13 2.5 13C2.086 13 1.732 12.854 1.439 12.561C1.146 12.268 1 11.914 1 11.5C1 11.086 1.146 10.732 1.439 10.439ZM13.856 11.144C13.952 11.241 14 11.359 14 11.5C14 11.641 13.952 11.759 13.856 11.856C13.759 11.952 13.641 12 13.5 12L6.5 12C6.359 12 6.241 11.952 6.144 11.856C6.048 11.759 6 11.641 6 11.5C6 11.359 6.048 11.241 6.144 11.144C6.241 11.048 6.359 11 6.5 11L13.5 11C13.641 11 13.759 11.048 13.856 11.144Z'/%3E%3C/svg%3E
```

### Sprite

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

### SwiftUI

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

struct ListIcon: Shape {
    func path(in rect: CGRect) -> Path {
        var p = Path()
        p.move(to: CGPoint(x: 1.439, y: 2.439))
        p.addCurve(to: CGPoint(x: 2.5, y: 2), control1: CGPoint(x: 1.732, y: 2.146), control2: CGPoint(x: 2.086, y: 2))
        p.addCurve(to: CGPoint(x: 3.561, y: 2.439), control1: CGPoint(x: 2.914, y: 2), control2: CGPoint(x: 3.268, y: 2.146))
        p.addCurve(to: CGPoint(x: 4, y: 3.5), control1: CGPoint(x: 3.854, y: 2.732), control2: CGPoint(x: 4, y: 3.086))
        p.addCurve(to: CGPoint(x: 3.561, y: 4.561), control1: CGPoint(x: 4, y: 3.914), control2: CGPoint(x: 3.854, y: 4.268))
        p.addCurve(to: CGPoint(x: 2.5, y: 5), control1: CGPoint(x: 3.268, y: 4.854), control2: CGPoint(x: 2.914, y: 5))
        p.addCurve(to: CGPoint(x: 1.439, y: 4.561), control1: CGPoint(x: 2.086, y: 5), control2: CGPoint(x: 1.732, y: 4.854))
        p.addCurve(to: CGPoint(x: 1, y: 3.5), control1: CGPoint(x: 1.146, y: 4.268), control2: CGPoint(x: 1, y: 3.914))
        p.addCurve(to: CGPoint(x: 1.439, y: 2.439), control1: CGPoint(x: 1, y: 3.086), control2: CGPoint(x: 1.146, y: 2.732))
        p.closeSubpath()
        p.move(to: CGPoint(x: 6.144, y: 3.856))
        p.addCurve(to: CGPoint(x: 6, y: 3.5), control1: CGPoint(x: 6.048, y: 3.759), control2: CGPoint(x: 6, y: 3.641))
        p.addCurve(to: CGPoint(x: 6.144, y: 3.144), control1: CGPoint(x: 6, y: 3.359), control2: CGPoint(x: 6.048, y: 3.241))
        p.addCurve(to: CGPoint(x: 6.5, y: 3), control1: CGPoint(x: 6.241, y: 3.048), control2: CGPoint(x: 6.359, y: 3))
        p.addLine(to: CGPoint(x: 13.5, y: 3))
        p.addCurve(to: CGPoint(x: 13.856, y: 3.144), control1: CGPoint(x: 13.641, y: 3), control2: CGPoint(x: 13.759, y: 3.048))
        p.addCurve(to: CGPoint(x: 14, y: 3.5), control1: CGPoint(x: 13.952, y: 3.241), control2: CGPoint(x: 14, y: 3.359))
        p.addCurve(to: CGPoint(x: 13.856, y: 3.856), control1: CGPoint(x: 14, y: 3.641), control2: CGPoint(x: 13.952, y: 3.759))
        p.addCurve(to: CGPoint(x: 13.5, y: 4), control1: CGPoint(x: 13.759, y: 3.952), control2: CGPoint(x: 13.641, y: 4))
        p.addLine(to: CGPoint(x: 6.5, y: 4))
        p.addCurve(to: CGPoint(x: 6.144, y: 3.856), control1: CGPoint(x: 6.359, y: 4), control2: CGPoint(x: 6.241, y: 3.952))
        p.closeSubpath()
        p.move(to: CGPoint(x: 3.561, y: 6.439))
        p.addCurve(to: CGPoint(x: 4, y: 7.5), control1: CGPoint(x: 3.854, y: 6.732), control2: CGPoint(x: 4, y: 7.086))
        p.addCurve(to: CGPoint(x: 3.561, y: 8.561), control1: CGPoint(x: 4, y: 7.914), control2: CGPoint(x: 3.854, y: 8.268))
        p.addCurve(to: CGPoint(x: 2.5, y: 9), control1: CGPoint(x: 3.268, y: 8.854), control2: CGPoint(x: 2.914, y: 9))
        p.addCurve(to: CGPoint(x: 1.439, y: 8.561), control1: CGPoint(x: 2.086, y: 9), control2: CGPoint(x: 1.732, y: 8.854))
        p.addCurve(to: CGPoint(x: 1, y: 7.5), control1: CGPoint(x: 1.146, y: 8.268), control2: CGPoint(x: 1, y: 7.914))
        p.addCurve(to: CGPoint(x: 1.439, y: 6.439), control1: CGPoint(x: 1, y: 7.086), control2: CGPoint(x: 1.146, y: 6.732))
        p.addCurve(to: CGPoint(x: 2.5, y: 6), control1: CGPoint(x: 1.732, y: 6.146), control2: CGPoint(x: 2.086, y: 6))
        p.addCurve(to: CGPoint(x: 3.561, y: 6.439), control1: CGPoint(x: 2.914, y: 6), control2: CGPoint(x: 3.268, y: 6.146))
        p.closeSubpath()
        p.move(to: CGPoint(x: 6.144, y: 7.856))
        p.addCurve(to: CGPoint(x: 6, y: 7.5), control1: CGPoint(x: 6.048, y: 7.759), control2: CGPoint(x: 6, y: 7.641))
        p.addCurve(to: CGPoint(x: 6.144, y: 7.144), control1: CGPoint(x: 6, y: 7.359), control2: CGPoint(x: 6.048, y: 7.241))
        p.addCurve(to: CGPoint(x: 6.5, y: 7), control1: CGPoint(x: 6.241, y: 7.048), control2: CGPoint(x: 6.359, y: 7))
        p.addLine(to: CGPoint(x: 13.5, y: 7))
        p.addCurve(to: CGPoint(x: 13.856, y: 7.144), control1: CGPoint(x: 13.641, y: 7), control2: CGPoint(x: 13.759, y: 7.048))
        p.addCurve(to: CGPoint(x: 14, y: 7.5), control1: CGPoint(x: 13.952, y: 7.241), control2: CGPoint(x: 14, y: 7.359))
        p.addCurve(to: CGPoint(x: 13.856, y: 7.856), control1: CGPoint(x: 14, y: 7.641), control2: CGPoint(x: 13.952, y: 7.759))
        p.addCurve(to: CGPoint(x: 13.5, y: 8), control1: CGPoint(x: 13.759, y: 7.952), control2: CGPoint(x: 13.641, y: 8))
        p.addLine(to: CGPoint(x: 6.5, y: 8))
        p.addCurve(to: CGPoint(x: 6.144, y: 7.856), control1: CGPoint(x: 6.359, y: 8), control2: CGPoint(x: 6.241, y: 7.952))
        p.closeSubpath()
        p.move(to: CGPoint(x: 1.439, y: 10.439))
        p.addCurve(to: CGPoint(x: 2.5, y: 10), control1: CGPoint(x: 1.732, y: 10.146), control2: CGPoint(x: 2.086, y: 10))
        p.addCurve(to: CGPoint(x: 3.561, y: 10.439), control1: CGPoint(x: 2.914, y: 10), control2: CGPoint(x: 3.268, y: 10.146))
        p.addCurve(to: CGPoint(x: 4, y: 11.5), control1: CGPoint(x: 3.854, y: 10.732), control2: CGPoint(x: 4, y: 11.086))
        p.addCurve(to: CGPoint(x: 3.561, y: 12.561), control1: CGPoint(x: 4, y: 11.914), control2: CGPoint(x: 3.854, y: 12.268))
        p.addCurve(to: CGPoint(x: 2.5, y: 13), control1: CGPoint(x: 3.268, y: 12.854), control2: CGPoint(x: 2.914, y: 13))
        p.addCurve(to: CGPoint(x: 1.439, y: 12.561), control1: CGPoint(x: 2.086, y: 13), control2: CGPoint(x: 1.732, y: 12.854))
        p.addCurve(to: CGPoint(x: 1, y: 11.5), control1: CGPoint(x: 1.146, y: 12.268), control2: CGPoint(x: 1, y: 11.914))
        p.addCurve(to: CGPoint(x: 1.439, y: 10.439), control1: CGPoint(x: 1, y: 11.086), control2: CGPoint(x: 1.146, y: 10.732))
        p.closeSubpath()
        p.move(to: CGPoint(x: 13.856, y: 11.144))
        p.addCurve(to: CGPoint(x: 14, y: 11.5), control1: CGPoint(x: 13.952, y: 11.241), control2: CGPoint(x: 14, y: 11.359))
        p.addCurve(to: CGPoint(x: 13.856, y: 11.856), control1: CGPoint(x: 14, y: 11.641), control2: CGPoint(x: 13.952, y: 11.759))
        p.addCurve(to: CGPoint(x: 13.5, y: 12), control1: CGPoint(x: 13.759, y: 11.952), control2: CGPoint(x: 13.641, y: 12))
        p.addLine(to: CGPoint(x: 6.5, y: 12))
        p.addCurve(to: CGPoint(x: 6.144, y: 11.856), control1: CGPoint(x: 6.359, y: 12), control2: CGPoint(x: 6.241, y: 11.952))
        p.addCurve(to: CGPoint(x: 6, y: 11.5), control1: CGPoint(x: 6.048, y: 11.759), control2: CGPoint(x: 6, y: 11.641))
        p.addCurve(to: CGPoint(x: 6.144, y: 11.144), control1: CGPoint(x: 6, y: 11.359), control2: CGPoint(x: 6.048, y: 11.241))
        p.addCurve(to: CGPoint(x: 6.5, y: 11), control1: CGPoint(x: 6.241, y: 11.048), control2: CGPoint(x: 6.359, y: 11))
        p.addLine(to: CGPoint(x: 13.5, y: 11))
        p.addCurve(to: CGPoint(x: 13.856, y: 11.144), control1: CGPoint(x: 13.641, y: 11), control2: CGPoint(x: 13.759, y: 11.048))
        p.closeSubpath()
        return p.applying(CGAffineTransform(scaleX: rect.width / 16, y: rect.height / 16))
    }
}

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

### Compose

```kotlin
// Gentleface "list" (line-round), MIT. https://gentleface.com/icons/list
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 ListIcon: ImageVector by lazy {
    ImageVector.Builder(
        name = "list", defaultWidth = 16.dp, defaultHeight = 16.dp,
        viewportWidth = 16f, viewportHeight = 16f,
    ).addPath(
        pathData = addPathNodes("M1.439 2.439C1.732 2.146 2.086 2 2.5 2C2.914 2 3.268 2.146 3.561 2.439C3.854 2.732 4 3.086 4 3.5C4 3.914 3.854 4.268 3.561 4.561C3.268 4.854 2.914 5 2.5 5C2.086 5 1.732 4.854 1.439 4.561C1.146 4.268 1 3.914 1 3.5C1 3.086 1.146 2.732 1.439 2.439ZM6.144 3.856C6.048 3.759 6 3.641 6 3.5C6 3.359 6.048 3.241 6.144 3.144C6.241 3.048 6.359 3 6.5 3L13.5 3C13.641 3 13.759 3.048 13.856 3.144C13.952 3.241 14 3.359 14 3.5C14 3.641 13.952 3.759 13.856 3.856C13.759 3.952 13.641 4 13.5 4L6.5 4C6.359 4 6.241 3.952 6.144 3.856ZM3.561 6.439C3.854 6.732 4 7.086 4 7.5C4 7.914 3.854 8.268 3.561 8.561C3.268 8.854 2.914 9 2.5 9C2.086 9 1.732 8.854 1.439 8.561C1.146 8.268 1 7.914 1 7.5C1 7.086 1.146 6.732 1.439 6.439C1.732 6.146 2.086 6 2.5 6C2.914 6 3.268 6.146 3.561 6.439ZM6.144 7.856C6.048 7.759 6 7.641 6 7.5C6 7.359 6.048 7.241 6.144 7.144C6.241 7.048 6.359 7 6.5 7L13.5 7C13.641 7 13.759 7.048 13.856 7.144C13.952 7.241 14 7.359 14 7.5C14 7.641 13.952 7.759 13.856 7.856C13.759 7.952 13.641 8 13.5 8L6.5 8C6.359 8 6.241 7.952 6.144 7.856ZM1.439 10.439C1.732 10.146 2.086 10 2.5 10C2.914 10 3.268 10.146 3.561 10.439C3.854 10.732 4 11.086 4 11.5C4 11.914 3.854 12.268 3.561 12.561C3.268 12.854 2.914 13 2.5 13C2.086 13 1.732 12.854 1.439 12.561C1.146 12.268 1 11.914 1 11.5C1 11.086 1.146 10.732 1.439 10.439ZM13.856 11.144C13.952 11.241 14 11.359 14 11.5C14 11.641 13.952 11.759 13.856 11.856C13.759 11.952 13.641 12 13.5 12L6.5 12C6.359 12 6.241 11.952 6.144 11.856C6.048 11.759 6 11.641 6 11.5C6 11.359 6.048 11.241 6.144 11.144C6.241 11.048 6.359 11 6.5 11L13.5 11C13.641 11 13.759 11.048 13.856 11.144Z"),
        fill = SolidColor(Color.Black),
    ).build()
}

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

### Android XML

```xml
<!-- res/drawable/ic_list.xml · Gentleface "list" (line-round), MIT. https://gentleface.com/icons/list -->
<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="M1.439 2.439C1.732 2.146 2.086 2 2.5 2C2.914 2 3.268 2.146 3.561 2.439C3.854 2.732 4 3.086 4 3.5C4 3.914 3.854 4.268 3.561 4.561C3.268 4.854 2.914 5 2.5 5C2.086 5 1.732 4.854 1.439 4.561C1.146 4.268 1 3.914 1 3.5C1 3.086 1.146 2.732 1.439 2.439ZM6.144 3.856C6.048 3.759 6 3.641 6 3.5C6 3.359 6.048 3.241 6.144 3.144C6.241 3.048 6.359 3 6.5 3L13.5 3C13.641 3 13.759 3.048 13.856 3.144C13.952 3.241 14 3.359 14 3.5C14 3.641 13.952 3.759 13.856 3.856C13.759 3.952 13.641 4 13.5 4L6.5 4C6.359 4 6.241 3.952 6.144 3.856ZM3.561 6.439C3.854 6.732 4 7.086 4 7.5C4 7.914 3.854 8.268 3.561 8.561C3.268 8.854 2.914 9 2.5 9C2.086 9 1.732 8.854 1.439 8.561C1.146 8.268 1 7.914 1 7.5C1 7.086 1.146 6.732 1.439 6.439C1.732 6.146 2.086 6 2.5 6C2.914 6 3.268 6.146 3.561 6.439ZM6.144 7.856C6.048 7.759 6 7.641 6 7.5C6 7.359 6.048 7.241 6.144 7.144C6.241 7.048 6.359 7 6.5 7L13.5 7C13.641 7 13.759 7.048 13.856 7.144C13.952 7.241 14 7.359 14 7.5C14 7.641 13.952 7.759 13.856 7.856C13.759 7.952 13.641 8 13.5 8L6.5 8C6.359 8 6.241 7.952 6.144 7.856ZM1.439 10.439C1.732 10.146 2.086 10 2.5 10C2.914 10 3.268 10.146 3.561 10.439C3.854 10.732 4 11.086 4 11.5C4 11.914 3.854 12.268 3.561 12.561C3.268 12.854 2.914 13 2.5 13C2.086 13 1.732 12.854 1.439 12.561C1.146 12.268 1 11.914 1 11.5C1 11.086 1.146 10.732 1.439 10.439ZM13.856 11.144C13.952 11.241 14 11.359 14 11.5C14 11.641 13.952 11.759 13.856 11.856C13.759 11.952 13.641 12 13.5 12L6.5 12C6.359 12 6.241 11.952 6.144 11.856C6.048 11.759 6 11.641 6 11.5C6 11.359 6.048 11.241 6.144 11.144C6.241 11.048 6.359 11 6.5 11L13.5 11C13.641 11 13.759 11.048 13.856 11.144Z"/>
</vector>
```

### Flutter

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

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

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

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

  @override
  void paint(Canvas canvas, Size size) {
    canvas.scale(size.width / 16, size.height / 16);
    final p = Path()
      ..moveTo(1.439, 2.439)
      ..cubicTo(1.732, 2.146, 2.086, 2, 2.5, 2)
      ..cubicTo(2.914, 2, 3.268, 2.146, 3.561, 2.439)
      ..cubicTo(3.854, 2.732, 4, 3.086, 4, 3.5)
      ..cubicTo(4, 3.914, 3.854, 4.268, 3.561, 4.561)
      ..cubicTo(3.268, 4.854, 2.914, 5, 2.5, 5)
      ..cubicTo(2.086, 5, 1.732, 4.854, 1.439, 4.561)
      ..cubicTo(1.146, 4.268, 1, 3.914, 1, 3.5)
      ..cubicTo(1, 3.086, 1.146, 2.732, 1.439, 2.439)
      ..close()
      ..moveTo(6.144, 3.856)
      ..cubicTo(6.048, 3.759, 6, 3.641, 6, 3.5)
      ..cubicTo(6, 3.359, 6.048, 3.241, 6.144, 3.144)
      ..cubicTo(6.241, 3.048, 6.359, 3, 6.5, 3)
      ..lineTo(13.5, 3)
      ..cubicTo(13.641, 3, 13.759, 3.048, 13.856, 3.144)
      ..cubicTo(13.952, 3.241, 14, 3.359, 14, 3.5)
      ..cubicTo(14, 3.641, 13.952, 3.759, 13.856, 3.856)
      ..cubicTo(13.759, 3.952, 13.641, 4, 13.5, 4)
      ..lineTo(6.5, 4)
      ..cubicTo(6.359, 4, 6.241, 3.952, 6.144, 3.856)
      ..close()
      ..moveTo(3.561, 6.439)
      ..cubicTo(3.854, 6.732, 4, 7.086, 4, 7.5)
      ..cubicTo(4, 7.914, 3.854, 8.268, 3.561, 8.561)
      ..cubicTo(3.268, 8.854, 2.914, 9, 2.5, 9)
      ..cubicTo(2.086, 9, 1.732, 8.854, 1.439, 8.561)
      ..cubicTo(1.146, 8.268, 1, 7.914, 1, 7.5)
      ..cubicTo(1, 7.086, 1.146, 6.732, 1.439, 6.439)
      ..cubicTo(1.732, 6.146, 2.086, 6, 2.5, 6)
      ..cubicTo(2.914, 6, 3.268, 6.146, 3.561, 6.439)
      ..close()
      ..moveTo(6.144, 7.856)
      ..cubicTo(6.048, 7.759, 6, 7.641, 6, 7.5)
      ..cubicTo(6, 7.359, 6.048, 7.241, 6.144, 7.144)
      ..cubicTo(6.241, 7.048, 6.359, 7, 6.5, 7)
      ..lineTo(13.5, 7)
      ..cubicTo(13.641, 7, 13.759, 7.048, 13.856, 7.144)
      ..cubicTo(13.952, 7.241, 14, 7.359, 14, 7.5)
      ..cubicTo(14, 7.641, 13.952, 7.759, 13.856, 7.856)
      ..cubicTo(13.759, 7.952, 13.641, 8, 13.5, 8)
      ..lineTo(6.5, 8)
      ..cubicTo(6.359, 8, 6.241, 7.952, 6.144, 7.856)
      ..close()
      ..moveTo(1.439, 10.439)
      ..cubicTo(1.732, 10.146, 2.086, 10, 2.5, 10)
      ..cubicTo(2.914, 10, 3.268, 10.146, 3.561, 10.439)
      ..cubicTo(3.854, 10.732, 4, 11.086, 4, 11.5)
      ..cubicTo(4, 11.914, 3.854, 12.268, 3.561, 12.561)
      ..cubicTo(3.268, 12.854, 2.914, 13, 2.5, 13)
      ..cubicTo(2.086, 13, 1.732, 12.854, 1.439, 12.561)
      ..cubicTo(1.146, 12.268, 1, 11.914, 1, 11.5)
      ..cubicTo(1, 11.086, 1.146, 10.732, 1.439, 10.439)
      ..close()
      ..moveTo(13.856, 11.144)
      ..cubicTo(13.952, 11.241, 14, 11.359, 14, 11.5)
      ..cubicTo(14, 11.641, 13.952, 11.759, 13.856, 11.856)
      ..cubicTo(13.759, 11.952, 13.641, 12, 13.5, 12)
      ..lineTo(6.5, 12)
      ..cubicTo(6.359, 12, 6.241, 11.952, 6.144, 11.856)
      ..cubicTo(6.048, 11.759, 6, 11.641, 6, 11.5)
      ..cubicTo(6, 11.359, 6.048, 11.241, 6.144, 11.144)
      ..cubicTo(6.241, 11.048, 6.359, 11, 6.5, 11)
      ..lineTo(13.5, 11)
      ..cubicTo(13.641, 11, 13.759, 11.048, 13.856, 11.144)
      ..close();
    canvas.drawPath(p, Paint()..color = color);
  }

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