-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrem.template.handlebars
120 lines (106 loc) · 3.34 KB
/
rem.template.handlebars
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
{
// Default options
'functions': true,
'variableNameTransforms': ['dasherize']
}
{{#block "sprites-comment"}}
/*
LESS variables are information about icon's compiled state, stored under its original file name
.icon-home {
width: @icon-home-width;
}
The large array-like variables contain all information about a single icon
@icon-home: x y offset_x offset_y width height total_width total_height image_path name;
At the bottom of this section, we provide information about the spritesheet itself
@spritesheet: width height image @spritesheet-sprites;
*/
{{/block}}
{{#block "sprites"}}
{{#each sprites}}
@{{strings.name_name}}: {{name}};
@{{strings.name_x}}: {{px.x}};
@{{strings.name_y}}: {{px.y}};
@{{strings.name_offset_x}}: {{px.offset_x}};
@{{strings.name_offset_y}}: {{px.offset_y}};
@{{strings.name_width}}: {{px.width}};
@{{strings.name_height}}: {{px.height}};
@{{strings.name_total_width}}: {{px.total_width}};
@{{strings.name_total_height}}: {{px.total_height}};
@{{strings.name_image}}: '{{{escaped_image}}}';
@{{strings.name}}: {{px.x}} {{px.y}} {{px.offset_x}} {{px.offset_y}} {{px.width}} {{px.height}} {{px.total_width}} {{px.total_height}} '{{{escaped_image}}}' {{name}};
{{/each}}
{{/block}}
{{#block "spritesheet"}}
@{{spritesheet_info.strings.name_width}}: {{spritesheet.px.width}};
@{{spritesheet_info.strings.name_height}}: {{spritesheet.px.height}};
@{{spritesheet_info.strings.name_image}}: '{{{spritesheet.escaped_image}}}';
@{{spritesheet_info.strings.name_sprites}}:{{#each sprites}} @{{strings.name}}{{/each}};
@{{spritesheet_info.strings.name}}: {{spritesheet.px.width}} {{spritesheet.px.height}} '{{{spritesheet.escaped_image}}}' @{{spritesheet_info.strings.name_sprites}};
{{/block}}
{{#block "sprite-functions-comment"}}
{{#if options.functions}}
/*
The provided classes are intended to be used with the array-like variables
.icon-home {
.sprite-width(@icon-home);
}
.icon-email {
.sprite(@icon-email);
}
*/
{{/if}}
{{/block}}
{{#block "sprite-functions"}}
{{#if options.functions}}
.sprite-width(@sprite) {
width: extract(@sprite, 5);
}
.sprite-height(@sprite) {
height: extract(@sprite, 6);
}
.sprite-position(@sprite) {
@sprite-offset-x: extract(@sprite, 3);
@sprite-offset-y: extract(@sprite, 4);
background-position: @sprite-offset-x @sprite-offset-y;
}
.sprite-image(@sprite) {
{{! DEV: We slice to trim off excess quotes on an escaped URL }}
@sprite-image: extract(@sprite, 9);
@sprite-image-bare: ~`"@{sprite-image}".slice(1, -1)`;
background-image: url(@sprite-image-bare);
}
.sprite-size() {
background-size: @spritesheet-width;
}
.sprite(@sprite) {
.sprite-image(@sprite);
.sprite-position(@sprite);
.sprite-width(@sprite);
.sprite-height(@sprite);
.sprite-size();
}
{{/if}}
{{/block}}
{{#block "spritesheet-functions-comment"}}
{{#if options.functions}}
/*
The `.sprites` mixin generates identical output to the CSS template
but can be overridden inside of LESS
This must be run when you have at least 2 sprites.
If run with a single sprite, then there will be reference errors.
.sprites(@spritesheet-sprites);
*/
{{/if}}
{{/block}}
{{#block "spritesheet-functions"}}
{{#if options.functions}}
.sprites(@sprites, @i: 1) when (@i <= length(@sprites)) {
@sprite: extract(@sprites, @i);
@sprite-name: extract(@sprite, 10);
.@{sprite-name} {
.sprite(@sprite);
}
.sprites(@sprites, @i + 1);
}
{{/if}}
{{/block}}