@chayns-components/gallery
Version:
A set of beautiful React components for developing your own applications with chayns.
86 lines (83 loc) • 2.44 kB
JavaScript
import styled, { css } from 'styled-components';
import { GalleryViewMode } from '../types/gallery';
export const StyledGallery = styled.div`
width: 100%;
`;
export const StyledGalleryItemWrapper = styled.div`
display: grid;
gap: 5px;
${({
$viewMode,
$uploadedFileLength
}) => {
if ($viewMode === GalleryViewMode.GRID) {
return css`
> div:first-child {
grid-column: 1 / -1;
}
${() => {
switch ($uploadedFileLength) {
case 1:
return css`
grid-template-columns: 1fr;
`;
case 2:
return css`
grid-template-columns: repeat(2, 1fr);
> div:first-child {
grid-column: span 1;
}
`;
case 3:
return css`
grid-template-columns: repeat(2, 1fr);
> div:first-child {
grid-column: span 2;
}
`;
default:
return css`
grid-template-columns: repeat(3, minmax(0, 1fr));
> div:not(:first-child) {
grid-column: span 1;
}
`;
}
}}
`;
}
switch ($uploadedFileLength) {
case 1:
return css`
grid-template-columns: 1fr;
`;
case 2:
return css`
grid-template-columns: repeat(2, 1fr);
`;
case 3:
return css`
grid-template-columns: repeat(3, 1fr);
`;
default:
return css`
grid-template-columns: repeat(2, 1fr);
> div:nth-child(-n + 2) {
grid-row: 1;
}
`;
}
}}
aspect-ratio: ${({
$ratio
}) => $ratio};
`;
export const StyledGalleryEditModeWrapper = styled.div`
display: grid;
grid-template-columns: ${({
$fileMinWidth
}) => `repeat(auto-fill, minmax(${$fileMinWidth}px, 1fr))`};
grid-auto-rows: 1fr;
gap: 6px;
`;
//# sourceMappingURL=Gallery.styles.js.map