From 874cc50b12df1ff41afa55c9782edd23b4d6dede Mon Sep 17 00:00:00 2001 From: Intron7 Date: Wed, 30 Oct 2024 15:51:50 +0100 Subject: [PATCH 01/23] update core members --- assets/main.scss | 40 ++++++++++++++++++++++++++++++++++++++++ content/people/_index.md | 4 ++++ layouts/people/list.html | 17 ++++++++++++----- 3 files changed, 56 insertions(+), 5 deletions(-) diff --git a/assets/main.scss b/assets/main.scss index f559cd93..f1fb2ae9 100644 --- a/assets/main.scss +++ b/assets/main.scss @@ -46,6 +46,13 @@ $maxwidthwide: 1400px; $contentwidth: 80%; $contentwidthwide: 92%; +$coreMemberBgColor: #f0f0f0; // Example background color +$coreMemberTextColor: #333333; // Example text color +$coreMemberBorderColor: #cccccc; // Example border color +$additionalInfoColor: #666666; // Example additional info color + + + @font-face { font-family: "Inter"; src: url("fonts/Inter/Inter-VariableFont_slnt,wght.ttf"); @@ -207,6 +214,20 @@ a .more { } } +@mixin core-chip { + background-color: $tilebg; + text-decoration: none; + color: $tiletext; + padding: 0.4rem; + text-align: center; + border-radius: 0.5rem; + transition: all 200ms ease-in-out; + &:hover { + color: $tiletext3; + background-color: $tilebg2; + } +} + html, body { width: 100%; @@ -1127,6 +1148,25 @@ body { font-size: 1rem; font-family: "Inter", sans-serif; } + .core-member { + @include core-chip; + font-size: 1rem; + font-family: "Inter", sans-serif; + .additional-info { + display: none; // Hide additional info by default + font-size: 0.9rem; + line-height: 0.4; // Adjust line height for tighter fit + top: 100%; // Position below the core-member + left: 0; + width: 100%; + padding: 0.5rem; // Add padding for better readability + padding-bottom: 0rem; // Remove bottom padding + border: 0px solid $coreMemberBorderColor; // Match border color + } + &:hover .additional-info { + display: block; // Show additional info on hover + } + } a { text-decoration: none; } diff --git a/content/people/_index.md b/content/people/_index.md index e40ebd05..4ef26b47 100644 --- a/content/people/_index.md +++ b/content/people/_index.md @@ -11,6 +11,10 @@ preface = "For people participating in and interacting with the consortium, ther [[teams.members]] name = "Philipp Angerer" url = "https://github.com/flying-sheep" + isCoreMember = true + role = "scanpy" + email = "test.test@scverse.org" + affiliation = "Helmholtz-Munich" [[teams.members]] name = "Danila Bredikhin" diff --git a/layouts/people/list.html b/layouts/people/list.html index 7a3406a4..8e723d90 100644 --- a/layouts/people/list.html +++ b/layouts/people/list.html @@ -41,12 +41,19 @@

{{ $team.name }}

{{ range $person := $team.members }} -
- {{ .name }} -
+
+
+ {{ .name }} + {{ if .isCoreMember }} +
+

{{ .role }}

+

{{ .email }}

+

{{ .affiliation }}

+
+ {{ end }} +
- {{ end }} + {{ end }}
{{ end }} From 116f0a070473a07169a05d516e5b38a30576c360 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 30 Oct 2024 14:52:27 +0000 Subject: [PATCH 02/23] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- assets/main.scss | 2 -- layouts/people/list.html | 22 +++++++++++----------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/assets/main.scss b/assets/main.scss index f1fb2ae9..7784111c 100644 --- a/assets/main.scss +++ b/assets/main.scss @@ -51,8 +51,6 @@ $coreMemberTextColor: #333333; // Example text color $coreMemberBorderColor: #cccccc; // Example border color $additionalInfoColor: #666666; // Example additional info color - - @font-face { font-family: "Inter"; src: url("fonts/Inter/Inter-VariableFont_slnt,wght.ttf"); diff --git a/layouts/people/list.html b/layouts/people/list.html index 8e723d90..37562e20 100644 --- a/layouts/people/list.html +++ b/layouts/people/list.html @@ -42,18 +42,18 @@

{{ $team.name }}

{{ range $person := $team.members }} -
- {{ .name }} - {{ if .isCoreMember }} -
-

{{ .role }}

-

{{ .email }}

-

{{ .affiliation }}

-
- {{ end }} -
+
+ {{ .name }} + {{ if .isCoreMember }} +
+

{{ .role }}

+

{{ .email }}

+

{{ .affiliation }}

+
+ {{ end }} +
- {{ end }} + {{ end }}
{{ end }} From ee65e511319a2adf089ecb892c875edd20a71c04 Mon Sep 17 00:00:00 2001 From: Intron7 Date: Wed, 30 Oct 2024 16:05:58 +0100 Subject: [PATCH 03/23] remove colors --- assets/main.scss | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/assets/main.scss b/assets/main.scss index 7784111c..48bf1cdc 100644 --- a/assets/main.scss +++ b/assets/main.scss @@ -46,9 +46,6 @@ $maxwidthwide: 1400px; $contentwidth: 80%; $contentwidthwide: 92%; -$coreMemberBgColor: #f0f0f0; // Example background color -$coreMemberTextColor: #333333; // Example text color -$coreMemberBorderColor: #cccccc; // Example border color $additionalInfoColor: #666666; // Example additional info color @font-face { @@ -1147,19 +1144,19 @@ body { font-family: "Inter", sans-serif; } .core-member { - @include core-chip; + @include person-chip; font-size: 1rem; font-family: "Inter", sans-serif; .additional-info { display: none; // Hide additional info by default font-size: 0.9rem; + color: $additionalInfoColor; line-height: 0.4; // Adjust line height for tighter fit top: 100%; // Position below the core-member left: 0; width: 100%; padding: 0.5rem; // Add padding for better readability - padding-bottom: 0rem; // Remove bottom padding - border: 0px solid $coreMemberBorderColor; // Match border color + padding-bottom: 0; } &:hover .additional-info { display: block; // Show additional info on hover From cd045378a4f936a07d207557cd89f45760b62d4b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 8 Jan 2025 11:54:37 +0000 Subject: [PATCH 04/23] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- assets/main.scss | 4 +++- layouts/partials/main/cover.html | 10 ++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/assets/main.scss b/assets/main.scss index 9ef78395..896cd5f1 100644 --- a/assets/main.scss +++ b/assets/main.scss @@ -307,7 +307,9 @@ body { z-index: -1; border-radius: inherit; transform: scale(1.05); - transition: opacity 200ms ease-out, transform 100ms ease-out; + transition: + opacity 200ms ease-out, + transform 100ms ease-out; } &:hover::before { diff --git a/layouts/partials/main/cover.html b/layouts/partials/main/cover.html index 03ad040c..2ea4dcf9 100644 --- a/layouts/partials/main/cover.html +++ b/layouts/partials/main/cover.html @@ -28,10 +28,12 @@ Zulip - - 𝕏 - - + 𝕏 + Bluesky Date: Mon, 17 Mar 2025 11:29:32 +0100 Subject: [PATCH 05/23] testing --- .github/workflows/gh-pages.yml | 4 +- assets/main.scss | 79 ++++++++++++++++++++++++++++------ 2 files changed, 68 insertions(+), 15 deletions(-) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index ef816ca6..007b6607 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -9,9 +9,9 @@ on: jobs: deploy: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: submodules: true # Fetch Hugo themes (true OR recursive) fetch-depth: 1 # Fetch all history for .GitInfo and .Lastmod diff --git a/assets/main.scss b/assets/main.scss index 896cd5f1..18e6332b 100644 --- a/assets/main.scss +++ b/assets/main.scss @@ -1166,49 +1166,102 @@ body { // Specific to /people +// Define mixins first for clarity +@mixin person-chip { + background-color: $tilebg; + text-decoration: none; + color: $tiletext; + padding: 0.4rem; + text-align: center; + border-radius: 0.5rem; + transition: all 200ms ease-in-out; + position: relative; // Important for absolute positioning of child elements + + &:hover { + color: $tiletext3; + background-color: $tilebg2; + } +} + +// Main content structure with proper nesting #people-content { + // Team container .team { + // Team text styling .team-text { margin: 1rem 0; } + + // Team list container .team-list { font-size: 1.1rem; display: flex; - justify-content: center; flex-wrap: wrap; gap: 0.5rem; justify-content: flex-start; + + // Remove duplicate property + // justify-content: center; + + // Links within team list + a { + text-decoration: none; + display: inline-block; // Helps with hover behavior + } + + // Regular person chip .person-chip { @include person-chip; font-size: 1rem; font-family: "Inter", sans-serif; } + + // Core member styling with hover functionality .core-member { @include person-chip; font-size: 1rem; font-family: "Inter", sans-serif; + cursor: pointer; // Indicate it's interactive + + // Additional info that shows on hover .additional-info { - display: none; // Hide additional info by default + display: none; font-size: 0.9rem; color: $additionalInfoColor; - line-height: 0.4; // Adjust line height for tighter fit + line-height: 1.2; // Improved readability + position: absolute; // Position absolutely relative to parent top: 100%; // Position below the core-member left: 0; width: 100%; - padding: 0.5rem; // Add padding for better readability + padding: 0.5rem; padding-bottom: 0; - } - &:hover .additional-info { - display: block; // Show additional info on hover + background-color: $tilebg; // Ensure background color is set + border-radius: 0 0 0.5rem 0.5rem; // Round bottom corners + z-index: 10; // Ensure it appears above other content + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); // Add shadow for visual separation } } - a { - text-decoration: none; + + // Separate the hover rule for better cross-browser compatibility + .core-member:hover .additional-info { + display: block !important; // Force display on hover } } } - // margin-top: 1rem !important; - // h2:first-of-type { - // margin-top: 0 !important; - // } } + +// Media query for responsive behavior +@media (max-width: 768px) { + #people-content .team .team-list { + justify-content: center; // Center on smaller screens + + .core-member .additional-info { + width: auto; // Adjust width for mobile + min-width: 100%; // Ensure minimum width + } + } +} +// margin-top: 1rem !important; +// h2:first-of-type { +// margin-top: 0 !important; +// } From 26ce1d4753d922b7cc4c37c5e312b965fd5474a1 Mon Sep 17 00:00:00 2001 From: Lukas Heumos Date: Mon, 17 Mar 2025 11:39:12 +0100 Subject: [PATCH 06/23] iterate --- layouts/people/list.html | 113 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 112 insertions(+), 1 deletion(-) diff --git a/layouts/people/list.html b/layouts/people/list.html index 37562e20..44776ac8 100644 --- a/layouts/people/list.html +++ b/layouts/people/list.html @@ -26,7 +26,6 @@

{{ .Title }}

{{ .Params.preface | safeHTML }}

- {{ if .Params.teams }} {{ range $team := .Params.teams }} {{ if not $team.hide }} @@ -89,6 +88,118 @@

{{ .name }}

{{ end }} {{ end }} + + + + + + + From 0b24613c87ea60e316f442e22ce71c4ddefe3a2e Mon Sep 17 00:00:00 2001 From: Lukas Heumos Date: Mon, 17 Mar 2025 11:44:41 +0100 Subject: [PATCH 07/23] iterate --- assets/main.scss | 120 +++++++++++++++------------------------ layouts/people/list.html | 60 -------------------- 2 files changed, 47 insertions(+), 133 deletions(-) diff --git a/assets/main.scss b/assets/main.scss index 18e6332b..db762d00 100644 --- a/assets/main.scss +++ b/assets/main.scss @@ -1183,85 +1183,59 @@ body { } } -// Main content structure with proper nesting -#people-content { - // Team container - .team { - // Team text styling - .team-text { - margin: 1rem 0; - } - - // Team list container - .team-list { - font-size: 1.1rem; - display: flex; - flex-wrap: wrap; - gap: 0.5rem; - justify-content: flex-start; - - // Remove duplicate property - // justify-content: center; +#people-content .team .team-list { + display: flex; + flex-wrap: wrap; + gap: 0.5rem; + justify-content: flex-start; + font-size: 1.1rem; +} - // Links within team list - a { - text-decoration: none; - display: inline-block; // Helps with hover behavior - } +#people-content .team .team-list a { + text-decoration: none; +} - // Regular person chip - .person-chip { - @include person-chip; - font-size: 1rem; - font-family: "Inter", sans-serif; - } +.person-chip { + background-color: var(--tilebg, #f5f5f5); + color: var(--tiletext, #333); + padding: 0.4rem; + text-align: center; + border-radius: 0.5rem; + transition: all 200ms ease-in-out; + font-size: 1rem; + font-family: "Inter", sans-serif; + position: relative; +} - // Core member styling with hover functionality - .core-member { - @include person-chip; - font-size: 1rem; - font-family: "Inter", sans-serif; - cursor: pointer; // Indicate it's interactive +.person-chip:hover { + background-color: var(--tilebg2, #e5e5e5); + color: var(--tiletext3, #000); +} - // Additional info that shows on hover - .additional-info { - display: none; - font-size: 0.9rem; - color: $additionalInfoColor; - line-height: 1.2; // Improved readability - position: absolute; // Position absolutely relative to parent - top: 100%; // Position below the core-member - left: 0; - width: 100%; - padding: 0.5rem; - padding-bottom: 0; - background-color: $tilebg; // Ensure background color is set - border-radius: 0 0 0.5rem 0.5rem; // Round bottom corners - z-index: 10; // Ensure it appears above other content - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); // Add shadow for visual separation - } - } +.core-member { + cursor: pointer; +} - // Separate the hover rule for better cross-browser compatibility - .core-member:hover .additional-info { - display: block !important; // Force display on hover - } - } - } +.additional-info { + display: none; + position: absolute; + top: 100%; + left: 0; + width: 100%; + background-color: var(--tilebg, #f5f5f5); + padding: 0.5rem; + font-size: 0.9rem; + border-radius: 0 0 0.5rem 0.5rem; + z-index: 10; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); + color: var(--additionalInfoColor, #666); } -// Media query for responsive behavior -@media (max-width: 768px) { - #people-content .team .team-list { - justify-content: center; // Center on smaller screens +.core-member:hover .additional-info { + display: block; +} - .core-member .additional-info { - width: auto; // Adjust width for mobile - min-width: 100%; // Ensure minimum width - } - } +.additional-info p { + margin: 0.2rem 0; + line-height: 1.2; } -// margin-top: 1rem !important; -// h2:first-of-type { -// margin-top: 0 !important; -// } diff --git a/layouts/people/list.html b/layouts/people/list.html index 44776ac8..9b202ae5 100644 --- a/layouts/people/list.html +++ b/layouts/people/list.html @@ -90,66 +90,6 @@

{{ .name }}

{{ end }} - - - diff --git a/static/main.js b/static/main.js index 8c3a017a..4a9c178b 100644 --- a/static/main.js +++ b/static/main.js @@ -25,3 +25,65 @@ const filterTutorials = () => { }; trs.forEach(toggleTrs); } + +// Core member hover functionality +const setupCoreMemberHovers = () => { + // Find all core members + const coreMembers = document.querySelectorAll('.core-member') + + // Add event listeners for both mouse and touch events + coreMembers.forEach(member => { + // Mouse events + member.addEventListener('mouseenter', function() { + const info = this.querySelector('.additional-info') + if (info) info.style.display = 'block' + }) + + member.addEventListener('mouseleave', function() { + const info = this.querySelector('.additional-info') + if (info) info.style.display = 'none' + }) + + // Touch events for mobile + member.addEventListener('touchstart', function(e) { + const info = this.querySelector('.additional-info') + if (info) { + if (info.style.display === 'block') { + info.style.display = 'none' + } else { + // Hide all other info boxes + document.querySelectorAll('.additional-info').forEach(box => { + box.style.display = 'none' + }) + info.style.display = 'block' + } + } + }, { passive: true }) + }) + + // Close all info boxes when clicking outside + document.addEventListener('click', function(e) { + if (!e.target.closest('.core-member')) { + document.querySelectorAll('.additional-info').forEach(box => { + box.style.display = 'none' + }) + } + }) +} + +// Initialize everything when DOM is loaded +document.addEventListener('DOMContentLoaded', function() { + // Set up event listeners for filters if they exist + const ecoFilter = document.querySelector('#eco-filter') + if (ecoFilter) { + ecoFilter.addEventListener('input', filterPackages) + } + + const tutorialFilter = document.querySelector('#tutorial-filter') + if (tutorialFilter) { + tutorialFilter.addEventListener('input', filterTutorials) + } + + // Setup core member hover functionality + setupCoreMemberHovers() +}) From f19c6e4a700864ef540f87379508a0f6944d41f3 Mon Sep 17 00:00:00 2001 From: Lukas Heumos Date: Mon, 17 Mar 2025 12:14:20 +0100 Subject: [PATCH 09/23] iterate --- static/main.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/static/main.js b/static/main.js index 4a9c178b..50d599da 100644 --- a/static/main.js +++ b/static/main.js @@ -28,6 +28,12 @@ const filterTutorials = () => { // Core member hover functionality const setupCoreMemberHovers = () => { + // Hide all additional info boxes immediately + const allInfoBoxes = document.querySelectorAll('.additional-info') + allInfoBoxes.forEach(box => { + box.style.display = 'none' + }) + // Find all core members const coreMembers = document.querySelectorAll('.core-member') @@ -87,3 +93,11 @@ document.addEventListener('DOMContentLoaded', function() { // Setup core member hover functionality setupCoreMemberHovers() }) + +// Run again when window loads to ensure all elements are fully rendered +window.addEventListener('load', function() { + // Hide all info boxes again to be absolutely sure + document.querySelectorAll('.additional-info').forEach(box => { + box.style.display = 'none' + }) +}) From a4b52d981661f6bc25a120141b648e5a2c84dfd5 Mon Sep 17 00:00:00 2001 From: Lukas Heumos Date: Mon, 17 Mar 2025 12:16:26 +0100 Subject: [PATCH 10/23] iterate --- static/main.js | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/static/main.js b/static/main.js index 50d599da..b51550ff 100644 --- a/static/main.js +++ b/static/main.js @@ -26,7 +26,6 @@ const filterTutorials = () => { trs.forEach(toggleTrs); } -// Core member hover functionality const setupCoreMemberHovers = () => { // Hide all additional info boxes immediately const allInfoBoxes = document.querySelectorAll('.additional-info') @@ -34,12 +33,10 @@ const setupCoreMemberHovers = () => { box.style.display = 'none' }) - // Find all core members const coreMembers = document.querySelectorAll('.core-member') // Add event listeners for both mouse and touch events coreMembers.forEach(member => { - // Mouse events member.addEventListener('mouseenter', function() { const info = this.querySelector('.additional-info') if (info) info.style.display = 'block' @@ -57,7 +54,6 @@ const setupCoreMemberHovers = () => { if (info.style.display === 'block') { info.style.display = 'none' } else { - // Hide all other info boxes document.querySelectorAll('.additional-info').forEach(box => { box.style.display = 'none' }) @@ -90,14 +86,7 @@ document.addEventListener('DOMContentLoaded', function() { tutorialFilter.addEventListener('input', filterTutorials) } - // Setup core member hover functionality setupCoreMemberHovers() }) -// Run again when window loads to ensure all elements are fully rendered -window.addEventListener('load', function() { - // Hide all info boxes again to be absolutely sure - document.querySelectorAll('.additional-info').forEach(box => { - box.style.display = 'none' - }) -}) + From 2df446b4b485c36e69dfdaeba261a3e4de625776 Mon Sep 17 00:00:00 2001 From: Lukas Heumos Date: Mon, 17 Mar 2025 12:48:13 +0100 Subject: [PATCH 11/23] Add content --- content/people/_index.md | 73 ++++++++++++++++++++++++++++++++++++++-- static/main.js | 2 -- 2 files changed, 71 insertions(+), 4 deletions(-) diff --git a/content/people/_index.md b/content/people/_index.md index b8f27d40..30f64c50 100644 --- a/content/people/_index.md +++ b/content/people/_index.md @@ -12,77 +12,146 @@ preface = "For people participating in and interacting with the consortium, ther name = "Philipp Angerer" url = "https://github.com/flying-sheep" isCoreMember = true - role = "scanpy" - email = "test.test@scverse.org" + role = "anndata & scanpy" + email = "philipp.angerer@scverse.org" affiliation = "Helmholtz-Munich" [[teams.members]] name = "Danila Bredikhin" url = "https://github.com/gtca" + isCoreMember = true + role = "mudata & muon" + email = "danila.bredikhin@scverse.org" + affiliation = "Stanford University" [[teams.members]] name = "Can Ergen-Behr" url = "https://github.com/canergen" + isCoreMember = true + role = "scvi-tools" + email = "can.ergen@scverse.org" + affiliation = "University of California, Berkely" [[teams.members]] name = "Emma Dann" url = "https://github.com/emdann" + isCoreMember = true + role = "community & events" + email = "emma.dann@scverse.org" + affiliation = "Stanford University" + [[teams.members]] name = "Severin Dicks" url = "https://github.com/Intron7" + isCoreMember = true + role = "rapids-singlecell" + email = "severin.dicks@scverse.org" + affiliation = "NVIDIA" [[teams.members]] name = "Jennifer Foltz" url = "https://jfoltzlab.org/" + isCoreMember = true + role = "community" + email = "jennifer.foltz@scverse.org" + affiliation = "Washington University" [[teams.members]] name = "Ilan Gold" url = "https://github.com/ilan-gold" + isCoreMember = true + role = "anndata & scanpy" + email = "ilan.gold@scverse.org" + affiliation = "Helmholtz Munich" [[teams.members]] name = "Lukas Heumos" url = "https://github.com/Zethson" + isCoreMember = true + role = "pertpy & operations" + email = "lukas.heumos@scverse.org" + affiliation = "Lamin Labs & Helmholtz Munich" [[teams.members]] name = "Mikaela Koutrouli" url = "https://github.com/mikelkou" + isCoreMember = true + role = "operations" + email = "mikaela.koutrouli@scverse.org" + affiliation = "Genentech" [[teams.members]] name = "Ori Kronfeld" url = "https://github.com/ori-kron-wis" + isCoreMember = true + role = "scvi-tools" + email = "ori.kronfeld@scverse.org" + affiliation = "Weizmann Institute of Science" [[teams.members]] name = "Luca Marconato" url = "https://github.com/LucaMarconato" + isCoreMember = true + role = "spatialdata" + email = "luca.marconato@scverse.org" + affiliation = "EMBL Heidelberg" [[teams.members]] name = "Giovanni Palla" url = "https://github.com/giovp" + isCoreMember = true + role = "spatialdata & squipy" + email = "giovanni.palla@scverse.org" + affiliation = "CZI" [[teams.members]] name = "Anna Schaar" url = "https://github.com/AnnaChristina" + isCoreMember = true + role = "events" + email = "anna.schaar@scverse.org" + affiliation = "Bioptimus" [[teams.members]] name = "Roshan Sharma" url = "https://github.com/roshan9128" + isCoreMember = true + role = "grants & workshops" + email = "roshan.sharma@scverse.org" + affiliation = "Memorial Sloan Kettering Cancer Center" [[teams.members]] name = "Gregor Sturm" url = "https://github.com/grst" + isCoreMember = true + role = "scirpy" + email = "gregor.sturm@scverse.org" + affiliation = "Bƶhringer Ingelheim" [[teams.members]] name = "Tim Treis" url = "https://github.com/timtreis" + isCoreMember = true + role = "spatialdata-plot & squidpy" + email = "tim.treis@scverse.org" + affiliation = "Helmholtz Munich" [[teams.members]] name = "Wouter-Michiel Vierdag" url = "https://github.com/melonora" + isCoreMember = true + role = "spatialdata" + email = "michiel.vierdag@scverse.org" + affiliation = "EMBL Heidelberg" [[teams.members]] name = "Isaac Virshup" url = "https://github.com/ivirshup" + isCoreMember = true + role = "anndata & scanpy" + email = "isaac.virshup@scverse.org" + affiliation = "CZI" # ---------- steering committee, in alphabetical order diff --git a/static/main.js b/static/main.js index b51550ff..22b251d1 100644 --- a/static/main.js +++ b/static/main.js @@ -88,5 +88,3 @@ document.addEventListener('DOMContentLoaded', function() { setupCoreMemberHovers() }) - - From 4410070f57f9cb269f59b10d5b0aeaf84fff43c2 Mon Sep 17 00:00:00 2001 From: Lukas Heumos Date: Mon, 17 Mar 2025 12:53:34 +0100 Subject: [PATCH 12/23] Also make it work for sc --- content/people/_index.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/content/people/_index.md b/content/people/_index.md index 30f64c50..99491198 100644 --- a/content/people/_index.md +++ b/content/people/_index.md @@ -39,7 +39,6 @@ preface = "For people participating in and interacting with the consortium, ther role = "community & events" email = "emma.dann@scverse.org" affiliation = "Stanford University" - [[teams.members]] name = "Severin Dicks" @@ -162,18 +161,34 @@ preface = "For people participating in and interacting with the consortium, ther [[teams.members]] name = "Danila Bredikhin" url = "https://github.com/gtca" + isCoreMember = true + role = "mudata & muon" + email = "danila.bredikhin@scverse.org" + affiliation = "Stanford University" [[teams.members]] name = "Lukas Heumos" url = "https://github.com/Zethson" + isCoreMember = true + role = "pertpy & operations" + email = "lukas.heumos@scverse.org" + affiliation = "Lamin Labs & Helmholtz Munich" [[teams.members]] name = "Mikaela Koutrouli" url = "https://github.com/mikelkou" + isCoreMember = true + role = "operations" + email = "mikaela.koutrouli@scverse.org" + affiliation = "Genentech" [[teams.members]] name = "Isaac Virshup" url = "https://twitter.com/ivirshup" + isCoreMember = true + role = "anndata & scanpy" + email = "isaac.virshup@scverse.org" + affiliation = "CZI" # ---------- management committee, in alphabetical order From 965aaecf2c16608a212ca2b8748bf79504e2f3b4 Mon Sep 17 00:00:00 2001 From: Lukas Heumos Date: Mon, 17 Mar 2025 13:52:22 +0100 Subject: [PATCH 13/23] Iterate --- assets/main.scss | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/assets/main.scss b/assets/main.scss index db762d00..4113fce7 100644 --- a/assets/main.scss +++ b/assets/main.scss @@ -1226,9 +1226,24 @@ body { padding: 0.5rem; font-size: 0.9rem; border-radius: 0 0 0.5rem 0.5rem; - z-index: 10; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); color: var(--additionalInfoColor, #666); + user-select: text; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + cursor: auto; + z-index: 100; +} + +.additional-info .email-link { + color: inherit; + text-decoration: underline; + cursor: pointer; +} + +.additional-info .email-link:hover { + color: #0056b3; } .core-member:hover .additional-info { @@ -1238,4 +1253,5 @@ body { .additional-info p { margin: 0.2rem 0; line-height: 1.2; + margin-top: 0.5rem; } From df9dd89822a986534ceae63cb19ee84ac9ff4a4b Mon Sep 17 00:00:00 2001 From: Lukas Heumos Date: Mon, 17 Mar 2025 13:58:41 +0100 Subject: [PATCH 14/23] emails --- layouts/people/list.html | 2 +- static/main.js | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/layouts/people/list.html b/layouts/people/list.html index a7d6c1ac..10a0397d 100644 --- a/layouts/people/list.html +++ b/layouts/people/list.html @@ -42,7 +42,7 @@

{{ $team.name }}

{{ range $person := $team.members }}
- {{ .name }} + {{ .name }} {{ if .isCoreMember }}

{{ .role }}

diff --git a/static/main.js b/static/main.js index 22b251d1..84fba3a6 100644 --- a/static/main.js +++ b/static/main.js @@ -27,10 +27,22 @@ const filterTutorials = () => { } const setupCoreMemberHovers = () => { + // Convert email text to mailto links + const emailElements = document.querySelectorAll('.additional-info p:nth-child(2)') + emailElements.forEach(element => { + const emailText = element.textContent.trim() + if (emailText && emailText.includes('@')) { + element.innerHTML = `
` + } + }) + // Hide all additional info boxes immediately const allInfoBoxes = document.querySelectorAll('.additional-info') allInfoBoxes.forEach(box => { box.style.display = 'none' + box.addEventListener('mousedown', e => { + e.stopPropagation() + }) }) const coreMembers = document.querySelectorAll('.core-member') @@ -62,6 +74,13 @@ const setupCoreMemberHovers = () => { } }, { passive: true }) }) + + // Email links should prevent closing the info box when clicked + document.querySelectorAll('.email-link').forEach(link => { + link.addEventListener('click', e => { + e.stopPropagation() + }) + }) // Close all info boxes when clicking outside document.addEventListener('click', function(e) { From 75af51b9e64a6b391b4b38ba3d19d6a305465970 Mon Sep 17 00:00:00 2001 From: Lukas Heumos Date: Mon, 17 Mar 2025 14:05:28 +0100 Subject: [PATCH 15/23] iterate --- assets/main.scss | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/assets/main.scss b/assets/main.scss index 4113fce7..735d3fc4 100644 --- a/assets/main.scss +++ b/assets/main.scss @@ -1234,6 +1234,7 @@ body { -ms-user-select: text; cursor: auto; z-index: 100; + padding-top: 0.75rem; } .additional-info .email-link { @@ -1251,7 +1252,7 @@ body { } .additional-info p { - margin: 0.2rem 0; - line-height: 1.2; + margin: 0.5rem 0; + line-height: 1.5; margin-top: 0.5rem; } From f7a806fc55b9d85a029bb1f624aed166c15b1975 Mon Sep 17 00:00:00 2001 From: Lukas Heumos Date: Mon, 17 Mar 2025 14:36:00 +0100 Subject: [PATCH 16/23] remove unused styling --- assets/main.scss | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/assets/main.scss b/assets/main.scss index 735d3fc4..34630523 100644 --- a/assets/main.scss +++ b/assets/main.scss @@ -1216,27 +1216,6 @@ body { cursor: pointer; } -.additional-info { - display: none; - position: absolute; - top: 100%; - left: 0; - width: 100%; - background-color: var(--tilebg, #f5f5f5); - padding: 0.5rem; - font-size: 0.9rem; - border-radius: 0 0 0.5rem 0.5rem; - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); - color: var(--additionalInfoColor, #666); - user-select: text; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - cursor: auto; - z-index: 100; - padding-top: 0.75rem; -} - .additional-info .email-link { color: inherit; text-decoration: underline; From f2cc22b270d2a58b0857ed6a2647154a7e7a62ce Mon Sep 17 00:00:00 2001 From: Lukas Heumos Date: Mon, 17 Mar 2025 14:38:00 +0100 Subject: [PATCH 17/23] polish --- assets/main.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/main.scss b/assets/main.scss index 34630523..78d24b49 100644 --- a/assets/main.scss +++ b/assets/main.scss @@ -47,7 +47,7 @@ $maxwidthwide: 1400px; $contentwidth: 80%; $contentwidthwide: 92%; -$additionalInfoColor: #666666; // Example additional info color +$additionalInfoColor: #666666; @font-face { font-family: "Inter"; From 0c7610e51c207d160ee6d68500204bfa40b019ac Mon Sep 17 00:00:00 2001 From: Malte Benedikt Kuehl Date: Mon, 17 Mar 2025 15:33:16 +0100 Subject: [PATCH 18/23] Core member layout as grid and remove javascript hover in favor of CSS implementation --- assets/main.scss | 38 +++++++++++++++++++++++---- layouts/people/list.html | 27 +++++++++++-------- static/main.js | 56 ---------------------------------------- 3 files changed, 49 insertions(+), 72 deletions(-) diff --git a/assets/main.scss b/assets/main.scss index 78d24b49..09b2711b 100644 --- a/assets/main.scss +++ b/assets/main.scss @@ -1184,8 +1184,8 @@ body { } #people-content .team .team-list { - display: flex; - flex-wrap: wrap; + display: grid; + grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 0.5rem; justify-content: flex-start; font-size: 1.1rem; @@ -1195,10 +1195,9 @@ body { text-decoration: none; } -.person-chip { +.team-member { background-color: var(--tilebg, #f5f5f5); color: var(--tiletext, #333); - padding: 0.4rem; text-align: center; border-radius: 0.5rem; transition: all 200ms ease-in-out; @@ -1207,15 +1206,44 @@ body { position: relative; } -.person-chip:hover { +.person-chip { + background-color: var(--tilebg, #f5f5f5); + color: var(--tiletext, #333); + padding: 0.4rem; + text-align: center; + display: block; + border-radius: 0.5rem; + position: relative; + width: 100%; +} + +.team-member:hover .person-chip { background-color: var(--tilebg2, #e5e5e5); color: var(--tiletext3, #000); } +.team-member:hover .person-chip { + border-radius: 0.5rem 0.5rem 0 0; +} + .core-member { cursor: pointer; } +.additional-info { + background-color: var(--tilebg2, #e5e5e5); + color: var(--tiletext3, #000); + position: absolute; + visibility: hidden; + z-index: 50; + border-radius: 0 0rem 0.5rem 0.5rem; + width: 100%; +} + +.team-member:hover .additional-info { + visibility: visible; +} + .additional-info .email-link { color: inherit; text-decoration: underline; diff --git a/layouts/people/list.html b/layouts/people/list.html index 10a0397d..7070d377 100644 --- a/layouts/people/list.html +++ b/layouts/people/list.html @@ -40,18 +40,23 @@

{{ $team.name }}

{{ range $person := $team.members }} - - {{ end }}
{{ end }} diff --git a/static/main.js b/static/main.js index 84fba3a6..c7997db4 100644 --- a/static/main.js +++ b/static/main.js @@ -36,62 +36,6 @@ const setupCoreMemberHovers = () => { } }) - // Hide all additional info boxes immediately - const allInfoBoxes = document.querySelectorAll('.additional-info') - allInfoBoxes.forEach(box => { - box.style.display = 'none' - box.addEventListener('mousedown', e => { - e.stopPropagation() - }) - }) - - const coreMembers = document.querySelectorAll('.core-member') - - // Add event listeners for both mouse and touch events - coreMembers.forEach(member => { - member.addEventListener('mouseenter', function() { - const info = this.querySelector('.additional-info') - if (info) info.style.display = 'block' - }) - - member.addEventListener('mouseleave', function() { - const info = this.querySelector('.additional-info') - if (info) info.style.display = 'none' - }) - - // Touch events for mobile - member.addEventListener('touchstart', function(e) { - const info = this.querySelector('.additional-info') - if (info) { - if (info.style.display === 'block') { - info.style.display = 'none' - } else { - document.querySelectorAll('.additional-info').forEach(box => { - box.style.display = 'none' - }) - info.style.display = 'block' - } - } - }, { passive: true }) - }) - - // Email links should prevent closing the info box when clicked - document.querySelectorAll('.email-link').forEach(link => { - link.addEventListener('click', e => { - e.stopPropagation() - }) - }) - - // Close all info boxes when clicking outside - document.addEventListener('click', function(e) { - if (!e.target.closest('.core-member')) { - document.querySelectorAll('.additional-info').forEach(box => { - box.style.display = 'none' - }) - } - }) -} - // Initialize everything when DOM is loaded document.addEventListener('DOMContentLoaded', function() { // Set up event listeners for filters if they exist From 2256a1fdd48cbbfa28408b55fc3395cbfcb8f7bb Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 17 Mar 2025 14:33:56 +0000 Subject: [PATCH 19/23] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- layouts/people/list.html | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/layouts/people/list.html b/layouts/people/list.html index 7070d377..e6b5f0e1 100644 --- a/layouts/people/list.html +++ b/layouts/people/list.html @@ -41,17 +41,18 @@

{{ $team.name }}

{{ range $person := $team.members }}
- + {{ .name }} {{ if .isCoreMember }}

{{ .role }}

- {{ .email }} + {{ .email }}

{{ .affiliation }}

From 74b3a149d81b33105d3f331db14f49197e3d730c Mon Sep 17 00:00:00 2001 From: Malte Benedikt Kuehl Date: Mon, 17 Mar 2025 15:36:16 +0100 Subject: [PATCH 20/23] Core member layout as grid and remove javascript hover in favor of CSS implementation --- static/main.js | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/static/main.js b/static/main.js index c7997db4..3caace9c 100644 --- a/static/main.js +++ b/static/main.js @@ -26,16 +26,6 @@ const filterTutorials = () => { trs.forEach(toggleTrs); } -const setupCoreMemberHovers = () => { - // Convert email text to mailto links - const emailElements = document.querySelectorAll('.additional-info p:nth-child(2)') - emailElements.forEach(element => { - const emailText = element.textContent.trim() - if (emailText && emailText.includes('@')) { - element.innerHTML = `` - } - }) - // Initialize everything when DOM is loaded document.addEventListener('DOMContentLoaded', function() { // Set up event listeners for filters if they exist From ff4ee36e71631f206ed5688917af633f9530b90f Mon Sep 17 00:00:00 2001 From: Malte Benedikt Kuehl Date: Mon, 17 Mar 2025 15:53:07 +0100 Subject: [PATCH 21/23] Only change border radius on members with additional info --- assets/main.scss | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/assets/main.scss b/assets/main.scss index 09b2711b..07a1fdf0 100644 --- a/assets/main.scss +++ b/assets/main.scss @@ -1166,23 +1166,6 @@ body { // Specific to /people -// Define mixins first for clarity -@mixin person-chip { - background-color: $tilebg; - text-decoration: none; - color: $tiletext; - padding: 0.4rem; - text-align: center; - border-radius: 0.5rem; - transition: all 200ms ease-in-out; - position: relative; // Important for absolute positioning of child elements - - &:hover { - color: $tiletext3; - background-color: $tilebg2; - } -} - #people-content .team .team-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); @@ -1213,7 +1196,6 @@ body { text-align: center; display: block; border-radius: 0.5rem; - position: relative; width: 100%; } @@ -1222,7 +1204,7 @@ body { color: var(--tiletext3, #000); } -.team-member:hover .person-chip { +.team-member:has(.additional-info):hover .person-chip { border-radius: 0.5rem 0.5rem 0 0; } From 5b8a1e23cd33bfbabb42a7bd2d0ea205dfa04f02 Mon Sep 17 00:00:00 2001 From: Malte Benedikt Kuehl Date: Mon, 17 Mar 2025 16:10:43 +0100 Subject: [PATCH 22/23] Make links relative to root and drop base url --- config.toml | 1 - layouts/partials/head.html | 14 +++++++------- static/main.js | 4 ++-- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/config.toml b/config.toml index c7c69589..60cf3f61 100644 --- a/config.toml +++ b/config.toml @@ -1,4 +1,3 @@ -baseURL = "https://scverse.org" languageCode = "en-us" title = "scverse" description = "Foundational tools for omics data in the life sciences" diff --git a/layouts/partials/head.html b/layouts/partials/head.html index ff30a35f..a9f1c561 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -4,14 +4,14 @@ - - - - - - + + + + + + - + diff --git a/static/main.js b/static/main.js index 3caace9c..ed0c2749 100644 --- a/static/main.js +++ b/static/main.js @@ -33,11 +33,11 @@ document.addEventListener('DOMContentLoaded', function() { if (ecoFilter) { ecoFilter.addEventListener('input', filterPackages) } - + const tutorialFilter = document.querySelector('#tutorial-filter') if (tutorialFilter) { tutorialFilter.addEventListener('input', filterTutorials) } - + setupCoreMemberHovers() }) From cec0045cf8cfc89d2776afd188db4e25541c07c8 Mon Sep 17 00:00:00 2001 From: Malte Benedikt Kuehl Date: Mon, 17 Mar 2025 16:14:27 +0100 Subject: [PATCH 23/23] Use base url but relative permalink for styles --- config.toml | 1 + layouts/partials/head.html | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/config.toml b/config.toml index 60cf3f61..f97bb3ae 100644 --- a/config.toml +++ b/config.toml @@ -1,3 +1,4 @@ +baseURL = "https://scverse.org/" languageCode = "en-us" title = "scverse" description = "Foundational tools for omics data in the life sciences" diff --git a/layouts/partials/head.html b/layouts/partials/head.html index a9f1c561..ef1312ad 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -2,7 +2,7 @@ {{ $styles := resources.Get "main.scss" | toCSS | minify }} - +