Skip to content

Commit 9f51df0

Browse files
committed
Hide related software articles behind an expandable element
1 parent f784c0d commit 9f51df0

2 files changed

Lines changed: 45 additions & 14 deletions

File tree

src/app/features/containers/pages/container/container.component.css

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -458,14 +458,24 @@ table th {
458458
.software-item {
459459
border: 1px solid rgba(var(--main-font-color), 0.2);
460460
border-radius: 8px;
461-
padding: 16px;
461+
padding: 0;
462462
background-color: rgb(var(--color-surface-container-lowest));
463463
transition: border-color 0.2s, box-shadow 0.2s;
464464

465465
&:hover {
466466
border-color: rgba(var(--picton-blue-600), 0.4);
467467
box-shadow: 0 2px 8px rgba(var(--picton-blue-600), 0.1);
468468
}
469+
470+
& summary {
471+
list-style: none;
472+
cursor: pointer;
473+
user-select: none;
474+
475+
&::-webkit-details-marker {
476+
display: none;
477+
}
478+
}
469479
}
470480

471481
:host-context(.dark) .software-item:hover {
@@ -477,9 +487,25 @@ table th {
477487
display: flex;
478488
align-items: center;
479489
justify-content: space-between;
490+
gap: 12px;
491+
padding: 16px;
492+
493+
.chevron-icon {
494+
transition: transform 0.2s;
495+
flex-shrink: 0;
496+
}
497+
}
498+
499+
.software-item[open] .software-info .chevron-icon {
500+
transform: rotate(180deg);
501+
}
502+
503+
.software-name-wrapper {
504+
display: flex;
505+
align-items: center;
480506
flex-wrap: wrap;
481507
gap: 12px;
482-
margin-bottom: 12px;
508+
flex: 1;
483509
}
484510

485511
.software-name {
@@ -522,6 +548,8 @@ table th {
522548
flex-direction: column;
523549
flex-wrap: wrap;
524550
gap: 8px;
551+
padding: 0 16px 16px 16px;
552+
margin-top: 8px;
525553
}
526554

527555
.article-link {

src/app/features/containers/pages/container/container.component.html

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -280,25 +280,28 @@ <h3>Software that co-occurs with {{ container!.name }} in Bio-Protocol articles<
280280
</div>
281281
<div class="related-software-list">
282282
@for (software of getSortedRelatedSoftware(); track software.name) {
283-
<div class="software-item">
284-
<div class="software-info">
285-
@if (software.inBdip) {
286-
<a [routerLink]="['/container', software.name]" class="software-name bdip-link">
287-
{{ software.displayName }}
288-
</a>
289-
} @else {
290-
<span class="software-name">{{ software.displayName }}</span>
291-
}
292-
<span class="cooccurrence-count">{{ software.count }} {{ software.count === 1 ? 'article' : 'articles' }}</span>
293-
</div>
283+
<details class="software-item">
284+
<summary class="software-info">
285+
<div class="software-name-wrapper">
286+
@if (software.inBdip) {
287+
<a [routerLink]="['/container', software.name]" class="software-name bdip-link" (click)="$event.stopPropagation()">
288+
{{ software.displayName }}
289+
</a>
290+
} @else {
291+
<span class="software-name">{{ software.displayName }}</span>
292+
}
293+
<span class="cooccurrence-count">{{ software.count }} {{ software.count === 1 ? 'article' : 'articles' }}</span>
294+
</div>
295+
<svg-icon src="assets/icons/fluent-icons/ic_fluent_chevron_down_24_regular.svg" svgClass="chevron-icon" />
296+
</summary>
294297
<div class="article-links">
295298
@for (articleId of getCooccurringArticles(software.name); track articleId) {
296299
<a [href]="getBioProtocolArticleUrl(articleId)" target="_blank" class="article-link">
297300
{{ getBioProtocolArticleTitle(articleId) }}
298301
</a>
299302
}
300303
</div>
301-
</div>
304+
</details>
302305
}
303306
</div>
304307
</div>

0 commit comments

Comments
 (0)