diff --git a/safe-coloured-text-layout-gen.cabal b/safe-coloured-text-layout-gen.cabal
new file mode 100644
--- /dev/null
+++ b/safe-coloured-text-layout-gen.cabal
@@ -0,0 +1,55 @@
+cabal-version: 1.12
+
+-- This file has been generated from package.yaml by hpack version 0.34.4.
+--
+-- see: https://github.com/sol/hpack
+
+name:           safe-coloured-text-layout-gen
+version:        0.0.0.0
+description:    Generators for types in safe-coloured-text-layout
+homepage:       https://github.com/NorfairKing/safe-coloured-text#readme
+bug-reports:    https://github.com/NorfairKing/safe-coloured-text/issues
+author:         Tom Sydney Kerckhove
+maintainer:     syd@cs-syd.eu
+copyright:      Copyright (c) 2021 Tom Sydney Kerckhove
+license:        MIT
+build-type:     Simple
+
+source-repository head
+  type: git
+  location: https://github.com/NorfairKing/safe-coloured-text
+
+library
+  exposed-modules:
+      Text.Colour.Layout.Gen
+  other-modules:
+      Paths_safe_coloured_text_layout_gen
+  hs-source-dirs:
+      src
+  build-depends:
+      base >=4.7 && <5
+    , genvalidity
+    , safe-coloured-text-gen
+    , safe-coloured-text-layout
+  default-language: Haskell2010
+
+test-suite safe-coloured-text-layout-gen-test
+  type: exitcode-stdio-1.0
+  main-is: Spec.hs
+  other-modules:
+      Text.Colour.Layout.GenSpec
+      Paths_safe_coloured_text_layout_gen
+  hs-source-dirs:
+      test
+  ghc-options: -threaded -rtsopts -with-rtsopts=-N
+  build-tool-depends:
+      sydtest-discover:sydtest-discover
+  build-depends:
+      base >=4.7 && <5
+    , genvalidity-sydtest
+    , safe-coloured-text
+    , safe-coloured-text-gen
+    , safe-coloured-text-layout
+    , safe-coloured-text-layout-gen
+    , sydtest
+  default-language: Haskell2010
diff --git a/src/Text/Colour/Layout/Gen.hs b/src/Text/Colour/Layout/Gen.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/Colour/Layout/Gen.hs
@@ -0,0 +1,15 @@
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+
+module Text.Colour.Layout.Gen where
+
+import Data.GenValidity
+import Text.Colour.Gen ()
+import Text.Colour.Layout
+
+instance GenValid Table where
+  genValid = genValidStructurallyWithoutExtraChecking
+  shrinkValid = shrinkValidStructurallyWithoutExtraFiltering
+
+instance GenValid TableBackground where
+  genValid = genValidStructurallyWithoutExtraChecking
+  shrinkValid = shrinkValidStructurallyWithoutExtraFiltering
diff --git a/test/Spec.hs b/test/Spec.hs
new file mode 100644
--- /dev/null
+++ b/test/Spec.hs
@@ -0,0 +1,1 @@
+{-# OPTIONS_GHC -F -pgmF sydtest-discover #-}
diff --git a/test/Text/Colour/Layout/GenSpec.hs b/test/Text/Colour/Layout/GenSpec.hs
new file mode 100644
--- /dev/null
+++ b/test/Text/Colour/Layout/GenSpec.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE TypeApplications #-}
+
+module Text.Colour.Layout.GenSpec (spec) where
+
+import Test.Syd
+import Test.Syd.Validity
+import Text.Colour.Layout
+import Text.Colour.Layout.Gen ()
+
+spec :: Spec
+spec = do
+  genValidSpec @Table
+  genValidSpec @TableBackground
