ionica 0.3.1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/ionica.sass +158 -32
- data/lib/ionica/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 37e75dbd3b8968d4886331a58f70893d4073cc3e
|
4
|
+
data.tar.gz: 5b9bbdb6c47bdf7f9aaf46be5437ab3b366d9d1f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 23dd3edcb6d9a363e909a9f7e2a224018345b7adf41d4329a15f8760e810a89065c6ddc505867c81b07798115e8313e40dc4985762c11a1769b8604bcdc10c95
|
7
|
+
data.tar.gz: e6c2185c249c960b9b7194754120a2d04a7f36299a82bd2578b4023407bd7b6a46d2ece93ee9a150ee9347c530077d74b690b92d51f8b7c5bc0234ad90b240f7
|
@@ -1,12 +1,59 @@
|
|
1
|
-
$
|
2
|
-
$
|
3
|
-
$
|
1
|
+
@function _length($number, $unit)
|
2
|
+
$strings: 'px' 'cm' 'mm' '%' 'ch' 'pica' 'in' 'em' 'rem' 'pt' 'pc' 'ex' 'vw' 'vh' 'vmin' 'vmax'
|
3
|
+
$units: 1px 1cm 1mm 1% 1ch 1pica 1in 1em 1rem 1pt 1pc 1ex 1vw 1vh 1vmin 1vmax
|
4
|
+
$index: index($strings, $unit)
|
5
|
+
|
6
|
+
@if not $index
|
7
|
+
@warn "Unknown unit `#{$unit}`."
|
8
|
+
@return false
|
9
|
+
|
10
|
+
@return $number * nth($units, $index)
|
11
|
+
|
12
|
+
@function number($string)
|
13
|
+
// Matrices
|
14
|
+
$strings: '0' '1' '2' '3' '4' '5' '6' '7' '8' '9'
|
15
|
+
$numbers: 0 1 2 3 4 5 6 7 8 9
|
16
|
+
|
17
|
+
// Result
|
18
|
+
$result: 0
|
19
|
+
$divider: 0
|
20
|
+
$minus: false
|
21
|
+
|
22
|
+
// Looping through all characters
|
23
|
+
@for $i from 1 through str-length($string)
|
24
|
+
$character: str-slice($string, $i, $i)
|
25
|
+
$index: index($strings, $character)
|
26
|
+
|
27
|
+
|
28
|
+
@if $character == '-'
|
29
|
+
$minus: true
|
4
30
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
31
|
+
|
32
|
+
@else if $character == '.'
|
33
|
+
$divider: 1
|
34
|
+
|
35
|
+
|
36
|
+
@else
|
37
|
+
@if not $index
|
38
|
+
$result: if($minus, $result * -1, $result)
|
39
|
+
@return _length($result, str-slice($string, $i))
|
40
|
+
|
41
|
+
|
42
|
+
$number: nth($numbers, $index)
|
43
|
+
|
44
|
+
@if $divider == 0
|
45
|
+
$result: $result * 10
|
46
|
+
|
47
|
+
|
48
|
+
@else
|
49
|
+
// Move the decimal dot to the left
|
50
|
+
$divider: $divider * 10
|
51
|
+
$number: $number / $divider
|
52
|
+
|
53
|
+
|
54
|
+
$result: $result + $number
|
55
|
+
|
56
|
+
@return if($minus, $result * -1, $result)
|
10
57
|
|
11
58
|
@function map-length($map)
|
12
59
|
@return length(map-keys($map))
|
@@ -14,14 +61,40 @@ $DEFAULT_CLASSNAME: "amplify-ionica-grid-default-classname"
|
|
14
61
|
@function percentage-column($size, $number_of_columns)
|
15
62
|
@return to-percent($size * (100 / $number_of_columns))
|
16
63
|
|
64
|
+
@function decimal-column($size, $number_of_columns)
|
65
|
+
@return $size / $number_of_columns
|
66
|
+
|
17
67
|
@function to-percent($number)
|
18
68
|
@return $number * 1%
|
19
69
|
|
70
|
+
@function column-has-weight($column)
|
71
|
+
@return type-of($column) == number or (type-of($column) == list and type-of(nth($column, 1)) == number)
|
72
|
+
|
73
|
+
@function column-has-width($column)
|
74
|
+
@return type-of($column) == string
|
75
|
+
|
76
|
+
@function throw-invalid-weight-argument-error()
|
77
|
+
@error "First argument of a column has to be a list, number or a string"
|
78
|
+
@return 0
|
79
|
+
|
80
|
+
@function is-last-column($column_index, $grid)
|
81
|
+
@return $column_index == map-get($grid, num_columns)
|
82
|
+
|
83
|
+
$DEFAULT_RESOLUTION: 768
|
84
|
+
$DEFAULT_IDENTIFIER: "amplify-ionica-grid-default-identifier"
|
85
|
+
$DEFAULT_CLASSNAME: "amplify-ionica-grid-default-classname"
|
86
|
+
|
87
|
+
@mixin grid-column-styles($transition_duration)
|
88
|
+
transition: transform, $transition_duration
|
89
|
+
position: absolute
|
90
|
+
height: 100%
|
91
|
+
z-index: 1
|
92
|
+
|
20
93
|
@mixin column($grid, $key)
|
21
94
|
@include grid-column-styles(map-get($grid, transition_duration))
|
22
95
|
$c: map-get($grid, $key)
|
23
96
|
$padding: map-get($grid, padding)
|
24
|
-
@include grid-column-with-offset(map-get($c, weight), map-get($grid, total_grid_weight), map-get($c, offset), $key, map-get($grid, core_columns), map-get($grid, resolution), map-get($grid, orientation), $grid, $padding)
|
97
|
+
@include grid-column-with-offset(map-get($c, weight), map-get($c, width), map-get($grid, total_grid_weight), map-get($grid, total_fixed_width), map-get($c, offset), map-get($c, width_offset), $key, map-get($grid, core_columns), map-get($grid, resolution), map-get($grid, orientation), $grid, $padding)
|
25
98
|
|
26
99
|
@mixin generate-column-classes($grid, $class_name)
|
27
100
|
$num_columns: map-get($grid, num_columns)
|
@@ -44,24 +117,34 @@ $DEFAULT_CLASSNAME: "amplify-ionica-grid-default-classname"
|
|
44
117
|
$index: 1
|
45
118
|
$offset: 0
|
46
119
|
$to_return : map-merge($to_return, (class_name: $class_name, transition_duration: $transition_duration))
|
120
|
+
$total_fixed_width: 0
|
121
|
+
$width_offset: 0
|
47
122
|
|
48
123
|
@each $column_param in $list
|
49
124
|
|
50
125
|
$column_weight: get-column-weight($column_param)
|
126
|
+
$column_width: get-column-width($column_param)
|
127
|
+
@if column-has-width($column_param)
|
128
|
+
$total_fixed_width: $total_fixed_width + number($column_width)
|
129
|
+
|
51
130
|
$column_padding: $padding/100
|
52
131
|
$column_identifier: get-column-identifier($column_param)
|
53
132
|
@if $index == 1
|
54
133
|
$column_padding: 0
|
55
|
-
$to_return: map-merge($to_return, ($index: (weight: $column_weight, offset: $offset + $column_padding, identifier: $column_identifier)))
|
56
134
|
|
57
135
|
@if is-core-column-param($column_param) or $num_core_columns == 0
|
58
136
|
$core_columns: map-merge($core_columns, ($index: (weight: $column_weight, identifier: $column_identifier)))
|
137
|
+
@else
|
138
|
+
$to_return: map-merge($to_return, ($index: (weight: $column_weight, width: $column_width, offset: $offset + $column_padding, width_offset: $width_offset, identifier: $column_identifier)))
|
139
|
+
|
59
140
|
$index: $index + 1
|
60
141
|
$offset: $offset + $column_weight + $column_padding
|
142
|
+
@if column-has-width($column_param)
|
143
|
+
$width_offset: $width_offset + number($column_width)
|
61
144
|
|
62
145
|
$to_return: map-merge($to_return, (core_columns: $core_columns))
|
63
146
|
$total_core_column_weight: total-column-weights($core_columns) + (map-length($core_columns) - 1) * $padding/100
|
64
|
-
$to_return: map-merge($to_return, (total_core_column_weight: $total_core_column_weight))
|
147
|
+
$to_return: map-merge($to_return, (total_core_column_weight: $total_core_column_weight, total_fixed_width: $total_fixed_width))
|
65
148
|
@return $to_return
|
66
149
|
|
67
150
|
@function parse-breakpoints($breakpoints)
|
@@ -134,12 +217,25 @@ $DEFAULT_CLASSNAME: "amplify-ionica-grid-default-classname"
|
|
134
217
|
@return $num_core_columns
|
135
218
|
|
136
219
|
@function get-column-weight($column_param)
|
220
|
+
@if column-has-width($column_param)
|
221
|
+
@return 0
|
222
|
+
|
137
223
|
@if type-of($column_param) == list
|
138
224
|
@return nth($column_param,1)
|
139
225
|
|
140
226
|
@if type-of($column_param) == number
|
141
227
|
@return $column_param
|
142
228
|
|
229
|
+
@error "Something Error Happened"
|
230
|
+
|
231
|
+
@function get-column-width($column_param)
|
232
|
+
@if column-has-weight($column_param)
|
233
|
+
@return 0
|
234
|
+
@else if type-of($column_param) == string
|
235
|
+
@return $column_param
|
236
|
+
|
237
|
+
@error "Column width must be a string."
|
238
|
+
|
143
239
|
@function get-column-identifier($column_param)
|
144
240
|
@if type-of($column_param) == list
|
145
241
|
@if length($column_param) > 2 and type-of(nth($column_param, 3)) == string
|
@@ -150,21 +246,32 @@ $DEFAULT_CLASSNAME: "amplify-ionica-grid-default-classname"
|
|
150
246
|
@if type-of($column_param) == list
|
151
247
|
@return nth($column_param,2) == true
|
152
248
|
@return false
|
153
|
-
@if type-of($column_param) != number
|
154
|
-
@error "First parameter to grid has to be a list of numbers and/or lists"
|
155
|
-
@return false
|
156
249
|
|
157
|
-
@mixin grid-column-with-offset($column_weight, $total_column_weights, $offset, $index, $core_columns, $resolution, $orientation, $grid, $padding: 0)
|
158
|
-
@include grid-column($column_weight, $total_column_weights)
|
159
|
-
|
250
|
+
@mixin grid-column-with-offset($column_weight, $column_width, $total_column_weights, $total_fixed_width, $offset, $width_offset, $index, $core_columns, $resolution, $orientation, $grid, $padding: 0)
|
251
|
+
@include grid-column($column_weight, $column_width, $total_column_weights, $total_fixed_width)
|
252
|
+
@if $offset == 0 and $width_offset == 0
|
253
|
+
left: 0
|
254
|
+
@else if $total_fixed_width == 0
|
255
|
+
left: percentage-column($offset, $total_column_weights)
|
256
|
+
@else
|
257
|
+
left: calc(#{$width_offset} + (100% - #{$total_fixed_width}) * #{decimal-column($offset, $total_column_weights)})
|
160
258
|
|
161
259
|
@if is-core-column($index, $core_columns)
|
162
260
|
@include extend-this-column($column_weight, $index, $core_columns, $resolution, $orientation, $padding)
|
163
261
|
@else
|
164
|
-
@
|
262
|
+
@if $column_width == 0
|
263
|
+
@include remove-this-dynamic-column($column_weight, $total_column_weights, $offset, $resolution, $orientation, $grid)
|
264
|
+
@else
|
265
|
+
@include remove-this-static-column($column_width, $resolution, $orientation, $index, $grid)
|
165
266
|
|
166
|
-
@mixin grid-column($
|
167
|
-
|
267
|
+
@mixin grid-column($weight, $width, $number_of_columns, $total_fixed_width)
|
268
|
+
@if $width == 0
|
269
|
+
@if $total_fixed_width == 0
|
270
|
+
width: percentage-column($weight, $number_of_columns)
|
271
|
+
@else
|
272
|
+
width: calc((100% - #{$total_fixed_width}) * #{decimal-column($weight, $number_of_columns)})
|
273
|
+
@else
|
274
|
+
width: #{$width}
|
168
275
|
|
169
276
|
@function is-core-column($key, $core_columns)
|
170
277
|
@return map-get($core_columns, $key) != null
|
@@ -215,7 +322,7 @@ $DEFAULT_CLASSNAME: "amplify-ionica-grid-default-classname"
|
|
215
322
|
@media only screen and (orientation: #{$orientation})
|
216
323
|
@content
|
217
324
|
|
218
|
-
@mixin remove-this-column($column_weight, $total_grid_weight, $offset, $resolution, $orientation, $grid)
|
325
|
+
@mixin remove-this-dynamic-column($column_weight, $total_grid_weight, $offset, $resolution, $orientation, $grid)
|
219
326
|
@if $offset < $total_grid_weight / 2
|
220
327
|
$distance: -100% - ($offset/$column_weight) * 101%
|
221
328
|
@include offscreen-left($distance, $resolution, $orientation, percentage-column($column_weight, $total_grid_weight), $grid)
|
@@ -223,7 +330,13 @@ $DEFAULT_CLASSNAME: "amplify-ionica-grid-default-classname"
|
|
223
330
|
$distance: ($total_grid_weight - $offset)/$column_weight * 101%
|
224
331
|
@include offscreen-right($distance, $resolution, $orientation, percentage-column($column_weight, $total_grid_weight), $grid)
|
225
332
|
|
226
|
-
@mixin
|
333
|
+
@mixin remove-this-static-column($column_width, $resolution, $orientation, $index, $grid)
|
334
|
+
@if $index == 1
|
335
|
+
@include offscreen-left(-100%, $resolution, $orientation, $column_width, $grid, true)
|
336
|
+
@else if is-last-column($index, $grid)
|
337
|
+
@include offscreen-right(100%, $resolution, $orientation, $column_width, $grid, true)
|
338
|
+
|
339
|
+
@mixin offscreen-left($distance, $resolution, $orientation, $column_width, $grid, $is_static_column: false)
|
227
340
|
@include w-resolution-or-orientation($resolution, $orientation)
|
228
341
|
transform: translate3d($distance,0,0)
|
229
342
|
z-index: 0
|
@@ -233,9 +346,9 @@ $DEFAULT_CLASSNAME: "amplify-ionica-grid-default-classname"
|
|
233
346
|
&.slide-in
|
234
347
|
transform: translate3d(100% + $distance, 0 ,0)
|
235
348
|
|
236
|
-
@include shift-core-columns($grid, $column_width, "right")
|
349
|
+
@include shift-core-columns($grid, $column_width, "right", $is_static_column)
|
237
350
|
|
238
|
-
@mixin offscreen-right($distance, $resolution, $orientation, $column_width, $grid)
|
351
|
+
@mixin offscreen-right($distance, $resolution, $orientation, $column_width, $grid, $is_static_column: false)
|
239
352
|
@include w-resolution-or-orientation($resolution, $orientation)
|
240
353
|
transform: translate3d($distance,0 ,0)
|
241
354
|
z-index: 0
|
@@ -245,23 +358,36 @@ $DEFAULT_CLASSNAME: "amplify-ionica-grid-default-classname"
|
|
245
358
|
&.slide-in
|
246
359
|
transform: translate3d(-100% + $distance, 0, 0)
|
247
360
|
|
248
|
-
@include shift-core-columns($grid, $column_width, "left")
|
361
|
+
@include shift-core-columns($grid, $column_width, "left", $is_static_column)
|
249
362
|
|
250
|
-
@mixin shift-core-columns($grid, $shift_distance, $direction)
|
363
|
+
@mixin shift-core-columns($grid, $shift_distance, $direction, $is_static_column: false)
|
251
364
|
$core_columns: map-get($grid, core_columns)
|
252
365
|
$class_name: map-get($grid, class_name)
|
253
366
|
$total_core_weight: map-get($grid, total_core_column_weight)
|
254
367
|
$total_weight: map-get($grid, total_grid_weight)
|
255
368
|
$padding: map-get($grid, padding)
|
369
|
+
$x_position: 0
|
256
370
|
@each $index, $params in $core_columns
|
257
371
|
$weight: map-get($params, weight)
|
258
372
|
$identifier: map-get($params, identifier)
|
259
373
|
@if $identifier == $DEFAULT_IDENTIFIER
|
260
374
|
$identifier: ".#{$class_name}-#{$index}"
|
261
|
-
|
262
|
-
|
375
|
+
@if $is_static_column
|
376
|
+
$x_position: $shift_distance
|
377
|
+
@else
|
378
|
+
$this_column_in_percentages: ($weight / $total_core_weight) * 100%
|
379
|
+
$x_position: $this_column_in_percentages / ($this_column_in_percentages / $shift_distance)
|
263
380
|
& ~ #{$identifier}
|
264
|
-
@if $
|
265
|
-
|
266
|
-
|
267
|
-
|
381
|
+
@if $is_static_column
|
382
|
+
$p: ($padding * ($total_core_weight / $total_weight) / $weight * 1%)
|
383
|
+
@if $direction == "right"
|
384
|
+
transform: translate3d(calc(#{$x_position} + #{$p}), 0, 0)
|
385
|
+
@if $direction == "left"
|
386
|
+
transform: translate3d(#{-$x_position}, 0, 0)
|
387
|
+
|
388
|
+
@else
|
389
|
+
@if $direction == "right"
|
390
|
+
transform: translate3d($x_position + ($padding * ($total_core_weight / $total_weight) / $weight * 1%), 0, 0)
|
391
|
+
@if $direction == "left"
|
392
|
+
transform: translate3d(-$x_position - ($padding * ($total_core_weight / $total_weight) / $weight * 1%), 0, 0)
|
393
|
+
|
data/lib/ionica/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ionica
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomislav Pesut
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-12-
|
12
|
+
date: 2014-12-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: railties
|