codelation_ui 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +20 -0
- data/README.md +327 -0
- data/Rakefile +8 -0
- data/app/assets/javascripts/codelation_ui/_base_resources/app.js +91 -0
- data/app/assets/javascripts/codelation_ui/_base_resources/components/has_grid.js +24 -0
- data/app/assets/javascripts/codelation_ui/_base_resources/components/link.js +22 -0
- data/app/assets/javascripts/codelation_ui/_base_resources/progress_bar.js +5 -0
- data/app/assets/javascripts/codelation_ui/base.js +8 -0
- data/app/assets/javascripts/codelation_ui/extended/slider.js +654 -0
- data/app/assets/javascripts/codelation_ui/extended.js +1 -0
- data/app/assets/javascripts/codelation_ui/forms/components/input.js +497 -0
- data/app/assets/javascripts/codelation_ui/forms/index.js +2 -0
- data/app/assets/javascripts/codelation_ui/forms/interfaces/form.js +71 -0
- data/app/assets/javascripts/codelation_ui/forms/interfaces/form_validation.js +31 -0
- data/app/assets/javascripts/codelation_ui/forms.js +2 -0
- data/app/assets/javascripts/codelation_ui/std/index.js +2 -0
- data/app/assets/javascripts/codelation_ui/std/interfaces/content_formatters.js +27 -0
- data/app/assets/javascripts/codelation_ui/std/interfaces/content_validators.js +50 -0
- data/app/assets/javascripts/codelation_ui/std/interfaces/helpers.js +10 -0
- data/app/assets/javascripts/codelation_ui/std.js +1 -0
- data/app/assets/javascripts/codelation_ui/vue.js +12 -0
- data/app/assets/javascripts/codelation_ui/vue_pages.js +11 -0
- data/app/assets/javascripts/codelation_ui.js +6 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/_normalize.scss +427 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/_bourbon-deprecated-upcoming.scss +411 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/_bourbon.scss +87 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/addons/_border-color.scss +26 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/addons/_border-radius.scss +48 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/addons/_border-style.scss +25 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/addons/_border-width.scss +25 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/addons/_buttons.scss +64 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/addons/_clearfix.scss +25 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/addons/_ellipsis.scss +30 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/addons/_font-stacks.scss +31 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/addons/_hide-text.scss +27 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/addons/_margin.scss +26 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/addons/_padding.scss +26 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/addons/_position.scss +48 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/addons/_prefixer.scss +66 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/addons/_retina-image.scss +25 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/addons/_size.scss +51 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/addons/_text-inputs.scss +113 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/addons/_timing-functions.scss +34 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/addons/_triangle.scss +63 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/addons/_word-wrap.scss +29 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_animation.scss +43 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_appearance.scss +3 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_backface-visibility.scss +3 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_background-image.scss +42 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_background.scss +55 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_border-image.scss +59 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_calc.scss +4 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_columns.scss +47 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_filter.scss +4 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_flex-box.scss +287 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_font-face.scss +24 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_font-feature-settings.scss +4 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_hidpi-media-query.scss +10 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_hyphens.scss +4 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_image-rendering.scss +14 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_keyframes.scss +36 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_linear-gradient.scss +38 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_perspective.scss +8 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_placeholder.scss +8 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_radial-gradient.scss +39 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_selection.scss +42 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_text-decoration.scss +19 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_transform.scss +15 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_transition.scss +71 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/css3/_user-select.scss +3 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/functions/_assign-inputs.scss +11 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/functions/_contains-falsy.scss +20 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/functions/_contains.scss +26 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/functions/_is-length.scss +11 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/functions/_is-light.scss +21 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/functions/_is-number.scss +11 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/functions/_is-size.scss +13 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/functions/_modular-scale.scss +69 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/functions/_px-to-em.scss +13 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/functions/_px-to-rem.scss +15 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/functions/_shade.scss +24 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/functions/_strip-units.scss +17 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/functions/_tint.scss +24 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/functions/_transition-property-name.scss +22 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/functions/_unpack.scss +27 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/helpers/_convert-units.scss +21 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/helpers/_directional-values.scss +96 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/helpers/_font-source-declaration.scss +43 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/helpers/_gradient-positions-parser.scss +13 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/helpers/_linear-angle-parser.scss +25 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/helpers/_linear-gradient-parser.scss +41 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/helpers/_linear-positions-parser.scss +61 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/helpers/_linear-side-corner-parser.scss +31 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/helpers/_radial-arg-parser.scss +69 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/helpers/_radial-gradient-parser.scss +50 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/helpers/_radial-positions-parser.scss +18 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/helpers/_render-gradients.scss +26 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/helpers/_shape-size-stripper.scss +10 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/helpers/_str-to-num.scss +50 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/settings/_asset-pipeline.scss +7 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/settings/_prefixer.scss +9 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/settings/_px-to-em.scss +1 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/functions/color.scss +162 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/functions/text_color.scss +41 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/mixins/button.scss +47 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/mixins/center_children.scss +9 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/mixins/col_span.scss +16 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/mixins/has_cards.scss +43 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/mixins/has_columns.scss +66 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/mixins/has_grid.scss +80 -0
- data/app/assets/stylesheets/codelation_ui/_base_resources/mixins/outer_container.scss +10 -0
- data/app/assets/stylesheets/codelation_ui/base.scss +27 -0
- data/app/assets/stylesheets/codelation_ui/extended/slider.scss +222 -0
- data/app/assets/stylesheets/codelation_ui/extended.scss +1 -0
- data/app/assets/stylesheets/codelation_ui/forms/input.scss +72 -0
- data/app/assets/stylesheets/codelation_ui/forms.scss +1 -0
- data/app/assets/stylesheets/codelation_ui/std.scss +1 -0
- data/app/assets/stylesheets/codelation_ui.scss +4 -0
- data/lib/codelation_ui.rb +7 -0
- data/vendor/assets/javascripts/autonumeric/autoNumeric-1.9.39.js +1465 -0
- data/vendor/assets/javascripts/autonumeric/autonumeric_ujs.js +94 -0
- data/vendor/assets/javascripts/autonumeric.js +2 -0
- data/vendor/assets/javascripts/awesomplete.js +392 -0
- data/vendor/assets/javascripts/moment.js +4301 -0
- data/vendor/assets/javascripts/numeral.js +679 -0
- data/vendor/assets/javascripts/pikaday.js +1081 -0
- data/vendor/assets/javascripts/summernote.js +7300 -0
- data/vendor/assets/javascripts/vue.js +10237 -0
- metadata +242 -0
@@ -0,0 +1,43 @@
|
|
1
|
+
// Used for creating the source string for fonts using @font-face
|
2
|
+
// Reference: http://goo.gl/Ru1bKP
|
3
|
+
|
4
|
+
@function font-url-prefixer($asset-pipeline) {
|
5
|
+
@if $asset-pipeline == true {
|
6
|
+
@return font-url;
|
7
|
+
} @else {
|
8
|
+
@return url;
|
9
|
+
}
|
10
|
+
}
|
11
|
+
|
12
|
+
@function font-source-declaration(
|
13
|
+
$font-family,
|
14
|
+
$file-path,
|
15
|
+
$asset-pipeline,
|
16
|
+
$file-formats,
|
17
|
+
$font-url) {
|
18
|
+
|
19
|
+
$src: ();
|
20
|
+
|
21
|
+
$formats-map: (
|
22
|
+
eot: "#{$file-path}.eot?#iefix" format("embedded-opentype"),
|
23
|
+
woff2: "#{$file-path}.woff2" format("woff2"),
|
24
|
+
woff: "#{$file-path}.woff" format("woff"),
|
25
|
+
ttf: "#{$file-path}.ttf" format("truetype"),
|
26
|
+
svg: "#{$file-path}.svg##{$font-family}" format("svg")
|
27
|
+
);
|
28
|
+
|
29
|
+
@each $key, $values in $formats-map {
|
30
|
+
@if contains($file-formats, $key) {
|
31
|
+
$file-path: nth($values, 1);
|
32
|
+
$font-format: nth($values, 2);
|
33
|
+
|
34
|
+
@if $asset-pipeline == true {
|
35
|
+
$src: append($src, font-url($file-path) $font-format, comma);
|
36
|
+
} @else {
|
37
|
+
$src: append($src, url($file-path) $font-format, comma);
|
38
|
+
}
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
42
|
+
@return $src;
|
43
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
@function _gradient-positions-parser($gradient-type, $gradient-positions) {
|
2
|
+
@if $gradient-positions
|
3
|
+
and ($gradient-type == linear)
|
4
|
+
and (type-of($gradient-positions) != color) {
|
5
|
+
$gradient-positions: _linear-positions-parser($gradient-positions);
|
6
|
+
}
|
7
|
+
@else if $gradient-positions
|
8
|
+
and ($gradient-type == radial)
|
9
|
+
and (type-of($gradient-positions) != color) {
|
10
|
+
$gradient-positions: _radial-positions-parser($gradient-positions);
|
11
|
+
}
|
12
|
+
@return $gradient-positions;
|
13
|
+
}
|
data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/helpers/_linear-angle-parser.scss
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
// Private function for linear-gradient-parser
|
2
|
+
@function _linear-angle-parser($image, $first-val, $prefix, $suffix) {
|
3
|
+
$offset: null;
|
4
|
+
$unit-short: str-slice($first-val, str-length($first-val) - 2, str-length($first-val));
|
5
|
+
$unit-long: str-slice($first-val, str-length($first-val) - 3, str-length($first-val));
|
6
|
+
|
7
|
+
@if ($unit-long == "grad") or
|
8
|
+
($unit-long == "turn") {
|
9
|
+
$offset: if($unit-long == "grad", -100grad * 3, -0.75turn);
|
10
|
+
}
|
11
|
+
|
12
|
+
@else if ($unit-short == "deg") or
|
13
|
+
($unit-short == "rad") {
|
14
|
+
$offset: if($unit-short == "deg", -90 * 3, 1.6rad);
|
15
|
+
}
|
16
|
+
|
17
|
+
@if $offset {
|
18
|
+
$num: _str-to-num($first-val);
|
19
|
+
|
20
|
+
@return (
|
21
|
+
webkit-image: -webkit- + $prefix + ($offset - $num) + $suffix,
|
22
|
+
spec-image: $image
|
23
|
+
);
|
24
|
+
}
|
25
|
+
}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
@function _linear-gradient-parser($image) {
|
2
|
+
$image: unquote($image);
|
3
|
+
$gradients: ();
|
4
|
+
$start: str-index($image, "(");
|
5
|
+
$end: str-index($image, ",");
|
6
|
+
$first-val: str-slice($image, $start + 1, $end - 1);
|
7
|
+
|
8
|
+
$prefix: str-slice($image, 1, $start);
|
9
|
+
$suffix: str-slice($image, $end, str-length($image));
|
10
|
+
|
11
|
+
$has-multiple-vals: str-index($first-val, " ");
|
12
|
+
$has-single-position: unquote(_position-flipper($first-val) + "");
|
13
|
+
$has-angle: is-number(str-slice($first-val, 1, 1));
|
14
|
+
|
15
|
+
@if $has-multiple-vals {
|
16
|
+
$gradients: _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals);
|
17
|
+
}
|
18
|
+
|
19
|
+
@else if $has-single-position != "" {
|
20
|
+
$pos: unquote($has-single-position + "");
|
21
|
+
|
22
|
+
$gradients: (
|
23
|
+
webkit-image: -webkit- + $image,
|
24
|
+
spec-image: $prefix + "to " + $pos + $suffix
|
25
|
+
);
|
26
|
+
}
|
27
|
+
|
28
|
+
@else if $has-angle {
|
29
|
+
// Rotate degree for webkit
|
30
|
+
$gradients: _linear-angle-parser($image, $first-val, $prefix, $suffix);
|
31
|
+
}
|
32
|
+
|
33
|
+
@else {
|
34
|
+
$gradients: (
|
35
|
+
webkit-image: -webkit- + $image,
|
36
|
+
spec-image: $image
|
37
|
+
);
|
38
|
+
}
|
39
|
+
|
40
|
+
@return $gradients;
|
41
|
+
}
|
@@ -0,0 +1,61 @@
|
|
1
|
+
@function _linear-positions-parser($pos) {
|
2
|
+
$type: type-of(nth($pos, 1));
|
3
|
+
$spec: null;
|
4
|
+
$degree: null;
|
5
|
+
$side: null;
|
6
|
+
$corner: null;
|
7
|
+
$length: length($pos);
|
8
|
+
// Parse Side and corner positions
|
9
|
+
@if ($length > 1) {
|
10
|
+
@if nth($pos, 1) == "to" { // Newer syntax
|
11
|
+
$side: nth($pos, 2);
|
12
|
+
|
13
|
+
@if $length == 2 { // eg. to top
|
14
|
+
// Swap for backwards compatibility
|
15
|
+
$degree: _position-flipper(nth($pos, 2));
|
16
|
+
}
|
17
|
+
@else if $length == 3 { // eg. to top left
|
18
|
+
$corner: nth($pos, 3);
|
19
|
+
}
|
20
|
+
}
|
21
|
+
@else if $length == 2 { // Older syntax ("top left")
|
22
|
+
$side: _position-flipper(nth($pos, 1));
|
23
|
+
$corner: _position-flipper(nth($pos, 2));
|
24
|
+
}
|
25
|
+
|
26
|
+
@if ("#{$side} #{$corner}" == "left top") or ("#{$side} #{$corner}" == "top left") {
|
27
|
+
$degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
|
28
|
+
}
|
29
|
+
@else if ("#{$side} #{$corner}" == "right top") or ("#{$side} #{$corner}" == "top right") {
|
30
|
+
$degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
|
31
|
+
}
|
32
|
+
@else if ("#{$side} #{$corner}" == "right bottom") or ("#{$side} #{$corner}" == "bottom right") {
|
33
|
+
$degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
|
34
|
+
}
|
35
|
+
@else if ("#{$side} #{$corner}" == "left bottom") or ("#{$side} #{$corner}" == "bottom left") {
|
36
|
+
$degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
|
37
|
+
}
|
38
|
+
$spec: to $side $corner;
|
39
|
+
}
|
40
|
+
@else if $length == 1 {
|
41
|
+
// Swap for backwards compatibility
|
42
|
+
@if $type == string {
|
43
|
+
$degree: $pos;
|
44
|
+
$spec: to _position-flipper($pos);
|
45
|
+
}
|
46
|
+
@else {
|
47
|
+
$degree: -270 - $pos; //rotate the gradient opposite from spec
|
48
|
+
$spec: $pos;
|
49
|
+
}
|
50
|
+
}
|
51
|
+
$degree: unquote($degree + ",");
|
52
|
+
$spec: unquote($spec + ",");
|
53
|
+
@return $degree $spec;
|
54
|
+
}
|
55
|
+
|
56
|
+
@function _position-flipper($pos) {
|
57
|
+
@return if($pos == left, right, null)
|
58
|
+
if($pos == right, left, null)
|
59
|
+
if($pos == top, bottom, null)
|
60
|
+
if($pos == bottom, top, null);
|
61
|
+
}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
// Private function for linear-gradient-parser
|
2
|
+
@function _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals) {
|
3
|
+
$val-1: str-slice($first-val, 1, $has-multiple-vals - 1);
|
4
|
+
$val-2: str-slice($first-val, $has-multiple-vals + 1, str-length($first-val));
|
5
|
+
$val-3: null;
|
6
|
+
$has-val-3: str-index($val-2, " ");
|
7
|
+
|
8
|
+
@if $has-val-3 {
|
9
|
+
$val-3: str-slice($val-2, $has-val-3 + 1, str-length($val-2));
|
10
|
+
$val-2: str-slice($val-2, 1, $has-val-3 - 1);
|
11
|
+
}
|
12
|
+
|
13
|
+
$pos: _position-flipper($val-1) _position-flipper($val-2) _position-flipper($val-3);
|
14
|
+
$pos: unquote($pos + "");
|
15
|
+
|
16
|
+
// Use old spec for webkit
|
17
|
+
@if $val-1 == "to" {
|
18
|
+
@return (
|
19
|
+
webkit-image: -webkit- + $prefix + $pos + $suffix,
|
20
|
+
spec-image: $image
|
21
|
+
);
|
22
|
+
}
|
23
|
+
|
24
|
+
// Bring the code up to spec
|
25
|
+
@else {
|
26
|
+
@return (
|
27
|
+
webkit-image: -webkit- + $image,
|
28
|
+
spec-image: $prefix + "to " + $pos + $suffix
|
29
|
+
);
|
30
|
+
}
|
31
|
+
}
|
data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/helpers/_radial-arg-parser.scss
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
@function _radial-arg-parser($g1, $g2, $pos, $shape-size) {
|
2
|
+
@each $value in $g1, $g2 {
|
3
|
+
$first-val: nth($value, 1);
|
4
|
+
$pos-type: type-of($first-val);
|
5
|
+
$spec-at-index: null;
|
6
|
+
|
7
|
+
// Determine if spec was passed to mixin
|
8
|
+
@if type-of($value) == list {
|
9
|
+
$spec-at-index: if(index($value, at), index($value, at), false);
|
10
|
+
}
|
11
|
+
@if $spec-at-index {
|
12
|
+
@if $spec-at-index > 1 {
|
13
|
+
@for $i from 1 through ($spec-at-index - 1) {
|
14
|
+
$shape-size: $shape-size nth($value, $i);
|
15
|
+
}
|
16
|
+
@for $i from ($spec-at-index + 1) through length($value) {
|
17
|
+
$pos: $pos nth($value, $i);
|
18
|
+
}
|
19
|
+
}
|
20
|
+
@else if $spec-at-index == 1 {
|
21
|
+
@for $i from ($spec-at-index + 1) through length($value) {
|
22
|
+
$pos: $pos nth($value, $i);
|
23
|
+
}
|
24
|
+
}
|
25
|
+
$g1: null;
|
26
|
+
}
|
27
|
+
|
28
|
+
// If not spec calculate correct values
|
29
|
+
@else {
|
30
|
+
@if ($pos-type != color) or ($first-val != "transparent") {
|
31
|
+
@if ($pos-type == number)
|
32
|
+
or ($first-val == "center")
|
33
|
+
or ($first-val == "top")
|
34
|
+
or ($first-val == "right")
|
35
|
+
or ($first-val == "bottom")
|
36
|
+
or ($first-val == "left") {
|
37
|
+
|
38
|
+
$pos: $value;
|
39
|
+
|
40
|
+
@if $pos == $g1 {
|
41
|
+
$g1: null;
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
45
|
+
@else if
|
46
|
+
($first-val == "ellipse")
|
47
|
+
or ($first-val == "circle")
|
48
|
+
or ($first-val == "closest-side")
|
49
|
+
or ($first-val == "closest-corner")
|
50
|
+
or ($first-val == "farthest-side")
|
51
|
+
or ($first-val == "farthest-corner")
|
52
|
+
or ($first-val == "contain")
|
53
|
+
or ($first-val == "cover") {
|
54
|
+
|
55
|
+
$shape-size: $value;
|
56
|
+
|
57
|
+
@if $value == $g1 {
|
58
|
+
$g1: null;
|
59
|
+
}
|
60
|
+
|
61
|
+
@else if $value == $g2 {
|
62
|
+
$g2: null;
|
63
|
+
}
|
64
|
+
}
|
65
|
+
}
|
66
|
+
}
|
67
|
+
}
|
68
|
+
@return $g1, $g2, $pos, $shape-size;
|
69
|
+
}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
@function _radial-gradient-parser($image) {
|
2
|
+
$image: unquote($image);
|
3
|
+
$gradients: ();
|
4
|
+
$start: str-index($image, "(");
|
5
|
+
$end: str-index($image, ",");
|
6
|
+
$first-val: str-slice($image, $start + 1, $end - 1);
|
7
|
+
|
8
|
+
$prefix: str-slice($image, 1, $start);
|
9
|
+
$suffix: str-slice($image, $end, str-length($image));
|
10
|
+
|
11
|
+
$is-spec-syntax: str-index($first-val, "at");
|
12
|
+
|
13
|
+
@if $is-spec-syntax and $is-spec-syntax > 1 {
|
14
|
+
$keyword: str-slice($first-val, 1, $is-spec-syntax - 2);
|
15
|
+
$pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val));
|
16
|
+
$pos: append($pos, $keyword, comma);
|
17
|
+
|
18
|
+
$gradients: (
|
19
|
+
webkit-image: -webkit- + $prefix + $pos + $suffix,
|
20
|
+
spec-image: $image
|
21
|
+
);
|
22
|
+
}
|
23
|
+
|
24
|
+
@else if $is-spec-syntax == 1 {
|
25
|
+
$pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val));
|
26
|
+
|
27
|
+
$gradients: (
|
28
|
+
webkit-image: -webkit- + $prefix + $pos + $suffix,
|
29
|
+
spec-image: $image
|
30
|
+
);
|
31
|
+
}
|
32
|
+
|
33
|
+
@else if str-index($image, "cover") or str-index($image, "contain") {
|
34
|
+
@warn "Radial-gradient needs to be updated to conform to latest spec.";
|
35
|
+
|
36
|
+
$gradients: (
|
37
|
+
webkit-image: null,
|
38
|
+
spec-image: $image
|
39
|
+
);
|
40
|
+
}
|
41
|
+
|
42
|
+
@else {
|
43
|
+
$gradients: (
|
44
|
+
webkit-image: -webkit- + $image,
|
45
|
+
spec-image: $image
|
46
|
+
);
|
47
|
+
}
|
48
|
+
|
49
|
+
@return $gradients;
|
50
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
@function _radial-positions-parser($gradient-pos) {
|
2
|
+
$shape-size: nth($gradient-pos, 1);
|
3
|
+
$pos: nth($gradient-pos, 2);
|
4
|
+
$shape-size-spec: _shape-size-stripper($shape-size);
|
5
|
+
|
6
|
+
$pre-spec: unquote(if($pos, "#{$pos}, ", null))
|
7
|
+
unquote(if($shape-size, "#{$shape-size},", null));
|
8
|
+
$pos-spec: if($pos, "at #{$pos}", null);
|
9
|
+
|
10
|
+
$spec: "#{$shape-size-spec} #{$pos-spec}";
|
11
|
+
|
12
|
+
// Add comma
|
13
|
+
@if ($spec != " ") {
|
14
|
+
$spec: "#{$spec},";
|
15
|
+
}
|
16
|
+
|
17
|
+
@return $pre-spec $spec;
|
18
|
+
}
|
data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/helpers/_render-gradients.scss
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
// User for linear and radial gradients within background-image or border-image properties
|
2
|
+
|
3
|
+
@function _render-gradients($gradient-positions, $gradients, $gradient-type, $vendor: false) {
|
4
|
+
$pre-spec: null;
|
5
|
+
$spec: null;
|
6
|
+
$vendor-gradients: null;
|
7
|
+
@if $gradient-type == linear {
|
8
|
+
@if $gradient-positions {
|
9
|
+
$pre-spec: nth($gradient-positions, 1);
|
10
|
+
$spec: nth($gradient-positions, 2);
|
11
|
+
}
|
12
|
+
}
|
13
|
+
@else if $gradient-type == radial {
|
14
|
+
$pre-spec: nth($gradient-positions, 1);
|
15
|
+
$spec: nth($gradient-positions, 2);
|
16
|
+
}
|
17
|
+
|
18
|
+
@if $vendor {
|
19
|
+
$vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient(#{$pre-spec} $gradients);
|
20
|
+
}
|
21
|
+
@else if $vendor == false {
|
22
|
+
$vendor-gradients: "#{$gradient-type}-gradient(#{$spec} #{$gradients})";
|
23
|
+
$vendor-gradients: unquote($vendor-gradients);
|
24
|
+
}
|
25
|
+
@return $vendor-gradients;
|
26
|
+
}
|
data/app/assets/stylesheets/codelation_ui/_base_resources/bourbon/helpers/_shape-size-stripper.scss
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
@function _shape-size-stripper($shape-size) {
|
2
|
+
$shape-size-spec: null;
|
3
|
+
@each $value in $shape-size {
|
4
|
+
@if ($value == "cover") or ($value == "contain") {
|
5
|
+
$value: null;
|
6
|
+
}
|
7
|
+
$shape-size-spec: "#{$shape-size-spec} #{$value}";
|
8
|
+
}
|
9
|
+
@return $shape-size-spec;
|
10
|
+
}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
//************************************************************************//
|
2
|
+
// Helper function for linear/radial-gradient-parsers.
|
3
|
+
// Source: http://sassmeister.com/gist/9647408
|
4
|
+
//************************************************************************//
|
5
|
+
@function _str-to-num($string) {
|
6
|
+
// Matrices
|
7
|
+
$strings: "0" "1" "2" "3" "4" "5" "6" "7" "8" "9";
|
8
|
+
$numbers: 0 1 2 3 4 5 6 7 8 9;
|
9
|
+
|
10
|
+
// Result
|
11
|
+
$result: 0;
|
12
|
+
$divider: 0;
|
13
|
+
$minus: false;
|
14
|
+
|
15
|
+
// Looping through all characters
|
16
|
+
@for $i from 1 through str-length($string) {
|
17
|
+
$character: str-slice($string, $i, $i);
|
18
|
+
$index: index($strings, $character);
|
19
|
+
|
20
|
+
@if $character == "-" {
|
21
|
+
$minus: true;
|
22
|
+
}
|
23
|
+
|
24
|
+
@else if $character == "." {
|
25
|
+
$divider: 1;
|
26
|
+
}
|
27
|
+
|
28
|
+
@else {
|
29
|
+
@if not $index {
|
30
|
+
$result: if($minus, $result * -1, $result);
|
31
|
+
@return _convert-units($result, str-slice($string, $i));
|
32
|
+
}
|
33
|
+
|
34
|
+
$number: nth($numbers, $index);
|
35
|
+
|
36
|
+
@if $divider == 0 {
|
37
|
+
$result: $result * 10;
|
38
|
+
}
|
39
|
+
|
40
|
+
@else {
|
41
|
+
// Move the decimal dot to the left
|
42
|
+
$divider: $divider * 10;
|
43
|
+
$number: $number / $divider;
|
44
|
+
}
|
45
|
+
|
46
|
+
$result: $result + $number;
|
47
|
+
}
|
48
|
+
}
|
49
|
+
@return if($minus, $result * -1, $result);
|
50
|
+
}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
@charset "UTF-8";
|
2
|
+
|
3
|
+
/// Global variables to enable or disable vendor prefixes
|
4
|
+
|
5
|
+
$prefix-for-webkit: true !default;
|
6
|
+
$prefix-for-mozilla: true !default;
|
7
|
+
$prefix-for-microsoft: true !default;
|
8
|
+
$prefix-for-opera: true !default;
|
9
|
+
$prefix-for-spec: true !default;
|
@@ -0,0 +1 @@
|
|
1
|
+
$em-base: 16px !default;
|
@@ -0,0 +1,162 @@
|
|
1
|
+
// Google's material design colors
|
2
|
+
// @see https://www.google.com/design/spec/style/color.html
|
3
|
+
$amber: #ffc107;
|
4
|
+
$black: #000;
|
5
|
+
$blue: #2196f3;
|
6
|
+
$blue-grey: #607d8b;
|
7
|
+
$brown: #795548;
|
8
|
+
$cyan: #00bcd4;
|
9
|
+
$deep-orange: #ff5722;
|
10
|
+
$deep-purple: #673ab7;
|
11
|
+
$green: #4caf50;
|
12
|
+
$grey: #9e9e9e;
|
13
|
+
$indigo: #3f51b5;
|
14
|
+
$light-blue: #03a9f4;
|
15
|
+
$light-green: #8bc34a;
|
16
|
+
$lime: #cddc39;
|
17
|
+
$orange: #ff9800;
|
18
|
+
$pink: #e91e63;
|
19
|
+
$purple: #9c27b0;
|
20
|
+
$red: #f44336;
|
21
|
+
$teal: #009688;
|
22
|
+
$white: #fff;
|
23
|
+
$yellow: #ffeb3b;
|
24
|
+
|
25
|
+
$amber-colors: #fff8e1, #ffecb3, #ffe082, #ffd54f, #ffca28, #ffc107, #ffb300, #ffa000, #ff8f00, #ff6f00, #ffe57f, #ffd740, #ffc400, #ffab00;
|
26
|
+
$blue-colors: #e3f2fd, #bbdefb, #90caf9, #64b5f6, #42a5f5, #2196f3, #1e88e5, #1976d2, #1565c0, #0d47a1, #82b1ff, #448aff, #2979ff, #2962ff;
|
27
|
+
$blue-grey-colors: #eceff1, #cfd8dc, #b0bec5, #90a4ae, #78909c, #607d8b, #546e7a, #455a64, #37474f, #263238;
|
28
|
+
$brown-colors: #efebe9, #d7ccc8, #bcaaa4, #a1887f, #8d6e63, #795548, #6d4c41, #5d4037, #4e342e, #3e2723;
|
29
|
+
$cyan-colors: #e0f7fa, #b2ebf2, #80deea, #4dd0e1, #26c6da, #00bcd4, #00acc1, #0097a7, #00838f, #006064, #84ffff, #18ffff, #00e5ff, #00b8d4;
|
30
|
+
$deep-orange-colors: #fbe9e7, #ffccbc, #ffab91, #ff8a65, #ff7043, #ff5722, #f4511e, #e64a19, #d84315, #bf360c, #ff9e80, #ff6e40, #ff3d00, #dd2c00;
|
31
|
+
$deep-purple-colors: #ede7f6, #d1c4e9, #b39ddb, #9575cd, #7e57c2, #673ab7, #5e35b1, #512da8, #4527a0, #311b92, #b388ff, #7c4dff, #651fff, #6200ea;
|
32
|
+
$green-colors: #e8f5e9, #c8e6c9, #a5d6a7, #81c784, #66bb6a, #4caf50, #43a047, #388e3c, #2e7d32, #1b5e20, #b9f6ca, #69f0ae, #00e676, #00c853;
|
33
|
+
$grey-colors: #fafafa, #f5f5f5, #eeeeee, #e0e0e0, #bdbdbd, #9e9e9e, #757575, #616161, #424242, #212121;
|
34
|
+
$indigo-colors: #e8eaf6, #c5cae9, #9fa8da, #7986cb, #5c6bc0, #3f51b5, #3949ab, #303f9f, #283593, #1a237e, #8c9eff, #536dfe, #3d5afe, #304ffe;
|
35
|
+
$light-blue-colors: #e1f5fe, #b3e5fc, #81d4fa, #4fc3f7, #29b6f6, #03a9f4, #039be5, #0288d1, #0277bd, #01579b, #80d8ff, #40c4ff, #00b0ff, #0091ea;
|
36
|
+
$light-green-colors: #f1f8e9, #dcedc8, #c5e1a5, #aed581, #9ccc65, #8bc34a, #7cb342, #689f38, #558b2f, #33691e, #ccff90, #b2ff59, #76ff03, #64dd17;
|
37
|
+
$lime-colors: #f9fbe7, #f0f4c3, #e6ee9c, #dce775, #d4e157, #cddc39, #c0ca33, #afb42b, #9e9d24, #827717, #f4ff81, #eeff41, #c6ff00, #aeea00;
|
38
|
+
$orange-colors: #fff3e0, #ffe0b2, #ffcc80, #ffb74d, #ffa726, #ff9800, #fb8c00, #f57c00, #ef6c00, #e65100, #ffd180, #ffab40, #ff9100, #ff6d00;
|
39
|
+
$pink-colors: #fce4ec, #f8bbd0, #f48fb1, #f06292, #ec407a, #e91e63, #d81b60, #c2185b, #ad1457, #880e4f, #ff80ab, #ff4081, #f50057, #c51162;
|
40
|
+
$purple-colors: #f3e5f5, #e1bee7, #ce93d8, #ba68c8, #ab47bc, #9c27b0, #8e24aa, #7b1fa2, #6a1b9a, #4a148c, #ea80fc, #e040fb, #d500f9, #aa00ff;
|
41
|
+
$red-colors: #ffebee, #ffcdd2, #ef9a9a, #e57373, #ef5350, #f44336, #e53935, #d32f2f, #c62828, #b71c1c, #ff8a80, #ff5252, #ff1744, #d50000;
|
42
|
+
$teal-colors: #e0f2f1, #b2dfdb, #80cbc4, #4db6ac, #26a69a, #009688, #00897b, #00796b, #00695c, #004d40, #a7ffeb, #64ffda, #1de9b6, #00bfa5;
|
43
|
+
$yellow-colors: #fffde7, #fff9c4, #fff59d, #fff176, #ffee58, #ffeb3b, #fdd835, #fbc02d, #f9a825, #f57f17, #ffff8d, #ffff00, #ffea00, #ffd600;
|
44
|
+
|
45
|
+
@function color($color, $number: 500) {
|
46
|
+
$colors: "custom";
|
47
|
+
$index: 6;
|
48
|
+
|
49
|
+
@if $color == $amber {
|
50
|
+
$colors: $amber-colors;
|
51
|
+
} @else if $color == $black {
|
52
|
+
@return $black;
|
53
|
+
} @else if $color == $blue {
|
54
|
+
$colors: $blue-colors;
|
55
|
+
} @else if $color == $blue-grey {
|
56
|
+
$colors: $blue-grey-colors;
|
57
|
+
} @else if $color == $brown {
|
58
|
+
$colors: $brown-colors;
|
59
|
+
} @else if $color == $cyan {
|
60
|
+
$colors: $cyan-colors;
|
61
|
+
} @else if $color == $deep-orange {
|
62
|
+
$colors: $deep-orange-colors;
|
63
|
+
} @else if $color == $deep-purple {
|
64
|
+
$colors: $deep-purple-colors;
|
65
|
+
} @else if $color == $green {
|
66
|
+
$colors: $green-colors;
|
67
|
+
} @else if $color == $grey {
|
68
|
+
$colors: $grey-colors;
|
69
|
+
} @else if $color == $indigo {
|
70
|
+
$colors: $indigo-colors;
|
71
|
+
} @else if $color == $light-blue {
|
72
|
+
$colors: $light-blue-colors;
|
73
|
+
} @else if $color == $light-green {
|
74
|
+
$colors: $light-green-colors;
|
75
|
+
} @else if $color == $green {
|
76
|
+
$colors: $green-colors;
|
77
|
+
} @else if $color == $lime {
|
78
|
+
$colors: $lime-colors;
|
79
|
+
} @else if $color == $orange {
|
80
|
+
$colors: $orange-colors;
|
81
|
+
} @else if $color == $pink {
|
82
|
+
$colors: $pink-colors;
|
83
|
+
} @else if $color == $purple {
|
84
|
+
$colors: $purple-colors;
|
85
|
+
} @else if $color == $red {
|
86
|
+
$colors: $red-colors;
|
87
|
+
} @else if $color == $teal {
|
88
|
+
$colors: $teal-colors;
|
89
|
+
} @else if $color == $white {
|
90
|
+
@return $white;
|
91
|
+
} @else if $color == $yellow {
|
92
|
+
$colors: $yellow-colors;
|
93
|
+
}
|
94
|
+
|
95
|
+
// A non-Material Design color was given, so we'll do our best to return a
|
96
|
+
// similar shade of that color. Will not handle the A100-A700 numbers.
|
97
|
+
@if $colors == "custom" {
|
98
|
+
@if $number == 50 {
|
99
|
+
@return desaturate(lighten($color, 38%), 25%);
|
100
|
+
} @else if $number == 100 {
|
101
|
+
@return desaturate(lighten($color, 28%), 16%);
|
102
|
+
} @else if $number == 200 {
|
103
|
+
@return desaturate(lighten($color, 22%), 10%);
|
104
|
+
} @else if $number == 300 {
|
105
|
+
@return desaturate(lighten($color, 15%), 8%);
|
106
|
+
} @else if $number == 400 {
|
107
|
+
@return desaturate(lighten($color, 8%), 2%);
|
108
|
+
} @else if $number == 500 {
|
109
|
+
@return $color;
|
110
|
+
} @else if $number == 600 {
|
111
|
+
@return desaturate(darken($color, 5%), 10%);
|
112
|
+
} @else if $number == 700 {
|
113
|
+
@return desaturate(darken($color, 10%), 18%);
|
114
|
+
} @else if $number == 800 {
|
115
|
+
@return desaturate(darken($color, 16%), 16%);
|
116
|
+
} @else if $number == 900 {
|
117
|
+
@return saturate(darken($color, 35%), 20%);
|
118
|
+
} @else {
|
119
|
+
@error "Only Google Material Design colors can be used with A100-A700. Given: #{$color} #{$number}";
|
120
|
+
}
|
121
|
+
}
|
122
|
+
|
123
|
+
// Google Material Design colors will return the exact color defined by Google.
|
124
|
+
@if $number == 50 {
|
125
|
+
$index: 1;
|
126
|
+
} @else if $number == 100 {
|
127
|
+
$index: 2;
|
128
|
+
} @else if $number == 200 {
|
129
|
+
$index: 3;
|
130
|
+
} @else if $number == 300 {
|
131
|
+
$index: 4;
|
132
|
+
} @else if $number == 400 {
|
133
|
+
$index: 5;
|
134
|
+
} @else if $number == 500 {
|
135
|
+
$index: 6;
|
136
|
+
} @else if $number == 600 {
|
137
|
+
$index: 7;
|
138
|
+
} @else if $number == 700 {
|
139
|
+
$index: 8;
|
140
|
+
} @else if $number == 800 {
|
141
|
+
$index: 9;
|
142
|
+
} @else if $number == 900 {
|
143
|
+
$index: 10;
|
144
|
+
} @else {
|
145
|
+
// A100-A700 colors are available for most Google Material Design colors with a few exceptions.
|
146
|
+
@if $color != $blue-grey and $color != $brown and $color != $grey {
|
147
|
+
@if $number == A100 {
|
148
|
+
$index: 11;
|
149
|
+
} @else if $number == A200 {
|
150
|
+
$index: 12;
|
151
|
+
} @else if $number == A400 {
|
152
|
+
$index: 13;
|
153
|
+
} @else if $number == A700 {
|
154
|
+
$index: 14;
|
155
|
+
}
|
156
|
+
} @else {
|
157
|
+
@error "$blue-grey, $brown, and $grey do not have A100-A700 colors. Given: #{$number}";
|
158
|
+
}
|
159
|
+
}
|
160
|
+
|
161
|
+
@return nth($colors, $index);
|
162
|
+
}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
// Get the text color to go on top of Google's material design colors
|
2
|
+
// @see https://www.google.com/design/spec/style/color.html
|
3
|
+
@function text-color($color) {
|
4
|
+
$text-color: $white;
|
5
|
+
|
6
|
+
@if $color == $amber {
|
7
|
+
$text-color: $black;
|
8
|
+
} @else if $color == $black {
|
9
|
+
$text-color: $white;
|
10
|
+
} @else if $color == $cyan {
|
11
|
+
$text-color: $black;
|
12
|
+
} @else if $color == $deep-orange {
|
13
|
+
$text-color: $white;
|
14
|
+
} @else if $color == $green {
|
15
|
+
$text-color: $black;
|
16
|
+
} @else if $color == $grey {
|
17
|
+
$text-color: $black;
|
18
|
+
} @else if $color == $light-blue {
|
19
|
+
$text-color: $black;
|
20
|
+
} @else if $color == $light-green {
|
21
|
+
$text-color: $black;
|
22
|
+
} @else if $color == $green {
|
23
|
+
$text-color: $black;
|
24
|
+
} @else if $color == $lime {
|
25
|
+
$text-color: $black;
|
26
|
+
} @else if $color == $orange {
|
27
|
+
$text-color: $black;
|
28
|
+
} @else if $color == $white {
|
29
|
+
$text-color: $black;
|
30
|
+
} @else if $color == $yellow {
|
31
|
+
$text-color: $black;
|
32
|
+
} @else {
|
33
|
+
@if lightness($color) < 50% {
|
34
|
+
$text-color: $white;
|
35
|
+
} @else {
|
36
|
+
$text-color: $black;
|
37
|
+
}
|
38
|
+
}
|
39
|
+
|
40
|
+
@return $text-color;
|
41
|
+
}
|