hokkey
6/26/2016 - 12:46 PM

黄金比・白銀比・その他の比率を手軽に扱うためのSCSS

黄金比・白銀比・その他の比率を手軽に扱うためのSCSS

// _aspect-ratio.scss

// 数学

// 黄金比((1+√5)/2)
$ratio-golden: 1.618;
// 黄金比・逆比
$ratio-golden-rev: 1/$ratio-golden;

// 白銀比(√2:A版・B版)
$ratio-silver: 1.41421356237;
// 白銀比・逆比
$ratio-silver-rev: 1/$ratio-silver;

// モニタサイズ

// 4:3
$ratio-4-3: 3/4;
$ratio-4-3-rev: 4/3;

// 16:9
$ratio-16-9: 9/16;
$ratio-16-9-rev: 16/9;

// 16:10
$ratio-16-10: 10/16;
$ratio-16-10-rev: 16/10;

// 写真

// L版(3.5:5)
$ratio-l: 5/3.5;
$ratio-l-rev: 3.5/5;

// 関数

// 数値に比率を適用して返す
@function val-times-ratio($val, $ratio, $round: false) {
    $result: $val * $ratio;
    @if $round == true {
        $result: round($result);
    }
    @return $result;
}

// ミックスイン

// 絶対値で横幅から高さを決める
@mixin set-absolute-height-by-ratio($width-px, $ratio) {
    width: $width-px;
    height: val-times-ratio($width-px);
}

// 現在の横幅から比率に応じて高さを決める
@mixin set-relative-height-by-ratio($ratio) {
    &:before {
        content: '';
        display: block;
        padding-top: 100% * $ratio;
    }
}