diff --git a/src/__tests__/pretty-dom.js b/src/__tests__/pretty-dom.js
index 8a9dcaf1..69229995 100644
--- a/src/__tests__/pretty-dom.js
+++ b/src/__tests__/pretty-dom.js
@@ -155,6 +155,7 @@ test('prettyDOM can include all elements with a custom filter', () => {
 
 test('prettyDOM supports a COLORS environment variable', () => {
   const {container} = render('
Hello World!
')
+
   const noColors = prettyDOM(container, undefined, {highlight: false})
   const withColors = prettyDOM(container, undefined, {highlight: true})
 
@@ -166,48 +167,6 @@ test('prettyDOM supports a COLORS environment variable', () => {
   expect(prettyDOM(container)).toEqual(withColors)
 })
 
-test('prettyDOM handles a COLORS env variable of unexpected object type by colorizing for node', () => {
-  const {container} = render('Hello World!
')
-  const noColors = prettyDOM(container, undefined, {highlight: false})
-  const withColors = prettyDOM(container, undefined, {highlight: true})
-
-  const originalNodeVersion = process.versions.node
-  process.env.COLORS = '{}'
-  delete process.versions.node
-  expect(prettyDOM(container)).toEqual(noColors)
-  process.versions.node = '1.2.3'
-  expect(prettyDOM(container)).toEqual(withColors)
-  process.versions.node = originalNodeVersion
-})
-
-test('prettyDOM handles a COLORS env variable of undefined by colorizing for node', () => {
-  const {container} = render('Hello World!
')
-  const noColors = prettyDOM(container, undefined, {highlight: false})
-  const withColors = prettyDOM(container, undefined, {highlight: true})
-
-  const originalNodeVersion = process.versions.node
-  process.env.COLORS = undefined
-  delete process.versions.node
-  expect(prettyDOM(container)).toEqual(noColors)
-  process.versions.node = '1.2.3'
-  expect(prettyDOM(container)).toEqual(withColors)
-  process.versions.node = originalNodeVersion
-})
-
-test('prettyDOM handles a COLORS env variable of empty string by colorizing for node', () => {
-  const {container} = render('Hello World!
')
-  const noColors = prettyDOM(container, undefined, {highlight: false})
-  const withColors = prettyDOM(container, undefined, {highlight: true})
-
-  const originalNodeVersion = process.versions.node
-  process.env.COLORS = ''
-  delete process.versions.node
-  expect(prettyDOM(container)).toEqual(noColors)
-  process.versions.node = '1.2.3'
-  expect(prettyDOM(container)).toEqual(withColors)
-  process.versions.node = originalNodeVersion
-})
-
 test('prettyDOM supports named custom elements', () => {
   window.customElements.define(
     'my-element-1',
diff --git a/src/pretty-dom.js b/src/pretty-dom.js
index f4382bcd..9b1eafa2 100644
--- a/src/pretty-dom.js
+++ b/src/pretty-dom.js
@@ -5,20 +5,25 @@ import {getDocument} from './helpers'
 import {getConfig} from './config'
 
 const shouldHighlight = () => {
-  // Try to safely parse env COLORS: We will default behavior if any step fails.
+  let colors
   try {
-    const colors = process?.env?.COLORS
-    if (colors) {
-      const b = JSON.parse(colors)
-      if (typeof b === 'boolean') return b
-    }
-  } catch {
-    // Ignore (non-critical) - Make a defaulting choice below.
+    colors = JSON.parse(process?.env?.COLORS)
+  } catch (e) {
+    // If this throws, process?.env?.COLORS wasn't parsable. Since we only
+    // care about `true` or `false`, we can safely ignore the error.
   }
 
-  // In all other cases, whether COLORS was a weird type, or the attempt threw:
-  // Fall back to colorizing if we are running in node.
-  return !!process?.versions?.node
+  if (typeof colors === 'boolean') {
+    // If `colors` is set explicitly (both `true` and `false`), use that value.
+    return colors
+  } else {
+    // If `colors` is not set, colorize if we're in node.
+    return (
+      typeof process !== 'undefined' &&
+      process.versions !== undefined &&
+      process.versions.node !== undefined
+    )
+  }
 }
 
 const {DOMCollection} = prettyFormat.plugins