diff --git a/diagrams/c4/__init__.py b/diagrams/c4/__init__.py index f53a65b..9b0ce15 100644 --- a/diagrams/c4/__init__.py +++ b/diagrams/c4/__init__.py @@ -58,6 +58,19 @@ def C4Node(name, technology="", description="", type="Container", **kwargs): return Node(**node_attributes) +def Component(name, technology="", description="", **kwargs): + container_attributes = { + "name": name, + "technology": technology, + "description": description, + "type": "Component", + "fillcolor": "lightskyblue", + "fontcolor": "black", + } + container_attributes.update(kwargs) + return C4Node(**container_attributes) + + def Container(name, technology="", description="", **kwargs): container_attributes = { "name": name, diff --git a/tests/test_c4.py b/tests/test_c4.py index 3877ec0..c629977 100644 --- a/tests/test_c4.py +++ b/tests/test_c4.py @@ -5,7 +5,7 @@ import unittest from diagrams import Diagram from diagrams import setcluster, setdiagram -from diagrams.c4 import Person, Container, Database, System, SystemBoundary, Relationship +from diagrams.c4 import Person, Container, Database, Component, System, SystemBoundary, Relationship class C4Test(unittest.TestCase): @@ -25,6 +25,7 @@ class C4Test(unittest.TestCase): person = Person("person", "A person.") container = Container("container", "Java application", "The application.") database = Database("database", "Oracle database", "Stores information.") + component = Component("component", "Sign In Controller", "A component.") def test_external_nodes(self): with Diagram(name=self.name, show=False):