<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Red Digits</title>
    <description>The latest articles on DEV Community by Red Digits (@red-digits).</description>
    <link>https://dev.to/red-digits</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4228365%2F0b561039-42bc-4272-8599-570e7b7f89aa.png</url>
      <title>DEV Community: Red Digits</title>
      <link>https://dev.to/red-digits</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/red-digits"/>
    <language>en</language>
    <item>
      <title>Which font is this? Chrome DevTools knows, in a section most people never scroll to</title>
      <dc:creator>Red Digits</dc:creator>
      <pubDate>Thu, 05 Nov 2026 11:02:49 +0000</pubDate>
      <link>https://dev.to/red-digits/which-font-is-this-chrome-devtools-knows-in-a-section-most-people-never-scroll-to-fpl</link>
      <guid>https://dev.to/red-digits/which-font-is-this-chrome-devtools-knows-in-a-section-most-people-never-scroll-to-fpl</guid>
      <description>&lt;p&gt;Every front-end developer has done it: right-click, Inspect, read &lt;code&gt;font-family&lt;/code&gt;, and announce the answer. Half the time that answer is wrong, because &lt;code&gt;font-family&lt;/code&gt; is a wish list. The browser may have drawn something else entirely.&lt;/p&gt;

&lt;p&gt;Chrome already knows which font it used. It tells you at the very bottom of the Computed tab, in a section called &lt;strong&gt;Rendered Fonts&lt;/strong&gt;. Here is the whole route, plus the places where it goes wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Select the element that holds the words
&lt;/h2&gt;

&lt;p&gt;Right-click the text and choose &lt;strong&gt;Inspect&lt;/strong&gt;, or press &lt;code&gt;Ctrl + Shift + C&lt;/code&gt; (&lt;code&gt;Cmd + Shift + C&lt;/code&gt; on a Mac) to open DevTools with the element picker already on.&lt;/p&gt;

&lt;p&gt;The picker tooltip shows a font line. Treat it as a preview, not a verdict: it reports the declared family.&lt;/p&gt;

&lt;p&gt;Make sure you land on the element that directly contains the text, not a wrapper &lt;code&gt;div&lt;/code&gt; around it. &lt;code&gt;font-family&lt;/code&gt; is inherited, so a wrapper reports a perfectly plausible stack while the real text node two levels down is styled differently.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Computed, not Styles
&lt;/h2&gt;

&lt;p&gt;The side pane opens on &lt;strong&gt;Styles&lt;/strong&gt;, which lists every rule that touches the element, including the ones that lost the cascade. Switch to &lt;strong&gt;Computed&lt;/strong&gt; and type &lt;code&gt;font&lt;/code&gt; in the filter. You get one final value per property:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Property&lt;/th&gt;
&lt;th&gt;What you see&lt;/th&gt;
&lt;th&gt;Watch out&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;font-family&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The full declared stack&lt;/td&gt;
&lt;td&gt;A list of preferences, not the result&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;font-size&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Final size in px&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;1.125rem&lt;/code&gt; shows as &lt;code&gt;18px&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;font-weight&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;A number&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;bold&lt;/code&gt; is resolved to &lt;code&gt;700&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;line-height&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;px, or &lt;code&gt;normal&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Divide by font size for the ratio: 28 / 18 is about 1.56&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  3. Scroll to Rendered Fonts
&lt;/h2&gt;

&lt;p&gt;Below the last property there is a small section called &lt;strong&gt;Rendered Fonts&lt;/strong&gt;. It does not come from CSS. It is a report from Chrome's text layer about what it actually painted for the selected element:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Font name&lt;/strong&gt;: the name stored inside the font file. It can differ from the alias in the CSS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network resource&lt;/strong&gt;: a web font the page downloaded through &lt;code&gt;@font-face&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local file&lt;/strong&gt;: a font installed on your machine. Either a system fallback or a font the site expects you to have.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Glyph count&lt;/strong&gt;: how many characters of the element's text were drawn with that font.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When the first name in &lt;code&gt;font-family&lt;/code&gt; and the rendered font do not match, you are looking at a fallback.&lt;/p&gt;

&lt;p&gt;Several fonts can be listed for one element because browsers pick a font per character, not per element. Most glyphs from the brand font and two from an emoji font is normal. Every glyph from Arial while the stack starts with a web font means the web font never loaded.&lt;/p&gt;

&lt;p&gt;One trap: if you happen to have the site's font installed, Chrome may use your copy and report a local file. Visitors without it see the next font in the stack. Check on a clean machine when it matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Where the files come from
&lt;/h2&gt;

&lt;p&gt;Rendered Fonts names the font. For the files and the weights, two more places:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Network panel, Font filter.&lt;/strong&gt; Reload with DevTools open, because it only records what it sees. Each row is a font file. The domain is the fastest clue: &lt;code&gt;fonts.gstatic.com&lt;/code&gt; is Google Fonts, &lt;code&gt;use.typekit.net&lt;/code&gt; is Adobe Fonts, the site's own domain means self-hosted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Search for &lt;code&gt;@font-face&lt;/code&gt;.&lt;/strong&gt; Press &lt;code&gt;Ctrl + Shift + F&lt;/code&gt; (&lt;code&gt;Cmd + Option + F&lt;/code&gt;) with DevTools focused to search every loaded file. The rules show which weights really exist, so you can tell a true bold from one the browser faked:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="k"&gt;@font-face&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;"Site Serif"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;src&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;url&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;"/fonts/literata-400.woff2"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nf"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;"woff2"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nl"&gt;font-weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;400&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;@font-face&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;"Site Serif"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;src&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;url&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;"/fonts/literata-700.woff2"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nf"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;"woff2"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nl"&gt;font-weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;700&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you prefer the Console, &lt;code&gt;$0&lt;/code&gt; is the selected element:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;getComputedStyle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;$0&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;fontFamily&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="p"&gt;[...&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fonts&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;loaded&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;family&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;weight&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The second snippet lists web fonts only. System fonts never appear in &lt;code&gt;document.fonts&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Four ways to get the wrong answer
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;You selected a wrapper.&lt;/strong&gt; Rendered Fonts describes the selected node's own text. No text, no section.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The text is in an iframe.&lt;/strong&gt; Inspect still works, but the Console runs in the top document by default. Switch the JavaScript context selector to the frame before running the snippets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The text is in Shadow DOM.&lt;/strong&gt; Expand &lt;code&gt;#shadow-root&lt;/code&gt; in the tree to reach the real element. Inherited properties such as &lt;code&gt;font-family&lt;/code&gt; pass through from the host.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The text is a pseudo-element.&lt;/strong&gt; &lt;code&gt;::before&lt;/code&gt; and &lt;code&gt;::after&lt;/code&gt; show up as their own nodes; select them directly. &lt;code&gt;::first-line&lt;/code&gt; has no node at all, so read its rules in the parent's Styles tab.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The one-click version
&lt;/h2&gt;

&lt;p&gt;We check fonts on other people's sites every day, and the route above is a lot of clicks. So we built &lt;a href="https://font-inspector.com" rel="noopener noreferrer"&gt;Font Inspector&lt;/a&gt;, a free Chrome extension that puts the same facts in one panel next to the text: the declared family and the rendered font side by side with a fallback flag, size in px, em and rem, line height as a ratio, where each family comes from, every font on the page ranked by share of text, and copy as CSS, Tailwind or SCSS. No account, nothing uploaded.&lt;/p&gt;

&lt;p&gt;DevTools is still the right tool for editing CSS live or debugging why a font file failed to load. For "what font is this", Rendered Fonts is the honest answer, and now you know where it hides.&lt;/p&gt;

&lt;p&gt;The long version of this guide, with the Edge and Brave notes and more on fallbacks, is on &lt;a href="https://font-inspector.com/guides/find-font-chrome-devtools" rel="noopener noreferrer"&gt;font-inspector.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>css</category>
      <category>devtools</category>
      <category>typography</category>
    </item>
  </channel>
</rss>
