feat(ui/fonts): add kernings field into rust font files FontInfo struct.
What changed, and why it matters
This commit is a routine user-interface change: it adds a new optional 'kernings' field to font description structures in the Trezor firmware's Rust code. Every font is simply set to 'None' (no kerning data), so nothing actually changes in behavior. There is no security issue visible in this patch.
No security action required. Treat as normal UI/font maintenance.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The commit updates 21 generated Rust font files to include a new kernings: None field in each FontInfo struct instance. This is a data-structure alignment change, likely required because the FontInfo struct definition elsewhere was updated to include an optional kerning table. All values are None, so no kerning is applied. No logic, parsing, or unsafe code is introduced.
Changed components
core/embed/rust/src/ui/layout_bolt/fonts/*core/embed/rust/src/ui/layout_caesar/fonts/*core/embed/rust/src/ui/layout_delizia/fonts/*core/embed/rust/src/ui/layout_eckhart/fonts/*Inspect captured patch +24 / −0
diff --git a/core/embed/rust/src/ui/layout_bolt/fonts/font_robotomono_medium_20.rs b/core/embed/rust/src/ui/layout_bolt/fonts/font_robotomono_medium_20.rs
index 18c50721..467727b1 100644
--- a/core/embed/rust/src/ui/layout_bolt/fonts/font_robotomono_medium_20.rs
+++ b/core/embed/rust/src/ui/layout_bolt/fonts/font_robotomono_medium_20.rs
@@ -403,4 +403,5 @@ pub const Font_RobotoMono_Medium_20_info: FontInfo = FontInfo {
baseline: 5,
glyph_data: &Font_RobotoMono_Medium_20,
glyph_nonprintable: &Font_RobotoMono_Medium_20_glyph_nonprintable,
+ kernings: None,
};
diff --git a/core/embed/rust/src/ui/layout_bolt/fonts/font_tthoves_bold_17.rs b/core/embed/rust/src/ui/layout_bolt/fonts/font_tthoves_bold_17.rs
index aab3e04a..fd858338 100644
--- a/core/embed/rust/src/ui/layout_bolt/fonts/font_tthoves_bold_17.rs
+++ b/core/embed/rust/src/ui/layout_bolt/fonts/font_tthoves_bold_17.rs
@@ -325,4 +325,5 @@ pub const Font_TTHoves_Bold_17_upper_info: FontInfo = FontInfo {
baseline: 4,
glyph_data: &Font_TTHoves_Bold_17_upper,
glyph_nonprintable: &Font_TTHoves_Bold_17_glyph_nonprintable,
+ kernings: None,
};
diff --git a/core/embed/rust/src/ui/layout_bolt/fonts/font_tthoves_demibold_21.rs b/core/embed/rust/src/ui/layout_bolt/fonts/font_tthoves_demibold_21.rs
index 5cecf684..7f1d9612 100644
--- a/core/embed/rust/src/ui/layout_bolt/fonts/font_tthoves_demibold_21.rs
+++ b/core/embed/rust/src/ui/layout_bolt/fonts/font_tthoves_demibold_21.rs
@@ -403,4 +403,5 @@ pub const Font_TTHoves_DemiBold_21_info: FontInfo = FontInfo {
baseline: 4,
glyph_data: &Font_TTHoves_DemiBold_21,
glyph_nonprintable: &Font_TTHoves_DemiBold_21_glyph_nonprintable,
+ kernings: None,
};
diff --git a/core/embed/rust/src/ui/layout_bolt/fonts/font_tthoves_regular_21.rs b/core/embed/rust/src/ui/layout_bolt/fonts/font_tthoves_regular_21.rs
index 69ac897b..ed422111 100644
--- a/core/embed/rust/src/ui/layout_bolt/fonts/font_tthoves_regular_21.rs
+++ b/core/embed/rust/src/ui/layout_bolt/fonts/font_tthoves_regular_21.rs
@@ -403,4 +403,5 @@ pub const Font_TTHoves_Regular_21_info: FontInfo = FontInfo {
baseline: 4,
glyph_data: &Font_TTHoves_Regular_21,
glyph_nonprintable: &Font_TTHoves_Regular_21_glyph_nonprintable,
+ kernings: None,
};
diff --git a/core/embed/rust/src/ui/layout_caesar/fonts/font_pixeloperator_bold_8.rs b/core/embed/rust/src/ui/layout_caesar/fonts/font_pixeloperator_bold_8.rs
index c202e1d1..8775c8b2 100644
--- a/core/embed/rust/src/ui/layout_caesar/fonts/font_pixeloperator_bold_8.rs
+++ b/core/embed/rust/src/ui/layout_caesar/fonts/font_pixeloperator_bold_8.rs
@@ -504,6 +504,7 @@ pub const Font_PixelOperator_Bold_8_info: FontInfo = FontInfo {
baseline: 1,
glyph_data: &Font_PixelOperator_Bold_8,
glyph_nonprintable: &Font_PixelOperator_Bold_8_glyph_nonprintable,
+ kernings: None,
};
/// FontInfo struct for forced uppercase usage
@@ -514,4 +515,5 @@ pub const Font_PixelOperator_Bold_8_upper_info: FontInfo = FontInfo {
baseline: 1,
glyph_data: &Font_PixelOperator_Bold_8_upper,
glyph_nonprintable: &Font_PixelOperator_Bold_8_glyph_nonprintable,
+ kernings: None,
};
diff --git a/core/embed/rust/src/ui/layout_caesar/fonts/font_pixeloperator_regular_8.rs b/core/embed/rust/src/ui/layout_caesar/fonts/font_pixeloperator_regular_8.rs
index 6f8ebde2..5b6ccb51 100644
--- a/core/embed/rust/src/ui/layout_caesar/fonts/font_pixeloperator_regular_8.rs
+++ b/core/embed/rust/src/ui/layout_caesar/fonts/font_pixeloperator_regular_8.rs
@@ -504,6 +504,7 @@ pub const Font_PixelOperator_Regular_8_info: FontInfo = FontInfo {
baseline: 1,
glyph_data: &Font_PixelOperator_Regular_8,
glyph_nonprintable: &Font_PixelOperator_Regular_8_glyph_nonprintable,
+ kernings: None,
};
/// FontInfo struct for forced uppercase usage
@@ -514,4 +515,5 @@ pub const Font_PixelOperator_Regular_8_upper_info: FontInfo = FontInfo {
baseline: 1,
glyph_data: &Font_PixelOperator_Regular_8_upper,
glyph_nonprintable: &Font_PixelOperator_Regular_8_glyph_nonprintable,
+ kernings: None,
};
diff --git a/core/embed/rust/src/ui/layout_caesar/fonts/font_pixeloperatormono_regular_8.rs b/core/embed/rust/src/ui/layout_caesar/fonts/font_pixeloperatormono_regular_8.rs
index af7fa70b..d13f58e0 100644
--- a/core/embed/rust/src/ui/layout_caesar/fonts/font_pixeloperatormono_regular_8.rs
+++ b/core/embed/rust/src/ui/layout_caesar/fonts/font_pixeloperatormono_regular_8.rs
@@ -407,4 +407,5 @@ pub const Font_PixelOperatorMono_Regular_8_info: FontInfo = FontInfo {
baseline: 1,
glyph_data: &Font_PixelOperatorMono_Regular_8,
glyph_nonprintable: &Font_PixelOperatorMono_Regular_8_glyph_nonprintable,
+ kernings: None,
};
diff --git a/core/embed/rust/src/ui/layout_caesar/fonts/font_unifont_bold_16.rs b/core/embed/rust/src/ui/layout_caesar/fonts/font_unifont_bold_16.rs
index 8c876fb3..7ccab7a6 100644
--- a/core/embed/rust/src/ui/layout_caesar/fonts/font_unifont_bold_16.rs
+++ b/core/embed/rust/src/ui/layout_caesar/fonts/font_unifont_bold_16.rs
@@ -403,4 +403,5 @@ pub const Font_Unifont_Bold_16_info: FontInfo = FontInfo {
baseline: 2,
glyph_data: &Font_Unifont_Bold_16,
glyph_nonprintable: &Font_Unifont_Bold_16_glyph_nonprintable,
+ kernings: None,
};
diff --git a/core/embed/rust/src/ui/layout_caesar/fonts/font_unifont_regular_16.rs b/core/embed/rust/src/ui/layout_caesar/fonts/font_unifont_regular_16.rs
index f0b6775f..661e8abd 100644
--- a/core/embed/rust/src/ui/layout_caesar/fonts/font_unifont_regular_16.rs
+++ b/core/embed/rust/src/ui/layout_caesar/fonts/font_unifont_regular_16.rs
@@ -407,4 +407,5 @@ pub const Font_Unifont_Regular_16_info: FontInfo = FontInfo {
baseline: 2,
glyph_data: &Font_Unifont_Regular_16,
glyph_nonprintable: &Font_Unifont_Regular_16_glyph_nonprintable,
+ kernings: None,
};
diff --git a/core/embed/rust/src/ui/layout_delizia/fonts/font_robotomono_medium_21.rs b/core/embed/rust/src/ui/layout_delizia/fonts/font_robotomono_medium_21.rs
index ef93582f..7559ae24 100644
--- a/core/embed/rust/src/ui/layout_delizia/fonts/font_robotomono_medium_21.rs
+++ b/core/embed/rust/src/ui/layout_delizia/fonts/font_robotomono_medium_21.rs
@@ -403,4 +403,5 @@ pub const Font_RobotoMono_Medium_21_info: FontInfo = FontInfo {
baseline: 5,
glyph_data: &Font_RobotoMono_Medium_21,
glyph_nonprintable: &Font_RobotoMono_Medium_21_glyph_nonprintable,
+ kernings: None,
};
diff --git a/core/embed/rust/src/ui/layout_delizia/fonts/font_tthoves_bold_17.rs b/core/embed/rust/src/ui/layout_delizia/fonts/font_tthoves_bold_17.rs
index aab3e04a..fd858338 100644
--- a/core/embed/rust/src/ui/layout_delizia/fonts/font_tthoves_bold_17.rs
+++ b/core/embed/rust/src/ui/layout_delizia/fonts/font_tthoves_bold_17.rs
@@ -325,4 +325,5 @@ pub const Font_TTHoves_Bold_17_upper_info: FontInfo = FontInfo {
baseline: 4,
glyph_data: &Font_TTHoves_Bold_17_upper,
glyph_nonprintable: &Font_TTHoves_Bold_17_glyph_nonprintable,
+ kernings: None,
};
diff --git a/core/embed/rust/src/ui/layout_delizia/fonts/font_ttsatoshi_demibold_18.rs b/core/embed/rust/src/ui/layout_delizia/fonts/font_ttsatoshi_demibold_18.rs
index 49921bfc..31a85f07 100644
--- a/core/embed/rust/src/ui/layout_delizia/fonts/font_ttsatoshi_demibold_18.rs
+++ b/core/embed/rust/src/ui/layout_delizia/fonts/font_ttsatoshi_demibold_18.rs
@@ -405,4 +405,5 @@ pub const Font_TTSatoshi_DemiBold_18_info: FontInfo = FontInfo {
baseline: 4,
glyph_data: &Font_TTSatoshi_DemiBold_18,
glyph_nonprintable: &Font_TTSatoshi_DemiBold_18_glyph_nonprintable,
+ kernings: None,
};
diff --git a/core/embed/rust/src/ui/layout_delizia/fonts/font_ttsatoshi_demibold_21.rs b/core/embed/rust/src/ui/layout_delizia/fonts/font_ttsatoshi_demibold_21.rs
index 7c75996d..a79affff 100644
--- a/core/embed/rust/src/ui/layout_delizia/fonts/font_ttsatoshi_demibold_21.rs
+++ b/core/embed/rust/src/ui/layout_delizia/fonts/font_ttsatoshi_demibold_21.rs
@@ -405,4 +405,5 @@ pub const Font_TTSatoshi_DemiBold_21_info: FontInfo = FontInfo {
baseline: 5,
glyph_data: &Font_TTSatoshi_DemiBold_21,
glyph_nonprintable: &Font_TTSatoshi_DemiBold_21_glyph_nonprintable,
+ kernings: None,
};
diff --git a/core/embed/rust/src/ui/layout_delizia/fonts/font_ttsatoshi_demibold_42.rs b/core/embed/rust/src/ui/layout_delizia/fonts/font_ttsatoshi_demibold_42.rs
index 85153bdf..c0d6dcff 100644
--- a/core/embed/rust/src/ui/layout_delizia/fonts/font_ttsatoshi_demibold_42.rs
+++ b/core/embed/rust/src/ui/layout_delizia/fonts/font_ttsatoshi_demibold_42.rs
@@ -201,4 +201,5 @@ pub const Font_TTSatoshi_DemiBold_42_info: FontInfo = FontInfo {
baseline: 9,
glyph_data: &Font_TTSatoshi_DemiBold_42,
glyph_nonprintable: &Font_TTSatoshi_DemiBold_42_glyph_nonprintable,
+ kernings: None,
};
diff --git a/core/embed/rust/src/ui/layout_eckhart/fonts/font_robotomono_light_30.rs b/core/embed/rust/src/ui/layout_eckhart/fonts/font_robotomono_light_30.rs
index 990134e1..5182814e 100644
--- a/core/embed/rust/src/ui/layout_eckhart/fonts/font_robotomono_light_30.rs
+++ b/core/embed/rust/src/ui/layout_eckhart/fonts/font_robotomono_light_30.rs
@@ -403,4 +403,5 @@ pub const Font_RobotoMono_Light_30_info: FontInfo = FontInfo {
baseline: 7,
glyph_data: &Font_RobotoMono_Light_30,
glyph_nonprintable: &Font_RobotoMono_Light_30_glyph_nonprintable,
+ kernings: None,
};
diff --git a/core/embed/rust/src/ui/layout_eckhart/fonts/font_robotomono_medium_38.rs b/core/embed/rust/src/ui/layout_eckhart/fonts/font_robotomono_medium_38.rs
index e7d993ba..6cfa4073 100644
--- a/core/embed/rust/src/ui/layout_eckhart/fonts/font_robotomono_medium_38.rs
+++ b/core/embed/rust/src/ui/layout_eckhart/fonts/font_robotomono_medium_38.rs
@@ -403,4 +403,5 @@ pub const Font_RobotoMono_Medium_38_info: FontInfo = FontInfo {
baseline: 9,
glyph_data: &Font_RobotoMono_Medium_38,
glyph_nonprintable: &Font_RobotoMono_Medium_38_glyph_nonprintable,
+ kernings: None,
};
diff --git a/core/embed/rust/src/ui/layout_eckhart/fonts/font_ttsatoshi_extralight_46.rs b/core/embed/rust/src/ui/layout_eckhart/fonts/font_ttsatoshi_extralight_46.rs
index 2bb3020e..69c22186 100644
--- a/core/embed/rust/src/ui/layout_eckhart/fonts/font_ttsatoshi_extralight_46.rs
+++ b/core/embed/rust/src/ui/layout_eckhart/fonts/font_ttsatoshi_extralight_46.rs
@@ -403,4 +403,5 @@ pub const Font_TTSatoshi_ExtraLight_46_info: FontInfo = FontInfo {
baseline: 10,
glyph_data: &Font_TTSatoshi_ExtraLight_46,
glyph_nonprintable: &Font_TTSatoshi_ExtraLight_46_glyph_nonprintable,
+ kernings: None,
};
diff --git a/core/embed/rust/src/ui/layout_eckhart/fonts/font_ttsatoshi_extralight_72.rs b/core/embed/rust/src/ui/layout_eckhart/fonts/font_ttsatoshi_extralight_72.rs
index 36953944..f91d62b4 100644
--- a/core/embed/rust/src/ui/layout_eckhart/fonts/font_ttsatoshi_extralight_72.rs
+++ b/core/embed/rust/src/ui/layout_eckhart/fonts/font_ttsatoshi_extralight_72.rs
@@ -504,6 +504,7 @@ pub const Font_TTSatoshi_ExtraLight_72_info: FontInfo = FontInfo {
baseline: 15,
glyph_data: &Font_TTSatoshi_ExtraLight_72,
glyph_nonprintable: &Font_TTSatoshi_ExtraLight_72_glyph_nonprintable,
+ kernings: None,
};
/// FontInfo struct for numeral-only ASCII usage
@@ -514,4 +515,5 @@ pub const Font_TTSatoshi_ExtraLight_72_NumsOnly_info: FontInfo = FontInfo {
baseline: 15,
glyph_data: &Font_TTSatoshi_ExtraLight_72_nums,
glyph_nonprintable: &Font_TTSatoshi_ExtraLight_72_glyph_nonprintable,
+ kernings: None,
};
diff --git a/core/embed/rust/src/ui/layout_eckhart/fonts/font_ttsatoshi_medium_26.rs b/core/embed/rust/src/ui/layout_eckhart/fonts/font_ttsatoshi_medium_26.rs
index 66ec7a14..064538bf 100644
--- a/core/embed/rust/src/ui/layout_eckhart/fonts/font_ttsatoshi_medium_26.rs
+++ b/core/embed/rust/src/ui/layout_eckhart/fonts/font_ttsatoshi_medium_26.rs
@@ -403,4 +403,5 @@ pub const Font_TTSatoshi_Medium_26_info: FontInfo = FontInfo {
baseline: 6,
glyph_data: &Font_TTSatoshi_Medium_26,
glyph_nonprintable: &Font_TTSatoshi_Medium_26_glyph_nonprintable,
+ kernings: None,
};
diff --git a/core/embed/rust/src/ui/layout_eckhart/fonts/font_ttsatoshi_regular_22.rs b/core/embed/rust/src/ui/layout_eckhart/fonts/font_ttsatoshi_regular_22.rs
index 3e0252a5..d2027c46 100644
--- a/core/embed/rust/src/ui/layout_eckhart/fonts/font_ttsatoshi_regular_22.rs
+++ b/core/embed/rust/src/ui/layout_eckhart/fonts/font_ttsatoshi_regular_22.rs
@@ -403,4 +403,5 @@ pub const Font_TTSatoshi_Regular_22_info: FontInfo = FontInfo {
baseline: 5,
glyph_data: &Font_TTSatoshi_Regular_22,
glyph_nonprintable: &Font_TTSatoshi_Regular_22_glyph_nonprintable,
+ kernings: None,
};
diff --git a/core/embed/rust/src/ui/layout_eckhart/fonts/font_ttsatoshi_regular_38.rs b/core/embed/rust/src/ui/layout_eckhart/fonts/font_ttsatoshi_regular_38.rs
index b41541aa..404207d3 100644
--- a/core/embed/rust/src/ui/layout_eckhart/fonts/font_ttsatoshi_regular_38.rs
+++ b/core/embed/rust/src/ui/layout_eckhart/fonts/font_ttsatoshi_regular_38.rs
@@ -403,4 +403,5 @@ pub const Font_TTSatoshi_Regular_38_info: FontInfo = FontInfo {
baseline: 9,
glyph_data: &Font_TTSatoshi_Regular_38,
glyph_nonprintable: &Font_TTSatoshi_Regular_38_glyph_nonprintable,
+ kernings: None,
};
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.