diff --git a/packages/frontend/component/src/ui/avatar/avatar.stories.tsx b/packages/frontend/component/src/ui/avatar/avatar.stories.tsx index 63c39a40f8..9ed8367352 100644 --- a/packages/frontend/component/src/ui/avatar/avatar.stories.tsx +++ b/packages/frontend/component/src/ui/avatar/avatar.stories.tsx @@ -31,6 +31,13 @@ ColorfulFallback.args = { colorfulFallback: true, name: 'blocksuite', }; +export const ColorfulFallbackWithDifferentSize: StoryFn = args => ( + <> + + + + +); export const WithHover: StoryFn = Template.bind(undefined); WithHover.args = { size: 50, diff --git a/packages/frontend/component/src/ui/avatar/avatar.tsx b/packages/frontend/component/src/ui/avatar/avatar.tsx index 0cea51ddcc..deb2d1b271 100644 --- a/packages/frontend/component/src/ui/avatar/avatar.tsx +++ b/packages/frontend/component/src/ui/avatar/avatar.tsx @@ -24,7 +24,7 @@ import type { TooltipProps } from '../tooltip'; import { Tooltip } from '../tooltip'; import { ColorfulFallback } from './colorful-fallback'; import * as style from './style.css'; -import { sizeVar } from './style.css'; +import { blurVar, sizeVar } from './style.css'; export type AvatarProps = { size?: number; @@ -92,6 +92,7 @@ export const Avatar = forwardRef( style={{ ...assignInlineVars({ [sizeVar]: size ? `${size}px` : '20px', + [blurVar]: `${size * 0.3}px`, }), ...propsStyles, }} diff --git a/packages/frontend/component/src/ui/avatar/style.css.ts b/packages/frontend/component/src/ui/avatar/style.css.ts index c34b6243e9..877159bce6 100644 --- a/packages/frontend/component/src/ui/avatar/style.css.ts +++ b/packages/frontend/component/src/ui/avatar/style.css.ts @@ -1,6 +1,7 @@ import { cssVar } from '@toeverything/theme'; import { createVar, globalStyle, keyframes, style } from '@vanilla-extract/css'; export const sizeVar = createVar('sizeVar'); +export const blurVar = createVar('blurVar'); const bottomAnimation = keyframes({ '0%': { top: '-44%', @@ -89,7 +90,7 @@ export const DefaultAvatarMiddleItemStyle = style({ top: '-30%', transform: 'matrix(-0.48, -0.88, 0.8, -0.6, 0, 0)', opacity: '0.8', - filter: 'blur(12px)', + filter: `blur(${blurVar})`, transformOrigin: 'center center', animation: `${middleAnimation} 3s ease-in-out forwards infinite`, animationPlayState: 'paused', @@ -105,7 +106,7 @@ export const DefaultAvatarBottomItemStyle = style({ left: '-11%', transform: 'matrix(-0.29, -0.96, 0.94, -0.35, 0, 0)', opacity: '0.8', - filter: 'blur(12px)', + filter: `blur(${blurVar})`, transformOrigin: 'center center', willChange: 'left, top, transform', animation: `${bottomAnimation} 3s ease-in-out forwards infinite`, @@ -121,7 +122,7 @@ export const DefaultAvatarTopItemStyle = style({ right: '-30%', top: '-30%', opacity: '0.8', - filter: 'blur(12px)', + filter: `blur(${blurVar})`, transform: 'matrix(-0.28, -0.96, 0.93, -0.37, 0, 0)', transformOrigin: 'center center', });