GIPainter-base 0.5.1 → 0.5.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/assets/stylesheets/Base/_typography.scss +346 -346
- data/assets/stylesheets/Functions/_typography.scss +38 -38
- data/assets/stylesheets/Mixins/_colors.scss +53 -53
- data/assets/stylesheets/Mixins/_image.scss +53 -53
- data/assets/stylesheets/Mixins/_list.scss +69 -69
- data/assets/stylesheets/Mixins/_margin.scss +45 -45
- data/assets/stylesheets/Mixins/_media-query.scss +48 -48
- data/assets/stylesheets/Mixins/_miscellaneous.scss +41 -41
- data/assets/stylesheets/Mixins/_opacity.scss +26 -26
- data/assets/stylesheets/Mixins/_padding.scss +29 -29
- data/assets/stylesheets/Mixins/_position.scss +107 -107
- data/assets/stylesheets/Mixins/_pseudo.scss +108 -108
- data/assets/stylesheets/Mixins/_size.scss +72 -72
- data/assets/stylesheets/Mixins/_typography.scss +375 -370
- data/assets/stylesheets/Variables/_colors.scss +79 -70
- data/assets/stylesheets/Variables/_media-query.scss +27 -20
- data/assets/stylesheets/Variables/_typography.scss +69 -69
- data/assets/stylesheets/Variables/_weight.scss +21 -21
- data/assets/stylesheets/_GIPainter-base.scss +18 -18
- data/lib/GIPainter-base/version.rb +2 -2
- data/templates/project/manifest.rb +6 -6
- metadata +3 -3
@@ -1,109 +1,109 @@
|
|
1
|
-
//-----------------------------------
|
2
|
-
// PSEUDO ELEMENTS MIXINS
|
3
|
-
//-----------------------------------
|
4
|
-
|
5
|
-
////
|
6
|
-
/// @access public
|
7
|
-
/// @group Mixins
|
8
|
-
/// @type string
|
9
|
-
////
|
10
|
-
|
11
|
-
/// Mixin helper set pseudo element.
|
12
|
-
/// @param {String} $display [block] - display of you pseudo element
|
13
|
-
/// @param {String} $pos [absolute] - position of your pseudo element
|
14
|
-
/// @param {String} $content [''] - content of your pseudo element
|
15
|
-
/// @example scss - Usage
|
16
|
-
/// .foo:after {
|
17
|
-
/// @include pseudo;
|
18
|
-
/// }
|
19
|
-
/// @example css - Result
|
20
|
-
/// .foo:after {
|
21
|
-
/// content: '';
|
22
|
-
/// display: block;
|
23
|
-
/// position: absolute;
|
24
|
-
/// }
|
25
|
-
|
26
|
-
@mixin pseudo($display: block, $pos: absolute, $content: ''){
|
27
|
-
@if type-of($pos) == list {
|
28
|
-
$coordinates: $pos;
|
29
|
-
$position: relative;
|
30
|
-
}
|
31
|
-
position: $pos;
|
32
|
-
content: $content;
|
33
|
-
display: $display;
|
34
|
-
}
|
35
|
-
|
36
|
-
/// Mixin helper to add clearfix pseudo elements
|
37
|
-
/// @param {String} $elements [after] - pseudo element selected (before, after)
|
38
|
-
/// @example scss - Usage
|
39
|
-
/// .foo {
|
40
|
-
/// @include clearfix(before);
|
41
|
-
/// }
|
42
|
-
/// @example css - Result
|
43
|
-
/// .foo:before {
|
44
|
-
/// display: table;
|
45
|
-
/// content: "";
|
46
|
-
/// position: static;
|
47
|
-
/// clear: both;
|
48
|
-
/// }
|
49
|
-
|
50
|
-
@mixin clearfix ($elements: after) {
|
51
|
-
&:#{$elements}{
|
52
|
-
@include pseudo(table, static);
|
53
|
-
clear: both;
|
54
|
-
}
|
55
|
-
}
|
56
|
-
|
57
|
-
/// Mixin helper to add clearfix pseudo elements
|
58
|
-
/// @param {Color} $color - color you want set to your triangle
|
59
|
-
/// @param {string} $direction - direction of your triangle (top, bottom, right, left)
|
60
|
-
/// @param {Length} $size [6px] - your triangle size
|
61
|
-
/// @param {string} $position [absolute] - position for your triangle (absolute, static, etc...)
|
62
|
-
/// @param {Length} $round [false] - radius of your triangle
|
63
|
-
/// @example scss - Usage
|
64
|
-
/// .foo:before {
|
65
|
-
/// @include triangle(red, bottom, $round: 3px);
|
66
|
-
/// }
|
67
|
-
/// @example css - Result
|
68
|
-
/// .foo:before {
|
69
|
-
/// display: block;
|
70
|
-
/// content: "";
|
71
|
-
/// position: absolute;
|
72
|
-
/// width: 0;
|
73
|
-
/// height: 0;
|
74
|
-
/// border-radius: 3px;
|
75
|
-
/// border-left: 6px solid transparent;
|
76
|
-
/// border-right: 6px solid transparent;
|
77
|
-
/// border-top: 6px solid red;
|
78
|
-
/// margin-top: -2.4px;
|
79
|
-
/// }
|
80
|
-
|
81
|
-
@mixin triangle($color, $direction, $size: 6px, $position: absolute, $round: false){
|
82
|
-
@include pseudo($pos: $position);
|
83
|
-
width: 0;
|
84
|
-
height: 0;
|
85
|
-
@if $round {
|
86
|
-
border-radius: $round;
|
87
|
-
}
|
88
|
-
@if $direction == bottom {
|
89
|
-
border-left: $size solid transparent;
|
90
|
-
border-right: $size solid transparent;
|
91
|
-
border-top: $size solid $color;
|
92
|
-
margin-top: 0 - round( $size / 2.5 );
|
93
|
-
} @else if $direction == top {
|
94
|
-
border-left: $size solid transparent;
|
95
|
-
border-right: $size solid transparent;
|
96
|
-
border-bottom: $size solid $color;
|
97
|
-
margin-bottom: 0 - round( $size / 2.5 );
|
98
|
-
} @else if $direction == right {
|
99
|
-
border-top: $size solid transparent;
|
100
|
-
border-bottom: $size solid transparent;
|
101
|
-
border-left: $size solid $color;
|
102
|
-
margin-right: -$size;
|
103
|
-
} @else if $direction == left {
|
104
|
-
border-top: $size solid transparent;
|
105
|
-
border-bottom: $size solid transparent;
|
106
|
-
border-right: $size solid $color;
|
107
|
-
margin-left: -$size;
|
108
|
-
}
|
1
|
+
//-----------------------------------
|
2
|
+
// PSEUDO ELEMENTS MIXINS
|
3
|
+
//-----------------------------------
|
4
|
+
|
5
|
+
////
|
6
|
+
/// @access public
|
7
|
+
/// @group Mixins
|
8
|
+
/// @type string
|
9
|
+
////
|
10
|
+
|
11
|
+
/// Mixin helper set pseudo element.
|
12
|
+
/// @param {String} $display [block] - display of you pseudo element
|
13
|
+
/// @param {String} $pos [absolute] - position of your pseudo element
|
14
|
+
/// @param {String} $content [''] - content of your pseudo element
|
15
|
+
/// @example scss - Usage
|
16
|
+
/// .foo:after {
|
17
|
+
/// @include pseudo;
|
18
|
+
/// }
|
19
|
+
/// @example css - Result
|
20
|
+
/// .foo:after {
|
21
|
+
/// content: '';
|
22
|
+
/// display: block;
|
23
|
+
/// position: absolute;
|
24
|
+
/// }
|
25
|
+
|
26
|
+
@mixin pseudo($display: block, $pos: absolute, $content: ''){
|
27
|
+
@if type-of($pos) == list {
|
28
|
+
$coordinates: $pos;
|
29
|
+
$position: relative;
|
30
|
+
}
|
31
|
+
position: $pos;
|
32
|
+
content: $content;
|
33
|
+
display: $display;
|
34
|
+
}
|
35
|
+
|
36
|
+
/// Mixin helper to add clearfix pseudo elements
|
37
|
+
/// @param {String} $elements [after] - pseudo element selected (before, after)
|
38
|
+
/// @example scss - Usage
|
39
|
+
/// .foo {
|
40
|
+
/// @include clearfix(before);
|
41
|
+
/// }
|
42
|
+
/// @example css - Result
|
43
|
+
/// .foo:before {
|
44
|
+
/// display: table;
|
45
|
+
/// content: "";
|
46
|
+
/// position: static;
|
47
|
+
/// clear: both;
|
48
|
+
/// }
|
49
|
+
|
50
|
+
@mixin clearfix ($elements: after) {
|
51
|
+
&:#{$elements}{
|
52
|
+
@include pseudo(table, static);
|
53
|
+
clear: both;
|
54
|
+
}
|
55
|
+
}
|
56
|
+
|
57
|
+
/// Mixin helper to add clearfix pseudo elements
|
58
|
+
/// @param {Color} $color - color you want set to your triangle
|
59
|
+
/// @param {string} $direction - direction of your triangle (top, bottom, right, left)
|
60
|
+
/// @param {Length} $size [6px] - your triangle size
|
61
|
+
/// @param {string} $position [absolute] - position for your triangle (absolute, static, etc...)
|
62
|
+
/// @param {Length} $round [false] - radius of your triangle
|
63
|
+
/// @example scss - Usage
|
64
|
+
/// .foo:before {
|
65
|
+
/// @include triangle(red, bottom, $round: 3px);
|
66
|
+
/// }
|
67
|
+
/// @example css - Result
|
68
|
+
/// .foo:before {
|
69
|
+
/// display: block;
|
70
|
+
/// content: "";
|
71
|
+
/// position: absolute;
|
72
|
+
/// width: 0;
|
73
|
+
/// height: 0;
|
74
|
+
/// border-radius: 3px;
|
75
|
+
/// border-left: 6px solid transparent;
|
76
|
+
/// border-right: 6px solid transparent;
|
77
|
+
/// border-top: 6px solid red;
|
78
|
+
/// margin-top: -2.4px;
|
79
|
+
/// }
|
80
|
+
|
81
|
+
@mixin triangle($color, $direction, $size: 6px, $position: absolute, $round: false){
|
82
|
+
@include pseudo($pos: $position);
|
83
|
+
width: 0;
|
84
|
+
height: 0;
|
85
|
+
@if $round {
|
86
|
+
border-radius: $round;
|
87
|
+
}
|
88
|
+
@if $direction == bottom {
|
89
|
+
border-left: $size solid transparent;
|
90
|
+
border-right: $size solid transparent;
|
91
|
+
border-top: $size solid $color;
|
92
|
+
margin-top: 0 - round( $size / 2.5 );
|
93
|
+
} @else if $direction == top {
|
94
|
+
border-left: $size solid transparent;
|
95
|
+
border-right: $size solid transparent;
|
96
|
+
border-bottom: $size solid $color;
|
97
|
+
margin-bottom: 0 - round( $size / 2.5 );
|
98
|
+
} @else if $direction == right {
|
99
|
+
border-top: $size solid transparent;
|
100
|
+
border-bottom: $size solid transparent;
|
101
|
+
border-left: $size solid $color;
|
102
|
+
margin-right: -$size;
|
103
|
+
} @else if $direction == left {
|
104
|
+
border-top: $size solid transparent;
|
105
|
+
border-bottom: $size solid transparent;
|
106
|
+
border-right: $size solid $color;
|
107
|
+
margin-left: -$size;
|
108
|
+
}
|
109
109
|
}
|
@@ -1,73 +1,73 @@
|
|
1
|
-
//-----------------------------------
|
2
|
-
// IMAGE MIXINS
|
3
|
-
//-----------------------------------
|
4
|
-
|
5
|
-
////
|
6
|
-
/// @access public
|
7
|
-
/// @group Mixins
|
8
|
-
/// @type string
|
9
|
-
////
|
10
|
-
|
11
|
-
/// Mixin helper set responsive ratio.
|
12
|
-
/// @param {Length} $x - width of you image/media/block
|
13
|
-
/// @param {Length} $y - height of you image/media/block
|
14
|
-
/// @param {Boolean} $pseudo [false] - set true to make pseudo element with repsonsive ratio
|
15
|
-
/// @example scss - Usage
|
16
|
-
/// .foo {
|
17
|
-
/// @include responsive-ratio(1,1, true);
|
18
|
-
/// }
|
19
|
-
/// @example css - Result
|
20
|
-
/// .foo:before {
|
21
|
-
/// display: block;
|
22
|
-
/// position: relative;
|
23
|
-
/// content: '';
|
24
|
-
/// width: 100%;
|
25
|
-
/// padding-top: 100%;
|
26
|
-
/// }
|
27
|
-
|
28
|
-
@mixin responsive-ratio($x,$y, $pseudo: false) {
|
29
|
-
$padding: unquote( ( $y / $x ) * 100 + '%' );
|
30
|
-
@if $pseudo {
|
31
|
-
&:before {
|
32
|
-
@include pseudo($pos: relative);
|
33
|
-
width: 100%;
|
34
|
-
padding-top: $padding;
|
35
|
-
}
|
36
|
-
} @else {
|
37
|
-
padding-top: $padding;
|
38
|
-
}
|
39
|
-
}
|
40
|
-
|
41
|
-
/// Mixin helper to sizing element
|
42
|
-
/// @param {Length} $width [auto] - element width
|
43
|
-
/// @param {Length} $height [auto] - element height
|
44
|
-
/// @example scss - Usage
|
45
|
-
/// .foo {
|
46
|
-
/// @include size(300px, 30px);
|
47
|
-
/// }
|
48
|
-
/// @example css - Result
|
49
|
-
/// .foo {
|
50
|
-
/// width: 300px;
|
51
|
-
/// height: 30px;
|
52
|
-
/// }
|
53
|
-
|
54
|
-
@mixin size($width: auto, $height: auto){
|
55
|
-
width: $width;
|
56
|
-
height: $height;
|
57
|
-
}
|
58
|
-
|
59
|
-
/// Mixin helper to sizing element square
|
60
|
-
/// @param {Length} $size [auto] - element size
|
61
|
-
/// @example scss - Usage
|
62
|
-
/// .foo {
|
63
|
-
/// @include square(300px);
|
64
|
-
/// }
|
65
|
-
/// @example css - Result
|
66
|
-
/// .foo {
|
67
|
-
/// width: 300px;
|
68
|
-
/// height: 300px;
|
69
|
-
/// }
|
70
|
-
|
71
|
-
@mixin square($size: auto) {
|
72
|
-
@include size($size, $size);
|
1
|
+
//-----------------------------------
|
2
|
+
// IMAGE MIXINS
|
3
|
+
//-----------------------------------
|
4
|
+
|
5
|
+
////
|
6
|
+
/// @access public
|
7
|
+
/// @group Mixins
|
8
|
+
/// @type string
|
9
|
+
////
|
10
|
+
|
11
|
+
/// Mixin helper set responsive ratio.
|
12
|
+
/// @param {Length} $x - width of you image/media/block
|
13
|
+
/// @param {Length} $y - height of you image/media/block
|
14
|
+
/// @param {Boolean} $pseudo [false] - set true to make pseudo element with repsonsive ratio
|
15
|
+
/// @example scss - Usage
|
16
|
+
/// .foo {
|
17
|
+
/// @include responsive-ratio(1,1, true);
|
18
|
+
/// }
|
19
|
+
/// @example css - Result
|
20
|
+
/// .foo:before {
|
21
|
+
/// display: block;
|
22
|
+
/// position: relative;
|
23
|
+
/// content: '';
|
24
|
+
/// width: 100%;
|
25
|
+
/// padding-top: 100%;
|
26
|
+
/// }
|
27
|
+
|
28
|
+
@mixin responsive-ratio($x,$y, $pseudo: false) {
|
29
|
+
$padding: unquote( ( $y / $x ) * 100 + '%' );
|
30
|
+
@if $pseudo {
|
31
|
+
&:before {
|
32
|
+
@include pseudo($pos: relative);
|
33
|
+
width: 100%;
|
34
|
+
padding-top: $padding;
|
35
|
+
}
|
36
|
+
} @else {
|
37
|
+
padding-top: $padding;
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
/// Mixin helper to sizing element
|
42
|
+
/// @param {Length} $width [auto] - element width
|
43
|
+
/// @param {Length} $height [auto] - element height
|
44
|
+
/// @example scss - Usage
|
45
|
+
/// .foo {
|
46
|
+
/// @include size(300px, 30px);
|
47
|
+
/// }
|
48
|
+
/// @example css - Result
|
49
|
+
/// .foo {
|
50
|
+
/// width: 300px;
|
51
|
+
/// height: 30px;
|
52
|
+
/// }
|
53
|
+
|
54
|
+
@mixin size($width: auto, $height: auto){
|
55
|
+
width: $width;
|
56
|
+
height: $height;
|
57
|
+
}
|
58
|
+
|
59
|
+
/// Mixin helper to sizing element square
|
60
|
+
/// @param {Length} $size [auto] - element size
|
61
|
+
/// @example scss - Usage
|
62
|
+
/// .foo {
|
63
|
+
/// @include square(300px);
|
64
|
+
/// }
|
65
|
+
/// @example css - Result
|
66
|
+
/// .foo {
|
67
|
+
/// width: 300px;
|
68
|
+
/// height: 300px;
|
69
|
+
/// }
|
70
|
+
|
71
|
+
@mixin square($size: auto) {
|
72
|
+
@include size($size, $size);
|
73
73
|
}
|
@@ -1,371 +1,376 @@
|
|
1
|
-
//-----------------------------------
|
2
|
-
// TYPOGRAPHY MIXINS
|
3
|
-
//-----------------------------------
|
4
|
-
|
5
|
-
////
|
6
|
-
/// @access public
|
7
|
-
/// @group Mixins
|
8
|
-
/// @type string
|
9
|
-
////
|
10
|
-
|
11
|
-
/// Mixin helper to convert font-size pixel to rem.
|
12
|
-
/// @param {Number} $font-size [14] - font-size in pixel
|
13
|
-
/// @example scss - Usage
|
14
|
-
/// .foo {
|
15
|
-
/// @include font-size(16px);
|
16
|
-
/// }
|
17
|
-
/// @example css - Result
|
18
|
-
/// .foo {
|
19
|
-
/// font-size: 16px;
|
20
|
-
/// font-size: 1.142857rem;
|
21
|
-
/// }
|
22
|
-
|
23
|
-
@mixin font-size($font-size: 14) {
|
24
|
-
font-size: $font-size;
|
25
|
-
font-size: ($font-size / $font-size-base) * 1rem;
|
26
|
-
}
|
27
|
-
|
28
|
-
/// Mixin helper to Generates line-height values in both pixels and rems.
|
29
|
-
/// @param {Number} $height-value [14] - Height value
|
30
|
-
/// @example scss - Usage
|
31
|
-
/// .foo {
|
32
|
-
/// @include line-height(14);
|
33
|
-
/// }
|
34
|
-
/// @example css - Result
|
35
|
-
/// .foo {
|
36
|
-
/// line-height: 14px;
|
37
|
-
/// line-height: 1rem;
|
38
|
-
/// }
|
39
|
-
@mixin line-height($height-value: 14) {
|
40
|
-
line-height: $height-value;
|
41
|
-
line-height: ($height-value / $font-size-base) * 1rem;
|
42
|
-
}
|
43
|
-
|
44
|
-
/// Mixin helper to output '@font-face'
|
45
|
-
/// @param {String} $font-family - font-family name
|
46
|
-
/// @param {String} $file-path - path to file without extension
|
47
|
-
/// @param {String} $weight [normal] - weight of your font (bold, normal, 100, etc...)
|
48
|
-
/// @param {String} $style [normal] - style of your font (italic, oblique, normal, etc...)
|
49
|
-
/// @param {Array} $formats [eot woff2 woff ttf svg] - formats of your font files
|
50
|
-
/// @example scss - Usage
|
51
|
-
/// @include font-face("Arvo", "fonts/arvo-regular-webfont");
|
52
|
-
/// @example css - Result
|
53
|
-
/// @font-face {
|
54
|
-
/// font-family: "Arvo";
|
55
|
-
/// font-weight: normal;
|
56
|
-
/// font-style: normal;
|
57
|
-
/// src: url('fonts/arvo-regular-webfont.eot');
|
58
|
-
/// src: url('fonts/arvo-regular-webfont.eot?#iefix') format('embedded-opentype'),
|
59
|
-
/// url('fonts/arvo-regular-webfont.woff2') format('woff2'),
|
60
|
-
/// url('fonts/arvo-regular-webfont.woff') format('woff'),
|
61
|
-
/// url('fonts/arvo-regular-webfont.ttf') format('truetype'),
|
62
|
-
/// url('fonts/arvo-regular-webfont.svg#svgFontName') format('svg');
|
63
|
-
/// }
|
64
|
-
|
65
|
-
@mixin font-face ($font-family, $file-path, $weight: normal, $style: normal, $formats: eot woff2 woff ttf svg) {
|
66
|
-
@if index('italic' 'oblique', $weight) {
|
67
|
-
$style: $weight;
|
68
|
-
$weight: normal;
|
69
|
-
}
|
70
|
-
|
71
|
-
@font-face {
|
72
|
-
font-family: $font-family;
|
73
|
-
font-weight: $weight;
|
74
|
-
font-style: $style;
|
75
|
-
|
76
|
-
@if index($formats, eot) {
|
77
|
-
src: url('#{$file-path}.eot');
|
78
|
-
}
|
79
|
-
src: font-src($formats, $file-path, $font-family);
|
80
|
-
}
|
81
|
-
}
|
82
|
-
|
83
|
-
/// Mixin helper to indent first line of paragraphe text
|
84
|
-
/// @param {Length} $indent [1.5em] - Indentation size
|
85
|
-
/// @example scss - Usage
|
86
|
-
/// .foo {
|
87
|
-
/// @include indent-text();
|
88
|
-
/// }
|
89
|
-
/// @example css - Result
|
90
|
-
/// .foo {
|
91
|
-
/// margin: 0;
|
92
|
-
/// text-indent: 1.5em;
|
93
|
-
/// }
|
94
|
-
|
95
|
-
@mixin indent-text ($indent: 1.5em) {
|
96
|
-
p {
|
97
|
-
margin: 0;
|
98
|
-
text-indent: $indent;
|
99
|
-
}
|
100
|
-
}
|
101
|
-
|
102
|
-
/// Mixin helper to replace underline of link with border-bottom
|
103
|
-
/// @param {Color} $color [inherit] - color of border
|
104
|
-
/// @param {string} $style [solid] - style of border
|
105
|
-
/// @param {Length} $width [1px] - size of border
|
106
|
-
/// @example scss - Usage
|
107
|
-
/// .foo {
|
108
|
-
/// @include link-replace-underline(red, dotted);
|
109
|
-
/// }
|
110
|
-
/// @example css - Result
|
111
|
-
/// .foo {
|
112
|
-
/// text-decoration: none;
|
113
|
-
/// border-bottom-width: 1px;
|
114
|
-
/// border-bottom-style: dotted;
|
115
|
-
/// border-bottom-color: red;
|
116
|
-
/// }
|
117
|
-
|
118
|
-
@mixin link-replace-underline ($color: inherit, $style: solid, $width: 1px) {
|
119
|
-
text-decoration: none;
|
120
|
-
border-bottom-width: $width;
|
121
|
-
border-bottom-style: $style;
|
122
|
-
@if $color != inherit {
|
123
|
-
border-bottom-color: $color;
|
124
|
-
}
|
125
|
-
}
|
126
|
-
|
127
|
-
/// Mixin helper to add side line arround text
|
128
|
-
/// @param {Length} $height [1px] - height of side lines
|
129
|
-
/// @param {Length} $space [0.5em] - space around text
|
130
|
-
/// @param {Color} $color [inherit] - color of side lines
|
131
|
-
/// @param {string} $style [solid] - styles of side lines
|
132
|
-
/// @param {Length} $v-adjust [false] - adjust verticality
|
133
|
-
/// @param {Length} $double [false] - size between 2 lines in same side
|
134
|
-
/// @example scss - Usage
|
135
|
-
/// .foo {
|
136
|
-
/// @include side-lined(5px, $color: red, $double: 0.3em);
|
137
|
-
/// }
|
138
|
-
/// @example css - Result
|
139
|
-
/// .foo {
|
140
|
-
/// display: block;
|
141
|
-
/// overflow: hidden;
|
142
|
-
/// text-align: center;
|
143
|
-
/// }
|
144
|
-
/// .foo:before,
|
145
|
-
/// .foo:after {
|
146
|
-
/// content: "";
|
147
|
-
/// display: inline-block;
|
148
|
-
/// vertical-align: middle;
|
149
|
-
/// position: relative;
|
150
|
-
/// width: 50%;
|
151
|
-
/// border-top-style: solid;
|
152
|
-
/// border-top-width: 5px;
|
153
|
-
/// border-top-color: red;
|
154
|
-
/// height: 0.3em;
|
155
|
-
/// border-bottom-style: solid;
|
156
|
-
/// border-bottom-width: 5px;
|
157
|
-
/// border-bottom-color: $color;
|
158
|
-
/// }
|
159
|
-
|
160
|
-
@mixin side-lined ($height: 1px, $space: 0.5em, $color: inherit, $style: solid, $v-adjust: false, $double: false) {
|
161
|
-
display: block;
|
162
|
-
overflow: hidden;
|
163
|
-
text-align: center;
|
164
|
-
|
165
|
-
&:before,
|
166
|
-
&:after {
|
167
|
-
content: "";
|
168
|
-
display: inline-block;
|
169
|
-
vertical-align: middle;
|
170
|
-
position: relative;
|
171
|
-
width: 50%;
|
172
|
-
|
173
|
-
border-top-style: $style;
|
174
|
-
border-top-width: $height;
|
175
|
-
|
176
|
-
@if $color != inherit {
|
177
|
-
border-top-color: $color;
|
178
|
-
}
|
179
|
-
|
180
|
-
@if $v-adjust != false {
|
181
|
-
bottom: $v-adjust;
|
182
|
-
}
|
183
|
-
|
184
|
-
@if $double != false {
|
185
|
-
height: $double;
|
186
|
-
border-bottom-style: $style;
|
187
|
-
border-bottom-width: $height;
|
188
|
-
@if $color != inherit {
|
189
|
-
border-bottom-color: $color;
|
190
|
-
}
|
191
|
-
}
|
192
|
-
}
|
193
|
-
|
194
|
-
&:before {
|
195
|
-
right: $space;
|
196
|
-
margin-left: -50%;
|
197
|
-
}
|
198
|
-
&:after {
|
199
|
-
left: $space;
|
200
|
-
margin-right: -50%;
|
201
|
-
}
|
202
|
-
}
|
203
|
-
|
204
|
-
/// Mixin helper to truncate text
|
205
|
-
/// @param {Length} $truncation-boundary - Max size of your container
|
206
|
-
/// @example scss - Usage
|
207
|
-
/// .foo {
|
208
|
-
/// @include truncate(100%);
|
209
|
-
/// }
|
210
|
-
/// @example css - Result
|
211
|
-
/// .foo {
|
212
|
-
/// max-width: 100%;
|
213
|
-
/// white-space: nowrap;
|
214
|
-
/// overflow: hidden;
|
215
|
-
/// text-overflow: ellipsis;
|
216
|
-
/// }
|
217
|
-
|
218
|
-
@mixin truncate {
|
219
|
-
white-space: nowrap;
|
220
|
-
overflow: hidden;
|
221
|
-
text-overflow: ellipsis;
|
222
|
-
}
|
223
|
-
|
224
|
-
/// Mixin helper to get action selector
|
225
|
-
/// @param {Boolean} $active [false] - add active selector
|
226
|
-
/// @example scss - Usage
|
227
|
-
/// .foo {
|
228
|
-
/// @include selected {
|
229
|
-
/// background-color: red;
|
230
|
-
/// }
|
231
|
-
/// }
|
232
|
-
/// @example css - Result
|
233
|
-
/// .foo:hover,
|
234
|
-
/// .foo:focus{
|
235
|
-
/// background-color: red;
|
236
|
-
/// }
|
237
|
-
|
238
|
-
@mixin selected ($active: false) {
|
239
|
-
@if $active {
|
240
|
-
&:hover,
|
241
|
-
|
242
|
-
&:
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
///
|
260
|
-
///
|
261
|
-
///
|
262
|
-
///
|
263
|
-
/// @
|
264
|
-
///
|
265
|
-
///
|
266
|
-
/// text
|
267
|
-
///
|
268
|
-
///
|
269
|
-
///
|
270
|
-
///
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
///
|
293
|
-
///
|
294
|
-
///
|
295
|
-
///
|
296
|
-
/// @
|
297
|
-
///
|
298
|
-
///
|
299
|
-
/// text
|
300
|
-
///
|
301
|
-
///
|
302
|
-
///
|
303
|
-
///
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
@include
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
///
|
320
|
-
/// @
|
321
|
-
///
|
322
|
-
///
|
323
|
-
///
|
324
|
-
///
|
325
|
-
///
|
326
|
-
///
|
327
|
-
///
|
328
|
-
///
|
329
|
-
///
|
330
|
-
///
|
331
|
-
///
|
332
|
-
///
|
333
|
-
///
|
334
|
-
///
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
///
|
354
|
-
///
|
355
|
-
///
|
356
|
-
///
|
357
|
-
/// @
|
358
|
-
///
|
359
|
-
///
|
360
|
-
/// text
|
361
|
-
///
|
362
|
-
///
|
363
|
-
///
|
364
|
-
///
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
1
|
+
//-----------------------------------
|
2
|
+
// TYPOGRAPHY MIXINS
|
3
|
+
//-----------------------------------
|
4
|
+
|
5
|
+
////
|
6
|
+
/// @access public
|
7
|
+
/// @group Mixins
|
8
|
+
/// @type string
|
9
|
+
////
|
10
|
+
|
11
|
+
/// Mixin helper to convert font-size pixel to rem.
|
12
|
+
/// @param {Number} $font-size [14] - font-size in pixel
|
13
|
+
/// @example scss - Usage
|
14
|
+
/// .foo {
|
15
|
+
/// @include font-size(16px);
|
16
|
+
/// }
|
17
|
+
/// @example css - Result
|
18
|
+
/// .foo {
|
19
|
+
/// font-size: 16px;
|
20
|
+
/// font-size: 1.142857rem;
|
21
|
+
/// }
|
22
|
+
|
23
|
+
@mixin font-size($font-size: 14) {
|
24
|
+
font-size: $font-size;
|
25
|
+
font-size: ($font-size / $font-size-base) * 1rem;
|
26
|
+
}
|
27
|
+
|
28
|
+
/// Mixin helper to Generates line-height values in both pixels and rems.
|
29
|
+
/// @param {Number} $height-value [14] - Height value
|
30
|
+
/// @example scss - Usage
|
31
|
+
/// .foo {
|
32
|
+
/// @include line-height(14);
|
33
|
+
/// }
|
34
|
+
/// @example css - Result
|
35
|
+
/// .foo {
|
36
|
+
/// line-height: 14px;
|
37
|
+
/// line-height: 1rem;
|
38
|
+
/// }
|
39
|
+
@mixin line-height($height-value: 14) {
|
40
|
+
line-height: $height-value;
|
41
|
+
line-height: ($height-value / $font-size-base) * 1rem;
|
42
|
+
}
|
43
|
+
|
44
|
+
/// Mixin helper to output '@font-face'
|
45
|
+
/// @param {String} $font-family - font-family name
|
46
|
+
/// @param {String} $file-path - path to file without extension
|
47
|
+
/// @param {String} $weight [normal] - weight of your font (bold, normal, 100, etc...)
|
48
|
+
/// @param {String} $style [normal] - style of your font (italic, oblique, normal, etc...)
|
49
|
+
/// @param {Array} $formats [eot woff2 woff ttf svg] - formats of your font files
|
50
|
+
/// @example scss - Usage
|
51
|
+
/// @include font-face("Arvo", "fonts/arvo-regular-webfont");
|
52
|
+
/// @example css - Result
|
53
|
+
/// @font-face {
|
54
|
+
/// font-family: "Arvo";
|
55
|
+
/// font-weight: normal;
|
56
|
+
/// font-style: normal;
|
57
|
+
/// src: url('fonts/arvo-regular-webfont.eot');
|
58
|
+
/// src: url('fonts/arvo-regular-webfont.eot?#iefix') format('embedded-opentype'),
|
59
|
+
/// url('fonts/arvo-regular-webfont.woff2') format('woff2'),
|
60
|
+
/// url('fonts/arvo-regular-webfont.woff') format('woff'),
|
61
|
+
/// url('fonts/arvo-regular-webfont.ttf') format('truetype'),
|
62
|
+
/// url('fonts/arvo-regular-webfont.svg#svgFontName') format('svg');
|
63
|
+
/// }
|
64
|
+
|
65
|
+
@mixin font-face ($font-family, $file-path, $weight: normal, $style: normal, $formats: eot woff2 woff ttf svg) {
|
66
|
+
@if index('italic' 'oblique', $weight) {
|
67
|
+
$style: $weight;
|
68
|
+
$weight: normal;
|
69
|
+
}
|
70
|
+
|
71
|
+
@font-face {
|
72
|
+
font-family: $font-family;
|
73
|
+
font-weight: $weight;
|
74
|
+
font-style: $style;
|
75
|
+
|
76
|
+
@if index($formats, eot) {
|
77
|
+
src: url('#{$file-path}.eot');
|
78
|
+
}
|
79
|
+
src: font-src($formats, $file-path, $font-family);
|
80
|
+
}
|
81
|
+
}
|
82
|
+
|
83
|
+
/// Mixin helper to indent first line of paragraphe text
|
84
|
+
/// @param {Length} $indent [1.5em] - Indentation size
|
85
|
+
/// @example scss - Usage
|
86
|
+
/// .foo {
|
87
|
+
/// @include indent-text();
|
88
|
+
/// }
|
89
|
+
/// @example css - Result
|
90
|
+
/// .foo {
|
91
|
+
/// margin: 0;
|
92
|
+
/// text-indent: 1.5em;
|
93
|
+
/// }
|
94
|
+
|
95
|
+
@mixin indent-text ($indent: 1.5em) {
|
96
|
+
p {
|
97
|
+
margin: 0;
|
98
|
+
text-indent: $indent;
|
99
|
+
}
|
100
|
+
}
|
101
|
+
|
102
|
+
/// Mixin helper to replace underline of link with border-bottom
|
103
|
+
/// @param {Color} $color [inherit] - color of border
|
104
|
+
/// @param {string} $style [solid] - style of border
|
105
|
+
/// @param {Length} $width [1px] - size of border
|
106
|
+
/// @example scss - Usage
|
107
|
+
/// .foo {
|
108
|
+
/// @include link-replace-underline(red, dotted);
|
109
|
+
/// }
|
110
|
+
/// @example css - Result
|
111
|
+
/// .foo {
|
112
|
+
/// text-decoration: none;
|
113
|
+
/// border-bottom-width: 1px;
|
114
|
+
/// border-bottom-style: dotted;
|
115
|
+
/// border-bottom-color: red;
|
116
|
+
/// }
|
117
|
+
|
118
|
+
@mixin link-replace-underline ($color: inherit, $style: solid, $width: 1px) {
|
119
|
+
text-decoration: none;
|
120
|
+
border-bottom-width: $width;
|
121
|
+
border-bottom-style: $style;
|
122
|
+
@if $color != inherit {
|
123
|
+
border-bottom-color: $color;
|
124
|
+
}
|
125
|
+
}
|
126
|
+
|
127
|
+
/// Mixin helper to add side line arround text
|
128
|
+
/// @param {Length} $height [1px] - height of side lines
|
129
|
+
/// @param {Length} $space [0.5em] - space around text
|
130
|
+
/// @param {Color} $color [inherit] - color of side lines
|
131
|
+
/// @param {string} $style [solid] - styles of side lines
|
132
|
+
/// @param {Length} $v-adjust [false] - adjust verticality
|
133
|
+
/// @param {Length} $double [false] - size between 2 lines in same side
|
134
|
+
/// @example scss - Usage
|
135
|
+
/// .foo {
|
136
|
+
/// @include side-lined(5px, $color: red, $double: 0.3em);
|
137
|
+
/// }
|
138
|
+
/// @example css - Result
|
139
|
+
/// .foo {
|
140
|
+
/// display: block;
|
141
|
+
/// overflow: hidden;
|
142
|
+
/// text-align: center;
|
143
|
+
/// }
|
144
|
+
/// .foo:before,
|
145
|
+
/// .foo:after {
|
146
|
+
/// content: "";
|
147
|
+
/// display: inline-block;
|
148
|
+
/// vertical-align: middle;
|
149
|
+
/// position: relative;
|
150
|
+
/// width: 50%;
|
151
|
+
/// border-top-style: solid;
|
152
|
+
/// border-top-width: 5px;
|
153
|
+
/// border-top-color: red;
|
154
|
+
/// height: 0.3em;
|
155
|
+
/// border-bottom-style: solid;
|
156
|
+
/// border-bottom-width: 5px;
|
157
|
+
/// border-bottom-color: $color;
|
158
|
+
/// }
|
159
|
+
|
160
|
+
@mixin side-lined ($height: 1px, $space: 0.5em, $color: inherit, $style: solid, $v-adjust: false, $double: false) {
|
161
|
+
display: block;
|
162
|
+
overflow: hidden;
|
163
|
+
text-align: center;
|
164
|
+
|
165
|
+
&:before,
|
166
|
+
&:after {
|
167
|
+
content: "";
|
168
|
+
display: inline-block;
|
169
|
+
vertical-align: middle;
|
170
|
+
position: relative;
|
171
|
+
width: 50%;
|
172
|
+
|
173
|
+
border-top-style: $style;
|
174
|
+
border-top-width: $height;
|
175
|
+
|
176
|
+
@if $color != inherit {
|
177
|
+
border-top-color: $color;
|
178
|
+
}
|
179
|
+
|
180
|
+
@if $v-adjust != false {
|
181
|
+
bottom: $v-adjust;
|
182
|
+
}
|
183
|
+
|
184
|
+
@if $double != false {
|
185
|
+
height: $double;
|
186
|
+
border-bottom-style: $style;
|
187
|
+
border-bottom-width: $height;
|
188
|
+
@if $color != inherit {
|
189
|
+
border-bottom-color: $color;
|
190
|
+
}
|
191
|
+
}
|
192
|
+
}
|
193
|
+
|
194
|
+
&:before {
|
195
|
+
right: $space;
|
196
|
+
margin-left: -50%;
|
197
|
+
}
|
198
|
+
&:after {
|
199
|
+
left: $space;
|
200
|
+
margin-right: -50%;
|
201
|
+
}
|
202
|
+
}
|
203
|
+
|
204
|
+
/// Mixin helper to truncate text
|
205
|
+
/// @param {Length} $truncation-boundary - Max size of your container
|
206
|
+
/// @example scss - Usage
|
207
|
+
/// .foo {
|
208
|
+
/// @include truncate(100%);
|
209
|
+
/// }
|
210
|
+
/// @example css - Result
|
211
|
+
/// .foo {
|
212
|
+
/// max-width: 100%;
|
213
|
+
/// white-space: nowrap;
|
214
|
+
/// overflow: hidden;
|
215
|
+
/// text-overflow: ellipsis;
|
216
|
+
/// }
|
217
|
+
|
218
|
+
@mixin truncate {
|
219
|
+
white-space: nowrap;
|
220
|
+
overflow: hidden;
|
221
|
+
text-overflow: ellipsis;
|
222
|
+
}
|
223
|
+
|
224
|
+
/// Mixin helper to get action selector
|
225
|
+
/// @param {Boolean} $active [false] - add active selector
|
226
|
+
/// @example scss - Usage
|
227
|
+
/// .foo {
|
228
|
+
/// @include selected {
|
229
|
+
/// background-color: red;
|
230
|
+
/// }
|
231
|
+
/// }
|
232
|
+
/// @example css - Result
|
233
|
+
/// .foo:hover,
|
234
|
+
/// .foo:focus{
|
235
|
+
/// background-color: red;
|
236
|
+
/// }
|
237
|
+
|
238
|
+
@mixin selected ($active: false) {
|
239
|
+
@if $active {
|
240
|
+
&:hover,
|
241
|
+
&.hover,
|
242
|
+
&:focus,
|
243
|
+
&.focus,
|
244
|
+
&:active,
|
245
|
+
&.active {
|
246
|
+
@content;
|
247
|
+
}
|
248
|
+
}
|
249
|
+
@else {
|
250
|
+
&:hover,
|
251
|
+
&.hover,
|
252
|
+
&:focus,
|
253
|
+
&.focus {
|
254
|
+
@content;
|
255
|
+
}
|
256
|
+
}
|
257
|
+
}
|
258
|
+
|
259
|
+
/// Mixin helper to hide text
|
260
|
+
/// @param {Boolean} $break [false] - set to true to break element
|
261
|
+
/// @param {Length} $indent [200%] - indentation text
|
262
|
+
/// @param {String} $align [left] - text alignement
|
263
|
+
/// @param {String} $overflow [hidden] - overflow of element
|
264
|
+
/// @example scss - Usage
|
265
|
+
/// .foo {
|
266
|
+
/// @include hide-text;
|
267
|
+
/// }
|
268
|
+
/// @example css - Result
|
269
|
+
/// .foo{
|
270
|
+
/// text-indent: $indent;
|
271
|
+
/// text-align: $align;
|
272
|
+
/// font-size: 0;
|
273
|
+
/// white-space: nowrap;
|
274
|
+
/// overflow: $overflow;
|
275
|
+
/// }
|
276
|
+
|
277
|
+
@mixin hide-text($break: false, $indent: 200%, $align: left, $overflow: hidden) {
|
278
|
+
@if $break {
|
279
|
+
position: absolute;
|
280
|
+
top: 0; left: 0;
|
281
|
+
pointer-events: none;
|
282
|
+
}
|
283
|
+
text-indent: $indent;
|
284
|
+
text-align: $align;
|
285
|
+
font-size: 0;
|
286
|
+
white-space: nowrap;
|
287
|
+
@if $overflow {
|
288
|
+
overflow: $overflow;
|
289
|
+
}
|
290
|
+
}
|
291
|
+
|
292
|
+
/// Mixin helper to replace text with image
|
293
|
+
/// @param {Length} $w - width of element
|
294
|
+
/// @param {Length} $h - height of element
|
295
|
+
/// @param {String} $file - file path
|
296
|
+
/// @param {String} $overflow [hidden] - overflow of element
|
297
|
+
/// @example scss - Usage
|
298
|
+
/// .foo {
|
299
|
+
/// @include hide-text;
|
300
|
+
/// }
|
301
|
+
/// @example css - Result
|
302
|
+
/// .foo{
|
303
|
+
/// text-indent: $indent;
|
304
|
+
/// text-align: $align;
|
305
|
+
/// font-size: 0;
|
306
|
+
/// white-space: nowrap;
|
307
|
+
/// overflow: $overflow;
|
308
|
+
/// }
|
309
|
+
|
310
|
+
@mixin text-replacement($w, $h, $file, $overflow: hidden) {
|
311
|
+
@include responsive-ratio($w, $h, true);
|
312
|
+
position: relative;
|
313
|
+
max-width: $w * 1px;
|
314
|
+
background: url($file) 50% 50% no-repeat;
|
315
|
+
background-size: contain;
|
316
|
+
@include hide-text($overflow: $overflow);
|
317
|
+
}
|
318
|
+
|
319
|
+
/// Mixin helper to color text
|
320
|
+
/// @param {Color} $color - color of your text
|
321
|
+
/// @example scss - Usage
|
322
|
+
/// .foo {
|
323
|
+
/// @include text-emphasis-variant(#c51c1c)
|
324
|
+
/// }
|
325
|
+
/// @example css - Result
|
326
|
+
/// .foo{
|
327
|
+
/// color: #c51c1c;
|
328
|
+
/// }
|
329
|
+
///
|
330
|
+
/// .foo a{
|
331
|
+
/// text-decoration: none;
|
332
|
+
/// border-bottom-width: 1px;
|
333
|
+
/// border-bottom-style: dotted;
|
334
|
+
/// border-bottom-color: red;
|
335
|
+
/// }
|
336
|
+
///
|
337
|
+
/// .foo a:hover{
|
338
|
+
/// color: #941515;
|
339
|
+
/// }
|
340
|
+
|
341
|
+
@mixin text-emphasis-variant($color) {
|
342
|
+
color: $color;
|
343
|
+
|
344
|
+
a{
|
345
|
+
@include link-replace-underline;
|
346
|
+
|
347
|
+
&:hover {
|
348
|
+
color: darken($color, 20%);
|
349
|
+
}
|
350
|
+
}
|
351
|
+
}
|
352
|
+
|
353
|
+
/// Mixin helper to replace text with image
|
354
|
+
/// @param {Length} $w - width of element
|
355
|
+
/// @param {Length} $h - height of element
|
356
|
+
/// @param {String} $file - file path
|
357
|
+
/// @param {String} $overflow [hidden] - overflow of element
|
358
|
+
/// @example scss - Usage
|
359
|
+
/// .foo {
|
360
|
+
/// @include hide-text;
|
361
|
+
/// }
|
362
|
+
/// @example css - Result
|
363
|
+
/// .foo{
|
364
|
+
/// text-indent: $indent;
|
365
|
+
/// text-align: $align;
|
366
|
+
/// font-size: 0;
|
367
|
+
/// white-space: nowrap;
|
368
|
+
/// overflow: $overflow;
|
369
|
+
/// }
|
370
|
+
|
371
|
+
@mixin lead($font-size) {
|
372
|
+
margin-bottom: $line-height-computed;
|
373
|
+
@include font-size($font-size);
|
374
|
+
@include line-height($font-size);
|
375
|
+
font-weight: 300;
|
371
376
|
}
|