# lock icon

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

- Category: Security & privacy
- Use it for: lock, locked, private, encrypted, only me, encryption, encrypt, end to end encrypted, e2ee
- Tags: padlock, security
- Family: lock-check, lock-clock, lock-open, lock-open-alert
- Component name: LockIcon
- Added: 2026-10-13
- Changed: 2026-10-15 (20 px drawn, 24 px drawn)

## Alternatives

- `incognito`: private browsing mode
- `eye-off`: hidden from view
- `shield-lock`: privacy or data-protection features
- `file-lock`: an encrypted file

## Also fits

- not allowed: the item is locked or needs a permission the user can get
- hide: private: only the owner can see it
- read only: locked by an owner or admin against all changes
- encrypted chat: encryption in general, E2EE (lock owns encrypted)
- vault: locked or private items in an app
- smart lock: the padlock: locked content, a file or an account

## Not for

- home security (use `home-shield`): secure → shield, not lock
- card disabled (use `credit-card-off`): locked or private, not a frozen card
- secure payment (use `credit-card-shield`): secure → shield, not lock
- incognito (use `incognito`): lock means private or encrypted content
- security (use `shield`): the lock motif does not mean security
- privacy (use `shield-lock`): lock means private or encrypted content

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

The SVG of every style: https://gentleface.com/icons/lock.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="M12.86 12.736C12.758 12.993 12.609 13.219 12.414 13.414C12.219 13.609 11.993 13.758 11.736 13.86C11.5 13.953 11.254 14 11 14L5 14C4.746 14 4.5 13.953 4.264 13.86C4.007 13.758 3.781 13.609 3.586 13.414C3.391 13.219 3.242 12.993 3.14 12.736C3.047 12.5 3 12.254 3 12L3 9C3 8.746 3.047 8.5 3.14 8.264C3.242 8.007 3.391 7.781 3.586 7.586C3.781 7.391 4.007 7.242 4.264 7.14C4.5 7.047 4.746 7 5 7L5 5C5 4.619 5.07 4.25 5.211 3.896C5.363 3.511 5.586 3.172 5.879 2.879C6.172 2.586 6.511 2.363 6.896 2.211C7.25 2.07 7.619 2 8 2C8.381 2 8.75 2.07 9.104 2.211C9.489 2.363 9.828 2.586 10.121 2.879C10.414 3.172 10.637 3.511 10.789 3.896C10.93 4.25 11 4.619 11 5L11 7C11.254 7 11.5 7.047 11.736 7.14C11.993 7.242 12.219 7.391 12.414 7.586C12.609 7.781 12.758 8.007 12.86 8.264C12.953 8.5 13 8.746 13 9L13 12C13 12.254 12.953 12.5 12.86 12.736ZM10 5C10 4.746 9.953 4.5 9.86 4.264C9.758 4.007 9.609 3.781 9.414 3.586C9.219 3.391 8.993 3.242 8.736 3.14C8.5 3.047 8.254 3 8 3C7.746 3 7.5 3.047 7.264 3.14C7.007 3.242 6.781 3.391 6.586 3.586C6.391 3.781 6.242 4.007 6.14 4.264C6.047 4.5 6 4.746 6 5L6 7L10 7L10 5ZM4.293 12.707C4.488 12.902 4.724 13 5 13L11 13C11.276 13 11.512 12.902 11.707 12.707C11.902 12.512 12 12.276 12 12L12 9C12 8.724 11.902 8.488 11.707 8.293C11.512 8.098 11.276 8 11 8L5 8C4.724 8 4.488 8.098 4.293 8.293C4.098 8.488 4 8.724 4 9L4 12C4 12.276 4.098 12.512 4.293 12.707ZM8.707 11.707C8.512 11.902 8.276 12 8 12C7.724 12 7.488 11.902 7.293 11.707C7.098 11.512 7 11.276 7 11L7 10C7 9.724 7.098 9.488 7.293 9.293C7.488 9.098 7.724 9 8 9C8.276 9 8.512 9.098 8.707 9.293C8.902 9.488 9 9.724 9 10L9 11C9 11.276 8.902 11.512 8.707 11.707Z"/></svg>
```

### React

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

export function LockIcon(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="M12.86 12.736C12.758 12.993 12.609 13.219 12.414 13.414C12.219 13.609 11.993 13.758 11.736 13.86C11.5 13.953 11.254 14 11 14L5 14C4.746 14 4.5 13.953 4.264 13.86C4.007 13.758 3.781 13.609 3.586 13.414C3.391 13.219 3.242 12.993 3.14 12.736C3.047 12.5 3 12.254 3 12L3 9C3 8.746 3.047 8.5 3.14 8.264C3.242 8.007 3.391 7.781 3.586 7.586C3.781 7.391 4.007 7.242 4.264 7.14C4.5 7.047 4.746 7 5 7L5 5C5 4.619 5.07 4.25 5.211 3.896C5.363 3.511 5.586 3.172 5.879 2.879C6.172 2.586 6.511 2.363 6.896 2.211C7.25 2.07 7.619 2 8 2C8.381 2 8.75 2.07 9.104 2.211C9.489 2.363 9.828 2.586 10.121 2.879C10.414 3.172 10.637 3.511 10.789 3.896C10.93 4.25 11 4.619 11 5L11 7C11.254 7 11.5 7.047 11.736 7.14C11.993 7.242 12.219 7.391 12.414 7.586C12.609 7.781 12.758 8.007 12.86 8.264C12.953 8.5 13 8.746 13 9L13 12C13 12.254 12.953 12.5 12.86 12.736ZM10 5C10 4.746 9.953 4.5 9.86 4.264C9.758 4.007 9.609 3.781 9.414 3.586C9.219 3.391 8.993 3.242 8.736 3.14C8.5 3.047 8.254 3 8 3C7.746 3 7.5 3.047 7.264 3.14C7.007 3.242 6.781 3.391 6.586 3.586C6.391 3.781 6.242 4.007 6.14 4.264C6.047 4.5 6 4.746 6 5L6 7L10 7L10 5ZM4.293 12.707C4.488 12.902 4.724 13 5 13L11 13C11.276 13 11.512 12.902 11.707 12.707C11.902 12.512 12 12.276 12 12L12 9C12 8.724 11.902 8.488 11.707 8.293C11.512 8.098 11.276 8 11 8L5 8C4.724 8 4.488 8.098 4.293 8.293C4.098 8.488 4 8.724 4 9L4 12C4 12.276 4.098 12.512 4.293 12.707ZM8.707 11.707C8.512 11.902 8.276 12 8 12C7.724 12 7.488 11.902 7.293 11.707C7.098 11.512 7 11.276 7 11L7 10C7 9.724 7.098 9.488 7.293 9.293C7.488 9.098 7.724 9 8 9C8.276 9 8.512 9.098 8.707 9.293C8.902 9.488 9 9.724 9 10L9 11C9 11.276 8.902 11.512 8.707 11.707Z" />
    </svg>
  );
}
```

### Vue

```vue
<!-- Gentleface "lock" (line-round), MIT. https://gentleface.com/icons/lock -->
<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="M12.86 12.736C12.758 12.993 12.609 13.219 12.414 13.414C12.219 13.609 11.993 13.758 11.736 13.86C11.5 13.953 11.254 14 11 14L5 14C4.746 14 4.5 13.953 4.264 13.86C4.007 13.758 3.781 13.609 3.586 13.414C3.391 13.219 3.242 12.993 3.14 12.736C3.047 12.5 3 12.254 3 12L3 9C3 8.746 3.047 8.5 3.14 8.264C3.242 8.007 3.391 7.781 3.586 7.586C3.781 7.391 4.007 7.242 4.264 7.14C4.5 7.047 4.746 7 5 7L5 5C5 4.619 5.07 4.25 5.211 3.896C5.363 3.511 5.586 3.172 5.879 2.879C6.172 2.586 6.511 2.363 6.896 2.211C7.25 2.07 7.619 2 8 2C8.381 2 8.75 2.07 9.104 2.211C9.489 2.363 9.828 2.586 10.121 2.879C10.414 3.172 10.637 3.511 10.789 3.896C10.93 4.25 11 4.619 11 5L11 7C11.254 7 11.5 7.047 11.736 7.14C11.993 7.242 12.219 7.391 12.414 7.586C12.609 7.781 12.758 8.007 12.86 8.264C12.953 8.5 13 8.746 13 9L13 12C13 12.254 12.953 12.5 12.86 12.736ZM10 5C10 4.746 9.953 4.5 9.86 4.264C9.758 4.007 9.609 3.781 9.414 3.586C9.219 3.391 8.993 3.242 8.736 3.14C8.5 3.047 8.254 3 8 3C7.746 3 7.5 3.047 7.264 3.14C7.007 3.242 6.781 3.391 6.586 3.586C6.391 3.781 6.242 4.007 6.14 4.264C6.047 4.5 6 4.746 6 5L6 7L10 7L10 5ZM4.293 12.707C4.488 12.902 4.724 13 5 13L11 13C11.276 13 11.512 12.902 11.707 12.707C11.902 12.512 12 12.276 12 12L12 9C12 8.724 11.902 8.488 11.707 8.293C11.512 8.098 11.276 8 11 8L5 8C4.724 8 4.488 8.098 4.293 8.293C4.098 8.488 4 8.724 4 9L4 12C4 12.276 4.098 12.512 4.293 12.707ZM8.707 11.707C8.512 11.902 8.276 12 8 12C7.724 12 7.488 11.902 7.293 11.707C7.098 11.512 7 11.276 7 11L7 10C7 9.724 7.098 9.488 7.293 9.293C7.488 9.098 7.724 9 8 9C8.276 9 8.512 9.098 8.707 9.293C8.902 9.488 9 9.724 9 10L9 11C9 11.276 8.902 11.512 8.707 11.707Z" />
  </svg>
</template>
```

### Svelte

```svelte
<!-- Gentleface "lock" (line-round), MIT. https://gentleface.com/icons/lock -->
<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="M12.86 12.736C12.758 12.993 12.609 13.219 12.414 13.414C12.219 13.609 11.993 13.758 11.736 13.86C11.5 13.953 11.254 14 11 14L5 14C4.746 14 4.5 13.953 4.264 13.86C4.007 13.758 3.781 13.609 3.586 13.414C3.391 13.219 3.242 12.993 3.14 12.736C3.047 12.5 3 12.254 3 12L3 9C3 8.746 3.047 8.5 3.14 8.264C3.242 8.007 3.391 7.781 3.586 7.586C3.781 7.391 4.007 7.242 4.264 7.14C4.5 7.047 4.746 7 5 7L5 5C5 4.619 5.07 4.25 5.211 3.896C5.363 3.511 5.586 3.172 5.879 2.879C6.172 2.586 6.511 2.363 6.896 2.211C7.25 2.07 7.619 2 8 2C8.381 2 8.75 2.07 9.104 2.211C9.489 2.363 9.828 2.586 10.121 2.879C10.414 3.172 10.637 3.511 10.789 3.896C10.93 4.25 11 4.619 11 5L11 7C11.254 7 11.5 7.047 11.736 7.14C11.993 7.242 12.219 7.391 12.414 7.586C12.609 7.781 12.758 8.007 12.86 8.264C12.953 8.5 13 8.746 13 9L13 12C13 12.254 12.953 12.5 12.86 12.736ZM10 5C10 4.746 9.953 4.5 9.86 4.264C9.758 4.007 9.609 3.781 9.414 3.586C9.219 3.391 8.993 3.242 8.736 3.14C8.5 3.047 8.254 3 8 3C7.746 3 7.5 3.047 7.264 3.14C7.007 3.242 6.781 3.391 6.586 3.586C6.391 3.781 6.242 4.007 6.14 4.264C6.047 4.5 6 4.746 6 5L6 7L10 7L10 5ZM4.293 12.707C4.488 12.902 4.724 13 5 13L11 13C11.276 13 11.512 12.902 11.707 12.707C11.902 12.512 12 12.276 12 12L12 9C12 8.724 11.902 8.488 11.707 8.293C11.512 8.098 11.276 8 11 8L5 8C4.724 8 4.488 8.098 4.293 8.293C4.098 8.488 4 8.724 4 9L4 12C4 12.276 4.098 12.512 4.293 12.707ZM8.707 11.707C8.512 11.902 8.276 12 8 12C7.724 12 7.488 11.902 7.293 11.707C7.098 11.512 7 11.276 7 11L7 10C7 9.724 7.098 9.488 7.293 9.293C7.488 9.098 7.724 9 8 9C8.276 9 8.512 9.098 8.707 9.293C8.902 9.488 9 9.724 9 10L9 11C9 11.276 8.902 11.512 8.707 11.707Z" />
</svg>
```

### HTML img

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

### CSS

```css
/* Gentleface "lock" (line-round), MIT. https://gentleface.com/icons/lock. Takes the text color. */
.icon-lock {
  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='M12.86 12.736C12.758 12.993 12.609 13.219 12.414 13.414C12.219 13.609 11.993 13.758 11.736 13.86C11.5 13.953 11.254 14 11 14L5 14C4.746 14 4.5 13.953 4.264 13.86C4.007 13.758 3.781 13.609 3.586 13.414C3.391 13.219 3.242 12.993 3.14 12.736C3.047 12.5 3 12.254 3 12L3 9C3 8.746 3.047 8.5 3.14 8.264C3.242 8.007 3.391 7.781 3.586 7.586C3.781 7.391 4.007 7.242 4.264 7.14C4.5 7.047 4.746 7 5 7L5 5C5 4.619 5.07 4.25 5.211 3.896C5.363 3.511 5.586 3.172 5.879 2.879C6.172 2.586 6.511 2.363 6.896 2.211C7.25 2.07 7.619 2 8 2C8.381 2 8.75 2.07 9.104 2.211C9.489 2.363 9.828 2.586 10.121 2.879C10.414 3.172 10.637 3.511 10.789 3.896C10.93 4.25 11 4.619 11 5L11 7C11.254 7 11.5 7.047 11.736 7.14C11.993 7.242 12.219 7.391 12.414 7.586C12.609 7.781 12.758 8.007 12.86 8.264C12.953 8.5 13 8.746 13 9L13 12C13 12.254 12.953 12.5 12.86 12.736ZM10 5C10 4.746 9.953 4.5 9.86 4.264C9.758 4.007 9.609 3.781 9.414 3.586C9.219 3.391 8.993 3.242 8.736 3.14C8.5 3.047 8.254 3 8 3C7.746 3 7.5 3.047 7.264 3.14C7.007 3.242 6.781 3.391 6.586 3.586C6.391 3.781 6.242 4.007 6.14 4.264C6.047 4.5 6 4.746 6 5L6 7L10 7L10 5ZM4.293 12.707C4.488 12.902 4.724 13 5 13L11 13C11.276 13 11.512 12.902 11.707 12.707C11.902 12.512 12 12.276 12 12L12 9C12 8.724 11.902 8.488 11.707 8.293C11.512 8.098 11.276 8 11 8L5 8C4.724 8 4.488 8.098 4.293 8.293C4.098 8.488 4 8.724 4 9L4 12C4 12.276 4.098 12.512 4.293 12.707ZM8.707 11.707C8.512 11.902 8.276 12 8 12C7.724 12 7.488 11.902 7.293 11.707C7.098 11.512 7 11.276 7 11L7 10C7 9.724 7.098 9.488 7.293 9.293C7.488 9.098 7.724 9 8 9C8.276 9 8.512 9.098 8.707 9.293C8.902 9.488 9 9.724 9 10L9 11C9 11.276 8.902 11.512 8.707 11.707Z'/%3E%3C/svg%3E") center / 16px 16px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M12.86 12.736C12.758 12.993 12.609 13.219 12.414 13.414C12.219 13.609 11.993 13.758 11.736 13.86C11.5 13.953 11.254 14 11 14L5 14C4.746 14 4.5 13.953 4.264 13.86C4.007 13.758 3.781 13.609 3.586 13.414C3.391 13.219 3.242 12.993 3.14 12.736C3.047 12.5 3 12.254 3 12L3 9C3 8.746 3.047 8.5 3.14 8.264C3.242 8.007 3.391 7.781 3.586 7.586C3.781 7.391 4.007 7.242 4.264 7.14C4.5 7.047 4.746 7 5 7L5 5C5 4.619 5.07 4.25 5.211 3.896C5.363 3.511 5.586 3.172 5.879 2.879C6.172 2.586 6.511 2.363 6.896 2.211C7.25 2.07 7.619 2 8 2C8.381 2 8.75 2.07 9.104 2.211C9.489 2.363 9.828 2.586 10.121 2.879C10.414 3.172 10.637 3.511 10.789 3.896C10.93 4.25 11 4.619 11 5L11 7C11.254 7 11.5 7.047 11.736 7.14C11.993 7.242 12.219 7.391 12.414 7.586C12.609 7.781 12.758 8.007 12.86 8.264C12.953 8.5 13 8.746 13 9L13 12C13 12.254 12.953 12.5 12.86 12.736ZM10 5C10 4.746 9.953 4.5 9.86 4.264C9.758 4.007 9.609 3.781 9.414 3.586C9.219 3.391 8.993 3.242 8.736 3.14C8.5 3.047 8.254 3 8 3C7.746 3 7.5 3.047 7.264 3.14C7.007 3.242 6.781 3.391 6.586 3.586C6.391 3.781 6.242 4.007 6.14 4.264C6.047 4.5 6 4.746 6 5L6 7L10 7L10 5ZM4.293 12.707C4.488 12.902 4.724 13 5 13L11 13C11.276 13 11.512 12.902 11.707 12.707C11.902 12.512 12 12.276 12 12L12 9C12 8.724 11.902 8.488 11.707 8.293C11.512 8.098 11.276 8 11 8L5 8C4.724 8 4.488 8.098 4.293 8.293C4.098 8.488 4 8.724 4 9L4 12C4 12.276 4.098 12.512 4.293 12.707ZM8.707 11.707C8.512 11.902 8.276 12 8 12C7.724 12 7.488 11.902 7.293 11.707C7.098 11.512 7 11.276 7 11L7 10C7 9.724 7.098 9.488 7.293 9.293C7.488 9.098 7.724 9 8 9C8.276 9 8.512 9.098 8.707 9.293C8.902 9.488 9 9.724 9 10L9 11C9 11.276 8.902 11.512 8.707 11.707Z'/%3E%3C/svg%3E") center / 16px 16px no-repeat;
}
```

### Data URL

```text
data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M12.86 12.736C12.758 12.993 12.609 13.219 12.414 13.414C12.219 13.609 11.993 13.758 11.736 13.86C11.5 13.953 11.254 14 11 14L5 14C4.746 14 4.5 13.953 4.264 13.86C4.007 13.758 3.781 13.609 3.586 13.414C3.391 13.219 3.242 12.993 3.14 12.736C3.047 12.5 3 12.254 3 12L3 9C3 8.746 3.047 8.5 3.14 8.264C3.242 8.007 3.391 7.781 3.586 7.586C3.781 7.391 4.007 7.242 4.264 7.14C4.5 7.047 4.746 7 5 7L5 5C5 4.619 5.07 4.25 5.211 3.896C5.363 3.511 5.586 3.172 5.879 2.879C6.172 2.586 6.511 2.363 6.896 2.211C7.25 2.07 7.619 2 8 2C8.381 2 8.75 2.07 9.104 2.211C9.489 2.363 9.828 2.586 10.121 2.879C10.414 3.172 10.637 3.511 10.789 3.896C10.93 4.25 11 4.619 11 5L11 7C11.254 7 11.5 7.047 11.736 7.14C11.993 7.242 12.219 7.391 12.414 7.586C12.609 7.781 12.758 8.007 12.86 8.264C12.953 8.5 13 8.746 13 9L13 12C13 12.254 12.953 12.5 12.86 12.736ZM10 5C10 4.746 9.953 4.5 9.86 4.264C9.758 4.007 9.609 3.781 9.414 3.586C9.219 3.391 8.993 3.242 8.736 3.14C8.5 3.047 8.254 3 8 3C7.746 3 7.5 3.047 7.264 3.14C7.007 3.242 6.781 3.391 6.586 3.586C6.391 3.781 6.242 4.007 6.14 4.264C6.047 4.5 6 4.746 6 5L6 7L10 7L10 5ZM4.293 12.707C4.488 12.902 4.724 13 5 13L11 13C11.276 13 11.512 12.902 11.707 12.707C11.902 12.512 12 12.276 12 12L12 9C12 8.724 11.902 8.488 11.707 8.293C11.512 8.098 11.276 8 11 8L5 8C4.724 8 4.488 8.098 4.293 8.293C4.098 8.488 4 8.724 4 9L4 12C4 12.276 4.098 12.512 4.293 12.707ZM8.707 11.707C8.512 11.902 8.276 12 8 12C7.724 12 7.488 11.902 7.293 11.707C7.098 11.512 7 11.276 7 11L7 10C7 9.724 7.098 9.488 7.293 9.293C7.488 9.098 7.724 9 8 9C8.276 9 8.512 9.098 8.707 9.293C8.902 9.488 9 9.724 9 10L9 11C9 11.276 8.902 11.512 8.707 11.707Z'/%3E%3C/svg%3E
```

### Sprite

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

### SwiftUI

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

struct LockIcon: Shape {
    func path(in rect: CGRect) -> Path {
        var p = Path()
        p.move(to: CGPoint(x: 12.86, y: 12.736))
        p.addCurve(to: CGPoint(x: 12.414, y: 13.414), control1: CGPoint(x: 12.758, y: 12.993), control2: CGPoint(x: 12.609, y: 13.219))
        p.addCurve(to: CGPoint(x: 11.736, y: 13.86), control1: CGPoint(x: 12.219, y: 13.609), control2: CGPoint(x: 11.993, y: 13.758))
        p.addCurve(to: CGPoint(x: 11, y: 14), control1: CGPoint(x: 11.5, y: 13.953), control2: CGPoint(x: 11.254, y: 14))
        p.addLine(to: CGPoint(x: 5, y: 14))
        p.addCurve(to: CGPoint(x: 4.264, y: 13.86), control1: CGPoint(x: 4.746, y: 14), control2: CGPoint(x: 4.5, y: 13.953))
        p.addCurve(to: CGPoint(x: 3.586, y: 13.414), control1: CGPoint(x: 4.007, y: 13.758), control2: CGPoint(x: 3.781, y: 13.609))
        p.addCurve(to: CGPoint(x: 3.14, y: 12.736), control1: CGPoint(x: 3.391, y: 13.219), control2: CGPoint(x: 3.242, y: 12.993))
        p.addCurve(to: CGPoint(x: 3, y: 12), control1: CGPoint(x: 3.047, y: 12.5), control2: CGPoint(x: 3, y: 12.254))
        p.addLine(to: CGPoint(x: 3, y: 9))
        p.addCurve(to: CGPoint(x: 3.14, y: 8.264), control1: CGPoint(x: 3, y: 8.746), control2: CGPoint(x: 3.047, y: 8.5))
        p.addCurve(to: CGPoint(x: 3.586, y: 7.586), control1: CGPoint(x: 3.242, y: 8.007), control2: CGPoint(x: 3.391, y: 7.781))
        p.addCurve(to: CGPoint(x: 4.264, y: 7.14), control1: CGPoint(x: 3.781, y: 7.391), control2: CGPoint(x: 4.007, y: 7.242))
        p.addCurve(to: CGPoint(x: 5, y: 7), control1: CGPoint(x: 4.5, y: 7.047), control2: CGPoint(x: 4.746, y: 7))
        p.addLine(to: CGPoint(x: 5, y: 5))
        p.addCurve(to: CGPoint(x: 5.211, y: 3.896), control1: CGPoint(x: 5, y: 4.619), control2: CGPoint(x: 5.07, y: 4.25))
        p.addCurve(to: CGPoint(x: 5.879, y: 2.879), control1: CGPoint(x: 5.363, y: 3.511), control2: CGPoint(x: 5.586, y: 3.172))
        p.addCurve(to: CGPoint(x: 6.896, y: 2.211), control1: CGPoint(x: 6.172, y: 2.586), control2: CGPoint(x: 6.511, y: 2.363))
        p.addCurve(to: CGPoint(x: 8, y: 2), control1: CGPoint(x: 7.25, y: 2.07), control2: CGPoint(x: 7.619, y: 2))
        p.addCurve(to: CGPoint(x: 9.104, y: 2.211), control1: CGPoint(x: 8.381, y: 2), control2: CGPoint(x: 8.75, y: 2.07))
        p.addCurve(to: CGPoint(x: 10.121, y: 2.879), control1: CGPoint(x: 9.489, y: 2.363), control2: CGPoint(x: 9.828, y: 2.586))
        p.addCurve(to: CGPoint(x: 10.789, y: 3.896), control1: CGPoint(x: 10.414, y: 3.172), control2: CGPoint(x: 10.637, y: 3.511))
        p.addCurve(to: CGPoint(x: 11, y: 5), control1: CGPoint(x: 10.93, y: 4.25), control2: CGPoint(x: 11, y: 4.619))
        p.addLine(to: CGPoint(x: 11, y: 7))
        p.addCurve(to: CGPoint(x: 11.736, y: 7.14), control1: CGPoint(x: 11.254, y: 7), control2: CGPoint(x: 11.5, y: 7.047))
        p.addCurve(to: CGPoint(x: 12.414, y: 7.586), control1: CGPoint(x: 11.993, y: 7.242), control2: CGPoint(x: 12.219, y: 7.391))
        p.addCurve(to: CGPoint(x: 12.86, y: 8.264), control1: CGPoint(x: 12.609, y: 7.781), control2: CGPoint(x: 12.758, y: 8.007))
        p.addCurve(to: CGPoint(x: 13, y: 9), control1: CGPoint(x: 12.953, y: 8.5), control2: CGPoint(x: 13, y: 8.746))
        p.addLine(to: CGPoint(x: 13, y: 12))
        p.addCurve(to: CGPoint(x: 12.86, y: 12.736), control1: CGPoint(x: 13, y: 12.254), control2: CGPoint(x: 12.953, y: 12.5))
        p.closeSubpath()
        p.move(to: CGPoint(x: 10, y: 5))
        p.addCurve(to: CGPoint(x: 9.86, y: 4.264), control1: CGPoint(x: 10, y: 4.746), control2: CGPoint(x: 9.953, y: 4.5))
        p.addCurve(to: CGPoint(x: 9.414, y: 3.586), control1: CGPoint(x: 9.758, y: 4.007), control2: CGPoint(x: 9.609, y: 3.781))
        p.addCurve(to: CGPoint(x: 8.736, y: 3.14), control1: CGPoint(x: 9.219, y: 3.391), control2: CGPoint(x: 8.993, y: 3.242))
        p.addCurve(to: CGPoint(x: 8, y: 3), control1: CGPoint(x: 8.5, y: 3.047), control2: CGPoint(x: 8.254, y: 3))
        p.addCurve(to: CGPoint(x: 7.264, y: 3.14), control1: CGPoint(x: 7.746, y: 3), control2: CGPoint(x: 7.5, y: 3.047))
        p.addCurve(to: CGPoint(x: 6.586, y: 3.586), control1: CGPoint(x: 7.007, y: 3.242), control2: CGPoint(x: 6.781, y: 3.391))
        p.addCurve(to: CGPoint(x: 6.14, y: 4.264), control1: CGPoint(x: 6.391, y: 3.781), control2: CGPoint(x: 6.242, y: 4.007))
        p.addCurve(to: CGPoint(x: 6, y: 5), control1: CGPoint(x: 6.047, y: 4.5), control2: CGPoint(x: 6, y: 4.746))
        p.addLine(to: CGPoint(x: 6, y: 7))
        p.addLine(to: CGPoint(x: 10, y: 7))
        p.addLine(to: CGPoint(x: 10, y: 5))
        p.closeSubpath()
        p.move(to: CGPoint(x: 4.293, y: 12.707))
        p.addCurve(to: CGPoint(x: 5, y: 13), control1: CGPoint(x: 4.488, y: 12.902), control2: CGPoint(x: 4.724, y: 13))
        p.addLine(to: CGPoint(x: 11, y: 13))
        p.addCurve(to: CGPoint(x: 11.707, y: 12.707), control1: CGPoint(x: 11.276, y: 13), control2: CGPoint(x: 11.512, y: 12.902))
        p.addCurve(to: CGPoint(x: 12, y: 12), control1: CGPoint(x: 11.902, y: 12.512), control2: CGPoint(x: 12, y: 12.276))
        p.addLine(to: CGPoint(x: 12, y: 9))
        p.addCurve(to: CGPoint(x: 11.707, y: 8.293), control1: CGPoint(x: 12, y: 8.724), control2: CGPoint(x: 11.902, y: 8.488))
        p.addCurve(to: CGPoint(x: 11, y: 8), control1: CGPoint(x: 11.512, y: 8.098), control2: CGPoint(x: 11.276, y: 8))
        p.addLine(to: CGPoint(x: 5, y: 8))
        p.addCurve(to: CGPoint(x: 4.293, y: 8.293), control1: CGPoint(x: 4.724, y: 8), control2: CGPoint(x: 4.488, y: 8.098))
        p.addCurve(to: CGPoint(x: 4, y: 9), control1: CGPoint(x: 4.098, y: 8.488), control2: CGPoint(x: 4, y: 8.724))
        p.addLine(to: CGPoint(x: 4, y: 12))
        p.addCurve(to: CGPoint(x: 4.293, y: 12.707), control1: CGPoint(x: 4, y: 12.276), control2: CGPoint(x: 4.098, y: 12.512))
        p.closeSubpath()
        p.move(to: CGPoint(x: 8.707, y: 11.707))
        p.addCurve(to: CGPoint(x: 8, y: 12), control1: CGPoint(x: 8.512, y: 11.902), control2: CGPoint(x: 8.276, y: 12))
        p.addCurve(to: CGPoint(x: 7.293, y: 11.707), control1: CGPoint(x: 7.724, y: 12), control2: CGPoint(x: 7.488, y: 11.902))
        p.addCurve(to: CGPoint(x: 7, y: 11), control1: CGPoint(x: 7.098, y: 11.512), control2: CGPoint(x: 7, y: 11.276))
        p.addLine(to: CGPoint(x: 7, y: 10))
        p.addCurve(to: CGPoint(x: 7.293, y: 9.293), control1: CGPoint(x: 7, y: 9.724), control2: CGPoint(x: 7.098, y: 9.488))
        p.addCurve(to: CGPoint(x: 8, y: 9), control1: CGPoint(x: 7.488, y: 9.098), control2: CGPoint(x: 7.724, y: 9))
        p.addCurve(to: CGPoint(x: 8.707, y: 9.293), control1: CGPoint(x: 8.276, y: 9), control2: CGPoint(x: 8.512, y: 9.098))
        p.addCurve(to: CGPoint(x: 9, y: 10), control1: CGPoint(x: 8.902, y: 9.488), control2: CGPoint(x: 9, y: 9.724))
        p.addLine(to: CGPoint(x: 9, y: 11))
        p.addCurve(to: CGPoint(x: 8.707, y: 11.707), control1: CGPoint(x: 9, y: 11.276), control2: CGPoint(x: 8.902, y: 11.512))
        p.closeSubpath()
        return p.applying(CGAffineTransform(scaleX: rect.width / 16, y: rect.height / 16))
    }
}

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

### Compose

```kotlin
// Gentleface "lock" (line-round), MIT. https://gentleface.com/icons/lock
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 LockIcon: ImageVector by lazy {
    ImageVector.Builder(
        name = "lock", defaultWidth = 16.dp, defaultHeight = 16.dp,
        viewportWidth = 16f, viewportHeight = 16f,
    ).addPath(
        pathData = addPathNodes("M12.86 12.736C12.758 12.993 12.609 13.219 12.414 13.414C12.219 13.609 11.993 13.758 11.736 13.86C11.5 13.953 11.254 14 11 14L5 14C4.746 14 4.5 13.953 4.264 13.86C4.007 13.758 3.781 13.609 3.586 13.414C3.391 13.219 3.242 12.993 3.14 12.736C3.047 12.5 3 12.254 3 12L3 9C3 8.746 3.047 8.5 3.14 8.264C3.242 8.007 3.391 7.781 3.586 7.586C3.781 7.391 4.007 7.242 4.264 7.14C4.5 7.047 4.746 7 5 7L5 5C5 4.619 5.07 4.25 5.211 3.896C5.363 3.511 5.586 3.172 5.879 2.879C6.172 2.586 6.511 2.363 6.896 2.211C7.25 2.07 7.619 2 8 2C8.381 2 8.75 2.07 9.104 2.211C9.489 2.363 9.828 2.586 10.121 2.879C10.414 3.172 10.637 3.511 10.789 3.896C10.93 4.25 11 4.619 11 5L11 7C11.254 7 11.5 7.047 11.736 7.14C11.993 7.242 12.219 7.391 12.414 7.586C12.609 7.781 12.758 8.007 12.86 8.264C12.953 8.5 13 8.746 13 9L13 12C13 12.254 12.953 12.5 12.86 12.736ZM10 5C10 4.746 9.953 4.5 9.86 4.264C9.758 4.007 9.609 3.781 9.414 3.586C9.219 3.391 8.993 3.242 8.736 3.14C8.5 3.047 8.254 3 8 3C7.746 3 7.5 3.047 7.264 3.14C7.007 3.242 6.781 3.391 6.586 3.586C6.391 3.781 6.242 4.007 6.14 4.264C6.047 4.5 6 4.746 6 5L6 7L10 7L10 5ZM4.293 12.707C4.488 12.902 4.724 13 5 13L11 13C11.276 13 11.512 12.902 11.707 12.707C11.902 12.512 12 12.276 12 12L12 9C12 8.724 11.902 8.488 11.707 8.293C11.512 8.098 11.276 8 11 8L5 8C4.724 8 4.488 8.098 4.293 8.293C4.098 8.488 4 8.724 4 9L4 12C4 12.276 4.098 12.512 4.293 12.707ZM8.707 11.707C8.512 11.902 8.276 12 8 12C7.724 12 7.488 11.902 7.293 11.707C7.098 11.512 7 11.276 7 11L7 10C7 9.724 7.098 9.488 7.293 9.293C7.488 9.098 7.724 9 8 9C8.276 9 8.512 9.098 8.707 9.293C8.902 9.488 9 9.724 9 10L9 11C9 11.276 8.902 11.512 8.707 11.707Z"),
        fill = SolidColor(Color.Black),
    ).build()
}

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

### Android XML

```xml
<!-- res/drawable/ic_lock.xml · Gentleface "lock" (line-round), MIT. https://gentleface.com/icons/lock -->
<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="M12.86 12.736C12.758 12.993 12.609 13.219 12.414 13.414C12.219 13.609 11.993 13.758 11.736 13.86C11.5 13.953 11.254 14 11 14L5 14C4.746 14 4.5 13.953 4.264 13.86C4.007 13.758 3.781 13.609 3.586 13.414C3.391 13.219 3.242 12.993 3.14 12.736C3.047 12.5 3 12.254 3 12L3 9C3 8.746 3.047 8.5 3.14 8.264C3.242 8.007 3.391 7.781 3.586 7.586C3.781 7.391 4.007 7.242 4.264 7.14C4.5 7.047 4.746 7 5 7L5 5C5 4.619 5.07 4.25 5.211 3.896C5.363 3.511 5.586 3.172 5.879 2.879C6.172 2.586 6.511 2.363 6.896 2.211C7.25 2.07 7.619 2 8 2C8.381 2 8.75 2.07 9.104 2.211C9.489 2.363 9.828 2.586 10.121 2.879C10.414 3.172 10.637 3.511 10.789 3.896C10.93 4.25 11 4.619 11 5L11 7C11.254 7 11.5 7.047 11.736 7.14C11.993 7.242 12.219 7.391 12.414 7.586C12.609 7.781 12.758 8.007 12.86 8.264C12.953 8.5 13 8.746 13 9L13 12C13 12.254 12.953 12.5 12.86 12.736ZM10 5C10 4.746 9.953 4.5 9.86 4.264C9.758 4.007 9.609 3.781 9.414 3.586C9.219 3.391 8.993 3.242 8.736 3.14C8.5 3.047 8.254 3 8 3C7.746 3 7.5 3.047 7.264 3.14C7.007 3.242 6.781 3.391 6.586 3.586C6.391 3.781 6.242 4.007 6.14 4.264C6.047 4.5 6 4.746 6 5L6 7L10 7L10 5ZM4.293 12.707C4.488 12.902 4.724 13 5 13L11 13C11.276 13 11.512 12.902 11.707 12.707C11.902 12.512 12 12.276 12 12L12 9C12 8.724 11.902 8.488 11.707 8.293C11.512 8.098 11.276 8 11 8L5 8C4.724 8 4.488 8.098 4.293 8.293C4.098 8.488 4 8.724 4 9L4 12C4 12.276 4.098 12.512 4.293 12.707ZM8.707 11.707C8.512 11.902 8.276 12 8 12C7.724 12 7.488 11.902 7.293 11.707C7.098 11.512 7 11.276 7 11L7 10C7 9.724 7.098 9.488 7.293 9.293C7.488 9.098 7.724 9 8 9C8.276 9 8.512 9.098 8.707 9.293C8.902 9.488 9 9.724 9 10L9 11C9 11.276 8.902 11.512 8.707 11.707Z"/>
</vector>
```

### Flutter

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

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

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

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

  @override
  void paint(Canvas canvas, Size size) {
    canvas.scale(size.width / 16, size.height / 16);
    final p = Path()
      ..moveTo(12.86, 12.736)
      ..cubicTo(12.758, 12.993, 12.609, 13.219, 12.414, 13.414)
      ..cubicTo(12.219, 13.609, 11.993, 13.758, 11.736, 13.86)
      ..cubicTo(11.5, 13.953, 11.254, 14, 11, 14)
      ..lineTo(5, 14)
      ..cubicTo(4.746, 14, 4.5, 13.953, 4.264, 13.86)
      ..cubicTo(4.007, 13.758, 3.781, 13.609, 3.586, 13.414)
      ..cubicTo(3.391, 13.219, 3.242, 12.993, 3.14, 12.736)
      ..cubicTo(3.047, 12.5, 3, 12.254, 3, 12)
      ..lineTo(3, 9)
      ..cubicTo(3, 8.746, 3.047, 8.5, 3.14, 8.264)
      ..cubicTo(3.242, 8.007, 3.391, 7.781, 3.586, 7.586)
      ..cubicTo(3.781, 7.391, 4.007, 7.242, 4.264, 7.14)
      ..cubicTo(4.5, 7.047, 4.746, 7, 5, 7)
      ..lineTo(5, 5)
      ..cubicTo(5, 4.619, 5.07, 4.25, 5.211, 3.896)
      ..cubicTo(5.363, 3.511, 5.586, 3.172, 5.879, 2.879)
      ..cubicTo(6.172, 2.586, 6.511, 2.363, 6.896, 2.211)
      ..cubicTo(7.25, 2.07, 7.619, 2, 8, 2)
      ..cubicTo(8.381, 2, 8.75, 2.07, 9.104, 2.211)
      ..cubicTo(9.489, 2.363, 9.828, 2.586, 10.121, 2.879)
      ..cubicTo(10.414, 3.172, 10.637, 3.511, 10.789, 3.896)
      ..cubicTo(10.93, 4.25, 11, 4.619, 11, 5)
      ..lineTo(11, 7)
      ..cubicTo(11.254, 7, 11.5, 7.047, 11.736, 7.14)
      ..cubicTo(11.993, 7.242, 12.219, 7.391, 12.414, 7.586)
      ..cubicTo(12.609, 7.781, 12.758, 8.007, 12.86, 8.264)
      ..cubicTo(12.953, 8.5, 13, 8.746, 13, 9)
      ..lineTo(13, 12)
      ..cubicTo(13, 12.254, 12.953, 12.5, 12.86, 12.736)
      ..close()
      ..moveTo(10, 5)
      ..cubicTo(10, 4.746, 9.953, 4.5, 9.86, 4.264)
      ..cubicTo(9.758, 4.007, 9.609, 3.781, 9.414, 3.586)
      ..cubicTo(9.219, 3.391, 8.993, 3.242, 8.736, 3.14)
      ..cubicTo(8.5, 3.047, 8.254, 3, 8, 3)
      ..cubicTo(7.746, 3, 7.5, 3.047, 7.264, 3.14)
      ..cubicTo(7.007, 3.242, 6.781, 3.391, 6.586, 3.586)
      ..cubicTo(6.391, 3.781, 6.242, 4.007, 6.14, 4.264)
      ..cubicTo(6.047, 4.5, 6, 4.746, 6, 5)
      ..lineTo(6, 7)
      ..lineTo(10, 7)
      ..lineTo(10, 5)
      ..close()
      ..moveTo(4.293, 12.707)
      ..cubicTo(4.488, 12.902, 4.724, 13, 5, 13)
      ..lineTo(11, 13)
      ..cubicTo(11.276, 13, 11.512, 12.902, 11.707, 12.707)
      ..cubicTo(11.902, 12.512, 12, 12.276, 12, 12)
      ..lineTo(12, 9)
      ..cubicTo(12, 8.724, 11.902, 8.488, 11.707, 8.293)
      ..cubicTo(11.512, 8.098, 11.276, 8, 11, 8)
      ..lineTo(5, 8)
      ..cubicTo(4.724, 8, 4.488, 8.098, 4.293, 8.293)
      ..cubicTo(4.098, 8.488, 4, 8.724, 4, 9)
      ..lineTo(4, 12)
      ..cubicTo(4, 12.276, 4.098, 12.512, 4.293, 12.707)
      ..close()
      ..moveTo(8.707, 11.707)
      ..cubicTo(8.512, 11.902, 8.276, 12, 8, 12)
      ..cubicTo(7.724, 12, 7.488, 11.902, 7.293, 11.707)
      ..cubicTo(7.098, 11.512, 7, 11.276, 7, 11)
      ..lineTo(7, 10)
      ..cubicTo(7, 9.724, 7.098, 9.488, 7.293, 9.293)
      ..cubicTo(7.488, 9.098, 7.724, 9, 8, 9)
      ..cubicTo(8.276, 9, 8.512, 9.098, 8.707, 9.293)
      ..cubicTo(8.902, 9.488, 9, 9.724, 9, 10)
      ..lineTo(9, 11)
      ..cubicTo(9, 11.276, 8.902, 11.512, 8.707, 11.707)
      ..close();
    canvas.drawPath(p, Paint()..color = color);
  }

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