Tweaked chapter list item styles

- Improves animation smoothness
- Changed animation slideup/down animations to use max-height instead of height
  to better avoid jutter at the end.
- Cleaned spacing to match page items in books listing.
This commit is contained in:
Dan Brown 2022-05-18 13:18:21 +01:00
parent 4759fa1e1f
commit b030c1398b
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9
4 changed files with 6 additions and 7 deletions

View File

@ -12,14 +12,14 @@ class ChapterToggle {
const list = this.elem.parentNode.querySelector('.inset-list');
this.elem.classList.add('open');
this.elem.setAttribute('aria-expanded', 'true');
slideDown(list, 240);
slideDown(list, 180);
}
close() {
const list = this.elem.parentNode.querySelector('.inset-list');
this.elem.classList.remove('open');
this.elem.setAttribute('aria-expanded', 'false');
slideUp(list, 240);
slideUp(list, 180);
}
click(event) {

View File

@ -49,7 +49,7 @@ export function slideUp(element, animTime = 400) {
const currentPaddingTop = computedStyles.getPropertyValue('padding-top');
const currentPaddingBottom = computedStyles.getPropertyValue('padding-bottom');
const animStyles = {
height: [`${currentHeight}px`, '0px'],
maxHeight: [`${currentHeight}px`, '0px'],
overflow: ['hidden', 'hidden'],
paddingTop: [currentPaddingTop, '0px'],
paddingBottom: [currentPaddingBottom, '0px'],
@ -73,7 +73,7 @@ export function slideDown(element, animTime = 400) {
const targetPaddingTop = computedStyles.getPropertyValue('padding-top');
const targetPaddingBottom = computedStyles.getPropertyValue('padding-bottom');
const animStyles = {
height: ['0px', `${targetHeight}px`],
maxHeight: ['0px', `${targetHeight}px`],
overflow: ['hidden', 'hidden'],
paddingTop: ['0px', targetPaddingTop],
paddingBottom: ['0px', targetPaddingBottom],

View File

@ -460,8 +460,7 @@ ul.pagination {
padding: $-m;
> div {
overflow: hidden;
padding: $-xs 0;
margin-top: -$-xs;
padding: 0 0 $-xs 0;
}
.entity-chip {
text-overflow: ellipsis;

View File

@ -5,7 +5,7 @@
<div class="content">
<h4 class="entity-list-item-name break-text">{{ $chapter->name }}</h4>
<div class="entity-item-snippet">
<p class="text-muted break-text mb-s">{{ $chapter->getExcerpt() }}</p>
<p class="text-muted break-text">{{ $chapter->getExcerpt() }}</p>
</div>
</div>
</a>