diff --git a/packages/console/app/src/asset/brand/opencode-logo-dark.png b/packages/console/app/src/asset/brand/opencode-logo-dark.png
new file mode 100644
index 00000000..cf868c8e
Binary files /dev/null and b/packages/console/app/src/asset/brand/opencode-logo-dark.png differ
diff --git a/packages/console/app/src/asset/brand/opencode-logo-dark.svg b/packages/console/app/src/asset/brand/opencode-logo-dark.svg
new file mode 100644
index 00000000..c28babff
--- /dev/null
+++ b/packages/console/app/src/asset/brand/opencode-logo-dark.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/console/app/src/asset/brand/opencode-logo-light.png b/packages/console/app/src/asset/brand/opencode-logo-light.png
new file mode 100644
index 00000000..a2ffc9b9
Binary files /dev/null and b/packages/console/app/src/asset/brand/opencode-logo-light.png differ
diff --git a/packages/console/app/src/asset/brand/opencode-logo-light.svg b/packages/console/app/src/asset/brand/opencode-logo-light.svg
new file mode 100644
index 00000000..7ed0af00
--- /dev/null
+++ b/packages/console/app/src/asset/brand/opencode-logo-light.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/console/app/src/asset/brand/opencode-wordmark-dark.png b/packages/console/app/src/asset/brand/opencode-wordmark-dark.png
new file mode 100644
index 00000000..f8e2c3f4
Binary files /dev/null and b/packages/console/app/src/asset/brand/opencode-wordmark-dark.png differ
diff --git a/packages/console/app/src/asset/brand/opencode-wordmark-dark.svg b/packages/console/app/src/asset/brand/opencode-wordmark-dark.svg
new file mode 100644
index 00000000..a242eeea
--- /dev/null
+++ b/packages/console/app/src/asset/brand/opencode-wordmark-dark.svg
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/console/app/src/asset/brand/opencode-wordmark-light.png b/packages/console/app/src/asset/brand/opencode-wordmark-light.png
new file mode 100644
index 00000000..f53607f7
Binary files /dev/null and b/packages/console/app/src/asset/brand/opencode-wordmark-light.png differ
diff --git a/packages/console/app/src/asset/brand/opencode-wordmark-light.svg b/packages/console/app/src/asset/brand/opencode-wordmark-light.svg
new file mode 100644
index 00000000..24a36c7c
--- /dev/null
+++ b/packages/console/app/src/asset/brand/opencode-wordmark-light.svg
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/console/app/src/asset/brand/opencode-wordmark-simple-dark.png b/packages/console/app/src/asset/brand/opencode-wordmark-simple-dark.png
new file mode 100644
index 00000000..2e600713
Binary files /dev/null and b/packages/console/app/src/asset/brand/opencode-wordmark-simple-dark.png differ
diff --git a/packages/console/app/src/asset/brand/opencode-wordmark-simple-dark.svg b/packages/console/app/src/asset/brand/opencode-wordmark-simple-dark.svg
new file mode 100644
index 00000000..170be57c
--- /dev/null
+++ b/packages/console/app/src/asset/brand/opencode-wordmark-simple-dark.svg
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/console/app/src/asset/brand/opencode-wordmark-simple-light.png b/packages/console/app/src/asset/brand/opencode-wordmark-simple-light.png
new file mode 100644
index 00000000..aa08768b
Binary files /dev/null and b/packages/console/app/src/asset/brand/opencode-wordmark-simple-light.png differ
diff --git a/packages/console/app/src/asset/brand/opencode-wordmark-simple-light.svg b/packages/console/app/src/asset/brand/opencode-wordmark-simple-light.svg
new file mode 100644
index 00000000..3c70adeb
--- /dev/null
+++ b/packages/console/app/src/asset/brand/opencode-wordmark-simple-light.svg
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/console/app/src/asset/brand/preview-opencode-dark.png b/packages/console/app/src/asset/brand/preview-opencode-dark.png
new file mode 100644
index 00000000..3c19242a
Binary files /dev/null and b/packages/console/app/src/asset/brand/preview-opencode-dark.png differ
diff --git a/packages/console/app/src/asset/brand/preview-opencode-logo-dark.png b/packages/console/app/src/asset/brand/preview-opencode-logo-dark.png
new file mode 100644
index 00000000..d1ef7137
Binary files /dev/null and b/packages/console/app/src/asset/brand/preview-opencode-logo-dark.png differ
diff --git a/packages/console/app/src/asset/brand/preview-opencode-logo-light.png b/packages/console/app/src/asset/brand/preview-opencode-logo-light.png
new file mode 100644
index 00000000..d77bbc38
Binary files /dev/null and b/packages/console/app/src/asset/brand/preview-opencode-logo-light.png differ
diff --git a/packages/console/app/src/asset/brand/preview-opencode-wordmark-dark.png b/packages/console/app/src/asset/brand/preview-opencode-wordmark-dark.png
new file mode 100644
index 00000000..58bcf936
Binary files /dev/null and b/packages/console/app/src/asset/brand/preview-opencode-wordmark-dark.png differ
diff --git a/packages/console/app/src/asset/brand/preview-opencode-wordmark-light.png b/packages/console/app/src/asset/brand/preview-opencode-wordmark-light.png
new file mode 100644
index 00000000..b39b7997
Binary files /dev/null and b/packages/console/app/src/asset/brand/preview-opencode-wordmark-light.png differ
diff --git a/packages/console/app/src/asset/brand/preview-opencode-wordmark-simple-dark.png b/packages/console/app/src/asset/brand/preview-opencode-wordmark-simple-dark.png
new file mode 100644
index 00000000..b2cc02bb
Binary files /dev/null and b/packages/console/app/src/asset/brand/preview-opencode-wordmark-simple-dark.png differ
diff --git a/packages/console/app/src/asset/brand/preview-opencode-wordmark-simple-light.png b/packages/console/app/src/asset/brand/preview-opencode-wordmark-simple-light.png
new file mode 100644
index 00000000..106ccaf4
Binary files /dev/null and b/packages/console/app/src/asset/brand/preview-opencode-wordmark-simple-light.png differ
diff --git a/packages/console/app/src/asset/lander/brand.png b/packages/console/app/src/asset/lander/brand.png
index 6172775e..9c1653ed 100644
Binary files a/packages/console/app/src/asset/lander/brand.png and b/packages/console/app/src/asset/lander/brand.png differ
diff --git a/packages/console/app/src/component/legal.tsx b/packages/console/app/src/component/legal.tsx
index b55a20d3..c055977e 100644
--- a/packages/console/app/src/component/legal.tsx
+++ b/packages/console/app/src/component/legal.tsx
@@ -1,3 +1,5 @@
+import { A } from "@solidjs/router"
+
export function Legal() {
return (
)
diff --git a/packages/console/app/src/routes/brand/index.css b/packages/console/app/src/routes/brand/index.css
index 7c85a7ed..042e26ec 100644
--- a/packages/console/app/src/routes/brand/index.css
+++ b/packages/console/app/src/routes/brand/index.css
@@ -294,10 +294,12 @@
cursor: pointer;
display: flex;
width: fit-content;
- gap: 32px;
+ align-items: center;
+ gap: 12px;
transition: background-color 0.2s ease;
text-decoration: none;
+
&:hover:not(:disabled) {
background: var(--color-background-strong-hover);
}
@@ -308,14 +310,83 @@
}
}
- img {
- width: 100%;
- height: auto;
- display: block;
+ [data-component="brand-grid"] {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
+ gap: 2rem;
margin-top: 4rem;
margin-bottom: 2rem;
}
+ [data-component="brand-grid"] img {
+ width: 100%;
+ height: auto;
+ display: block;
+ border-radius: 4px;
+ border: 1px solid var(--color-border-weak);
+ }
+
+ [data-component="brand-grid"] > div {
+ position: relative;
+ }
+
+ [data-component="actions"] {
+ position: absolute;
+ background: rgba(4, 0, 0, 0.08);
+ border-radius: 4px;
+ bottom: 0;
+ right: 0;
+ top: 0;
+ left: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ gap: 16px;
+ opacity: 0;
+ transition: opacity 0.2s ease;
+
+ @media (max-width: 60rem) {
+ position: static;
+ opacity: 1;
+ margin-top: 1rem;
+ justify-content: center;
+ }
+ }
+
+ [data-component="brand-grid"] > div:hover [data-component="actions"] {
+ opacity: 1;
+
+ @media (max-width: 60rem) {
+ opacity: 1;
+ }
+ }
+
+ [data-component="actions"] button {
+ padding: 6px 12px;
+ background: var(--color-background);
+ color: var(--color-text);
+ border: none;
+ border-radius: 4px;
+ font-weight: 500;
+ display: flex;
+ align-items: center;
+ gap: 12px;
+ transition: background-color 0.2s ease;
+ cursor: pointer;
+ box-shadow:
+ 0 0 0 1px rgba(19, 16, 16, 0.08),
+ 0 6px 8px -4px rgba(19, 16, 16, 0.12),
+ 0 4px 3px -2px rgba(19, 16, 16, 0.12),
+ 0 1px 2px -1px rgba(19, 16, 16, 0.12);
+
+
+ &:hover {
+ background: var(--color-background);
+ }
+ }
+
+
+
@media (max-width: 60rem) {
padding: 2rem 1.5rem;
}
diff --git a/packages/console/app/src/routes/brand/index.tsx b/packages/console/app/src/routes/brand/index.tsx
index 53ce22bb..4109b68f 100644
--- a/packages/console/app/src/routes/brand/index.tsx
+++ b/packages/console/app/src/routes/brand/index.tsx
@@ -3,11 +3,23 @@ import { Title, Meta } from "@solidjs/meta"
import { Header } from "~/component/header"
import { Footer } from "~/component/footer"
import { Legal } from "~/component/legal"
-import { Faq } from "~/component/faq"
-import brand from "../../asset/lander/brand.png"
+import previewLogoLight from "../../asset/brand/preview-opencode-logo-light.png"
+import previewLogoDark from "../../asset/brand/preview-opencode-logo-dark.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"
export default function Brand() {
+ const downloadFile = (url: string, filename: string) => {
+ const link = document.createElement("a")
+ link.href = url
+ link.download = filename
+ document.body.appendChild(link)
+ link.click()
+ document.body.removeChild(link)
+ }
return (
@@ -19,82 +31,183 @@ export default function Brand() {
Brand guidelines
-
- Resources and assets to help you work with the OpenCode brand.
-
- Download brand assets
-
-
-
-
+ Resources and assets to help you work with the OpenCode brand.
+
+ Download all assets
+
+
+
+
- If you need any help with anything brand related contact us .
-
-
-
-
-
FAQ
+
+
+
+
+
downloadFile(LogoLight, "opencode-logo-light.png")}>
+ PNG
+
+
+
+
+
downloadFile(brandAssetsLight, "opencode-logo-light.svg")}>
+ SVG
+
+
+
+
+
+
+
+
+
+
downloadFile(brand, "opencode-logo-dark.png")}>
+ PNG
+
+
+
+
+
downloadFile(brandAssetsLight, "opencode-logo-dark.svg")}>
+ SVG
+
+
+
+
+
+
+
+
+
+
downloadFile(brand, "opencode-wordmark-light.png")}>
+ PNG
+
+
+
+
+
downloadFile(brandAssetsLight, "opencode-wordmark-light.svg")}>
+ SVG
+
+
+
+
+
+
+
+
+
+
downloadFile(brand, "opencode-wordmark-dark.png")}>
+ PNG
+
+
+
+
+
downloadFile(brandAssetsLight, "opencode-wordmark-dark.svg")}>
+ SVG
+
+
+
+
+
+
+
+
+
+
downloadFile(brand, "opencode-wordmark-simple-light.png")}>
+ PNG
+
+
+
+
+
downloadFile(brandAssetsLight, "opencode-wordmark-simple-light.svg")}>
+ SVG
+
+
+
+
+
+
+
+
+
+
downloadFile(brand, "opencode-wordmark-simple-dark.png")}>
+ PNG
+
+
+
+
+
downloadFile(brandAssetsLight, "opencode-wordmark-simple-dark.svg")}>
+ SVG
+
+
+
+
+
+
-
-
-
- No. OpenCode never stores your code or context data. All
- processing happens locally or directly with your AI provider.
-
-
-
-
- You do. All code produced is yours, with no licensing
- restrictions or ownership claims.
-
-
-
-
- Simply install and run an internal trial with your team. Since
- OpenCode doesn’t store any data, your developers can get
- started right away.
-
-
-
-
- By default, sharing is disabled. If enabled, conversations are
- sent to our share service and cached through our CDN. For
- enterprise use, we recommend disabling or self-hosting this
- feature.
-
-
-
-
- Yes. Enterprise deployments can include SSO integration so all
- sessions and shared conversations are protected by your
- authentication system.
-
-
-
-
- Absolutely. You can fully self-host OpenCode, including the
- share feature, ensuring that data and pages are accessible
- only after authentication.
-
-
-
-
- Contact us to discuss pricing, implementation, and enterprise
- options like SSO, private registries, and self-hosting.
-
-
-
-
+
-
+
)
}