@startuml ' If ENABLE_ALL_PLANT_ELEMENTS is set BEFORE the first C4_* file is loaded, ' nearly "all" PlantUML elements can be used like ' Component(StorageA, "Storage A ", $baseShape="storage") !ENABLE_ALL_PLANT_ELEMENTS = 1 ' convert it with additional command line argument -DRELATIVE_INCLUDE="./.." to use locally !if %variable_exists("RELATIVE_INCLUDE") ' percy runs (sometimes) with 1.2023.7 ' !theme C4_united from %get_variable_value("RELATIVE_INCLUDE")/themes !theme C4_united from ./../themes ' !theme C4_green from ./../themes !include ./../C4_Component.puml !else !theme C4_united from https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/themes ' !theme C4_green from https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/themes !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Component.puml !endif LAYOUT_TOP_DOWN() ' default is rectangle Component(Component, "Container", "", "A component") ' already supported: rectangle, database, queue Component(rectangleComponent, "Container rectangle", "rectangle", "A component with rectangle element", $baseShape="rectangle") Component(databaseComponent, "Container database", "database", "A component with database element", $baseShape="database") Component(queueComponent, "Container queue", "queue", "A component with queue element", $baseShape="queue") ' already supported: rectangle, database, queue ' already defined (via other): ' node has a different style (cannot changed automatically) ' actor/ not working (font color not changed to $bkColor) - and/or conflict with existing? ' label not working (font color not changed to $bkColor) Component(actorComponent, "Component actor", "actor", "A component with actor element", $baseShape="actor") Component(actorBCComponent, "Component actor/", "actor/", "A component with actor/ element", $baseShape="actor/") Component(agentComponent, "Component agent", "agent", "A component with agent element", $baseShape="agent") Component(artifactComponent, "Component artifact", "artifact", "A component with artifact element", $baseShape="artifact") Component(boundaryComponent, "Component boundary", "boundary", "A component with boundary element", $baseShape="boundary") Component(cardComponent, "Component card", "card", "A component with card element", $baseShape="card") Component(circleComponent, "Component circle", "circle", "A component with circle element", $baseShape="circle") Component(cloudComponent, "Component cloud", "cloud", "A component with cloud element", $baseShape="cloud") Component(collectionsComponent, "Component collections", "collections", "A component with collections element", $baseShape="collections") Component(controlComponent, "Component control", "control", "A component with control element", $baseShape="control") Component(entityComponent, "Component entity", "entity", "A component with entity element", $baseShape="entity") Component(fileComponent, "Component file", "file", "A component with file element", $baseShape="file") Component(folderComponent, "Component folder", "folder", "A component with folder element", $baseShape="folder") Component(frameComponent, "Component frame", "frame", "A component with frame element", $baseShape="frame") Component(hexagonComponent, "Component hexagon", "hexagon", "A component with hexagon element", $baseShape="hexagon") Component(interfaceComponent, "Component interface", "interface", "A component with interface element", $baseShape="interface") Component(labelComponent, "Component label", "label", "A component with label element", $baseShape="label") Component(nodeComponent, "Component node", "node", "A component with node element", $baseShape="node") Component(packageComponent, "Component package", "package", "A component with package element", $baseShape="package") Component(personComponent, "Component person", "person", "A component with person element", $baseShape="person") Component(stackComponent, "Component stack", "stack", "A component with stack element", $baseShape="stack") Component(storageComponent, "Component storage", "storage", "A component with storage element", $baseShape="storage") Component(usecaseComponent, "Component usecase", "usecase", "A component with usecase element", $baseShape="usecase") Component(usecaseBCComponent, "Component usecase/", "usecase/", "A component with usecase/ element", $baseShape="usecase/") Container(actorContainer, "Container actor", "actor", "A Container with actor element", $baseShape="actor") Container(actorBCContainer, "Container actor/", "actor/", "A Container with actor/ element", $baseShape="actor/") Container(agentContainer, "Container agent", "agent", "A Container with agent element", $baseShape="agent") Container(artifactContainer, "Container artifact", "artifact", "A Container with artifact element", $baseShape="artifact") Container(boundaryContainer, "Container boundary", "boundary", "A Container with boundary element", $baseShape="boundary") Container(cardContainer, "Container card", "card", "A Container with card element", $baseShape="card") Container(circleContainer, "Container circle", "circle", "A Container with circle element", $baseShape="circle") Container(cloudContainer, "Container cloud", "cloud", "A Container with cloud element", $baseShape="cloud") Container(collectionsContainer, "Container collections", "collections", "A Container with collections element", $baseShape="collections") Container(controlContainer, "Container control", "control", "A Container with control element", $baseShape="control") Container(entityContainer, "Container entity", "entity", "A Container with entity element", $baseShape="entity") Container(fileContainer, "Container file", "file", "A Container with file element", $baseShape="file") Container(folderContainer, "Container folder", "folder", "A Container with folder element", $baseShape="folder") Container(frameContainer, "Container frame", "frame", "A Container with frame element", $baseShape="frame") Container(hexagonContainer, "Container hexagon", "hexagon", "A Container with hexagon element", $baseShape="hexagon") Container(interfaceContainer, "Container interface", "interface", "A Container with interface element", $baseShape="interface") Container(labelContainer, "Container label", "label", "A Container with label element", $baseShape="label") Container(nodeContainer, "Container node", "node", "A Container with node element", $baseShape="node") Container(packageContainer, "Container package", "package", "A Container with package element", $baseShape="package") Container(personContainer, "Container person", "person", "A Container with person element", $baseShape="person") Container(stackContainer, "Container stack", "stack", "A Container with stack element", $baseShape="stack") Container(storageContainer, "Container storage", "storage", "A Container with storage element", $baseShape="storage") Container(usecaseContainer, "Container usecase", "usecase", "A Container with usecase element", $baseShape="usecase") Container(usecaseBCContainer, "Container usecase/", "usecase/", "A Container with usecase/ element", $baseShape="usecase/") System(actorSystem, "System actor", $type="actor", "A System with actor element", $baseShape="actor") System(actorBCSystem, "System actor/", $type="actor/", "A System with actor/ element", $baseShape="actor/") System(agentSystem, "System agent", $type="agent", "A System with agent element", $baseShape="agent") System(artifactSystem, "System artifact", $type="artifact", "A System with artifact element", $baseShape="artifact") System(boundarySystem, "System boundary", $type="boundary", "A System with boundary element", $baseShape="boundary") System(cardSystem, "System card", $type="card", "A System with card element", $baseShape="card") System(circleSystem, "System circle", $type="circle", "A System with circle element", $baseShape="circle") System(cloudSystem, "System cloud", $type="cloud", "A System with cloud element", $baseShape="cloud") System(collectionsSystem, "System collections", $type="collections", "A System with collections element", $baseShape="collections") System(controlSystem, "System control", $type="control", "A System with control element", $baseShape="control") System(entitySystem, "System entity", $type="entity", "A System with entity element", $baseShape="entity") System(fileSystem, "System file", $type="file", "A System with file element", $baseShape="file") System(folderSystem, "System folder", $type="folder", "A System with folder element", $baseShape="folder") System(frameSystem, "System frame", $type="frame", "A System with frame element", $baseShape="frame") System(hexagonSystem, "System hexagon", $type="hexagon", "A System with hexagon element", $baseShape="hexagon") System(interfaceSystem, "System interface", $type="interface", "A System with interface element", $baseShape="interface") System(labelSystem, "System label", $type="label", "A System with label element", $baseShape="label") System(nodeSystem, "System node", $type="node", "A System with node element", $baseShape="node") System(packageSystem, "System package", $type="package", "A System with package element", $baseShape="package") System(personSystem, "System person", $type="person", "A System with person element", $baseShape="person") System(stackSystem, "System stack", $type="stack", "A System with stack element", $baseShape="stack") System(storageSystem, "System storage", $type="storage", "A System with storage element", $baseShape="storage") System(usecaseSystem, "System usecase", $type="usecase", "A System with usecase element", $baseShape="usecase") System(usecaseBCSystem, "System usecase/", $type="usecase/", "A System with usecase/ element", $baseShape="usecase/") SHOW_LEGEND(false) @enduml