コンテンツにスキップ
トップに戻る
このページについて

@keyframes

Stylusは、波括弧付きと波括弧なしの両方の`@keyframes`をサポートしています。また、@keyframesの名前またはステップの両方で補間を使用することもできます。

$keyframe-name = pulse
@keyframes {$keyframe-name}
  for i in 0..10
    {10% * i}
      opacity (i/10)
$keyframe-name = pulse
@keyframes {$keyframe-name}
  for i in 0..10
    {10% * i}
      opacity (i/10)

出力 (展開されたプレフィックスは省略)

@keyframes pulse {
  0% {
    opacity: 0;
  }
  20% {
    opacity: 0.2;
  }
  40% {
    opacity: 0.4;
  }
  60% {
    opacity: 0.6;
  }
  80% {
    opacity: 0.8;
  }
  100% {
    opacity: 1;
  }
}
@keyframes pulse {
  0% {
    opacity: 0;
  }
  20% {
    opacity: 0.2;
  }
  40% {
    opacity: 0.4;
  }
  60% {
    opacity: 0.6;
  }
  80% {
    opacity: 0.8;
  }
  100% {
    opacity: 1;
  }
}

展開

`@keyframes`を使用すると、ルールは`vendors`変数(デフォルト:`moz webkit o ms official`)で定義されたベンダープレフィックスに自動的に展開されます。これは、展開を即座に有効にするために、いつでも変更できることを意味します。

Stylus 1.0に移行する際に、`@keyframes`をプレフィックス付きの@ルールに展開する機能は削除されることに注意してください。

例として、以下を検討してください。

@keyframes foo {
  from {
    color: black
  }
  to {
    color: white
  }
}
@keyframes foo {
  from {
    color: black
  }
  to {
    color: white
  }
}

これは、3つのデフォルトベンダーと公式構文に展開されます。

@-moz-keyframes foo {
  from {
    color: #000;
  }
  to {
    color: #fff;
  }
}
@-webkit-keyframes foo {
  from {
    color: #000;
  }
  to {
    color: #fff;
  }
}
@-o-keyframes foo {
  from {
    color: #000;
  }
  to {
    color: #fff;
  }
}
@keyframes foo {
  from {
    color: #000;
  }
  to {
    color: #fff;
  }
}
@-moz-keyframes foo {
  from {
    color: #000;
  }
  to {
    color: #fff;
  }
}
@-webkit-keyframes foo {
  from {
    color: #000;
  }
  to {
    color: #fff;
  }
}
@-o-keyframes foo {
  from {
    color: #000;
  }
  to {
    color: #fff;
  }
}
@keyframes foo {
  from {
    color: #000;
  }
  to {
    color: #fff;
  }
}

公式構文のみに制限したい場合は、単に`vendors`を変更します。

vendors = official

@keyframes foo {
  from {
    color: black
  }
  to {
    color: white
  }
}
vendors = official

@keyframes foo {
  from {
    color: black
  }
  to {
    color: white
  }
}

出力

@keyframes foo {
  from {
    color: #000;
  }
  to {
    color: #fff;
  }
}
@keyframes foo {
  from {
    color: #000;
  }
  to {
    color: #fff;
  }
}