                      :strokeOpacity "0"
                      :easing (translate-ease easing)
                      :delay delay
-                     :duration duration}))))
+                     :class "itx-hidden"
+                     :duration duration}))))
+
+(defn- run-toggle-interaction
+  [{:keys [element easing delay duration
+           animation direction] :as itx}]
+  (let [dom (dom/get-element (str "shape-" element))]
+    (if (= (:class dom) "itx-hidden")
+      (run-show-interaction itx)
+      (run-hide-interaction itx))))
 
 (defn- run-opacity-interaction
   [{:keys [element opacity easing delay

    :moveby (run-moveby-interaction itx)
    :show (run-show-interaction itx)
    :hide (run-hide-interaction itx)
    :size (run-size-interaction itx)
    :opacity (run-opacity-interaction itx)
    :color (run-color-interaction itx)

    (case (:type shape)
      :icon (run-size-interaction-rect shape opts)
      :image (run-size-interaction-rect shape opts)
      :rect (run-size-interaction-rect shape opts)
      :circle (run-size-interaction-circle shape opts))))

(defn- run-gotourl-interaction
  [{:keys [url]}]
