One possible way is to use the Light Path node.
This hides transmission light - when light goes through glass
But keeps light dispersion - when light is scattered inside glass/waterdrops/steam
Example using a glass pane, Suzanne and a mesh light.
Note the light dispersion on the glass pane
There are a few methods you could use to achieve this.
The most practical ones are:
Material with a light path node
for a simple scene like yours, I'd recommend the material option as you just need to add 3 nodes to your material setup and you can see the result in the viewport.
In my case the sphere is the refractive object, and the cube is ...
Using the Wireframe modifier and Freestyle seems to me to be using two conflicting tools to do the same job, The modifier doubles up existing edges, which overlap in the Freestyle output.
At first sight, unless you have special reasons, an option would be to remove the wireframe modifier, and leave the transparency to Freestyle.
Here, the cube's material ...
I needed to deselect Selected Only from the Curve Editor header and use the search bar or enter all the nested properties of the material.
The material had to be selected within the project panel where you see all your object hierarchy.
After that I could add keyframes, and use Shift + E to add a Cycle F-Curve modifier.
If you want to make the object transparent, their are 2 ways to do that:
Use transparent material (as you have already used), Add it to a mix shader whith the respective shader you want it to mix with and change the blend mode for the object to "Alpha blend".
Now, you use this method when you want to create an object with just transparency, that means ...
Since your render is black&white you can use this:
Set object material with Emission shader.
In Properties Editor > Render Tab > Film > enable Transparent
Enable Properties Editor > Render Properties > Bloom.
To control blooming you can do it here or in compositor with RGB Curve node (or ColorRamp) to make effect stronger or lighter.
To know why this is happening, first you have to understand how alpha works. A transparent image(image with 0 alpha) doesn't mean it doesn't have any color(rgb values).
For example: A pixel can have red value of 255, green value of 100, blue value of 0 and alpha value of 0 (RGBA=(255,100,0,0))
In the both of your image, the RGB value is the same, but they ...
There is a chance that this is because your smoke material's density is too low and the pixels of your render only have rgb values but no alpha value, which is why the smoke can only be seen if transparent is turned off.
You can check to see if this is the case by unchecking use alpha in the composite node, and see if there is any color.
It appears that alpha channels no longer work with images stored in empties in Blender 2.8.
The workaround, which is probably a better solution, is to load the image as a material into a plane object. The scene then must be viewed with Viewport Shading either "Material Preview" or "Rendered", as the material will not be visible from "Solid" mode, as ...
You have to go to addon Interface: 3D Viewport Pie Menu and find the shading pie in the drop down list and uncheck it, then the default pie menu will come back.
Otherwise ,you can use Alt + Z to enable the X-Ray Mode.