diff --git a/packages/core/lib/src/internal/ops/tag_font.dart b/packages/core/lib/src/internal/ops/tag_font.dart
index d4a7229cb..09fcc3103 100644
--- a/packages/core/lib/src/internal/ops/tag_font.dart
+++ b/packages/core/lib/src/internal/ops/tag_font.dart
@@ -9,6 +9,7 @@ const kCssFontFamily = 'font-family';
const kCssFontSize = 'font-size';
const kCssFontSizeXxLarge = 'xx-large';
+const kCssFontSizeXxxLarge = 'xxx-large';
const kCssFontSizeXLarge = 'x-large';
const kCssFontSizeLarge = 'large';
const kCssFontSizeMedium = 'medium';
diff --git a/packages/core/lib/src/internal/text_ops.dart b/packages/core/lib/src/internal/text_ops.dart
index ab2c9bd0f..b0c8cc3d6 100644
--- a/packages/core/lib/src/internal/text_ops.dart
+++ b/packages/core/lib/src/internal/text_ops.dart
@@ -75,6 +75,8 @@ double? _fontSizeTryParseCssLength(InheritedProperties resolved, CssLength v) =>
double? _fontSizeTryParseTerm(InheritedProperties resolved, String value) {
switch (value) {
+ case kCssFontSizeXxxLarge:
+ return _fontSizeMultiplyRootWith(resolved, 3.0);
case kCssFontSizeXxLarge:
return _fontSizeMultiplyRootWith(resolved, 2.0);
case kCssFontSizeXLarge:
diff --git a/packages/core/test/core_test.dart b/packages/core/test/core_test.dart
index 2bb54047e..b6815c6fc 100644
--- a/packages/core/test/core_test.dart
+++ b/packages/core/test/core_test.dart
@@ -1131,6 +1131,12 @@ void main() {
expect(explained, equals('[RichText:(@8.3:Foo)]'));
});
+ testWidgets('renders xxx-large', (WidgetTester tester) async {
+ const html = 'Foo';
+ final explained = await explain(tester, html);
+ expect(explained, equals('[RichText:(@30.0:Foo)]'));
+ });
+
testWidgets('renders xx-large', (WidgetTester tester) async {
const html = 'Foo';
final explained = await explain(tester, html);