!$THEME = "fint"
!if %not(%variable_exists("$BGCOLOR"))
!$BGCOLOR = "transparent"
!endif
skinparam backgroundColor $BGCOLOR

!$BLUE = "#033C73"
!$INDIGO = "#6610F2"
!$PURPLE = "#6F42C1"
!$PINK = "#E83E8C"
!$RED = "#C71C22"
!$ORANGE = "#FD7E14"
!$YELLOW = "#DD5600"
!$GREEN = "#73A839"
!$TEAL = "#20C997"
!$CYAN = "#2FA4E7"
!$WHITE = "#FFF"
!$GRAY_DARK = "#343A40"
!$GRAY = "#868E96"
!$PRIMARY = "#00BADA"
!$SECONDARY = "#E9ECEF"
!$SUCCESS = "#73A839"
!$INFO = "#033C73"
!$WARNING = "#DD5600"
!$DANGER = "#C71C22"
!$LIGHT = "#F8F9FA"
!$DARK = "#343A40"

!$FGCOLOR = $DARK
!$PRIMARY_LIGHT = "#E9F9FB"
!$PRIMARY_DARK = "#2683B9"
!$PRIMARY_TEXT = "#00BADA"
!$SECONDARY_LIGHT = "#EDF0F2"
!$SECONDARY_DARK = "#BABDBF"
!$SECONDARY_TEXT = $DARK
!$INFO_LIGHT = "#35638F"
!$INFO_DARK = "#02305C"
!$INFO_TEXT = $WHITE
!$SUCCESS_LIGHT = "#8FB961"
!$SUCCESS_DARK = "#5C862E"
!$SUCCESS_TEXT = $WHITE
!$WARNING_LIGHT = "#E47833"
!$WARNING_DARK = "#B14500"
!$WARNING_TEXT = $WHITE
!$DANGER_LIGHT = "#D2494E"
!$DANGER_DARK = "#9F161B"
!$DANGER_TEXT = $WHITE

!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 $PRIMARY_TEXT
	BorderColor $PRIMARY
	BackgroundColor $PRIMARY_LIGHT
!endprocedure

skinparam defaultFontName        "DejaVu Serif"
skinparam defaultFontSize        12
skinparam dpi                    100
skinparam shadowing              false
skinparam roundcorner            8
skinparam ParticipantPadding     40
skinparam BoxPadding             40
skinparam Padding                5
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	                 $PRIMARY
	BorderColor	                 $SECONDARY_DARK
	FontSize	    	         20
	BorderRoundCorner            8
	BorderThickness 	         1
	BackgroundColor              $SECONDARY_LIGHT-$SECONDARY
}

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

skinparam swimlane {
	BorderColor $INFO
	BorderThickness 2
	TitleBackgroundColor  $SECONDARY_LIGHT-$SECONDARY
	TitleFontColor $PRIMARY
}

skinparam activity {
	$primary_scheme()
	BarColor $SUCCESS
	StartColor $INFO
	EndColor $INFO

	DiamondBackgroundColor $WHITE-$SECONDARY_LIGHT
  	DiamondBorderColor $SECONDARY_DARK
	DiamondFontColor $SECONDARY_TEXT
}

skinparam participant {
	$primary_scheme()
	ParticipantBorderThickness 2
}

skinparam actor {
	$primary_scheme()
	FontColor $DARK
}

skinparam arrow {
	Thickness 3
	Color $PRIMARY
	FontColor $FGCOLOR
}

skinparam sequence {
	BorderColor $PRIMARY
	TitleFontColor $PRIMARY
	BackgroundColor $BGCOLOR
	StartColor $PRIMARY
	EndColor $PRIMARY

	BoxBackgroundColor $LIGHT
	BoxBorderColor $GRAY
	BoxFontColor $DARK

	LifeLineBorderColor $SECONDARY_DARK
	LifeLineBorderThickness 2
	LifeLineBackgroundColor $SECONDARY_LIGHT

	GroupBorderColor $GRAY
	GroupFontColor $DARK
	GroupHeaderFontColor $INFO

	DividerBackgroundColor $WHITE-$LIGHT
    DividerBorderColor $GRAY
    DividerBorderThickness 2
    DividerFontColor $DARK

	ReferenceBackgroundColor $BGCOLOR
	ReferenceBorderColor $GRAY
	ReferenceFontColor $DARK
	ReferenceHeaderFontColor $INFO
}

skinparam partition {
	BorderColor $PRIMARY
	FontColor $PRIMARY
	BackgroundColor $BGCOLOR
}

skinparam collections {
	$primary_scheme()
}

skinparam control {
	$primary_scheme()
	FontColor $DARK
}

skinparam entity {
	$primary_scheme()
	FontColor $DARK
}

skinparam boundary {
	$primary_scheme()
	FontColor $DARK
}

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

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

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

skinparam component {
	$primary_scheme()
}

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

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

skinparam node {
	BackgroundColor $SECONDARY_LIGHT-$SECONDARY
	BorderColor $SECONDARY
	FontColor $SECONDARY_TEXT
}

skinparam cloud {
	BackgroundColor #F2FCFE-#eeeeee
	BorderColor #F2FCFE
	FontColor $PRIMARY
}

skinparam database {
	$primary_scheme()
	FontColor $DARK
}

skinparam class {
	$primary_scheme()
	HeaderBackgroundColor $PRIMARY-$PRIMARY_DARK
	StereotypeFontColor $DARK
	BorderThickness 1
	AttributeFontColor $LIGHT
	AttributeFontSize 11
}

skinparam object {
	$primary_scheme()
	StereotypeFontColor $DARK
	BorderThickness 1
	AttributeFontColor $SECONDARY_TEXT
	AttributeFontSize 11
}

skinparam usecase {
	$primary_scheme()
	BorderThickness 2
	StereotypeFontColor $PRIMARY
}

skinparam rectangle {
	FontColor $PRIMARY
	BorderColor $PRIMARY_LIGHT
	BackgroundColor $BGCOLOR
	BorderThickness 2
	StereotypeFontColor $PRIMARY
}

skinparam package {
	FontColor $PRIMARY
	BorderColor $PRIMARY_LIGHT
	BackgroundColor $BGCOLOR
	BorderThickness 2
}

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

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

skinparam state {
	$primary_scheme()
	BorderColor $PRIMARY_DARK
	StartColor $INFO
	EndColor $INFO
	AttributeFontColor $SECONDARY_TEXT
	AttributeFontSize 11
}

skinparam queue {
	$primary_scheme()
}

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

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

}

skinparam stack {
	$primary_scheme()
}
