# case-upper icon

Case upper. Gentleface icon, drawn on the 16 px pixel grid. Free, MIT licensed. Page: https://gentleface.com/icons/case-upper

- Category: Text & formatting
- Use it for: uppercase, upper case, to uppercase, all caps
- Tags: uppercase, upper case, capitals, capital letters, caps, all caps, majuscule, case, AB, text, transform, format
- Family: bold, case-lower, case-sensitive, heading, heading-1, heading-2, heading-3, italic, letter-spacing, line-height, pilcrow, spell-check, strikethrough, subscript, superscript, text-color, text-size, text-size-decrease, text-size-increase, type, type-plus, type-x, underline
- Component name: CaseUpperIcon
- Added: 2026-10-29
- Since: version 0.2.0
- npm: `import { CaseUpperIcon } from '@gentleface/react';` (@gentleface/react 0.2.0)
- Changed: 2026-10-30 (added)

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

The SVG of every style: https://gentleface.com/icons/case-upper.json (`svg`).

## Code (line-round)

The snippets are decorative (aria-hidden). For an icon that carries meaning on its own, such as an icon-only button, label the button, or give the SVG role="img" and an aria-label. For another style, take its SVG from the JSON and swap the path `d`.

### SVG

```svg
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M3.015 3.379C3.043 3.266 3.102 3.175 3.191 3.105C3.281 3.035 3.384 3 3.5 3L4.5 3C4.616 3 4.719 3.035 4.809 3.105C4.898 3.175 4.957 3.266 4.985 3.379L6.985 11.379C7.019 11.513 7 11.639 6.929 11.757C6.858 11.876 6.755 11.952 6.621 11.985C6.487 12.019 6.361 12 6.243 11.929C6.124 11.858 6.048 11.755 6.015 11.621L5.61 10L2.39 10L1.985 11.621C1.952 11.755 1.876 11.858 1.757 11.929C1.639 12 1.513 12.019 1.379 11.985C1.242 11.951 1.139 11.875 1.069 11.759C0.999 11.642 0.981 11.515 1.015 11.379L3.015 3.379ZM9.144 3.144C9.241 3.048 9.359 3 9.5 3L11 3C11.254 3 11.5 3.047 11.736 3.14C11.993 3.242 12.219 3.391 12.414 3.586C12.609 3.781 12.758 4.007 12.86 4.264C12.953 4.5 13 4.746 13 5L13 6C13 6.254 12.953 6.5 12.86 6.736C12.807 6.87 12.741 6.996 12.662 7.113C12.687 7.122 12.712 7.131 12.736 7.14C12.993 7.242 13.219 7.391 13.414 7.586C13.609 7.781 13.758 8.007 13.86 8.264C13.953 8.5 14 8.746 14 9L14 10C14 10.254 13.953 10.5 13.86 10.736C13.758 10.993 13.609 11.219 13.414 11.414C13.219 11.609 12.993 11.758 12.736 11.86C12.5 11.953 12.254 12 12 12L9.5 12C9.359 12 9.241 11.952 9.144 11.856C9.048 11.759 9 11.641 9 11.5L9 8C9 7.911 9.022 7.827 9.067 7.75C9.022 7.673 9 7.589 9 7.5L9 3.5C9 3.359 9.048 3.241 9.144 3.144ZM4.11 4L3.89 4L2.64 9L5.36 9L4.11 4ZM11 7C11.276 7 11.512 6.902 11.707 6.707C11.902 6.512 12 6.276 12 6L12 5C12 4.724 11.902 4.488 11.707 4.293C11.512 4.098 11.276 4 11 4L10 4L10 7L10.5 7C10.589 7 10.673 7.022 10.75 7.067C10.827 7.022 10.911 7 11 7ZM10.5 8L10 8L10 11L12 11C12.276 11 12.512 10.902 12.707 10.707C12.902 10.512 13 10.276 13 10L13 9C13 8.724 12.902 8.488 12.707 8.293C12.512 8.098 12.276 8 12 8L11 8C10.911 8 10.827 7.978 10.75 7.933C10.673 7.978 10.589 8 10.5 8Z"/></svg>
```

### React

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

export function CaseUpperIcon(props: SVGProps<SVGSVGElement>) {
  return (
    <svg xmlns="http://www.w3.org/2000/svg" width={16} height={16} viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" {...props}>
      <path d="M3.015 3.379C3.043 3.266 3.102 3.175 3.191 3.105C3.281 3.035 3.384 3 3.5 3L4.5 3C4.616 3 4.719 3.035 4.809 3.105C4.898 3.175 4.957 3.266 4.985 3.379L6.985 11.379C7.019 11.513 7 11.639 6.929 11.757C6.858 11.876 6.755 11.952 6.621 11.985C6.487 12.019 6.361 12 6.243 11.929C6.124 11.858 6.048 11.755 6.015 11.621L5.61 10L2.39 10L1.985 11.621C1.952 11.755 1.876 11.858 1.757 11.929C1.639 12 1.513 12.019 1.379 11.985C1.242 11.951 1.139 11.875 1.069 11.759C0.999 11.642 0.981 11.515 1.015 11.379L3.015 3.379ZM9.144 3.144C9.241 3.048 9.359 3 9.5 3L11 3C11.254 3 11.5 3.047 11.736 3.14C11.993 3.242 12.219 3.391 12.414 3.586C12.609 3.781 12.758 4.007 12.86 4.264C12.953 4.5 13 4.746 13 5L13 6C13 6.254 12.953 6.5 12.86 6.736C12.807 6.87 12.741 6.996 12.662 7.113C12.687 7.122 12.712 7.131 12.736 7.14C12.993 7.242 13.219 7.391 13.414 7.586C13.609 7.781 13.758 8.007 13.86 8.264C13.953 8.5 14 8.746 14 9L14 10C14 10.254 13.953 10.5 13.86 10.736C13.758 10.993 13.609 11.219 13.414 11.414C13.219 11.609 12.993 11.758 12.736 11.86C12.5 11.953 12.254 12 12 12L9.5 12C9.359 12 9.241 11.952 9.144 11.856C9.048 11.759 9 11.641 9 11.5L9 8C9 7.911 9.022 7.827 9.067 7.75C9.022 7.673 9 7.589 9 7.5L9 3.5C9 3.359 9.048 3.241 9.144 3.144ZM4.11 4L3.89 4L2.64 9L5.36 9L4.11 4ZM11 7C11.276 7 11.512 6.902 11.707 6.707C11.902 6.512 12 6.276 12 6L12 5C12 4.724 11.902 4.488 11.707 4.293C11.512 4.098 11.276 4 11 4L10 4L10 7L10.5 7C10.589 7 10.673 7.022 10.75 7.067C10.827 7.022 10.911 7 11 7ZM10.5 8L10 8L10 11L12 11C12.276 11 12.512 10.902 12.707 10.707C12.902 10.512 13 10.276 13 10L13 9C13 8.724 12.902 8.488 12.707 8.293C12.512 8.098 12.276 8 12 8L11 8C10.911 8 10.827 7.978 10.75 7.933C10.673 7.978 10.589 8 10.5 8Z" />
    </svg>
  );
}
```

### Vue

```vue
<!-- Gentleface "case-upper" (line-round), MIT. https://gentleface.com/icons/case-upper -->
<template>
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true">
    <path d="M3.015 3.379C3.043 3.266 3.102 3.175 3.191 3.105C3.281 3.035 3.384 3 3.5 3L4.5 3C4.616 3 4.719 3.035 4.809 3.105C4.898 3.175 4.957 3.266 4.985 3.379L6.985 11.379C7.019 11.513 7 11.639 6.929 11.757C6.858 11.876 6.755 11.952 6.621 11.985C6.487 12.019 6.361 12 6.243 11.929C6.124 11.858 6.048 11.755 6.015 11.621L5.61 10L2.39 10L1.985 11.621C1.952 11.755 1.876 11.858 1.757 11.929C1.639 12 1.513 12.019 1.379 11.985C1.242 11.951 1.139 11.875 1.069 11.759C0.999 11.642 0.981 11.515 1.015 11.379L3.015 3.379ZM9.144 3.144C9.241 3.048 9.359 3 9.5 3L11 3C11.254 3 11.5 3.047 11.736 3.14C11.993 3.242 12.219 3.391 12.414 3.586C12.609 3.781 12.758 4.007 12.86 4.264C12.953 4.5 13 4.746 13 5L13 6C13 6.254 12.953 6.5 12.86 6.736C12.807 6.87 12.741 6.996 12.662 7.113C12.687 7.122 12.712 7.131 12.736 7.14C12.993 7.242 13.219 7.391 13.414 7.586C13.609 7.781 13.758 8.007 13.86 8.264C13.953 8.5 14 8.746 14 9L14 10C14 10.254 13.953 10.5 13.86 10.736C13.758 10.993 13.609 11.219 13.414 11.414C13.219 11.609 12.993 11.758 12.736 11.86C12.5 11.953 12.254 12 12 12L9.5 12C9.359 12 9.241 11.952 9.144 11.856C9.048 11.759 9 11.641 9 11.5L9 8C9 7.911 9.022 7.827 9.067 7.75C9.022 7.673 9 7.589 9 7.5L9 3.5C9 3.359 9.048 3.241 9.144 3.144ZM4.11 4L3.89 4L2.64 9L5.36 9L4.11 4ZM11 7C11.276 7 11.512 6.902 11.707 6.707C11.902 6.512 12 6.276 12 6L12 5C12 4.724 11.902 4.488 11.707 4.293C11.512 4.098 11.276 4 11 4L10 4L10 7L10.5 7C10.589 7 10.673 7.022 10.75 7.067C10.827 7.022 10.911 7 11 7ZM10.5 8L10 8L10 11L12 11C12.276 11 12.512 10.902 12.707 10.707C12.902 10.512 13 10.276 13 10L13 9C13 8.724 12.902 8.488 12.707 8.293C12.512 8.098 12.276 8 12 8L11 8C10.911 8 10.827 7.978 10.75 7.933C10.673 7.978 10.589 8 10.5 8Z" />
  </svg>
</template>
```

### Svelte

```svelte
<!-- Gentleface "case-upper" (line-round), MIT. https://gentleface.com/icons/case-upper -->
<script>
  let props = $props();
</script>

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" {...props}>
  <path d="M3.015 3.379C3.043 3.266 3.102 3.175 3.191 3.105C3.281 3.035 3.384 3 3.5 3L4.5 3C4.616 3 4.719 3.035 4.809 3.105C4.898 3.175 4.957 3.266 4.985 3.379L6.985 11.379C7.019 11.513 7 11.639 6.929 11.757C6.858 11.876 6.755 11.952 6.621 11.985C6.487 12.019 6.361 12 6.243 11.929C6.124 11.858 6.048 11.755 6.015 11.621L5.61 10L2.39 10L1.985 11.621C1.952 11.755 1.876 11.858 1.757 11.929C1.639 12 1.513 12.019 1.379 11.985C1.242 11.951 1.139 11.875 1.069 11.759C0.999 11.642 0.981 11.515 1.015 11.379L3.015 3.379ZM9.144 3.144C9.241 3.048 9.359 3 9.5 3L11 3C11.254 3 11.5 3.047 11.736 3.14C11.993 3.242 12.219 3.391 12.414 3.586C12.609 3.781 12.758 4.007 12.86 4.264C12.953 4.5 13 4.746 13 5L13 6C13 6.254 12.953 6.5 12.86 6.736C12.807 6.87 12.741 6.996 12.662 7.113C12.687 7.122 12.712 7.131 12.736 7.14C12.993 7.242 13.219 7.391 13.414 7.586C13.609 7.781 13.758 8.007 13.86 8.264C13.953 8.5 14 8.746 14 9L14 10C14 10.254 13.953 10.5 13.86 10.736C13.758 10.993 13.609 11.219 13.414 11.414C13.219 11.609 12.993 11.758 12.736 11.86C12.5 11.953 12.254 12 12 12L9.5 12C9.359 12 9.241 11.952 9.144 11.856C9.048 11.759 9 11.641 9 11.5L9 8C9 7.911 9.022 7.827 9.067 7.75C9.022 7.673 9 7.589 9 7.5L9 3.5C9 3.359 9.048 3.241 9.144 3.144ZM4.11 4L3.89 4L2.64 9L5.36 9L4.11 4ZM11 7C11.276 7 11.512 6.902 11.707 6.707C11.902 6.512 12 6.276 12 6L12 5C12 4.724 11.902 4.488 11.707 4.293C11.512 4.098 11.276 4 11 4L10 4L10 7L10.5 7C10.589 7 10.673 7.022 10.75 7.067C10.827 7.022 10.911 7 11 7ZM10.5 8L10 8L10 11L12 11C12.276 11 12.512 10.902 12.707 10.707C12.902 10.512 13 10.276 13 10L13 9C13 8.724 12.902 8.488 12.707 8.293C12.512 8.098 12.276 8 12 8L11 8C10.911 8 10.827 7.978 10.75 7.933C10.673 7.978 10.589 8 10.5 8Z" />
</svg>
```

### HTML img

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

### CSS

```css
/* Gentleface "case-upper" (line-round), MIT. https://gentleface.com/icons/case-upper. Takes the text color. */
.icon-case-upper {
  display: inline-block;
  width: 16px;
  height: 16px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M3.015 3.379C3.043 3.266 3.102 3.175 3.191 3.105C3.281 3.035 3.384 3 3.5 3L4.5 3C4.616 3 4.719 3.035 4.809 3.105C4.898 3.175 4.957 3.266 4.985 3.379L6.985 11.379C7.019 11.513 7 11.639 6.929 11.757C6.858 11.876 6.755 11.952 6.621 11.985C6.487 12.019 6.361 12 6.243 11.929C6.124 11.858 6.048 11.755 6.015 11.621L5.61 10L2.39 10L1.985 11.621C1.952 11.755 1.876 11.858 1.757 11.929C1.639 12 1.513 12.019 1.379 11.985C1.242 11.951 1.139 11.875 1.069 11.759C0.999 11.642 0.981 11.515 1.015 11.379L3.015 3.379ZM9.144 3.144C9.241 3.048 9.359 3 9.5 3L11 3C11.254 3 11.5 3.047 11.736 3.14C11.993 3.242 12.219 3.391 12.414 3.586C12.609 3.781 12.758 4.007 12.86 4.264C12.953 4.5 13 4.746 13 5L13 6C13 6.254 12.953 6.5 12.86 6.736C12.807 6.87 12.741 6.996 12.662 7.113C12.687 7.122 12.712 7.131 12.736 7.14C12.993 7.242 13.219 7.391 13.414 7.586C13.609 7.781 13.758 8.007 13.86 8.264C13.953 8.5 14 8.746 14 9L14 10C14 10.254 13.953 10.5 13.86 10.736C13.758 10.993 13.609 11.219 13.414 11.414C13.219 11.609 12.993 11.758 12.736 11.86C12.5 11.953 12.254 12 12 12L9.5 12C9.359 12 9.241 11.952 9.144 11.856C9.048 11.759 9 11.641 9 11.5L9 8C9 7.911 9.022 7.827 9.067 7.75C9.022 7.673 9 7.589 9 7.5L9 3.5C9 3.359 9.048 3.241 9.144 3.144ZM4.11 4L3.89 4L2.64 9L5.36 9L4.11 4ZM11 7C11.276 7 11.512 6.902 11.707 6.707C11.902 6.512 12 6.276 12 6L12 5C12 4.724 11.902 4.488 11.707 4.293C11.512 4.098 11.276 4 11 4L10 4L10 7L10.5 7C10.589 7 10.673 7.022 10.75 7.067C10.827 7.022 10.911 7 11 7ZM10.5 8L10 8L10 11L12 11C12.276 11 12.512 10.902 12.707 10.707C12.902 10.512 13 10.276 13 10L13 9C13 8.724 12.902 8.488 12.707 8.293C12.512 8.098 12.276 8 12 8L11 8C10.911 8 10.827 7.978 10.75 7.933C10.673 7.978 10.589 8 10.5 8Z'/%3E%3C/svg%3E") center / 16px 16px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M3.015 3.379C3.043 3.266 3.102 3.175 3.191 3.105C3.281 3.035 3.384 3 3.5 3L4.5 3C4.616 3 4.719 3.035 4.809 3.105C4.898 3.175 4.957 3.266 4.985 3.379L6.985 11.379C7.019 11.513 7 11.639 6.929 11.757C6.858 11.876 6.755 11.952 6.621 11.985C6.487 12.019 6.361 12 6.243 11.929C6.124 11.858 6.048 11.755 6.015 11.621L5.61 10L2.39 10L1.985 11.621C1.952 11.755 1.876 11.858 1.757 11.929C1.639 12 1.513 12.019 1.379 11.985C1.242 11.951 1.139 11.875 1.069 11.759C0.999 11.642 0.981 11.515 1.015 11.379L3.015 3.379ZM9.144 3.144C9.241 3.048 9.359 3 9.5 3L11 3C11.254 3 11.5 3.047 11.736 3.14C11.993 3.242 12.219 3.391 12.414 3.586C12.609 3.781 12.758 4.007 12.86 4.264C12.953 4.5 13 4.746 13 5L13 6C13 6.254 12.953 6.5 12.86 6.736C12.807 6.87 12.741 6.996 12.662 7.113C12.687 7.122 12.712 7.131 12.736 7.14C12.993 7.242 13.219 7.391 13.414 7.586C13.609 7.781 13.758 8.007 13.86 8.264C13.953 8.5 14 8.746 14 9L14 10C14 10.254 13.953 10.5 13.86 10.736C13.758 10.993 13.609 11.219 13.414 11.414C13.219 11.609 12.993 11.758 12.736 11.86C12.5 11.953 12.254 12 12 12L9.5 12C9.359 12 9.241 11.952 9.144 11.856C9.048 11.759 9 11.641 9 11.5L9 8C9 7.911 9.022 7.827 9.067 7.75C9.022 7.673 9 7.589 9 7.5L9 3.5C9 3.359 9.048 3.241 9.144 3.144ZM4.11 4L3.89 4L2.64 9L5.36 9L4.11 4ZM11 7C11.276 7 11.512 6.902 11.707 6.707C11.902 6.512 12 6.276 12 6L12 5C12 4.724 11.902 4.488 11.707 4.293C11.512 4.098 11.276 4 11 4L10 4L10 7L10.5 7C10.589 7 10.673 7.022 10.75 7.067C10.827 7.022 10.911 7 11 7ZM10.5 8L10 8L10 11L12 11C12.276 11 12.512 10.902 12.707 10.707C12.902 10.512 13 10.276 13 10L13 9C13 8.724 12.902 8.488 12.707 8.293C12.512 8.098 12.276 8 12 8L11 8C10.911 8 10.827 7.978 10.75 7.933C10.673 7.978 10.589 8 10.5 8Z'/%3E%3C/svg%3E") center / 16px 16px no-repeat;
}
```

### Data URL

```text
data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M3.015 3.379C3.043 3.266 3.102 3.175 3.191 3.105C3.281 3.035 3.384 3 3.5 3L4.5 3C4.616 3 4.719 3.035 4.809 3.105C4.898 3.175 4.957 3.266 4.985 3.379L6.985 11.379C7.019 11.513 7 11.639 6.929 11.757C6.858 11.876 6.755 11.952 6.621 11.985C6.487 12.019 6.361 12 6.243 11.929C6.124 11.858 6.048 11.755 6.015 11.621L5.61 10L2.39 10L1.985 11.621C1.952 11.755 1.876 11.858 1.757 11.929C1.639 12 1.513 12.019 1.379 11.985C1.242 11.951 1.139 11.875 1.069 11.759C0.999 11.642 0.981 11.515 1.015 11.379L3.015 3.379ZM9.144 3.144C9.241 3.048 9.359 3 9.5 3L11 3C11.254 3 11.5 3.047 11.736 3.14C11.993 3.242 12.219 3.391 12.414 3.586C12.609 3.781 12.758 4.007 12.86 4.264C12.953 4.5 13 4.746 13 5L13 6C13 6.254 12.953 6.5 12.86 6.736C12.807 6.87 12.741 6.996 12.662 7.113C12.687 7.122 12.712 7.131 12.736 7.14C12.993 7.242 13.219 7.391 13.414 7.586C13.609 7.781 13.758 8.007 13.86 8.264C13.953 8.5 14 8.746 14 9L14 10C14 10.254 13.953 10.5 13.86 10.736C13.758 10.993 13.609 11.219 13.414 11.414C13.219 11.609 12.993 11.758 12.736 11.86C12.5 11.953 12.254 12 12 12L9.5 12C9.359 12 9.241 11.952 9.144 11.856C9.048 11.759 9 11.641 9 11.5L9 8C9 7.911 9.022 7.827 9.067 7.75C9.022 7.673 9 7.589 9 7.5L9 3.5C9 3.359 9.048 3.241 9.144 3.144ZM4.11 4L3.89 4L2.64 9L5.36 9L4.11 4ZM11 7C11.276 7 11.512 6.902 11.707 6.707C11.902 6.512 12 6.276 12 6L12 5C12 4.724 11.902 4.488 11.707 4.293C11.512 4.098 11.276 4 11 4L10 4L10 7L10.5 7C10.589 7 10.673 7.022 10.75 7.067C10.827 7.022 10.911 7 11 7ZM10.5 8L10 8L10 11L12 11C12.276 11 12.512 10.902 12.707 10.707C12.902 10.512 13 10.276 13 10L13 9C13 8.724 12.902 8.488 12.707 8.293C12.512 8.098 12.276 8 12 8L11 8C10.911 8 10.827 7.978 10.75 7.933C10.673 7.978 10.589 8 10.5 8Z'/%3E%3C/svg%3E
```

### Sprite

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

### SwiftUI

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

struct CaseUpperIcon: Shape {
    func path(in rect: CGRect) -> Path {
        var p = Path()
        p.move(to: CGPoint(x: 3.015, y: 3.379))
        p.addCurve(to: CGPoint(x: 3.191, y: 3.105), control1: CGPoint(x: 3.043, y: 3.266), control2: CGPoint(x: 3.102, y: 3.175))
        p.addCurve(to: CGPoint(x: 3.5, y: 3), control1: CGPoint(x: 3.281, y: 3.035), control2: CGPoint(x: 3.384, y: 3))
        p.addLine(to: CGPoint(x: 4.5, y: 3))
        p.addCurve(to: CGPoint(x: 4.809, y: 3.105), control1: CGPoint(x: 4.616, y: 3), control2: CGPoint(x: 4.719, y: 3.035))
        p.addCurve(to: CGPoint(x: 4.985, y: 3.379), control1: CGPoint(x: 4.898, y: 3.175), control2: CGPoint(x: 4.957, y: 3.266))
        p.addLine(to: CGPoint(x: 6.985, y: 11.379))
        p.addCurve(to: CGPoint(x: 6.929, y: 11.757), control1: CGPoint(x: 7.019, y: 11.513), control2: CGPoint(x: 7, y: 11.639))
        p.addCurve(to: CGPoint(x: 6.621, y: 11.985), control1: CGPoint(x: 6.858, y: 11.876), control2: CGPoint(x: 6.755, y: 11.952))
        p.addCurve(to: CGPoint(x: 6.243, y: 11.929), control1: CGPoint(x: 6.487, y: 12.019), control2: CGPoint(x: 6.361, y: 12))
        p.addCurve(to: CGPoint(x: 6.015, y: 11.621), control1: CGPoint(x: 6.124, y: 11.858), control2: CGPoint(x: 6.048, y: 11.755))
        p.addLine(to: CGPoint(x: 5.61, y: 10))
        p.addLine(to: CGPoint(x: 2.39, y: 10))
        p.addLine(to: CGPoint(x: 1.985, y: 11.621))
        p.addCurve(to: CGPoint(x: 1.757, y: 11.929), control1: CGPoint(x: 1.952, y: 11.755), control2: CGPoint(x: 1.876, y: 11.858))
        p.addCurve(to: CGPoint(x: 1.379, y: 11.985), control1: CGPoint(x: 1.639, y: 12), control2: CGPoint(x: 1.513, y: 12.019))
        p.addCurve(to: CGPoint(x: 1.069, y: 11.759), control1: CGPoint(x: 1.242, y: 11.951), control2: CGPoint(x: 1.139, y: 11.875))
        p.addCurve(to: CGPoint(x: 1.015, y: 11.379), control1: CGPoint(x: 0.999, y: 11.642), control2: CGPoint(x: 0.981, y: 11.515))
        p.addLine(to: CGPoint(x: 3.015, y: 3.379))
        p.closeSubpath()
        p.move(to: CGPoint(x: 9.144, y: 3.144))
        p.addCurve(to: CGPoint(x: 9.5, y: 3), control1: CGPoint(x: 9.241, y: 3.048), control2: CGPoint(x: 9.359, y: 3))
        p.addLine(to: CGPoint(x: 11, y: 3))
        p.addCurve(to: CGPoint(x: 11.736, y: 3.14), control1: CGPoint(x: 11.254, y: 3), control2: CGPoint(x: 11.5, y: 3.047))
        p.addCurve(to: CGPoint(x: 12.414, y: 3.586), control1: CGPoint(x: 11.993, y: 3.242), control2: CGPoint(x: 12.219, y: 3.391))
        p.addCurve(to: CGPoint(x: 12.86, y: 4.264), control1: CGPoint(x: 12.609, y: 3.781), control2: CGPoint(x: 12.758, y: 4.007))
        p.addCurve(to: CGPoint(x: 13, y: 5), control1: CGPoint(x: 12.953, y: 4.5), control2: CGPoint(x: 13, y: 4.746))
        p.addLine(to: CGPoint(x: 13, y: 6))
        p.addCurve(to: CGPoint(x: 12.86, y: 6.736), control1: CGPoint(x: 13, y: 6.254), control2: CGPoint(x: 12.953, y: 6.5))
        p.addCurve(to: CGPoint(x: 12.662, y: 7.113), control1: CGPoint(x: 12.807, y: 6.87), control2: CGPoint(x: 12.741, y: 6.996))
        p.addCurve(to: CGPoint(x: 12.736, y: 7.14), control1: CGPoint(x: 12.687, y: 7.122), control2: CGPoint(x: 12.712, y: 7.131))
        p.addCurve(to: CGPoint(x: 13.414, y: 7.586), control1: CGPoint(x: 12.993, y: 7.242), control2: CGPoint(x: 13.219, y: 7.391))
        p.addCurve(to: CGPoint(x: 13.86, y: 8.264), control1: CGPoint(x: 13.609, y: 7.781), control2: CGPoint(x: 13.758, y: 8.007))
        p.addCurve(to: CGPoint(x: 14, y: 9), control1: CGPoint(x: 13.953, y: 8.5), control2: CGPoint(x: 14, y: 8.746))
        p.addLine(to: CGPoint(x: 14, y: 10))
        p.addCurve(to: CGPoint(x: 13.86, y: 10.736), control1: CGPoint(x: 14, y: 10.254), control2: CGPoint(x: 13.953, y: 10.5))
        p.addCurve(to: CGPoint(x: 13.414, y: 11.414), control1: CGPoint(x: 13.758, y: 10.993), control2: CGPoint(x: 13.609, y: 11.219))
        p.addCurve(to: CGPoint(x: 12.736, y: 11.86), control1: CGPoint(x: 13.219, y: 11.609), control2: CGPoint(x: 12.993, y: 11.758))
        p.addCurve(to: CGPoint(x: 12, y: 12), control1: CGPoint(x: 12.5, y: 11.953), control2: CGPoint(x: 12.254, y: 12))
        p.addLine(to: CGPoint(x: 9.5, y: 12))
        p.addCurve(to: CGPoint(x: 9.144, y: 11.856), control1: CGPoint(x: 9.359, y: 12), control2: CGPoint(x: 9.241, y: 11.952))
        p.addCurve(to: CGPoint(x: 9, y: 11.5), control1: CGPoint(x: 9.048, y: 11.759), control2: CGPoint(x: 9, y: 11.641))
        p.addLine(to: CGPoint(x: 9, y: 8))
        p.addCurve(to: CGPoint(x: 9.067, y: 7.75), control1: CGPoint(x: 9, y: 7.911), control2: CGPoint(x: 9.022, y: 7.827))
        p.addCurve(to: CGPoint(x: 9, y: 7.5), control1: CGPoint(x: 9.022, y: 7.673), control2: CGPoint(x: 9, y: 7.589))
        p.addLine(to: CGPoint(x: 9, y: 3.5))
        p.addCurve(to: CGPoint(x: 9.144, y: 3.144), control1: CGPoint(x: 9, y: 3.359), control2: CGPoint(x: 9.048, y: 3.241))
        p.closeSubpath()
        p.move(to: CGPoint(x: 4.11, y: 4))
        p.addLine(to: CGPoint(x: 3.89, y: 4))
        p.addLine(to: CGPoint(x: 2.64, y: 9))
        p.addLine(to: CGPoint(x: 5.36, y: 9))
        p.addLine(to: CGPoint(x: 4.11, y: 4))
        p.closeSubpath()
        p.move(to: CGPoint(x: 11, y: 7))
        p.addCurve(to: CGPoint(x: 11.707, y: 6.707), control1: CGPoint(x: 11.276, y: 7), control2: CGPoint(x: 11.512, y: 6.902))
        p.addCurve(to: CGPoint(x: 12, y: 6), control1: CGPoint(x: 11.902, y: 6.512), control2: CGPoint(x: 12, y: 6.276))
        p.addLine(to: CGPoint(x: 12, y: 5))
        p.addCurve(to: CGPoint(x: 11.707, y: 4.293), control1: CGPoint(x: 12, y: 4.724), control2: CGPoint(x: 11.902, y: 4.488))
        p.addCurve(to: CGPoint(x: 11, y: 4), control1: CGPoint(x: 11.512, y: 4.098), control2: CGPoint(x: 11.276, y: 4))
        p.addLine(to: CGPoint(x: 10, y: 4))
        p.addLine(to: CGPoint(x: 10, y: 7))
        p.addLine(to: CGPoint(x: 10.5, y: 7))
        p.addCurve(to: CGPoint(x: 10.75, y: 7.067), control1: CGPoint(x: 10.589, y: 7), control2: CGPoint(x: 10.673, y: 7.022))
        p.addCurve(to: CGPoint(x: 11, y: 7), control1: CGPoint(x: 10.827, y: 7.022), control2: CGPoint(x: 10.911, y: 7))
        p.closeSubpath()
        p.move(to: CGPoint(x: 10.5, y: 8))
        p.addLine(to: CGPoint(x: 10, y: 8))
        p.addLine(to: CGPoint(x: 10, y: 11))
        p.addLine(to: CGPoint(x: 12, y: 11))
        p.addCurve(to: CGPoint(x: 12.707, y: 10.707), control1: CGPoint(x: 12.276, y: 11), control2: CGPoint(x: 12.512, y: 10.902))
        p.addCurve(to: CGPoint(x: 13, y: 10), control1: CGPoint(x: 12.902, y: 10.512), control2: CGPoint(x: 13, y: 10.276))
        p.addLine(to: CGPoint(x: 13, y: 9))
        p.addCurve(to: CGPoint(x: 12.707, y: 8.293), control1: CGPoint(x: 13, y: 8.724), control2: CGPoint(x: 12.902, y: 8.488))
        p.addCurve(to: CGPoint(x: 12, y: 8), control1: CGPoint(x: 12.512, y: 8.098), control2: CGPoint(x: 12.276, y: 8))
        p.addLine(to: CGPoint(x: 11, y: 8))
        p.addCurve(to: CGPoint(x: 10.75, y: 7.933), control1: CGPoint(x: 10.911, y: 8), control2: CGPoint(x: 10.827, y: 7.978))
        p.addCurve(to: CGPoint(x: 10.5, y: 8), control1: CGPoint(x: 10.673, y: 7.978), control2: CGPoint(x: 10.589, y: 8))
        p.closeSubpath()
        return p.applying(CGAffineTransform(scaleX: rect.width / 16, y: rect.height / 16))
    }
}

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

### Compose

```kotlin
// Gentleface "case-upper" (line-round), MIT. https://gentleface.com/icons/case-upper
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 CaseUpperIcon: ImageVector by lazy {
    ImageVector.Builder(
        name = "case-upper", defaultWidth = 16.dp, defaultHeight = 16.dp,
        viewportWidth = 16f, viewportHeight = 16f,
    ).addPath(
        pathData = addPathNodes("M3.015 3.379C3.043 3.266 3.102 3.175 3.191 3.105C3.281 3.035 3.384 3 3.5 3L4.5 3C4.616 3 4.719 3.035 4.809 3.105C4.898 3.175 4.957 3.266 4.985 3.379L6.985 11.379C7.019 11.513 7 11.639 6.929 11.757C6.858 11.876 6.755 11.952 6.621 11.985C6.487 12.019 6.361 12 6.243 11.929C6.124 11.858 6.048 11.755 6.015 11.621L5.61 10L2.39 10L1.985 11.621C1.952 11.755 1.876 11.858 1.757 11.929C1.639 12 1.513 12.019 1.379 11.985C1.242 11.951 1.139 11.875 1.069 11.759C0.999 11.642 0.981 11.515 1.015 11.379L3.015 3.379ZM9.144 3.144C9.241 3.048 9.359 3 9.5 3L11 3C11.254 3 11.5 3.047 11.736 3.14C11.993 3.242 12.219 3.391 12.414 3.586C12.609 3.781 12.758 4.007 12.86 4.264C12.953 4.5 13 4.746 13 5L13 6C13 6.254 12.953 6.5 12.86 6.736C12.807 6.87 12.741 6.996 12.662 7.113C12.687 7.122 12.712 7.131 12.736 7.14C12.993 7.242 13.219 7.391 13.414 7.586C13.609 7.781 13.758 8.007 13.86 8.264C13.953 8.5 14 8.746 14 9L14 10C14 10.254 13.953 10.5 13.86 10.736C13.758 10.993 13.609 11.219 13.414 11.414C13.219 11.609 12.993 11.758 12.736 11.86C12.5 11.953 12.254 12 12 12L9.5 12C9.359 12 9.241 11.952 9.144 11.856C9.048 11.759 9 11.641 9 11.5L9 8C9 7.911 9.022 7.827 9.067 7.75C9.022 7.673 9 7.589 9 7.5L9 3.5C9 3.359 9.048 3.241 9.144 3.144ZM4.11 4L3.89 4L2.64 9L5.36 9L4.11 4ZM11 7C11.276 7 11.512 6.902 11.707 6.707C11.902 6.512 12 6.276 12 6L12 5C12 4.724 11.902 4.488 11.707 4.293C11.512 4.098 11.276 4 11 4L10 4L10 7L10.5 7C10.589 7 10.673 7.022 10.75 7.067C10.827 7.022 10.911 7 11 7ZM10.5 8L10 8L10 11L12 11C12.276 11 12.512 10.902 12.707 10.707C12.902 10.512 13 10.276 13 10L13 9C13 8.724 12.902 8.488 12.707 8.293C12.512 8.098 12.276 8 12 8L11 8C10.911 8 10.827 7.978 10.75 7.933C10.673 7.978 10.589 8 10.5 8Z"),
        fill = SolidColor(Color.Black),
    ).build()
}

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

### Android XML

```xml
<!-- res/drawable/ic_case_upper.xml · Gentleface "case-upper" (line-round), MIT. https://gentleface.com/icons/case-upper -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="16dp"
    android:height="16dp"
    android:viewportWidth="16"
    android:viewportHeight="16"
    android:tint="?attr/colorControlNormal">
  <path
      android:fillColor="@android:color/white"
      android:pathData="M3.015 3.379C3.043 3.266 3.102 3.175 3.191 3.105C3.281 3.035 3.384 3 3.5 3L4.5 3C4.616 3 4.719 3.035 4.809 3.105C4.898 3.175 4.957 3.266 4.985 3.379L6.985 11.379C7.019 11.513 7 11.639 6.929 11.757C6.858 11.876 6.755 11.952 6.621 11.985C6.487 12.019 6.361 12 6.243 11.929C6.124 11.858 6.048 11.755 6.015 11.621L5.61 10L2.39 10L1.985 11.621C1.952 11.755 1.876 11.858 1.757 11.929C1.639 12 1.513 12.019 1.379 11.985C1.242 11.951 1.139 11.875 1.069 11.759C0.999 11.642 0.981 11.515 1.015 11.379L3.015 3.379ZM9.144 3.144C9.241 3.048 9.359 3 9.5 3L11 3C11.254 3 11.5 3.047 11.736 3.14C11.993 3.242 12.219 3.391 12.414 3.586C12.609 3.781 12.758 4.007 12.86 4.264C12.953 4.5 13 4.746 13 5L13 6C13 6.254 12.953 6.5 12.86 6.736C12.807 6.87 12.741 6.996 12.662 7.113C12.687 7.122 12.712 7.131 12.736 7.14C12.993 7.242 13.219 7.391 13.414 7.586C13.609 7.781 13.758 8.007 13.86 8.264C13.953 8.5 14 8.746 14 9L14 10C14 10.254 13.953 10.5 13.86 10.736C13.758 10.993 13.609 11.219 13.414 11.414C13.219 11.609 12.993 11.758 12.736 11.86C12.5 11.953 12.254 12 12 12L9.5 12C9.359 12 9.241 11.952 9.144 11.856C9.048 11.759 9 11.641 9 11.5L9 8C9 7.911 9.022 7.827 9.067 7.75C9.022 7.673 9 7.589 9 7.5L9 3.5C9 3.359 9.048 3.241 9.144 3.144ZM4.11 4L3.89 4L2.64 9L5.36 9L4.11 4ZM11 7C11.276 7 11.512 6.902 11.707 6.707C11.902 6.512 12 6.276 12 6L12 5C12 4.724 11.902 4.488 11.707 4.293C11.512 4.098 11.276 4 11 4L10 4L10 7L10.5 7C10.589 7 10.673 7.022 10.75 7.067C10.827 7.022 10.911 7 11 7ZM10.5 8L10 8L10 11L12 11C12.276 11 12.512 10.902 12.707 10.707C12.902 10.512 13 10.276 13 10L13 9C13 8.724 12.902 8.488 12.707 8.293C12.512 8.098 12.276 8 12 8L11 8C10.911 8 10.827 7.978 10.75 7.933C10.673 7.978 10.589 8 10.5 8Z"/>
</vector>
```

### Flutter

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

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

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

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

  @override
  void paint(Canvas canvas, Size size) {
    canvas.scale(size.width / 16, size.height / 16);
    final p = Path()
      ..moveTo(3.015, 3.379)
      ..cubicTo(3.043, 3.266, 3.102, 3.175, 3.191, 3.105)
      ..cubicTo(3.281, 3.035, 3.384, 3, 3.5, 3)
      ..lineTo(4.5, 3)
      ..cubicTo(4.616, 3, 4.719, 3.035, 4.809, 3.105)
      ..cubicTo(4.898, 3.175, 4.957, 3.266, 4.985, 3.379)
      ..lineTo(6.985, 11.379)
      ..cubicTo(7.019, 11.513, 7, 11.639, 6.929, 11.757)
      ..cubicTo(6.858, 11.876, 6.755, 11.952, 6.621, 11.985)
      ..cubicTo(6.487, 12.019, 6.361, 12, 6.243, 11.929)
      ..cubicTo(6.124, 11.858, 6.048, 11.755, 6.015, 11.621)
      ..lineTo(5.61, 10)
      ..lineTo(2.39, 10)
      ..lineTo(1.985, 11.621)
      ..cubicTo(1.952, 11.755, 1.876, 11.858, 1.757, 11.929)
      ..cubicTo(1.639, 12, 1.513, 12.019, 1.379, 11.985)
      ..cubicTo(1.242, 11.951, 1.139, 11.875, 1.069, 11.759)
      ..cubicTo(0.999, 11.642, 0.981, 11.515, 1.015, 11.379)
      ..lineTo(3.015, 3.379)
      ..close()
      ..moveTo(9.144, 3.144)
      ..cubicTo(9.241, 3.048, 9.359, 3, 9.5, 3)
      ..lineTo(11, 3)
      ..cubicTo(11.254, 3, 11.5, 3.047, 11.736, 3.14)
      ..cubicTo(11.993, 3.242, 12.219, 3.391, 12.414, 3.586)
      ..cubicTo(12.609, 3.781, 12.758, 4.007, 12.86, 4.264)
      ..cubicTo(12.953, 4.5, 13, 4.746, 13, 5)
      ..lineTo(13, 6)
      ..cubicTo(13, 6.254, 12.953, 6.5, 12.86, 6.736)
      ..cubicTo(12.807, 6.87, 12.741, 6.996, 12.662, 7.113)
      ..cubicTo(12.687, 7.122, 12.712, 7.131, 12.736, 7.14)
      ..cubicTo(12.993, 7.242, 13.219, 7.391, 13.414, 7.586)
      ..cubicTo(13.609, 7.781, 13.758, 8.007, 13.86, 8.264)
      ..cubicTo(13.953, 8.5, 14, 8.746, 14, 9)
      ..lineTo(14, 10)
      ..cubicTo(14, 10.254, 13.953, 10.5, 13.86, 10.736)
      ..cubicTo(13.758, 10.993, 13.609, 11.219, 13.414, 11.414)
      ..cubicTo(13.219, 11.609, 12.993, 11.758, 12.736, 11.86)
      ..cubicTo(12.5, 11.953, 12.254, 12, 12, 12)
      ..lineTo(9.5, 12)
      ..cubicTo(9.359, 12, 9.241, 11.952, 9.144, 11.856)
      ..cubicTo(9.048, 11.759, 9, 11.641, 9, 11.5)
      ..lineTo(9, 8)
      ..cubicTo(9, 7.911, 9.022, 7.827, 9.067, 7.75)
      ..cubicTo(9.022, 7.673, 9, 7.589, 9, 7.5)
      ..lineTo(9, 3.5)
      ..cubicTo(9, 3.359, 9.048, 3.241, 9.144, 3.144)
      ..close()
      ..moveTo(4.11, 4)
      ..lineTo(3.89, 4)
      ..lineTo(2.64, 9)
      ..lineTo(5.36, 9)
      ..lineTo(4.11, 4)
      ..close()
      ..moveTo(11, 7)
      ..cubicTo(11.276, 7, 11.512, 6.902, 11.707, 6.707)
      ..cubicTo(11.902, 6.512, 12, 6.276, 12, 6)
      ..lineTo(12, 5)
      ..cubicTo(12, 4.724, 11.902, 4.488, 11.707, 4.293)
      ..cubicTo(11.512, 4.098, 11.276, 4, 11, 4)
      ..lineTo(10, 4)
      ..lineTo(10, 7)
      ..lineTo(10.5, 7)
      ..cubicTo(10.589, 7, 10.673, 7.022, 10.75, 7.067)
      ..cubicTo(10.827, 7.022, 10.911, 7, 11, 7)
      ..close()
      ..moveTo(10.5, 8)
      ..lineTo(10, 8)
      ..lineTo(10, 11)
      ..lineTo(12, 11)
      ..cubicTo(12.276, 11, 12.512, 10.902, 12.707, 10.707)
      ..cubicTo(12.902, 10.512, 13, 10.276, 13, 10)
      ..lineTo(13, 9)
      ..cubicTo(13, 8.724, 12.902, 8.488, 12.707, 8.293)
      ..cubicTo(12.512, 8.098, 12.276, 8, 12, 8)
      ..lineTo(11, 8)
      ..cubicTo(10.911, 8, 10.827, 7.978, 10.75, 7.933)
      ..cubicTo(10.673, 7.978, 10.589, 8, 10.5, 8)
      ..close();
    canvas.drawPath(p, Paint()..color = color);
  }

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