<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div dir="ltr" style="font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
We do care.</div>
<div dir="ltr" style="font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div dir="ltr" style="font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Presently, there is a number of tickets in JBS complaining about fonts, for example</div>
<div dir="ltr" style="font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<p dir="ltr" style="line-height: normal; margin: 0px;"><span style="font-family: "Helvetica Neue"; font-size: 13px; color: rgb(0, 0, 0);"><u><a href="https://bugs.openjdk.org/browse/JDK-8344037" data-outlook-id="147eebeb-ee9e-461d-913a-646dab7389be" style="margin-top: 0px; margin-bottom: 0px;">JDK-8344037</a></u> Font.loadFont()
loads light/thin fonts as fonts with distinct families.</span></p>
<p style="line-height: normal; margin: 0px;"><span style="font-family: "Helvetica Neue"; font-size: 13px; color: rgb(0, 0, 0);"><u><a href="https://bugs.openjdk.org/browse/JDK-8087799" data-outlook-id="b1feb85f-a2ea-40df-93c2-483157cf94c6" style="margin-top: 0px; margin-bottom: 0px;">JDK-8087799</a></u> Unable
to choose semibold fonts using CSS font-weight</span></p>
<p style="line-height: normal; margin: 0px;"><span style="font-family: "Helvetica Neue"; font-size: 13px; color: rgb(0, 0, 0);"><u><a href="https://bugs.openjdk.org/browse/JDK-8310565" data-outlook-id="d3e0a04d-8cc8-4d4e-90bf-91a4fedf8f6a" style="margin-top: 0px; margin-bottom: 0px;">JDK-8310565</a></u> [macos]When
setting the font family for text, the Regular font is not being used</span></p>
<p style="line-height: normal; margin: 0px;"><span style="font-family: "Helvetica Neue"; font-size: 13px; color: rgb(0, 0, 0);"><u><a href="https://bugs.openjdk.org/browse/JDK-8209435" data-outlook-id="37facdec-56c5-45e8-8158-2fd2f40d3286" style="margin-top: 0px; margin-bottom: 0px;">JDK-8209435</a></u> [macOS]
Text with bold font weight rendered as normal text when TTC font is used</span></p>
<p style="line-height: normal; margin: 0px;"><span style="font-family: "Helvetica Neue"; font-size: 13px; color: rgb(0, 0, 0);"><u><a href="https://bugs.openjdk.org/browse/JDK-8310663" data-outlook-id="8199801d-b382-40e7-a5da-eb2135368a48" style="margin-top: 0px; margin-bottom: 0px;">JDK-8310663</a></u> CSS
parser can read all the font related properties, except for some font-family</span></p>
<p style="line-height: normal; margin: 0px;"><span style="font-family: "Helvetica Neue"; font-size: 13px; color: rgb(0, 0, 0);"><u><a href="https://bugs.openjdk.org/browse/JDK-8088391" data-outlook-id="ea930dc5-6139-4537-897e-ecc040df5466" style="margin-top: 0px; margin-bottom: 0px;">JDK-8088391</a></u> javafx.scene.text.Font
broken for families with more weights than Regular & Bold; especially on Mac</span></p>
<p style="line-height: normal; margin: 0px;"><span style="font-family: "Helvetica Neue"; font-size: 13px; color: rgb(0, 0, 0);"><u><a href="https://bugs.openjdk.org/browse/JDK-8190855" data-outlook-id="9d2d7e32-24dc-4f08-b947-e10df2ea0168" style="margin-top: 0px; margin-bottom: 0px;">JDK-8190855</a></u> The
text will be invisible when choosing different fonts of "Noto Sans" type</span></p>
<p style="line-height: normal; margin: 0px;"><span style="font-family: "Helvetica Neue"; font-size: 13px; color: rgb(0, 0, 0);"><u><a href="https://bugs.openjdk.org/browse/JDK-8176835" data-outlook-id="ff6b89c2-8b62-4089-b4c9-06307154f3b0" style="margin-top: 0px; margin-bottom: 0px;">JDK-8176835</a></u> [macosx]
System font cannot be boldened</span></p>
<p style="line-height: normal; margin: 0px;"><span style="font-family: "Helvetica Neue"; font-size: 13px; color: rgb(0, 0, 0);"><u><a href="https://bugs.openjdk.org/browse/JDK-8088257" data-outlook-id="921ab2d3-92d0-4564-95c2-6186ad5f883a" style="margin-top: 0px; margin-bottom: 0px;">JDK-8088257</a></u> support
for both English and native font names</span></p>
<p style="line-height: normal; margin: 0px;"><span style="font-family: "Helvetica Neue"; font-size: 13px; color: rgb(0, 0, 0);"><u><a href="https://bugs.openjdk.org/browse/JDK-8089128" data-outlook-id="97397d84-7c6f-45fa-956e-1070fbb82f73" style="margin-top: 0px; margin-bottom: 0px;">JDK-8089128</a></u> Font.getFontNames()
sometimes returns duplicated font names.</span></p>
<p style="line-height: normal; margin: 0px;"><span style="font-family: "Helvetica Neue"; font-size: 13px; color: rgb(0, 0, 0);"><u><a href="https://bugs.openjdk.org/browse/JDK-8089450" data-outlook-id="a7973bc6-6efc-4cd7-a818-99a3dac4ade0" style="margin-top: 0px; margin-bottom: 0px;">JDK-8089450</a></u> Inconsistent
naming for fonts in the 'Tahoma' family.</span></p>
<p style="line-height: normal; margin: 0px;"><span style="font-family: "Helvetica Neue"; font-size: 13px; color: rgb(0, 0, 0);"><u><a href="https://bugs.openjdk.org/browse/JDK-8090423" data-outlook-id="526d3b7e-b57b-4360-9fcb-90234ee5f3f0" style="margin-top: 0px; margin-bottom: 0px;">JDK-8090423</a></u> [Font]
Support Font Weights other than Bold and Regular, like Light</span></p>
<p style="line-height: normal; margin: 0px;"><span style="font-family: "Helvetica Neue"; font-size: 13px; color: rgb(0, 0, 0);"><u><a href="https://bugs.openjdk.org/browse/JDK-8090628" data-outlook-id="01861f59-f88b-4e28-8538-78d94ef85c63" style="margin-top: 0px; margin-bottom: 0px;">JDK-8090628</a></u> Font
- add getters for weight and posture</span></p>
<p style="line-height: normal; margin: 0px;"><span style="font-family: "Helvetica Neue"; font-size: 13px; color: rgb(0, 0, 0);"><u><a href="https://bugs.openjdk.org/browse/JDK-8092264" data-outlook-id="798230be-5567-4935-b348-e792e6e6fb8a" style="margin-top: 0px; margin-bottom: 0px;">JDK-8092264</a></u> Support
and document use of more fonts variants</span></p>
<div dir="ltr" style="font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div dir="ltr" style="font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(There might be more, I just did a quick query)</div>
<div dir="ltr" style="font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div dir="ltr" style="font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Are there any issues listed below that might be missing from JBS?</div>
<div dir="ltr" style="font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div dir="ltr" style="font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
-andy</div>
<div dir="ltr" style="font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div dir="ltr" style="font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div dir="ltr" style="font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div dir="ltr" style="font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="mail-editor-reference-message-container">
<div dir="ltr" class="ms-outlook-mobile-reference-message skipProofing"></div>
<div class="ms-outlook-mobile-reference-message skipProofing" style="text-align: left; padding: 3pt 0in 0in; border-width: 1pt medium medium; border-style: solid none none; border-color: rgb(181, 196, 223) currentcolor currentcolor; font-family: Aptos; font-size: 12pt; color: black;">
<b>From: </b>openjfx-dev <openjfx-dev-retn@openjdk.org> on behalf of Glavo <zjx001202@gmail.com><br>
<b>Date: </b>Friday, November 28, 2025 at 07:10<br>
<b>To: </b>openjfx-dev <openjfx-dev@openjdk.org><br>
<b>Subject: </b>Re: Some feature requests/improvement suggestions for the JavaFX Font API<br>
<br>
</div>
<div dir="ltr" class="ms-outlook-mobile-reference-message skipProofing">Does anyone care about these issues?</div>
<div dir="ltr" class="ms-outlook-mobile-reference-message skipProofing"><br>
</div>
<div dir="ltr" class="ms-outlook-mobile-reference-message skipProofing">Glavo</div>
<div dir="ltr" class="ms-outlook-mobile-reference-message skipProofing"><br>
</div>
<div dir="ltr" class="gmail_attr">On Mon, Jul 21, 2025 at 2:29 AM Glavo <<a href="mailto:zjx001202@gmail.com" data-outlook-id="9cafdcf3-fe01-4d7d-b0fe-1f4cac3ad9c3">zjx001202@gmail.com</a>> wrote:</div>
<blockquote style="margin: 0px 0px 0px 0.8ex; padding-left: 1ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);">
<div dir="ltr" class="gmail_quote">Hi,</div>
<div dir="ltr" class="gmail_quote"><br>
</div>
<div dir="ltr" class="gmail_quote">We noticed that the Font API had many bugs and inconsistencies, and was missing a lot of functionality.</div>
<div dir="ltr" class="gmail_quote">Unfortunately, I don't have enough knowledge in this field to solve them.</div>
<div dir="ltr" class="gmail_quote">So I'm making some feature requests/improvement suggestions on this to see if anyone is interested.</div>
<div dir="ltr" class="gmail_quote"><br>
</div>
<div dir="ltr" class="gmail_quote">1. Unify the meaning of "font family".<br>
<br>
</div>
<div dir="ltr" class="gmail_quote">Currently "font family" has different meanings on different platforms:</div>
<ul dir="ltr">
<li dir="ltr" style="margin-left: 15px;">On Windows, it usually means the localized name of the font family name (nameID=1);</li><li dir="ltr" style="margin-left: 15px;">On Linux, it usually means the non-localized font family name (nameID=1, langID=0x0);</li><li dir="ltr" style="margin-left: 15px;">On macOS, it usually means the non-localized typographical family name (nameID=16, langID=0x0).</li></ul>
<div dir="ltr" class="gmail_quote">This inconsistency makes the behavior of the program confusing and it is impossible to know what will happen without testing on multiple platforms.</div>
<div dir="ltr" class="gmail_quote"><br>
</div>
<div dir="ltr" class="gmail_quote">I want JavaFX to use the non-localized typographical family name (nameID=16, langID=0x0) on all platforms.</div>
<div dir="ltr" class="gmail_quote">The reason is that the font family name (nameID=1) of many fonts actually contains the font style information, </div>
<div dir="ltr" class="gmail_quote">and using it makes it difficult for us to select font style.</div>
<div dir="ltr" class="gmail_quote"><br>
</div>
<div dir="ltr" class="gmail_quote">For example, if we want to get JetBrains Mono Bold on Windows, we need to use
<span style="font-family: monospace;">Font.font("JetBrains Mono", FontWeight.BOLD, 13)</span>, </div>
<div dir="ltr" class="gmail_quote">but to get JetBrains Mono ExtraBold, we need to use
<span style="font-family: monospace;">Font.font("JetBrains Mono ExtraBold", FontWeight.NORMAL, 13)</span>.</div>
<div dir="ltr" class="gmail_quote">This is really frustrating :(</div>
<div dir="ltr" class="gmail_quote"><br>
</div>
<div dir="ltr" class="gmail_quote">Additionally, I encountered a bug on macOS that prevented me from selecting the font weight.</div>
<div dir="ltr" class="gmail_quote">I explained this issue in a previous email: <a href="https://mail.openjdk.org/pipermail/openjfx-dev/2025-July/055417.html" target="_blank" data-outlook-id="1bc39a45-12a2-4f14-be73-1a8e9294b547">
https://mail.openjdk.org/pipermail/openjfx-dev/2025-July/055417.html</a></div>
<div dir="ltr" class="gmail_quote"><br>
</div>
<div dir="ltr" class="gmail_quote">2. Make <span style="font-family: monospace;">
Font.font(String) </span>accept both font name and font family name.</div>
<div dir="ltr" class="gmail_quote"><br>
</div>
<div dir="ltr" class="gmail_quote">I wish <span style="font-family: monospace;">Font.font(String)</span> could accept more names than just the font family name.</div>
<div dir="ltr" class="gmail_quote"><br>
</div>
<div dir="ltr" class="gmail_quote">As mentioned in the previous section, the current concept of font family names in JavaFX is confusing and often contains font style information.</div>
<div dir="ltr" class="gmail_quote">Therefore, it is very difficult to use the <span style="font-family: monospace;">
Font.font(String)</span> in the correct way.</div>
<div dir="ltr" class="gmail_quote">If it would accept a variety of font names, both localized and non-localized, it would be less difficult to use.</div>
<div dir="ltr" class="gmail_quote"><br>
</div>
<div dir="ltr" class="gmail_quote">3. Add more methods to get font localized names</div>
<div dir="ltr" class="gmail_quote"><br>
</div>
<div dir="ltr" class="gmail_quote">I would like to get these methods in <span style="font-family: monospace;">
Font</span> class to get the localized name of the font:</div>
<ul dir="ltr">
<li dir="ltr"><span style="font-family: monospace;" role="presentation">static Map<Locale, String> getLocalizedFamilyNames(String family)</span></li><li dir="ltr"><span style="font-family: monospace;" role="presentation">static String getLocalizedFamilyName(String family, Locale locale)</span></li><li dir="ltr"><span style="font-family: monospace;" role="presentation">static String getLocalizedFontNames(Locale locale)</span></li><li dir="ltr"><span style="font-family: monospace;" role="presentation">static String getLocalizedFontNames(String family, Locale locale)</span></li><li dir="ltr"><span style="font-family: monospace;" role="presentation">Map<Locale, String> getLocalizedNames()</span></li><li dir="ltr"><span style="font-family: monospace;" role="presentation">String getLocalizedName(Locale locale)</span></li><li dir="ltr"><span style="font-family: monospace;" role="presentation">Map<Locale, String> getLocalizedFamily()</span></li><li dir="ltr"><span style="font-family: monospace;" role="presentation">String getLocalizedFamily(Locale locale)</span></li></ul>
<div dir="ltr" class="gmail_quote" style="font-family: arial, sans-serif;">4. More methods for handling font styles</div>
<div dir="ltr" class="gmail_quote"><br>
</div>
<div dir="ltr" class="gmail_quote">Right now we can only use FontWeight and FontPosture to select a font style when looking up a font, </div>
<div dir="ltr" class="gmail_quote">but the only way to get the style from a given Font object is
<span style="font-family: monospace;">Font::getStyle()</span>, which is very asymmetrical.</div>
<div dir="ltr" class="gmail_quote" style="font-family: monospace;"><br>
</div>
<div dir="ltr" class="gmail_quote">I would like to get these methods to handle font styles:</div>
<ul dir="ltr">
<li dir="ltr"><span style="font-family: monospace;" role="presentation">static List<String> getStyles(String family)</span></li><li dir="ltr"><span style="font-family: monospace;" role="presentation">static Font font(String family, String style)</span></li><li dir="ltr"><span style="font-family: monospace;" role="presentation">FontWeight getWeight()</span></li><li dir="ltr"><span style="font-family: monospace;" role="presentation">FontPosture getPosture()</span></li></ul>
<div dir="ltr" class="gmail_quote"><span style="font-family: monospace;">5. </span>
Support fallback fonts and CSS font list for UI controls</div>
<div dir="ltr" class="gmail_quote"><span style="font-family: monospace;">6. </span>
Provides a way to control the typographic features of fonts</div>
<div dir="ltr" class="gmail_quote"> Refer to Flutter's FontFeature class: <a href="https://api.flutter.dev/flutter/dart-ui/FontFeature-class.html" target="_blank" data-outlook-id="1e849d9d-6629-4f05-8567-736dfcf87f6b">
https://api.flutter.dev/flutter/dart-ui/FontFeature-class.html</a></div>
<div dir="ltr" class="gmail_quote"><br>
</div>
<div dir="ltr" class="gmail_quote">Glavo</div>
</blockquote>
</div>
</body>
</html>