# Cutouts Cutouts is a paper collage avatar style. Every face is assembled from torn craft paper: a colored head, hair laid over it, and eyes, nose and mouth cut out separately. The two eyes never match, which is the point of the style. Generate warm, handmade profile pictures for communities and editorial sites. - **Style name:** `cutouts` - **Category:** Characters - **Animated:** no - **Creator:** DiceBear (https://www.dicebear.com) - **Source:** https://www.dicebear.com - **License:** CC0 1.0 (https://creativecommons.org/publicdomain/zero/1.0/) ## Usage Every library below produces the same SVG for the same seed and options. HTTP API: ``` https://api.dicebear.com/10.x/cutouts/svg?seed=John ``` JavaScript: ``` npm install @dicebear/core @dicebear/styles --save ``` ```js import { Style, Avatar } from '@dicebear/core'; import definition from '@dicebear/styles/cutouts.json' with { type: 'json' }; const style = new Style(definition); const avatar = new Avatar(style, { seed: 'John' }); const svg = avatar.toString(); ``` PHP: ``` composer require dicebear/core dicebear/styles ``` ```php 'John']); $svg = (string) $avatar; ``` Python: ``` pip install dicebear-core dicebear-styles ``` ```python from importlib.resources import files from dicebear import Avatar, Style style = Style.from_json( files("dicebear_styles").joinpath("cutouts.json").read_text("utf-8") ) avatar = Avatar(style, {"seed": "John"}) svg = avatar.to_string() ``` Rust: ``` cargo add dicebear-core serde_json cargo add dicebear-styles --features cutouts ``` ```rust use dicebear_core::{Avatar, Style}; use serde_json::json; let style = Style::from_str(dicebear_styles::CUTOUTS)?; let avatar = Avatar::new(&style, json!({ "seed": "John" }))?; let svg = avatar.to_svg(); ``` Go: ``` go get github.com/dicebear/dicebear-go/v10 go get github.com/dicebear/styles/v10 ``` ```go import ( dicebear "github.com/dicebear/dicebear-go/v10" "github.com/dicebear/styles/v10" ) style, _ := dicebear.NewStyle([]byte(styles.Cutouts)) avatar, _ := dicebear.NewAvatar(style, map[string]any{"seed": "John"}) svg := avatar.SVG() ``` Dart: ``` dart pub add dicebear_core dicebear_styles ``` ```dart import 'package:dicebear_core/dicebear_core.dart'; import 'package:dicebear_styles/cutouts.dart'; final style = Style.parse(cutouts); final avatar = Avatar(style, {'seed': 'John'}); final svg = avatar.svg; ``` CLI: ``` npm install --global dicebear ``` ``` dicebear cutouts ``` ## Presets 12 ready-made option sets for this style. Each is a plain set of render options: pass it to any of the libraries or send it as HTTP-API query parameters. You do not need to install anything for them, and any option a preset leaves out keeps varying with the seed. - **Bare:** No brows, no torn cheeks. - **Sepia:** Torn brown paper on tan. - **Greyscale:** Newsprint, no hue anywhere. - **Duotone:** Two papers, blue and cream. - **Muted:** Faded sugar paper. - **Electric:** Fluorescent card, quiet ground. - **Pastel Wall:** Colored ground under the collage. - **Bold Pop:** Six grounds, loud under the paper. - **Night Shift:** Dark table, pale paper. - **Sunrise:** A warm gradient under the paper. - **Full Cast:** Hair, brows and cheeks on everyone. - **Close Up:** The collage scaled up in the frame. The full option set of each one is at https://www.dicebear.com/styles/cutouts/presets/index.md. ## Options Every option below works in all libraries and as a query parameter of the HTTP API. The ones built from a component name (`Variant`, `Probability`) or from a color group (`Color`, `ColorFill`, `ColorFillStops`, `ColorAngle`, `ColorOrder`) belong to this style; the rest are [core options](https://www.dicebear.com/guides/core-options/) that every style accepts. | Option | Type | Values | | --- | --- | --- | | `seed` | string | | | `size` | number | 1 to 4096 | | `idRandomization` | boolean | | | `title` | string | | | `flip` | enum (array allowed) | `none`, `horizontal`, `vertical`, `both` | | `fontFamily` | string (array allowed) | | | `fontWeight` | number (array allowed) | 1 to 1000 | | `scale` | range | 0 to 10 | | `borderRadius` | range | 0 to 50 | | `rotate` | range | -360 to 360 | | `translateX` | range | -1000 to 1000 | | `translateY` | range | -1000 to 1000 | | `headVariant` | enum (array allowed) | `blob`, `block`, `pear`, `slanted`, `tall`, `wide` | | `headProbability` | number | 0 to 100 | | `hairVariant` | enum (array allowed) | `crest`, `curls`, `fringe`, `long`, `sidePart`, `swoosh`, `tufts` | | `hairProbability` | number | 0 to 100 | | `browsVariant` | enum (array allowed) | `dashes`, `mono`, `strips`, `uneven` | | `browsProbability` | number | 0 to 100 | | `cheeksVariant` | enum (array allowed) | `torn` | | `cheeksProbability` | number | 0 to 100 | | `eyesVariant` | enum (array allowed) | `bigSmall`, `circleSquare`, `inkDots`, `pair`, `ringDot`, `sleepyOpen`, `squares` | | `eyesProbability` | number | 0 to 100 | | `noseVariant` | enum (array allowed) | `bent`, `dab`, `hook`, `strip`, `tornTriangle`, `wedge` | | `noseProbability` | number | 0 to 100 | | `mouthVariant` | enum (array allowed) | `gasp`, `grin`, `smile`, `strip`, `tornSmile`, `wavy`, `zigzag` | | `mouthProbability` | number | 0 to 100 | | `backgroundColor` | color (array allowed) | Hex color, `#` optional | | `backgroundColorFill` | enum (array allowed) | `solid`, `linear`, `radial` | | `backgroundColorFillStops` | range | | | `backgroundColorAngle` | range | -360 to 360 | | `backgroundColorOrder` | enum | `random`, `fixed` | | `paperFaceColor` | color (array allowed) | Hex color, `#` optional | | `paperFaceColorFill` | enum (array allowed) | `solid`, `linear`, `radial` | | `paperFaceColorFillStops` | range | | | `paperFaceColorAngle` | range | -360 to 360 | | `paperFaceColorOrder` | enum | `random`, `fixed` | | `paperBackColor` | color (array allowed) | Hex color, `#` optional | | `paperBackColorFill` | enum (array allowed) | `solid`, `linear`, `radial` | | `paperBackColorFillStops` | range | | | `paperBackColorAngle` | range | -360 to 360 | | `paperBackColorOrder` | enum | `random`, `fixed` | | `paperHairColor` | color (array allowed) | Hex color, `#` optional | | `paperHairColorFill` | enum (array allowed) | `solid`, `linear`, `radial` | | `paperHairColorFillStops` | range | | | `paperHairColorAngle` | range | -360 to 360 | | `paperHairColorOrder` | enum | `random`, `fixed` | | `paperMouthColor` | color (array allowed) | Hex color, `#` optional | | `paperMouthColorFill` | enum (array allowed) | `solid`, `linear`, `radial` | | `paperMouthColorFillStops` | range | | | `paperMouthColorAngle` | range | -360 to 360 | | `paperMouthColorOrder` | enum | `random`, `fixed` | The same table is available as JSON at `https://api.dicebear.com/10.x/cutouts/options.json`, and the raw definition at `https://api.dicebear.com/10.x/cutouts/definition.json`.