fonts.css 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. /* The app's typefaces, and the variables globals.css and the font sets read.
  2. The files come from npm (Fontsource, the Google Fonts files repackaged),
  3. imported in the root layout. They used to come from next/font/google, which
  4. downloads every face from Google during the build: a build whose download
  5. failed, failed outright, and in CI that was a red e2e shard every few days.
  6. Now they arrive with npm ci and the build never leaves the machine. The
  7. browser still fetches only the subsets a page needs, and a face only once
  8. some text is set in it, so the sets nobody chose cost nothing.
  9. The fallback faces are the ones next/font generated: a local Arial resized
  10. to each face's metrics, so text does not jump when the face arrives.
  11. Atkinson had none, its metrics not being in Next's table, so it names a
  12. system face instead. */
  13. @font-face {
  14. font-family: "Geist Fallback";
  15. src: local("Arial");
  16. ascent-override: 95.94%;
  17. descent-override: 28.16%;
  18. line-gap-override: 0%;
  19. size-adjust: 104.76%;
  20. }
  21. @font-face {
  22. font-family: "Geist Mono Fallback";
  23. src: local("Arial");
  24. ascent-override: 74.67%;
  25. descent-override: 21.92%;
  26. line-gap-override: 0%;
  27. size-adjust: 134.59%;
  28. }
  29. @font-face {
  30. font-family: "IBM Plex Sans Fallback";
  31. src: local("Arial");
  32. ascent-override: 101.32%;
  33. descent-override: 27.18%;
  34. line-gap-override: 0%;
  35. size-adjust: 101.17%;
  36. }
  37. @font-face {
  38. font-family: "IBM Plex Mono Fallback";
  39. src: local("Arial");
  40. ascent-override: 76.16%;
  41. descent-override: 20.43%;
  42. line-gap-override: 0%;
  43. size-adjust: 134.59%;
  44. }
  45. @font-face {
  46. font-family: "Barlow Condensed Fallback";
  47. src: local("Arial");
  48. ascent-override: 130.73%;
  49. descent-override: 26.15%;
  50. line-gap-override: 0%;
  51. size-adjust: 76.49%;
  52. }
  53. @font-face {
  54. font-family: "Inter Fallback";
  55. src: local("Arial");
  56. ascent-override: 90.44%;
  57. descent-override: 22.52%;
  58. line-gap-override: 0%;
  59. size-adjust: 107.12%;
  60. }
  61. @font-face {
  62. font-family: "Inter Tight Fallback";
  63. src: local("Arial");
  64. ascent-override: 100.51%;
  65. descent-override: 25.03%;
  66. line-gap-override: 0%;
  67. size-adjust: 96.39%;
  68. }
  69. @font-face {
  70. font-family: "JetBrains Mono Fallback";
  71. src: local("Arial");
  72. ascent-override: 75.79%;
  73. descent-override: 22.29%;
  74. line-gap-override: 0%;
  75. size-adjust: 134.59%;
  76. }
  77. /* Geist is declared under *-base: globals.css points --font-geist-sans at it,
  78. or at another face when a font set is chosen (see src/lib/font-sets.ts). */
  79. :root {
  80. --font-geist-sans-base: "Geist Variable", "Geist Fallback";
  81. --font-geist-mono-base: "Geist Mono Variable", "Geist Mono Fallback";
  82. /* The "workshop" set. */
  83. --font-plex-sans: "IBM Plex Sans Variable", "IBM Plex Sans Fallback";
  84. --font-plex-mono: "IBM Plex Mono", "IBM Plex Mono Fallback";
  85. --font-barlow-condensed: "Barlow Condensed", "Barlow Condensed Fallback";
  86. /* The "precise" set. */
  87. --font-inter: "Inter Variable", "Inter Fallback";
  88. --font-inter-tight: "Inter Tight Variable", "Inter Tight Fallback";
  89. --font-jetbrains-mono: "JetBrains Mono Variable", "JetBrains Mono Fallback";
  90. /* The "legible" set. Latin only: the family has no Cyrillic. */
  91. --font-atkinson: "Atkinson Hyperlegible Next Variable", system-ui, sans-serif;
  92. --font-atkinson-mono: "Atkinson Hyperlegible Mono Variable", ui-monospace, monospace;
  93. }