ソースを参照

Spearhead Blocks refactored Initial Commit

Refactored commit of Spearhead Blocks, now being a clone of Block Canvas, instead of child of Blockbase
Onur Oztaskiran 2 年 前
コミット
cca2365c66
100 ファイル変更2203 行追加0 行削除
  1. 8 0
      spearhead-blocks/.gitignore
  2. 699 0
      spearhead-blocks/assets/fonts/ibm-plex-mono/font-face.css
  3. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-Bold-italic.woff2
  4. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-Bold.woff2
  5. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-ExtraLight-italic.woff2
  6. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-ExtraLight.woff2
  7. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-Light-italic.woff2
  8. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-Light.woff2
  9. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-Medium-italic.woff2
  10. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-Medium.woff2
  11. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-Regular-italic.woff2
  12. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-Regular.woff2
  13. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-SemiBold-italic.woff2
  14. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-SemiBold.woff2
  15. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-Thin-italic.woff2
  16. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-Thin.woff2
  17. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-Bold-italic.woff2
  18. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-Bold.woff2
  19. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ExtraLight-italic.woff2
  20. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ExtraLight.woff2
  21. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-Light-italic.woff2
  22. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-Light.woff2
  23. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-Medium-italic.woff2
  24. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-Medium.woff2
  25. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-Regular-italic.woff2
  26. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-Regular.woff2
  27. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-SemiBold-italic.woff2
  28. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-SemiBold.woff2
  29. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-Thin-italic.woff2
  30. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-Thin.woff2
  31. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-Bold-italic.woff2
  32. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-Bold.woff2
  33. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-ExtraLight-italic.woff2
  34. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-ExtraLight.woff2
  35. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-Light-italic.woff2
  36. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-Light.woff2
  37. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-Medium-italic.woff2
  38. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-Medium.woff2
  39. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-Regular-italic.woff2
  40. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-Regular.woff2
  41. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-SemiBold-italic.woff2
  42. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-SemiBold.woff2
  43. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-Thin-italic.woff2
  44. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-Thin.woff2
  45. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-Bold-italic.woff2
  46. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-Bold.woff2
  47. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-ExtraLight-italic.woff2
  48. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-ExtraLight.woff2
  49. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-Light-italic.woff2
  50. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-Light.woff2
  51. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-Medium-italic.woff2
  52. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-Medium.woff2
  53. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-Regular-italic.woff2
  54. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-Regular.woff2
  55. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-SemiBold-italic.woff2
  56. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-SemiBold.woff2
  57. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-Thin-italic.woff2
  58. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-Thin.woff2
  59. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-Bold-italic.woff2
  60. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-Bold.woff2
  61. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-ExtraLight-italic.woff2
  62. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-ExtraLight.woff2
  63. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-Light-italic.woff2
  64. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-Light.woff2
  65. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-Medium-italic.woff2
  66. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-Medium.woff2
  67. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-Regular-italic.woff2
  68. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-Regular.woff2
  69. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-SemiBold-italic.woff2
  70. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-SemiBold.woff2
  71. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-Thin-italic.woff2
  72. BIN
      spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-Thin.woff2
  73. 59 0
      spearhead-blocks/assets/fonts/libre-franklin/font-face.css
  74. BIN
      spearhead-blocks/assets/fonts/libre-franklin/libre-franklin-100-900-italic.woff2
  75. BIN
      spearhead-blocks/assets/fonts/libre-franklin/libre-franklin-100-900.woff2
  76. BIN
      spearhead-blocks/assets/fonts/libre-franklin/libre-franklin-latin-ext-100-900-italic.woff2
  77. BIN
      spearhead-blocks/assets/fonts/libre-franklin/libre-franklin-latin-ext-100-900.woff2
  78. BIN
      spearhead-blocks/assets/fonts/libre-franklin/libre-franklin-vietnamese-100-900-italic.woff2
  79. BIN
      spearhead-blocks/assets/fonts/libre-franklin/libre-franklin-vietnamese-100-900.woff2
  80. 86 0
      spearhead-blocks/functions.php
  81. 137 0
      spearhead-blocks/inc/fonts/custom-font-migration.php
  82. 213 0
      spearhead-blocks/inc/fonts/custom-fonts.php
  83. 2 0
      spearhead-blocks/index.php
  84. 11 0
      spearhead-blocks/parts/footer.html
  85. 19 0
      spearhead-blocks/parts/header.html
  86. 12 0
      spearhead-blocks/parts/post-meta.html
  87. 16 0
      spearhead-blocks/patterns/404.php
  88. 61 0
      spearhead-blocks/patterns/comments.php
  89. 31 0
      spearhead-blocks/readme.txt
  90. 121 0
      spearhead-blocks/style.css
  91. 12 0
      spearhead-blocks/templates/404.html
  92. 37 0
      spearhead-blocks/templates/archive.html
  93. 1 0
      spearhead-blocks/templates/blank.html
  94. 3 0
      spearhead-blocks/templates/footer-only.html
  95. 10 0
      spearhead-blocks/templates/header-footer-only.html
  96. 29 0
      spearhead-blocks/templates/index.html
  97. 61 0
      spearhead-blocks/templates/page.html
  98. 47 0
      spearhead-blocks/templates/search.html
  99. 73 0
      spearhead-blocks/templates/single.html
  100. 455 0
      spearhead-blocks/theme.json

+ 8 - 0
spearhead-blocks/.gitignore

@@ -0,0 +1,8 @@
+# macOS Files
+.DS_Store
+
+# Codekit
+*.codekit3
+
+# Main Sass File
+style.scss

+ 699 - 0
spearhead-blocks/assets/fonts/ibm-plex-mono/font-face.css

@@ -0,0 +1,699 @@
+/* cyrillic-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 100;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-ext-Thin-italic.woff2) format('woff2');
+	unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+
+/* cyrillic */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 100;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-Thin-italic.woff2) format('woff2');
+	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+
+/* vietnamese */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 100;
+	font-display: swap;
+	src: url(./ibm-plex-mono-vietnamese-Thin-italic.woff2) format('woff2');
+	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 100;
+	font-display: swap;
+	src: url(./ibm-plex-mono-latin-ext-Thin-italic.woff2) format('woff2');
+	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 100;
+	font-display: swap;
+	src: url(./ibm-plex-mono-Thin-italic.woff2) format('woff2');
+	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* cyrillic-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 200;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-ext-ExtraLight-italic.woff2) format('woff2');
+	unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+
+/* cyrillic */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 200;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-ExtraLight-italic.woff2) format('woff2');
+	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+
+/* vietnamese */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 200;
+	font-display: swap;
+	src: url(./ibm-plex-mono-vietnamese-ExtraLight-italic.woff2) format('woff2');
+	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 200;
+	font-display: swap;
+	src: url(./ibm-plex-mono-latin-ext-ExtraLight-italic.woff2) format('woff2');
+	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 200;
+	font-display: swap;
+	src: url(./ibm-plex-mono-ExtraLight-italic.woff2) format('woff2');
+	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* cyrillic-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 300;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-ext-Light-italic.woff2) format('woff2');
+	unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+
+/* cyrillic */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 300;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-Light-italic.woff2) format('woff2');
+	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+
+/* vietnamese */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 300;
+	font-display: swap;
+	src: url(./ibm-plex-mono-vietnamese-Light-italic.woff2) format('woff2');
+	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 300;
+	font-display: swap;
+	src: url(./ibm-plex-mono-latin-ext-Light-italic.woff2) format('woff2');
+	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 300;
+	font-display: swap;
+	src: url(./ibm-plex-mono-Light-italic.woff2) format('woff2');
+	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* cyrillic-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 400;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-ext-Regular-italic.woff2) format('woff2');
+	unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+
+/* cyrillic */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 400;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-Regular-italic.woff2) format('woff2');
+	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+
+/* vietnamese */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 400;
+	font-display: swap;
+	src: url(./ibm-plex-mono-vietnamese-Regular-italic.woff2) format('woff2');
+	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 400;
+	font-display: swap;
+	src: url(./ibm-plex-mono-latin-ext-Regular-italic.woff2) format('woff2');
+	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 400;
+	font-display: swap;
+	src: url(./ibm-plex-mono-Regular-italic.woff2) format('woff2');
+	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* cyrillic-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 500;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-ext-Medium-italic.woff2) format('woff2');
+	unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+
+/* cyrillic */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 500;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-Medium-italic.woff2) format('woff2');
+	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+
+/* vietnamese */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 500;
+	font-display: swap;
+	src: url(./ibm-plex-mono-vietnamese-Medium-italic.woff2) format('woff2');
+	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 500;
+	font-display: swap;
+	src: url(./ibm-plex-mono-latin-ext-Medium-italic.woff2) format('woff2');
+	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 500;
+	font-display: swap;
+	src: url(./ibm-plex-mono-Medium-italic.woff2) format('woff2');
+	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* cyrillic-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 600;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-ext-SemiBold-italic.woff2) format('woff2');
+	unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+
+/* cyrillic */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 600;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-SemiBold-italic.woff2) format('woff2');
+	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+
+/* vietnamese */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 600;
+	font-display: swap;
+	src: url(./ibm-plex-mono-vietnamese-SemiBold-italic.woff2) format('woff2');
+	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 600;
+	font-display: swap;
+	src: url(./ibm-plex-mono-latin-ext-SemiBold-italic.woff2) format('woff2');
+	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 600;
+	font-display: swap;
+	src: url(./ibm-plex-mono-SemiBold-italic.woff2) format('woff2');
+	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* cyrillic-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 700;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-ext-Bold-italic.woff2) format('woff2');
+	unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+
+/* cyrillic */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 700;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-Bold-italic.woff2) format('woff2');
+	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+
+/* vietnamese */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 700;
+	font-display: swap;
+	src: url(./ibm-plex-mono-vietnamese-Bold-italic.woff2) format('woff2');
+	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 700;
+	font-display: swap;
+	src: url(./ibm-plex-mono-latin-ext-Bold-italic.woff2) format('woff2');
+	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: italic;
+	font-weight: 700;
+	font-display: swap;
+	src: url(./ibm-plex-mono-Bold-italic.woff2) format('woff2');
+	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* cyrillic-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 100;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-ext-Thin.woff2) format('woff2');
+	unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+
+/* cyrillic */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 100;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-Thin.woff2) format('woff2');
+	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+
+/* vietnamese */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 100;
+	font-display: swap;
+	src: url(./ibm-plex-mono-vietnamese-Thin.woff2) format('woff2');
+	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 100;
+	font-display: swap;
+	src: url(./ibm-plex-mono-latin-ext-Thin.woff2) format('woff2');
+	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 100;
+	font-display: swap;
+	src: url(./ibm-plex-mono-Thin.woff2) format('woff2');
+	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* cyrillic-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 200;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-ext-ExtraLight.woff2) format('woff2');
+	unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+
+/* cyrillic */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 200;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-ExtraLight.woff2) format('woff2');
+	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+
+/* vietnamese */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 200;
+	font-display: swap;
+	src: url(./ibm-plex-mono-vietnamese-ExtraLight.woff2) format('woff2');
+	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 200;
+	font-display: swap;
+	src: url(./ibm-plex-mono-latin-ext-ExtraLight.woff2) format('woff2');
+	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 200;
+	font-display: swap;
+	src: url(./ibm-plex-mono-ExtraLight.woff2) format('woff2');
+	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* cyrillic-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 300;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-ext-Light.woff2) format('woff2');
+	unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+
+/* cyrillic */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 300;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-Light.woff2) format('woff2');
+	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+
+/* vietnamese */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 300;
+	font-display: swap;
+	src: url(./ibm-plex-mono-vietnamese-Light.woff2) format('woff2');
+	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 300;
+	font-display: swap;
+	src: url(./ibm-plex-mono-latin-ext-Light.woff2) format('woff2');
+	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 300;
+	font-display: swap;
+	src: url(./ibm-plex-mono-Light.woff2) format('woff2');
+	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* cyrillic-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 400;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-ext-Regular.woff2) format('woff2');
+	unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+
+/* cyrillic */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 400;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-Regular.woff2) format('woff2');
+	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+
+/* vietnamese */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 400;
+	font-display: swap;
+	src: url(./ibm-plex-mono-vietnamese-Regular.woff2) format('woff2');
+	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 400;
+	font-display: swap;
+	src: url(./ibm-plex-mono-latin-ext-Regular.woff2) format('woff2');
+	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 400;
+	font-display: swap;
+	src: url(./ibm-plex-mono-Regular.woff2) format('woff2');
+	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* cyrillic-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 500;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-ext-Medium.woff2) format('woff2');
+	unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+
+/* cyrillic */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 500;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-Medium.woff2) format('woff2');
+	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+
+/* vietnamese */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 500;
+	font-display: swap;
+	src: url(./ibm-plex-mono-vietnamese-Medium.woff2) format('woff2');
+	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 500;
+	font-display: swap;
+	src: url(./ibm-plex-mono-latin-ext-Medium.woff2) format('woff2');
+	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 500;
+	font-display: swap;
+	src: url(./ibm-plex-mono-Medium.woff2) format('woff2');
+	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* cyrillic-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 600;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-ext-SemiBold.woff2) format('woff2');
+	unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+
+/* cyrillic */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 600;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-SemiBold.woff2) format('woff2');
+	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+
+/* vietnamese */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 600;
+	font-display: swap;
+	src: url(./ibm-plex-mono-vietnamese-SemiBold.woff2) format('woff2');
+	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 600;
+	font-display: swap;
+	src: url(./ibm-plex-mono-latin-ext-SemiBold.woff2) format('woff2');
+	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 600;
+	font-display: swap;
+	src: url(./ibm-plex-mono-SemiBold.woff2) format('woff2');
+	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* cyrillic-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 700;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-ext-Bold.woff2) format('woff2');
+	unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+
+/* cyrillic */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 700;
+	font-display: swap;
+	src: url(./ibm-plex-mono-cyrillic-Bold.woff2) format('woff2');
+	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+
+/* vietnamese */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 700;
+	font-display: swap;
+	src: url(./ibm-plex-mono-vietnamese-Bold.woff2) format('woff2');
+	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 700;
+	font-display: swap;
+	src: url(./ibm-plex-mono-latin-ext-Bold.woff2) format('woff2');
+	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+	font-family: 'IBM Plex Mono';
+	font-style: normal;
+	font-weight: 700;
+	font-display: swap;
+	src: url(./ibm-plex-mono-Bold.woff2) format('woff2');
+	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}

BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-Bold-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-Bold.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-ExtraLight-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-ExtraLight.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-Light-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-Light.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-Medium-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-Medium.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-Regular-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-Regular.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-SemiBold-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-SemiBold.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-Thin-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-Thin.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-Bold-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-Bold.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ExtraLight-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ExtraLight.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-Light-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-Light.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-Medium-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-Medium.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-Regular-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-Regular.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-SemiBold-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-SemiBold.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-Thin-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-Thin.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-Bold-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-Bold.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-ExtraLight-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-ExtraLight.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-Light-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-Light.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-Medium-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-Medium.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-Regular-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-Regular.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-SemiBold-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-SemiBold.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-Thin-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-Thin.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-Bold-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-Bold.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-ExtraLight-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-ExtraLight.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-Light-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-Light.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-Medium-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-Medium.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-Regular-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-Regular.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-SemiBold-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-SemiBold.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-Thin-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-latin-ext-Thin.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-Bold-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-Bold.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-ExtraLight-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-ExtraLight.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-Light-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-Light.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-Medium-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-Medium.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-Regular-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-Regular.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-SemiBold-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-SemiBold.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-Thin-italic.woff2


BIN
spearhead-blocks/assets/fonts/ibm-plex-mono/ibm-plex-mono-vietnamese-Thin.woff2


+ 59 - 0
spearhead-blocks/assets/fonts/libre-franklin/font-face.css

@@ -0,0 +1,59 @@
+/* vietnamese */
+@font-face {
+	font-family: 'Libre Franklin';
+	font-style: italic;
+	font-weight: 100 900;
+	font-display: swap;
+	src: url(./libre-franklin-vietnamese-100-900-italic.woff2) format('woff2');
+	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+	font-family: 'Libre Franklin';
+	font-style: italic;
+	font-weight: 100 900;
+	font-display: swap;
+	src: url(./libre-franklin-latin-ext-100-900-italic.woff2) format('woff2');
+	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+	font-family: 'Libre Franklin';
+	font-style: italic;
+	font-weight: 100 900;
+	font-display: swap;
+	src: url(./libre-franklin-100-900-italic.woff2) format('woff2');
+	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* vietnamese */
+@font-face {
+	font-family: 'Libre Franklin';
+	font-style: normal;
+	font-weight: 100 900;
+	font-display: swap;
+	src: url(./libre-franklin-vietnamese-100-900.woff2) format('woff2');
+	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+	font-family: 'Libre Franklin';
+	font-style: normal;
+	font-weight: 100 900;
+	font-display: swap;
+	src: url(./libre-franklin-latin-ext-100-900.woff2) format('woff2');
+	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+	font-family: 'Libre Franklin';
+	font-style: normal;
+	font-weight: 100 900;
+	font-display: swap;
+	src: url(./libre-franklin-100-900.woff2) format('woff2');
+	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}

BIN
spearhead-blocks/assets/fonts/libre-franklin/libre-franklin-100-900-italic.woff2


BIN
spearhead-blocks/assets/fonts/libre-franklin/libre-franklin-100-900.woff2


BIN
spearhead-blocks/assets/fonts/libre-franklin/libre-franklin-latin-ext-100-900-italic.woff2


BIN
spearhead-blocks/assets/fonts/libre-franklin/libre-franklin-latin-ext-100-900.woff2


BIN
spearhead-blocks/assets/fonts/libre-franklin/libre-franklin-vietnamese-100-900-italic.woff2


BIN
spearhead-blocks/assets/fonts/libre-franklin/libre-franklin-vietnamese-100-900.woff2


+ 86 - 0
spearhead-blocks/functions.php

@@ -0,0 +1,86 @@
+<?php
+/**
+ * Spearhead Blocks functions and definitions
+ *
+ * @link https://developer.wordpress.org/themes/basics/theme-functions/
+ *
+ * @package Spearhead Blocks
+ * @since Spearhead Blocks 1.0
+ */
+
+
+if ( ! function_exists( 'spearhead_blocks_support' ) ) :
+
+	/**
+	 * Sets up theme defaults and registers support for various WordPress features.
+	 *
+	 * @since Spearhead Blocks 1.0
+	 *
+	 * @return void
+	 */
+	function spearhead_blocks_support() {
+
+		// Enqueue editor styles.
+		add_editor_style( 'style.css' );
+
+	}
+
+endif;
+
+add_action( 'after_setup_theme', 'spearhead_blocks_support' );
+
+if ( ! function_exists( 'spearhead_blocks_styles' ) ) :
+
+	/**
+	 * Enqueue styles.
+	 *
+	 * @since Spearhead Blocks 1.0
+	 *
+	 * @return void
+	 */
+	function spearhead_blocks_styles() {
+
+		// Register theme stylesheet.
+		wp_register_style(
+			'spearhead_blocks-style',
+			get_template_directory_uri() . '/style.css',
+			array(),
+			wp_get_theme()->get( 'Version' )
+		);
+
+		// Enqueue theme stylesheet.
+		wp_enqueue_style( 'spearhead_blocks-style' );
+
+	}
+
+endif;
+
+add_action( 'wp_enqueue_scripts', 'spearhead_blocks_styles' );
+
+require get_template_directory() . '/inc/fonts/custom-fonts.php';
+
+function spearhead_blocks_the_excerpt( $excerpt ) {
+
+	$audio_block = '';
+	if ( has_block( 'audio' ) ) {
+		$post   = get_post();
+		$blocks = parse_blocks( $post->post_content );
+		foreach ( $blocks as $block ) {
+			if ( 'core/audio' === $block['blockName'] ) {
+				$audio_block .= '<div class="excerpt-audio-block">' . wp_kses_post( $block['innerHTML'] ) . '</div>';
+				break;
+			}
+		}
+	}
+
+	// For cases where the post excerpt is empty
+	// (but the post might have content)
+	if ( 0 === strlen( $excerpt ) ) {
+		return $excerpt . $audio_block;
+	}
+
+	return $excerpt . $audio_block;
+}
+
+// Filter the excerpt
+add_filter( 'get_the_excerpt', 'spearhead_blocks_the_excerpt' );

+ 137 - 0
spearhead-blocks/inc/fonts/custom-font-migration.php

@@ -0,0 +1,137 @@
+<?php
+
+add_action( 'init', 'migrate_spearhead_blocks_custom_fonts', 99 );
+
+function migrate_spearhead_blocks_custom_fonts() {
+
+	$heading_font_slug = null;
+	$body_font_slug    = null;
+
+	// Here we must use gutenberg_get_global_* because it introduces clean_cached_data() which we
+	// need to leverage as we are modifying the values of global styles settings and styles on page load.
+	if ( function_exists( 'gutenberg_get_global_settings' ) ) {
+		$font_families = gutenberg_get_global_settings( array( 'typography', 'fontFamilies' ) );
+	} else {
+		$font_families = wp_get_global_settings( array( 'typography', 'fontFamilies' ) );
+	}
+
+	if ( isset( $font_families['custom'] ) && is_array( $font_families['custom'] ) ) {
+		$font_families = $font_families['custom'];
+	} else {
+		$font_families = $font_families['theme'];
+	}
+
+	// Look first for fonts customized via Customizer, then for fonts configured in the child theme.json "the old way"
+	// Also count fonts registerd to the spearhead-blocks font provider
+	foreach ( $font_families as $font_family ) {
+		if ( strpos( $font_family['slug'], 'heading' ) !== false && array_key_exists( 'fontSlug', $font_family ) ) {
+			$heading_font_slug = $font_family['fontSlug'];
+		}
+		if ( strpos( $font_family['slug'], 'body' ) !== false && array_key_exists( 'fontSlug', $font_family ) ) {
+			$body_font_slug = $font_family['fontSlug'];
+		}
+	}
+
+	if ( ! $body_font_slug && ! $heading_font_slug ) {
+		//nothing to convert
+		return;
+	}
+
+	$theme_user_data = WP_Theme_JSON_Resolver::get_user_data()->get_raw_data();
+
+	$new_settings = array();
+	$new_styles   = array();
+
+	if ( array_key_exists( 'settings', $theme_user_data ) ) {
+		$new_settings = $theme_user_data['settings'];
+	}
+	if ( array_key_exists( 'styles', $theme_user_data ) ) {
+		$new_styles = $theme_user_data['styles'];
+	}
+
+	if ( $body_font_slug ) {
+		$new_styles = array_merge(
+			$new_styles,
+			array(
+				'typography' => array(
+					'fontFamily' => "var:preset|font-family|$body_font_slug",
+				),
+			)
+		);
+	}
+
+	if ( $heading_font_slug ) {
+		$new_styles = array_merge(
+			$new_styles,
+			array(
+				'blocks' => array(
+					'core/post-title' => array(
+						'typography' => array(
+							'fontFamily' => "var:preset|font-family|$heading_font_slug",
+						),
+					),
+					'core/heading'    => array(
+						'typography' => array(
+							'fontFamily' => "var:preset|font-family|$heading_font_slug",
+						),
+					),
+				),
+			)
+		);
+	}
+
+	if ( $heading_font_slug || $body_font_slug ) {
+		unset( $new_settings['typography']['fontFamilies'] );
+	}
+
+	update_global_styles( $new_settings, $new_styles );
+}
+
+/**
+ * Updates the global styles CPT.
+ *
+ * @param array  $new_settings New global styles to update.
+ * @param array  $new_styles New global styles settings to update.
+ * @param int    $user_custom_post_type_id ID of global styles CPT.
+ * @param object $global_styles_controller Controller that handles REST requests for global styles.
+ *
+ * @return void
+ */
+function update_global_styles( $new_settings, $new_styles ) {
+	// Get the user's global styles CPT id
+	$user_custom_post_type_id = WP_Theme_JSON_Resolver::get_user_global_styles_post_id();
+	$global_styles_controller = new WP_REST_Global_Styles_Controller();
+
+	$update_request = new WP_REST_Request( 'PUT', '/wp/v2/global-styles/' );
+	$update_request->set_param( 'id', $user_custom_post_type_id );
+	$update_request->set_param( 'settings', $new_settings );
+	$update_request->set_param( 'styles', $new_styles );
+
+	$global_styles_controller->update_item( $update_request );
+
+	// Ideally the call to update_item would delete all of the appropriate transients and caches
+	delete_transient( 'global_styles' );
+	delete_transient( 'global_styles_' . get_stylesheet() );
+	delete_transient( 'gutenberg_global_styles' );
+	delete_transient( 'gutenberg_global_styles_' . get_stylesheet() );
+
+	if ( class_exists( 'WP_Theme_JSON_Resolver_Gutenberg' ) ) {
+		WP_Theme_JSON_Resolver_Gutenberg::clean_cached_data();
+	}
+}
+
+/**
+ * Retrieves the global styles cpt.
+ *
+ * @param int    $user_custom_post_type_id ID of global styles CPT.
+ * @param object $global_styles_controller Controller that handles REST requests for global styles.
+ *
+ * @return array
+ */
+function fetch_global_styles( $user_custom_post_type_id, $global_styles_controller ) {
+	$get_request = new WP_REST_Request( 'GET', '/wp/v2/global-styles/' );
+	$get_request->set_param( 'id', $user_custom_post_type_id );
+	$global_styles = $global_styles_controller->get_item( $get_request );
+
+	return $global_styles;
+}

+ 213 - 0
spearhead-blocks/inc/fonts/custom-fonts.php

@@ -0,0 +1,213 @@
+<?php
+
+// Font Migration
+require get_template_directory() . '/inc/fonts/custom-font-migration.php';
+
+add_action( 'init', 'enqueue_global_styles_fonts', 100 );
+add_action( 'admin_init', 'enqueue_fse_font_styles' );
+add_filter( 'pre_render_block', 'enqueue_block_fonts', 10, 2 );
+add_filter( 'jetpack_google_fonts_list', 'spearhead_blocks_filter_jetpack_google_fonts_list' );
+
+$spearhead_blocks_enqueued_font_slugs = array();
+
+/**
+ * Get the CSS containing font_face values for a given slug
+ *
+ * @return string String of CSS
+ */
+function get_style_css( $slug ) {
+	$font_face_file = get_template_directory() . '/assets/fonts/' . $slug . '/font-face.css';
+	if ( ! file_exists( $font_face_file ) ) {
+		return '';
+	}
+	$contents = file_get_contents( $font_face_file );
+	return str_replace( 'src: url(./', 'src: url(' . get_template_directory_uri() . '/assets/fonts/' . $slug . '/', $contents );
+}
+
+/**
+ * Collect fonts set in Global Styles settings.
+ *
+ * @return array Font faces from Global Styles settings.
+ */
+function collect_fonts_from_global_styles() {
+	// NOTE: We have to use gutenberg_get_global_styles() here due to the potential changes to Global Styles on page load happening in font migration.
+	// Since core users don't have anything to migrate we can use core get_styles
+	if ( function_exists( 'gutenberg_get_global_styles' ) ) {
+		$global_styles = gutenberg_get_global_styles();
+	} else {
+		$global_styles = wp_get_global_styles();
+	}
+
+	$found_webfonts = array();
+
+	// Look for fonts in block presets...
+	if ( isset( $global_styles['blocks'] ) ) {
+		foreach ( $global_styles['blocks'] as $setting ) {
+			$font_slug = extract_font_slug_from_setting( $setting );
+
+			if ( $font_slug ) {
+				$found_webfonts[] = $font_slug;
+			}
+		}
+	}
+
+	// Look for fonts in HTML element presets...
+	if ( isset( $global_styles['elements'] ) ) {
+		foreach ( $global_styles['elements'] as $setting ) {
+
+			// die(json_encode($global_styles));
+			// NOTE: It seems that the Global Styles assignment of fonts writes the font family string rather than the
+			// global styles shorthand that is assigned to the body.  This should be confirmed and reported if it isn't already.
+			$font_slug = extract_font_slug_from_setting( $setting );
+
+			if ( $font_slug ) {
+				$found_webfonts[] = $font_slug;
+			}
+		}
+	}
+
+	// Check if a global typography setting was defined.
+	$font_slug = extract_font_slug_from_setting( $global_styles );
+
+	if ( $font_slug ) {
+		$found_webfonts[] = $font_slug;
+	}
+
+	return array_unique( $found_webfonts );
+}
+
+/**
+ * Extract the font family slug from a settings array.
+ *
+ * @param array $setting The settings object.
+ *
+ * @return string|null
+ */
+function extract_font_slug_from_setting( $setting ) {
+	if ( ! isset( $setting['typography']['fontFamily'] ) ) {
+		return null;
+	}
+
+	$font_family = $setting['typography']['fontFamily'];
+
+	// Full string: var(--wp--preset--font-family--slug).
+	// We do not care about the origin of the font, only its slug.
+	preg_match( '/font-family--(?P<slug>.+)\)$/', $font_family, $matches );
+
+	if ( isset( $matches['slug'] ) ) {
+		return $matches['slug'];
+	}
+
+	// Full string: var:preset|font-family|slug
+	// We do not care about the origin of the font, only its slug.
+	preg_match( '/font-family\|(?P<slug>.+)$/', $font_family, $matches );
+
+	if ( isset( $matches['slug'] ) ) {
+		return $matches['slug'];
+	}
+
+	return $font_family;
+}
+
+/**
+ * Build a list of all font slugs provided by spearhead-blocks from theme.json
+ *
+ * @return array Collection of all font slugs defined in the theme.json file
+ */
+function collect_fonts_from_spearhead_blocks() {
+	$fonts                  = array();
+	$parent_theme_json_data = json_decode( file_get_contents( get_template_directory() . '/theme.json' ), true );
+	$font_families          = $parent_theme_json_data['settings']['typography']['fontFamilies'];
+
+	foreach ( $font_families as $font ) {
+		// Only pick it up if we're claiming it as ours to manage
+		if ( array_key_exists( 'provider', $font ) && 'spearhead-blocks-fonts' === $font['provider'] ) {
+			$fonts[] = $font;
+		}
+	}
+
+	return $fonts;
+}
+
+/**
+ * Enqeue all of the fonts used in global styles settings.
+ *
+ * @return void
+ */
+function enqueue_global_styles_fonts() {
+
+	global $spearhead_blocks_enqueued_font_slugs;
+
+	$font_slugs = array();
+	$font_css   = '';
+
+	if ( is_admin() ) {
+		$font_families = collect_fonts_from_spearhead_blocks();
+		foreach ( $font_families as $font_family ) {
+			$font_slugs[] = $font_family['slug'];
+		}
+	} else {
+		$font_slugs = collect_fonts_from_global_styles();
+	}
+
+	$spearhead_blocks_enqueued_font_slugs = $font_slugs;
+
+	foreach ( $font_slugs as $font_slug ) {
+		$font_css .= get_style_css( $font_slug );
+	}
+
+	// Bail out if there are no styles to enqueue.
+	if ( '' === $font_css ) {
+		return;
+	}
+
+	// Enqueue the stylesheet.
+	wp_register_style( 'spearhead-blocks_font_faces', '' );
+	wp_enqueue_style( 'spearhead-blocks_font_faces' );
+
+	// Add the styles to the stylesheet.
+	wp_add_inline_style( 'spearhead-blocks_font_faces', $font_css );
+}
+
+/**
+ * Enqueue all of the fonts provided by spearhead-blocks for FSE use
+ */
+function enqueue_fse_font_styles( $fonts ) {
+	$fonts    = collect_fonts_from_spearhead_blocks();
+	$font_css = '';
+
+	foreach ( $fonts as $font ) {
+		$font_css .= get_style_css( $font['slug'] );
+	}
+
+	wp_enqueue_style( 'wp-block-library' );
+	wp_add_inline_style( 'wp-block-library', $font_css );
+}
+
+/**
+ * Add fonts that have been assigned via CSS
+ */
+function enqueue_block_fonts( $content, $parsed_block ) {
+	global $spearhead_blocks_enqueued_font_slugs;
+	if ( ! is_admin() && isset( $parsed_block['attrs']['fontFamily'] ) ) {
+		$font_slug = $parsed_block['attrs']['fontFamily'];
+		if ( ! in_array( $font_slug, $spearhead_blocks_enqueued_font_slugs, true ) ) {
+			$font_css = get_style_css( $font_slug );
+			if ( $font_css ) {
+				$spearhead_blocks_enqueued_font_slugs[] = $font_slug;
+				wp_add_inline_style( 'spearhead-blocks_font_faces', $font_css );
+			}
+		}
+	}
+	return $content;
+}
+
+/**
+ * Jetpack may attempt to register fonts for the Google Font Provider.
+ * If that happens on a child theme then ONLY Jetpack fonts are registered.
+ * This 'filter' filters out all of the fonts Jetpack should register
+ * so that we depend exclusively on those provided by spearhead-blocks.
+ */
+function spearhead_blocks_filter_jetpack_google_fonts_list( $list_to_filter ) {
+	return array();
+}

+ 2 - 0
spearhead-blocks/index.php

@@ -0,0 +1,2 @@
+<?php
+	# This page intentionally left blank

+ 11 - 0
spearhead-blocks/parts/footer.html

@@ -0,0 +1,11 @@
+<!-- wp:group {"layout":{"inherit":true}} -->
+<div class="wp-block-group">
+	<!-- wp:group {"style":{"spacing":{"padding":{"top":"80px","bottom":"30px"}}}} -->
+	<div class="wp-block-group" style="padding-top:80px;padding-bottom:30px">
+		<!-- wp:paragraph {"align":"center"} -->
+		<p class="has-text-align-center">Proudly Powered by <a href="https://wordpress.org" rel="nofollow">WordPress</a></p>
+		<!-- /wp:paragraph -->
+	</div>
+	<!-- /wp:group -->
+</div>
+<!-- /wp:group -->

+ 19 - 0
spearhead-blocks/parts/header.html

@@ -0,0 +1,19 @@
+<!-- wp:group {"className":"gapless-group","layout":{"inherit":"true"}} -->
+<div class="wp-block-group gapless-group"><!-- wp:group {"align":"full","style":{"spacing":{"padding":{"bottom":"35px","top":"35px","right":"35px","left":"35px"}}},"layout":{"type":"flex","justifyContent":"space-between"}} -->
+<div class="wp-block-group alignfull" style="padding-top:35px;padding-right:35px;padding-bottom:35px;padding-left:35px"><!-- wp:group {"layout":{"type":"flex"}} -->
+<div class="wp-block-group"><!-- wp:site-logo {"width":64} /-->
+
+<!-- wp:group {"style":{"spacing":{"blockGap":"5px"}}} -->
+<div class="wp-block-group"><!-- wp:site-title /-->
+
+<!-- wp:site-tagline /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:navigation {"ref":14,"__unstableLocation":"primary","layout":{"type":"flex","setCascadingProperties":true,"justifyContent":"right","orientation":"horizontal"},"style":{"spacing":{"margin":{"top":"0"}}}} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:spacer {"height":"50px"} -->
+<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->

+ 12 - 0
spearhead-blocks/parts/post-meta.html

@@ -0,0 +1,12 @@
+<!-- wp:group {"layout":{"inherit":true}} -->
+<div class="wp-block-group">
+	<!-- wp:group {"layout":{"type":"flex"}} -->
+	<div class="wp-block-group">
+		<!-- wp:post-author {"showAvatar":false,"showBio":false,"style":{"typography":{"fontSize":"14px"}}} /-->
+		<!-- wp:post-date {"isLink":true,"style":{"typography":{"fontSize":"14px"}}} /-->
+		<!-- wp:post-terms {"term":"category","style":{"typography":{"fontSize":"14px"}}} /-->
+		<!-- wp:post-terms {"term": "post_tag","style":{"typography":{"fontSize":"14px"}}} /-->
+	</div>
+	<!-- /wp:group -->
+</div>
+<!-- /wp:group -->

+ 16 - 0
spearhead-blocks/patterns/404.php

@@ -0,0 +1,16 @@
+<?php
+/**
+ * Title: A 404 page
+ * Slug: spearhead-blocks/404
+ * Inserter: no
+ */
+
+?>
+
+<!-- wp:heading {"textAlign":"center","level":1,"fontSize":"medium"} -->
+<h1 class="has-text-align-center has-medium-font-size" id="oops-that-page-can-t-be-found"><?php echo esc_html__( 'Oops! That page can&rsquo;t be found.', 'spearhead-blocks' ); ?></h1>
+<!-- /wp:heading -->
+
+<!-- wp:paragraph -->
+<p><?php echo  esc_html__( 'It looks like nothing was found at this location. Maybe try a search?', 'spearhead-blocks' ); ?></p>
+<!-- /wp:paragraph -->

+ 61 - 0
spearhead-blocks/patterns/comments.php

@@ -0,0 +1,61 @@
+<?php
+/**
+ * Title: Comments
+ * slug: spearhead-blocks/comments
+ * inserter: no
+ */
+
+?>
+<!-- wp:comments-query-loop -->
+<div class="wp-block-comments-query-loop">
+	<!-- wp:comments-title /-->
+
+	<!-- wp:comment-template -->
+	<!-- wp:columns -->
+	<div class="wp-block-columns">
+		<!-- wp:column {"width":"40px"} -->
+		<div class="wp-block-column" style="flex-basis:40px"></div>
+		<!-- /wp:column -->
+
+		<!-- wp:column -->
+		<div class="wp-block-column">
+			<!-- wp:group {"style":{"spacing":{"blockGap":"10px"}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+			<div class="wp-block-group">
+				<!-- wp:avatar {"size":40,"style":{"border":{"radius":"20px"},"spacing":{"margin":{"top":"10px"}}}} /-->
+
+				<!-- wp:group -->
+				<div class="wp-block-group">
+					<!-- wp:comment-author-name /-->
+
+					<!-- wp:group {"style":{"spacing":{"margin":{"top":"0px","bottom":"0px"},"blockGap":"0.5em"}},"layout":{"type":"flex"}} -->
+					<div class="wp-block-group" style="margin-top:0px;margin-bottom:0px">
+						<!-- wp:comment-date {"format":"F j, Y \\a\\t g:i a"} /-->
+
+						<!-- wp:comment-edit-link /-->
+					</div>
+					<!-- /wp:group -->
+				</div>
+				<!-- /wp:group -->
+			</div>
+			<!-- /wp:group -->
+
+			<!-- wp:comment-content /-->
+
+			<!-- wp:comment-reply-link /-->
+		</div>
+		<!-- /wp:column -->
+	</div>
+	<!-- /wp:columns -->
+	<!-- /wp:comment-template -->
+
+	<!-- wp:comments-pagination -->
+	<!-- wp:comments-pagination-previous /-->
+
+	<!-- wp:comments-pagination-numbers /-->
+
+	<!-- wp:comments-pagination-next /-->
+	<!-- /wp:comments-pagination -->
+
+	<!-- wp:post-comments-form /-->
+</div>
+<!-- /wp:comments-query-loop -->

+ 31 - 0
spearhead-blocks/readme.txt

@@ -0,0 +1,31 @@
+=== Spearhead Blocks ===
+Contributors: Automattic
+Requires at least: 5.8
+Tested up to: 5.9
+Requires PHP: 5.7
+License: GPLv2 or later
+License URI: http://www.gnu.org/licenses/gpl-2.0.html
+
+== Description ==
+
+Spearhead Blocks is the block based version of the original Spearhead theme.
+
+== Changelog ==
+
+= 0.0.1 =
+* Initial release
+
+== Copyright ==
+
+Spearhead Blocks WordPress Theme, (C) 2022 Automattic
+Spearhead Blocks is distributed under the terms of the GNU GPL.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.

+ 121 - 0
spearhead-blocks/style.css

@@ -0,0 +1,121 @@
+/*
+Theme Name: Spearhead Blocks
+Theme URI: https://github.com/automattic/themes/tree/trunk/spearhead-blocks
+Author: Automattic
+Author URI: https://automattic.com
+Description: Spearhead Blocks is the block based version of the original Spearhead theme.
+Requires at least: 5.8
+Tested up to: 5.9
+Requires PHP: 5.7
+Version: 0.0.1
+License: GNU General Public License v2 or later
+License URI: https://raw.githubusercontent.com/Automattic/themes/trunk/LICENSE
+Template:
+Text Domain: spearhead-blocks
+Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, rtl-language-support, theme-options, threaded-comments, translation-ready, wide-blocks
+*/
+/*
+ * Dark Mode
+ */
+@media (prefers-color-scheme: dark) {
+  body {
+    --wp--preset--color--primary: var(--wp--preset--color--primary-dark);
+    --wp--preset--color--secondary: var(--wp--preset--color--secondary-dark);
+    --wp--preset--color--foreground: var(--wp--preset--color--foreground-dark);
+    --wp--preset--color--background: var(--wp--preset--color--background-dark);
+  }
+}
+/*
+ * Excerpt audio block fixes
+ */
+.excerpt-audio-block .wp-block-audio {
+  margin-left: 0;
+  margin-right: 0;
+  margin-top: 2rem;
+}
+
+.excerpt-audio-block .wp-block-audio audio {
+  width: 100%;
+}
+
+/*
+ * Font smoothing
+ */
+body {
+  -moz-osx-font-smoothing: grayscale;
+  -webkit-font-smoothing: antialiased;
+}
+
+/*
+ * Button hover styles.
+ * Necessary until the following issue is resolved in Gutenberg:
+ * https://github.com/WordPress/gutenberg/issues/27075
+ */
+.wp-block-search__button:hover,
+.wp-block-file .wp-block-file__button:hover,
+.wp-block-button__link:hover {
+  background-color: var(--wp--preset--color--secondary);
+}
+
+/*
+ * Alignment styles, borrowed from Twenty Twenty-Two.
+ * These rules are temporary, and should not be relied on or
+ * modified too heavily by themes or plugins that build on
+ * Twenty Twenty-Two. These are meant to be a precursor to
+ * a global solution provided by the Block Editor.
+ *
+ * Relevant issues:
+ * https://github.com/WordPress/gutenberg/issues/35607
+ * https://github.com/WordPress/gutenberg/issues/35884
+ */
+.wp-site-blocks,
+body > .is-root-container,
+.edit-post-visual-editor__post-title-wrapper,
+.wp-block-group.alignfull,
+.wp-block-group.has-background,
+.wp-block-columns.alignfull.has-background,
+.wp-block-cover.alignfull,
+.is-root-container .wp-block[data-align=full] > .wp-block-group,
+.is-root-container .wp-block[data-align=full] > .wp-block-columns.has-background,
+.is-root-container .wp-block[data-align=full] > .wp-block-cover {
+  padding-left: var(--wp--custom--gap--horizontal);
+  padding-right: var(--wp--custom--gap--horizontal);
+}
+
+.wp-site-blocks .alignfull,
+.wp-site-blocks > .wp-block-group.has-background,
+.wp-site-blocks > .wp-block-cover,
+.wp-site-blocks > .wp-block-template-part > .wp-block-group.has-background,
+.wp-site-blocks > .wp-block-template-part > .wp-block-cover,
+body > .is-root-container > .wp-block-cover,
+body > .is-root-container > .wp-block-template-part > .wp-block-group.has-background,
+body > .is-root-container > .wp-block-template-part > .wp-block-cover,
+.is-root-container .wp-block[data-align=full] {
+  margin-left: calc(-1 * var(--wp--custom--gap--horizontal)) !important;
+  margin-right: calc(-1 * var(--wp--custom--gap--horizontal)) !important;
+  max-width: unset;
+  width: unset;
+}
+
+/* Blocks inside columns don't have negative margins. */
+.wp-site-blocks .wp-block-columns .wp-block-column .alignfull,
+.is-root-container .wp-block-columns .wp-block-column .wp-block[data-align=full],
+.wp-site-blocks .alignfull:not(.wp-block-group) .alignfull,
+.is-root-container .wp-block[data-align=full] > *:not(.wp-block-group) .wp-block[data-align=full] {
+  margin-left: auto !important;
+  margin-right: auto !important;
+  width: inherit;
+}
+
+/*
+ * Responsive menu container padding.
+ * This ensures the responsive container inherits the same
+ * spacing defined above. This behavior may be built into
+ * the Block Editor in the future.
+ */
+.wp-block-navigation__responsive-container.is-menu-open {
+  padding-top: var(--wp--custom--gap--horizontal);
+  padding-bottom: var(--wp--custom--gap--vertical);
+  padding-right: var(--wp--custom--gap--horizontal);
+  padding-left: var(--wp--custom--gap--horizontal);
+}

+ 12 - 0
spearhead-blocks/templates/404.html

@@ -0,0 +1,12 @@
+<!-- wp:template-part {"slug":"header","tagName":"header"} /-->
+
+<!-- wp:group {"tagName":"main","layout":{"inherit":true}} -->
+<main class="wp-block-group">
+
+	<!-- wp:pattern {"slug":"spearhead-blocks/404"} /-->
+	<!-- wp:search {"label":""} /-->
+
+</main>
+<!-- /wp:group -->
+
+<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->

+ 37 - 0
spearhead-blocks/templates/archive.html

@@ -0,0 +1,37 @@
+<!-- wp:template-part {"slug":"header","tagName":"header"} /-->
+
+<!-- wp:query {"queryId":3,"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true,"taxQuery":null,"parents":[]},"tagName":"main","layout":{"inherit":true}} -->
+<main class="wp-block-query"><!-- wp:query-title {"type":"archive","style":{"spacing":{"margin":{"bottom":"100px"}}}} /-->
+
+<!-- wp:post-template -->
+<!-- wp:group -->
+<div class="wp-block-group"><!-- wp:post-title {"isLink":true} /-->
+
+<!-- wp:post-featured-image {"isLink":true} /-->
+
+<!-- wp:post-excerpt /-->
+
+<!-- wp:group {"style":{"elements":{"link":{"color":{"text":"var:preset|color|secondary"}}}},"textColor":"secondary","layout":{"type":"flex","flexWrap":"nowrap"},"fontSize":"small"} -->
+<div class="wp-block-group has-secondary-color has-text-color has-link-color has-small-font-size"><!-- wp:post-author-name {"isLink":true} /-->
+
+<!-- wp:post-date {"format":null,"style":{"elements":{"link":{"color":{"text":"var:preset|color|secondary"}}}}} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:spacer {"height":"40px"} -->
+<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer --></div>
+<!-- /wp:group -->
+<!-- /wp:post-template -->
+
+<!-- wp:group {"layout":{"inherit":true}} -->
+<div class="wp-block-group"><!-- wp:query-pagination {"paginationArrow":"arrow","layout":{"type":"flex","justifyContent":"space-between"}} -->
+<!-- wp:query-pagination-previous /-->
+
+<!-- wp:query-pagination-numbers /-->
+
+<!-- wp:query-pagination-next /-->
+<!-- /wp:query-pagination --></div>
+<!-- /wp:group --></main>
+<!-- /wp:query -->
+
+<!-- wp:template-part {"slug":"footer","tagName":"footer","className":"site-footer-container"} /-->

+ 1 - 0
spearhead-blocks/templates/blank.html

@@ -0,0 +1 @@
+<!-- wp:post-content {"layout":{"inherit":true},"lock":{"move":false,"remove":true}} /-->

+ 3 - 0
spearhead-blocks/templates/footer-only.html

@@ -0,0 +1,3 @@
+<!-- wp:post-content {"layout":{"inherit":true},"lock":{"move":false,"remove":true}} /-->
+
+<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->

+ 10 - 0
spearhead-blocks/templates/header-footer-only.html

@@ -0,0 +1,10 @@
+<!-- wp:template-part {"slug":"header","tagName":"header"} /-->
+
+<!-- wp:group {"tagName":"main","lock":{"move":false,"remove":true}} -->
+<main class="wp-block-group">
+
+<!-- wp:post-content {"layout":{"inherit":true},"lock":{"move":false,"remove":true}} /-->
+</main>
+<!-- /wp:group -->
+
+<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->

+ 29 - 0
spearhead-blocks/templates/index.html

@@ -0,0 +1,29 @@
+<!-- wp:template-part {"slug":"header","tagName":"header"} /-->
+
+<!-- wp:query {"queryId":0,"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true,"taxQuery":null,"parents":[]},"tagName":"main","layout":{"inherit":true}} -->
+<main class="wp-block-query"><!-- wp:post-template -->
+<!-- wp:group -->
+<div class="wp-block-group"><!-- wp:post-title {"isLink":true} /-->
+
+<!-- wp:post-featured-image {"isLink":true} /-->
+
+<!-- wp:post-excerpt /-->
+
+<!-- wp:spacer {"height":"40px"} -->
+<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer --></div>
+<!-- /wp:group -->
+<!-- /wp:post-template -->
+
+<!-- wp:group {"layout":{"inherit":true}} -->
+<div class="wp-block-group"><!-- wp:query-pagination {"paginationArrow":"arrow","layout":{"type":"flex","justifyContent":"space-between"}} -->
+<!-- wp:query-pagination-previous /-->
+
+<!-- wp:query-pagination-numbers /-->
+
+<!-- wp:query-pagination-next /-->
+<!-- /wp:query-pagination --></div>
+<!-- /wp:group --></main>
+<!-- /wp:query -->
+
+<!-- wp:template-part {"slug":"footer","tagName":"footer","className":"site-footer-container"} /-->

+ 61 - 0
spearhead-blocks/templates/page.html

@@ -0,0 +1,61 @@
+<!-- wp:template-part {"slug":"header","tagName":"header"} /-->
+
+<!-- wp:group {"layout":{"inherit":true}} -->
+<div class="wp-block-group"><!-- wp:post-title {"style":{"typography":{"fontSize":"3rem","lineHeight":1.3999999999999999}}} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"tagName":"main","lock":{"move":false,"remove":true}} -->
+<main class="wp-block-group"><!-- wp:post-featured-image {"align":"full"} /-->
+
+<!-- wp:post-content {"lock":{"move":false,"remove":true},"layout":{"inherit":true}} /--></main>
+<!-- /wp:group -->
+
+<!-- wp:group {"layout":{"inherit":true}} -->
+<div class="wp-block-group"><!-- wp:spacer {"height":"60px"} -->
+<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:comments {"className":"wp-block-comments-query-loop "} -->
+<div class="wp-block-comments wp-block-comments-query-loop"><!-- wp:comments-title /-->
+
+<!-- wp:comment-template -->
+<!-- wp:columns -->
+<div class="wp-block-columns"><!-- wp:column {"width":"40px"} -->
+<div class="wp-block-column" style="flex-basis:40px"></div>
+<!-- /wp:column -->
+
+<!-- wp:column -->
+<div class="wp-block-column"><!-- wp:group {"style":{"spacing":{"blockGap":"10px"}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:avatar {"size":40,"style":{"border":{"radius":"20px"},"spacing":{"margin":{"top":"10px"}}}} /-->
+
+<!-- wp:group -->
+<div class="wp-block-group"><!-- wp:comment-author-name /-->
+
+<!-- wp:group {"style":{"spacing":{"margin":{"top":"0px","bottom":"0px"},"blockGap":"0.5em"}},"layout":{"type":"flex"}} -->
+<div class="wp-block-group" style="margin-top:0px;margin-bottom:0px"><!-- wp:comment-date {"format":"F j, Y \\a\\t g:i a"} /-->
+
+<!-- wp:comment-edit-link /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:comment-content /-->
+
+<!-- wp:comment-reply-link /--></div>
+<!-- /wp:column --></div>
+<!-- /wp:columns -->
+<!-- /wp:comment-template -->
+
+<!-- wp:comments-pagination -->
+<!-- wp:comments-pagination-previous /-->
+
+<!-- wp:comments-pagination-numbers /-->
+
+<!-- wp:comments-pagination-next /-->
+<!-- /wp:comments-pagination -->
+
+<!-- wp:post-comments-form /--></div>
+<!-- /wp:comments --></div>
+<!-- /wp:group -->
+
+<!-- wp:template-part {"slug":"footer","tagName":"footer","className":"site-footer-container"} /-->

+ 47 - 0
spearhead-blocks/templates/search.html

@@ -0,0 +1,47 @@
+<!-- wp:template-part {"slug":"header","tagName":"header"} /-->
+
+<!-- wp:group {"layout":{"inherit":true}} -->
+<div class="wp-block-group">
+	<!-- wp:search /-->
+
+	<!-- wp:spacer {"height":40} -->
+	<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>
+	<!-- /wp:spacer -->
+</div>
+<!-- /wp:group -->
+
+<!-- wp:query {"layout":{"inherit":true}} -->
+<main class="wp-block-query">
+	<!-- wp:post-template -->
+	<!-- wp:group -->
+	<div class="wp-block-group">
+		<!-- wp:post-title {"isLink":true} /-->
+
+		<!-- wp:post-featured-image {"isLink":true} /-->
+
+		<!-- wp:post-excerpt /-->
+
+		<!-- wp:template-part {"slug":"post-meta","layout":{"inherit":true}} /-->
+
+		<!-- wp:spacer {"height":40} -->
+		<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>
+		<!-- /wp:spacer -->
+	</div>
+	<!-- /wp:group -->
+	<!-- /wp:post-template -->
+
+	<!-- wp:group {"layout":{"inherit":true}} -->
+	<div class="wp-block-group">
+		<!-- wp:query-pagination -->
+		<!-- wp:query-pagination-previous /-->
+
+		<!-- wp:query-pagination-numbers /-->
+
+		<!-- wp:query-pagination-next /-->
+		<!-- /wp:query-pagination -->
+	</div>
+	<!-- /wp:group -->
+</main>
+<!-- /wp:query -->
+
+<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->

+ 73 - 0
spearhead-blocks/templates/single.html

@@ -0,0 +1,73 @@
+<!-- wp:template-part {"slug":"header","tagName":"header"} /-->
+
+<!-- wp:group {"layout":{"inherit":true}} -->
+<div class="wp-block-group"><!-- wp:post-date {"textColor":"secondary","fontFamily":"ibm-plex-mono"} /-->
+
+<!-- wp:post-title {"style":{"typography":{"fontSize":"3rem","lineHeight":1.3999999999999999}}} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"tagName":"main","lock":{"move":false,"remove":true}} -->
+<main class="wp-block-group"><!-- wp:post-featured-image {"align":"full"} /-->
+
+<!-- wp:post-content {"lock":{"move":false,"remove":true},"layout":{"inherit":true}} /-->
+
+<!-- wp:group {"style":{"spacing":{"blockGap":"0px","padding":{"top":"30px"}}},"layout":{"inherit":true}} -->
+<div class="wp-block-group" style="padding-top:30px"><!-- wp:paragraph {"textColor":"secondary","fontSize":"small"} -->
+<p class="has-secondary-color has-text-color has-small-font-size">Published by</p>
+<!-- /wp:paragraph -->
+
+<!-- wp:post-author-name {"style":{"typography":{"fontStyle":"normal","fontWeight":"700"}}} /-->
+
+<!-- wp:post-author-biography {"style":{"spacing":{"margin":{"top":"20px"}}}} /--></div>
+<!-- /wp:group --></main>
+<!-- /wp:group -->
+
+<!-- wp:group {"layout":{"inherit":true}} -->
+<div class="wp-block-group"><!-- wp:spacer {"height":"60px"} -->
+<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:comments {"className":"wp-block-comments-query-loop "} -->
+<div class="wp-block-comments wp-block-comments-query-loop"><!-- wp:comments-title /-->
+
+<!-- wp:comment-template -->
+<!-- wp:columns -->
+<div class="wp-block-columns"><!-- wp:column {"width":"40px"} -->
+<div class="wp-block-column" style="flex-basis:40px"></div>
+<!-- /wp:column -->
+
+<!-- wp:column -->
+<div class="wp-block-column"><!-- wp:group {"style":{"spacing":{"blockGap":"10px"}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:avatar {"size":40,"style":{"border":{"radius":"20px"},"spacing":{"margin":{"top":"10px"}}}} /-->
+
+<!-- wp:group -->
+<div class="wp-block-group"><!-- wp:comment-author-name /-->
+
+<!-- wp:group {"style":{"spacing":{"margin":{"top":"0px","bottom":"0px"},"blockGap":"0.5em"}},"layout":{"type":"flex"}} -->
+<div class="wp-block-group" style="margin-top:0px;margin-bottom:0px"><!-- wp:comment-date {"format":"F j, Y \\a\\t g:i a"} /-->
+
+<!-- wp:comment-edit-link /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:comment-content /-->
+
+<!-- wp:comment-reply-link /--></div>
+<!-- /wp:column --></div>
+<!-- /wp:columns -->
+<!-- /wp:comment-template -->
+
+<!-- wp:comments-pagination -->
+<!-- wp:comments-pagination-previous /-->
+
+<!-- wp:comments-pagination-numbers /-->
+
+<!-- wp:comments-pagination-next /-->
+<!-- /wp:comments-pagination -->
+
+<!-- wp:post-comments-form /--></div>
+<!-- /wp:comments --></div>
+<!-- /wp:group -->
+
+<!-- wp:template-part {"slug":"footer","tagName":"footer","className":"site-footer-container"} /-->

+ 455 - 0
spearhead-blocks/theme.json

@@ -0,0 +1,455 @@
+{
+	"customTemplates": [
+		{
+			"name": "blank",
+			"postTypes": [
+				"page",
+				"post"
+			],
+			"title": "Blank"
+		},
+		{
+			"name": "header-footer-only",
+			"postTypes": [
+				"page",
+				"post"
+			],
+			"title": "Header and Footer Only"
+		},
+		{
+			"name": "footer-only",
+			"postTypes": [
+				"page",
+				"post"
+			],
+			"title": "Footer Only"
+		}
+	],
+	"settings": {
+		"appearanceTools": true,
+		"color": {
+			"palette": [
+				{
+					"color": "#db0042",
+					"name": "Primary",
+					"slug": "primary"
+				},
+				{
+					"color": "#555555",
+					"name": "Secondary",
+					"slug": "secondary"
+				},
+				{
+					"color": "#000000",
+					"name": "Foreground",
+					"slug": "foreground"
+				},
+				{
+					"color": "#ffffff",
+					"name": "Background",
+					"slug": "background"
+				},
+				{
+					"color": "#fafbf6",
+					"name": "Tertiary",
+					"slug": "tertiary"
+				},
+				{
+					"color": "#FF6A81",
+					"name": "Primary (Dark)",
+					"slug": "primary-dark"
+				},
+				{
+					"color": "#B2B2B2",
+					"name": "Secondary (Dark)",
+					"slug": "secondary-dark"
+				},
+				{
+					"color": "#ffffff",
+					"name": "Foreground (Dark)",
+					"slug": "foreground-dark"
+				},
+				{
+					"color": "#1E1F21",
+					"name": "Background (Dark)",
+					"slug": "background-dark"
+				}
+			]
+		},
+		"custom": {
+			"gap": {
+				"horizontal": "min(30px, 5vw)",
+				"vertical": "min(30px, 5vw)"
+			}
+		},
+		"layout": {
+			"contentSize": "782px",
+			"wideSize": "1247px"
+		},
+		"spacing": {
+			"units": [
+				"%",
+				"px",
+				"em",
+				"rem",
+				"vh",
+				"vw"
+			]
+		},
+		"typography": {
+			"fontFamilies": [
+				{
+					"fontFamily": "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif",
+					"name": "System Font",
+					"slug": "system-font"
+				},
+				{
+					"fontFamily": "'Libre Franklin', sans-serif",
+					"slug": "libre-franklin",
+					"name": "Libre Franklin",
+					"provider": "spearhead-blocks-fonts"
+				},
+				{
+					"fontFamily": "'IBM Plex Mono', sans-serif",
+					"slug": "ibm-plex-mono",
+					"name": "IBM Plex Mono",
+					"provider": "spearhead-blocks-fonts"
+				}
+			],
+			"fontSizes": [
+				{
+					"name": "Small",
+					"size": "1rem",
+					"slug": "small"
+				},
+				{
+					"name": "Medium",
+					"size": "1.5rem",
+					"slug": "medium"
+				},
+				{
+					"name": "Large",
+					"size": "1.75rem",
+					"slug": "large"
+				},
+				{
+					"name": "Extra Large",
+					"size": "2rem",
+					"slug": "x-large"
+				}
+			]
+		}
+	},
+	"styles": {
+		"blocks": {
+			"core/button": {
+				"border": {
+					"radius": "4px"
+				},
+				"spacing": {
+					"padding": {
+						"bottom": "8px",
+						"left": "32px",
+						"right": "32px",
+						"top": "8px"
+					}
+				},
+				"typography": {
+					"fontSize": "16px"
+				},
+				"color": {
+					"background": "var:preset|color|primary"
+				}
+			},
+			"core/code": {
+				"border": {
+					"color": "#CCCCCC",
+					"radius": "0px",
+					"style": "solid",
+					"width": "2px"
+				},
+				"spacing": {
+					"padding": {
+						"bottom": "var(--wp--custom--gap--vertical)",
+						"left": "var(--wp--custom--gap--horizontal)",
+						"right": "var(--wp--custom--gap--horizontal)",
+						"top": "var(--wp--custom--gap--vertical)"
+					}
+				},
+				"typography": {
+					"fontFamily": "monospace"
+				}
+			},
+			"core/comment-author-name": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--small)"
+				}
+			},
+			"core/comment-content": {
+				"typography": {
+					"fontSize": "1.125rem",
+					"lineHeight": "1.6"
+				}
+			},
+			"core/comment-date": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--small)"
+				}
+			},
+			"core/comment-edit-link": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--small)"
+				}
+			},
+			"core/comment-reply-link": {
+				"color": {
+					"text": "var(--wp--preset--color--primary)"
+				},
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--small)",
+					"textDecoration": "underline"
+				}
+			},
+			"core/comments-title": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--large)"
+				}
+			},
+			"core/gallery": {
+				"spacing": {
+					"margin": {
+						"bottom": "var(--wp--custom--gap--vertical)"
+					}
+				}
+			},
+			"core/list": {
+				"spacing": {
+					"padding": {
+						"left": "calc( 2 * var(--wp--custom--gap--horizontal) )"
+					}
+				}
+			},
+			"core/navigation": {
+				"typography": {
+					"fontSize": "1.075rem",
+					"fontWeight": "400"
+				},
+				"spacing": {
+					"blockGap": "12px"
+				},
+				"elements": {
+					"link": {
+						":hover": {
+							"color": {
+								"text": "var:preset|color|primary"
+							}
+						},
+						"color": {
+							"text": "var:preset|color|foreground"
+						}
+					}
+				}
+			},
+			"core/post-date": {
+				"color": {
+					"text": "var(--wp--preset--color--secondary)"
+				},
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--default)",
+					"fontWeight": "normal"
+				}
+			},
+			"core/post-title": {
+				"elements": {
+					"link": {
+						":hover": {
+							"color": {
+								"text": "var(--wp--preset--color--primary)"
+							}
+						},
+						"color": {
+							"text": "var:preset|color|foreground"
+						}
+					}
+				},
+				"spacing": {
+					"margin": {
+						"bottom": "0"
+					}
+				},
+				"typography": {
+					"fontSize": "var:preset|font-size|medium",
+					"fontStyle": "normal",
+					"fontWeight": "700",
+					"lineHeight": "1.125"
+				}
+			},
+			"core/post-excerpt": {
+				"color": {
+					"text": "var(--wp--preset--color--secondary)"
+				}
+			},
+			"core/pullquote": {
+				"border": {
+					"style": "solid",
+					"width": "1px 0"
+				},
+				"spacing": {
+					"padding": {
+						"bottom": "var(--wp--custom--gap--horizontal)",
+						"left": "var(--wp--custom--gap--horizontal)",
+						"right": "var(--wp--custom--gap--horizontal)",
+						"top": "var(--wp--custom--gap--horizontal)"
+					}
+				},
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--large)",
+					"fontStyle": "italic"
+				}
+			},
+			"core/quote": {
+				"border": {
+					"color": "var(--wp--preset--color--primary)",
+					"style": "solid",
+					"width": "0 0 0 1px"
+				},
+				"spacing": {
+					"padding": {
+						"left": "var(--wp--custom--gap--horizontal)"
+					}
+				},
+				"typography": {
+					"fontSize": "1.125rem",
+					"fontStyle": "normal"
+				}
+			},
+			"core/search": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--medium)",
+					"lineHeight": "1.6"
+				}
+			},
+			"core/separator": {
+				"border": {
+					"color": "currentColor",
+					"style": "solid",
+					"width": "0 0 1px 0"
+				},
+				"color": {
+					"text": "var(--wp--preset--color--foreground)"
+				}
+			},
+			"core/site-tagline": {
+				"typography": {
+					"fontSize": "var:preset|font-size|small",
+					"fontWeight": "500"
+				}
+			},
+			"core/site-title": {
+				"elements": {
+					"link": {
+						":hover": {
+							"color": {
+								"text": "var(--wp--preset--color--secondary)"
+							}
+						},
+						"color": {
+							"text": "var:preset|color|primary"
+						},
+						"typography": {
+							"textDecoration": "none"
+						}
+					}
+				},
+				"typography": {
+					"fontFamily": "var:preset|font-family|ibm-plex-mono",
+					"fontSize": "1.375rem",
+					"fontWeight": "700",
+					"textDecoration": "none"
+				}
+			}
+		},
+		"color": {
+			"background": "var(--wp--preset--color--background)",
+			"text": "var(--wp--preset--color--foreground)"
+		},
+		"elements": {
+			"h1": {
+				"typography": {
+					"fontSize": "3rem",
+					"lineHeight": 1.2
+				}
+			},
+			"h2": {
+				"typography": {
+					"fontSize": "1.38rem",
+					"lineHeight": "1.4"
+				}
+			},
+			"h3": {
+				"typography": {
+					"fontSize": "1.125rem",
+					"lineHeight": "1.4"
+				}
+			},
+			"h4": {
+				"typography": {
+					"fontSize": "1rem"
+				}
+			},
+			"h5": {
+				"typography": {
+					"fontSize": "0.875rem"
+				}
+			},
+			"h6": {
+				"typography": {
+					"fontSize": "0.75rem"
+				}
+			},
+			"heading": {
+				"typography": {
+					"fontStyle": "normal",
+					"fontWeight": "700",
+					"lineHeight": "1.2"
+				}
+			},
+			"link": {
+				":hover": {
+					"color": {
+						"text": "var:preset|color|foreground"
+					},
+					"typography": {
+						"textDecoration": "underline"
+					}
+				},
+				"color": {
+					"text": "var:preset|color|primary"
+				},
+				"typography": {
+					"textDecoration": "none"
+				}
+			}
+		},
+		"spacing": {
+			"blockGap": "35px"
+		},
+		"typography": {
+			"fontFamily": "var:preset|font-family|libre-franklin",
+			"fontSize": "1.125rem",
+			"fontWeight": "500",
+			"lineHeight": 1.8
+		}
+	},
+	"templateParts": [
+		{
+			"area": "header",
+			"name": "header"
+		},
+		{
+			"area": "footer",
+			"name": "footer"
+		}
+	],
+	"version": 2
+}