foundation_apps_styles 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +21 -0
  5. data/README.md +41 -0
  6. data/Rakefile +13 -0
  7. data/bin/console +14 -0
  8. data/bin/setup +7 -0
  9. data/foundation_apps_styles.gemspec +24 -0
  10. data/lib/foundation_apps_styles.rb +6 -0
  11. data/lib/foundation_apps_styles/version.rb +3 -0
  12. data/vendor/assets/iconic/account.svg +44 -0
  13. data/vendor/assets/iconic/action.svg +38 -0
  14. data/vendor/assets/iconic/ban.svg +17 -0
  15. data/vendor/assets/iconic/bell.svg +22 -0
  16. data/vendor/assets/iconic/bookmark.svg +14 -0
  17. data/vendor/assets/iconic/cart.svg +35 -0
  18. data/vendor/assets/iconic/chevron.svg +28 -0
  19. data/vendor/assets/iconic/circle-check.svg +25 -0
  20. data/vendor/assets/iconic/circle-x.svg +25 -0
  21. data/vendor/assets/iconic/cog.svg +17 -0
  22. data/vendor/assets/iconic/comment-square.svg +14 -0
  23. data/vendor/assets/iconic/dashboard.svg +38 -0
  24. data/vendor/assets/iconic/document.svg +28 -0
  25. data/vendor/assets/iconic/envelope.svg +44 -0
  26. data/vendor/assets/iconic/flag.svg +24 -0
  27. data/vendor/assets/iconic/home.svg +28 -0
  28. data/vendor/assets/iconic/lock.svg +55 -0
  29. data/vendor/assets/iconic/magnifying-glass.svg +26 -0
  30. data/vendor/assets/iconic/person.svg +62 -0
  31. data/vendor/assets/iconic/reload.svg +19 -0
  32. data/vendor/assets/iconic/share-boxed.svg +17 -0
  33. data/vendor/assets/iconic/star.svg +14 -0
  34. data/vendor/assets/iconic/thumb.svg +38 -0
  35. data/vendor/assets/iconic/zoom.svg +56 -0
  36. data/vendor/assets/stylesheets/_global.scss +131 -0
  37. data/vendor/assets/stylesheets/_includes.scss +33 -0
  38. data/vendor/assets/stylesheets/_settings.scss +614 -0
  39. data/vendor/assets/stylesheets/components/_accordion.scss +72 -0
  40. data/vendor/assets/stylesheets/components/_action-sheet.scss +265 -0
  41. data/vendor/assets/stylesheets/components/_block-list.scss +360 -0
  42. data/vendor/assets/stylesheets/components/_button-group.scss +197 -0
  43. data/vendor/assets/stylesheets/components/_button.scss +205 -0
  44. data/vendor/assets/stylesheets/components/_card.scss +93 -0
  45. data/vendor/assets/stylesheets/components/_extras.scss +54 -0
  46. data/vendor/assets/stylesheets/components/_forms.scss +460 -0
  47. data/vendor/assets/stylesheets/components/_grid.scss +422 -0
  48. data/vendor/assets/stylesheets/components/_iconic.scss +95 -0
  49. data/vendor/assets/stylesheets/components/_label.scss +134 -0
  50. data/vendor/assets/stylesheets/components/_list.scss +19 -0
  51. data/vendor/assets/stylesheets/components/_menu-bar.scss +382 -0
  52. data/vendor/assets/stylesheets/components/_modal.scss +129 -0
  53. data/vendor/assets/stylesheets/components/_motion.scss +525 -0
  54. data/vendor/assets/stylesheets/components/_notification.scss +207 -0
  55. data/vendor/assets/stylesheets/components/_off-canvas.scss +169 -0
  56. data/vendor/assets/stylesheets/components/_panel.scss +134 -0
  57. data/vendor/assets/stylesheets/components/_popup.scss +68 -0
  58. data/vendor/assets/stylesheets/components/_switch.scss +134 -0
  59. data/vendor/assets/stylesheets/components/_tabs.scss +100 -0
  60. data/vendor/assets/stylesheets/components/_title-bar.scss +135 -0
  61. data/vendor/assets/stylesheets/components/_typography.scss +345 -0
  62. data/vendor/assets/stylesheets/components/_utilities.scss +160 -0
  63. data/vendor/assets/stylesheets/foundation-apps.css +6146 -0
  64. data/vendor/assets/stylesheets/foundation.scss +50 -0
  65. data/vendor/assets/stylesheets/helpers/_breakpoints.scss +154 -0
  66. data/vendor/assets/stylesheets/helpers/_functions.scss +343 -0
  67. data/vendor/assets/stylesheets/helpers/_images.scss +19 -0
  68. data/vendor/assets/stylesheets/helpers/_mixins.scss +123 -0
  69. data/vendor/assets/stylesheets/vendor/_normalize.scss +424 -0
  70. metadata +140 -0
@@ -0,0 +1,50 @@
1
+ // Foundation for Apps
2
+ // by ZURB
3
+ // foundation.zurb.com
4
+ // Licensed under MIT Open Source
5
+
6
+ $foundation-version: '1.1.0';
7
+
8
+ // Make sure the charset is set appropriately
9
+ @charset "UTF-8";
10
+
11
+ // Libraries (let's make Normalize an external dependency eventually)
12
+ @import
13
+ "vendor/normalize";
14
+
15
+ // Helpers
16
+ @import
17
+ "helpers/functions",
18
+ "helpers/mixins",
19
+ "helpers/breakpoints",
20
+ "helpers/images";
21
+
22
+ // Global styles
23
+ @import
24
+ "global";
25
+
26
+ // Components
27
+ @import
28
+ "components/iconic",
29
+ "components/action-sheet",
30
+ "components/block-list",
31
+ "components/button",
32
+ "components/button-group",
33
+ "components/card",
34
+ "components/extras",
35
+ "components/forms",
36
+ "components/grid",
37
+ "components/title-bar",
38
+ "components/label",
39
+ "components/list",
40
+ "components/menu-bar",
41
+ "components/modal",
42
+ "components/motion",
43
+ "components/notification",
44
+ "components/off-canvas",
45
+ "components/popup",
46
+ "components/switch",
47
+ "components/tabs",
48
+ "components/accordion",
49
+ "components/typography",
50
+ "components/utilities";
@@ -0,0 +1,154 @@
1
+ // Foundation for Apps
2
+ //
3
+ // BREAKPOINTS
4
+ // -----------
5
+ // Foundation for Apps has three core breakpoints: small (> 0), medium (>= 640), and large (>= 1024).
6
+ // There are two additional breakpoints, xlarge, and xxlarge, which (by default) do not output as sizing classes.
7
+ // Access named breakpoints using the mixin breakpoint($size), where $size is a breakpoint value.
8
+ // You can also pass an em, rem, or pixel value into this mixin to generate an em-based media query.
9
+ // Create new named breakpoints using the $breakpoints map. Change which named breakpoints get their own classes by modifying the $breakpoint-classes map.
10
+ // NOTE: If you change the $breakpoints map, know that all values must be ordered by width, smallest width first. So 0 is always your first value.
11
+
12
+ // 1. Variables
13
+ // - - - - - - - - - - - - - - -
14
+
15
+ /// @Foundation.settings
16
+ // Breakpoints
17
+ // These are our named breakpoints. You can use them in our breakpoint function like this: @include breakpoint(medium) { // Medium and larger styles }
18
+ $breakpoints: (
19
+ small: rem-calc(0),
20
+ medium: rem-calc(640),
21
+ large: rem-calc(1200),
22
+ xlarge: rem-calc(1440),
23
+ xxlarge: rem-calc(1920),
24
+ ) !default;
25
+
26
+ // All of the names in this list will be output as classes in your CSS, like small-12, medium-6, and so on.
27
+ $breakpoint-classes: (small medium large) !default;
28
+ ///
29
+
30
+ // 2. Mixins
31
+ // - - - - - - - - - - - - - - -
32
+
33
+ /// Wraps a media query around the content you put inside the mixin. This mixin accepts a number of values:
34
+ /// - If a string is passed, the mixin will look for it in the $breakpoints map, and use a media query there.
35
+ /// - If a pixel value is passed, it will be converted to an em value using $rem-base.
36
+ /// - If a rem value is passed, the unit will be changed to em.
37
+ /// - If an em value is passed, the value will be used as-is.
38
+ ///
39
+ /// @param {mixed} $val - Breakpoint name or px/em/rem value to process.
40
+ ///
41
+ /// @output If the breakpoint is "0px and larger", outputs the content. Otherwise, outputs the content wrapped in a media query.
42
+ @mixin breakpoint($val: small) {
43
+ // Size or keyword
44
+ $bp: nth($val, 1);
45
+ // Value for max-width media queries
46
+ $bpMax: 0;
47
+ // Direction of media query (up, down, or only)
48
+ $dir: if(length($val) > 1, nth($val, 2), up);
49
+ // Eventual output
50
+ $str: 'only screen';
51
+ // Is it a named media query?
52
+ $named: false;
53
+
54
+ // Orientation media queries have a unique syntax
55
+ @if $bp == 'landscape' or $bp == 'portrait' {
56
+ $str: $str + ' and (orientation: #{$bp})';
57
+ }
58
+
59
+ @else {
60
+ // Try to pull a named breakpoint out of the $breakpoints map
61
+ @if type-of($bp) == 'string' {
62
+ @if map-has-key($breakpoints, $bp) {
63
+ @if $dir == 'only' {
64
+ $next-bp: map-next($breakpoints, $bp);
65
+ @if $next-bp == null {
66
+ $bpMax: null;
67
+ }
68
+ @else {
69
+ $bpMax: $next-bp - (1/16);
70
+ }
71
+ }
72
+ $bp: map-get($breakpoints, $bp);
73
+ $named: true;
74
+ }
75
+ @else {
76
+ $bp: 0;
77
+ }
78
+ }
79
+
80
+ // Pixel and unitless values are converted to rems
81
+ @if unit($bp) == 'px' or unit($bp) == '' {
82
+ $bp: rem-calc($bp);
83
+ }
84
+ // Finally, the rem value is turned into an em value
85
+ $bp: strip-unit($bp) * 1em;
86
+
87
+ // Skip media query creation if the input is "0 up" or "0 down"
88
+ @if $bp > 0 or $dir == 'only' {
89
+ // And lo, a media query was born
90
+ @if $dir == 'only' {
91
+ @if $named == true {
92
+ $str: $str + ' and (min-width: #{$bp})';
93
+ @if $bpMax != null {
94
+ $str: $str + ' and (max-width: #{$bpMax})';
95
+ }
96
+ }
97
+ @else {
98
+ @debug 'ERROR: Only named media queries can have an "only" range.';
99
+ }
100
+ }
101
+ @else if $dir == 'down' {
102
+ $max: $bp - (1/16);
103
+ $str: $str + ' and (max-width: #{$max})';
104
+ }
105
+ @else {
106
+ $str: $str + ' and (min-width: #{$bp})';
107
+ }
108
+ }
109
+ }
110
+
111
+ // Output
112
+ @if $bp == 0em and $dir != 'only' {
113
+ @content;
114
+ }
115
+ @else {
116
+ @media #{$str} {
117
+ @content;
118
+ }
119
+ }
120
+ }
121
+
122
+ /// Prefixes selector $class with breakpoint keywords, allowing you to create a batch of breakpoint classes with one chunk of code. If you want to skip a breakpoint (like small, because mobile first and all that), add values to the $omit parameter.
123
+ ///
124
+ /// @param {string} $class - Class to prefix with the breakpoint name and a hyphen.
125
+ /// @param {list} $omit - Named breakpoints to skip. No class will be added with breakpoints in this list.
126
+ @mixin each-breakpoint($class, $omit: ()) {
127
+ // Iterate through breakpoint classes
128
+ @each $size in $breakpoint-classes {
129
+ // Only do something if the breakpoint is not in $omit
130
+ @if index($omit, $size) == null {
131
+ $val: map-get($breakpoints, $size);
132
+ // Prefix $class with $size and a hyphen
133
+ .#{$size + '-' + $class} {
134
+ @include breakpoint($size) {
135
+ @content;
136
+ }
137
+ }
138
+ }
139
+ }
140
+ }
141
+
142
+ // 3. CSS Output
143
+ // - - - - - - - - - - - - - - -
144
+
145
+ // Meta styles are included in all builds, as they are a dependancy of the Javascript.
146
+ // Used to provide media query values for javascript components.
147
+ // Forward slash placed around everything to convince PhantomJS to read the value.
148
+
149
+ meta.foundation-version {
150
+ font-family: "#{$foundation-version}";
151
+ }
152
+ meta.foundation-mq {
153
+ font-family: "#{map-serialize($breakpoints)}";
154
+ }
@@ -0,0 +1,343 @@
1
+ // Foundation for Apps ALPHA
2
+ // by ZURB
3
+ // foundation.zurb.com
4
+ // Licensed under MIT Open Source
5
+
6
+ $include-css: () !default;
7
+ $modules: () !default;
8
+ $rem-base: 16px !default;
9
+
10
+ /// Checks if a module is in use.
11
+ @function using($name) {
12
+ // Import from global scope
13
+ $include-css: $include-css !global;
14
+ $module-key: map-get($include-css, $name);
15
+
16
+ @if $module-key == true or $module-key == null {
17
+ @return true;
18
+ }
19
+ @else {
20
+ @return false;
21
+ }
22
+ }
23
+
24
+ /// Checks if a module's CSS has already been exported.
25
+ @function imported($name) {
26
+ // Import from global scope
27
+ $modules: $modules !global;
28
+ // Check if the module is already on the imported list
29
+ @if type-of(index($modules, $name)) == 'number' {
30
+ @return true;
31
+ }
32
+ @else {
33
+ @return false;
34
+ }
35
+ }
36
+
37
+ /// Outputs the chunk of content passed if component $name hasn't yet been output.
38
+ /// This prevents code duplication by keeping track of which components have already been output.
39
+ ///
40
+ /// @param {string} $name - Name of component to output
41
+ ///
42
+ /// @output The content passed, if the component has not yet been exported.
43
+ @mixin exports($name) {
44
+ // Check if the module has already been imported
45
+ @if not(imported($name)) {
46
+ // Check if the module should be used
47
+ @if using($name) {
48
+ $modules: append($modules, $name) !global;
49
+ @content;
50
+ }
51
+ }
52
+ }
53
+
54
+ /// Map Serialize
55
+ /// Converts a Sass map to a URL-encoded string, like this: `key1=value1&key2=value2`. We use this function to encode the media queries in the `$breakpoints` variable, so it can be transferred to our JavaScript for use there.
56
+ ///
57
+ /// @param {map} $map - Map to convert.
58
+ ///
59
+ /// @return A string with a map converted to a string.
60
+ @function map-serialize($map) {
61
+ $str: '';
62
+ @each $key, $value in $map {
63
+ $str: $str + $key + '=' + $value + '&';
64
+ }
65
+ $str: str-slice($str, 1, -2);
66
+
67
+ @return $str;
68
+ }
69
+
70
+ /// Map Next
71
+ /// Find the next key in a map.
72
+ ///
73
+ /// @param {map} $map - Map to traverse.
74
+ /// @param {mixed} $key - Key to use as a starting point.
75
+ ///
76
+ /// @return The value for the key after `$key` if `$key` was found. If `$key` was not found, or `$key` was the last value in the map, returns null.
77
+ @function map-next($map, $key) {
78
+ // Store the values of the map as a list, so we can access them with nth
79
+ $values: map-values($map);
80
+
81
+ // Ghetto for loop
82
+ $i: 1;
83
+ $found: false;
84
+ @each $val in map-keys($map) {
85
+ @if $found == false {
86
+ @if ($key == $val) {
87
+ $found: true;
88
+ }
89
+ $i: $i + 1;
90
+ }
91
+ }
92
+
93
+ // If the key doesn't exist, or it's the last key in the map, return null
94
+ @if $i > length($map) {
95
+ @return null;
96
+ }
97
+ // Otherwise return the value
98
+ @else {
99
+ @return nth($values, $i);
100
+ }
101
+ }
102
+
103
+ /// Is It Light?
104
+ /// Checks the lightness of $color, and if it passes the $threshold of lightness, it returns the `$yes` color. Otherwise, it returns the `$no` color. Use this function to dynamically output a foreground color based on a given background color.
105
+ ///
106
+ /// @param {color} $color - Color to check the lightness of.
107
+ /// @param {color} $yes - Color to return if $color is light.
108
+ /// @param {color} $no - Color to return if $color is dark.
109
+ /// @param {percentage} $threshold - Threshold of lightness to check against.
110
+ ///
111
+ /// @return The $yes color or $no color.
112
+ @function isitlight($color, $yes: #000, $no: #fff, $threshold: 60%) {
113
+ @if (lightness($color) > $threshold) {
114
+ @return $yes;
115
+ }
116
+ @else {
117
+ @return $no;
118
+ }
119
+ }
120
+
121
+ /// Smart Scale
122
+ /// Scales a color to be lighter if it's light, or darker if it's dark. Use this function to "fade" a color appropriate to its lightness.
123
+ ///
124
+ /// @param {color} $color - Color to scale.
125
+ /// @param {percentage} $scale - Amount to scale up or down.
126
+ /// @param {percentage} $threshold - Threshold of lightness to check against.
127
+ ///
128
+ /// @return A scaled color.
129
+ @function smartscale($color, $scale: 5%, $threshold: 60%) {
130
+ @if lightness($color) > $threshold {
131
+ $scale: -$scale;
132
+ }
133
+ @return scale-color($color, $lightness: $scale);
134
+ }
135
+
136
+ /// Has Value
137
+ /// Returns true if a value is not 0, null, or none. Use this function to check for values like `border: 0` or `box-shadow: none`.
138
+ ///
139
+ /// @param $val - Value to check.
140
+ ///
141
+ /// @return True if `$val` is not 0, null, or none.
142
+ @function hasvalue($val) {
143
+ @if $val == null or $val == none {
144
+ @return false;
145
+ }
146
+ @if type-of($val) == 'number' and strip-unit($val) == 0 {
147
+ @return false;
148
+ }
149
+ @return true;
150
+ }
151
+
152
+ /// Get Side
153
+ /// Determine a top/right/bottom/right value on a padding, margin, etc. property, no matter how many values were passed in. Use this function if you need to know the specific side of a value, but don't know if the value is using shorthand.
154
+ ///
155
+ /// @param {list|number} $val - Value to analyze. Should be a shorthand sizing property, e.g. "1em 2em 1em"
156
+ /// @param {keyword} $side - Side to return. Should be top, right, bottom, or left.
157
+ ///
158
+ /// @return A single value based on `$val` and `$side`.
159
+ @function get-side($val, $side) {
160
+ $length: length($val);
161
+
162
+ @if $length == 1 {
163
+ @return $val;
164
+ }
165
+ @if $length == 2 {
166
+ @return map-get((
167
+ top: nth($val, 1),
168
+ bottom: nth($val, 1),
169
+ left: nth($val, 2),
170
+ right: nth($val, 2),
171
+ ), $side);
172
+ }
173
+ @if $length == 3 {
174
+ @return map-get((
175
+ top: nth($val, 1),
176
+ left: nth($val, 2),
177
+ right: nth($val, 2),
178
+ bottom: nth($val, 3),
179
+ ), $side);
180
+ }
181
+ @if $length == 4 {
182
+ @return map-get((
183
+ top: nth($val, 1),
184
+ right: nth($val, 2),
185
+ bottom: nth($val, 3),
186
+ left: nth($val, 4),
187
+ ), $side);
188
+ }
189
+ }
190
+
191
+ /// Get Border Value
192
+ /// Given border $val, find a specific element of the border, which is $elem. The possible values for $elem are width, style, and color.
193
+ ///
194
+ /// @param {list} $val - Border value to find a value in.
195
+ /// @param {keyword} $elem - Border component to extract.
196
+ ///
197
+ /// @param If the value exists, returns the value. If the value is not in the border definition, the function will return a 0px width, solid style, or black border.
198
+ @function get-border-value($val, $elem) {
199
+ // Find the width, style, or color and return it
200
+ @each $v in $val {
201
+ $type: type-of($v);
202
+ @if $elem == width and $type == 'number' {
203
+ @return $v;
204
+ }
205
+ @if $elem == style and $type == 'string' {
206
+ @return $v;
207
+ }
208
+ @if $elem == color and $type == 'color' {
209
+ @return $v;
210
+ }
211
+ }
212
+
213
+ // Defaults
214
+ $defaults: (
215
+ width: 0,
216
+ style: solid,
217
+ color: black,
218
+ );
219
+ @return map-get($defaults, $elem);
220
+ }
221
+
222
+ /// Get Shadow Value
223
+ /// Given shadow value $val, find a specific element of the shadow, which is $elem. The possible values for $elem are x, y, size, spread, color, and inset.
224
+ ///
225
+ /// @param {list} $val - Shadow value to find a value in.
226
+ /// @param {keyword} $elem - Shadow component to extract.
227
+ ///
228
+ /// @return If the value exists, returns the value. If the value is not set, returns false. If `$elem` is "inset", returns true, otherwise false.
229
+ @function get-shadow-value($val, $elem) {
230
+ // Return "none" if there's no shadow
231
+ @if $val == none {
232
+ @return none;
233
+ }
234
+
235
+ // Inset and color are always at the beginning and end
236
+ @if $elem == inset {
237
+ @return nth($val, 1) == inset;
238
+ }
239
+ @if $elem == color {
240
+ @if type-of(nth($val, -1)) == color {
241
+ @return nth($val, -1);
242
+ }
243
+ @else {
244
+ @return black;
245
+ }
246
+ }
247
+
248
+ // The rest of the values are located perilously in the middle
249
+ $values: ();
250
+ @each $v in $val {
251
+ @if type-of($v) == 'number' {
252
+ $values: append($values, $v);
253
+ }
254
+ }
255
+ @if $elem == x {
256
+ @if length($values) >= 1 {
257
+ @return nth($values, 1);
258
+ }
259
+ @else {
260
+ @return 0;
261
+ }
262
+ }
263
+ @else if $elem == y {
264
+ @if length($values) >= 2 {
265
+ @return nth($values, 2);
266
+ }
267
+ @else {
268
+ @return 0;
269
+ }
270
+ }
271
+ @else if $elem == size {
272
+ @if length($values) >= 3 {
273
+ @return nth($values, 3);
274
+ }
275
+ @else {
276
+ @return 0;
277
+ }
278
+ }
279
+ @else if $elem == spread {
280
+ @if length($values) >= 4 {
281
+ @return nth($values, 4);
282
+ }
283
+ @else {
284
+ @return 0;
285
+ }
286
+ }
287
+ @else {
288
+ @return false;
289
+ }
290
+ }
291
+
292
+ /// Strip Unit
293
+ /// Removes the unit (e.g. px, em, rem) from a value, returning the number only.
294
+ ///
295
+ /// @param {number} $num - Number to strip unit from.
296
+ ///
297
+ /// @return The same number, sans unit.
298
+ @function strip-unit($num) {
299
+ @return $num / ($num * 0 + 1);
300
+ }
301
+
302
+ /// Turn to Degrees
303
+ /// Converts a turn unit to the equivalent unit in degrees. 1turn is equal to 360 degrees. Not all browsers support turn, so this function allows us to use turns while outputting a value that all browsers understand.
304
+ ///
305
+ /// @param {number} $value - Turn value to convert.
306
+ ///
307
+ /// @return The same value, but in degrees.
308
+ @function turn-to-deg($value) {
309
+ @return strip-unit($value) * 360deg;
310
+ }
311
+
312
+ /// Convert to Rem
313
+ /// Converts a pixel value to matching rem value. *Any* value passed, regardless of unit, is assumed to be a pixel value. By default, the base pixel value used to calculate the rem value is taken from the `$rem-base` variable.
314
+ ///
315
+ /// @param {number} $value - Pixel value to convert.
316
+ ///
317
+ /// @return A number in rems, calculated based on the given value and the base pixel value.
318
+ @function convert-to-rem($value, $base-value: $rem-base) {
319
+ $value: strip-unit($value) / strip-unit($base-value) * 1rem;
320
+ @if ($value == 0rem) { $value: 0; } // Turn 0rem into 0
321
+ @return $value;
322
+ }
323
+
324
+ /// Rem Calculator
325
+ /// Converts one or more pixel values into matching rem values. This function works a lot like `convert-to-rem`, except it can convert more than one value at once, which is useful when setting multiple values on a `margin` or `padding` property.
326
+ ///
327
+ /// @param {number|list} $values - One or more values to convert. Be sure to separate them with spaces and not commas. If you need to convert a comma-separated list, wrap the list in parentheses.
328
+ ///
329
+ /// @return A list of converted values.
330
+ @function rem-calc($values, $base-value: null) {
331
+ @if $base-value == null {
332
+ $base-value: $rem-base;
333
+ }
334
+ $max: length($values);
335
+
336
+ @if $max == 1 { @return convert-to-rem(nth($values, 1), $base-value); }
337
+
338
+ $remValues: ();
339
+ @for $i from 1 through $max {
340
+ $remValues: append($remValues, convert-to-rem(nth($values, $i), $base-value));
341
+ }
342
+ @return $remValues;
343
+ }