square-logos.patch 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. From 90904222b6f8c86a6d0a8ebed9661950f632a4e8 Mon Sep 17 00:00:00 2001
  2. From: OpenCode Bot <[email protected]>
  3. Date: Wed, 11 Feb 2026 18:44:27 +0000
  4. Subject: [PATCH] add square logo variants to brand page
  5. ---
  6. .../asset/brand/opencode-logo-dark-square.png | Bin 0 -> 697 bytes
  7. .../asset/brand/opencode-logo-dark-square.svg | 18 ++++++
  8. .../brand/opencode-logo-light-square.png | Bin 0 -> 697 bytes
  9. .../brand/opencode-logo-light-square.svg | 18 ++++++
  10. .../preview-opencode-logo-dark-square.png | Bin 0 -> 1477 bytes
  11. .../preview-opencode-logo-light-square.png | Bin 0 -> 1467 bytes
  12. .../console/app/src/routes/brand/index.tsx | 60 ++++++++++++++++++
  13. 7 files changed, 96 insertions(+)
  14. create mode 100644 packages/console/app/src/asset/brand/opencode-logo-dark-square.png
  15. create mode 100644 packages/console/app/src/asset/brand/opencode-logo-dark-square.svg
  16. create mode 100644 packages/console/app/src/asset/brand/opencode-logo-light-square.png
  17. create mode 100644 packages/console/app/src/asset/brand/opencode-logo-light-square.svg
  18. create mode 100644 packages/console/app/src/asset/brand/preview-opencode-logo-dark-square.png
  19. create mode 100644 packages/console/app/src/asset/brand/preview-opencode-logo-light-square.png
  20. diff --git a/packages/console/app/src/asset/brand/opencode-logo-dark-square.png b/packages/console/app/src/asset/brand/opencode-logo-dark-square.png
  21. new file mode 100644
  22. index 0000000000000000000000000000000000000000..673c7e3a20f917fae56719ed1c35b4614ecd5f53
  23. GIT binary patch
  24. literal 697
  25. zcmeAS@N?(olHy`uVBq!ia0y~yV2S`?CT5_>VU7ZSAjOjI=<CS9u(6-}Pa-RjuaN8!
  26. z<jcTNrN+R}(89p*3n<j^f`OsbfPvvv0t1893<d`Af;qbaZGaLy0X`wFK>FjGH{Nb;
  27. zK*kCWpQS*Gu_VYZn8D%MjWiG^$=lt9p@UV{1IXbl@Q5sCU=ULUVMfm&l@CBc_7YED
  28. zSN2y-+(O#2cjOjy1NC%xx;TbZ+<JS?ke5M0fMtVmr)P-K<_$G=ESI!0Hc3x^;^R#P
  29. z@VYyUYYSCCTI00A1HzVGb*Dn;c)vb-jcFpozT1*PW*Wd~QY~?fC`m~yNwrEYN(E93
  30. zMg~S^x&}tNhK3=A7FH&PRz^nJ1_o9J26?+;7NKa!%}>cptHiBA{`nI*paup{S3j3^
  31. HP6<r_YMlsn
  32. literal 0
  33. HcmV?d00001
  34. diff --git a/packages/console/app/src/asset/brand/opencode-logo-dark-square.svg b/packages/console/app/src/asset/brand/opencode-logo-dark-square.svg
  35. new file mode 100644
  36. index 0000000..6a67f62
  37. --- /dev/null
  38. +++ b/packages/console/app/src/asset/brand/opencode-logo-dark-square.svg
  39. @@ -0,0 +1,18 @@
  40. +<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
  41. +<g transform="translate(30, 0)">
  42. +<g clip-path="url(#clip0_1401_86283)">
  43. +<mask id="mask0_1401_86283" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="240" height="300">
  44. +<path d="M240 0H0V300H240V0Z" fill="white"/>
  45. +</mask>
  46. +<g mask="url(#mask0_1401_86283)">
  47. +<path d="M180 240H60V120H180V240Z" fill="#4B4646"/>
  48. +<path d="M180 60H60V240H180V60ZM240 300H0V0H240V300Z" fill="#F1ECEC"/>
  49. +</g>
  50. +</g>
  51. +</g>
  52. +<defs>
  53. +<clipPath id="clip0_1401_86283">
  54. +<rect width="240" height="300" fill="white"/>
  55. +</clipPath>
  56. +</defs>
  57. +</svg>
  58. diff --git a/packages/console/app/src/asset/brand/opencode-logo-light-square.png b/packages/console/app/src/asset/brand/opencode-logo-light-square.png
  59. new file mode 100644
  60. index 0000000000000000000000000000000000000000..5c710474abc4668504cb9678da1de6ad33458af9
  61. GIT binary patch
  62. literal 697
  63. zcmeAS@N?(olHy`uVBq!ia0y~yV2S`?CT5_>VU7ZSAjOjI=<CS9u(6-}Pa-RjuaN8!
  64. z<jcTNrN+R}(89p*3n<j^f`OsbfPvvv0t1893<d`Af;qbaZGaLy0X`wFKw42w?)<s4
  65. zK*kyVm4AQ~V@Z%-FoVOh8)+a;lDE4HLkFv@2av;A;1OBOz#ygy!i=6lDj$G?>?NMQ
  66. zuI#UvxP`Q3@5n9a2I}eXba4!+xb^m&Auof10LupBPR|gd%^Pa$ST1R0Y?7Y-#K)To
  67. z;B|Kx*A}XPw8m+J2ZSxX>Q05w@qT^w8q-9EeYYip%rt<}q*~${QIe8al4_M)lnSI6
  68. zj0}v-bPbGj4GlvKEv!rot&EJc4GgRd4DxoxEJD$co1c=IR*74K{PQPrKn)C@u6{1-
  69. HoD!M<*)j+`
  70. literal 0
  71. HcmV?d00001
  72. diff --git a/packages/console/app/src/asset/brand/opencode-logo-light-square.svg b/packages/console/app/src/asset/brand/opencode-logo-light-square.svg
  73. new file mode 100644
  74. index 0000000..a738ad8
  75. --- /dev/null
  76. +++ b/packages/console/app/src/asset/brand/opencode-logo-light-square.svg
  77. @@ -0,0 +1,18 @@
  78. +<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
  79. +<g transform="translate(30, 0)">
  80. +<g clip-path="url(#clip0_1401_86274)">
  81. +<mask id="mask0_1401_86274" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="240" height="300">
  82. +<path d="M240 0H0V300H240V0Z" fill="white"/>
  83. +</mask>
  84. +<g mask="url(#mask0_1401_86274)">
  85. +<path d="M180 240H60V120H180V240Z" fill="#CFCECD"/>
  86. +<path d="M180 60H60V240H180V60ZM240 300H0V0H240V300Z" fill="#211E1E"/>
  87. +</g>
  88. +</g>
  89. +</g>
  90. +<defs>
  91. +<clipPath id="clip0_1401_86274">
  92. +<rect width="240" height="300" fill="white"/>
  93. +</clipPath>
  94. +</defs>
  95. +</svg>
  96. diff --git a/packages/console/app/src/asset/brand/preview-opencode-logo-dark-square.png b/packages/console/app/src/asset/brand/preview-opencode-logo-dark-square.png
  97. new file mode 100644
  98. index 0000000000000000000000000000000000000000..604ad7aa7a87c71d4a3972f18da4044e53f745fe
  99. GIT binary patch
  100. literal 1477
  101. zcmeAS@N?(olHy`uVBq!ia0y~yV4MKL9LzwG?TN?!0V$SrM_)$<hK>E)e-c@Ne1&9>
  102. zAYTTCDm4a%h86~fUqGRT7Yq!g1`G_Z5*Qe)W-u^_7tGleXakf83GfMV1=1hiyun28
  103. zU%gs1cdnz2jklZIqq}#b!@|5=U4d+%%7=IEM1_VzxRD_to-Qsx1sTc7KrJ6$zXlo@
  104. zFuxY$Hi42LzhDLii5Gug>4^i8#NSshUI=lk@B-x+lf2zs7&=&GJ%Aj}0*}aI1_m)z
  105. z5N7lYQuzQBWH0gbb!C6W#4V()m9m%>=ouDUPZ!6Kid%0la{4g^2(UVS^9^9Ux#z#*
  106. zUM9{NA)j{pe@M$Rs$BIl=U=S8$$a1WzrRdo{gl+0z}h6r5vC9^6c`^Bx}VO;+bO}5
  107. zvNP)ZgKMjwCMdj@`|<2Y_0Pt}1ZL)gY-~-uJS@@@9A*XrISC3k4mfNWo)RazbGPm0
  108. z-*LChSmMOL4?kJISKi=fE3%ne|KQy6WQCxi5SK$J*`YY~T7$y$*OKq5Bzd2d?Vs~N
  109. z@B8fph5p+U-+hzde)4_q^MCH|=dNhx2_G663hFce=0A)TEv>6k&v^?1%NErV*NBpo
  110. z#FA92<f2p{#b9J$WTtCiq-$sxVrXGyVr*q(scm3jWnhruaU&H)LvDUbW?Cg~4U(b>
  111. RH-Q=$JYD@<);T3K0RY|)#{mEU
  112. literal 0
  113. HcmV?d00001
  114. diff --git a/packages/console/app/src/asset/brand/preview-opencode-logo-light-square.png b/packages/console/app/src/asset/brand/preview-opencode-logo-light-square.png
  115. new file mode 100644
  116. index 0000000000000000000000000000000000000000..3964d8528440323730053e56f9d957539937b99d
  117. GIT binary patch
  118. literal 1467
  119. zcmeAS@N?(olHy`uVBq!ia0y~yV4MKL9LzwG?TN?!0V$SrM_)$<hK>E)e-c@Ne1&9>
  120. zAYTTCDm4a%h86~fUqGRT7Yq!g1`G_Z5*Qe)W-u^_7tGleXakh+3-AeX1=5Oga+pX-
  121. zUcR`n@W%CP=g*zh*VWm(dpD2)RHh&+YpAEUZ|@!;cmKY<7tWv4*U?$OZY@wf(5P=q
  122. zw@e07{3Stt!3+!%FaEyL69*!Rzpq|wUamVGD8-oM?e4<R!7A$k<Zu>vL>4nJh^c}w
  123. zqi2xH2cRH(iKnkC`zt1HA#JUc#jHSIuvmGzIEGZ*dV8@wmnlGi)v?HEMncg4sk@lD
  124. zIaT_<lxtU%8_(QxrNqqsn)KQ9%h&DxCN=JfRETIyU~LlR2pb9vn-fWv%cJ$!m?PI+
  125. zGv4tv%TnURa`rlle{ppQ3O5coY-nsuU}iqZ#@58k!y+xgVP+tZGdv|e#VtQu_MLV6
  126. z?L5Ea#y9-;OWOY?C_F#SfA^^jN9a(9$sv^JP@HNicjD`}`}Y4=-!3(o@cVI9<8Hfm
  127. z&5bti(|7$Y)|v3Q^Zn-UpA;4kk?aKV*|pOO`<V}&_gU>d_YAOLQ7v(eC`m~yNwrEY
  128. zN(E93Mg~S^x&}tNhK3=A7FH(4Rz{ZE1_o9J1{oeVQc*PI=BH$)RpQnlDVlH-sDZ)L
  129. L)z4*}Q$iB}B`L3|
  130. literal 0
  131. HcmV?d00001
  132. diff --git a/packages/console/app/src/routes/brand/index.tsx b/packages/console/app/src/routes/brand/index.tsx
  133. index eda3c84..9140462 100644
  134. --- a/packages/console/app/src/routes/brand/index.tsx
  135. +++ b/packages/console/app/src/routes/brand/index.tsx
  136. @@ -7,18 +7,24 @@ import { useI18n } from "~/context/i18n"
  137. import { LocaleLinks } from "~/component/locale-links"
  138. import previewLogoLight from "../../asset/brand/preview-opencode-logo-light.png"
  139. import previewLogoDark from "../../asset/brand/preview-opencode-logo-dark.png"
  140. +import previewLogoLightSquare from "../../asset/brand/preview-opencode-logo-light-square.png"
  141. +import previewLogoDarkSquare from "../../asset/brand/preview-opencode-logo-dark-square.png"
  142. import previewWordmarkLight from "../../asset/brand/preview-opencode-wordmark-light.png"
  143. import previewWordmarkDark from "../../asset/brand/preview-opencode-wordmark-dark.png"
  144. import previewWordmarkSimpleLight from "../../asset/brand/preview-opencode-wordmark-simple-light.png"
  145. import previewWordmarkSimpleDark from "../../asset/brand/preview-opencode-wordmark-simple-dark.png"
  146. import logoLightPng from "../../asset/brand/opencode-logo-light.png"
  147. import logoDarkPng from "../../asset/brand/opencode-logo-dark.png"
  148. +import logoLightSquarePng from "../../asset/brand/opencode-logo-light-square.png"
  149. +import logoDarkSquarePng from "../../asset/brand/opencode-logo-dark-square.png"
  150. import wordmarkLightPng from "../../asset/brand/opencode-wordmark-light.png"
  151. import wordmarkDarkPng from "../../asset/brand/opencode-wordmark-dark.png"
  152. import wordmarkSimpleLightPng from "../../asset/brand/opencode-wordmark-simple-light.png"
  153. import wordmarkSimpleDarkPng from "../../asset/brand/opencode-wordmark-simple-dark.png"
  154. import logoLightSvg from "../../asset/brand/opencode-logo-light.svg"
  155. import logoDarkSvg from "../../asset/brand/opencode-logo-dark.svg"
  156. +import logoLightSquareSvg from "../../asset/brand/opencode-logo-light-square.svg"
  157. +import logoDarkSquareSvg from "../../asset/brand/opencode-logo-dark-square.svg"
  158. import wordmarkLightSvg from "../../asset/brand/opencode-wordmark-light.svg"
  159. import wordmarkDarkSvg from "../../asset/brand/opencode-wordmark-dark.svg"
  160. import wordmarkSimpleLightSvg from "../../asset/brand/opencode-wordmark-simple-light.svg"
  161. @@ -135,6 +141,60 @@ export default function Brand() {
  162. </button>
  163. </div>
  164. </div>
  165. + <div>
  166. + <img src={previewLogoLightSquare} alt="OpenCode brand guidelines" />
  167. + <div data-component="actions">
  168. + <button onClick={() => downloadFile(logoLightSquarePng, "opencode-logo-light-square.png")}>
  169. + PNG
  170. + <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
  171. + <path
  172. + d="M13.9583 10.6247L10 14.583L6.04167 10.6247M10 2.08301V13.958M16.25 17.9163H3.75"
  173. + stroke="currentColor"
  174. + stroke-width="1.5"
  175. + stroke-linecap="square"
  176. + />
  177. + </svg>
  178. + </button>
  179. + <button onClick={() => downloadFile(logoLightSquareSvg, "opencode-logo-light-square.svg")}>
  180. + SVG
  181. + <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
  182. + <path
  183. + d="M13.9583 10.6247L10 14.583L6.04167 10.6247M10 2.08301V13.958M16.25 17.9163H3.75"
  184. + stroke="currentColor"
  185. + stroke-width="1.5"
  186. + stroke-linecap="square"
  187. + />
  188. + </svg>
  189. + </button>
  190. + </div>
  191. + </div>
  192. + <div>
  193. + <img src={previewLogoDarkSquare} alt="OpenCode brand guidelines" />
  194. + <div data-component="actions">
  195. + <button onClick={() => downloadFile(logoDarkSquarePng, "opencode-logo-dark-square.png")}>
  196. + PNG
  197. + <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
  198. + <path
  199. + d="M13.9583 10.6247L10 14.583L6.04167 10.6247M10 2.08301V13.958M16.25 17.9163H3.75"
  200. + stroke="currentColor"
  201. + stroke-width="1.5"
  202. + stroke-linecap="square"
  203. + />
  204. + </svg>
  205. + </button>
  206. + <button onClick={() => downloadFile(logoDarkSquareSvg, "opencode-logo-dark-square.svg")}>
  207. + SVG
  208. + <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
  209. + <path
  210. + d="M13.9583 10.6247L10 14.583L6.04167 10.6247M10 2.08301V13.958M16.25 17.9163H3.75"
  211. + stroke="currentColor"
  212. + stroke-width="1.5"
  213. + stroke-linecap="square"
  214. + />
  215. + </svg>
  216. + </button>
  217. + </div>
  218. + </div>
  219. <div>
  220. <img src={previewWordmarkLight} alt="OpenCode brand guidelines" />
  221. <div data-component="actions">
  222. --
  223. 2.39.5