|
2 | 2 | import Footer from '$lib/components/marketing/Footer.svelte'; |
3 | 3 | import Header from '$lib/components/marketing/Header.svelte'; |
4 | 4 | import osIcons from '$lib/data/os-icons.json'; |
| 5 | + import { Icon } from '@gitbutler/ui'; |
5 | 6 | import type { Release } from '$lib/types/releases'; |
6 | 7 | import type { LatestReleaseBuilds } from '$lib/utils/releaseUtils'; |
7 | 8 |
|
|
51 | 52 | hour12: false |
52 | 53 | })} |
53 | 54 | </span> |
| 55 | + <span> • </span> |
| 56 | + <a |
| 57 | + href="https://github.com/gitbutlerapp/gitbutler/commit/{latestNightly.sha}" |
| 58 | + target="_blank" |
| 59 | + rel="noopener noreferrer" |
| 60 | + class="sha-link" |
| 61 | + > |
| 62 | + {latestNightly.sha.substring(0, 7)} |
| 63 | + </a> |
54 | 64 | </div> |
55 | 65 | <p class="nightly-hero__description"> |
56 | 66 | Experience GitButler's newest features before anyone else. Nightly builds are |
|
196 | 206 | class:expanded={expandedRelease === release.version} |
197 | 207 | onclick={() => toggleRelease(release.version)} |
198 | 208 | > |
199 | | - <span class="release-row__version">{release.version}</span> |
200 | | - <span class="release-row__date"> |
201 | | - {new Date(release.released_at).toLocaleDateString('en-GB', { |
202 | | - day: 'numeric', |
203 | | - month: 'short', |
204 | | - year: 'numeric' |
205 | | - })}, |
206 | | - {new Date(release.released_at).toLocaleTimeString('en-GB', { |
207 | | - hour: '2-digit', |
208 | | - minute: '2-digit', |
209 | | - hour12: false |
210 | | - })} |
211 | | - </span> |
| 209 | + <div class="release-row__chevron" class:expanded={expandedRelease === release.version}> |
| 210 | + <Icon name="chevron-right" /> |
| 211 | + </div> |
| 212 | + <div class="release-row__content"> |
| 213 | + <span class="release-row__version">{release.version}</span> |
| 214 | + <div class="release-row__info"> |
| 215 | + <span class="release-row__date"> |
| 216 | + {new Date(release.released_at).toLocaleDateString('en-GB', { |
| 217 | + day: 'numeric', |
| 218 | + month: 'short', |
| 219 | + year: 'numeric' |
| 220 | + })}, |
| 221 | + {new Date(release.released_at).toLocaleTimeString('en-GB', { |
| 222 | + hour: '2-digit', |
| 223 | + minute: '2-digit', |
| 224 | + hour12: false |
| 225 | + })}, |
| 226 | + </span> |
| 227 | + <div class="flex items-center gap-2"> |
| 228 | + <span class="release-row__separator">#</span> |
| 229 | + <a |
| 230 | + href="https://github.com/gitbutlerapp/gitbutler/commit/{release.sha}" |
| 231 | + target="_blank" |
| 232 | + rel="noopener noreferrer" |
| 233 | + title="View Commit on GitHub" |
| 234 | + class="sha-link" |
| 235 | + onclick={(e) => e.stopPropagation()} |
| 236 | + > |
| 237 | + {release.sha.substring(0, 7)} |
| 238 | + </a> |
| 239 | + </div> |
| 240 | + </div> |
| 241 | + </div> |
212 | 242 | </button> |
213 | 243 |
|
214 | 244 | {#if expandedRelease === release.version} |
|
436 | 466 | & h3 { |
437 | 467 | padding: 16px 24px 12px; |
438 | 468 | font-size: 40px; |
| 469 | + line-height: 1.2; |
439 | 470 | font-family: var(--font-accent); |
440 | 471 | } |
441 | 472 | } |
|
464 | 495 | } |
465 | 496 | } |
466 | 497 |
|
| 498 | + .release-row__chevron { |
| 499 | + display: flex; |
| 500 | + flex-shrink: 0; |
| 501 | + align-items: center; |
| 502 | + margin-right: 8px; |
| 503 | + color: var(--clr-text-3); |
| 504 | + transition: transform 0.15s ease; |
| 505 | +
|
| 506 | + &.expanded { |
| 507 | + transform: rotate(90deg); |
| 508 | + } |
| 509 | + } |
| 510 | +
|
| 511 | + .release-row__content { |
| 512 | + display: flex; |
| 513 | + flex: 1; |
| 514 | + align-items: center; |
| 515 | + justify-content: space-between; |
| 516 | + } |
| 517 | +
|
467 | 518 | .release-row__version { |
468 | 519 | font-size: 18px; |
469 | 520 | } |
470 | 521 |
|
| 522 | + .release-row__info { |
| 523 | + display: flex; |
| 524 | + flex-wrap: wrap; |
| 525 | + align-items: center; |
| 526 | + gap: 6px; |
| 527 | + } |
| 528 | +
|
471 | 529 | .release-row__date { |
472 | 530 | color: var(--clr-text-2); |
473 | 531 | font-size: 14px; |
474 | 532 | } |
475 | 533 |
|
| 534 | + .release-row__separator { |
| 535 | + color: var(--clr-text-3); |
| 536 | + font-size: 14px; |
| 537 | + } |
| 538 | +
|
| 539 | + .sha-link { |
| 540 | + color: var(--clr-text-3); |
| 541 | + font-size: 14px; |
| 542 | + text-decoration: underline; |
| 543 | + text-underline-offset: 2px; |
| 544 | + transition: all 0.1s ease; |
| 545 | +
|
| 546 | + &:hover { |
| 547 | + color: var(--clr-theme-pop-element); |
| 548 | + text-decoration: underline wavy; |
| 549 | + text-decoration-color: var(--clr-theme-pop-element); |
| 550 | + } |
| 551 | + } |
| 552 | +
|
476 | 553 | .release-row__links { |
477 | 554 | display: flex; |
478 | 555 | flex-wrap: wrap; |
|
542 | 619 | } |
543 | 620 |
|
544 | 621 | .release-row__button { |
| 622 | + align-items: flex-start; |
545 | 623 | padding: 12px 16px; |
546 | 624 | } |
547 | 625 |
|
| 626 | + .release-row__chevron { |
| 627 | + margin-top: 4px; |
| 628 | + } |
| 629 | +
|
| 630 | + .release-row__content { |
| 631 | + flex-direction: column; |
| 632 | + align-items: flex-start; |
| 633 | + width: 100%; |
| 634 | + } |
| 635 | +
|
548 | 636 | .release-row__version { |
549 | 637 | font-size: 16px; |
550 | 638 | } |
|
0 commit comments