# servers icon

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

- Category: Development
- Use it for: servers, server cluster, environments, multiple servers, deployment environments
- Tags: servers, server-cluster, cluster, server-farm, datacenter, infrastructure, hosting, environments, deployment, staging, production, racks, backend, multiple-servers
- Family: server, server-alert, server-check, server-gear, server-link, server-off, server-plus, server-shield, server-x
- Component name: ServersIcon
- Added: 2026-10-29
- Since: version 0.2.0
- npm: `import { ServersIcon } from '@gentleface/react';` (@gentleface/react 0.2.0)
- Changed: 2026-10-30 (added)

## Alternatives

- `server`: one server or host (server)

## Also fits

- container: a server cluster (server-cluster)
- server: several servers (server-cluster)

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

The SVG of every style: https://gentleface.com/icons/servers.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="M14.707 1.293C14.902 1.488 15 1.724 15 2L15 5C15 5.276 14.902 5.512 14.707 5.707C14.512 5.902 14.276 6 14 6L4 6C3.724 6 3.488 5.902 3.293 5.707C3.098 5.512 3 5.276 3 5L3 2C3 1.724 3.098 1.488 3.293 1.293C3.488 1.098 3.724 1 4 1L14 1C14.276 1 14.512 1.098 14.707 1.293ZM4 5L14 5L14 2L4 2L4 5ZM6.5 3C6.641 3 6.759 3.048 6.856 3.144C6.952 3.241 7 3.359 7 3.5C7 3.641 6.952 3.759 6.856 3.856C6.759 3.952 6.641 4 6.5 4L5.5 4C5.359 4 5.241 3.952 5.144 3.856C5.048 3.759 5 3.641 5 3.5C5 3.359 5.048 3.241 5.144 3.144C5.241 3.048 5.359 3 5.5 3L6.5 3ZM14 13L4 13C3.724 13 3.488 12.902 3.293 12.707C3.098 12.512 3 12.276 3 12L3 9C3 8.724 3.098 8.488 3.293 8.293C3.488 8.098 3.724 8 4 8L14 8C14.276 8 14.512 8.098 14.707 8.293C14.902 8.488 15 8.724 15 9L15 12C15 12.276 14.902 12.512 14.707 12.707C14.512 12.902 14.276 13 14 13ZM4 9L4 12L14 12L14 9L4 9ZM12.5 14C12.641 14 12.759 14.048 12.856 14.144C12.952 14.241 13 14.359 13 14.5C13 14.641 12.952 14.759 12.856 14.856C12.759 14.952 12.641 15 12.5 15L1.5 15C1.359 15 1.241 14.952 1.144 14.856C1.048 14.759 1 14.641 1 14.5L1 10.5C1 10.359 1.048 10.241 1.144 10.144C1.241 10.048 1.359 10 1.5 10C1.641 10 1.759 10.048 1.856 10.144C1.952 10.241 2 10.359 2 10.5L2 14L12.5 14ZM6.5 10C6.641 10 6.759 10.048 6.856 10.144C6.952 10.241 7 10.359 7 10.5C7 10.641 6.952 10.759 6.856 10.856C6.759 10.952 6.641 11 6.5 11L5.5 11C5.359 11 5.241 10.952 5.144 10.856C5.048 10.759 5 10.641 5 10.5C5 10.359 5.048 10.241 5.144 10.144C5.241 10.048 5.359 10 5.5 10L6.5 10Z"/></svg>
```

### React

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

export function ServersIcon(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="M14.707 1.293C14.902 1.488 15 1.724 15 2L15 5C15 5.276 14.902 5.512 14.707 5.707C14.512 5.902 14.276 6 14 6L4 6C3.724 6 3.488 5.902 3.293 5.707C3.098 5.512 3 5.276 3 5L3 2C3 1.724 3.098 1.488 3.293 1.293C3.488 1.098 3.724 1 4 1L14 1C14.276 1 14.512 1.098 14.707 1.293ZM4 5L14 5L14 2L4 2L4 5ZM6.5 3C6.641 3 6.759 3.048 6.856 3.144C6.952 3.241 7 3.359 7 3.5C7 3.641 6.952 3.759 6.856 3.856C6.759 3.952 6.641 4 6.5 4L5.5 4C5.359 4 5.241 3.952 5.144 3.856C5.048 3.759 5 3.641 5 3.5C5 3.359 5.048 3.241 5.144 3.144C5.241 3.048 5.359 3 5.5 3L6.5 3ZM14 13L4 13C3.724 13 3.488 12.902 3.293 12.707C3.098 12.512 3 12.276 3 12L3 9C3 8.724 3.098 8.488 3.293 8.293C3.488 8.098 3.724 8 4 8L14 8C14.276 8 14.512 8.098 14.707 8.293C14.902 8.488 15 8.724 15 9L15 12C15 12.276 14.902 12.512 14.707 12.707C14.512 12.902 14.276 13 14 13ZM4 9L4 12L14 12L14 9L4 9ZM12.5 14C12.641 14 12.759 14.048 12.856 14.144C12.952 14.241 13 14.359 13 14.5C13 14.641 12.952 14.759 12.856 14.856C12.759 14.952 12.641 15 12.5 15L1.5 15C1.359 15 1.241 14.952 1.144 14.856C1.048 14.759 1 14.641 1 14.5L1 10.5C1 10.359 1.048 10.241 1.144 10.144C1.241 10.048 1.359 10 1.5 10C1.641 10 1.759 10.048 1.856 10.144C1.952 10.241 2 10.359 2 10.5L2 14L12.5 14ZM6.5 10C6.641 10 6.759 10.048 6.856 10.144C6.952 10.241 7 10.359 7 10.5C7 10.641 6.952 10.759 6.856 10.856C6.759 10.952 6.641 11 6.5 11L5.5 11C5.359 11 5.241 10.952 5.144 10.856C5.048 10.759 5 10.641 5 10.5C5 10.359 5.048 10.241 5.144 10.144C5.241 10.048 5.359 10 5.5 10L6.5 10Z" />
    </svg>
  );
}
```

### Vue

```vue
<!-- Gentleface "servers" (line-round), MIT. https://gentleface.com/icons/servers -->
<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="M14.707 1.293C14.902 1.488 15 1.724 15 2L15 5C15 5.276 14.902 5.512 14.707 5.707C14.512 5.902 14.276 6 14 6L4 6C3.724 6 3.488 5.902 3.293 5.707C3.098 5.512 3 5.276 3 5L3 2C3 1.724 3.098 1.488 3.293 1.293C3.488 1.098 3.724 1 4 1L14 1C14.276 1 14.512 1.098 14.707 1.293ZM4 5L14 5L14 2L4 2L4 5ZM6.5 3C6.641 3 6.759 3.048 6.856 3.144C6.952 3.241 7 3.359 7 3.5C7 3.641 6.952 3.759 6.856 3.856C6.759 3.952 6.641 4 6.5 4L5.5 4C5.359 4 5.241 3.952 5.144 3.856C5.048 3.759 5 3.641 5 3.5C5 3.359 5.048 3.241 5.144 3.144C5.241 3.048 5.359 3 5.5 3L6.5 3ZM14 13L4 13C3.724 13 3.488 12.902 3.293 12.707C3.098 12.512 3 12.276 3 12L3 9C3 8.724 3.098 8.488 3.293 8.293C3.488 8.098 3.724 8 4 8L14 8C14.276 8 14.512 8.098 14.707 8.293C14.902 8.488 15 8.724 15 9L15 12C15 12.276 14.902 12.512 14.707 12.707C14.512 12.902 14.276 13 14 13ZM4 9L4 12L14 12L14 9L4 9ZM12.5 14C12.641 14 12.759 14.048 12.856 14.144C12.952 14.241 13 14.359 13 14.5C13 14.641 12.952 14.759 12.856 14.856C12.759 14.952 12.641 15 12.5 15L1.5 15C1.359 15 1.241 14.952 1.144 14.856C1.048 14.759 1 14.641 1 14.5L1 10.5C1 10.359 1.048 10.241 1.144 10.144C1.241 10.048 1.359 10 1.5 10C1.641 10 1.759 10.048 1.856 10.144C1.952 10.241 2 10.359 2 10.5L2 14L12.5 14ZM6.5 10C6.641 10 6.759 10.048 6.856 10.144C6.952 10.241 7 10.359 7 10.5C7 10.641 6.952 10.759 6.856 10.856C6.759 10.952 6.641 11 6.5 11L5.5 11C5.359 11 5.241 10.952 5.144 10.856C5.048 10.759 5 10.641 5 10.5C5 10.359 5.048 10.241 5.144 10.144C5.241 10.048 5.359 10 5.5 10L6.5 10Z" />
  </svg>
</template>
```

### Svelte

```svelte
<!-- Gentleface "servers" (line-round), MIT. https://gentleface.com/icons/servers -->
<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="M14.707 1.293C14.902 1.488 15 1.724 15 2L15 5C15 5.276 14.902 5.512 14.707 5.707C14.512 5.902 14.276 6 14 6L4 6C3.724 6 3.488 5.902 3.293 5.707C3.098 5.512 3 5.276 3 5L3 2C3 1.724 3.098 1.488 3.293 1.293C3.488 1.098 3.724 1 4 1L14 1C14.276 1 14.512 1.098 14.707 1.293ZM4 5L14 5L14 2L4 2L4 5ZM6.5 3C6.641 3 6.759 3.048 6.856 3.144C6.952 3.241 7 3.359 7 3.5C7 3.641 6.952 3.759 6.856 3.856C6.759 3.952 6.641 4 6.5 4L5.5 4C5.359 4 5.241 3.952 5.144 3.856C5.048 3.759 5 3.641 5 3.5C5 3.359 5.048 3.241 5.144 3.144C5.241 3.048 5.359 3 5.5 3L6.5 3ZM14 13L4 13C3.724 13 3.488 12.902 3.293 12.707C3.098 12.512 3 12.276 3 12L3 9C3 8.724 3.098 8.488 3.293 8.293C3.488 8.098 3.724 8 4 8L14 8C14.276 8 14.512 8.098 14.707 8.293C14.902 8.488 15 8.724 15 9L15 12C15 12.276 14.902 12.512 14.707 12.707C14.512 12.902 14.276 13 14 13ZM4 9L4 12L14 12L14 9L4 9ZM12.5 14C12.641 14 12.759 14.048 12.856 14.144C12.952 14.241 13 14.359 13 14.5C13 14.641 12.952 14.759 12.856 14.856C12.759 14.952 12.641 15 12.5 15L1.5 15C1.359 15 1.241 14.952 1.144 14.856C1.048 14.759 1 14.641 1 14.5L1 10.5C1 10.359 1.048 10.241 1.144 10.144C1.241 10.048 1.359 10 1.5 10C1.641 10 1.759 10.048 1.856 10.144C1.952 10.241 2 10.359 2 10.5L2 14L12.5 14ZM6.5 10C6.641 10 6.759 10.048 6.856 10.144C6.952 10.241 7 10.359 7 10.5C7 10.641 6.952 10.759 6.856 10.856C6.759 10.952 6.641 11 6.5 11L5.5 11C5.359 11 5.241 10.952 5.144 10.856C5.048 10.759 5 10.641 5 10.5C5 10.359 5.048 10.241 5.144 10.144C5.241 10.048 5.359 10 5.5 10L6.5 10Z" />
</svg>
```

### HTML img

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

### CSS

```css
/* Gentleface "servers" (line-round), MIT. https://gentleface.com/icons/servers. Takes the text color. */
.icon-servers {
  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='M14.707 1.293C14.902 1.488 15 1.724 15 2L15 5C15 5.276 14.902 5.512 14.707 5.707C14.512 5.902 14.276 6 14 6L4 6C3.724 6 3.488 5.902 3.293 5.707C3.098 5.512 3 5.276 3 5L3 2C3 1.724 3.098 1.488 3.293 1.293C3.488 1.098 3.724 1 4 1L14 1C14.276 1 14.512 1.098 14.707 1.293ZM4 5L14 5L14 2L4 2L4 5ZM6.5 3C6.641 3 6.759 3.048 6.856 3.144C6.952 3.241 7 3.359 7 3.5C7 3.641 6.952 3.759 6.856 3.856C6.759 3.952 6.641 4 6.5 4L5.5 4C5.359 4 5.241 3.952 5.144 3.856C5.048 3.759 5 3.641 5 3.5C5 3.359 5.048 3.241 5.144 3.144C5.241 3.048 5.359 3 5.5 3L6.5 3ZM14 13L4 13C3.724 13 3.488 12.902 3.293 12.707C3.098 12.512 3 12.276 3 12L3 9C3 8.724 3.098 8.488 3.293 8.293C3.488 8.098 3.724 8 4 8L14 8C14.276 8 14.512 8.098 14.707 8.293C14.902 8.488 15 8.724 15 9L15 12C15 12.276 14.902 12.512 14.707 12.707C14.512 12.902 14.276 13 14 13ZM4 9L4 12L14 12L14 9L4 9ZM12.5 14C12.641 14 12.759 14.048 12.856 14.144C12.952 14.241 13 14.359 13 14.5C13 14.641 12.952 14.759 12.856 14.856C12.759 14.952 12.641 15 12.5 15L1.5 15C1.359 15 1.241 14.952 1.144 14.856C1.048 14.759 1 14.641 1 14.5L1 10.5C1 10.359 1.048 10.241 1.144 10.144C1.241 10.048 1.359 10 1.5 10C1.641 10 1.759 10.048 1.856 10.144C1.952 10.241 2 10.359 2 10.5L2 14L12.5 14ZM6.5 10C6.641 10 6.759 10.048 6.856 10.144C6.952 10.241 7 10.359 7 10.5C7 10.641 6.952 10.759 6.856 10.856C6.759 10.952 6.641 11 6.5 11L5.5 11C5.359 11 5.241 10.952 5.144 10.856C5.048 10.759 5 10.641 5 10.5C5 10.359 5.048 10.241 5.144 10.144C5.241 10.048 5.359 10 5.5 10L6.5 10Z'/%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='M14.707 1.293C14.902 1.488 15 1.724 15 2L15 5C15 5.276 14.902 5.512 14.707 5.707C14.512 5.902 14.276 6 14 6L4 6C3.724 6 3.488 5.902 3.293 5.707C3.098 5.512 3 5.276 3 5L3 2C3 1.724 3.098 1.488 3.293 1.293C3.488 1.098 3.724 1 4 1L14 1C14.276 1 14.512 1.098 14.707 1.293ZM4 5L14 5L14 2L4 2L4 5ZM6.5 3C6.641 3 6.759 3.048 6.856 3.144C6.952 3.241 7 3.359 7 3.5C7 3.641 6.952 3.759 6.856 3.856C6.759 3.952 6.641 4 6.5 4L5.5 4C5.359 4 5.241 3.952 5.144 3.856C5.048 3.759 5 3.641 5 3.5C5 3.359 5.048 3.241 5.144 3.144C5.241 3.048 5.359 3 5.5 3L6.5 3ZM14 13L4 13C3.724 13 3.488 12.902 3.293 12.707C3.098 12.512 3 12.276 3 12L3 9C3 8.724 3.098 8.488 3.293 8.293C3.488 8.098 3.724 8 4 8L14 8C14.276 8 14.512 8.098 14.707 8.293C14.902 8.488 15 8.724 15 9L15 12C15 12.276 14.902 12.512 14.707 12.707C14.512 12.902 14.276 13 14 13ZM4 9L4 12L14 12L14 9L4 9ZM12.5 14C12.641 14 12.759 14.048 12.856 14.144C12.952 14.241 13 14.359 13 14.5C13 14.641 12.952 14.759 12.856 14.856C12.759 14.952 12.641 15 12.5 15L1.5 15C1.359 15 1.241 14.952 1.144 14.856C1.048 14.759 1 14.641 1 14.5L1 10.5C1 10.359 1.048 10.241 1.144 10.144C1.241 10.048 1.359 10 1.5 10C1.641 10 1.759 10.048 1.856 10.144C1.952 10.241 2 10.359 2 10.5L2 14L12.5 14ZM6.5 10C6.641 10 6.759 10.048 6.856 10.144C6.952 10.241 7 10.359 7 10.5C7 10.641 6.952 10.759 6.856 10.856C6.759 10.952 6.641 11 6.5 11L5.5 11C5.359 11 5.241 10.952 5.144 10.856C5.048 10.759 5 10.641 5 10.5C5 10.359 5.048 10.241 5.144 10.144C5.241 10.048 5.359 10 5.5 10L6.5 10Z'/%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='M14.707 1.293C14.902 1.488 15 1.724 15 2L15 5C15 5.276 14.902 5.512 14.707 5.707C14.512 5.902 14.276 6 14 6L4 6C3.724 6 3.488 5.902 3.293 5.707C3.098 5.512 3 5.276 3 5L3 2C3 1.724 3.098 1.488 3.293 1.293C3.488 1.098 3.724 1 4 1L14 1C14.276 1 14.512 1.098 14.707 1.293ZM4 5L14 5L14 2L4 2L4 5ZM6.5 3C6.641 3 6.759 3.048 6.856 3.144C6.952 3.241 7 3.359 7 3.5C7 3.641 6.952 3.759 6.856 3.856C6.759 3.952 6.641 4 6.5 4L5.5 4C5.359 4 5.241 3.952 5.144 3.856C5.048 3.759 5 3.641 5 3.5C5 3.359 5.048 3.241 5.144 3.144C5.241 3.048 5.359 3 5.5 3L6.5 3ZM14 13L4 13C3.724 13 3.488 12.902 3.293 12.707C3.098 12.512 3 12.276 3 12L3 9C3 8.724 3.098 8.488 3.293 8.293C3.488 8.098 3.724 8 4 8L14 8C14.276 8 14.512 8.098 14.707 8.293C14.902 8.488 15 8.724 15 9L15 12C15 12.276 14.902 12.512 14.707 12.707C14.512 12.902 14.276 13 14 13ZM4 9L4 12L14 12L14 9L4 9ZM12.5 14C12.641 14 12.759 14.048 12.856 14.144C12.952 14.241 13 14.359 13 14.5C13 14.641 12.952 14.759 12.856 14.856C12.759 14.952 12.641 15 12.5 15L1.5 15C1.359 15 1.241 14.952 1.144 14.856C1.048 14.759 1 14.641 1 14.5L1 10.5C1 10.359 1.048 10.241 1.144 10.144C1.241 10.048 1.359 10 1.5 10C1.641 10 1.759 10.048 1.856 10.144C1.952 10.241 2 10.359 2 10.5L2 14L12.5 14ZM6.5 10C6.641 10 6.759 10.048 6.856 10.144C6.952 10.241 7 10.359 7 10.5C7 10.641 6.952 10.759 6.856 10.856C6.759 10.952 6.641 11 6.5 11L5.5 11C5.359 11 5.241 10.952 5.144 10.856C5.048 10.759 5 10.641 5 10.5C5 10.359 5.048 10.241 5.144 10.144C5.241 10.048 5.359 10 5.5 10L6.5 10Z'/%3E%3C/svg%3E
```

### Sprite

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

### SwiftUI

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

struct ServersIcon: Shape {
    func path(in rect: CGRect) -> Path {
        var p = Path()
        p.move(to: CGPoint(x: 14.707, y: 1.293))
        p.addCurve(to: CGPoint(x: 15, y: 2), control1: CGPoint(x: 14.902, y: 1.488), control2: CGPoint(x: 15, y: 1.724))
        p.addLine(to: CGPoint(x: 15, y: 5))
        p.addCurve(to: CGPoint(x: 14.707, y: 5.707), control1: CGPoint(x: 15, y: 5.276), control2: CGPoint(x: 14.902, y: 5.512))
        p.addCurve(to: CGPoint(x: 14, y: 6), control1: CGPoint(x: 14.512, y: 5.902), control2: CGPoint(x: 14.276, y: 6))
        p.addLine(to: CGPoint(x: 4, y: 6))
        p.addCurve(to: CGPoint(x: 3.293, y: 5.707), control1: CGPoint(x: 3.724, y: 6), control2: CGPoint(x: 3.488, y: 5.902))
        p.addCurve(to: CGPoint(x: 3, y: 5), control1: CGPoint(x: 3.098, y: 5.512), control2: CGPoint(x: 3, y: 5.276))
        p.addLine(to: CGPoint(x: 3, y: 2))
        p.addCurve(to: CGPoint(x: 3.293, y: 1.293), control1: CGPoint(x: 3, y: 1.724), control2: CGPoint(x: 3.098, y: 1.488))
        p.addCurve(to: CGPoint(x: 4, y: 1), control1: CGPoint(x: 3.488, y: 1.098), control2: CGPoint(x: 3.724, y: 1))
        p.addLine(to: CGPoint(x: 14, y: 1))
        p.addCurve(to: CGPoint(x: 14.707, y: 1.293), control1: CGPoint(x: 14.276, y: 1), control2: CGPoint(x: 14.512, y: 1.098))
        p.closeSubpath()
        p.move(to: CGPoint(x: 4, y: 5))
        p.addLine(to: CGPoint(x: 14, y: 5))
        p.addLine(to: CGPoint(x: 14, y: 2))
        p.addLine(to: CGPoint(x: 4, y: 2))
        p.addLine(to: CGPoint(x: 4, y: 5))
        p.closeSubpath()
        p.move(to: CGPoint(x: 6.5, y: 3))
        p.addCurve(to: CGPoint(x: 6.856, y: 3.144), control1: CGPoint(x: 6.641, y: 3), control2: CGPoint(x: 6.759, y: 3.048))
        p.addCurve(to: CGPoint(x: 7, y: 3.5), control1: CGPoint(x: 6.952, y: 3.241), control2: CGPoint(x: 7, y: 3.359))
        p.addCurve(to: CGPoint(x: 6.856, y: 3.856), control1: CGPoint(x: 7, y: 3.641), control2: CGPoint(x: 6.952, y: 3.759))
        p.addCurve(to: CGPoint(x: 6.5, y: 4), control1: CGPoint(x: 6.759, y: 3.952), control2: CGPoint(x: 6.641, y: 4))
        p.addLine(to: CGPoint(x: 5.5, y: 4))
        p.addCurve(to: CGPoint(x: 5.144, y: 3.856), control1: CGPoint(x: 5.359, y: 4), control2: CGPoint(x: 5.241, y: 3.952))
        p.addCurve(to: CGPoint(x: 5, y: 3.5), control1: CGPoint(x: 5.048, y: 3.759), control2: CGPoint(x: 5, y: 3.641))
        p.addCurve(to: CGPoint(x: 5.144, y: 3.144), control1: CGPoint(x: 5, y: 3.359), control2: CGPoint(x: 5.048, y: 3.241))
        p.addCurve(to: CGPoint(x: 5.5, y: 3), control1: CGPoint(x: 5.241, y: 3.048), control2: CGPoint(x: 5.359, y: 3))
        p.addLine(to: CGPoint(x: 6.5, y: 3))
        p.closeSubpath()
        p.move(to: CGPoint(x: 14, y: 13))
        p.addLine(to: CGPoint(x: 4, y: 13))
        p.addCurve(to: CGPoint(x: 3.293, y: 12.707), control1: CGPoint(x: 3.724, y: 13), control2: CGPoint(x: 3.488, y: 12.902))
        p.addCurve(to: CGPoint(x: 3, y: 12), control1: CGPoint(x: 3.098, y: 12.512), control2: CGPoint(x: 3, y: 12.276))
        p.addLine(to: CGPoint(x: 3, y: 9))
        p.addCurve(to: CGPoint(x: 3.293, y: 8.293), control1: CGPoint(x: 3, y: 8.724), control2: CGPoint(x: 3.098, y: 8.488))
        p.addCurve(to: CGPoint(x: 4, y: 8), control1: CGPoint(x: 3.488, y: 8.098), control2: CGPoint(x: 3.724, y: 8))
        p.addLine(to: CGPoint(x: 14, y: 8))
        p.addCurve(to: CGPoint(x: 14.707, y: 8.293), control1: CGPoint(x: 14.276, y: 8), control2: CGPoint(x: 14.512, y: 8.098))
        p.addCurve(to: CGPoint(x: 15, y: 9), control1: CGPoint(x: 14.902, y: 8.488), control2: CGPoint(x: 15, y: 8.724))
        p.addLine(to: CGPoint(x: 15, y: 12))
        p.addCurve(to: CGPoint(x: 14.707, y: 12.707), control1: CGPoint(x: 15, y: 12.276), control2: CGPoint(x: 14.902, y: 12.512))
        p.addCurve(to: CGPoint(x: 14, y: 13), control1: CGPoint(x: 14.512, y: 12.902), control2: CGPoint(x: 14.276, y: 13))
        p.closeSubpath()
        p.move(to: CGPoint(x: 4, y: 9))
        p.addLine(to: CGPoint(x: 4, y: 12))
        p.addLine(to: CGPoint(x: 14, y: 12))
        p.addLine(to: CGPoint(x: 14, y: 9))
        p.addLine(to: CGPoint(x: 4, y: 9))
        p.closeSubpath()
        p.move(to: CGPoint(x: 12.5, y: 14))
        p.addCurve(to: CGPoint(x: 12.856, y: 14.144), control1: CGPoint(x: 12.641, y: 14), control2: CGPoint(x: 12.759, y: 14.048))
        p.addCurve(to: CGPoint(x: 13, y: 14.5), control1: CGPoint(x: 12.952, y: 14.241), control2: CGPoint(x: 13, y: 14.359))
        p.addCurve(to: CGPoint(x: 12.856, y: 14.856), control1: CGPoint(x: 13, y: 14.641), control2: CGPoint(x: 12.952, y: 14.759))
        p.addCurve(to: CGPoint(x: 12.5, y: 15), control1: CGPoint(x: 12.759, y: 14.952), control2: CGPoint(x: 12.641, y: 15))
        p.addLine(to: CGPoint(x: 1.5, y: 15))
        p.addCurve(to: CGPoint(x: 1.144, y: 14.856), control1: CGPoint(x: 1.359, y: 15), control2: CGPoint(x: 1.241, y: 14.952))
        p.addCurve(to: CGPoint(x: 1, y: 14.5), control1: CGPoint(x: 1.048, y: 14.759), control2: CGPoint(x: 1, y: 14.641))
        p.addLine(to: CGPoint(x: 1, y: 10.5))
        p.addCurve(to: CGPoint(x: 1.144, y: 10.144), control1: CGPoint(x: 1, y: 10.359), control2: CGPoint(x: 1.048, y: 10.241))
        p.addCurve(to: CGPoint(x: 1.5, y: 10), control1: CGPoint(x: 1.241, y: 10.048), control2: CGPoint(x: 1.359, y: 10))
        p.addCurve(to: CGPoint(x: 1.856, y: 10.144), control1: CGPoint(x: 1.641, y: 10), control2: CGPoint(x: 1.759, y: 10.048))
        p.addCurve(to: CGPoint(x: 2, y: 10.5), control1: CGPoint(x: 1.952, y: 10.241), control2: CGPoint(x: 2, y: 10.359))
        p.addLine(to: CGPoint(x: 2, y: 14))
        p.addLine(to: CGPoint(x: 12.5, y: 14))
        p.closeSubpath()
        p.move(to: CGPoint(x: 6.5, y: 10))
        p.addCurve(to: CGPoint(x: 6.856, y: 10.144), control1: CGPoint(x: 6.641, y: 10), control2: CGPoint(x: 6.759, y: 10.048))
        p.addCurve(to: CGPoint(x: 7, y: 10.5), control1: CGPoint(x: 6.952, y: 10.241), control2: CGPoint(x: 7, y: 10.359))
        p.addCurve(to: CGPoint(x: 6.856, y: 10.856), control1: CGPoint(x: 7, y: 10.641), control2: CGPoint(x: 6.952, y: 10.759))
        p.addCurve(to: CGPoint(x: 6.5, y: 11), control1: CGPoint(x: 6.759, y: 10.952), control2: CGPoint(x: 6.641, y: 11))
        p.addLine(to: CGPoint(x: 5.5, y: 11))
        p.addCurve(to: CGPoint(x: 5.144, y: 10.856), control1: CGPoint(x: 5.359, y: 11), control2: CGPoint(x: 5.241, y: 10.952))
        p.addCurve(to: CGPoint(x: 5, y: 10.5), control1: CGPoint(x: 5.048, y: 10.759), control2: CGPoint(x: 5, y: 10.641))
        p.addCurve(to: CGPoint(x: 5.144, y: 10.144), control1: CGPoint(x: 5, y: 10.359), control2: CGPoint(x: 5.048, y: 10.241))
        p.addCurve(to: CGPoint(x: 5.5, y: 10), control1: CGPoint(x: 5.241, y: 10.048), control2: CGPoint(x: 5.359, y: 10))
        p.addLine(to: CGPoint(x: 6.5, y: 10))
        p.closeSubpath()
        return p.applying(CGAffineTransform(scaleX: rect.width / 16, y: rect.height / 16))
    }
}

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

### Compose

```kotlin
// Gentleface "servers" (line-round), MIT. https://gentleface.com/icons/servers
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 ServersIcon: ImageVector by lazy {
    ImageVector.Builder(
        name = "servers", defaultWidth = 16.dp, defaultHeight = 16.dp,
        viewportWidth = 16f, viewportHeight = 16f,
    ).addPath(
        pathData = addPathNodes("M14.707 1.293C14.902 1.488 15 1.724 15 2L15 5C15 5.276 14.902 5.512 14.707 5.707C14.512 5.902 14.276 6 14 6L4 6C3.724 6 3.488 5.902 3.293 5.707C3.098 5.512 3 5.276 3 5L3 2C3 1.724 3.098 1.488 3.293 1.293C3.488 1.098 3.724 1 4 1L14 1C14.276 1 14.512 1.098 14.707 1.293ZM4 5L14 5L14 2L4 2L4 5ZM6.5 3C6.641 3 6.759 3.048 6.856 3.144C6.952 3.241 7 3.359 7 3.5C7 3.641 6.952 3.759 6.856 3.856C6.759 3.952 6.641 4 6.5 4L5.5 4C5.359 4 5.241 3.952 5.144 3.856C5.048 3.759 5 3.641 5 3.5C5 3.359 5.048 3.241 5.144 3.144C5.241 3.048 5.359 3 5.5 3L6.5 3ZM14 13L4 13C3.724 13 3.488 12.902 3.293 12.707C3.098 12.512 3 12.276 3 12L3 9C3 8.724 3.098 8.488 3.293 8.293C3.488 8.098 3.724 8 4 8L14 8C14.276 8 14.512 8.098 14.707 8.293C14.902 8.488 15 8.724 15 9L15 12C15 12.276 14.902 12.512 14.707 12.707C14.512 12.902 14.276 13 14 13ZM4 9L4 12L14 12L14 9L4 9ZM12.5 14C12.641 14 12.759 14.048 12.856 14.144C12.952 14.241 13 14.359 13 14.5C13 14.641 12.952 14.759 12.856 14.856C12.759 14.952 12.641 15 12.5 15L1.5 15C1.359 15 1.241 14.952 1.144 14.856C1.048 14.759 1 14.641 1 14.5L1 10.5C1 10.359 1.048 10.241 1.144 10.144C1.241 10.048 1.359 10 1.5 10C1.641 10 1.759 10.048 1.856 10.144C1.952 10.241 2 10.359 2 10.5L2 14L12.5 14ZM6.5 10C6.641 10 6.759 10.048 6.856 10.144C6.952 10.241 7 10.359 7 10.5C7 10.641 6.952 10.759 6.856 10.856C6.759 10.952 6.641 11 6.5 11L5.5 11C5.359 11 5.241 10.952 5.144 10.856C5.048 10.759 5 10.641 5 10.5C5 10.359 5.048 10.241 5.144 10.144C5.241 10.048 5.359 10 5.5 10L6.5 10Z"),
        fill = SolidColor(Color.Black),
    ).build()
}

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

### Android XML

```xml
<!-- res/drawable/ic_servers.xml · Gentleface "servers" (line-round), MIT. https://gentleface.com/icons/servers -->
<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="M14.707 1.293C14.902 1.488 15 1.724 15 2L15 5C15 5.276 14.902 5.512 14.707 5.707C14.512 5.902 14.276 6 14 6L4 6C3.724 6 3.488 5.902 3.293 5.707C3.098 5.512 3 5.276 3 5L3 2C3 1.724 3.098 1.488 3.293 1.293C3.488 1.098 3.724 1 4 1L14 1C14.276 1 14.512 1.098 14.707 1.293ZM4 5L14 5L14 2L4 2L4 5ZM6.5 3C6.641 3 6.759 3.048 6.856 3.144C6.952 3.241 7 3.359 7 3.5C7 3.641 6.952 3.759 6.856 3.856C6.759 3.952 6.641 4 6.5 4L5.5 4C5.359 4 5.241 3.952 5.144 3.856C5.048 3.759 5 3.641 5 3.5C5 3.359 5.048 3.241 5.144 3.144C5.241 3.048 5.359 3 5.5 3L6.5 3ZM14 13L4 13C3.724 13 3.488 12.902 3.293 12.707C3.098 12.512 3 12.276 3 12L3 9C3 8.724 3.098 8.488 3.293 8.293C3.488 8.098 3.724 8 4 8L14 8C14.276 8 14.512 8.098 14.707 8.293C14.902 8.488 15 8.724 15 9L15 12C15 12.276 14.902 12.512 14.707 12.707C14.512 12.902 14.276 13 14 13ZM4 9L4 12L14 12L14 9L4 9ZM12.5 14C12.641 14 12.759 14.048 12.856 14.144C12.952 14.241 13 14.359 13 14.5C13 14.641 12.952 14.759 12.856 14.856C12.759 14.952 12.641 15 12.5 15L1.5 15C1.359 15 1.241 14.952 1.144 14.856C1.048 14.759 1 14.641 1 14.5L1 10.5C1 10.359 1.048 10.241 1.144 10.144C1.241 10.048 1.359 10 1.5 10C1.641 10 1.759 10.048 1.856 10.144C1.952 10.241 2 10.359 2 10.5L2 14L12.5 14ZM6.5 10C6.641 10 6.759 10.048 6.856 10.144C6.952 10.241 7 10.359 7 10.5C7 10.641 6.952 10.759 6.856 10.856C6.759 10.952 6.641 11 6.5 11L5.5 11C5.359 11 5.241 10.952 5.144 10.856C5.048 10.759 5 10.641 5 10.5C5 10.359 5.048 10.241 5.144 10.144C5.241 10.048 5.359 10 5.5 10L6.5 10Z"/>
</vector>
```

### Flutter

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

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

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

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

  @override
  void paint(Canvas canvas, Size size) {
    canvas.scale(size.width / 16, size.height / 16);
    final p = Path()
      ..moveTo(14.707, 1.293)
      ..cubicTo(14.902, 1.488, 15, 1.724, 15, 2)
      ..lineTo(15, 5)
      ..cubicTo(15, 5.276, 14.902, 5.512, 14.707, 5.707)
      ..cubicTo(14.512, 5.902, 14.276, 6, 14, 6)
      ..lineTo(4, 6)
      ..cubicTo(3.724, 6, 3.488, 5.902, 3.293, 5.707)
      ..cubicTo(3.098, 5.512, 3, 5.276, 3, 5)
      ..lineTo(3, 2)
      ..cubicTo(3, 1.724, 3.098, 1.488, 3.293, 1.293)
      ..cubicTo(3.488, 1.098, 3.724, 1, 4, 1)
      ..lineTo(14, 1)
      ..cubicTo(14.276, 1, 14.512, 1.098, 14.707, 1.293)
      ..close()
      ..moveTo(4, 5)
      ..lineTo(14, 5)
      ..lineTo(14, 2)
      ..lineTo(4, 2)
      ..lineTo(4, 5)
      ..close()
      ..moveTo(6.5, 3)
      ..cubicTo(6.641, 3, 6.759, 3.048, 6.856, 3.144)
      ..cubicTo(6.952, 3.241, 7, 3.359, 7, 3.5)
      ..cubicTo(7, 3.641, 6.952, 3.759, 6.856, 3.856)
      ..cubicTo(6.759, 3.952, 6.641, 4, 6.5, 4)
      ..lineTo(5.5, 4)
      ..cubicTo(5.359, 4, 5.241, 3.952, 5.144, 3.856)
      ..cubicTo(5.048, 3.759, 5, 3.641, 5, 3.5)
      ..cubicTo(5, 3.359, 5.048, 3.241, 5.144, 3.144)
      ..cubicTo(5.241, 3.048, 5.359, 3, 5.5, 3)
      ..lineTo(6.5, 3)
      ..close()
      ..moveTo(14, 13)
      ..lineTo(4, 13)
      ..cubicTo(3.724, 13, 3.488, 12.902, 3.293, 12.707)
      ..cubicTo(3.098, 12.512, 3, 12.276, 3, 12)
      ..lineTo(3, 9)
      ..cubicTo(3, 8.724, 3.098, 8.488, 3.293, 8.293)
      ..cubicTo(3.488, 8.098, 3.724, 8, 4, 8)
      ..lineTo(14, 8)
      ..cubicTo(14.276, 8, 14.512, 8.098, 14.707, 8.293)
      ..cubicTo(14.902, 8.488, 15, 8.724, 15, 9)
      ..lineTo(15, 12)
      ..cubicTo(15, 12.276, 14.902, 12.512, 14.707, 12.707)
      ..cubicTo(14.512, 12.902, 14.276, 13, 14, 13)
      ..close()
      ..moveTo(4, 9)
      ..lineTo(4, 12)
      ..lineTo(14, 12)
      ..lineTo(14, 9)
      ..lineTo(4, 9)
      ..close()
      ..moveTo(12.5, 14)
      ..cubicTo(12.641, 14, 12.759, 14.048, 12.856, 14.144)
      ..cubicTo(12.952, 14.241, 13, 14.359, 13, 14.5)
      ..cubicTo(13, 14.641, 12.952, 14.759, 12.856, 14.856)
      ..cubicTo(12.759, 14.952, 12.641, 15, 12.5, 15)
      ..lineTo(1.5, 15)
      ..cubicTo(1.359, 15, 1.241, 14.952, 1.144, 14.856)
      ..cubicTo(1.048, 14.759, 1, 14.641, 1, 14.5)
      ..lineTo(1, 10.5)
      ..cubicTo(1, 10.359, 1.048, 10.241, 1.144, 10.144)
      ..cubicTo(1.241, 10.048, 1.359, 10, 1.5, 10)
      ..cubicTo(1.641, 10, 1.759, 10.048, 1.856, 10.144)
      ..cubicTo(1.952, 10.241, 2, 10.359, 2, 10.5)
      ..lineTo(2, 14)
      ..lineTo(12.5, 14)
      ..close()
      ..moveTo(6.5, 10)
      ..cubicTo(6.641, 10, 6.759, 10.048, 6.856, 10.144)
      ..cubicTo(6.952, 10.241, 7, 10.359, 7, 10.5)
      ..cubicTo(7, 10.641, 6.952, 10.759, 6.856, 10.856)
      ..cubicTo(6.759, 10.952, 6.641, 11, 6.5, 11)
      ..lineTo(5.5, 11)
      ..cubicTo(5.359, 11, 5.241, 10.952, 5.144, 10.856)
      ..cubicTo(5.048, 10.759, 5, 10.641, 5, 10.5)
      ..cubicTo(5, 10.359, 5.048, 10.241, 5.144, 10.144)
      ..cubicTo(5.241, 10.048, 5.359, 10, 5.5, 10)
      ..lineTo(6.5, 10)
      ..close();
    canvas.drawPath(p, Paint()..color = color);
  }

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