From 3094d512f46c7ebfdb9d1868fe6e6b5872250d01 Mon Sep 17 00:00:00 2001 From: dhgoal <153369624+dhgoal@users.noreply.github.com> Date: Mon, 11 May 2026 14:55:25 +0200 Subject: [PATCH] :bug: Expose Source Sans Pro 600 weight in builtin fonts list (#9247) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The font-family list at frontend/src/app/main/fonts.cljs registers Source Sans Pro variants for weights 200, 300, 400, 700 and 900, but omits the semibold (600) entries even though the font assets are already bundled (frontend/resources/fonts/sourcesanspro-semibold.*) and the CSS @font-face declarations that load them are present (frontend/resources/styles/common/dependencies/fonts.scss:55-56). Result: weight 600 cannot be selected from the font picker even though the bytes are downloadable; users see a 400 -> 700 jump. Add the two missing variant entries (600 and 600 italic) using the same :suffix style as the other numeric-id entries (200, 300), since the file-name component "semibold" doesn't match the weight number. Issue mentions weights 500 and 800 as also missing, but no sourcesanspro-medium or sourcesanspro-extrabold assets exist in the repo, so this PR scopes to weight 600 only — the recoverable subset. Closes #7378. Signed-off-by: Andrey Antukh Co-authored-by: Andrey Antukh --- CHANGES.md | 1 + frontend/src/app/main/fonts.cljs | 2 ++ 2 files changed, 3 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index 06f18a6d08..49b2c99acf 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -16,6 +16,7 @@ - Fix MCP SSE sessions leaking memory on zombie connections by adding inactivity timeout parity with Streamable HTTP sessions (by @bitloi) [Github #9432](https://github.com/penpot/penpot/issues/9432) - Fix missing `labels.open` translation (by @MilosM348) [Github #9320](https://github.com/penpot/penpot/pull/9320) - Harden Nginx responses with standard security headers and hide upstream `X-Powered-By` headers +- Expose Source Sans Pro semibold (weight 600) variants in the builtin fonts list, matching the bundled font assets and CSS @font-face declarations [Github #7378](https://github.com/penpot/penpot/issues/7378) - Fix plugin API `shape.fills` and `shape.strokes` arrays being read-only [Github #8357](https://github.com/penpot/penpot/issues/8357) - Fix `get-profile` masking transient DB errors as anonymous user (by @jack-stormentswe) [Github #9253](https://github.com/penpot/penpot/issues/9253) - Fix `Ctrl+'` "Show guides" shortcut on non-US keyboard layouts by matching the physical key location (by @RenzoMXD) [Github #8423](https://github.com/penpot/penpot/issues/8423) diff --git a/frontend/src/app/main/fonts.cljs b/frontend/src/app/main/fonts.cljs index ee03c1f63e..a3df61290e 100644 --- a/frontend/src/app/main/fonts.cljs +++ b/frontend/src/app/main/fonts.cljs @@ -39,6 +39,8 @@ {:id "300italic" :name "300 Italic" :weight "300" :style "italic" :suffix "lightitalic" :ttf-url "sourcesanspro-lightitalic.ttf"} {:id "regular" :name "400" :weight "400" :style "normal" :ttf-url "sourcesanspro-regular.ttf"} {:id "italic" :name "400 Italic" :weight "400" :style "italic" :ttf-url "sourcesanspro-italic.ttf"} + {:id "600" :name "600" :weight "600" :style "normal" :suffix "semibold" :ttf-url "sourcesanspro-semibold.ttf"} + {:id "600italic" :name "600 Italic" :weight "600" :style "italic" :suffix "semibolditalic" :ttf-url "sourcesanspro-semibolditalic.ttf"} {:id "bold" :name "700" :weight "700" :style "normal" :ttf-url "sourcesanspro-bold.ttf"} {:id "bolditalic" :name "700 Italic" :weight "700" :style "italic" :ttf-url "sourcesanspro-bolditalic.ttf"} {:id "black" :name "900" :weight "900" :style "normal" :ttf-url "sourcesanspro-black.ttf"}