diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2d5cffb49abb02cf7a87fd3e3f333ccabaeacc92..73c6a3d5a3e1bc71f6f8035693226c151a098ac9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ current (development)
 - Feature: Support `ResizableSplit` with customizable separator.
 - Breaking: MenuDirection enum is renamed Direction
 - Fix: Remove useless new line when using an alternative screen.
+- Breaking/Fix: Remove `ComponentBase` copy constructor/assignment.
 
 ### Dom
 - Feature: Add the dashed style for border and separator.
diff --git a/include/ftxui/component/component_base.hpp b/include/ftxui/component/component_base.hpp
index d63c7ed29e0d49bc64027d0e543a81fa39e15f9f..25a2b87008a30b297e2a07bb5a66715a8185e74b 100644
--- a/include/ftxui/component/component_base.hpp
+++ b/include/ftxui/component/component_base.hpp
@@ -29,6 +29,12 @@ class ComponentBase {
   // virtual Destructor.
   virtual ~ComponentBase();
 
+  ComponentBase() = default;
+
+  // A component is not copiable.
+  ComponentBase(const ComponentBase&) = delete;
+  void operator=(const ComponentBase&) = delete;
+
   // Component hierarchy:
   ComponentBase* Parent() const;
   Component& ChildAt(size_t i);