Skip to content
This repository has been archived by the owner on Feb 22, 2023. It is now read-only.

Update Inter font and Playwright version #2026

Merged
merged 6 commits into from
Dec 7, 2022
Merged

Update Inter font and Playwright version #2026

merged 6 commits into from
Dec 7, 2022

Conversation

obulat
Copy link
Contributor

@obulat obulat commented Dec 3, 2022

Fixes

Fixes #1781 by @obulat
Fixes #1754 by @obulat

Description

These two changes seem to be unrelated at first, but updating Playwright version required updating the fonts to fix the snapshots.

This PR adds a variable Inter font for platforms that support variable fonts, and more modern woff and woff2 font files instead of the ttf font files. It also updates the Playwright version to the latest 1.28.1, and uses a jammy Docker image (replacing the older focal image).

@panchovm, could you check if the fonts look right by running the app locally? The snapshots' fonts look different than what I see on my Mac, or on a Linux machine. Here, the first snapshot is from the current implementation, and the second one is what I see with this PR's changes. The letters look less squished together and more rounded.

Screenshot 2022-12-03 at 4 44 42 PM

Screenshot 2022-12-03 at 4 45 20 PM

Several interesting things about this PR:
  • We did not have a 400 font, instead we only had the 500 weighted one. I don't know how it worked.
  • We probably had an older version of the Inter font because it looked differently. Now, the fonts that are used seem to look more like the Figma mockups.
  • The font rendering on different systems is complex, and fonts look differently on different platforms. So, the snapshots we get in a Linux Docker image are different from what I see on a Mac.
  • Inter, the font we are using, does not have Arabic support. So, in the Arabic version, we are using a fallback sans-serif font.

Testing Instructions

Run the app and check that fonts match the Figma snapshots.
The CI should also pass, and specifically RTL snapshots should not have any NULL characters or breakages.

Checklist

  • My pull request has a descriptive title (not a vague title like Update index.md).
  • My pull request targets the default branch of the repository (main) or a parent feature branch.
  • My commit messages follow best practices.
  • My code follows the established code style of the repository.
  • I added or updated tests for the changes I made (if applicable).
  • I added or updated documentation (if applicable).
  • I tried running the project locally and verified that there are no visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.


Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

@obulat obulat requested a review from a team as a code owner December 3, 2022 14:43
@obulat obulat requested review from zackkrida and dhruvkb December 3, 2022 14:43
@github-actions
Copy link

github-actions bot commented Dec 3, 2022

Storybook and Tailwind configuration previews: Ready

Storybook: https://wordpress.github.io/openverse-frontend/_preview/2026
Tailwind: https://wordpress.github.io/openverse-frontend/_preview/2026/tailwind

Please note that GitHub pages takes a little time to deploy newly pushed code, if the links above don't work or you see old versions, wait 5 minutes and try again.

You can check the GitHub pages deployment action list to see the current status of the deployments.

@openverse-bot openverse-bot added ✨ goal: improvement Improvement to an existing user-facing feature 🕹 aspect: interface Concerns end-users' experience with the software 🟨 priority: medium Not blocking but should be addressed soon labels Dec 3, 2022
@github-actions
Copy link

github-actions bot commented Dec 3, 2022

Size Change: -7.65 kB (-1%)

Total Size: 859 kB

Filename Size Change
./.nuxt/dist/client/219.js 0 B -272 B (removed) 🏆
./.nuxt/dist/client/219.modern.js 0 B -277 B (removed) 🏆
./.nuxt/dist/client/220.js 0 B -1.85 kB (removed) 🏆
./.nuxt/dist/client/app.js 146 kB -3.71 kB (-2%)
./.nuxt/dist/client/app.modern.js 117 kB -3.94 kB (-3%)
./.nuxt/dist/client/components/v-sources-table.js 16 kB +216 B (+1%)
./.nuxt/dist/client/components/v-sources-table.modern.js 16 kB +217 B (+1%)
./.nuxt/dist/client/pages/image/_id.js 9.25 kB -22 B (0%)
./.nuxt/dist/client/pages/preferences.js 1.21 kB -11 B (-1%)
./.nuxt/dist/client/pages/search/audio.js 6.12 kB -33 B (-1%)
./.nuxt/dist/client/runtime.js 2.46 kB -172 B (-7%)
./.nuxt/dist/client/runtime.modern.js 2.46 kB -171 B (-6%)
./.nuxt/dist/client/184.js 273 B +273 B (new file) 🆕
./.nuxt/dist/client/184.modern.js 277 B +277 B (new file) 🆕
./.nuxt/dist/client/185.js 1.85 kB +1.85 kB (new file) 🆕
ℹ️ View Unchanged
Filename Size Change
./.nuxt/dist/client/commons/app.js 86.7 kB +4 B (0%)
./.nuxt/dist/client/commons/app.modern.js 77.5 kB -4 B (0%)
./.nuxt/dist/client/components/loading-icon.js 746 B +1 B (0%)
./.nuxt/dist/client/components/loading-icon.modern.js 750 B +1 B (0%)
./.nuxt/dist/client/components/table-sort-icon.js 508 B -1 B (0%)
./.nuxt/dist/client/components/table-sort-icon.modern.js 513 B 0 B
./.nuxt/dist/client/components/v-all-results-grid.js 7.48 kB -2 B (0%)
./.nuxt/dist/client/components/v-all-results-grid.modern.js 5.02 kB +2 B (0%)
./.nuxt/dist/client/components/v-audio-cell.js 356 B -1 B (0%)
./.nuxt/dist/client/components/v-audio-cell.modern.js 360 B 0 B
./.nuxt/dist/client/components/v-audio-details.js 2.53 kB -2 B (0%)
./.nuxt/dist/client/components/v-audio-details.modern.js 1.78 kB 0 B
./.nuxt/dist/client/components/v-audio-track-skeleton.js 1.01 kB -1 B (0%)
./.nuxt/dist/client/components/v-audio-track-skeleton.modern.js 1.01 kB -1 B (0%)
./.nuxt/dist/client/components/v-audio-track.js 5.22 kB 0 B
./.nuxt/dist/client/components/v-audio-track.modern.js 5.16 kB -2 B (0%)
./.nuxt/dist/client/components/v-back-to-search-results-link.js 539 B 0 B
./.nuxt/dist/client/components/v-back-to-search-results-link.modern.js 543 B 0 B
./.nuxt/dist/client/components/v-bone.js 684 B -1 B (0%)
./.nuxt/dist/client/components/v-bone.modern.js 689 B 0 B
./.nuxt/dist/client/components/v-box-layout.js 1.2 kB -2 B (0%)
./.nuxt/dist/client/components/v-box-layout.modern.js 1.2 kB -1 B (0%)
./.nuxt/dist/client/components/v-content-link.js 1.11 kB 0 B
./.nuxt/dist/client/components/v-content-link.modern.js 1.09 kB -1 B (0%)
./.nuxt/dist/client/components/v-content-page.js 467 B 0 B
./.nuxt/dist/client/components/v-content-page.modern.js 471 B 0 B
./.nuxt/dist/client/components/v-content-report-button.js 778 B -3 B (0%)
./.nuxt/dist/client/components/v-content-report-button.modern.js 783 B 0 B
./.nuxt/dist/client/components/v-content-report-form.js 6.08 kB -1 B (0%)
./.nuxt/dist/client/components/v-content-report-form.modern.js 3.57 kB +1 B (0%)
./.nuxt/dist/client/components/v-content-report-popover.js 1.22 kB -6 B (0%)
./.nuxt/dist/client/components/v-content-report-popover.modern.js 4.22 kB +1 B (0%)
./.nuxt/dist/client/components/v-copy-button.js 3.99 kB +1 B (0%)
./.nuxt/dist/client/components/v-copy-button.modern.js 4 kB 0 B
./.nuxt/dist/client/components/v-copy-license.js 1 kB +1 B (0%)
./.nuxt/dist/client/components/v-copy-license.modern.js 1 kB 0 B
./.nuxt/dist/client/components/v-copy-license/components/v-error-image/components/v-media-reuse/components/v-search-grid/09090664.js 9.86 kB 0 B
./.nuxt/dist/client/components/v-copy-license/components/v-error-image/components/v-media-reuse/components/v-search-grid/09090664.modern.js 9.83 kB +2 B (0%)
./.nuxt/dist/client/components/v-dmca-notice.js 743 B 0 B
./.nuxt/dist/client/components/v-dmca-notice.modern.js 753 B 0 B
./.nuxt/dist/client/components/v-error-image.js 1.69 kB +2 B (0%)
./.nuxt/dist/client/components/v-error-image.modern.js 1.68 kB -1 B (0%)
./.nuxt/dist/client/components/v-error-section.js 372 B 0 B
./.nuxt/dist/client/components/v-error-section.modern.js 376 B 0 B
./.nuxt/dist/client/components/v-external-search-form.js 3.09 kB 0 B
./.nuxt/dist/client/components/v-external-search-form.modern.js 3.06 kB +1 B (0%)
./.nuxt/dist/client/components/v-external-source-list.js 2.55 kB 0 B
./.nuxt/dist/client/components/v-external-source-list.modern.js 2.52 kB -1 B (0%)
./.nuxt/dist/client/components/v-full-layout.js 1.59 kB 0 B
./.nuxt/dist/client/components/v-full-layout.modern.js 1.59 kB 0 B
./.nuxt/dist/client/components/v-grid-skeleton.js 1.61 kB -2 B (0%)
./.nuxt/dist/client/components/v-grid-skeleton.modern.js 1.61 kB 0 B
./.nuxt/dist/client/components/v-image-cell-square.js 1.01 kB 0 B
./.nuxt/dist/client/components/v-image-cell-square.modern.js 1.02 kB 0 B
./.nuxt/dist/client/components/v-image-cell.js 1.43 kB 0 B
./.nuxt/dist/client/components/v-image-cell.modern.js 1.42 kB +1 B (0%)
./.nuxt/dist/client/components/v-image-details.js 2.14 kB -5 B (0%)
./.nuxt/dist/client/components/v-image-details.modern.js 1.43 kB 0 B
./.nuxt/dist/client/components/v-image-grid.js 4.88 kB -1 B (0%)
./.nuxt/dist/client/components/v-image-grid.modern.js 2.42 kB 0 B
./.nuxt/dist/client/components/v-license-tab-panel.js 522 B +1 B (0%)
./.nuxt/dist/client/components/v-license-tab-panel.modern.js 524 B -1 B (0%)
./.nuxt/dist/client/components/v-load-more.js 3.16 kB 0 B
./.nuxt/dist/client/components/v-load-more.modern.js 684 B 0 B
./.nuxt/dist/client/components/v-media-license.js 819 B +1 B (0%)
./.nuxt/dist/client/components/v-media-license.modern.js 828 B 0 B
./.nuxt/dist/client/components/v-media-reuse.js 1.62 kB -1 B (0%)
./.nuxt/dist/client/components/v-media-reuse.modern.js 1.62 kB 0 B
./.nuxt/dist/client/components/v-media-tag.js 430 B 0 B
./.nuxt/dist/client/components/v-media-tag.modern.js 434 B 0 B
./.nuxt/dist/client/components/v-no-results.js 2.75 kB 0 B
./.nuxt/dist/client/components/v-no-results.modern.js 2.72 kB 0 B
./.nuxt/dist/client/components/v-radio.js 1.51 kB -1 B (0%)
./.nuxt/dist/client/components/v-radio.modern.js 1.47 kB 0 B
./.nuxt/dist/client/components/v-related-audio.js 1.25 kB 0 B
./.nuxt/dist/client/components/v-related-audio.modern.js 1.25 kB 0 B
./.nuxt/dist/client/components/v-related-images.js 1.05 kB +1 B (0%)
./.nuxt/dist/client/components/v-related-images.modern.js 2.98 kB -1 B (0%)
./.nuxt/dist/client/components/v-report-desc-form.js 964 B -2 B (0%)
./.nuxt/dist/client/components/v-report-desc-form.modern.js 967 B 0 B
./.nuxt/dist/client/components/v-row-layout.js 1.7 kB +1 B (0%)
./.nuxt/dist/client/components/v-row-layout.modern.js 1.71 kB +2 B (0%)
./.nuxt/dist/client/components/v-scroll-button.js 813 B +1 B (0%)
./.nuxt/dist/client/components/v-scroll-button.modern.js 818 B 0 B
./.nuxt/dist/client/components/v-search-grid.js 5.43 kB -2 B (0%)
./.nuxt/dist/client/components/v-search-grid.modern.js 5.39 kB 0 B
./.nuxt/dist/client/components/v-search-results-title.js 659 B +1 B (0%)
./.nuxt/dist/client/components/v-search-results-title.modern.js 656 B -1 B (0%)
./.nuxt/dist/client/components/v-search-type-radio.js 794 B 0 B
./.nuxt/dist/client/components/v-search-type-radio.modern.js 773 B +2 B (0%)
./.nuxt/dist/client/components/v-server-timeout.js 298 B -1 B (0%)
./.nuxt/dist/client/components/v-server-timeout.modern.js 303 B 0 B
./.nuxt/dist/client/components/v-sketch-fab-viewer.js 3.37 kB +1 B (0%)
./.nuxt/dist/client/components/v-sketch-fab-viewer.modern.js 894 B -1 B (0%)
./.nuxt/dist/client/components/v-skip-to-content-container.js 888 B +2 B (0%)
./.nuxt/dist/client/components/v-skip-to-content-container.modern.js 894 B -2 B (0%)
./.nuxt/dist/client/components/v-snackbar.js 1.18 kB +1 B (0%)
./.nuxt/dist/client/components/v-snackbar.modern.js 1.19 kB +1 B (0%)
./.nuxt/dist/client/components/v-warning-suppressor.js 298 B 0 B
./.nuxt/dist/client/components/v-warning-suppressor.modern.js 303 B 0 B
./.nuxt/dist/client/pages/about.js 1.51 kB 0 B
./.nuxt/dist/client/pages/about.modern.js 1.51 kB +2 B (0%)
./.nuxt/dist/client/pages/audio/_id.js 7.96 kB 0 B
./.nuxt/dist/client/pages/audio/_id.modern.js 4.79 kB -3 B (0%)
./.nuxt/dist/client/pages/external-sources.js 1.52 kB 0 B
./.nuxt/dist/client/pages/external-sources.modern.js 1.53 kB 0 B
./.nuxt/dist/client/pages/feedback.js 1.31 kB +3 B (0%)
./.nuxt/dist/client/pages/feedback.modern.js 1.31 kB -2 B (0%)
./.nuxt/dist/client/pages/image/_id.modern.js 7.34 kB -3 B (0%)
./.nuxt/dist/client/pages/index.js 7.47 kB +2 B (0%)
./.nuxt/dist/client/pages/index.modern.js 5 kB -1 B (0%)
./.nuxt/dist/client/pages/preferences.modern.js 1.2 kB +2 B (0%)
./.nuxt/dist/client/pages/privacy.js 979 B -4 B (0%)
./.nuxt/dist/client/pages/privacy.modern.js 982 B -2 B (0%)
./.nuxt/dist/client/pages/search-help.js 1.62 kB +1 B (0%)
./.nuxt/dist/client/pages/search-help.modern.js 1.61 kB -1 B (0%)
./.nuxt/dist/client/pages/search.js 5.07 kB +1 B (0%)
./.nuxt/dist/client/pages/search.modern.js 2.56 kB -3 B (0%)
./.nuxt/dist/client/pages/search/audio.modern.js 3.65 kB +4 B (0%)
./.nuxt/dist/client/pages/search/image.js 657 B -3 B (0%)
./.nuxt/dist/client/pages/search/image.modern.js 2.73 kB +2 B (0%)
./.nuxt/dist/client/pages/search/index.js 542 B +1 B (0%)
./.nuxt/dist/client/pages/search/index.modern.js 548 B 0 B
./.nuxt/dist/client/pages/search/model-3d.js 243 B 0 B
./.nuxt/dist/client/pages/search/model-3d.modern.js 247 B +1 B (0%)
./.nuxt/dist/client/pages/search/search-page.types.js 266 B 0 B
./.nuxt/dist/client/pages/search/search-page.types.modern.js 271 B 0 B
./.nuxt/dist/client/pages/search/video.js 239 B -1 B (0%)
./.nuxt/dist/client/pages/search/video.modern.js 244 B 0 B
./.nuxt/dist/client/pages/sources.js 1.51 kB -6 B (0%)
./.nuxt/dist/client/pages/sources.modern.js 1.51 kB -1 B (0%)
./.nuxt/dist/client/vendors/app.js 63.7 kB -5 B (0%)
./.nuxt/dist/client/vendors/app.modern.js 63.1 kB +4 B (0%)

compressed-size-action

Copy link
Member

@dhruvkb dhruvkb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Love variable fonts so this is great. I am a bit sad that this requires literally every single snapshot to be recreated.

I'm just curious though, why did the Playwright upgrade need a font upgrade too?

Approving, provided visual regression tests eventually pass.

Comment on lines 26 to 34
@font-face {
font-family: 'JetBrains Mono';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('JetBrainsMono-Regular'), local('JetBrains Mono Regular'),
url('~assets/fonts/JetBrainsMono-Regular.woff2') format('woff2'),
url('~assets/fonts/JetBrainsMono-Regular.woff') format('woff'),
url('~assets/fonts/JetBrainsMono-Regular.otf') format('opentype');
Copy link
Member

@dhruvkb dhruvkb Dec 4, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we not using the monospaced font anymore? It was being used in the advanced search query page iirc. It's still listed in the Tailwind config as mono so I think this was accidental.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should bring back the monospaced font, so probably it was a mistake.

mono: ['"JetBrains Mono"', 'monospace'],
sans: ['"Inter"', 'sans-serif'],
serif: ['Times New Roman'],
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could potentially let serif go, I don't know if we use it anywhere in the app.

"actual-title": "\"{لقب}\"",
"actual-title": "\"{title}\"",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice catch!

@obulat
Copy link
Contributor Author

obulat commented Dec 4, 2022

I'm just curious though, why did the Playwright upgrade need a font upgrade too?

It's actually the other way around: we needed to fix fonts to update Playwright. You can see what problems we had with RTL font rendering in the Docker container in the linked issue's snapshots.

We could try extracting out the Playwright changes from this PR, but I'm afraid that changes in Linux image version will change the font rendering once again, and make us re-write all the snapshots one more time.

Copy link

@fcoveram fcoveram left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I checked the app on Chrome, Firefox, and Safari from my mac, and it works excellent in all of them ✨

The current version does not look correct on Safari. I wonder why that is.

@obulat
Copy link
Contributor Author

obulat commented Dec 6, 2022

The current version does not look correct on Safari. I wonder why that is.

You mean the version before this PR, right? I checked out Safari, and I can see that it's using Helvetica although the font-family declaration says Inter. I think some of the font loading code (the @font-face declarations) was incorrect.

If you check the fonts tab on Safari with this PR, you'll see that it's loading the Inter font correctly.

@WordPress WordPress deleted a comment from github-actions bot Dec 6, 2022
@WordPress WordPress deleted a comment from github-actions bot Dec 6, 2022
@fcoveram
Copy link

fcoveram commented Dec 6, 2022

You mean the version before this PR, right?

Yes! Sorry for not being clear. The PR looks correct.

@github-actions
Copy link

github-actions bot commented Dec 6, 2022

Playwright Failure Test Results

It looks like some of the Playwright tests failed. You can download the Playwright trace
output for both Storybook and Nuxt Playwright tests that have failed at the bottom of this
page, under the "Artifacts" section:

https://github.com/WordPress/openverse-frontend/actions/runs/3632516952

Read more about how to use this artifact here: https://github.com/WordPress/openverse-frontend/blob/main/test/playwright/README.md#debugging

2 similar comments
@github-actions
Copy link

github-actions bot commented Dec 6, 2022

Playwright Failure Test Results

It looks like some of the Playwright tests failed. You can download the Playwright trace
output for both Storybook and Nuxt Playwright tests that have failed at the bottom of this
page, under the "Artifacts" section:

https://github.com/WordPress/openverse-frontend/actions/runs/3632516952

Read more about how to use this artifact here: https://github.com/WordPress/openverse-frontend/blob/main/test/playwright/README.md#debugging

@github-actions
Copy link

github-actions bot commented Dec 6, 2022

Playwright Failure Test Results

It looks like some of the Playwright tests failed. You can download the Playwright trace
output for both Storybook and Nuxt Playwright tests that have failed at the bottom of this
page, under the "Artifacts" section:

https://github.com/WordPress/openverse-frontend/actions/runs/3632516952

Read more about how to use this artifact here: https://github.com/WordPress/openverse-frontend/blob/main/test/playwright/README.md#debugging

@obulat obulat merged commit 0ddda23 into main Dec 7, 2022
@obulat obulat deleted the update/fonts branch December 7, 2022 04:28
github-actions bot pushed a commit that referenced this pull request Dec 7, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
🕹 aspect: interface Concerns end-users' experience with the software ✨ goal: improvement Improvement to an existing user-facing feature 🟨 priority: medium Not blocking but should be addressed soon
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Cleanup the fonts Update Playwright to version ^1.25.0
4 participants