diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,13 @@
 Brick changelog
 ---------------
 
+0.39
+----
+
+New features:
+ * The `italic` keyword is now supported in theme customization file
+   style lists. This requires `vty >= 5.23.1`
+
 0.38
 ----
 
diff --git a/brick.cabal b/brick.cabal
--- a/brick.cabal
+++ b/brick.cabal
@@ -1,5 +1,5 @@
 name:                brick
-version:             0.38
+version:             0.39
 synopsis:            A declarative terminal user interface library
 description:
   Write terminal applications painlessly with 'brick'! You write an
@@ -87,7 +87,7 @@
     Brick.Widgets.Internal
 
   build-depends:       base <= 4.11.1.0,
-                       vty >= 5.22,
+                       vty >= 5.23.1,
                        transformers,
                        data-clist >= 0.1,
                        dlist,
@@ -157,7 +157,7 @@
   main-is:             CacheDemo.hs
   build-depends:       base,
                        brick,
-                       vty >= 5.22,
+                       vty,
                        text,
                        microlens >= 0.3.0.0,
                        microlens-th
@@ -171,7 +171,7 @@
   main-is:             VisibilityDemo.hs
   build-depends:       base,
                        brick,
-                       vty >= 5.22,
+                       vty,
                        text,
                        microlens >= 0.3.0.0,
                        microlens-th
@@ -186,7 +186,7 @@
   main-is:             ViewportScrollDemo.hs
   build-depends:       base,
                        brick,
-                       vty >= 5.22,
+                       vty,
                        text,
                        microlens
 
@@ -199,7 +199,7 @@
   main-is:             DialogDemo.hs
   build-depends:       base,
                        brick,
-                       vty >= 5.22,
+                       vty,
                        text,
                        microlens
 
@@ -212,7 +212,7 @@
   main-is:             MouseDemo.hs
   build-depends:       base,
                        brick,
-                       vty >= 5.22,
+                       vty,
                        text,
                        microlens >= 0.3.0.0,
                        microlens-th,
@@ -227,7 +227,7 @@
   main-is:             LayerDemo.hs
   build-depends:       base,
                        brick,
-                       vty >= 5.22,
+                       vty,
                        text,
                        microlens >= 0.3.0.0,
                        microlens-th
@@ -241,7 +241,7 @@
   main-is:             SuspendAndResumeDemo.hs
   build-depends:       base,
                        brick,
-                       vty >= 5.22,
+                       vty,
                        text,
                        microlens >= 0.3.0.0,
                        microlens-th
@@ -255,7 +255,7 @@
   main-is:             PaddingDemo.hs
   build-depends:       base,
                        brick,
-                       vty >= 5.22,
+                       vty,
                        text,
                        microlens
 
@@ -268,7 +268,7 @@
   main-is:             ThemeDemo.hs
   build-depends:       base,
                        brick,
-                       vty >= 5.22,
+                       vty,
                        text,
                        microlens
 
@@ -281,7 +281,7 @@
   main-is:             AttrDemo.hs
   build-depends:       base,
                        brick,
-                       vty >= 5.22,
+                       vty,
                        text,
                        microlens
 
@@ -294,7 +294,7 @@
   main-is:             MarkupDemo.hs
   build-depends:       base,
                        brick,
-                       vty >= 5.22,
+                       vty,
                        text,
                        microlens
 
@@ -307,7 +307,7 @@
   main-is:             ListDemo.hs
   build-depends:       base,
                        brick,
-                       vty >= 5.22,
+                       vty,
                        text,
                        microlens >= 0.3.0.0,
                        vector
@@ -321,7 +321,7 @@
   main-is:             ListViDemo.hs
   build-depends:       base,
                        brick,
-                       vty >= 5.22,
+                       vty,
                        text,
                        microlens >= 0.3.0.0,
                        vector
@@ -335,7 +335,7 @@
   main-is:             CustomEventDemo.hs
   build-depends:       base,
                        brick,
-                       vty >= 5.22,
+                       vty,
                        text,
                        microlens >= 0.3.0.0,
                        microlens-th
@@ -349,7 +349,7 @@
   main-is:             FillDemo.hs
   build-depends:       base,
                        brick,
-                       vty >= 5.22,
+                       vty,
                        text,
                        microlens
 
@@ -362,7 +362,7 @@
   main-is:             HelloWorldDemo.hs
   build-depends:       base,
                        brick,
-                       vty >= 5.22,
+                       vty,
                        text,
                        microlens
 
@@ -375,7 +375,7 @@
   main-is:             EditDemo.hs
   build-depends:       base,
                        brick,
-                       vty >= 5.22,
+                       vty,
                        text,
                        vector,
                        microlens >= 0.3.0.0,
@@ -391,7 +391,7 @@
   main-is:             BorderDemo.hs
   build-depends:       base,
                        brick,
-                       vty >= 5.22,
+                       vty,
                        text,
                        microlens
 
@@ -405,7 +405,7 @@
   main-is:             DynamicBorderDemo.hs
   build-depends:       base <= 5,
                        brick,
-                       vty >= 5.22,
+                       vty,
                        text,
                        microlens
 
@@ -419,7 +419,7 @@
   main-is:             ProgressBarDemo.hs
   build-depends:       base,
                        brick,
-                       vty >= 5.22,
+                       vty,
                        text,
                        microlens
 
diff --git a/src/Brick/Themes.hs b/src/Brick/Themes.hs
--- a/src/Brick/Themes.hs
+++ b/src/Brick/Themes.hs
@@ -29,7 +29,7 @@
 -- (without quotes) or a comma-delimited list of one or more of the
 -- following values (e.g. @"[bold,underline]"@) indicating that all
 -- of the specified styles be used. Valid styles are @standout@,
--- @underline@, @reverseVideo@, @blink@, @dim@, and @bold@.
+-- @underline@, @reverseVideo@, @blink@, @dim@, @italic@, and @bold@.
 --
 -- The @other@ section specifies for each attribute name in the theme
 -- the same @fg@, @bg@, and @style@ settings as for the default
@@ -251,6 +251,7 @@
     , ("blink", blink)
     , ("dim", dim)
     , ("bold", bold)
+    , ("italic", italic)
     ]
 
 parseStyle :: T.Text -> Either String Style
diff --git a/src/Brick/Widgets/Core.hs b/src/Brick/Widgets/Core.hs
--- a/src/Brick/Widgets/Core.hs
+++ b/src/Brick/Widgets/Core.hs
@@ -239,12 +239,14 @@
             else ""
 
 -- | Make a widget from a string, but wrap the words in the input's
--- lines at the available width using the default wrapping settings.
+-- lines at the available width using the default wrapping settings. The
+-- input string should not contain escapes.
 strWrap :: String -> Widget n
 strWrap = strWrapWith defaultWrapSettings
 
 -- | Make a widget from a string, but wrap the words in the input's
 -- lines at the available width using the specified wrapping settings.
+-- The input string should not contain escapes.
 strWrapWith :: WrapSettings -> String -> Widget n
 strWrapWith settings t = txtWrapWith settings $ T.pack t
 
@@ -252,12 +254,14 @@
 safeTextWidth = V.safeWcswidth . T.unpack
 
 -- | Make a widget from text, but wrap the words in the input's lines at
--- the available width using the default wrapping settings.
+-- the available width using the default wrapping settings. The input
+-- text should not contain escapes.
 txtWrap :: T.Text -> Widget n
 txtWrap = txtWrapWith defaultWrapSettings
 
 -- | Make a widget from text, but wrap the words in the input's lines at
--- the available width using the specified wrapping settings.
+-- the available width using the specified wrapping settings. The input
+-- text should not contain escapes.
 txtWrapWith :: WrapSettings -> T.Text -> Widget n
 txtWrapWith settings s =
     Widget Greedy Fixed $ do
@@ -281,7 +285,8 @@
 -- The input string must not contain tab characters. If it does,
 -- interface corruption will result since the terminal will likely
 -- render it as taking up more than a single column. The caller should
--- replace tabs with the appropriate number of spaces as desired.
+-- replace tabs with the appropriate number of spaces as desired. The
+-- reinput string should not contain escapes.
 str :: String -> Widget n
 str s =
     Widget Fixed Fixed $ do
@@ -306,7 +311,8 @@
 -- The input string must not contain tab characters. If it does,
 -- interface corruption will result since the terminal will likely
 -- render it as taking up more than a single column. The caller should
--- replace tabs with the appropriate number of spaces as desired.
+-- replace tabs with the appropriate number of spaces as desired. The
+-- reinput text should not contain escapes.
 txt :: T.Text -> Widget n
 txt = str . T.unpack
 
