Skip to content

Commit c431684

Browse files
committed
docs(site): rebrand to docker.com / docs.docker.com style
Bring the docs site in line with Docker's official design system and rewrite the homepage so first-time visitors can answer "what is this and why should I care?" in under 30 seconds. No application/runtime code is touched — every change is in `docs/`. ## Branding * **Fonts** — switch from Inter / JetBrains Mono to **Roboto Flex** (the variable-axis sans docs.docker.com self-hosts) and **Roboto Mono**. Both pulled from Google Fonts. * **Color tokens** — introduce a structured palette of named tokens derived from the official brand kit (Docker-Logos-1.zip): --blue-100..700 anchored on Ocean Blue `#2560FF` --navy-900..600 anchored on Deep Blue `#00153C` --gray-100..900 lifted verbatim from docs.docker.com (#E7EAEF, #C8CFDA, …, #1E2129) so chrome feels like the same family. * **Dark theme** matches docs.docker.com: neutral charcoal page bg `#10151B`, sidebar/cards `#1E2129`, body text `#C8CFDA`, headings white, links `#4B83F1`. Brand navy is reserved for the hero, the primary button and the info-callout dark backgrounds. * **Light theme** also calibrated to docs.docker.com: page+sidebar+ main on the same `#E7EAEF` (gray-100) surface (matches their footer / navbar-active), cards on white, headings `#1F242D`, body copy `#3F4750` (their `oklch(37.3% .034 259.733)`). * **Moby mark** — the hand-authored whale SVG didn't match Docker's official asset (it was missing the eight containers stacked on the whale's back). Ship the actual `docker-mark-ocean-blue.svg` from the brand kit instead, plus a white variant for dark backgrounds. * **Callouts** — redesigned in docs.docker.com style: rounded panel with a filled circular icon badge in the top-left and a strong title row. `info`, `tip` and `warning` now match the same exact background colors docs.docker.com uses in dark mode (`#00153C`, `#11371A`, `#643700`). * **Header** — Docker Agent wordmark + Moby mark, left-aligned at the page padding edge so it doesn't drift on wide monitors. * **Sidebar** — value tagline at the top ("Run AI agents like containers."), nav links at 16px / weight 400 (was 13.2px), pure white sidebar text on dark mode for higher contrast. * **Right-column TOC** — restyled like docs.docker.com: "Edit this page" link with pencil icon at the top, pointing at GitHub's web editor (resolved at build time via `<meta name="docs-edit-url">` and `{{ page.path }}`). "Table of contents" heading at `1.05rem` weight 500 (was a tiny uppercase eyebrow). Links at `.875rem`, gray-600 / gray-100, with a 2px gray-300 left-border + weight 500 on the active entry. * **Ecosystem footer** — three-column footer with links to Docker Desktop, Hub, Scout, Build Cloud, docs.docker.com, the agent catalog on Hub, the Docker blog, status, terms and privacy. * **Page chrome** — light-theme code blocks honor the theme (warm `#F6F8FA` + matching syntax palette); footer is moved out of `<main>` so it isn't part of the ARIA `main` landmark; skip-link target gets `scroll-margin-top` so keyboard users land below the header. ## Messaging * **Hero** leads with the docker-run analogy: > **Docker Agent is to AI agents what `docker run` is to containers.** > Define an agent in a YAML file, run it with one command, share it > through any OCI registry — the same workflow you already use for > images. * **Demo GIF** moved above the fold so the TUI is visible without scrolling. * **30-second elevator panel** — four cards under the hero: what it is / what it isn't / who it's for / what you get. * **Without / With Docker Agent** code comparison: ~30 lines of Python+Anthropic glue versus 8 lines of YAML + `docker agent run`. * **"Why" rows** — abstract copy replaced with concrete pain → fix pairs ("I rebuilt the same agent loop in three projects" → "Reusable YAML, declare once, run everywhere"). * **Use cases** — a 4-card row showing the typical shapes (coding / ops / data / custom workflows), each linking to the most relevant follow-up page. * **How it works** — adds an SVG flow diagram (`agent.yaml → docker agent run → [Model ↔ Tools ↔ Sub-agents] → stream`) using `currentColor` so it reads in both themes. * **Glossary box** explaining Agent / Tool / MCP / A2A / TUI / OCI inline so first-time readers don't bounce on the jargon. * **Ecosystem tiles** — cross-links to Docker Hub (agent catalog), Docker Desktop, Docker Model Runner and Docker Scout, anchoring Docker Agent in the broader product family. * **Icon set** — emoji feature/usecase/card icons replaced with Lucide-style line icons in tinted Docker-Blue squares. * **STYLE.md** — added to codify "Docker Agent" (prose) vs `docker agent` (CLI) naming, voice, code samples and a small glossary so subsequent contributors don't have to guess. The introduction and quickstart pages are reconciled to the new convention. * **Bulk callout edit** — every `<div class="callout-title">` across 56 content pages had its leading `ℹ️ / 💡 / ⚠️` emoji stripped, because the new icon-badge callout already provides one. ## Meta * `<title>` and meta description tightened for SEO: home page now reads "Docker Agent — Run AI agents from YAML, like containers" and the description fits Google's ~155-char snippet budget. `og:site_name` and Twitter card metadata added for nicer link previews.
1 parent df21b52 commit c431684

68 files changed

Lines changed: 1430 additions & 320 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ _site/
33
.jekyll-cache/
44
.jekyll-metadata
55
vendor/
6+
.bundle/
67
Gemfile.lock
78
node_modules/
89
pages/

docs/STYLE.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# Documentation style guide
2+
3+
A short reference for writers and reviewers. Goal: keep voice, naming
4+
and examples consistent across every page on this site.
5+
6+
## Product naming
7+
8+
| Context | Use | Don't use |
9+
|---|---|---|
10+
| Prose, headings, marketing | **Docker Agent** (two words, both capitalised — the proper name of the product) | docker-agent, Docker-Agent, docker agent (in prose) |
11+
| The CLI command | `docker agent` (lower-case, two words, in monospace) | `docker-agent`, `Docker Agent run` |
12+
| The repository / module path | `docker/docker-agent` | docker/Docker-Agent |
13+
| Internal identifiers / package names | as defined in code (e.g. `cagent`) — never invent new spellings in prose | mixing internal identifiers into user-facing copy |
14+
15+
A simple rule of thumb:
16+
- **Talking about the product?** → "Docker Agent"
17+
- **Showing a command the user types?**`docker agent run agent.yaml`
18+
19+
## Voice
20+
21+
- Address the reader as **you**, not "we" or "the user".
22+
- Prefer present tense and active voice ("the agent reads files",
23+
not "files will be read by the agent").
24+
- Keep sentences short. Two short sentences usually beat one compound
25+
one.
26+
- Avoid "simply", "just", "easily" — they're rarely accurate and
27+
often condescending.
28+
29+
## Code samples
30+
31+
- All shell prompts use `$ ` (dollar + space) and the command on the
32+
same line. Output, when shown, has no prompt.
33+
- YAML/HCL examples should be runnable as-is when reasonable, or end
34+
in `# ...` to make truncation explicit.
35+
- The canonical example agent uses `model: anthropic/claude-sonnet-4-5`.
36+
Use a different model only when the example is *about* that model.
37+
- File names in prose are in `monospace` (`agent.yaml`, not "agent.yaml").
38+
39+
## Callouts
40+
41+
Use the existing pattern; the new visual style does the rest:
42+
43+
```markdown
44+
<div class="callout callout-tip" markdown="1">
45+
<div class="callout-title">When to use it</div>
46+
<p>Body text.</p>
47+
</div>
48+
```
49+
50+
- `callout-info` — neutral context
51+
- `callout-tip` — positive, "consider this"
52+
- `callout-warning` — caution, breaking, security
53+
54+
Don't prefix the title with an emoji — the icon badge already provides
55+
one.
56+
57+
## Glossary one-liners
58+
59+
When a page first introduces a term, link to its concept page or use
60+
one of these standard one-liners:
61+
62+
- **Agent** — an LLM with instructions, tools, and (optionally)
63+
sub-agents, defined in YAML or HCL.
64+
- **Toolset** — a group of related tools the agent can call (e.g.
65+
`filesystem`, `shell`, `mcp`).
66+
- **MCP** — Model Context Protocol, an open standard for tool servers.
67+
- **A2A** — Agent-to-Agent protocol, used to talk to other agents
68+
over HTTP.
69+
- **TUI** — Terminal User Interface, the default interactive front end
70+
Docker Agent ships with.
71+
- **OCI** — Open Container Initiative; the same registry format used
72+
for Docker images. Docker Agent reuses it for sharing agents.

docs/_config.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
title: Docker Agent
2-
description: Build, run, and share powerful AI agents with a declarative YAML config, rich tool ecosystem, and multi-agent orchestration — by Docker.
2+
tagline: Run AI agents like containers.
3+
description: Run AI agents from a YAML file. Define them once, share them through any OCI registry, and run them anywhere — by Docker.
34
url: "https://docker.github.io"
45
baseurl: "/docker-agent"
56

@@ -25,6 +26,7 @@ relative_links:
2526
exclude:
2627
- DEVELOPMENT.md
2728
- TODO.md
29+
- STYLE.md
2830
- recordings/
2931
- Gemfile
3032
- Gemfile.lock

docs/_includes/footer.html

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<footer class="site-footer" role="contentinfo">
2+
<div class="site-footer-inner">
3+
<div class="site-footer-brand">
4+
<img src="{{ '/assets/docker-mark.svg' | relative_url }}" alt="" width="28" height="22">
5+
<div>
6+
<div class="site-footer-product">Docker Agent</div>
7+
<div class="site-footer-tagline">Run AI agents like containers.</div>
8+
</div>
9+
</div>
10+
11+
<div class="site-footer-cols">
12+
<div class="site-footer-col">
13+
<h4>Product</h4>
14+
<ul>
15+
<li><a href="https://www.docker.com/products/docker-desktop/" target="_blank" rel="noopener">Docker Desktop</a></li>
16+
<li><a href="https://hub.docker.com" target="_blank" rel="noopener">Docker Hub</a></li>
17+
<li><a href="https://www.docker.com/products/docker-scout/" target="_blank" rel="noopener">Docker Scout</a></li>
18+
<li><a href="https://www.docker.com/products/build-cloud/" target="_blank" rel="noopener">Build Cloud</a></li>
19+
</ul>
20+
</div>
21+
<div class="site-footer-col">
22+
<h4>Resources</h4>
23+
<ul>
24+
<li><a href="https://docs.docker.com" target="_blank" rel="noopener">Docker Docs</a></li>
25+
<li><a href="https://github.com/docker/docker-agent" target="_blank" rel="noopener">GitHub</a></li>
26+
<li><a href="https://hub.docker.com/u/agentcatalog" target="_blank" rel="noopener">Agent Catalog</a></li>
27+
<li><a href="https://www.docker.com/blog/" target="_blank" rel="noopener">Blog</a></li>
28+
</ul>
29+
</div>
30+
<div class="site-footer-col">
31+
<h4>Company</h4>
32+
<ul>
33+
<li><a href="https://www.docker.com/company/" target="_blank" rel="noopener">About</a></li>
34+
<li><a href="https://status.docker.com" target="_blank" rel="noopener">Status</a></li>
35+
<li><a href="https://www.docker.com/legal/docker-terms-service/" target="_blank" rel="noopener">Terms</a></li>
36+
<li><a href="https://www.docker.com/legal/docker-privacy-policy/" target="_blank" rel="noopener">Privacy</a></li>
37+
</ul>
38+
</div>
39+
</div>
40+
</div>
41+
<div class="site-footer-bottom">
42+
<span>&copy; {{ site.time | date: '%Y' }} Docker Inc. All rights reserved.</span>
43+
<span>Docker Agent is open source under the <a href="https://github.com/docker/docker-agent/blob/main/LICENSE" target="_blank" rel="noopener">Apache 2.0 license</a>.</span>
44+
</div>
45+
</footer>

docs/_includes/header.html

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,8 @@
22
<header class="header" role="banner">
33
<div class="header-inner">
44
<a href="{{ '/' | relative_url }}" class="header-logo" aria-label="Docker Agent docs home">
5-
<!-- Docker whale logo -->
6-
<svg viewBox="0 0 50 36" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
7-
<path d="M48.3 16.5c-.3-.2-2.6-1.3-5.1-1.3-.5 0-1 0-1.5.1-.6-2.2-2.6-3.2-2.7-3.3l-.5-.3-.3.5c-.4.8-.7 1.7-.8 2.6-.3 1.8.1 3.5 1.2 4.9-1.8 1-4.7 1.3-5.3 1.3H1.2c-.7 0-1.2.5-1.2 1.2 0 4.4 1.8 8.8 5.2 12C8.5 37.2 13.2 39 19 39c12.5 0 21.7-7.3 26-20.4 1.7 0 3.3-.5 4.1-2.1l.2-.4-.3-.2zM5.3 19.8H9c.2 0 .3-.1.3-.3v-3.8c0-.2-.1-.3-.3-.3H5.3c-.2 0-.3.1-.3.3v3.8c0 .1.1.3.3.3zm5 0h3.8c.2 0 .3-.1.3-.3v-3.8c0-.2-.1-.3-.3-.3h-3.8c-.2 0-.3.1-.3.3v3.8c0 .1.1.3.3.3zm5.1 0h3.8c.2 0 .3-.1.3-.3v-3.8c0-.2-.1-.3-.3-.3h-3.8c-.2 0-.3.1-.3.3v3.8c0 .1.1.3.3.3zm5.1 0h3.8c.2 0 .3-.1.3-.3v-3.8c0-.2-.1-.3-.3-.3h-3.8c-.2 0-.3.1-.3.3v3.8c0 .1.1.3.3.3zm-10.2-5h3.8c.2 0 .3-.1.3-.3v-3.8c0-.2-.1-.3-.3-.3h-3.8c-.2 0-.3.1-.3.3v3.8c0 .2.1.3.3.3zm5.1 0h3.8c.2 0 .3-.1.3-.3v-3.8c0-.2-.1-.3-.3-.3h-3.8c-.2 0-.3.1-.3.3v3.8c0 .2.1.3.3.3zm5.1 0h3.8c.2 0 .3-.1.3-.3v-3.8c0-.2-.1-.3-.3-.3h-3.8c-.2 0-.3.1-.3.3v3.8c0 .2.1.3.3.3zm0-5h3.8c.2 0 .3-.1.3-.3V5.7c0-.2-.1-.3-.3-.3h-3.8c-.2 0-.3.1-.3.3v3.8c0 .2.1.3.3.3zm5.1 5h3.8c.2 0 .3-.1.3-.3v-3.8c0-.2-.1-.3-.3-.3h-3.8c-.2 0-.3.1-.3.3v3.8c0 .2.1.3.3.3z" fill="#1D63ED"/>
8-
</svg>
9-
<span>Docker Agent</span>
10-
<span class="logo-divider"></span>
11-
<span class="logo-label">Docs</span>
5+
<img class="docker-mark" src="{{ '/assets/docker-mark.svg' | relative_url }}" alt="" width="32" height="25">
6+
<span class="product-name">Docker Agent</span>
127
</a>
138

149
<div class="header-actions">

docs/_layouts/default.html

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,37 @@
33
<head>
44
<meta charset="UTF-8">
55
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6-
<title>{% if page.title %}{{ page.title }} – Docker Agent Docs{% else %}Docker Agent – Documentation{% endif %}</title>
6+
<title>{% if page.title and page.url != '/' %}{{ page.title }} – Docker Agent Docs{% else %}Docker Agent — Run AI agents from YAML, like containers{% endif %}</title>
77
<meta name="description" content="{{ page.description | default: site.description }}">
88

9-
<meta property="og:title" content="{% if page.title %}{{ page.title }} – Docker Agent Docs{% else %}Docker Agent – Documentation{% endif %}">
9+
{% comment %}
10+
Source path of the current page on disk, used by the right-column
11+
\"Edit this page\" link in js/app.js. We point at GitHub's web editor
12+
on the configured repo + branch.
13+
{% endcomment %}
14+
<meta name="docs-edit-url" content="https://github.com/docker/docker-agent/edit/main/docs/{{ page.path | replace_first: 'docs/', '' | default: 'index.md' }}">
15+
16+
<meta property="og:title" content="{% if page.title and page.url != '/' %}{{ page.title }} – Docker Agent Docs{% else %}Docker Agent — Run AI agents from YAML, like containers{% endif %}">
1017
<meta property="og:description" content="{{ page.description | default: site.description }}">
1118
<meta property="og:type" content="{% if page.url == '/' %}website{% else %}article{% endif %}">
1219
<meta property="og:url" content="{{ page.url | absolute_url }}">
20+
<meta property="og:site_name" content="Docker Agent Docs">
21+
<meta name="twitter:card" content="summary_large_image">
22+
<meta name="twitter:site" content="@docker">
1323

1424
<link rel="preconnect" href="https://fonts.googleapis.com">
1525
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
16-
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
26+
<link href="https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..900&family=Roboto+Mono:wght@400;500&display=swap" rel="stylesheet">
1727
<link rel="stylesheet" href="{{ '/css/style.css' | relative_url }}">
18-
<!-- Docker whale favicon -->
19-
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 36' fill='none'%3E%3Cpath d='M48.3 16.5c-.3-.2-2.6-1.3-5.1-1.3-.5 0-1 0-1.5.1-.6-2.2-2.6-3.2-2.7-3.3l-.5-.3-.3.5c-.4.8-.7 1.7-.8 2.6-.3 1.8.1 3.5 1.2 4.9-1.8 1-4.7 1.3-5.3 1.3H1.2c-.7 0-1.2.5-1.2 1.2 0 4.4 1.8 8.8 5.2 12C8.5 37.2 13.2 39 19 39c12.5 0 21.7-7.3 26-20.4 1.7 0 3.3-.5 4.1-2.1l.2-.4-.3-.2zM5.3 19.8H9c.2 0 .3-.1.3-.3v-3.8c0-.2-.1-.3-.3-.3H5.3c-.2 0-.3.1-.3.3v3.8c0 .1.1.3.3.3zm5 0h3.8c.2 0 .3-.1.3-.3v-3.8c0-.2-.1-.3-.3-.3h-3.8c-.2 0-.3.1-.3.3v3.8c0 .1.1.3.3.3zm5.1 0h3.8c.2 0 .3-.1.3-.3v-3.8c0-.2-.1-.3-.3-.3h-3.8c-.2 0-.3.1-.3.3v3.8c0 .1.1.3.3.3zm5.1 0h3.8c.2 0 .3-.1.3-.3v-3.8c0-.2-.1-.3-.3-.3h-3.8c-.2 0-.3.1-.3.3v3.8c0 .1.1.3.3.3zm-10.2-5h3.8c.2 0 .3-.1.3-.3v-3.8c0-.2-.1-.3-.3-.3h-3.8c-.2 0-.3.1-.3.3v3.8c0 .2.1.3.3.3zm5.1 0h3.8c.2 0 .3-.1.3-.3v-3.8c0-.2-.1-.3-.3-.3h-3.8c-.2 0-.3.1-.3.3v3.8c0 .2.1.3.3.3zm5.1 0h3.8c.2 0 .3-.1.3-.3v-3.8c0-.2-.1-.3-.3-.3h-3.8c-.2 0-.3.1-.3.3v3.8c0 .2.1.3.3.3zm0-5h3.8c.2 0 .3-.1.3-.3V5.7c0-.2-.1-.3-.3-.3h-3.8c-.2 0-.3.1-.3.3v3.8c0 .2.1.3.3.3zm5.1 5h3.8c.2 0 .3-.1.3-.3v-3.8c0-.2-.1-.3-.3-.3h-3.8c-.2 0-.3.1-.3.3v3.8c0 .2.1.3.3.3z' fill='%231D63ED'/%3E%3C/svg%3E">
28+
<link rel="icon" type="image/svg+xml" href="{{ '/assets/docker-mark.svg' | relative_url }}">
2029
</head>
2130
<body>
2231
<a href="#page-content" class="skip-link">Skip to content</a>
2332

2433
{% include header.html %}
2534

2635
<nav class="sidebar" id="sidebar" role="navigation" aria-label="Documentation navigation">
36+
<div class="sidebar-tagline">{{ site.tagline | default: 'Run AI agents like containers.' }}</div>
2737
{% for group in site.data.nav %}
2838
<div class="sidebar-section">
2939
<div class="sidebar-heading">{{ group.section }}</div>
@@ -38,13 +48,15 @@
3848
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
3949
</button>
4050

41-
<main class="main" role="main">
51+
<main class="main" id="main-content" role="main">
4252
<div class="content" id="page-content">
4353
{{ content }}
4454
{% unless page.url == '/' %}{% include page-nav.html %}{% endunless %}
4555
</div>
4656
</main>
4757

58+
{% include footer.html %}
59+
4860
<div class="search-overlay" id="search-overlay" role="dialog" aria-label="Search documentation" aria-modal="true">
4961
<div class="search-modal">
5062
<input type="text" id="search-modal-input" placeholder="Search documentation…" aria-label="Search query">

docs/assets/docker-mark-white.svg

Lines changed: 25 additions & 0 deletions
Loading

docs/assets/docker-mark.svg

Lines changed: 25 additions & 0 deletions
Loading

docs/assets/how-it-works.svg

Lines changed: 80 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)