diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,20 @@
 Brick changelog
 ---------------
 
+0.53
+----
+
+Package changes:
+ * Relaxed base bounds to allow building with GHC 8.10 (thanks Joshua
+   Chia)
+
+Bug fixes:
+ * `vLimitPercent`: use correct horizontal size policy from child
+   (thanks Janek Spaderna)
+ * `str`: be more aggressive in determining how many characters to
+   display (attempt to display as many zero-width characters as
+   possible)
+
 0.52.1
 ------
 
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -61,6 +61,7 @@
  * [`solitaire`](https://github.com/ambuc/solitaire), the card game
  * [`sudoku-tui`](https://github.com/evanrelf/sudoku-tui), a Sudoku implementation
  * [`summoner-tui`](https://github.com/kowainik/summoner/tree/master/summoner-tui), an interactive frontend to the Summoner tool
+ * [`wrapping-editor`](https://github.com/ta0kira/wrapping-editor), an embeddable editor with support for Brick
 
 These third-party packages also extend `brick`:
 
diff --git a/brick.cabal b/brick.cabal
--- a/brick.cabal
+++ b/brick.cabal
@@ -1,5 +1,5 @@
 name:                brick
-version:             0.52.1
+version:             0.53
 synopsis:            A declarative terminal user interface library
 description:
   Write terminal user interfaces (TUIs) painlessly with 'brick'! You
@@ -113,7 +113,7 @@
     Brick.Types.Internal
     Brick.Widgets.Internal
 
-  build-depends:       base <= 4.13.0.0,
+  build-depends:       base <= 4.14.0.0,
                        vty >= 5.24,
                        transformers,
                        data-clist >= 0.1,
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
@@ -236,11 +236,9 @@
 takeColumns _ "" = ""
 takeColumns numCols (c:cs) =
     let w = V.safeWcwidth c
-    in if w == numCols
-       then [c]
-       else if w < numCols
-            then c : takeColumns (numCols - w) cs
-            else ""
+    in if w > numCols
+       then []
+       else c : takeColumns (numCols - w) cs
 
 -- | Make a widget from a string, but wrap the words in the input's
 -- lines at the available width using the default wrapping settings. The
@@ -807,7 +805,7 @@
 -- defers to the limited widget horizontally.
 vLimitPercent :: Int -> Widget n -> Widget n
 vLimitPercent h' p =
-    Widget (vSize p) Fixed $ do
+    Widget (hSize p) Fixed $ do
       let h = clamp 0 100 h'
       ctx <- getContext
       let usableHeight = ctx^.availHeightL
