d2themes

package
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 24, 2023 License: MPL-2.0 Imports: 4 Imported by: 11

README

d2themes

d2themes defines themes for D2. You can add a new one in ./d2themescatalog, give a unique ID, and specify it in the CLI or library to see it.

For example, to use the "Shirley temple" theme, which has an ID of 102:

d2 --theme 102 in.d2 out.svg

Run d2 --help or man d2 for more.

Themes overview

Color coding guide

Color coding example

Container gradients

To distinguish container nesting, objects get progressively lighter the more nested it is.

Documentation

Overview

d2themes defines themes to make d2 diagrams pretty Color codes: darkest (N1) -> lightest (N7)

Index

Constants

This section is empty.

Variables

View Source
var CoolNeutral = Neutral{
	N1: "#0A0F25",
	N2: "#676C7E",
	N3: "#9499AB",
	N4: "#CFD2DD",
	N5: "#DEE1EB",
	N6: "#EEF1F8",
	N7: "#FFFFFF",
}
View Source
var DarkNeutral = Neutral{
	N1: "#CDD6F4",
	N2: "#BAC2DE",
	N3: "#A6ADC8",
	N4: "#585B70",
	N5: "#45475A",
	N6: "#313244",
	N7: "#1E1E2E",
}
View Source
var WarmNeutral = Neutral{
	N1: "#170206",
	N2: "#535152",
	N3: "#787777",
	N4: "#CCCACA",
	N5: "#DFDCDC",
	N6: "#ECEBEB",
	N7: "#FFFFFF",
}

Functions

func ShapeTheme added in v0.2.1

func ShapeTheme(shape d2target.Shape) (fill, stroke string)

Types

type ColorPalette

type ColorPalette struct {
	Neutrals Neutral `json:"neutrals"`

	// Base Colors: used for containers
	B1 string `json:"b1"`
	B2 string `json:"b2"`
	B3 string `json:"b3"`
	B4 string `json:"b4"`
	B5 string `json:"b5"`
	B6 string `json:"b6"`

	// Alternative colors A
	AA2 string `json:"aa2"`
	AA4 string `json:"aa4"`
	AA5 string `json:"aa5"`

	// Alternative colors B
	AB4 string `json:"ab4"`
	AB5 string `json:"ab5"`
}

type Neutral

type Neutral struct {
	N1 string `json:"n1"`
	N2 string `json:"n2"`
	N3 string `json:"n3"`
	N4 string `json:"n4"`
	N5 string `json:"n5"`
	N6 string `json:"n6"`
	N7 string `json:"n7"`
}

type ThemableElement added in v0.2.1

type ThemableElement struct {
	X      float64
	X1     float64
	X2     float64
	Y      float64
	Y1     float64
	Y2     float64
	Width  float64
	Height float64
	R      float64
	Rx     float64
	Ry     float64
	Cx     float64
	Cy     float64

	D         string
	Mask      string
	Points    string
	Transform string
	Href      string
	Xmlns     string

	Fill            string
	Stroke          string
	BackgroundColor string
	Color           string

	ClassName  string
	Style      string
	Attributes string

	Content string
	// contains filtered or unexported fields
}

ThemableElement is a helper class for creating new XML elements. This should be preferred over formatting and must be used whenever Fill, Stroke, BackgroundColor or Color contains a color from a theme. i.e. N[1-7] | B[1-6] | AA[245] | AB[45]

func NewThemableElement added in v0.2.1

func NewThemableElement(tag string) *ThemableElement

func (*ThemableElement) Render added in v0.2.1

func (el *ThemableElement) Render() string

func (*ThemableElement) SetMaskUrl added in v0.2.1

func (el *ThemableElement) SetMaskUrl(url string)

func (*ThemableElement) SetTranslate added in v0.2.1

func (el *ThemableElement) SetTranslate(x, y float64)

type ThemableSketchOverlay added in v0.2.1

type ThemableSketchOverlay struct {
	// contains filtered or unexported fields
}

func NewThemableSketchOverlay added in v0.2.1

func NewThemableSketchOverlay(el *ThemableElement, fill string) *ThemableSketchOverlay

func (*ThemableSketchOverlay) Render added in v0.2.1

func (o *ThemableSketchOverlay) Render() (string, error)

WARNING: Do not reuse the element afterwards as this function changes the Class propery

type Theme

type Theme struct {
	ID     int64        `json:"id"`
	Name   string       `json:"name"`
	Colors ColorPalette `json:"colors"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL