From 627b6207264ab32dd9a70315767d2d68755856af Mon Sep 17 00:00:00 2001 From: "Benjamin Limpich (via MelvinBot)" Date: Wed, 8 Apr 2026 00:41:59 +0000 Subject: [PATCH 1/2] Fix merchant rule row clipping descender characters Add lh20 (lineHeight: 20) to descriptionTextStyle in MerchantRulesSection to prevent descender characters (g, y, p, q, j) from being clipped. The textNormalThemeText style sets fontSize: 15 but has no lineHeight, causing MenuItem's default lineHeight of 16 to clip descenders. Co-authored-by: Benjamin Limpich --- src/pages/workspace/rules/MerchantRulesSection.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/workspace/rules/MerchantRulesSection.tsx b/src/pages/workspace/rules/MerchantRulesSection.tsx index aeec4edb4917..586fbae98f8a 100644 --- a/src/pages/workspace/rules/MerchantRulesSection.tsx +++ b/src/pages/workspace/rules/MerchantRulesSection.tsx @@ -168,7 +168,7 @@ function MerchantRulesSection({policyID}: MerchantRulesSectionProps) { description={matchDescription} title={ruleDescription} wrapperStyle={[styles.borderedContentCard, styles.ph4, styles.pv4]} - descriptionTextStyle={[styles.textNormalThemeText]} + descriptionTextStyle={[styles.textNormalThemeText, styles.lh20]} titleStyle={[styles.textLabelSupporting, styles.fontSizeLabel]} shouldShowRightIcon onPress={() => Navigation.navigate(ROUTES.RULES_MERCHANT_EDIT.getRoute(policyID, rule.ruleID))} From 0d30ff083d9fa9c1f911b51b701752bdc5edbac7 Mon Sep 17 00:00:00 2001 From: "Benjamin Limpich (via MelvinBot)" Date: Mon, 13 Apr 2026 20:32:01 +0000 Subject: [PATCH 2/2] Use scalable line height for merchant rule descriptions Replace hardcoded styles.lh20 (lineHeight: 20) with variables.fontSizeNormalHeight so line height scales with device font settings in accessibility modes. Co-authored-by: Benjamin Limpich --- src/pages/workspace/rules/MerchantRulesSection.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/pages/workspace/rules/MerchantRulesSection.tsx b/src/pages/workspace/rules/MerchantRulesSection.tsx index 586fbae98f8a..341e4c723cd8 100644 --- a/src/pages/workspace/rules/MerchantRulesSection.tsx +++ b/src/pages/workspace/rules/MerchantRulesSection.tsx @@ -19,6 +19,7 @@ import Navigation from '@libs/Navigation/Navigation'; import Parser from '@libs/Parser'; import {getCommaSeparatedTagNameWithSanitizedColons} from '@libs/PolicyUtils'; import tokenizedSearch from '@libs/tokenizedSearch'; +import variables from '@styles/variables'; import CONST from '@src/CONST'; import ROUTES from '@src/ROUTES'; import type {CodingRule} from '@src/types/onyx/Policy'; @@ -168,7 +169,7 @@ function MerchantRulesSection({policyID}: MerchantRulesSectionProps) { description={matchDescription} title={ruleDescription} wrapperStyle={[styles.borderedContentCard, styles.ph4, styles.pv4]} - descriptionTextStyle={[styles.textNormalThemeText, styles.lh20]} + descriptionTextStyle={[styles.textNormalThemeText, {lineHeight: variables.fontSizeNormalHeight}]} titleStyle={[styles.textLabelSupporting, styles.fontSizeLabel]} shouldShowRightIcon onPress={() => Navigation.navigate(ROUTES.RULES_MERCHANT_EDIT.getRoute(policyID, rule.ruleID))}