diff --git a/assets/main.scss b/assets/main.scss index 4c48a1cd..88e07da9 100644 --- a/assets/main.scss +++ b/assets/main.scss @@ -46,7 +46,8 @@ $footertextmuted: #aaaaaa; $postlinktext: #333333; -$maxwidth: 800px; +$maxwidth: 1200px; +$maxwidthcover: 1200px; $maxwidthwide: 1400px; $contentwidth: 80%; $contentwidthwide: 92%; @@ -130,29 +131,34 @@ $additionalInfoColor: #666666; } // Cover buttons -.btn-github:hover { - border-color: $github-black; - background-color: $github-black; +#badges .btn { + background-color: $tilebg; + border: none; } -.btn-discourse:hover { - background-color: $discourse-yellow; - color: black; + +#badges .btn-github:hover { + background-color: $github-black !important; + color: white !important; } -.btn-zulip:hover { - border-color: $zulip-blue; - background-color: $zulip-blue; +#badges .btn-discourse:hover { + background-color: $discourse-yellow !important; + color: black !important; } -.btn-twitter:hover { - border-color: $twitter-blue; - background-color: $twitter-blue; +#badges .btn-zulip:hover { + background-color: $zulip-blue !important; + color: white !important; } -.btn-bluesky:hover { - border-color: $bluesky-blue; - background-color: $bluesky-blue; +#badges .btn-twitter:hover { + background-color: $twitter-blue !important; + color: white !important; } -.btn-youtube:hover { - border-color: $youtube-red; - background-color: $youtube-red; +#badges .btn-bluesky:hover { + background-color: $bluesky-blue !important; + color: white !important; +} +#badges .btn-youtube:hover { + background-color: $youtube-red !important; + color: white !important; } // TODO: Should this be necessary? @@ -369,24 +375,30 @@ body { align-items: center; align-self: center; #cover { - max-width: $maxwidthwide; - width: $contentwidthwide; + max-width: $maxwidthcover; + width: 100%; + padding: 0 1rem; @media (max-width: 50rem), (max-device-width: 40rem) { - max-width: $maxwidthwide; - width: $contentwidthwide; + max-width: $maxwidthcover; + width: 100%; + padding: 0 1rem; } - #cover-heading { - margin-top: 10%; + #cover-top-section { + margin-top: 3rem; + padding: 2rem 0; @media (max-width: 50rem), (max-device-width: 40rem) { - margin-top: 10%; + margin-top: 3rem; + padding: 2rem 0; } - max-width: $maxwidthwide; - border-radius: 1rem; - background: linear-gradient(90deg, #f0f0f0, #f0f0f0); - padding: 6rem 4rem; + } + #cover-heading { + margin: 0; + padding: 0; @media (max-width: 50rem), (max-device-width: 40rem) { - padding: 2rem 1rem; + margin: 0; + padding: 0; } + max-width: $maxwidthcover; #title { #title-text { #title-name { @@ -395,8 +407,9 @@ body { font-weight: 900; letter-spacing: 0.2rem; @media (max-width: 50rem), (max-device-width: 40rem) { - letter-spacing: 0.1rem; - font-size: 2rem; + letter-spacing: 0.15rem; + font-size: 3.5rem; + font-weight: 900; } } #title-desc { @@ -410,15 +423,11 @@ body { } } } - #cover-image { - img { - } - } #badges { display: flex; flex-wrap: wrap; gap: 1rem; - margin: 4rem 0; + margin: 2rem 0; @media (max-width: 50rem), (max-device-width: 40rem) { margin: 1rem 0; padding: 0; @@ -428,14 +437,15 @@ body { } #chip-announcement { - margin: 3rem auto; - margin-bottom: -3rem; - @media (max-width: 40rem) { + margin: 0.5rem auto 0.5rem; + max-width: $maxwidthcover; + width: 100%; + @media (max-width: 50rem), (max-device-width: 40rem) { width: 100%; - margin-bottom: 3rem; + margin: 0.25rem auto 0.25rem; } display: flex; - justify-content: center; + justify-content: flex-start; &:hover { cursor: pointer; } @@ -453,6 +463,12 @@ body { transition: all 0.3s ease; outline: 1px solid black; + @media (max-width: 50rem), (max-device-width: 40rem) { + border-radius: 1.5rem; + padding: 0.05rem 0.6rem 0.05rem 0; + font-size: 0.7rem; + } + .event-date { background-color: black; color: white; @@ -460,6 +476,12 @@ body { border-radius: 2rem; margin: 0.1rem 1rem 0.1rem 0.2rem; align-self: start; + + @media (max-width: 50rem), (max-device-width: 40rem) { + padding: 0.35rem 0.7rem; + border-radius: 1.5rem; + margin: 0.05rem 0.7rem 0.05rem 0.1rem; + } } .event-text { @@ -722,7 +744,7 @@ body { padding: 2%; div { - max-width: $maxwidth; + max-width: 1200px; margin: 1rem auto; color: $footertext; text-align: left; @@ -2187,3 +2209,162 @@ body { } } } + +// Interactive UMAP Visualization Styles +#interactive-demo-section { + margin-top: 8%; + margin-bottom: 5%; +} + +.interactive-container { + width: 100%; + max-width: 1200px; + margin: 0 auto; + transform-style: preserve-3d; + perspective: 1500px; +} + +.interactive-card { + background-color: white; + border-radius: 20px; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.12); + overflow: hidden; + transition: + transform 0.6s ease-out, + box-shadow 0.3s ease; + will-change: transform; + + &:hover { + box-shadow: 0 30px 80px rgba(0, 0, 0, 0.15); + } +} + +.demo-header { + background: linear-gradient(135deg, #f8f8f8 0%, #f0f0f0 100%); + padding: 25px; + border-bottom: 1px solid #e0e0e0; + position: relative; + z-index: 100; +} + +.command-input { + display: flex; + align-items: center; + background-color: #e8e8e8; + padding: 12px 18px; + border-radius: 10px; + margin-bottom: 12px; + position: relative; + overflow: hidden; + transition: background-color 0.3s ease; + + &:last-child { + margin-bottom: 0; + } + + &:hover { + background-color: #e0e0e0; + } +} + +.command-icon { + width: 32px; + height: 32px; + background-color: #ccc; + border-radius: 50%; + display: flex; + justify-content: center; + align-items: center; + margin-right: 12px; + flex-shrink: 0; + cursor: pointer; + position: relative; + z-index: 10; + transition: all 0.3s ease; + + &:hover { + background-color: #4285f4; + transform: scale(1.1); + } + + svg { + width: 14px; + height: 14px; + fill: white; + } +} + +.command-text { + font-family: "SF Mono", "Monaco", "Inconsolata", "Fira Code", monospace; + font-size: 15px; + color: #333; + flex-grow: 1; + pointer-events: none; + font-weight: 500; +} + +.command-status { + position: absolute; + width: 0; + height: 100%; + left: 0; + top: 0; + background-color: rgba(52, 168, 83, 0.15); + transition: width 0.8s ease-out; + pointer-events: none; +} + +.visualization { + height: 500px; + position: relative; + padding: 30px; + background: linear-gradient(135deg, #fafafa 0%, #f5f5f5 100%); + overflow: hidden; + z-index: 1; + + @media (max-width: 768px) { + height: 400px; + padding: 20px; + } +} + +.dot { + position: absolute; + border-radius: 50%; + opacity: 0; + transform: scale(0); + transition: + transform 0.5s cubic-bezier(0.17, 0.67, 0.83, 0.67), + opacity 0.5s ease, + box-shadow 0.3s ease; + will-change: transform, opacity; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12); + cursor: pointer; +} + +.animation-pulse { + animation: pulse 1.5s infinite; +} + +@keyframes pulse { + 0% { + transform: scale(1); + } + 50% { + transform: scale(1.3); + } + 100% { + transform: scale(1); + } +} + +.executing-animation { + position: absolute; + bottom: 0; + left: 0; + width: 0%; + height: 3px; + background: linear-gradient(90deg, #4285f4, #34a853); + transition: width 1s ease-in-out; + pointer-events: none; +} diff --git a/content/design/_index.md b/content/design/_index.md index a39db2f8..ee8a25fa 100644 --- a/content/design/_index.md +++ b/content/design/_index.md @@ -6,8 +6,8 @@ aliases = ["/brand/", "/logo/"] primary_logos = """scverse® logo is a signature pair of letters **sc**, originally derived from 'single-cell', smoothly interwoven to create perseption of a third dimension. Our logo is available in several formats for different use cases. Please use these official versions and follow our guidelines when representing our brand. - -Our logo is protected as a registered trademark. For details and specifics, consult the [NumFOCUS trademark guidelines](https://numfocus.org/trademark-guidelines). +""" + trademark = """Our logo is protected as a registered trademark. For details and specifics, consult the [NumFOCUS trademark guidelines](https://numfocus.org/trademark-guidelines). """ logo_guidelines = "To maintain brand consistency, please follow these guidelines when using our logo." do_guidelines = """ @@ -53,6 +53,15 @@ Our primary logo combines our icon with the full name. Use this version when int text = "Download PNG" url = "../img/logo/scverse_symbol.png" +[[trademarkedlogos]] + name = "Icon (® version)" + description = "Icon trademarked" + img = "../img/icons/scverse_bw_logo.svg" + details = "Use this version to indicate that scverse is a registered trademark in formal or legal contexts." + [[trademarkedlogos.links]] + text = "Download SVG" + url = "../img/icons/scverse_bw_logo.svg" + [[packageicons]] name = "anndata" description = "AnnData package icon" @@ -116,6 +125,9 @@ Our primary logo combines our icon with the full name. Use this version when int [[packageicons.links]] text = "Download SVG" url = "../img/icons/scirpy.svg" + [[packageicons.links]] + text = "Download SVG (w/ name)" + url = "../img/libs/scirpy_logo.svg" [[packageicons]] name = "squidpy" @@ -134,4 +146,4 @@ Our primary logo combines our icon with the full name. Use this version when int [[packageicons.links]] text = "Download SVG" url = "../img/icons/scvi-tools.svg" -+++ \ No newline at end of file ++++ diff --git a/content/events/2024_09_conference.md b/content/events/2024_09_conference.md index 2b004324..a2882a20 100644 --- a/content/events/2024_09_conference.md +++ b/content/events/2024_09_conference.md @@ -7,6 +7,6 @@ draft = false Join us for the first scverse conference taking place from **Tuesday, September 10** to **Thursday, September 12** in **Munich, Germany**. Stay tuned for the registrations, speaker announcements, and more! -[The registration is now open!](/conference2024/) +[Visit the dedicated conference page for more details](/conference2024/) Save the date info card, highlighting speakers and workshops as well as the September 10-12th date and Munich location diff --git a/content/events/2025_11_conference.md b/content/events/2025_11_conference.md new file mode 100644 index 00000000..ec80dff7 --- /dev/null +++ b/content/events/2025_11_conference.md @@ -0,0 +1,12 @@ ++++ +title = "Scverse Conference 2025-11 Stanford" +date = 2025-11-17T00:00:00+01:00 +description = "scverse conference" +draft = false ++++ + +Join us for the scverse conference taking place from **Monday, November 17** to **Wednesday, November 19** in **Stanford, California**. + +[Visit the dedicated conference page for more details](/conference2025/) + + scverse conference 2025 banner diff --git a/layouts/design/list.html b/layouts/design/list.html index 0c221814..33f3116d 100644 --- a/layouts/design/list.html +++ b/layouts/design/list.html @@ -47,6 +47,35 @@

Primary Logos

{{ end }} + {{ end }}
{{ $sections.trademark | markdownify }}
+ {{ if .Params.trademarkedlogos }} +
+ {{ $trademarkedlogos := .Params.trademarkedlogos }} + {{ range $i, $e := $trademarkedlogos }} +
+
+ +
+
+
+
+ {{ .name }} + {{ .details | markdownify }} +
+
+ +
+
+ {{ end }} +
{{ end }}

Logo Usage Guidelines


{{ $sections.logo_guidelines | markdownify }} diff --git a/layouts/index.html b/layouts/index.html index ac16adf5..8832d29b 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -10,8 +10,47 @@
- {{ partial "main/chip" . }} - {{ partial "main/cover" . }} +
+ {{ partial "main/chip" . }} + {{ partial "main/cover" . }} +
+ + +
+
+
+
+
+
+ + + +
+
import scanpy as sc
+
+
+
+
+
+ + + +
+
sc.pl.umap(data, color='clusters')
+
+
+
+
+ +
+
+
+
+ {{ partial "main/packages" . }} diff --git a/layouts/partials/head.html b/layouts/partials/head.html index ef1312ad..8592b148 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -23,6 +23,6 @@ - + diff --git a/layouts/partials/header.html b/layouts/partials/header.html index 10a376c6..b4dfa6ac 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -1,6 +1,6 @@ -
+