
!$THEME = "syrinx_hybrid"

!if %not(%variable_exists("$BGCOLOR"))
!$BGCOLOR = "transparent"
!endif


skinparam useBetaStyle false
'' ACCENT JADE
!$JADE_LIGHTER = "#97fee9"
!$JADE_LIGHT = "#4bc9b1"
!$JADE_MID = "#2f7d6f"
!$JADE_DARK = "#1b4941"
!$JADE_DARKER = "#1c302b"
'' ACCENT BLUE
!$BLUE_LIGHTER = "#80adff"
!$BLUE_LIGHT = "#6088bf"
!$BLUE_MID = "#3a5273"
!$BLUE_DARK = "#27374d"
!$BLUE_DARKER = "#0d1219"
'' ACCENT PURPLE
!$PURPLE_LIGHTER = "#bba2ed"
!$PURPLE_LIGHT = "#9d76ed"
!$PURPLE_MID = "#7b5cba"
!$PURPLE_DARK = "#594286"
!$PURPLE_DARKER = "#372853"
'' ACCENT ROSE
!$ROSE_LIGHTER = "#fdafcb"
!$ROSE_LIGHT = "#fd7eab"
!$ROSE_MID = "#d76b92"
!$ROSE_DARK = "#a3516f"
!$ROSE_DARKER = "#6f374c"
'' ACCENT RED
!$RED_LIGHTER = "#ffa8a8"
!$RED_LIGHT = "#ff8b8b"
!$RED_MID = "#ff6666"
!$RED_DARK = "#c64f4f"
!$RED_DARKER = "#8f3939"
'' ACCENT AQUAMARINE
!$AQUAMARINE_LIGHT = "#67beaf"
!$AQUAMARINE_MID = "#008ea4"
!$AQUAMARINE_DARK = "#004253"
!$AQUAMARINE_DARKER = "#002934"
'' ACCENT GREEN
!$GREEN_LIGHTER = "#e0e7d3"
!$GREEN_LIGHT = "#c4c9b8"
!$GREEN_MID = "#bad090"
!$GREEN_DARK = "#83975e"
!$GREEN_DARKER = "#3c452a"


'' BACKGROUND
!$BACKGROUND_LIGHTER = "#cad9f2"
!$BACKGROUND_LIGHT = "#7d899c"
!$BACKGROUND_MID = "#4c5769"
!$BACKGROUND_DARK = "#282f3a"
!$BACKGROUND_DARKER = "#141c27"
'' FOREGROUND
!$WHITE = "#fff"
!$FONT_LIGHT = "#f3f3f3"


!$GRAY_DARK = "#5a5a5a"
!$GRAY = "#959595"

!$SECONDARY = "#f2f2f2"
!$SUCCESS = "#b5bd00"
!$INFO = "#0568ae"
!$WARNING = "#ea7400"
!$DANGER = "#cf2a2a"
!$LIGHT = "#d2d2d2"
!$DARK = "#5a5a5a"

!$FGCOLOR = $DARK



!$SECONDARY_LIGHT = "#f5f5f5"
!$SECONDARY_DARK = "#c2c2c2"
!$SECONDARY_TEXT = $DARK
!$INFO_LIGHT = "#3786be"
!$INFO_DARK = "#04538b"
!$INFO_TEXT = $WHITE
!$SUCCESS_LIGHT = "#c4ca33"
!$SUCCESS_DARK = "#919700"
!$SUCCESS_TEXT = $WHITE
!$WARNING_LIGHT = "#ee9033"
!$WARNING_DARK = "#bb5d00"
!$WARNING_TEXT = $WHITE
!$DANGER_LIGHT = "#d95555"
!$DANGER_DARK = "#a62222"
!$DANGER_TEXT = $WHITE

skinparam backgroundColor transparent
!procedure $success($msg)
  <font color=$SUCCESS><b>$msg
!endprocedure

!procedure $failure($msg)
  <font color=$DANGER><b>$msg
!endprocedure

!procedure $warning($msg)
  <font color=$WARNING><b>$msg
!endprocedure

!procedure $PRIMARY_SCHEME()
	FontColor $BACKGROUND_DARK
	BorderColor $JADE_DARK
	BackgroundColor WHITE
    ArrowColor $AQUAMARINE_MID

!endprocedure

!procedure $secondary_scheme()
	FontColor $SECONDARY_TEXT
	BorderColor $SECONDARY_DARK
	BackgroundColor $WHITE-#fefefe
!endprocedure

''
'' Global Default Values
''
skinparam defaultFontName        "Verdana"
skinparam defaultFontSize        12
skinparam dpi                    100 
skinparam shadowing              false
skinparam roundcorner            0
skinparam ParticipantPadding     10
skinparam BoxPadding             10
skinparam Padding                8
skinparam ArrowColor             $GRAY
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 {
	FontColor	                 $BACKGROUND_LIGHT
	BorderColor	                 $BACKGROUND_DARKER
	FontSize	    	         16
	BorderRoundCorner            0
	BorderThickness 	         0
	BackgroundColor              transparent
}


skinparam legend {
	BackgroundColor $SECONDARY
	BorderColor $SECONDARY_DARK
	FontColor $DARK
}

!startsub swimlane
skinparam swimlane {
	BorderColor $INFO
	BorderThickness 2
	TitleBackgroundColor  $SECONDARY_LIGHT-$SECONDARY
	TitleFontColor $JADE_MID
}
!endsub

!startsub activity

skinparam activity {
	FontColor $JADE_LIGHT
	BorderColor $JADE_MID
	BackgroundColor $BACKGROUND_DARK
	BarColor $SUCCESS
	StartColor $INFO
	EndColor $INFO
	''
	DiamondBackgroundColor $ROSE_LIGHTER
  	DiamondBorderColor $SECONDARY_DARK
	DiamondFontColor $SECONDARY_TEXT
}
!endsub

!startsub participant

skinparam participant {
	$PRIMARY_SCHEME()
	ParticipantBorderThickness 2
    BackgroundColor $BLUE_DARK
    FontColor $FONT_LIGHT
    BorderColor $BLUE_DARKER
    
}
!endsub

!startsub actor

skinparam actor {
	$PRIMARY_SCHEME()
    backgroundColor $BACKGROUND_LIGHT
	FontColor $ROSE_MID
    FontSize 20
    BorderThickness 5
    BorderColor $BACKGROUND_LIGHT
}
!endsub

!startsub arrow

skinparam arrow {
	Thickness 3
	Color $JADE_MID
	FontColor $FGCOLOR
}
!endsub

!startsub sequence

skinparam sequence {
	BorderColor $JADE_MID
	' For some reason sequence title font color does not pick up from global
	TitleFontColor $BACKGROUND_MID
	BackgroundColor $BGCOLOR
	StartColor $JADE_MID
	EndColor $JADE_MID
	''
	BoxBackgroundColor RED
	BoxBorderColor $GRAY
	BoxFontColor $FONT_LIGHT
	''
	DelayFontColor $DARK
	''
	LifeLineBorderColor $BLUE_DARKER
	LifeLineBorderThickness 4
	LifeLineBackgroundColor $BLUE_DARK
	GroupBorderColor $GRAY
	GroupFontColor $DARK
	GroupHeaderFontColor $INFO
	GroupBackgroundColor $BGCOLOR
	GroupBodyBackgroundColor $BGCOLOR
	GroupHeaderBackgroundColor $BGCOLOR
	''
	DividerBackgroundColor $WHITE-$LIGHT
    DividerBorderColor $GRAY
    DividerBorderThickness 2
    DividerFontColor $DARK
	''
	ReferenceBackgroundColor $BGCOLOR
	ReferenceBorderColor $GRAY
	ReferenceFontColor $DARK
	ReferenceHeaderFontColor $INFO
	''
	StereotypeFontColor $JADE_MID
    ArrowFontColor $BACKGROUND_LIGHT
    ArrowThickness 1.8
}
!endsub

!startsub partition

skinparam partition {
	BorderColor $JADE_MID
	FontColor $JADE_MID
	BackgroundColor $BGCOLOR
}
!endsub

!startsub collections

skinparam collections {
	$PRIMARY_SCHEME()
}
!endsub

!startsub control

skinparam control {
	$PRIMARY_SCHEME()
	FontColor $JADE_MID
}
!endsub

!startsub entity

skinparam entity {
	$PRIMARY_SCHEME()
	FontColor $JADE_MID

}
!endsub

!startsub boundary

skinparam boundary {
	$PRIMARY_SCHEME()
	FontColor $JADE_MID
}
!endsub

!startsub agent

skinparam agent {
	BackgroundColor #orange
	BorderColor #999999
	FontColor #333333
}
!endsub

!startsub note

skinparam note {
	BorderThickness 1
	BackgroundColor $INFO_LIGHT-$INFO
	BorderColor $INFO
	FontColor $WHITE
}
!endsub

!startsub artifact

skinparam artifact {
	BackgroundColor $WHITE-$LIGHT
	BorderColor $SECONDARY_DARK
	FontColor $SECONDARY_TEXT
}
!endsub

!startsub component

skinparam component {
	$PRIMARY_SCHEME()
}
!endsub

!startsub interface

skinparam interface {
	BackgroundColor  $DANGER_LIGHT
	BorderColor  $DANGER
	FontColor $DARK
}
!endsub

!startsub storage

skinparam storage {
	BackgroundColor $WARNING_LIGHT-$WARNING
  	BorderColor $WARNING
	FontColor $WARNING_TEXT
}
!endsub

!startsub node

skinparam node {
	BackgroundColor $SECONDARY_LIGHT-$SECONDARY
	BorderColor $SECONDARY_DARK
	FontColor $JADE_MID
}
!endsub

!startsub cloud

skinparam cloud {
	BackgroundColor transparent
	BorderColor #F2FCFE
	FontColor $JADE_MID
}
!endsub

!startsub database

skinparam database {
	$PRIMARY_SCHEME()
	' FontColor $JADE_MID
	BorderColor $JADE_DARK
	' BackgroundColor  $BGCOLOR
}
!endsub

!startsub class

skinparam class {
	$PRIMARY_SCHEME()
	BackgroundColor $BACKGROUND_DARKER
    HeaderBackgroundColor $BLUE_DARK
    BorderColor $BLUE_DARKER
    HeaderFontSize 18
	StereotypeFontColor $AQUAMARINE_MID
	BorderThickness 2
	AttributeFontColor $FONT_LIGHT
	AttributeFontSize 15
    

}
!endsub

!startsub object

skinparam object {
	$PRIMARY_SCHEME()
	StereotypeFontColor $DARK
	BorderThickness 1
	AttributeFontColor $LIGHT
	AttributeFontSize 11
}
!endsub

!startsub usecase

skinparam usecase {
	$PRIMARY_SCHEME()
    FontSize 14
    backgroundColor BLACK
    FontColor $FONT_LIGHT
    BorderColor $BACKGROUND_DARK
	BorderThickness 2
	StereotypeFontColor $JADE_MID
    ArrowThickness 2
}
!endsub

!startsub rectangle

skinparam rectangle {
	$secondary_scheme()
	BorderThickness 2
	StereotypeFontColor $JADE_MID
}
!endsub

!startsub package

skinparam package {
    TitleFontColor $BLUE_LIGHT
    FontColor $JADE_MID
	BorderColor $BACKGROUND_LIGHT
	BackgroundColor transparent
	BorderThickness 2
}
!endsub

!startsub folder

skinparam folder {
	BackgroundColor $WHITE-$SECONDARY_LIGHT
  	BorderColor $WARNING
	FontColor $WARNING
	BorderThickness 2
}
!endsub

!startsub frame

skinparam frame {
	BackgroundColor $WHITE-$SECONDARY_LIGHT
  	BorderColor $INFO
	FontColor $INFO
	BorderThickness 2
}
!endsub

!startsub state

skinparam state {
	$PRIMARY_SCHEME()
	BorderColor $JADE_DARK
	StartColor $INFO
	EndColor $INFO
	AttributeFontColor $LIGHT
	AttributeFontSize 11
}
!endsub

!startsub queue

skinparam queue {
	$PRIMARY_SCHEME()
}
!endsub

!startsub card

skinparam card {
	BackgroundColor $INFO_LIGHT-$INFO
	BorderColor $INFO
	FontColor $INFO_TEXT
}
!endsub

!startsub file

skinparam file {
	BackgroundColor $SECONDARY_LIGHT-$SECONDARY
	BorderColor $INFO
	FontColor $SECONDARY_TEXT

}
!endsub

!startsub stack

skinparam stack {
	$PRIMARY_SCHEME()
}
!endsub