////
/// Helper mixins to add various pseudo selectors
/// @ignore http://sassmeister.com/gist/35c9c323d22eefdbf293 (by @csswizardry)
/// @group Selectors
////

/// Alias for `:any-link`
@mixin static {
  &:any-link {
    @content;
  }
}

/// Alias for `:is(:hover, :focus, :active)`
@mixin attention {
  &:is(:hover, :focus, :active) {
    @content;
  }
}

/// Alias for `:is(:any-link, :hover, :focus, :active)`
@mixin all-states {
  &:is(:any-link, :hover, :focus, :active) {
    @content;
  }
}

/// Like `attention` but only applies the focus state when the user is
/// navigating with the keyboard (via the `what-input` library setting
/// `data-whatinput="keyboard"` on a root ancestor). Useful for toggle
/// buttons that otherwise retain focus styles after a mouse click.
@mixin button-attention {
  &:hover,
  &:active,
  [data-whatinput="keyboard"] &:focus,
  .no-js &:focus {
    @content;
  }
}
