|
|
|
|
@ -316,7 +316,7 @@ export default defineComponent({ |
|
|
|
|
|
|
|
|
|
--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2); |
|
|
|
|
--checkbox-size: 24px; |
|
|
|
|
--clickable-area: 44px; |
|
|
|
|
--clickable-area: var(--default-clickable-area); |
|
|
|
|
--icon-preview-size: 32px; |
|
|
|
|
|
|
|
|
|
overflow: auto; |
|
|
|
|
@ -687,39 +687,56 @@ export default defineComponent({ |
|
|
|
|
// Grid mode |
|
|
|
|
tbody.files-list__tbody.files-list__tbody--grid { |
|
|
|
|
--half-clickable-area: calc(var(--clickable-area) / 2); |
|
|
|
|
--row-width: 160px; |
|
|
|
|
// We use half of the clickable area as visual balance margin |
|
|
|
|
--row-height: calc(var(--row-width) - var(--half-clickable-area)); |
|
|
|
|
--icon-preview-size: calc(var(--row-width) - var(--clickable-area)); |
|
|
|
|
--item-padding: 16px; |
|
|
|
|
--icon-preview-size: 208px; |
|
|
|
|
--name-height: 32px; |
|
|
|
|
--mtime-height: 16px; |
|
|
|
|
--row-width: calc(var(--icon-preview-size)); |
|
|
|
|
--row-height: calc(var(--icon-preview-size) + var(--name-height) + var(--mtime-height)); |
|
|
|
|
--checkbox-padding: 0px; |
|
|
|
|
|
|
|
|
|
display: grid; |
|
|
|
|
grid-template-columns: repeat(auto-fill, var(--row-width)); |
|
|
|
|
grid-gap: 15px; |
|
|
|
|
row-gap: 15px; |
|
|
|
|
gap: 22px; |
|
|
|
|
|
|
|
|
|
align-content: center; |
|
|
|
|
align-items: center; |
|
|
|
|
justify-content: space-around; |
|
|
|
|
justify-items: center; |
|
|
|
|
margin: 16px; |
|
|
|
|
width: calc(100% - 32px); |
|
|
|
|
|
|
|
|
|
tr { |
|
|
|
|
display: flex; |
|
|
|
|
flex-direction: column; |
|
|
|
|
width: var(--row-width); |
|
|
|
|
height: calc(var(--row-height) + var(--clickable-area)); |
|
|
|
|
height: var(--row-height); |
|
|
|
|
border: none; |
|
|
|
|
border-radius: var(--border-radius); |
|
|
|
|
padding: var(--item-padding); |
|
|
|
|
box-sizing: content-box |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Checkbox in the top left |
|
|
|
|
.files-list__row-checkbox { |
|
|
|
|
position: absolute; |
|
|
|
|
z-index: 9; |
|
|
|
|
top: 0; |
|
|
|
|
left: 0; |
|
|
|
|
top: calc(var(--item-padding)/2); |
|
|
|
|
left: calc(var(--item-padding)/2); |
|
|
|
|
overflow: hidden; |
|
|
|
|
width: var(--clickable-area); |
|
|
|
|
height: var(--clickable-area); |
|
|
|
|
border-radius: var(--half-clickable-area); |
|
|
|
|
--checkbox-container-size: 44px; |
|
|
|
|
width: var(--checkbox-container-size); |
|
|
|
|
height: var(--checkbox-container-size); |
|
|
|
|
|
|
|
|
|
// Add a background to the checkbox so we do not see the image through it. |
|
|
|
|
.checkbox-radio-switch__content::after { |
|
|
|
|
content: ''; |
|
|
|
|
width: 16px; |
|
|
|
|
height: 16px; |
|
|
|
|
position: absolute; |
|
|
|
|
left: 14px; |
|
|
|
|
z-index: -1; |
|
|
|
|
background: var(--color-main-background); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Star icon in the top right |
|
|
|
|
@ -735,36 +752,44 @@ tbody.files-list__tbody.files-list__tbody--grid { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.files-list__row-name { |
|
|
|
|
display: grid; |
|
|
|
|
justify-content: stretch; |
|
|
|
|
width: 100%; |
|
|
|
|
height: 100%; |
|
|
|
|
grid-auto-rows: var(--row-height) var(--clickable-area); |
|
|
|
|
display: flex; |
|
|
|
|
flex-direction: column; |
|
|
|
|
width: var(--icon-preview-size); |
|
|
|
|
height: calc(var(--icon-preview-size) + var(--name-height)); |
|
|
|
|
// Ensure that the name outline is visible. |
|
|
|
|
overflow: visible; |
|
|
|
|
|
|
|
|
|
span.files-list__row-icon { |
|
|
|
|
width: 100%; |
|
|
|
|
height: 100%; |
|
|
|
|
// Visual balance, we use half of the clickable area |
|
|
|
|
// as a margin around the preview |
|
|
|
|
padding-top: var(--half-clickable-area); |
|
|
|
|
width: var(--icon-preview-size); |
|
|
|
|
height: var(--icon-preview-size); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.files-list__row-icon-preview { |
|
|
|
|
border-radius: 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
a.files-list__row-name-link { |
|
|
|
|
// Minus action menu |
|
|
|
|
width: calc(100% - var(--clickable-area)); |
|
|
|
|
height: var(--clickable-area); |
|
|
|
|
height: var(--name-height); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.files-list__row-name-text { |
|
|
|
|
margin: 0; |
|
|
|
|
padding-right: 0; |
|
|
|
|
// Ensure that the outline is not too close to the text. |
|
|
|
|
margin-left: -4px; |
|
|
|
|
padding: 0px 4px; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.files-list__row-mtime { |
|
|
|
|
width: var(--icon-preview-size); |
|
|
|
|
height: var(--mtime-height); |
|
|
|
|
font-size: calc(var(--default-font-size) - 4px); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.files-list__row-actions { |
|
|
|
|
position: absolute; |
|
|
|
|
right: 0; |
|
|
|
|
bottom: 0; |
|
|
|
|
right: calc(var(--half-clickable-area) / 2); |
|
|
|
|
bottom: calc(var(--mtime-height) / 2); |
|
|
|
|
width: var(--clickable-area); |
|
|
|
|
height: var(--clickable-area); |
|
|
|
|
} |
|
|
|
|
|