diff --git a/themes/puml-theme-amiga.puml b/themes/puml-theme-amiga.puml
new file mode 100644
index 000000000..99a78c407
--- /dev/null
+++ b/themes/puml-theme-amiga.puml
@@ -0,0 +1,175 @@
+''
+'' A white on blue theme based on Amiga Workbench 1.x
+'' https://en.wikipedia.org/wiki/Workbench_(AmigaOS)#Workbench_1.x
+''
+'' Original Author: Matthew Leather
+''
+
+!$THEME = "amiga"
+
+!$BLACK = "#000121"
+!$BLUE = "#0B58A8"
+!$ORANGE = "#FDA325"
+!$RED = "#DB252B"
+!$WHITE = "#FFFFFF"
+
+!$BGCOLOR = $BLUE
+!$FGCOLOR = $WHITE
+
+!ifndef $FONT_NAME
+ !$FONT_NAME = "Verdana"
+!endif
+
+!ifndef $FONT_NAME_MONOSPACED
+ !$FONT_NAME_MONOSPACED = "Courier"
+!endif
+
+
+
+skinparam ArrowLollipopColor $FGCOLOR
+skinparam BackgroundColor $BGCOLOR
+skinparam DefaultFontName $FONT_NAME
+skinparam DefaultMonospacedFontName $FONT_NAME_MONOSPACED
+skinparam LifelineStrategy nosolid
+skinparam ParticipantPadding 10
+skinparam SequenceLifeLineBorderColor $FGCOLOR
+skinparam Shadowing false
+skinparam UseBetaStyle true
+
+skinparam Activity {
+ BackgroundColor $BGCOLOR
+ BarColor $FGCOLOR
+ BorderColor $FGCOLOR
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Boundary {
+ FontColor $FGCOLOR
+}
+skinparam Box {
+ Padding 5
+}
+skinparam CircledCharacter {
+ FontColor $BGCOLOR
+ FontName $FONT_NAME_MONOSPACED
+ Radius 9
+}
+skinparam Class {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam ClassAttribute {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam ClassStereotype {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Footer {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Header {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Hyperlink {
+ Color $ORANGE
+}
+skinparam IconPackage {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam IconPrivate {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam IconProtected {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam IconPublic {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam Note {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Package {
+ BorderColor $FGCOLOR
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam State {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeA {
+ BackgroundColor $FGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeC {
+ BackgroundColor $FGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeE {
+ BackgroundColor $FGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeI {
+ BackgroundColor $FGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeN {
+ BackgroundColor $FGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam UseCaseStereoType {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
diff --git a/themes/puml-theme-blueprint.puml b/themes/puml-theme-blueprint.puml
new file mode 100644
index 000000000..0835cb20a
--- /dev/null
+++ b/themes/puml-theme-blueprint.puml
@@ -0,0 +1,154 @@
+''
+'' A white on blue theme based on the Blueprint reproduction process
+'' https://en.wikipedia.org/wiki/Blueprint
+''
+'' Original Author: Matthew Leather
+''
+
+!$THEME = "blueprint"
+
+!$BGCOLOR = "#003153"
+!$FGCOLOR = "#D9D3D0"
+
+!ifndef $FONT_NAME
+ !$FONT_NAME = "Verdana"
+!endif
+
+!ifndef $FONT_NAME_MONOSPACED
+ !$FONT_NAME_MONOSPACED = "Courier"
+!endif
+
+
+
+skinparam ArrowLollipopColor $FGCOLOR
+skinparam BackgroundColor $BGCOLOR
+skinparam DefaultFontName $FONT_NAME
+skinparam DefaultMonospacedFontName $FONT_NAME_MONOSPACED
+skinparam LifelineStrategy nosolid
+skinparam ParticipantPadding 10
+skinparam SequenceLifeLineBorderColor $FGCOLOR
+skinparam Shadowing false
+skinparam UseBetaStyle true
+
+skinparam Activity {
+ BackgroundColor $BGCOLOR
+ BarColor $FGCOLOR
+ BorderColor $FGCOLOR
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Boundary {
+ FontColor $FGCOLOR
+}
+skinparam Box {
+ Padding 5
+}
+skinparam CircledCharacter {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME_MONOSPACED
+ Radius 9
+}
+skinparam Class {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam ClassAttribute {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam ClassStereotype {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Footer {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Header {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Hyperlink {
+ Color $FGCOLOR
+}
+skinparam IconPackage {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam IconPrivate {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam IconProtected {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam IconPublic {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam Note {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Package {
+ BorderColor $FGCOLOR
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam State {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeA {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeC {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeE {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeI {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeN {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam UseCaseStereoType {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
diff --git a/themes/puml-theme-crt-amber.puml b/themes/puml-theme-crt-amber.puml
new file mode 100644
index 000000000..fcf432cdf
--- /dev/null
+++ b/themes/puml-theme-crt-amber.puml
@@ -0,0 +1,177 @@
+''
+'' An orange on black theme based on monochrome CRT monitors
+''
+'' (The colors came from https://superuser.com/a/1206781)
+''
+'' Original Author: Matthew Leather
+''
+
+!$THEME = "crt-amber"
+
+!$DARK_AMBER = "#FFB000"
+!$LIGHT_AMBER = "#FFCC00"
+
+!$BGCOLOR = "#282828"
+!$FGCOLOR = $DARK_AMBER
+
+!ifndef $FONT_NAME
+ !$FONT_NAME = "Verdana"
+!endif
+
+!ifndef $FONT_NAME_MONOSPACED
+ !$FONT_NAME_MONOSPACED = "Courier"
+!endif
+
+
+
+skinparam ArrowLollipopColor $FGCOLOR
+skinparam BackgroundColor $BGCOLOR
+skinparam DefaultFontName $FONT_NAME
+skinparam DefaultMonospacedFontName $FONT_NAME_MONOSPACED
+skinparam LifelineStrategy solid
+skinparam ParticipantPadding 10
+skinparam SequenceLifeLineBorderColor $FGCOLOR
+skinparam Shadowing false
+skinparam UseBetaStyle true
+
+skinparam Activity {
+ BackgroundColor $BGCOLOR
+ BarColor $FGCOLOR
+ BorderColor $FGCOLOR
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Boundary {
+ FontColor $FGCOLOR
+}
+skinparam Box {
+ Padding 5
+}
+skinparam CircledCharacter {
+ FontColor $BGCOLOR
+ FontName $FONT_NAME_MONOSPACED
+ Radius 9
+}
+skinparam Class {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam ClassAttribute {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam ClassStereotype {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Footer {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Header {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Hyperlink {
+ Color $LIGHT_AMBER
+}
+skinparam IconPackage {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam IconPrivate {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam IconProtected {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam IconPublic {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam Note {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Package {
+ BorderColor $FGCOLOR
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam State {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeA {
+ BackgroundColor $FGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeC {
+ BackgroundColor $FGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeE {
+ BackgroundColor $FGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeI {
+ BackgroundColor $FGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeN {
+ BackgroundColor $FGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam UseCaseStereoType {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
diff --git a/themes/puml-theme-crt-green.puml b/themes/puml-theme-crt-green.puml
new file mode 100644
index 000000000..7b6769df2
--- /dev/null
+++ b/themes/puml-theme-crt-green.puml
@@ -0,0 +1,174 @@
+''
+'' A green on black theme based on monochrome CRT monitors
+''
+'' (The colors came from https://superuser.com/a/1206781)
+''
+'' Original Author: Matthew Leather
+''
+
+!$THEME = "crt-green"
+
+!$BGCOLOR = "#282828"
+!$FGCOLOR = "#33FF33"
+
+!ifndef $FONT_NAME
+ !$FONT_NAME = "Verdana"
+!endif
+
+!ifndef $FONT_NAME_MONOSPACED
+ !$FONT_NAME_MONOSPACED = "Courier"
+!endif
+
+
+
+skinparam ArrowLollipopColor $FGCOLOR
+skinparam BackgroundColor $BGCOLOR
+skinparam DefaultFontName $FONT_NAME
+skinparam DefaultMonospacedFontName $FONT_NAME_MONOSPACED
+skinparam LifelineStrategy solid
+skinparam ParticipantPadding 10
+skinparam SequenceLifeLineBorderColor $FGCOLOR
+skinparam Shadowing false
+skinparam UseBetaStyle true
+
+skinparam Activity {
+ BackgroundColor $BGCOLOR
+ BarColor $FGCOLOR
+ BorderColor $FGCOLOR
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Boundary {
+ FontColor $FGCOLOR
+}
+skinparam Box {
+ Padding 5
+}
+skinparam CircledCharacter {
+ FontColor $BGCOLOR
+ FontName $FONT_NAME_MONOSPACED
+ Radius 9
+}
+skinparam Class {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam ClassAttribute {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam ClassStereotype {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Footer {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Header {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Hyperlink {
+ Color $FGCOLOR
+}
+skinparam IconPackage {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam IconPrivate {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam IconProtected {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam IconPublic {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam Note {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Package {
+ BorderColor $FGCOLOR
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam State {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeA {
+ BackgroundColor $FGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeC {
+ BackgroundColor $FGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeE {
+ BackgroundColor $FGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeI {
+ BackgroundColor $FGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeN {
+ BackgroundColor $FGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam UseCaseStereoType {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
diff --git a/themes/puml-theme-mimeograph.puml b/themes/puml-theme-mimeograph.puml
new file mode 100644
index 000000000..9ee9fbf22
--- /dev/null
+++ b/themes/puml-theme-mimeograph.puml
@@ -0,0 +1,154 @@
+''
+'' A purple on grey theme based on the Mimeograph reproduction process
+'' https://en.wikipedia.org/wiki/Mimeograph
+''
+'' Original Author: Matthew Leather
+''
+
+!$THEME = "mimeograph"
+
+!$BGCOLOR = "#D9D3D0"
+!$FGCOLOR = "#9275B6"
+
+!ifndef $FONT_NAME
+ !$FONT_NAME = "Verdana"
+!endif
+
+!ifndef $FONT_NAME_MONOSPACED
+ !$FONT_NAME_MONOSPACED = "Courier"
+!endif
+
+
+
+skinparam ArrowLollipopColor $FGCOLOR
+skinparam BackgroundColor $BGCOLOR
+skinparam DefaultFontName $FONT_NAME
+skinparam DefaultMonospacedFontName $FONT_NAME_MONOSPACED
+skinparam LifelineStrategy nosolid
+skinparam ParticipantPadding 10
+skinparam SequenceLifeLineBorderColor $FGCOLOR
+skinparam Shadowing false
+skinparam UseBetaStyle true
+
+skinparam Activity {
+ BackgroundColor $BGCOLOR
+ BarColor $FGCOLOR
+ BorderColor $FGCOLOR
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Boundary {
+ FontColor $FGCOLOR
+}
+skinparam Box {
+ Padding 5
+}
+skinparam CircledCharacter {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME_MONOSPACED
+ Radius 9
+}
+skinparam Class {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam ClassAttribute {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam ClassStereotype {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Footer {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Header {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Hyperlink {
+ Color $FGCOLOR
+}
+skinparam IconPackage {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam IconPrivate {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam IconProtected {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam IconPublic {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam Note {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Package {
+ BorderColor $FGCOLOR
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam State {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeA {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeC {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeE {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeI {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeN {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam UseCaseStereoType {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
diff --git a/themes/puml-theme-plain.puml b/themes/puml-theme-plain.puml
new file mode 100644
index 000000000..be1ead83d
--- /dev/null
+++ b/themes/puml-theme-plain.puml
@@ -0,0 +1,162 @@
+''
+'' A simple black on white theme (with blue hyperlinks)
+''
+'' Original Author: Matthew Leather
+''
+
+!$THEME = "plain"
+
+!if %not(%variable_exists("$BGCOLOR"))
+ !$BGCOLOR = "white"
+!endif
+
+!if %not(%variable_exists("$FGCOLOR"))
+ !$FGCOLOR = "black"
+!endif
+
+!if %not(%variable_exists("$HYPERLINK_COLOR"))
+ !$HYPERLINK_COLOR = "blue"
+!endif
+
+!ifndef $FONT_NAME
+ !$FONT_NAME = "Verdana"
+!endif
+
+!ifndef $FONT_NAME_MONOSPACED
+ !$FONT_NAME_MONOSPACED = "Courier"
+!endif
+
+
+
+skinparam ArrowLollipopColor $FGCOLOR
+skinparam BackgroundColor $BGCOLOR
+skinparam DefaultFontName $FONT_NAME
+skinparam DefaultMonospacedFontName $FONT_NAME_MONOSPACED
+skinparam LifelineStrategy nosolid
+skinparam ParticipantPadding 10
+skinparam SequenceLifeLineBorderColor $FGCOLOR
+skinparam Shadowing false
+skinparam UseBetaStyle true
+
+skinparam Activity {
+ BackgroundColor $BGCOLOR
+ BarColor $FGCOLOR
+ BorderColor $FGCOLOR
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Boundary {
+ FontColor $FGCOLOR
+}
+skinparam Box {
+ Padding 5
+}
+skinparam CircledCharacter {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME_MONOSPACED
+ Radius 9
+}
+skinparam Class {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam ClassAttribute {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam ClassStereotype {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Footer {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Header {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Hyperlink {
+ Color $HYPERLINK_COLOR
+}
+skinparam IconPackage {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam IconPrivate {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam IconProtected {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam IconPublic {
+ Color $FGCOLOR
+ BackgroundColor $BGCOLOR
+}
+skinparam Note {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam Package {
+ BorderColor $FGCOLOR
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}
+skinparam State {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeA {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeC {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeE {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeI {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam StereotypeN {
+ BackgroundColor $BGCOLOR
+ BorderColor $FGCOLOR
+}
+skinparam UseCaseStereoType {
+ FontColor $FGCOLOR
+ FontName $FONT_NAME
+}