Files
AFFiNE-Mirror/packages/component/src/components/image-preview-modal/index.css.ts
2023-07-12 09:23:39 +00:00

183 lines
3.8 KiB
TypeScript

import { baseTheme } from '@toeverything/theme';
import { keyframes, style } from '@vanilla-extract/css';
const fadeInAnimation = keyframes({
from: { opacity: 0 },
to: { opacity: 1 },
});
const fadeOutAnimation = keyframes({
from: { opacity: 1 },
to: { opacity: 0 },
});
export const imagePreviewBackgroundStyle = style({
position: 'fixed',
top: 0,
left: 0,
width: '100%',
height: '100%',
zIndex: baseTheme.zIndexModal,
background: 'rgba(0, 0, 0, 0.75)',
});
export const imagePreviewModalStyle = style({
height: '100%',
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
});
export const loaded = style({
opacity: 0,
animationName: fadeInAnimation,
animationDuration: '0.25s',
animationFillMode: 'forwards',
});
export const unloaded = style({
opacity: 1,
animationName: fadeOutAnimation,
animationDuration: '0.25s',
animationFillMode: 'forwards',
});
export const imagePreviewModalCloseButtonStyle = style({
position: 'absolute',
display: 'flex',
flexDirection: 'column',
justifyContent: 'center',
alignItems: 'center',
height: '36px',
width: '36px',
borderRadius: '10px',
top: '0.5rem',
right: '0.5rem',
background: 'var(--affine-white)',
border: 'none',
padding: '0.5rem',
cursor: 'pointer',
color: 'var(--affine-icon-color)',
transition: 'background 0.2s ease-in-out',
zIndex: 1,
marginTop: '38px',
marginRight: '38px',
});
export const imagePreviewModalGoStyle = style({
color: 'var(--affine-white)',
position: 'absolute',
fontSize: '60px',
lineHeight: '60px',
fontWeight: 'bold',
opacity: '0.2',
padding: '0 15px',
cursor: 'pointer',
});
export const imageNavigationControlStyle = style({
display: 'flex',
height: '100%',
zIndex: 2,
justifyContent: 'space-between',
alignItems: 'center',
});
export const imagePreviewModalContainerStyle = style({
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
zIndex: 1,
'@media': {
'screen and (max-width: 768px)': {
alignItems: 'center',
},
},
});
export const imagePreviewModalCenterStyle = style({
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
});
export const imagePreviewModalCaptionStyle = style({
color: 'var(--affine-white)',
marginTop: '24px',
'@media': {
'screen and (max-width: 768px)': {
textAlign: 'center',
},
},
});
export const imagePreviewActionBarStyle = style({
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
backgroundColor: 'var(--affine-white)',
borderRadius: '8px',
boxShadow: '2px 2px 4px rgba(0, 0, 0, 0.3)',
maxWidth: 'max-content',
minHeight: '44px',
maxHeight: '44px',
});
export const groupStyle = style({
padding: '10px 0',
boxSizing: 'border-box',
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
borderLeft: '1px solid #E3E2E4',
});
export const buttonStyle = style({
minWidth: '24px',
height: '24px',
margin: '10px 6px',
padding: '0 0',
':hover': {
backgroundColor: 'var(--affine-background-error-color)',
backgroundSize: '24px 24px',
},
});
export const buttonIconStyle = style({
width: '20px',
height: '20px',
});
export const scaleIndicatorButtonStyle = style({
minHeight: '100%',
maxWidth: 'max-content',
fontSize: '12px',
padding: '5px 5px',
':hover': {
backgroundColor: 'var(--affine-hover-color)',
},
});
export const imageBottomContainerStyle = style({
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
position: 'fixed',
bottom: '28px',
zIndex: baseTheme.zIndexModal + 1,
});
export const captionStyle = style({
maxWidth: '686px',
color: 'var(--affine-white)',
background: 'rgba(0,0,0,0.75)',
padding: '10px',
marginBottom: '21px',
});
export const suspenseFallbackStyle = style({
opacity: 0,
transition: 'opacity 2s ease-in-out',
});