input type="range"のいろいろなCSSサンプル

input type="range"、存在は知っているのになかなか使わないタグの1つかなと思います。
先日初めて使った際におもったよりCSSサンプルが転がっていなかったので
最近若者がよく使っている加工アプリ風のCSSを書いてみようと思います。

今回はスマホ用なので、PCでの表示は考慮しておりません。
また、Androidのアプリを参考にしているのでiPhone版だと違う場合があります。

## HTML（共通）

```html
<input type="range" class="input-range" value="100" min="0" max="200" data-unit="%">
```

デフォルトはこんな見た目です。

<input type="range" class="input-range" value="100" min="0" max="200" data-unit="%">

## Instagram風

![image](https://qiita-image-store.s3.amazonaws.com/0/146963/8752635a-3ec7-8b81-9d33-bf0b51c32ed1.png)

```scss
.input-range[type="range"] {
  -webkit-appearance: none;
  appearance: none;
  background-color: #c7c7c7;
  height: 2px;
  width: 100%;

  &:focus,
  &:active {
    outline: none;
  }

  &::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
    position: relative;
    border: none;
    width: 12px;
    height: 12px;
    display: block;
    background-color: #262626;
    border-radius: 50%;
    -webkit-border-radius: 50%;
  }
}
```

## Twitter風

Twitterの公式アプリで写真をアップした際にフィルタ編集するときに出るスライダーです。

![image](https://qiita-image-store.s3.amazonaws.com/0/146963/f967b250-f3db-345a-8e8a-c61448544a2f.png)

つまみを移動させるとき（active）
![image](https://qiita-image-store.s3.amazonaws.com/0/146963/107e02fb-593c-f5ed-2f9a-33e84b8d928c.png)


```scss
.input-range[type="range"] {
  -webkit-appearance: none;
  appearance: none;
  background-color: #fff;
  height: 5px;
  width: 100%;
  border-radius: 6px;

  &:focus,
  &:active {
    outline: none;
  }

  &::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
    position: relative;
    border: 2px solid rgba(0, 0, 0, .7);
    width: 22px;
    height: 22px;
    display: block;
    background-color: #fff;
    border-radius: 50%;
    -webkit-border-radius: 50%;
  }

  &:active::-webkit-slider-thumb {
    box-shadow: 0 0 0 4px rgba(255, 255, 255, .6);
    transition: .4s;
  }
}
```

## LINE camera風
LINEカラーの緑が映えますね。

![image](https://qiita-image-store.s3.amazonaws.com/0/146963/9c3eca96-71bb-b689-b678-4dc6d9c2d868.png)

```scss
.input-range[type="range"] {
  -webkit-appearance: none;
  appearance: none;
  background-color: #eaeaea;
  height: 2px;
  width: 100%;
  border-radius: 6px;

  &:focus,
  &:active {
    outline: none;
  }

  &::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
    position: relative;
    width: 22px;
    height: 22px;
    display: block;
    background-color: #07be19;
    border-radius: 50%;
    -webkit-border-radius: 50%;
  }
}
```

## snow風
実はスタンプ以外にもフィルターもあるsnow:blush:

![image](https://qiita-image-store.s3.amazonaws.com/0/146963/c52925de-fb7c-52c7-c485-11968f71a2b5.png)

```scss
.input-range[type="range"] {
  -webkit-appearance: none;
  appearance: none;
  background-color: rgba(255, 255, 255, .7);
  height: 2px;
  width: 100%;
  border-radius: 6px;

  &:focus,
  &:active {
    outline: none;
  }

  &::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
    position: relative;
    width: 20px;
    height: 20px;
    display: block;
    border: 1px solid #717171;
    background-color: #fff;
    border-radius: 50%;
    -webkit-border-radius: 50%;
  }
}
```

## BeautyPlus風 

ピンクがかわいいです:heart_eyes:

![image](https://qiita-image-store.s3.amazonaws.com/0/146963/674a7cb5-8dc9-5f65-d737-33c55dd48f31.png)

```scss
.input-range[type="range"] {
  -webkit-appearance: none;
  appearance: none;
  background-color: #ffdae7;
  height: 2px;
  width: 100%;
  border-radius: 6px;

  &:focus,
  &:active {
    outline: none;
  }

  &::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
    position: relative;
    width: 20px;
    height: 20px;
    display: block;
    border: 2px solid #fb5986;
    background-color: #fff;
    border-radius: 50%;
    -webkit-border-radius: 50%;
  }
}
```

以上です:grinning:

こうしてみるとどのアプリも大きさやバーの太さがほぼ同じでした。
今回はCSSでデフォルトの変更だったので、動かしてバーに色を付けるところまでは行っていないのですが、
こちらの素敵なサンプルを参考にすると実装できるみたいです。

参考：[【HTML5】input[type="range"]をCSSとJSでカスタマイズ](http://jsdo.it/kingpanda/8UZS)