Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .changeset/studio-favicon.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
"@cloudhal/cli": patch
---
Studio has a favicon: the Cloudhal mark.
3 changes: 3 additions & 0 deletions apps/docs/astro.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,15 @@ export default defineConfig({
integrations: [
starlight({
title: "Cloudhal",
logo: { src: "./src/assets/mark.svg", alt: "" },
description: "Open-source, agent-native site platform.",
social: [
{ icon: "github", label: "GitHub", href: "https://github.com/cloudhal-dev/cloudhal" },
],
customCss: ["./src/styles/custom.css"],
head: [
{ tag: "link", attrs: { rel: "icon", href: "/favicon.ico", sizes: "32x32" } },
{ tag: "link", attrs: { rel: "apple-touch-icon", href: "/apple-touch-icon.png" } },
{
tag: "link",
attrs: { rel: "alternate", type: "text/markdown", href: "/llms.txt", title: "llms.txt" },
Expand Down
Binary file added apps/docs/public/apple-touch-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added apps/docs/public/favicon.ico
Binary file not shown.
2 changes: 1 addition & 1 deletion apps/docs/public/favicon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions apps/docs/src/assets/mark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions apps/studio/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Cloudhal Studio</title>
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
<link rel="icon" href="/favicon.ico" sizes="32x32" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<script>
// Apply the stored colour scheme (light, dark, or the OS's) before first paint; Kumo switches
// themes on data-mode (DESIGN.md §4). Keep the key in sync with src/lib/theme.ts.
Expand Down
Binary file added apps/studio/public/apple-touch-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added apps/studio/public/favicon.ico
Binary file not shown.
1 change: 1 addition & 0 deletions apps/studio/public/favicon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
31 changes: 31 additions & 0 deletions brand/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Cloudhal brand

The mark is the **Lens**: a calm, always-on eye in Cloudhal orange. It stands for an agent that watches, previews and waits for a person before anything goes live.

| File | Use |
|---|---|
| `mark.svg` | The mark in colour. Favicons, avatars, app icons |
| `mark-mono.svg` | One colour (`currentColor`), for single-colour print, stamps and embossing |
| `wordmark-light.svg`, `wordmark-dark.svg` | Mark and name, for light and dark backgrounds |
| `favicon.ico` (16, 32, 48), `apple-touch-icon.png` (180), `mark-512.png` | Raster sizes |
| `social-preview.html` → `social-preview.png` | The 1280×640 card for GitHub and link previews |

## Colours

| Name | Hex | Role |
|---|---|---|
| Cloudhal orange | `#b4441f` | The tile; accent on light backgrounds |
| Ember | `#5a200c` | The lens body |
| Glow | `#ee8a64` | The core; accent on dark backgrounds |
| Halo | `#f6c3ad` | The ring |
| Spark | `#fff4ec` | The pupil |
| Ink | `#1c1c1a` / `#141413` | Text and dark backgrounds |

## Rules

- Keep the mark square with its rounded corners (radius 14/64). Don't recolour the lens, add a frame, bevel or reflection, or turn it red.
- Clear space around the mark: at least a quarter of its width.
- Smallest size: 16 px.
- The name is written **Cloudhal**, one word, capital C only.

Rendering the PNGs: open the SVG or HTML in headless Chrome at the target size (see the commit that added this folder).
Binary file added brand/apple-touch-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added brand/favicon.ico
Binary file not shown.
Binary file added brand/mark-512.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions brand/mark-mono.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions brand/mark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 19 additions & 0 deletions brand/social-preview.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"><style>
*{margin:0;box-sizing:border-box}
body{width:1280px;height:640px;background:#141413;color:#ececea;font-family:-apple-system,"Helvetica Neue",Inter,sans-serif;display:flex;flex-direction:column;justify-content:space-between;padding:84px 96px;position:relative;overflow:hidden}
.glow{position:absolute;right:-180px;top:-200px;width:720px;height:720px;border-radius:50%;background:radial-gradient(circle,rgba(208,100,62,.38),rgba(208,100,62,0) 65%)}
.brand{display:flex;align-items:center;gap:22px;position:relative}
.mark{width:72px;height:72px;border-radius:16px;background:#b4441f;display:flex;align-items:center;justify-content:center}
.ring{width:38px;height:38px;border-radius:50%;border:6px solid #fff;display:flex;align-items:center;justify-content:center}
.dot{width:12px;height:12px;border-radius:50%;background:#fff}
.name{font-size:52px;font-weight:600;letter-spacing:-.5px}
h1{font-size:64px;line-height:1.1;font-weight:600;max-width:980px;position:relative}
h1 em{font-style:normal;color:#ee8a64}
.foot{display:flex;justify-content:space-between;align-items:flex-end;font-size:26px;color:#a3a39d;position:relative}
.pills{display:flex;gap:12px}
.pill{border:1.5px solid #3a3a37;border-radius:999px;padding:8px 18px;font-size:22px;color:#d6d6d2}
</style></head><body><div class="glow"></div>
<div class="brand"><img src="mark.svg" width="72" height="72" alt=""><div class="name">Cloudhal</div></div>
<h1>Sites your agents can build,<br><em>safely.</em></h1>
<div class="foot"><div class="pills"><span class="pill">MCP + policy engine</span><span class="pill">Snapshots &amp; rollback</span><span class="pill">Cloudflare or self-hosted</span></div><div>cloudhal.dev</div></div>
</body></html>
Binary file added brand/social-preview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions brand/wordmark-dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions brand/wordmark-light.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading