diff --git a/golden/modules/blamelist-panel-sk/BUILD.bazel b/golden/modules/blamelist-panel-sk/BUILD.bazel
index 73b3304..7ee8bf4 100644
--- a/golden/modules/blamelist-panel-sk/BUILD.bazel
+++ b/golden/modules/blamelist-panel-sk/BUILD.bazel
@@ -5,12 +5,12 @@
     sass_deps = ["//infra-sk:elements-sk_scss"],
     sass_srcs = ["blamelist-panel-sk.scss"],
     ts_deps = [
-        "//golden/modules:common_ts_lib",
         "//golden/modules:settings_ts_lib",
         "//infra-sk/modules/ElementSk:index_ts_lib",
         "@npm//common-sk",
         "@npm//elements-sk",
         "@npm//lit-html",
+        "//infra-sk/modules:string_ts_lib",
     ],
     ts_srcs = [
         "blamelist-panel-sk.ts",
diff --git a/golden/modules/blamelist-panel-sk/blamelist-panel-sk.ts b/golden/modules/blamelist-panel-sk/blamelist-panel-sk.ts
index 865a68b..400d3ee 100644
--- a/golden/modules/blamelist-panel-sk/blamelist-panel-sk.ts
+++ b/golden/modules/blamelist-panel-sk/blamelist-panel-sk.ts
@@ -12,14 +12,14 @@
 import { html } from 'lit-html';
 import { diffDate } from 'common-sk/modules/human';
 import { ElementSk } from '../../../infra-sk/modules/ElementSk';
-import { truncateWithEllipses } from '../common';
+import { truncate } from '../../../infra-sk/modules/string';
 import { baseRepoURL } from '../settings';
 
 const maxCommitsToDisplay = 15;
 
 const commitRow = (c: Commit) => html`
 <tr>
-  <td title=${c.author}>${truncateWithEllipses(c.author, 20)}</td>
+  <td title=${c.author}>${truncate(c.author, 20)}</td>
   <td title=${new Date(c.commit_time * 1000)}>
    ${diffDate(c.commit_time * 1000)}
   </td>
@@ -28,7 +28,7 @@
       ${c.hash?.substring(0, 8)}
     </a>
   </td>
-  <td title=${c.message}>${truncateWithEllipses(c.message || '', 80)}</td>
+  <td title=${c.message}>${truncate(c.message || '', 80)}</td>
 </tr>
 `;
 
diff --git a/golden/modules/changelist-controls-sk/BUILD.bazel b/golden/modules/changelist-controls-sk/BUILD.bazel
index a18dd27..8de9cfe 100644
--- a/golden/modules/changelist-controls-sk/BUILD.bazel
+++ b/golden/modules/changelist-controls-sk/BUILD.bazel
@@ -5,11 +5,11 @@
     sass_deps = ["//infra-sk:elements-sk_scss"],
     sass_srcs = ["changelist-controls-sk.scss"],
     ts_deps = [
-        "//golden/modules:common_ts_lib",
         "//golden/modules:rpc_types_ts_lib",
         "//infra-sk/modules/ElementSk:index_ts_lib",
         "@npm//elements-sk",
         "@npm//lit-html",
+        "//infra-sk/modules:string_ts_lib",
     ],
     ts_srcs = [
         "changelist-controls-sk.ts",
diff --git a/golden/modules/changelist-controls-sk/changelist-controls-sk.ts b/golden/modules/changelist-controls-sk/changelist-controls-sk.ts
index c57abce..2ad95ae 100644
--- a/golden/modules/changelist-controls-sk/changelist-controls-sk.ts
+++ b/golden/modules/changelist-controls-sk/changelist-controls-sk.ts
@@ -1,7 +1,7 @@
 import { define } from 'elements-sk/define';
 import { html } from 'lit-html';
 import { ElementSk } from '../../../infra-sk/modules/ElementSk';
-import { truncateWithEllipses } from '../common';
+import { truncate } from '../../../infra-sk/modules/string';
 
 import 'elements-sk/radio-sk';
 import 'elements-sk/styles/select';
@@ -25,10 +25,10 @@
       <div class=info>
         <span class=title>${cl.system} changelist:</span>
         <a href=${cl.url} target=_blank rel=noopener>
-          ${truncateWithEllipses(cl.subject, 48)}
+          ${truncate(cl.subject, 48)}
         </a>
 
-        <span>${truncateWithEllipses(cl.owner, 32)}</span>
+        <span>${truncate(cl.owner, 32)}</span>
 
         <a href="/triagelog?changelist_id=${cl.id}&crs=${cl.system}">
           <find-in-page-icon-sk></find-in-page-icon-sk>Triagelog
@@ -66,7 +66,7 @@
   private static tryJobTemplate = (tj: TryJob) => html`
     <div class=tryjob title=${tj.name}>
       <a href=${tj.url} target=_blank rel=noopener>
-        ${truncateWithEllipses(tj.name, 60)}
+        ${truncate(tj.name, 60)}
       </a>
     </div>
   `;
diff --git a/golden/modules/common.ts b/golden/modules/common.ts
index 972609d..a095b49 100644
--- a/golden/modules/common.ts
+++ b/golden/modules/common.ts
@@ -13,21 +13,6 @@
   return queryStr.split('&').map(decodeURIComponent).join('\n');
 }
 
-/**
- * Takes a string and trims it to be no longer than maxLength. If the string needs to be trimmed,
- * an ellipsis (...) will be added as a suffix, but the total string length (with ellipsis) will
- * stay under maxLength.
- */
-export function truncateWithEllipses(str: string, maxLength = 15): string {
-  if (maxLength < 3) {
-    throw 'maxLength must be greater than the length of the ellipsis.';
-  }
-  if (str.length <= maxLength) {
-    return str;
-  }
-  return `${str.substr(0, maxLength - 3)}...`;
-}
-
 let imagePrefix = '/img/images';
 let diffPrefix = '/img/diffs';
 
diff --git a/golden/modules/common_test.ts b/golden/modules/common_test.ts
index cf03fbe..d515730 100644
--- a/golden/modules/common_test.ts
+++ b/golden/modules/common_test.ts
@@ -5,7 +5,6 @@
   digestDiffImagePath,
   detailHref,
   diffPageHref,
-  truncateWithEllipses,
   sendBeginTask,
   sendEndTask,
   sendFetchError,
@@ -25,25 +24,6 @@
   });
 });
 
-describe('shorten', () => {
-  it('shortens long strings into possibly ellipsed versions', () => {
-    expect(truncateWithEllipses('')).to.equal('');
-    expect(truncateWithEllipses('too short')).to.equal('too short');
-    expect(truncateWithEllipses('should be ellipsed because it is too long')).to.equal('should be el...');
-    expect(truncateWithEllipses('should be ellipsed because it is too long', 20)).to.equal('should be ellipse...');
-    expect(truncateWithEllipses('should be ellipsed because it is too long', 5)).to.equal('sh...');
-  });
-  it('throws an exception if maxLength is too short', () => {
-    try {
-      truncateWithEllipses('foo bar', 2);
-    } catch (e) {
-      expect(e).to.contain('length of the ellipsis');
-      return;
-    }
-    expect.fail('There should have been an exception.');
-  });
-});
-
 // valid, but arbitrary md5 hashes.
 const aDigest = 'aaab78c9711cb79197d47f448ba51338';
 const bDigest = 'bbb8b07beb4e1247c2cbafdb92b93e55';
diff --git a/golden/modules/digest-details-sk/BUILD.bazel b/golden/modules/digest-details-sk/BUILD.bazel
index e3bb85c..b5ddf86 100644
--- a/golden/modules/digest-details-sk/BUILD.bazel
+++ b/golden/modules/digest-details-sk/BUILD.bazel
@@ -32,6 +32,7 @@
         "@npm//dialog-polyfill",
         "@npm//elements-sk",
         "@npm//lit-html",
+        "//infra-sk/modules:string_ts_lib",
     ],
     ts_srcs = [
         "digest-details-sk.ts",
diff --git a/golden/modules/digest-details-sk/digest-details-sk.ts b/golden/modules/digest-details-sk/digest-details-sk.ts
index 7525a28..1b4cd10 100644
--- a/golden/modules/digest-details-sk/digest-details-sk.ts
+++ b/golden/modules/digest-details-sk/digest-details-sk.ts
@@ -24,10 +24,12 @@
 import { HintableObject } from 'common-sk/modules/hintable';
 import { diffDate } from 'common-sk/modules/human';
 import { ElementSk } from '../../../infra-sk/modules/ElementSk';
+import { truncate } from '../../../infra-sk/modules/string';
 import {
-  truncateWithEllipses, detailHref, diffPageHref, sendBeginTask, sendEndTask, sendFetchError,
+  detailHref, diffPageHref, sendBeginTask, sendEndTask, sendFetchError,
 } from '../common';
 
+
 import 'elements-sk/icon/group-work-icon-sk';
 import '../dots-sk';
 import '../dots-legend-sk';
@@ -170,7 +172,7 @@
   private static imageComparisonTemplate = (ele: DigestDetailsSk) => {
     const left: ImageComparisonData = {
       digest: ele.digest,
-      title: truncateWithEllipses(ele.digest),
+      title: truncate(ele.digest, 15),
       detail: detailHref(ele.grouping, ele.digest, ele.changeListID, ele.crs),
     };
     if (!ele.right) {
@@ -185,7 +187,7 @@
       detail: detailHref(ele.grouping, ele.right.digest, ele.changeListID, ele.crs),
     };
     if (ele._overrideRight) {
-      right.title = truncateWithEllipses(ele.right.digest);
+      right.title = truncate(ele.right.digest, 15);
     }
 
     return html`<image-compare-sk .left=${left} .right=${right}></image-compare-sk>`;
@@ -220,11 +222,11 @@
       return ''; // details might not be loaded yet.
     }
 
-    const titles = [truncateWithEllipses(ele.digest)];
+    const titles = [truncate(ele.digest, 15)];
     const paramsets = [ele.params];
 
     if (ele.right && ele.right.paramset) {
-      titles.push(truncateWithEllipses(ele.right.digest));
+      titles.push(truncate(ele.right.digest, 15));
       paramsets.push(ele.right.paramset);
     }
 
