Gaurav Shukla's avatar
AboutBlogProjectsBookmarksContact
June 24, 2025

How I made the same font look better without changing it

I'm a developer, not a designer. But I still want my typography to look great. Here's how I made the same font look way better using one CSS trick.

Typography icon with text “Frontend Tips: Same font but different style?”

I’m not a designer.

But just because you're a developer doesn’t mean your typography has to be boring.

So when I used the Inter font on my site and it looked kind of… flat,

Blog image

I figured I’d just messed up the spacing or weights.

Then I came across another portfolio that used Inter — and it looked amazing.

Blog image

Same font. Totally different vibe.

The typography problem no one talks about

I was confused.

How can the exact same font look so much better on someone else’s site?

I dug into it and noticed something subtle but important:

The letter “a” was shaped differently.

On my site, it was the traditional double-storey “a.” On theirs, it was a rounder, simpler single-storey version.

Fonts have hidden Glyphs (and you can unlock them)

Turns out fonts don’t just have weights and spacing. They also have alternate versions of characters — called glyphs.

The Inter font includes a bunch of these variations. But they’re not enabled by default.

To unlock them, you can use this CSS:

globals.css
font-feature-settings: <feature-tag-value>;

Here <feature-tag-value> represents a space-separated tuple consisting of a tag name and an optional value.

For example, to enable the single-storey “a”, you can use:

globals.css
font-feature-settings: "ss07";

This tells the browser to render a different version of the character — in this case, the modern single-storey “a.”

Before using this font feature make sure your font supports multiple glyphs.

You can read more about font-feature-settings here.

Why it didn’t work for me at first

I tried the CSS, but nothing changed.

That’s when I realized: I was using next/font/google from Next.js — and Google Fonts doesn’t support all OpenType features.

So even though the font was technically Inter, I wasn’t getting the full version.

The fix: self-hosting the Inter font

To solve this, I self-hosted the font — and it worked perfectly.

Here’s how I did it:

1. Download the font

From the official Inter GitHub repo, I grabbed:

  • InterVariable.woff2
  • InterVariable-Italic.woff2

2. Add to your project

Placed both files in:

/src/app/fonts/

3. Use next/font/local

In layout.tsx, I imported the font like this:

layout.tsx
import localFont from "next/font/local";

const inter = localFont({
  src: [
    {
      path: "./fonts/InterVariable.woff2",
      weight: "100 900",
      style: "normal",
    },
    {
      path: "./fonts/InterVariable-Italic.woff2",
      weight: "100 900",
      style: "italic",
    },
  ],
  variable: "--font-inter",
});

4. Set the font-feature-settings

Then in global CSS:

globals.css
html {
  font-feature-settings: "ss07";
}

Now the text uses the alternate glyph — and just like that, the font looked cleaner, sharper, and more modern.

Final thoughts

I didn’t change the font.

I didn’t tweak a thousand settings.

I just enabled one hidden feature — and it made a big difference.

If you’re a developer like me who cares about details, this is a great trick to level up your typography without becoming a designer.

Useful resources

  • Inter GitHub Repository
  • MDN: font-feature-settings
  • Next.js Local Font Docs
  • Google Fonts Glyphs
  • Brittany Chiang’s Portfolio

Want more dev-friendly UI tips?

I’m sharing more little frontend wins like this on LinkedIn and Twitter.

If this post helped you, follow me or reach out — I’d love to connect.

Peace ✌️

Built with love by Gaurav Shukla