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
2 changes: 0 additions & 2 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -397,10 +397,8 @@ nav:
- llms-full.txt: https://dstack.ai/llms-full.txt
- skill.md: https://dstack.ai/skill.md
- Case studies: blog/case-studies.md
- Benchmarks: blog/benchmarks.md
- Blog:
- blog/index.md
- Discord: https://discord.gg/u8SmfwPpMd" target="_blank
# - Changelog: https://github.com/dstackai/dstack/releases" target="_blank
# - GitHub: https://github.com/dstackai/dstack" target="_blank
# - Sign in: https://sky.dstack.ai" target="_blank
281 changes: 175 additions & 106 deletions mkdocs/assets/stylesheets/cloudscape-docs.css
Original file line number Diff line number Diff line change
Expand Up @@ -204,15 +204,16 @@
white-space: nowrap;
}

/* GitHub → outlined "GitHub" with a trailing external-link glyph (no star count). */
[data-md-color-primary=white] .md-header__buttons .md-button--primary.github,
[data-md-color-primary=white] .md-header__buttons .md-button--primary.github:hover {
/* GitHub → outlined (normal) "GitHub" with a trailing external-link glyph. Weight 700 so it matches
the filled "Get started" trigger beside it (the two now read as one type, different fills). */
[data-md-color-primary=white] .md-header__buttons .md-button--primary.github {
background: transparent;
color: var(--cs-text);
border: 1px solid var(--cs-border);
font-weight: 700 !important;
}

/* Gap between GitHub and Get started → 20px to match /old (was 5px). */
/* Gap between GitHub and dstack Sky → 20px to match /old (was 5px). */
.md-header__buttons .md-button.github {
margin-right: 20px;
}
Expand All @@ -235,138 +236,206 @@
mask: var(--cs-ext-icon) center / contain no-repeat;
}

/* Get started → /old's split button (dark primary main + caret) with a dropdown menu. */
.md-header__buttons .cs-get-started {
position: relative;
display: inline-flex;
align-items: stretch;
margin-right: 5px;
}

[data-md-color-primary=white] .md-header__buttons .cs-get-started .md-button--primary,
[data-md-color-primary=white] .md-header__buttons .cs-get-started .md-button--primary:hover {
background: var(--cs-text);
color: var(--cs-bg);
border: 1px solid var(--cs-text);
margin: 0;
/* Primary (filled) button uses 500 weight per design — the GitHub outline button stays 700. */
font-weight: 500 !important;
/* Try dstack Sky → outlined (normal) pill with a trailing external-link glyph, sitting after
the now-filled GitHub button (the two swapped emphasis vs the old GitHub + Get started). */
[data-md-color-primary=white] .md-header__buttons .md-button--primary.cs-try-sky {
background: transparent;
color: var(--cs-text);
border: 1px solid var(--cs-border);
}

/* Hover states (Cloudscape): the outlined GitHub button fills subtly (NOT black — landing.css
forces `background:black !important` on primary hover, so these need !important too); the dark
Get-started button lightens to the button-hover token. */
[data-md-color-primary=white] .md-header__buttons .md-button--primary.github:hover {
[data-md-color-primary=white] .md-header__buttons .md-button--primary.cs-try-sky:hover {
background: var(--cs-hover) !important;
border-color: var(--cs-border) !important;
color: var(--cs-text) !important;
}
/* Hovering EITHER segment lights up BOTH (the whole pill reads as one button that opens the menu). */
[data-md-color-primary=white] .md-header__buttons .cs-get-started:hover .md-button--primary {
background: var(--cs-btn-hover) !important;
border-color: var(--cs-btn-hover) !important;
color: var(--cs-bg) !important;
.md-header__buttons .md-button.cs-try-sky::after {
content: "";
display: inline-block;
width: 16px;
height: 16px;
margin-left: 6px;
flex: 0 0 auto;
background-color: currentColor;
-webkit-mask: var(--cs-ext-icon) center / contain no-repeat;
mask: var(--cs-ext-icon) center / contain no-repeat;
}

.md-header__buttons .cs-get-started__main {
border-radius: 12px 0 0 12px !important;
border-right: 0 !important;
cursor: pointer;
/* No separator now, so pull the caret in close to the label (was 18px + the toggle's 6px). */
padding-right: 6px !important;
/* "Get started" header dropdown — mirrors the landing's Products popup (featured open-source +
dstack Sky + Enterprise). Pure-CSS hover/focus-within (the docs are static); right-aligned so the
panel never overflows the header's right edge. Reuses the --cs-* tokens (defined in extra.css). */
.cs-gs-menu {
position: relative;
display: inline-flex;
align-items: center;
}

/* No segment separator — the caret reads as part of the same button. */
.md-header__buttons .cs-get-started__toggle {
border-radius: 0 12px 12px 0 !important;
padding: 0 6px !important;
border-left: 0 !important;
cursor: pointer;
.cs-gs-menu__trigger {
display: inline-flex !important;
align-items: center;
gap: 5px;
/* the caret is lighter than a full glyph, so trim the trailing padding (was 18px). */
padding-right: 12px !important;
}

.md-header__buttons .cs-get-started__toggle svg {
width: 18px;
height: 18px;
fill: currentColor;
.cs-gs-menu__caret {
transition: transform 0.15s ease;
}

/* Matches the new landing / old Get-started popup (cloudscape-overrides.css): fixed 300px, flat
(no shadow), a single 0.5px cs-text border, 12px radius clipped to rounded corners. */
.md-header__buttons .cs-get-started__menu {
.cs-gs-menu:hover .cs-gs-menu__caret,
.cs-gs-menu:focus-within .cs-gs-menu__caret {
transform: rotate(180deg);
}
.cs-gs-menu__popup {
position: absolute;
top: calc(100% + 6px);
top: calc(100% + 8px);
right: 0;
min-width: 300px;
padding: 8px 0;
display: flex;
flex-direction: column;
z-index: 1000;
width: 360px;
padding: 6px;
background: var(--cs-bg);
border: 0.5px solid var(--cs-text);
border-radius: 12px;
box-shadow: none;
overflow: hidden;
z-index: 1000;
/* Match the landing dropdown's subpixel smoothing (Material defaults to antialiased = thinner). */
-webkit-font-smoothing: auto;
-moz-osx-font-smoothing: auto;
box-shadow: 0 12px 34px rgba(0, 0, 0, 0.14);
opacity: 0;
visibility: hidden;
transform: translateY(-4px);
transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
}
/* Invisible bridge over the 8px gap so the pointer can travel from trigger to popup. */
.cs-gs-menu__popup::before {
content: "";
position: absolute;
inset: -8px 0 auto 0;
height: 8px;
}

.md-header__buttons .cs-get-started__menu[hidden] {
display: none;
.cs-gs-menu:hover .cs-gs-menu__popup,
.cs-gs-menu:focus-within .cs-gs-menu__popup {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
/* Text inside the popup must wrap — Material forces white-space:nowrap on header links/buttons. */
.cs-gs-menu__popup,
.cs-gs-menu__feat,
.cs-gs-menu__row,
.cs-gs-menu__feat *,
.cs-gs-menu__row * {
white-space: normal !important;
}
.cs-gs-menu__feat {
position: relative;
display: flex;
align-items: flex-start;
gap: 12px;
padding: 14px;
border-radius: 10px;
background: linear-gradient(135deg, #002aff, #002aff, #e165fe);
color: #fff;
text-decoration: none;
}

/* Group headers ("Products" / "Login") → 15px / 300, ~5.5px vertical padding, like the landing. */
.md-header__buttons .cs-get-started__group {
padding: 5.5px 16px;
font-size: 15px;
font-weight: 300;
color: var(--cs-text);
.cs-gs-menu__feat-body {
flex: 1 1 auto;
min-width: 0;
}

/* Items → 4px/16px padding; a 15/600 heading-color title with an optional description below. */
.md-header__buttons .cs-get-started__menu a {
/* Left column: icon tile with the live star count centered beneath it (mirrors the landing). */
.cs-gs-menu__feat-iccol {
display: flex;
flex-direction: column;
padding: 4px 16px;
font-size: 15px;
align-items: center;
gap: 6px;
flex: 0 0 auto;
}
.cs-gs-menu__gh {
color: rgba(255, 255, 255, 0.88);
font-size: 12px;
font-weight: 600;
font-variant-numeric: tabular-nums;
}
.cs-gs-menu__feat-ic {
display: inline-flex;
align-items: center;
justify-content: center;
flex: 0 0 auto;
width: 34px;
height: 34px;
border-radius: 9px;
border: 0.5px solid rgba(255, 255, 255, 0.5);
color: #fff;
}
.cs-gs-menu__feat-ic svg {
width: 18px;
height: 18px;
}
.cs-gs-menu__feat-name {
display: block;
color: #fff;
font-size: 16px;
font-weight: 600;
}
.cs-gs-menu__feat-desc {
display: block;
margin-top: 8px;
color: rgba(255, 255, 255, 0.88);
font-size: 13px;
line-height: 1.5;
}
.cs-gs-menu__list {
display: flex;
flex-direction: column;
margin-top: 6px;
}
.cs-gs-menu__row {
display: flex;
align-items: flex-start;
gap: 12px;
padding: 11px 10px;
border-radius: 9px;
color: var(--cs-text);
text-decoration: none;
}
.md-header__buttons .cs-get-started__item-title {
color: var(--cs-nav-heading);
.cs-gs-menu__row:hover {
background: var(--cs-hover);
}
/* The generic external-link "↗" is an a::after rendered as a block, so the column flex dropped it
onto its own line below the description. Suppress it and put the icon inline after the TITLE
text instead (external items only), like the landing. */
.md-header__buttons .cs-get-started__menu a::after {
content: none !important;
display: none !important;
.cs-gs-menu__ic {
display: inline-flex;
align-items: center;
justify-content: center;
flex: 0 0 auto;
width: 34px;
height: 34px;
border-radius: 9px;
border: 0.5px solid var(--cs-text);
color: var(--cs-text);
}
.md-header__buttons .cs-get-started__menu a[target="_blank"] .cs-get-started__item-title::after {
content: "";
display: inline-block;
width: 13px;
height: 13px;
margin-left: 5px;
vertical-align: middle;
background-color: currentColor;
-webkit-mask: var(--cs-ext-icon) center / contain no-repeat;
mask: var(--cs-ext-icon) center / contain no-repeat;
.cs-gs-menu__ic svg {
width: 20px;
height: 20px;
}
/* Description: 13px / 300 / full text color (light weight reads muted) / 16px line-height, like
the landing's secondary text. */
.md-header__buttons .cs-get-started__item-desc {
margin-top: 1.5px;
font-size: 13px;
font-weight: 300;
line-height: 16px;
.cs-gs-menu__rbody {
flex: 1 1 auto;
min-width: 0;
}
.cs-gs-menu__name {
display: block;
color: var(--cs-text);
white-space: normal;
font-size: 15px;
font-weight: 600;
}
.cs-gs-menu__desc {
display: block;
margin-top: 3px;
color: var(--cs-muted);
font-size: 13px;
line-height: 1.5;
}
/* On tablet/mobile the header buttons collapse; keep the dropdown from overflowing tiny screens. */
@media (max-width: 76.1875em) {
.cs-gs-menu__popup { width: min(360px, calc(100vw - 32px)); }
}

.md-header__buttons .cs-get-started__menu a:hover {
background: var(--cs-hover);
/* GitHub hover: outlined button gets a faint tint (landing.css forces black !important on primary
hover, so these need !important to win). */
[data-md-color-primary=white] .md-header__buttons .md-button--primary.github:hover {
background: var(--cs-hover) !important;
border-color: var(--cs-border) !important;
color: var(--cs-text) !important;
}

/* Burger (desktop sidebar toggle) — far left, like /old. */
Expand Down
Loading
Loading