@ -1,57 +1,95 @@
# Themes
WIP: C4-PlantUML offers no finished themes (atm).
It is possible to define/use custom themes.
Similar to PlantUML themes supports C4-PlantUML `C4_...` specific themes (based on existing PlantUML themes).

- [📄 C4-PlantUML ](README.md#c4-plantuml )
- [📄 Layout Options ](LayoutOptions.md#layout-options )
- [📄 Themes ](#themes )
- [Overall Guidance](#overall-guidanc e)
- [Use theme](#use-them e)
- [List of available C4-themes ](#list-of-available-c4-themes )
- [How to write custom theme ](#how-to-write-custom-theme )
- [Following variables could be set in theme definitions too ](#following-variables-could-be-set-in-theme-definitions-too )
- samples
- [📄 Core Diagrams ](samples/C4CoreDiagrams.md#c4-model-diagrams )
## Overall Guidanc e
## Use them e
WIP ...
```plantuml
@startuml
!theme C4_FirstTest from https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/themes
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Component.puml
Person_Ext(customer, "Customer", "A customer of Widgets Limited.")
!theme C4_united from https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/themes
Enterprise_Boundary(c0, "Widgets Limited") {
Person(csa, "Customer Service Agent", "Deals with customer enquiries.")
System(ecommerce, "E-commerce System", "Allows customers to buy widgts online via the widgets.com website.")
System(fulfilment, "Fulfilment System", "Responsible for processing and shipping of customer orders.")
}
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
System_Ext(taxamo, "Taxamo", "Calculates local tax (for EU B2B customers) and acts as a front-end for Braintree Payments.")
System_Ext(braintree, "Braintree Payments", "Processes credit card payments on behalf of Widgets Limited.")
System_Ext(post, "Jersey Post", "Calculates worldwide shipping costs for packages.")
Person(admin, "Administrator")
System_Boundary(c1, "Sample System") {
Container(web_app, "Web Application", "C#, ASP.NET Core 2.1 MVC", "Allows users to compare multiple Twitter timelines")
}
System(twitter, "Twitter")
Rel_R(customer, csa, "Asks questions to", "Telephone")
Rel_R(customer, ecommerce, "Places orders for widgets using")
Rel(csa, ecommerce, "Looks up order information using")
Rel_R(ecommerce, fulfilment, "Sends order information to")
Rel_D(fulfilment, post, "Gets shipping charges from")
Rel_D(ecommerce, taxamo, "Delegates credit card processing to")
Rel_L(taxamo, braintree, "Uses for credit card processing")
Lay_D(customer, braintree)
Rel(admin, web_app, "Uses", "HTTPS")
Rel(web_app, twitter, "Gets tweets from", "HTTPS")
SHOW_LEGEND()
SHOW_FLOATING_LEGEND()
@enduml
```


## List of available C4-themes
Atm we have no finished C4-themes....
### C4_blue
C4_blue theme is the original theme and need no activation, but it could be used as starting point of another theme.
It can be activated with
```plantuml
!theme C4_blue from https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/themes
```

### C4_brown
It can be activated with
```plantuml
!theme C4_brown from https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/themes
```

### C4_green
It can be activated with
```plantuml
!theme C4_green from https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/themes
```

### C4_united
It can be activated with
```plantuml
!theme C4_united from https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/themes
```

### C4_violet
It can be activated with
```plantuml
!theme C4_violet from https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/themes
```

## How to write custom theme