Buckets:
| import "./index.css" | |
| import { Title, Meta } from "@solidjs/meta" | |
| import { Header } from "~/component/header" | |
| import { Footer } from "~/component/footer" | |
| import { Legal } from "~/component/legal" | |
| import { useI18n } from "~/context/i18n" | |
| import { LocaleLinks } from "~/component/locale-links" | |
| import previewLogoLight from "../../asset/brand/preview-opencode-logo-light.png" | |
| import previewLogoDark from "../../asset/brand/preview-opencode-logo-dark.png" | |
| import previewLogoLightSquare from "../../asset/brand/preview-opencode-logo-light-square.png" | |
| import previewLogoDarkSquare from "../../asset/brand/preview-opencode-logo-dark-square.png" | |
| import previewWordmarkLight from "../../asset/brand/preview-opencode-wordmark-light.png" | |
| import previewWordmarkDark from "../../asset/brand/preview-opencode-wordmark-dark.png" | |
| import previewWordmarkSimpleLight from "../../asset/brand/preview-opencode-wordmark-simple-light.png" | |
| import previewWordmarkSimpleDark from "../../asset/brand/preview-opencode-wordmark-simple-dark.png" | |
| import logoLightPng from "../../asset/brand/opencode-logo-light.png" | |
| import logoDarkPng from "../../asset/brand/opencode-logo-dark.png" | |
| import logoLightSquarePng from "../../asset/brand/opencode-logo-light-square.png" | |
| import logoDarkSquarePng from "../../asset/brand/opencode-logo-dark-square.png" | |
| import wordmarkLightPng from "../../asset/brand/opencode-wordmark-light.png" | |
| import wordmarkDarkPng from "../../asset/brand/opencode-wordmark-dark.png" | |
| import wordmarkSimpleLightPng from "../../asset/brand/opencode-wordmark-simple-light.png" | |
| import wordmarkSimpleDarkPng from "../../asset/brand/opencode-wordmark-simple-dark.png" | |
| import logoLightSvg from "../../asset/brand/opencode-logo-light.svg" | |
| import logoDarkSvg from "../../asset/brand/opencode-logo-dark.svg" | |
| import logoLightSquareSvg from "../../asset/brand/opencode-logo-light-square.svg" | |
| import logoDarkSquareSvg from "../../asset/brand/opencode-logo-dark-square.svg" | |
| import wordmarkLightSvg from "../../asset/brand/opencode-wordmark-light.svg" | |
| import wordmarkDarkSvg from "../../asset/brand/opencode-wordmark-dark.svg" | |
| import wordmarkSimpleLightSvg from "../../asset/brand/opencode-wordmark-simple-light.svg" | |
| import wordmarkSimpleDarkSvg from "../../asset/brand/opencode-wordmark-simple-dark.svg" | |
| const brandAssets = "/opencode-brand-assets.zip" | |
| export default function Brand() { | |
| const i18n = useI18n() | |
| const alt = i18n.t("brand.meta.description") | |
| const downloadFile = async (url: string, filename: string) => { | |
| try { | |
| const response = await fetch(url) | |
| const blob = await response.blob() | |
| const blobUrl = window.URL.createObjectURL(blob) | |
| const link = document.createElement("a") | |
| link.href = blobUrl | |
| link.download = filename | |
| document.body.appendChild(link) | |
| link.click() | |
| document.body.removeChild(link) | |
| window.URL.revokeObjectURL(blobUrl) | |
| } catch (error) { | |
| console.error("Download failed:", error) | |
| const link = document.createElement("a") | |
| link.href = url | |
| link.target = "_blank" | |
| link.rel = "noopener noreferrer" | |
| document.body.appendChild(link) | |
| link.click() | |
| document.body.removeChild(link) | |
| } | |
| } | |
| return ( | |
| <main data-page="enterprise"> | |
| <Title>{i18n.t("brand.title")}</Title> | |
| <LocaleLinks path="/brand" /> | |
| <Meta name="description" content={i18n.t("brand.meta.description")} /> | |
| <div data-component="container"> | |
| <Header /> | |
| <div data-component="content"> | |
| <section data-component="brand-content"> | |
| <h1>{i18n.t("brand.heading")}</h1> | |
| <p>{i18n.t("brand.subtitle")}</p> | |
| <button | |
| data-component="download-button" | |
| onClick={() => downloadFile(brandAssets, "opencode-brand-assets.zip")} | |
| > | |
| {i18n.t("brand.downloadAll")} | |
| <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
| <path | |
| d="M13.9583 10.6247L10 14.583L6.04167 10.6247M10 2.08301V13.958M16.25 17.9163H3.75" | |
| stroke="currentColor" | |
| stroke-width="1.5" | |
| stroke-linecap="square" | |
| /> | |
| </svg> | |
| </button> | |
| <div data-component="brand-grid"> | |
| <div> | |
| <img src={previewLogoLight} alt={alt} /> | |
| <div data-component="actions"> | |
| <button onClick={() => downloadFile(logoLightPng, "opencode-logo-light.png")}> | |
| PNG | |
| <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
| <path | |
| d="M13.9583 10.6247L10 14.583L6.04167 10.6247M10 2.08301V13.958M16.25 17.9163H3.75" | |
| stroke="currentColor" | |
| stroke-width="1.5" | |
| stroke-linecap="square" | |
| /> | |
| </svg> | |
| </button> | |
| <button onClick={() => downloadFile(logoLightSvg, "opencode-logo-light.svg")}> | |
| SVG | |
| <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
| <path | |
| d="M13.9583 10.6247L10 14.583L6.04167 10.6247M10 2.08301V13.958M16.25 17.9163H3.75" | |
| stroke="currentColor" | |
| stroke-width="1.5" | |
| stroke-linecap="square" | |
| /> | |
| </svg> | |
| </button> | |
| </div> | |
| </div> | |
| <div> | |
| <img src={previewLogoDark} alt={alt} /> | |
| <div data-component="actions"> | |
| <button onClick={() => downloadFile(logoDarkPng, "opencode-logo-dark.png")}> | |
| PNG | |
| <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
| <path | |
| d="M13.9583 10.6247L10 14.583L6.04167 10.6247M10 2.08301V13.958M16.25 17.9163H3.75" | |
| stroke="currentColor" | |
| stroke-width="1.5" | |
| stroke-linecap="square" | |
| /> | |
| </svg> | |
| </button> | |
| <button onClick={() => downloadFile(logoDarkSvg, "opencode-logo-dark.svg")}> | |
| SVG | |
| <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
| <path | |
| d="M13.9583 10.6247L10 14.583L6.04167 10.6247M10 2.08301V13.958M16.25 17.9163H3.75" | |
| stroke="currentColor" | |
| stroke-width="1.5" | |
| stroke-linecap="square" | |
| /> | |
| </svg> | |
| </button> | |
| </div> | |
| </div> | |
| <div> | |
| <img src={previewLogoLightSquare} alt={alt} /> | |
| <div data-component="actions"> | |
| <button onClick={() => downloadFile(logoLightSquarePng, "opencode-logo-light-square.png")}> | |
| PNG | |
| <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
| <path | |
| d="M13.9583 10.6247L10 14.583L6.04167 10.6247M10 2.08301V13.958M16.25 17.9163H3.75" | |
| stroke="currentColor" | |
| stroke-width="1.5" | |
| stroke-linecap="square" | |
| /> | |
| </svg> | |
| </button> | |
| <button onClick={() => downloadFile(logoLightSquareSvg, "opencode-logo-light-square.svg")}> | |
| SVG | |
| <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
| <path | |
| d="M13.9583 10.6247L10 14.583L6.04167 10.6247M10 2.08301V13.958M16.25 17.9163H3.75" | |
| stroke="currentColor" | |
| stroke-width="1.5" | |
| stroke-linecap="square" | |
| /> | |
| </svg> | |
| </button> | |
| </div> | |
| </div> | |
| <div> | |
| <img src={previewLogoDarkSquare} alt={alt} /> | |
| <div data-component="actions"> | |
| <button onClick={() => downloadFile(logoDarkSquarePng, "opencode-logo-dark-square.png")}> | |
| PNG | |
| <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
| <path | |
| d="M13.9583 10.6247L10 14.583L6.04167 10.6247M10 2.08301V13.958M16.25 17.9163H3.75" | |
| stroke="currentColor" | |
| stroke-width="1.5" | |
| stroke-linecap="square" | |
| /> | |
| </svg> | |
| </button> | |
| <button onClick={() => downloadFile(logoDarkSquareSvg, "opencode-logo-dark-square.svg")}> | |
| SVG | |
| <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
| <path | |
| d="M13.9583 10.6247L10 14.583L6.04167 10.6247M10 2.08301V13.958M16.25 17.9163H3.75" | |
| stroke="currentColor" | |
| stroke-width="1.5" | |
| stroke-linecap="square" | |
| /> | |
| </svg> | |
| </button> | |
| </div> | |
| </div> | |
| <div> | |
| <img src={previewWordmarkLight} alt={alt} /> | |
| <div data-component="actions"> | |
| <button onClick={() => downloadFile(wordmarkLightPng, "opencode-wordmark-light.png")}> | |
| PNG | |
| <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
| <path | |
| d="M13.9583 10.6247L10 14.583L6.04167 10.6247M10 2.08301V13.958M16.25 17.9163H3.75" | |
| stroke="currentColor" | |
| stroke-width="1.5" | |
| stroke-linecap="square" | |
| /> | |
| </svg> | |
| </button> | |
| <button onClick={() => downloadFile(wordmarkLightSvg, "opencode-wordmark-light.svg")}> | |
| SVG | |
| <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
| <path | |
| d="M13.9583 10.6247L10 14.583L6.04167 10.6247M10 2.08301V13.958M16.25 17.9163H3.75" | |
| stroke="currentColor" | |
| stroke-width="1.5" | |
| stroke-linecap="square" | |
| /> | |
| </svg> | |
| </button> | |
| </div> | |
| </div> | |
| <div> | |
| <img src={previewWordmarkDark} alt={alt} /> | |
| <div data-component="actions"> | |
| <button onClick={() => downloadFile(wordmarkDarkPng, "opencode-wordmark-dark.png")}> | |
| PNG | |
| <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
| <path | |
| d="M13.9583 10.6247L10 14.583L6.04167 10.6247M10 2.08301V13.958M16.25 17.9163H3.75" | |
| stroke="currentColor" | |
| stroke-width="1.5" | |
| stroke-linecap="square" | |
| /> | |
| </svg> | |
| </button> | |
| <button onClick={() => downloadFile(wordmarkDarkSvg, "opencode-wordmark-dark.svg")}> | |
| SVG | |
| <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
| <path | |
| d="M13.9583 10.6247L10 14.583L6.04167 10.6247M10 2.08301V13.958M16.25 17.9163H3.75" | |
| stroke="currentColor" | |
| stroke-width="1.5" | |
| stroke-linecap="square" | |
| /> | |
| </svg> | |
| </button> | |
| </div> | |
| </div> | |
| <div> | |
| <img src={previewWordmarkSimpleLight} alt={alt} /> | |
| <div data-component="actions"> | |
| <button onClick={() => downloadFile(wordmarkSimpleLightPng, "opencode-wordmark-simple-light.png")}> | |
| PNG | |
| <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
| <path | |
| d="M13.9583 10.6247L10 14.583L6.04167 10.6247M10 2.08301V13.958M16.25 17.9163H3.75" | |
| stroke="currentColor" | |
| stroke-width="1.5" | |
| stroke-linecap="square" | |
| /> | |
| </svg> | |
| </button> | |
| <button onClick={() => downloadFile(wordmarkSimpleLightSvg, "opencode-wordmark-simple-light.svg")}> | |
| SVG | |
| <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
| <path | |
| d="M13.9583 10.6247L10 14.583L6.04167 10.6247M10 2.08301V13.958M16.25 17.9163H3.75" | |
| stroke="currentColor" | |
| stroke-width="1.5" | |
| stroke-linecap="square" | |
| /> | |
| </svg> | |
| </button> | |
| </div> | |
| </div> | |
| <div> | |
| <img src={previewWordmarkSimpleDark} alt={alt} /> | |
| <div data-component="actions"> | |
| <button onClick={() => downloadFile(wordmarkSimpleDarkPng, "opencode-wordmark-simple-dark.png")}> | |
| PNG | |
| <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
| <path | |
| d="M13.9583 10.6247L10 14.583L6.04167 10.6247M10 2.08301V13.958M16.25 17.9163H3.75" | |
| stroke="currentColor" | |
| stroke-width="1.5" | |
| stroke-linecap="square" | |
| /> | |
| </svg> | |
| </button> | |
| <button onClick={() => downloadFile(wordmarkSimpleDarkSvg, "opencode-wordmark-simple-dark.svg")}> | |
| SVG | |
| <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
| <path | |
| d="M13.9583 10.6247L10 14.583L6.04167 10.6247M10 2.08301V13.958M16.25 17.9163H3.75" | |
| stroke="currentColor" | |
| stroke-width="1.5" | |
| stroke-linecap="square" | |
| /> | |
| </svg> | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| </div> | |
| <Footer /> | |
| </div> | |
| <Legal /> | |
| </main> | |
| ) | |
| } | |
Xet Storage Details
- Size:
- 15.4 kB
- Xet hash:
- 92e80c67857d0f893af0b797589d2ea12e6f5413b1b65ad28d8f219f9acb91a9
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.