diff --git a/frontends/rioterm/src/renderer/mod.rs b/frontends/rioterm/src/renderer/mod.rs
index 34494793f5..759f2e9f6a 100644
--- a/frontends/rioterm/src/renderer/mod.rs
+++ b/frontends/rioterm/src/renderer/mod.rs
@@ -152,16 +152,13 @@ impl Renderer {
             square.c
         };
 
-        let font_attrs = match (
-            flags.contains(Flags::ITALIC),
-            flags.contains(Flags::BOLD_ITALIC),
-            flags.contains(Flags::BOLD),
-        ) {
-            (true, _, _) => (Stretch::NORMAL, Weight::NORMAL, Style::Italic),
-            (_, true, _) => (Stretch::NORMAL, Weight::BOLD, Style::Italic),
-            (_, _, true) => (Stretch::NORMAL, Weight::BOLD, Style::Normal),
-            _ => (Stretch::NORMAL, Weight::NORMAL, Style::Normal),
-        };
+        let font_attrs =
+            match (flags.contains(Flags::BOLD), flags.contains(Flags::ITALIC)) {
+                (true, true) => (Stretch::NORMAL, Weight::BOLD, Style::Italic),
+                (true, false) => (Stretch::NORMAL, Weight::BOLD, Style::Normal),
+                (false, true) => (Stretch::NORMAL, Weight::NORMAL, Style::Italic),
+                _ => (Stretch::NORMAL, Weight::NORMAL, Style::Normal),
+            };
 
         if flags.contains(Flags::INVERSE) {
             std::mem::swap(&mut background_color, &mut foreground_color);
diff --git a/sugarloaf/src/components/layer/atlas.rs b/sugarloaf/src/components/layer/atlas.rs
index 43fa79c579..7a06e7d289 100644
--- a/sugarloaf/src/components/layer/atlas.rs
+++ b/sugarloaf/src/components/layer/atlas.rs
@@ -175,9 +175,8 @@ impl Atlas {
             let offset = row * padded_width;
             let src_row_bytes = (bytes_per_pixel * width) as usize;
 
-            padded_data[offset..offset + src_row_bytes].copy_from_slice(
-                &data[row * src_row_bytes..(row + 1) * src_row_bytes],
-            )
+            padded_data[offset..offset + src_row_bytes]
+                .copy_from_slice(&data[row * src_row_bytes..(row + 1) * src_row_bytes])
         }
 
         match &entry {
diff --git a/sugarloaf/src/components/rich_text/image_cache/glyph.rs b/sugarloaf/src/components/rich_text/image_cache/glyph.rs
index 7b53001412..e176ab8c84 100644
--- a/sugarloaf/src/components/rich_text/image_cache/glyph.rs
+++ b/sugarloaf/src/components/rich_text/image_cache/glyph.rs
@@ -135,6 +135,7 @@ impl GlyphCacheSession<'_> {
         let font_data = font_library_data.get(&self.font);
         let should_embolden = font_data.should_embolden;
         let should_italicize = font_data.should_italicize;
+        let synth = font_data.synth;
 
         if let Some((shared_data, offset, cache_key)) =
             font_library_data.get_data(&self.font)
@@ -144,6 +145,12 @@ impl GlyphCacheSession<'_> {
                 offset,
                 key: cache_key,
             };
+
+            let coords: Vec<_> = font_ref
+                .variations()
+                .normalized_coords(synth.variations().iter().copied())
+                .collect();
+
             let mut scaler = self
                 .scale_context
                 .builder(font_ref)
@@ -155,7 +162,7 @@ impl GlyphCacheSession<'_> {
                 // .hint(!IS_MACOS)
                 .hint(enable_hint)
                 .size(self.quant_size.into())
-                // .normalized_coords(coords)
+                .normalized_coords(&coords)
                 .build();
 
             // let embolden = if IS_MACOS { 0.25 } else { 0. };
diff --git a/sugarloaf/src/font/mod.rs b/sugarloaf/src/font/mod.rs
index fb6848ab9f..31183af6d1 100644
--- a/sugarloaf/src/font/mod.rs
+++ b/sugarloaf/src/font/mod.rs
@@ -19,7 +19,7 @@ use crate::font_introspector::text::cluster::Token;
 use crate::font_introspector::text::cluster::{CharCluster, Status};
 use crate::font_introspector::text::Codepoint;
 use crate::font_introspector::text::Script;
-use crate::font_introspector::{CacheKey, FontRef, Synthesis};
+use crate::font_introspector::{Attributes, CacheKey, FontRef, Synthesis};
 use crate::layout::FragmentStyle;
 use crate::SugarloafErrors;
 use dashmap::DashMap;
@@ -672,7 +672,14 @@ impl FontData {
         let should_embolden = font_spec.weight >= Some(700) && weight < Weight(700);
 
         let stretch = attributes.stretch();
-        let synth = attributes.synthesize(attributes);
+
+        let requested_weight = font_spec.weight.map(Weight).unwrap_or(Weight::NORMAL);
+        let requested_style = match font_spec.style {
+            SugarloafFontStyle::Italic => Style::Italic,
+            SugarloafFontStyle::Normal => Style::Normal,
+        };
+        let requested_attrs = Attributes::new(stretch, requested_weight, requested_style);
+        let synth = attributes.synthesize(requested_attrs);
 
         let data = (!evictable).then_some(data);
 
