ui: switch Google Sans -> Roboto Condensed

- Improve real-estate usage using a more compact font
- Consistently use the same font everywhere (canvas and details)
- Allow the track shell to overflow on 2 lines
- Fix a small bug about the track-shell border disappearing
  (https://screenshot.googleplex.com/x2nsura0UMP)
- Make the material design font blocking.

Bug: 146977183
Change-Id: I22248ce6297dd447172db3f3f7341e4d1656bc98
diff --git a/tools/install-build-deps b/tools/install-build-deps
index c51db76..43545f6 100755
--- a/tools/install-build-deps
+++ b/tools/install-build-deps
@@ -195,7 +195,7 @@
 # This variable is updated by tools/roll-catapult-trace-viewer.
 CATAPULT_SHA1 = 'ff5d8fd7244680b4d4456c25d5fdc04c76f9ef66'
 
-TYPEFACES_SHA1 = '756b0a015b8f99f5718f7fdf967d052c1ec55ab3'
+TYPEFACES_SHA1 = '4fb455de506f8a2859dc5264b8448c2559b08ab8'
 
 UI_DEPS = [
     ('buildtools/nodejs.tgz',
diff --git a/ui/BUILD.gn b/ui/BUILD.gn
index 115e8e9..b27e380 100644
--- a/ui/BUILD.gn
+++ b/ui/BUILD.gn
@@ -331,11 +331,11 @@
 
 copy("typefaces_dist") {
   sources = [
-    "../buildtools/typefaces/GoogleSans-Medium.woff2",
-    "../buildtools/typefaces/GoogleSans-Regular.woff2",
     "../buildtools/typefaces/MaterialIcons.woff2",
     "../buildtools/typefaces/Raleway-Regular.woff2",
     "../buildtools/typefaces/Raleway-Thin.woff2",
+    "../buildtools/typefaces/RobotoCondensed-Light.woff2",
+    "../buildtools/typefaces/RobotoCondensed-Regular.woff2",
     "../buildtools/typefaces/RobotoMono-Regular.woff2",
   ]
 
diff --git a/ui/src/assets/common.scss b/ui/src/assets/common.scss
index cfccc3e..4a272b8 100644
--- a/ui/src/assets/common.scss
+++ b/ui/src/assets/common.scss
@@ -51,6 +51,21 @@
     content: $content;
 }
 
+
+@mixin track_shell_title() {
+  // line-height is deliberately 1px larger than font-size. Roboto seems to
+  // overflow on the bottom on "g"s otherwise.
+  font-size: 14px;
+  line-height: 15px;
+  max-height: 30px;
+  overflow: hidden;
+  text-align: left;
+  overflow-wrap: break-word;
+  font-family: 'Roboto Condensed', sans-serif;
+  font-weight: 300;
+  letter-spacing: -0.25px;
+}
+
 * {
     box-sizing: border-box;
     -webkit-tap-highlight-color: none;
@@ -77,9 +92,9 @@
 h1,
 h2,
 h3 {
-    font-family: initial;
-    font-size: initial;
-    font-weight: initial;
+    font-family: inherit;
+    font-size: inherit;
+    font-weight: inherit;
     padding: 0;
     margin: 0;
 }
@@ -154,7 +169,7 @@
   word-wrap: break-word;
   font-weight: 400;
   font-size: 15px;
-  font-family: "Raleway";
+  font-family: 'Raleway', sans-serif;
   line-height: 1.5;
   padding: 10px 10px 0px 10px;
   width: 320px;
@@ -166,7 +181,7 @@
   word-wrap: break-word;
   font-weight: 400;
   font-size: 12px;
-  font-family: "Raleway";
+  font-family: 'Raleway', sans-serif;
   line-height: 1.5;
   padding: 10px 10px 10px 10px;
   width: 320px;
@@ -181,7 +196,7 @@
   grid-area: alerts;
   background-color: #f2f2f2;
   >div {
-    font-family: 'Raleway';
+    font-family: 'Raleway', sans-serif;
     font-weight: 400;
     letter-spacing: 0.25px;
     padding: 1rem;
@@ -251,13 +266,14 @@
 .query-error {
     padding: 20px 10px;
     color: hsl(-10, 50%, 50%);
-    font-family: 'Google Sans';
+    font-family: 'Roboto Condensed', sans-serif;
+    font-weight: 300;
 }
 
 .page header {
     background-color: hsl(213, 22%, 82%);
     color: hsl(213, 22%, 20%);
-    font-family: 'Google sans';
+    font-family: 'Roboto Condensed', sans-serif;
     font-size: 15px;
     font-weight: 400;
     padding: 4px 10px;
@@ -284,11 +300,12 @@
       grid-column: 1 / span 2;
       border-top: 1px solid var(--track-border-color);
       margin-top: -1px;
+      z-index: 2;
     }
 
     .track-shell {
         @include transition();
-        padding: 0 10px;
+        padding-left: 10px;
         display: grid;
         cursor: grab;
         grid-template-areas: "title pin";
@@ -315,18 +332,11 @@
 
         h1 {
             grid-area: title;
-            margin: 0;
-            font-size: 14px;
-            overflow: hidden;
-            text-overflow: ellipsis;
-            text-align: left;
-            white-space: nowrap;
-            font-family: 'Google Sans';
             color: hsl(213, 22%, 30%);
+            @include track_shell_title();
         }
         .track-button {
           @include transition();
-          margin: 0 5px;
           color: #495767;
           cursor: pointer;
           width: 24px;
@@ -550,12 +560,7 @@
     transition: background-color .4s;
     h1 {
       grid-area: title;
-      font-size: 14px;
-      overflow: hidden;
-      text-overflow: ellipsis;
-      font-family: 'Google Sans';
-      white-space: nowrap;
-      text-align: left;
+      @include track_shell_title();
     }
     .fold-button {
       grid-area: fold-button;
diff --git a/ui/src/assets/details.scss b/ui/src/assets/details.scss
index f116981..4d0fd2c 100644
--- a/ui/src/assets/details.scss
+++ b/ui/src/assets/details.scss
@@ -32,7 +32,7 @@
       grid-area: tabs;
 
       .tab {
-        font-family: 'Google Sans';
+        font-family: 'Roboto Condensed', sans-serif;
         color: #3c4b5d;
         padding: 3px 10px 0px 10px;
         margin-top: 3px;
@@ -79,7 +79,8 @@
     }
 
     .handle-title {
-      font-family: 'Google Sans';
+      font-family: 'Roboto Condensed', sans-serif;
+      font-weight: 300;
       color: #3c4b5d;
       margin-left: 5px;
       padding: 5px;
@@ -90,7 +91,8 @@
 }
 
 .details-panel {
-  font-family: 'Google Sans';
+  font-family: 'Roboto Condensed', sans-serif;
+  font-weight: 300;
   color: #3c4b5d;
   .details-panel-heading {
     padding: 10px 0 5px 0;
@@ -106,7 +108,7 @@
     }
     h2 {
       font-size: 16px;
-      font-family: 'Google Sans';
+      font-weight: 400;
       padding: 0 10px;
       &.split {
         width: 50%;
@@ -218,7 +220,8 @@
   display: flex;
   flex-direction: column;
   height: 100%;
-  font-family: 'Google Sans';
+  font-family: 'Roboto Condensed', sans-serif;
+  font-weight: 300;
   color: #3c4b5d;
 
   .notes-editor-panel-heading-bar {
diff --git a/ui/src/assets/modal.scss b/ui/src/assets/modal.scss
index 24a8bfd..c46db21 100644
--- a/ui/src/assets/modal.scss
+++ b/ui/src/assets/modal.scss
@@ -16,7 +16,7 @@
   Basic Modal Styles
 \**************************/
 .modal {
-  font-family: 'Raleway';
+  font-family: 'Raleway', sans-serif;
 }
 
 .modal-overlay {
@@ -51,7 +51,7 @@
 .modal-title {
   margin-top: 0;
   margin-bottom: 0;
-  font-family: 'Raleway';
+  font-family: 'Raleway', sans-serif;
   font-weight: 600;
   font-size: 1.25rem;
   line-height: 1.25;
diff --git a/ui/src/assets/record.scss b/ui/src/assets/record.scss
index 2de7ccd..7600ebd 100644
--- a/ui/src/assets/record.scss
+++ b/ui/src/assets/record.scss
@@ -206,7 +206,7 @@
     padding: 0 1em;
     font-size: 15px;
     letter-spacing: 0.5px;
-    font-family: 'Raleway';
+    font-family: 'Raleway', sans-serif;
     font-weight: 600;
     color: #666;
     display: grid;
@@ -296,7 +296,7 @@
 
   >header {
     text-align: center;
-    font-family: 'Raleway';
+    font-family: 'Raleway', sans-serif;
     font-size: 20px;
     padding: 15px 10px;
     color: #333;
diff --git a/ui/src/assets/sidebar.scss b/ui/src/assets/sidebar.scss
index cf975f8..7cb1ce2 100644
--- a/ui/src/assets/sidebar.scss
+++ b/ui/src/assets/sidebar.scss
@@ -26,7 +26,7 @@
     }
     input[type=file] { display:none; }
     >header {
-        font-family: 'Raleway';
+        font-family: 'Raleway', sans-serif;
         height: var(--topbar-height);
         line-height: var(--topbar-height);
         vertical-align: middle;
@@ -88,7 +88,7 @@
                 cursor: pointer;
                 >h1,
                 >h2 {
-                    font-family: 'Raleway';
+                    font-family: 'Raleway', sans-serif;
                     letter-spacing: 0.25px;
                     overflow: hidden;
                     text-overflow: ellipsis;
@@ -143,7 +143,7 @@
                     line-height: 24px;
                     font-size: 14px;
                     font-weight: 400;
-                    font-family: 'Raleway';
+                    font-family: 'Raleway', sans-serif;
                     letter-spacing: 0.5px;
                     padding: 5px 24px;
                     text-decoration: none;
diff --git a/ui/src/assets/topbar.scss b/ui/src/assets/topbar.scss
index 49d7afb..49c06df 100644
--- a/ui/src/assets/topbar.scss
+++ b/ui/src/assets/topbar.scss
@@ -49,7 +49,8 @@
             border: 0;
             padding: 0 10px;
             font-size: 18px;
-            font-family: 'Google Sans';
+            font-family: 'Roboto Condensed', sans-serif;
+            font-weight: 300;
             color: #666;
             background-color: transparent;
             &:focus {
@@ -57,7 +58,7 @@
             }
             &::placeholder {
                 color: #b4b7ba;
-                font-family: 'Raleway';
+                font-family: 'Raleway', sans-serif;
                 font-weight: 400;
             }
         }
@@ -99,7 +100,8 @@
           display: flex;
           font: inherit;
           font-size: 14px;
-          font-family: 'Google Sans';
+          font-family: 'Roboto Condensed', sans-serif;
+          font-weight: 300;
           color: #aaa;
           .current {
             padding-right: 10px;
diff --git a/ui/src/assets/typefaces.scss b/ui/src/assets/typefaces.scss
index 19f8f9f..55a2712 100644
--- a/ui/src/assets/typefaces.scss
+++ b/ui/src/assets/typefaces.scss
@@ -1,48 +1,53 @@
-/* latin */
-@font-face {
-  font-family: 'Google Sans';
-  font-style: normal;
-  font-weight: 400;
-  src: local('Google Sans Regular'), local('GoogleSans-Regular'), url(assets/GoogleSans-Regular.woff2);
-  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-/* latin */
-@font-face {
-  font-family: 'Google Sans';
-  font-style: normal;
-  font-weight: 500;
-  src: local('Google Sans Medium'), local('GoogleSans-Medium'), url(assets/GoogleSans-Medium.woff2);
-  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-/* fallback */
 @font-face {
   font-family: 'Material Icons';
   font-style: normal;
   font-weight: 400;
+  font-display: block;
   src: url(assets/MaterialIcons.woff2) format('woff2');
 }
+
 /* latin */
 @font-face {
   font-family: 'Raleway';
   font-style: normal;
   font-weight: 100;
-  src: local('Raleway Thin'), local('Raleway-Thin'), url(assets/Raleway-Thin.woff2);
+  src: local('Raleway Thin'), local('Raleway-Thin'), url(assets/Raleway-Thin.woff2) format('woff2');
   unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
 }
+
 /* latin */
 @font-face {
   font-family: 'Raleway';
   font-style: normal;
   font-weight: 400;
-  src: local('Raleway'), local('Raleway-Regular'), url(assets/Raleway-Regular.woff2);
+  src: local('Raleway'), local('Raleway-Regular'), url(assets/Raleway-Regular.woff2) format('woff2');
   unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
 }
+
+/* latin */
+@font-face {
+  font-family: 'Roboto Condensed';
+  font-style: normal;
+  font-weight: 300;
+  src: local('Roboto Condensed Light'), local('RobotoCondensed-Light'), url(assets/RobotoCondensed-Light.woff2) format('woff2');
+  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* latin */
+@font-face {
+  font-family: 'Roboto Condensed';
+  font-style: normal;
+  font-weight: 400;
+  src: local('Roboto Condensed'), local('RobotoCondensed-Regular'), url(assets/RobotoCondensed-Regular.woff2) format('woff2');
+  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
 /* latin */
 @font-face {
   font-family: 'Roboto Mono';
   font-style: normal;
   font-weight: 400;
-  src: local('Roboto Mono'), local('RobotoMono-Regular'), url(assets/RobotoMono-Regular.woff2);
+  src: local('Roboto Mono'), local('RobotoMono-Regular'), url(assets/RobotoMono-Regular.woff2) format('woff2');
   unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
 }
 
diff --git a/ui/src/frontend/checkerboard.ts b/ui/src/frontend/checkerboard.ts
index 6ae9487..d271759 100644
--- a/ui/src/frontend/checkerboard.ts
+++ b/ui/src/frontend/checkerboard.ts
@@ -24,7 +24,7 @@
     leftPx: number,
     rightPx: number): void {
   const widthPx = rightPx - leftPx;
-  ctx.font = '12px Google Sans';
+  ctx.font = '12px Roboto Condensed';
   ctx.fillStyle = '#eee';
   ctx.fillRect(leftPx, 0, widthPx, heightPx);
   ctx.fillStyle = '#666';
diff --git a/ui/src/frontend/flamegraph.ts b/ui/src/frontend/flamegraph.ts
index 4d4dfd1..4c4d3e4 100644
--- a/ui/src/frontend/flamegraph.ts
+++ b/ui/src/frontend/flamegraph.ts
@@ -136,7 +136,7 @@
     // Draw root node.
     ctx.fillStyle = this.generateColor('root', false);
     ctx.fillRect(x, currentY, width, nodeHeight);
-    ctx.font = `${this.textSize}px Google Sans`;
+    ctx.font = `${this.textSize}px Roboto Condensed`;
     const text = cropText(
         `root: ${
             this.displaySize(
@@ -199,7 +199,7 @@
       }
 
       // Draw name.
-      ctx.font = `${this.textSize}px Google Sans`;
+      ctx.font = `${this.textSize}px Roboto Condensed`;
       const text = cropText(name, charWidth, width - 2);
       ctx.fillStyle = 'black';
       ctx.fillText(text, currentX + 5, currentY + nodeHeight - 4);
@@ -284,7 +284,7 @@
           height - rectHeight - 8 :
           this.hoveredY + 4;
 
-      ctx.font = '12px Google Sans';
+      ctx.font = '12px Roboto Condensed';
       ctx.fillStyle = 'rgba(255, 255, 255, 0.9)';
       ctx.fillRect(rectXStart, rectYStart, rectWidth, rectHeight);
       ctx.fillStyle = 'hsl(200, 50%, 40%)';
diff --git a/ui/src/frontend/overview_timeline_panel.ts b/ui/src/frontend/overview_timeline_panel.ts
index 215e8da..cfc6ee8 100644
--- a/ui/src/frontend/overview_timeline_panel.ts
+++ b/ui/src/frontend/overview_timeline_panel.ts
@@ -64,7 +64,7 @@
     const tracksHeight = size.height - headerHeight;
 
     // Draw time labels on the top header.
-    ctx.font = '10px Google Sans';
+    ctx.font = '10px Roboto Condensed';
     ctx.fillStyle = '#999';
     for (let i = 0; i < 100; i++) {
       const xPos =
diff --git a/ui/src/frontend/slice_panel.ts b/ui/src/frontend/slice_panel.ts
index 345b714..5f3553b 100644
--- a/ui/src/frontend/slice_panel.ts
+++ b/ui/src/frontend/slice_panel.ts
@@ -126,7 +126,7 @@
       ctx.fillRect(startDraw.x - 1, startDraw.y, 2, 100);
 
       // Wakeup explanation text.
-      ctx.font = '13px Google Sans';
+      ctx.font = '13px Roboto Condensed';
       ctx.fillStyle = '#3c4b5d';
       if (threadInfo) {
         const displayText = `Wakeup @ ${
@@ -153,7 +153,7 @@
         const explain2 =
             '(e.g. because of notifying a wait queue it was suspended on) to';
         const explain3 = 'when it started running.';
-        ctx.font = '10px Google Sans';
+        ctx.font = '10px Roboto Condensed';
         ctx.fillText(explain1, startDraw.x + 70, startDraw.y + 86 + 16);
         ctx.fillText(explain2, startDraw.x + 70, startDraw.y + 86 + 16 + 12);
         ctx.fillText(explain3, startDraw.x + 70, startDraw.y + 86 + 16 + 24);
diff --git a/ui/src/frontend/time_axis_panel.ts b/ui/src/frontend/time_axis_panel.ts
index 112c723..2f39881 100644
--- a/ui/src/frontend/time_axis_panel.ts
+++ b/ui/src/frontend/time_axis_panel.ts
@@ -32,7 +32,7 @@
     ctx.fillStyle = '#999';
 
     // Write trace offset time + line.
-    ctx.font = '12px Google Sans';
+    ctx.font = '12px Roboto Condensed';
 
     ctx.textAlign = 'right';
     const offsetTime =
@@ -44,7 +44,7 @@
     ctx.fillText(startTime + ' +', 6, 11);
 
     // Draw time axis.
-    ctx.font = '10px Google Sans';
+    ctx.font = '10px Roboto Condensed';
     for (const [x, time] of gridlines(size.width, range, timeScale)) {
       ctx.fillRect(x, 0, 1, size.height);
       ctx.fillText('+' + timeToString(time - range.start), x + 5, 10);
diff --git a/ui/src/frontend/time_selection_panel.ts b/ui/src/frontend/time_selection_panel.ts
index 3717a57..18ed125 100644
--- a/ui/src/frontend/time_selection_panel.ts
+++ b/ui/src/frontend/time_selection_panel.ts
@@ -76,7 +76,7 @@
 
   ctx.textBaseline = 'middle';
   ctx.fillStyle = '#222';
-  ctx.font = '10px Google Sans';
+  ctx.font = '10px Roboto Condensed';
   ctx.fillText(label, labelXLeft, yMid);
 }
 
@@ -105,7 +105,7 @@
 
   ctx.textBaseline = 'middle';
   ctx.fillStyle = '#222';
-  ctx.font = '10px Google Sans';
+  ctx.font = '10px Roboto Condensed';
   ctx.fillText(label, xPosLabel, yMid);
 }
 
diff --git a/ui/src/tracks/chrome_slices/frontend.ts b/ui/src/tracks/chrome_slices/frontend.ts
index 41f2541..8ceaf16 100644
--- a/ui/src/tracks/chrome_slices/frontend.ts
+++ b/ui/src/tracks/chrome_slices/frontend.ts
@@ -65,7 +65,7 @@
         timeScale.timeToPx(data.end),
     );
 
-    ctx.font = '12px Google Sans';
+    ctx.font = '12px Roboto Condensed';
     ctx.textAlign = 'center';
 
     // measuretext is expensive so we only use it once.
diff --git a/ui/src/tracks/counter/frontend.ts b/ui/src/tracks/counter/frontend.ts
index 3fcfe3e..6377414 100644
--- a/ui/src/tracks/counter/frontend.ts
+++ b/ui/src/tracks/counter/frontend.ts
@@ -154,7 +154,7 @@
     ctx.stroke();
     ctx.setLineDash([]);
 
-    ctx.font = '10px Google Sans';
+    ctx.font = '10px Roboto Condensed';
 
     if (this.hoveredValue !== undefined && this.hoveredTs !== undefined) {
       // TODO(hjd): Add units.
diff --git a/ui/src/tracks/cpu_freq/frontend.ts b/ui/src/tracks/cpu_freq/frontend.ts
index 0bf9199..2554521 100644
--- a/ui/src/tracks/cpu_freq/frontend.ts
+++ b/ui/src/tracks/cpu_freq/frontend.ts
@@ -126,7 +126,7 @@
       }
     }
 
-    ctx.font = '10px Google Sans';
+    ctx.font = '10px Roboto Condensed';
 
     if (this.hoveredValue !== undefined && this.hoveredTs !== undefined) {
       let text = `${this.hoveredValue.toLocaleString()}kHz`;
diff --git a/ui/src/tracks/cpu_slices/frontend.ts b/ui/src/tracks/cpu_slices/frontend.ts
index b77098d..d104fe9 100644
--- a/ui/src/tracks/cpu_slices/frontend.ts
+++ b/ui/src/tracks/cpu_slices/frontend.ts
@@ -112,7 +112,7 @@
     assertTrue(data.starts.length === data.utids.length);
 
     ctx.textAlign = 'center';
-    ctx.font = '12px Google Sans';
+    ctx.font = '12px Roboto Condensed';
     const charWidth = ctx.measureText('dbpqaouk').width / 8;
 
     for (let i = 0; i < data.starts.length; i++) {
@@ -171,10 +171,10 @@
       subTitle = cropText(subTitle, charWidth, rectWidth);
       const rectXCenter = rectStart + rectWidth / 2;
       ctx.fillStyle = '#fff';
-      ctx.font = '12px Google Sans';
+      ctx.font = '12px Roboto Condensed';
       ctx.fillText(title, rectXCenter, MARGIN_TOP + RECT_HEIGHT / 2 - 1);
       ctx.fillStyle = 'rgba(255, 255, 255, 0.6)';
-      ctx.font = '10px Google Sans';
+      ctx.font = '10px Roboto Condensed';
       ctx.fillText(subTitle, rectXCenter, MARGIN_TOP + RECT_HEIGHT / 2 + 9);
     }
 
@@ -251,7 +251,7 @@
         line1 = `T: ${hoveredThread.threadName} [${hoveredThread.tid}]`;
       }
 
-      ctx.font = '10px Google Sans';
+      ctx.font = '10px Roboto Condensed';
       const line1Width = ctx.measureText(line1).width;
       const line2Width = ctx.measureText(line2).width;
       const width = Math.max(line1Width, line2Width);
diff --git a/ui/src/tracks/gpu_freq/frontend.ts b/ui/src/tracks/gpu_freq/frontend.ts
index 53b79c7..5994cf6 100644
--- a/ui/src/tracks/gpu_freq/frontend.ts
+++ b/ui/src/tracks/gpu_freq/frontend.ts
@@ -106,7 +106,7 @@
     ctx.fill();
     ctx.stroke();
 
-    ctx.font = '10px Google Sans';
+    ctx.font = '10px Roboto Condensed';
 
     if (this.hoveredValue !== undefined && this.hoveredTs !== undefined) {
       let text = `Freq: ${this.hoveredValue.toLocaleString()}kHz`;
diff --git a/ui/src/tracks/process_scheduling/frontend.ts b/ui/src/tracks/process_scheduling/frontend.ts
index 78a0e86..9bc4f20 100644
--- a/ui/src/tracks/process_scheduling/frontend.ts
+++ b/ui/src/tracks/process_scheduling/frontend.ts
@@ -157,7 +157,7 @@
         line1 = `T: ${hoveredThread.threadName} [${hoveredThread.tid}]`;
       }
 
-      ctx.font = '10px Google Sans';
+      ctx.font = '10px Roboto Condensed';
       const line1Width = ctx.measureText(line1).width;
       const line2Width = ctx.measureText(line2).width;
       const width = Math.max(line1Width, line2Width);
diff --git a/ui/src/tracks/thread_state/frontend.ts b/ui/src/tracks/thread_state/frontend.ts
index 39dda44..0b01644 100644
--- a/ui/src/tracks/thread_state/frontend.ts
+++ b/ui/src/tracks/thread_state/frontend.ts
@@ -80,7 +80,7 @@
         const title = cropText(translateState(state), charWidth, rectWidth);
         const rectXCenter = rectStart + rectWidth / 2;
         ctx.fillStyle = color.l < 80 ? '#fff' : '#404040';
-        ctx.font = '10px Google Sans';
+        ctx.font = '10px Roboto Condensed';
         ctx.fillText(title, rectXCenter, MARGIN_TOP + RECT_HEIGHT / 2 + 3);
       }
     }