'' '' Theme based off of the colors used by Cloudscape design '' '' Author: Brett Schwarz '' '!$PUML_OUTLINE = "true" '!$PUML_BGCOLOR = "#0f1b2a" '!$PUML_MODE = "dark" !$PUML_THEME = "cloudscape-design" !$THEME = "cloudscape-design" '' '' User can specify the PUML_BGCOLOR via command line or set this variable before '' loading this theme file. PUML_BGCOLOR is the background color of the image that is '' generated by plantuml '' !if %not(%variable_exists("$PUML_BGCOLOR")) !$PUML_BGCOLOR = "transparent" !endif '' '' If no gradient is given, default to 20 '' !if %not(%variable_exists("$PUML_GRADIENT")) !$PUML_GRADIENT = 20 !endif '' '' User can specify the PUML_MODE via command line or set this variable before '' loading this theme file. PUML_MODE is either 'light' PUML_MODE or 'dark' PUML_MODE. '' !if %not(%variable_exists("$PUML_MODE")) !$PUML_MODE = "light" !endif '' '' User can specify the PUML_OUTLINE via command line or set this variable before '' loading this theme file. PUML_OUTLINE is either 'true' or 'false'. '' !if %not(%variable_exists("$PUML_OUTLINE")) !$PUML_OUTLINE = "false" !endif '' skinparam BackgroundColor $PUML_BGCOLOR skinparam useBetaStyle false !$ALPHA = "80" '' '' Supplementary Colors '' !$WHITE = "#FFF" !$GRAY_LIGHT = "#222" !$GRAY = "#868e96" !$PRIMARY = "#0972d3" !$WARNING = "#ecdd00" !$LIGHT = "#d1d5db" !$DARK = "#000716" !$SECONDARY_TEXT = "#539fe5" '' '' define colors based on PUML_MODE '' !if ($PUML_MODE == "light") !$PRIMARY_TEXT = $LIGHT !$SECONDARY = "#eeeeee" !$SECONDARY_LIGHT = %lighten($SECONDARY, $PUML_GRADIENT) !$SUCCESS = "#037f0c" !$INFO = "#0972d3" !$DANGER = "#d91515" !$SECONDARY_TEXT = $DARK !$FGCOLOR = $DARK !$DIAMOND_BD = %darken($SECONDARY, $PUML_GRADIENT) !$GRAY_LIGHT = %lighten($GRAY, $PUML_GRADIENT) !$GRAY_DARK = %darken($GRAY, $PUML_GRADIENT) !$MAIN_BG = $WHITE '' '' Assume if the background is transparent, that the '' background will be dark for this theme '' !assume transparent light !else !$TMP = $LIGHT !$LIGHT = $DARK !$DARK = $TMP !$PRIMARY = "#539fe5" !$PRIMARY_TEXT = $WHITE !$SECONDARY = "#2a2e33" !$SECONDARY_LIGHT = %lighten($SECONDARY, $PUML_GRADIENT) !$SUCCESS = "#037f0c" !$INFO = "#0972d3" !$DANGER = "#ff5d64" !$WARNING = "#fbf8cc" !$SECONDARY_TEXT = $WHITE !$FGCOLOR = $WHITE !$DIAMOND_BD = %lighten($SECONDARY, $PUML_GRADIENT) !$GRAY_LIGHT = %darken($GRAY, $PUML_GRADIENT) !$GRAY_DARK = %lighten($GRAY, $PUML_GRADIENT) !$MAIN_BG = "#0f1b2a" '' '' Assume if the background is transparent, that the '' background will be dark for this theme '' !assume transparent dark !endif '' '' *_DARK = tint (lighter) of the main color '' *_LIGHT = shade (darker) of the main color '' !$PRIMARY_DARK = %darken($PRIMARY, $PUML_GRADIENT) !$PRIMARY_LIGHT = %lighten($PRIMARY, $PUML_GRADIENT) !$SECONDARY_DARK = %darken($SECONDARY, $PUML_GRADIENT) !$SUCCESS_DARK = %darken($SUCCESS, $PUML_GRADIENT) !$SUCCESS_LIGHT = %lighten($SUCCESS, $PUML_GRADIENT) !$INFO_DARK = %darken($INFO, $PUML_GRADIENT) !$INFO_LIGHT = %lighten($INFO, $PUML_GRADIENT) !$DANGER_DARK = %darken($DANGER, $PUML_GRADIENT) !$DANGER_LIGHT = %lighten($DANGER, $PUML_GRADIENT) !$WARNING_DARK = %darken($WARNING, $PUML_GRADIENT) !$WARNING_LIGHT = %lighten($WARNING, $PUML_GRADIENT) !$DARK_DARK = %darken($DARK, $PUML_GRADIENT) !$DARK_LIGHT = %lighten($DARK, $PUML_GRADIENT) !$LIGHT_DARK = %darken($LIGHT, $PUML_GRADIENT) !$LIGHT_LIGHT = %lighten($LIGHT, $PUML_GRADIENT) '' '' Set text colors '' !$INFO_TEXT = $WHITE !$SUCCESS_TEXT = $WHITE !$WARNING_TEXT = $WHITE !$DANGER_TEXT = $WHITE !$HEADER_TEXT = $WHITE '' !if ($PUML_OUTLINE == "true") !$HEADER_TEXT = $PRIMARY_TEXT !$PRIMARY_TEXT = $PRIMARY_LIGHT !$INFO_TEXT = $INFO !$WARNING_TEXT = $WARNING_LIGHT !$DARK_BG = $PUML_BGCOLOR !$INFO_BG = $PUML_BGCOLOR !$DANGER_BG = $PUML_BGCOLOR !$WARNING_BG = $PUML_BGCOLOR !$SECONDARY_BG = $PUML_BGCOLOR !else !$DARK_BG = $DARK !$INFO_BG = $INFO !$DANGER_BG = $DANGER !$WARNING_BG = $WARNING !$SECONDARY_BG = $SECONDARY !endif !unquoted function $alpha($color, $alpha) !return $color + $alpha '' '' Called to make the text in the color of SUCCESS '' !procedure $success($msg) $msg !endprocedure '' '' Called to make the text in the color of DANGER '' !procedure $failure($msg) $msg !endprocedure '' '' Called to make the text in the color of WARNING '' !procedure $warning($msg) $msg !endprocedure '' '' Called to use the primary color scheme '' Different colors based on if PUML_OUTLINE '' is true or not '' !procedure $primary_scheme() !if ($PUML_OUTLINE == "true") FontColor $PRIMARY BorderColor $PRIMARY BackgroundColor $PUML_BGCOLOR !else FontColor $PRIMARY_TEXT BorderColor $PRIMARY BackgroundColor $PRIMARY_LIGHT-$PRIMARY !endif !endprocedure '' '' Called to use the secondary color scheme '' !procedure $secondary_scheme() !if ($PUML_OUTLINE == "true") FontColor $SECONDARY_DARK BorderColor $SECONDARY_DARK BackgroundColor $PUML_BGCOLOR !else FontColor $SECONDARY_TEXT BorderColor $SECONDARY_DARK BackgroundColor $SECONDARY_LIGHT-$SECONDARY !endif !endprocedure '' '' HTTP Methods '' !_POST = "POST" !_PUT = "PUT" !_DELETE = "DELETE" !_GET = "GET" !_PATCH = "PATCH" !_HEAD = "HEAD" '' '' Global Default Values '' skinparam defaultFontName "Verdana" skinparam defaultFontSize 12 skinparam dpi 100 skinparam shadowing false skinparam roundcorner 8 skinparam ParticipantPadding 40 skinparam BoxPadding 40 skinparam Padding 5 skinparam ArrowColor $DARK skinparam stereotype { CBackgroundColor $SECONDARY_LIGHT CBorderColor $SECONDARY_DARK ABackgroundColor $SUCCESS_LIGHT ABorderColor $SUCCESS_DARK IBackgroundColor $DANGER_LIGHT IBorderColor $DANGER_DARK EBackgroundColor $WARNING_LIGHT EBorderColor $WARNING_DARK NBackgroundColor $INFO_LIGHT NBorderColor $INFO_DARK } skinparam title { FontSize 20 BorderRoundCorner 8 BorderThickness 1 BackgroundColor $SECONDARY_LIGHT-$SECONDARY FontColor $PRIMARY BorderColor $SECONDARY } skinparam legend { $secondary_scheme() BackgroundColor transparent } !startsub swimlane skinparam swimlane { BorderColor $INFO BorderThickness 2 TitleBackgroundColor $SECONDARY_LIGHT-$SECONDARY TitleFontColor $PRIMARY } !endsub !startsub activity skinparam activity { $primary_scheme() BarColor $SUCCESS StartColor $INFO EndColor $INFO '' DiamondBackgroundColor $SECONDARY_BG DiamondBorderColor $DIAMOND_BD DiamondFontColor $SECONDARY_TEXT } !endsub !startsub participant skinparam participant { $primary_scheme() ParticipantBorderThickness 2 } !endsub !startsub actor skinparam actor { $primary_scheme() FontColor $FGCOLOR } !endsub !startsub arrow skinparam arrow { Thickness 2 Color $GRAY_LIGHT FontColor $FGCOLOR } !endsub !startsub sequence skinparam sequence { ArrowThickness 2 BorderColor $PRIMARY ' For some reason sequence title font color does not pick up from global TitleFontColor $PRIMARY BackgroundColor $PUML_BGCOLOR StartColor $PRIMARY EndColor $PRIMARY '' BoxBackgroundColor $alpha($PUML_BGCOLOR, $ALPHA) BoxBorderColor $GRAY_DARK BoxFontColor $GRAY_DARK '' DelayFontColor $LIGHT '' LifeLineBorderColor $PRIMARY LifeLineBorderThickness 0 LifeLineBackgroundColor $SECONDARY '' GroupBorderColor $DARK GroupBorderThickness 1 GroupFontColor $DARK GroupHeaderFontColor $INFO GroupBackgroundColor $alpha($SECONDARY, $ALPHA) GroupBodyBackgroundColor $alpha($PUML_BGCOLOR, $ALPHA) GroupHeaderBackgroundColor $PUML_BGCOLOR '' DividerBackgroundColor $SECONDARY DividerBorderColor $SECONDARY_LIGHT DividerBorderThickness 2 DividerFontColor $DARK '' ReferenceAlignment left ReferenceBackgroundColor $alpha($PUML_BGCOLOR, $ALPHA) ReferenceBorderColor $SECONDARY ReferenceBorderThickness 2 ReferenceFontColor $DARK ReferenceHeaderFontColor $INFO ReferenceHeaderBackgroundColor $alpha($SECONDARY, $ALPHA) '' StereotypeFontColor $PRIMARY_TEXT StereotypeFontSize 12 } !endsub !startsub partition skinparam partition { BorderColor $PRIMARY FontColor $PRIMARY BackgroundColor $PUML_BGCOLOR } !endsub !startsub collections skinparam collections { $primary_scheme() } !endsub !startsub control skinparam control { $primary_scheme() FontColor $DARK } !endsub !startsub entity skinparam entity { $primary_scheme() FontColor $DARK } !endsub !startsub boundary skinparam boundary { $primary_scheme() FontColor $DARK } !endsub !startsub agent skinparam agent { BackgroundColor $WARNING BorderColor $WARNING_LIGHT FontColor $GRAY } !endsub !startsub note skinparam note { BorderThickness 1 BackgroundColor $INFO_BG BorderColor $INFO FontColor $INFO_TEXT } !endsub !startsub artifact skinparam artifact { BackgroundColor $DARK_BG BorderColor $DARK_DARK FontColor $LIGHT } !endsub !startsub component skinparam component { $primary_scheme() } !endsub !startsub interface skinparam interface { BackgroundColor $DANGER_DARK BorderColor $DANGER FontColor $DARK } !endsub !startsub storage skinparam storage { BackgroundColor $WARNING_BG BorderColor $WARNING_DARK FontColor $GRAY } !endsub !startsub node skinparam node { BackgroundColor $PUML_BGCOLOR BorderColor $LIGHT FontColor $LIGHT } !endsub !startsub cloud skinparam cloud { BackgroundColor transparent BorderColor $DARK FontColor $FGCOLOR } !endsub !startsub database skinparam database { $primary_scheme() FontColor $FGCOLOR StereotypeFontColor $FGCOLOR } !endsub !startsub class skinparam class { $primary_scheme() FontColor $HEADER_TEXT HeaderBackgroundColor $PRIMARY_LIGHT-$PRIMARY StereotypeFontColor $DARK BorderThickness 1 AttributeFontColor $PRIMARY_TEXT AttributeFontSize 11 } !endsub !startsub object skinparam object { $primary_scheme() StereotypeFontColor $DARK BorderThickness 1 AttributeFontColor $PRIMARY_TEXT AttributeFontSize 11 } !endsub !startsub usecase skinparam usecase { $primary_scheme() BorderThickness 2 StereotypeFontColor $PRIMARY } !endsub !startsub rectangle skinparam rectangle { BackgroundColor $PUML_BGCOLOR FontColor $SECONDARY_TEXT BorderColor $SECONDARY_TEXT BorderThickness 2 StereotypeFontColor $PRIMARY } !endsub !startsub package skinparam package { BackgroundColor $PUML_BGCOLOR BorderColor $SECONDARY_TEXT FontColor $SECONDARY_TEXT BorderThickness 2 } !endsub !startsub folder skinparam folder { BackgroundColor $SECONDARY_BG BorderColor $WARNING FontColor $WARNING BorderThickness 2 } !endsub !startsub frame skinparam frame { BackgroundColor $SECONDARY_BG BorderColor $INFO FontColor $INFO BorderThickness 2 } !endsub !startsub state skinparam state { $primary_scheme() StartColor $INFO EndColor $INFO AttributeFontColor $SECONDARY_TEXT AttributeFontSize 11 } !endsub !startsub queue skinparam queue { $primary_scheme() } !endsub !startsub card skinparam card { BackgroundColor $INFO_BG BorderColor $INFO_DARK FontColor $INFO_TEXT } !endsub !startsub file skinparam file { BackgroundColor $SECONDARY_BG BorderColor $LIGHT FontColor $FGCOLOR } !endsub !startsub stack skinparam stack { $primary_scheme() } !endsub !startsub map skinparam map { $primary_scheme() } !endsub '' '' When mixing skinparam and