@use "../../variables/index" as *;

// Vendor prefixes are now handled automatically by Autoprefixer.
// These mixins remain for backward compatibility but no longer add vendor prefixes.

// Animations
@mixin animation($animation) {
  animation: $animation;
}
@mixin animation-name($name) {
  animation-name: $name;
}
@mixin animation-duration($duration) {
  animation-duration: $duration;
}
@mixin animation-timing-function($timing-function) {
  animation-timing-function: $timing-function;
}
@mixin animation-delay($delay) {
  animation-delay: $delay;
}
@mixin animation-iteration-count($iteration-count) {
  animation-iteration-count: $iteration-count;
}
@mixin animation-direction($direction) {
  animation-direction: $direction;
}
@mixin animation-fill-mode($fill-mode) {
  animation-fill-mode: $fill-mode;
}

// Backface visibility
// Prevent browsers from flickering when using CSS 3D transforms.
// Default value is `visible`, but can be changed to `hidden`

@mixin backface-visibility($visibility) {
  backface-visibility: $visibility;
}

// Drop shadows
@mixin box-shadow($shadow) {
  box-shadow: $shadow;
}

// Box sizing
@mixin box-sizing($boxmodel) {
  box-sizing: $boxmodel;
}

// CSS3 Content Columns
@mixin content-columns($column-count, $column-gap: $grid-gutter-width) {
  column-count: $column-count;
  column-gap: $column-gap;
}

// Optional hyphenation
@mixin hyphens($mode: auto) {
  overflow-wrap: break-word;
  hyphens: $mode;
}

// Placeholder text - REMOVED: Duplicate mixin, use placeholder() from _forms.scss instead

// Transformations
@mixin scale($ratioX, $ratioY: null) {
  @if $ratioY {
    transform: scale($ratioX, $ratioY);
  } @else {
    transform: scale($ratioX);
  }
}
@mixin scaleX($ratio) {
  transform: scaleX($ratio);
}
@mixin scaleY($ratio) {
  transform: scaleY($ratio);
}
@mixin skew($x, $y) {
  transform: skewX($x) skewY($y);
}
@mixin translate($x:0, $y:0) {
  transform: translate($x, $y);
}
@mixin translate3d($x, $y, $z) {
  transform: translate3d($x, $y, $z);
}
@mixin rotate($degrees) {
  transform: rotate($degrees);
}
@mixin rotateX($degrees) {
  transform: rotateX($degrees);
}
@mixin rotateY($degrees) {
  transform: rotateY($degrees);
}
@mixin perspective($perspective) {
  perspective: $perspective;
}
@mixin perspective-origin($perspective) {
  perspective-origin: $perspective;
}
@mixin transform-origin($origin) {
  transform-origin: $origin;
}

// Transitions
@mixin transition($transition) {
  transition: $transition;
}
@mixin transition-property($transition-property) {
  transition-property: $transition-property;
}
@mixin transition-delay($transition-delay) {
  transition-delay: $transition-delay;
}
@mixin transition-duration($transition-duration) {
  transition-duration: $transition-duration;
}
@mixin transition-timing-function($timing-function) {
  transition-timing-function: $timing-function;
}
@mixin transition-transform($transition) {
  transition: transform $transition;
}

// User select for selecting text on the page
@mixin user-select($select) {
  user-select: $select;
}

@mixin filter($filter) {
  filter: $filter;
}
