From 52de03894f142699eb967ba60f6f16525f1e3b2f Mon Sep 17 00:00:00 2001 From: vaibhav111tandon Date: Fri, 30 Aug 2019 11:31:24 +0530 Subject: [PATCH 1/2] Added a blur transition --- package-lock.json | 2 +- src/runtime/transition/index.ts | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index c84f5146a0..45f91af8fe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "svelte", - "version": "3.8.1", + "version": "3.9.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/src/runtime/transition/index.ts b/src/runtime/transition/index.ts index d89730fd6b..63f1e5437b 100644 --- a/src/runtime/transition/index.ts +++ b/src/runtime/transition/index.ts @@ -9,6 +9,24 @@ export interface TransitionConfig { tick?: (t: number, u: number) => void; } +interface BlurParams { + delay: number; + duration: number; +} + +export function blur(node: Element, { + delay = 0, + duration = 400 +}: BlurParams): TransitionConfig { + const f = +getComputedStyle(node).filter; + + return { + delay, + duration, + css: t => `filter: blur(${t * f})` + }; +} + interface FadeParams { delay: number; duration: number; From 637a8da9a7a64f9bb34cb4d884a448d395aa1f18 Mon Sep 17 00:00:00 2001 From: Vaibhav Tandon Date: Sun, 1 Sep 2019 00:17:36 +0530 Subject: [PATCH 2/2] Edited: Added Blur transition --- src/runtime/transition/index.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/runtime/transition/index.ts b/src/runtime/transition/index.ts index 63f1e5437b..0d4c4ebf54 100644 --- a/src/runtime/transition/index.ts +++ b/src/runtime/transition/index.ts @@ -12,18 +12,20 @@ export interface TransitionConfig { interface BlurParams { delay: number; duration: number; + amount: number; } export function blur(node: Element, { delay = 0, - duration = 400 + duration = 400, + amount = 5 }: BlurParams): TransitionConfig { - const f = +getComputedStyle(node).filter; + const f = getComputedStyle(node).filter.replace(/^none$/, ''); return { delay, duration, - css: t => `filter: blur(${t * f})` + css: (t, u) => `opacity: ${t}; filter: ${f} blur(${u * amount}px);` }; }