     # binding event listeners to triggers, which can improve performance and
     # allow dynamic binding.
     constructor: (@$triggers, options, @$context) ->
+      for name, animation of options.animations when name isnt 'base'
+        _.defaults animation, options.animations.base
 
     init: ->
       # Bind handler methods here after class setup completes.

      @debugLog 'update direction class', compoundDirection
      $content = @selectByClass 'content'
      $content.text $trigger.data @attr('content')
      if @shouldAnimate.resize
        contentSize = @sizeForTrigger $trigger, (contentOnly = yes)
        $content
          .width contentSize.width

        (classNames[key] = "#{pre}#{key}") for key in keys
        classNames.tip = 'js-tip'
        classNames
      # - `animations` are very configurable. Individual animations can be
      #   customized and will default to the base animation settings as needed.
      animations:
        base:
          delay: 0
          duration: 200
          easing: 'ease-in-out'
          enabled: yes
        show:
          delay: 200
        hide:
          delay: 200
        resize:
          delay: 300

  hlf.tip.snap =
    debug: off
