# Stack Stack builds a balanced pile of stones. Eleven layouts set how many stones lie on each other and how far they lean, and each one squashes one of seven stone shapes to its own width and height, with one of six caps on top. The stones are painted in a light, a mid and a deep tone on a paper background. Generate calm, abstract avatars for placeholders and user lists. - **Style name:** `stack` - **Category:** Minimalist - **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/stack/svg?seed=John ``` JavaScript: ``` npm install @dicebear/core @dicebear/styles --save ``` ```js import { Style, Avatar } from '@dicebear/core'; import definition from '@dicebear/styles/stack.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("stack.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 stack ``` ```rust use dicebear_core::{Avatar, Style}; use serde_json::json; let style = Style::from_str(dicebear_styles::STACK)?; 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.Stack)) 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/stack.dart'; final style = Style.parse(stack); final avatar = Avatar(style, {'seed': 'John'}); final svg = avatar.svg; ``` C#: ``` dotnet add package DiceBear.Core dotnet add package DiceBear.Styles ``` ```csharp using System.Text.Json.Nodes; using DiceBear; var style = Style.Parse(Styles.Stack); var avatar = new Avatar(style, new JsonObject { ["seed"] = "John" }); var svg = avatar.ToSvg(); ``` CLI: ``` npm install --global dicebear ``` ``` dicebear stack ``` ## Presets 11 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. - **Sepia:** Three steps of warm brown. - **Greyscale:** Three steps of grey. - **Duotone:** Three steps of one indigo. - **Muted:** Dusty stones instead of the shipped eight. - **Electric:** Stones past anything the style ships. - **Pastel Wall:** Colored grounds instead of the paper whites. - **Bold Pop:** Saturated grounds behind the pile. - **Sunrise:** A warm gradient behind the pile. - **Stencil:** One ground for everyone, only the pile varies. - **Tower:** Only the tall piles. - **Close Up:** Scaled in, so the pile fills the frame. The full option set of each one is at https://www.dicebear.com/styles/stack/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 | | `pilesVariant` | enum (array allowed) | `boulder`, `five`, `four`, `fourBelly`, `fourLean`, `pair`, `three`, `threeBelly`, `threeLean`, `threeWide`, `tower` | | `pilesProbability` | number | 0 to 100 | | `stoneVariant` | enum (array allowed) | `block`, `dome`, `lens`, `pebble`, `pill`, `trapezoid`, `wedge` | | `stoneProbability` | number | 0 to 100 | | `capVariant` | enum (array allowed) | `ball`, `cube`, `dome`, `drop`, `egg`, `slab` | | `capProbability` | 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` | | `stoneLightColor` | color (array allowed) | Hex color, `#` optional | | `stoneLightColorFill` | enum (array allowed) | `solid`, `linear`, `radial` | | `stoneLightColorFillStops` | range | | | `stoneLightColorAngle` | range | -360 to 360 | | `stoneLightColorOrder` | enum | `random`, `fixed` | | `stoneMidColor` | color (array allowed) | Hex color, `#` optional | | `stoneMidColorFill` | enum (array allowed) | `solid`, `linear`, `radial` | | `stoneMidColorFillStops` | range | | | `stoneMidColorAngle` | range | -360 to 360 | | `stoneMidColorOrder` | enum | `random`, `fixed` | | `stoneDeepColor` | color (array allowed) | Hex color, `#` optional | | `stoneDeepColorFill` | enum (array allowed) | `solid`, `linear`, `radial` | | `stoneDeepColorFillStops` | range | | | `stoneDeepColorAngle` | range | -360 to 360 | | `stoneDeepColorOrder` | enum | `random`, `fixed` | The same table is available as JSON at `https://api.dicebear.com/10.x/stack/options.json`, and the raw definition at `https://api.dicebear.com/10.x/stack/definition.json`.