diff --git a/include/ftxui/component/component.hpp b/include/ftxui/component/component.hpp
index 679cd1b9b40f65f380e648aa793ef2fc200a2be7..0a8df0223fb0274183b7010bc287c0dfec094c22 100644
--- a/include/ftxui/component/component.hpp
+++ b/include/ftxui/component/component.hpp
@@ -67,9 +67,8 @@ Component Radiobox(ConstStringListRef entries,
                    Ref<RadioboxOption> option = {});
 Component Toggle(ConstStringListRef entries, int* selected);
 
-
 // General slider constructor:
-template <typename T> 
+template <typename T>
 Component Slider(SliderOption<T> options = {});
 
 // Shorthand without the `SliderOption` constructor:
diff --git a/include/ftxui/screen/screen.hpp b/include/ftxui/screen/screen.hpp
index d8a5329db2747ce8e78404b633aec5b5b6f3eacc..b6e82fcbca535a5a0e558fb343e971cebafe7b14 100644
--- a/include/ftxui/screen/screen.hpp
+++ b/include/ftxui/screen/screen.hpp
@@ -2,7 +2,7 @@
 #define FTXUI_SCREEN_SCREEN_HPP
 
 #include <memory>
-#include <string>  // for string, allocator, basic_string
+#include <string>  // for allocator, string, basic_string
 #include <vector>  // for vector
 
 #include "ftxui/screen/box.hpp"       // for Box
diff --git a/src/ftxui/component/animation.cpp b/src/ftxui/component/animation.cpp
index 69386024506bec3ee90988adfc518c5deae8c6e9..1a0a501b98c3b1857f482e3d323e685ecc1fd65a 100644
--- a/src/ftxui/component/animation.cpp
+++ b/src/ftxui/component/animation.cpp
@@ -1,4 +1,5 @@
-#include <cmath>    // IWYU pragma: keep
+#include <cmath>    // for sin, pow, sqrt, cos
+#include <compare>  // for operator<=, operator>=, partial_ordering
 #include <ratio>    // for ratio
 #include <utility>  // for move
 
diff --git a/src/ftxui/component/screen_interactive.cpp b/src/ftxui/component/screen_interactive.cpp
index b77cab209a293fb507b53b7bf2233d89e0821a48..f9db0a4e3f7742318147613a1b33a306596eada4 100644
--- a/src/ftxui/component/screen_interactive.cpp
+++ b/src/ftxui/component/screen_interactive.cpp
@@ -1,6 +1,7 @@
 #include <algorithm>  // for copy, max, min
 #include <array>      // for array
-#include <chrono>  // for operator-, milliseconds, operator>=, duration, common_type<>::type, time_point
+#include <chrono>  // for operator-, milliseconds, operator<=>, duration, common_type<>::type, time_point
+#include <compare>  // for operator>=, strong_ordering
 #include <csignal>  // for signal, SIGTSTP, SIGABRT, SIGWINCH, raise, SIGFPE, SIGILL, SIGINT, SIGSEGV, SIGTERM, __sighandler_t, size_t
 #include <cstdio>   // for fileno, stdin
 #include <ftxui/component/task.hpp>  // for Task, Closure, AnimationTask
@@ -26,8 +27,7 @@
 #include "ftxui/component/terminal_input_parser.hpp"  // for TerminalInputParser
 #include "ftxui/dom/node.hpp"                         // for Node, Render
 #include "ftxui/dom/requirement.hpp"                  // for Requirement
-#include "ftxui/screen/string.hpp"
-#include "ftxui/screen/terminal.hpp"                  // for Size, Dimensions
+#include "ftxui/screen/terminal.hpp"                  // for Dimensions, Size
 
 #if defined(_WIN32)
 #define DEFINE_CONSOLEV2_PROPERTIES
@@ -107,7 +107,7 @@ void EventListener(std::atomic<bool>* quit, Sender<Task> out) {
             continue;
           std::wstring wstring;
           wstring += key_event.uChar.UnicodeChar;
-          for(auto it : to_string(wstring)) {
+          for (auto it : to_string(wstring)) {
             parser.Add(it);
           }
         } break;
diff --git a/src/ftxui/component/slider_test.cpp b/src/ftxui/component/slider_test.cpp
index 12f60ce8dfe12d9cae76ca13ca015b7ab3ec0a8f..98a8a19908062dfa7b50379fb7cbe7eb2bd5a88f 100644
--- a/src/ftxui/component/slider_test.cpp
+++ b/src/ftxui/component/slider_test.cpp
@@ -1,12 +1,14 @@
-#include <gtest/gtest.h>  // for AssertionResult, Message, TestPartResult, Test, EXPECT_TRUE, EXPECT_EQ, SuiteApiResolver, TestInfo (ptr only), EXPECT_FALSE, TEST, TestFactoryImpl
+#include <gtest/gtest.h>  // for AssertionResult, Message, TestPartResult, Test, EXPECT_EQ, EXPECT_TRUE, TestInfo (ptr only), EXPECT_FALSE, TEST
+#include <stddef.h>       // for size_t
 #include <array>          // for array
 #include <ftxui/component/mouse.hpp>  // for Mouse, Mouse::Left, Mouse::Pressed, Mouse::Released
-#include <ftxui/dom/elements.hpp>  // for GaugeDirection, GaugeDirection::Down, GaugeDirection::Left, GaugeDirection::Right, GaugeDirection::Up
-#include <memory>  // for __shared_ptr_access, shared_ptr, allocator
+#include <ftxui/dom/elements.hpp>  // for GaugeDirection, GaugeDirection::Down, GaugeDirection::Left, GaugeDirection::Right, GaugeDirection::Up, frame
+#include <memory>  // for shared_ptr, __shared_ptr_access, allocator
+#include <string>  // for to_string
 
-#include "ftxui/component/component.hpp"       // for Slider
+#include "ftxui/component/component.hpp"  // for Slider, Vertical, operator|=
 #include "ftxui/component/component_base.hpp"  // for ComponentBase
-#include "ftxui/component/event.hpp"           // for Event
+#include "ftxui/component/event.hpp"           // for Event, Event::ArrowDown
 #include "ftxui/dom/node.hpp"                  // for Render
 #include "ftxui/screen/screen.hpp"             // for Screen
 
@@ -133,7 +135,7 @@ TEST(SliderTest, Up) {
 TEST(SliderTest, Focus) {
   static std::array<int, 10> values;
   auto container = Container::Vertical({});
-  for(size_t i = 0; i<values.size(); ++i) {
+  for (size_t i = 0; i < values.size(); ++i) {
     container->Add(Slider(std::to_string(i), &values[i]));
   }
   container |= frame;
@@ -141,45 +143,45 @@ TEST(SliderTest, Focus) {
   Screen screen(10, 3);
 
   Render(screen, container->Render());
-  EXPECT_EQ(screen.at(0, 0), "0"); // Select 0
+  EXPECT_EQ(screen.at(0, 0), "0");  // Select 0
   EXPECT_EQ(screen.at(0, 1), "1");
   EXPECT_EQ(screen.at(0, 2), "2");
 
   EXPECT_TRUE(container->OnEvent(Event::ArrowDown));
   Render(screen, container->Render());
   EXPECT_EQ(screen.at(0, 0), "0");
-  EXPECT_EQ(screen.at(0, 1), "1"); // Select 1
+  EXPECT_EQ(screen.at(0, 1), "1");  // Select 1
   EXPECT_EQ(screen.at(0, 2), "2");
 
   EXPECT_TRUE(container->OnEvent(Event::ArrowDown));
   Render(screen, container->Render());
   EXPECT_EQ(screen.at(0, 0), "1");
-  EXPECT_EQ(screen.at(0, 1), "2"); // Select 2
+  EXPECT_EQ(screen.at(0, 1), "2");  // Select 2
   EXPECT_EQ(screen.at(0, 2), "3");
 
-  EXPECT_TRUE(container->OnEvent(Event::ArrowDown)); // Select 3
-  EXPECT_TRUE(container->OnEvent(Event::ArrowDown)); // Select 4
-  EXPECT_TRUE(container->OnEvent(Event::ArrowDown)); // Select 5
-  EXPECT_TRUE(container->OnEvent(Event::ArrowDown)); // Select 6
+  EXPECT_TRUE(container->OnEvent(Event::ArrowDown));  // Select 3
+  EXPECT_TRUE(container->OnEvent(Event::ArrowDown));  // Select 4
+  EXPECT_TRUE(container->OnEvent(Event::ArrowDown));  // Select 5
+  EXPECT_TRUE(container->OnEvent(Event::ArrowDown));  // Select 6
 
   EXPECT_TRUE(container->OnEvent(Event::ArrowDown));
   Render(screen, container->Render());
   EXPECT_EQ(screen.at(0, 0), "6");
-  EXPECT_EQ(screen.at(0, 1), "7"); // Select 7
+  EXPECT_EQ(screen.at(0, 1), "7");  // Select 7
   EXPECT_EQ(screen.at(0, 2), "8");
 
   EXPECT_TRUE(container->OnEvent(Event::ArrowDown));
   Render(screen, container->Render());
   EXPECT_EQ(screen.at(0, 0), "7");
-  EXPECT_EQ(screen.at(0, 1), "8"); // Select 8
+  EXPECT_EQ(screen.at(0, 1), "8");  // Select 8
   EXPECT_EQ(screen.at(0, 2), "9");
 
   EXPECT_TRUE(container->OnEvent(Event::ArrowDown));
   Render(screen, container->Render());
   EXPECT_EQ(screen.at(0, 0), "7");
   EXPECT_EQ(screen.at(0, 1), "8");
-  EXPECT_EQ(screen.at(0, 2), "9"); // Select 9
-  
+  EXPECT_EQ(screen.at(0, 2), "9");  // Select 9
+
   EXPECT_FALSE(container->OnEvent(Event::ArrowDown));
 }
 
diff --git a/src/ftxui/dom/scroll_indicator.cpp b/src/ftxui/dom/scroll_indicator.cpp
index 3111b17fd2b4a7d79ef189919a9dfcb1998d04e0..753b2397745a73626829c9415a721a286ab30eef 100644
--- a/src/ftxui/dom/scroll_indicator.cpp
+++ b/src/ftxui/dom/scroll_indicator.cpp
@@ -27,7 +27,7 @@ Element vscroll_indicator(Element child) {
     }
 
     void SetBox(Box box) override {
-      Node::SetBox(box);
+      box_ = box;
       box.x_max--;
       children_[0]->SetBox(box);
     }
diff --git a/src/ftxui/dom/scroll_indicator_test.cpp b/src/ftxui/dom/scroll_indicator_test.cpp
index b49d3039043226b701916037e0200122faa3cca6..471377253280d20fccf77e55b2b378d0961a1968 100644
--- a/src/ftxui/dom/scroll_indicator_test.cpp
+++ b/src/ftxui/dom/scroll_indicator_test.cpp
@@ -109,7 +109,7 @@ namespace {
 Element MakeHorizontalFlexboxList(int n) {
   Elements list;
   for (int i = 0; i < n; ++i) {
-    list.push_back(text(std::to_string(i%10)));
+    list.push_back(text(std::to_string(i % 10)));
   }
   return flexbox(std::move(list)) | vscroll_indicator | yframe | border;
 }
@@ -194,7 +194,7 @@ TEST(ScrollIndicator, HorizontalFlexbox) {
             "╰────╯");
 }
 
-}
+}  // namespace
 
 }  // namespace ftxui
 
diff --git a/src/ftxui/screen/screen.cpp b/src/ftxui/screen/screen.cpp
index 21a93cab550020761ce024aa00fe040a424f5b5d..a358966fb7b2510bff9b84e0fd181bce9f4a0738 100644
--- a/src/ftxui/screen/screen.cpp
+++ b/src/ftxui/screen/screen.cpp
@@ -49,6 +49,7 @@ void WindowsEmulateVT100Terminal() {
 }
 #endif
 
+// NOLINTNEXTLINE(readability-function-cognitive-complexity)
 void UpdatePixelStyle(std::stringstream& ss,
                       Pixel& previous,
                       const Pixel& next) {