foundation_apps_styles 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+ }