Skip to content

Commit e0e733f

Browse files
Andrey Cheptsovclaude
andcommitted
Products menu: Documentation CTA, new product icons, button hover
Featured CTA is now "Documentation" linking to the docs overview (DOCS_URL) instead of "Install open-source". Product icons: dstack Sky → cloud-upload, Enterprise → fingerprint, drawn at 24-viewBox / 1.8 stroke and rendered at 20px for cleaner proportions. Hovering anywhere on the featured panel shifts only the Documentation button's background (the section itself doesn't change), matching the hero CTAs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 1cf8255 commit e0e733f

2 files changed

Lines changed: 27 additions & 15 deletions

File tree

website/src/components/SiteNavigation.tsx

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import SpaceBetween from '@cloudscape-design/components/space-between';
77
import { menuButtonStyle } from '../cloudscape-theme';
88
import { ThemeToggle } from './ThemeToggle';
99
import { asset } from '../asset';
10-
import { BLOG_URL, DOCS_URL, ROUTES, docsUrl } from '../routes';
10+
import { BLOG_URL, DOCS_URL, ROUTES } from '../routes';
1111
import { ThemeMode } from '../theme';
1212

1313
const dstackGithubUrl = 'https://github.com/dstackai/dstack';
@@ -27,15 +27,21 @@ const GithubGlyph = () => (
2727
<path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82a7.6 7.6 0 0 1 2-.27c.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8z" />
2828
</svg>
2929
);
30-
const CloudGlyph = () => (
31-
<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" strokeWidth={1.5} strokeLinejoin="round" aria-hidden="true">
32-
<path d="M6.2 15h8a3.1 3.1 0 0 0 .4-6.16A4.3 4.3 0 0 0 6.6 7.2 3.5 3.5 0 0 0 6.2 15z" />
30+
const CloudUploadGlyph = () => (
31+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth={1.8} strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
32+
<path d="M4 14.899A6 6 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 .5 8.973" />
33+
<path d="M12 12v8" />
34+
<path d="m8 16 4-4 4 4" />
3335
</svg>
3436
);
35-
const ShieldGlyph = () => (
36-
<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" strokeWidth={1.5} strokeLinejoin="round" aria-hidden="true">
37-
<path d="M10 2.6 4.6 4.8v4.5c0 3.4 2.3 5.9 5.4 7 3.1-1.1 5.4-3.6 5.4-7V4.8z" />
38-
<path d="m7.7 9.8 1.7 1.7 3-3.2" strokeLinecap="round" />
37+
const FingerprintGlyph = () => (
38+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth={1.8} strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
39+
<path d="M12 10a2 2 0 0 0-2 2c0 1.5.4 3 1 4.3" />
40+
<path d="M12 6.5A5.5 5.5 0 0 0 6.5 12c0 2 .4 3.5 1.1 5" />
41+
<path d="M12 14v3.5" />
42+
<path d="M15.6 8.4A5.5 5.5 0 0 1 17.5 12c0 2.2-.5 4.3-1.3 6" />
43+
<path d="M12 3a9 9 0 0 0-9 9" />
44+
<path d="M21 12a9 9 0 0 0-3-6.7" />
3945
</svg>
4046
);
4147

@@ -61,9 +67,9 @@ type ProductLink = {
6167
// follow as rows. Reused by the standalone top-nav hover menu and the mobile nav's "Products"
6268
// section.
6369
const products: ProductLink[] = [
64-
{ id: 'open-source', text: 'dstack', secondaryText: 'The open-source control plane that works across clouds, Kubernetes, and on-prem.', href: docsUrl('installation'), icon: <GithubGlyph /> },
65-
{ id: 'sky-product', text: 'dstack Sky', secondaryText: 'Access GPU marketplace, or bring your own clouds. Hosted and managed by us.', href: 'https://sky.dstack.ai', external: true, icon: <CloudGlyph /> },
66-
{ id: 'enterprise', text: 'Enterprise', secondaryText: 'Self-hosted with SSO, air-gapped setup, dedicated support, and more.', href: 'https://calendly.com/dstackai/discovery-call', external: true, icon: <ShieldGlyph /> },
70+
{ id: 'open-source', text: 'dstack', secondaryText: 'The open-source control plane that works across clouds, Kubernetes, and on-prem.', href: DOCS_URL, icon: <GithubGlyph /> },
71+
{ id: 'sky-product', text: 'dstack Sky', secondaryText: 'Access GPU marketplace, or bring your own clouds. Hosted and managed by us.', href: 'https://sky.dstack.ai', external: true, icon: <CloudUploadGlyph /> },
72+
{ id: 'enterprise', text: 'Enterprise', secondaryText: 'Self-hosted with SSO, air-gapped setup, dedicated support, and more.', href: 'https://calendly.com/dstackai/discovery-call', external: true, icon: <FingerprintGlyph /> },
6773
];
6874

6975
// Items for the mobile slide-out navigation. The blog categories are top-level links (mirroring
@@ -151,7 +157,7 @@ function ProductsHoverMenu() {
151157
)}
152158
<span className="site-products-menu__feat-name">{products[0].text}</span>
153159
<span className="site-products-menu__feat-desc">{products[0].secondaryText}</span>
154-
<span className="site-products-menu__feat-cta">Install open-source</span>
160+
<span className="site-products-menu__feat-cta">Documentation</span>
155161
</a>
156162
<div className="site-products-menu__list">
157163
{products.slice(1).map(product => (

website/src/styles.css

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ p {
345345
border-radius: 12px;
346346
}
347347

348-
/* Featured open-source panel — brand gradient; the whole panel links to the install docs. */
348+
/* Featured open-source panel — brand gradient; the whole panel links to the docs. */
349349
.site-products-menu__feat {
350350
position: relative;
351351
display: block;
@@ -368,6 +368,8 @@ p {
368368
font-size: 13px;
369369
line-height: 1.5;
370370
}
371+
/* The "Documentation" button. Hovering anywhere on the featured panel changes the button's
372+
background (only the button reacts, not the whole section). */
371373
.site-products-menu__feat-cta {
372374
display: inline-flex;
373375
align-items: center;
@@ -378,6 +380,10 @@ p {
378380
color: #16191f;
379381
font-size: 12.5px;
380382
font-weight: 600;
383+
transition: background-color 0.15s ease;
384+
}
385+
.site-products-menu__feat:hover .site-products-menu__feat-cta {
386+
background: #e9ebef;
381387
}
382388

383389
/* Live GitHub star count, top-right of the featured panel (only shown once the API responds). */
@@ -428,8 +434,8 @@ p {
428434
color: var(--cs-text);
429435
}
430436
.site-products-menu__ic svg {
431-
width: 19px;
432-
height: 19px;
437+
width: 20px;
438+
height: 20px;
433439
}
434440
.site-products-menu__rbody {
435441
flex: 1 1 auto;

0 commit comments

Comments
 (0)