doggystyle 0.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.
- checksums.yaml +7 -0
- data/.gitignore +16 -0
- data/.hound.yml +5 -0
- data/.npmignore +18 -0
- data/.ruby-version +1 -0
- data/.scss-lint.yml +243 -0
- data/.travis.yml +5 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +40 -0
- data/RELEASING.md +1 -0
- data/Rakefile +9 -0
- data/bin/doggystyle +5 -0
- data/bower.json +38 -0
- data/circle.yml +13 -0
- data/core/_imports.scss +229 -0
- data/core/animations/_jump.scss +7 -0
- data/core/animations/_shake.scss +24 -0
- data/core/animations/_wobble.scss +8 -0
- data/core/functions/_mobile-first.scss +3 -0
- data/core/functions/_opposite-direction.scss +45 -0
- data/core/functions/casts/_to-bool.scss +19 -0
- data/core/functions/casts/_to-color.scss +74 -0
- data/core/functions/casts/_to-list.scss +38 -0
- data/core/functions/casts/_to-map.scss +27 -0
- data/core/functions/casts/_to-null.scss +15 -0
- data/core/functions/casts/_to-number.scss +66 -0
- data/core/functions/casts/_to-string.scss +15 -0
- data/core/functions/colours/_colour-contrast.scss +61 -0
- data/core/functions/colours/_colour.scss +69 -0
- data/core/functions/colours/_random-colour.scss +78 -0
- data/core/functions/lists/_contains.scss +62 -0
- data/core/functions/lists/_first.scss +19 -0
- data/core/functions/lists/_insert-nth.scss +37 -0
- data/core/functions/lists/_last.scss +11 -0
- data/core/functions/lists/_merge.scss +30 -0
- data/core/functions/lists/_prepend.scss +11 -0
- data/core/functions/lists/_remove-nth.scss +53 -0
- data/core/functions/lists/_remove.scss +30 -0
- data/core/functions/lists/_replace-nth.scss +55 -0
- data/core/functions/lists/_replace.scss +36 -0
- data/core/functions/lists/_reverse.scss +31 -0
- data/core/functions/lists/_second.scss +19 -0
- data/core/functions/lists/_shift.scss +24 -0
- data/core/functions/lists/_slice.scss +52 -0
- data/core/functions/lists/_sort.scss +51 -0
- data/core/functions/maps/_map-deep-get.scss +51 -0
- data/core/functions/maps/_map-deep-set.scss +34 -0
- data/core/functions/maps/_map-depth.scss +23 -0
- data/core/functions/maps/_map-extend.scss +47 -0
- data/core/functions/maps/_map-has-keys.scss +23 -0
- data/core/functions/maps/_map-has-nested-keys.scss +24 -0
- data/core/functions/maps/_map-set.scss +4 -0
- data/core/functions/maps/_map-zip.scss +50 -0
- data/core/functions/numbers/_add-unit.scss +54 -0
- data/core/functions/numbers/_pad.scss +16 -0
- data/core/functions/numbers/_spacer.scss +16 -0
- data/core/functions/numbers/_strip.scss +29 -0
- data/core/functions/numbers/_units.scss +17 -0
- data/core/functions/svg/_dots.scss +84 -0
- data/core/functions/svg/_fake-radius.scss +131 -0
- data/core/functions/svg/_lines.scss +76 -0
- data/core/functions/svg/_svg.scss +12 -0
- data/core/functions/text/_smart-lineheight.scss +13 -0
- data/core/functions/text/_string-explode.scss +45 -0
- data/core/functions/text/_string-replace.scss +38 -0
- data/core/helpers/_custom-elements.scss +114 -0
- data/core/helpers/_eases.scss +44 -0
- data/core/helpers/_reset.scss +282 -0
- data/core/helpers/_show-breakpoints.scss +25 -0
- data/core/helpers/_strings.scss +648 -0
- data/core/helpers/_warnings.scss +3 -0
- data/core/helpers/checks/_check.scss +69 -0
- data/core/helpers/checks/_is-absolute-length.scss +25 -0
- data/core/helpers/checks/_is-angel.scss +25 -0
- data/core/helpers/checks/_is-arglist.scss +11 -0
- data/core/helpers/checks/_is-bool.scss +23 -0
- data/core/helpers/checks/_is-calc.scss +11 -0
- data/core/helpers/checks/_is-colour.scss +23 -0
- data/core/helpers/checks/_is-dark.scss +14 -0
- data/core/helpers/checks/_is-duration.scss +15 -0
- data/core/helpers/checks/_is-false.scss +13 -0
- data/core/helpers/checks/_is-first-character.scss +11 -0
- data/core/helpers/checks/_is-frequency.scss +15 -0
- data/core/helpers/checks/_is-function.scss +44 -0
- data/core/helpers/checks/_is-integer.scss +15 -0
- data/core/helpers/checks/_is-length.scss +16 -0
- data/core/helpers/checks/_is-light.scss +14 -0
- data/core/helpers/checks/_is-list.scss +11 -0
- data/core/helpers/checks/_is-map.scss +11 -0
- data/core/helpers/checks/_is-null.scss +11 -0
- data/core/helpers/checks/_is-number.scss +19 -0
- data/core/helpers/checks/_is-percentage.scss +13 -0
- data/core/helpers/checks/_is-position.scss +16 -0
- data/core/helpers/checks/_is-pseudo.scss +24 -0
- data/core/helpers/checks/_is-relative-length.scss +25 -0
- data/core/helpers/checks/_is-resolution.scss +15 -0
- data/core/helpers/checks/_is-selector.scss +3 -0
- data/core/helpers/checks/_is-string.scss +11 -0
- data/core/helpers/checks/_is-time.scss +15 -0
- data/core/helpers/checks/_is-unit.scss +16 -0
- data/core/helpers/private/_arglist-to-list.scss +36 -0
- data/core/helpers/private/_brightness.scss +13 -0
- data/core/helpers/private/_find-digits.scss +41 -0
- data/core/helpers/private/_find-integer.scss +40 -0
- data/core/helpers/private/_from-hex.scss +48 -0
- data/core/helpers/private/_from-hsl.scss +55 -0
- data/core/helpers/private/_from-rgb.scss +55 -0
- data/core/helpers/private/_get-color-value.scss +26 -0
- data/core/helpers/private/_hash-fix.scss +15 -0
- data/core/helpers/private/_hex-to-dec.scss +28 -0
- data/core/helpers/private/_length.scss +26 -0
- data/core/helpers/private/_lightness.scss +15 -0
- data/core/helpers/private/_list-items-to-strings.scss +8 -0
- data/core/helpers/private/_min-max-number.scss +12 -0
- data/core/helpers/private/_pow.scss +29 -0
- data/core/helpers/private/_string-compare.scss +38 -0
- data/core/helpers/private/_string-explode.scss +43 -0
- data/core/helpers/private/_sudo.scss +23 -0
- data/core/helpers/symbols/_arrows.scss +337 -0
- data/core/helpers/symbols/_block.scss +97 -0
- data/core/helpers/symbols/_box.scss +385 -0
- data/core/helpers/symbols/_common.scss +101 -0
- data/core/helpers/symbols/_currency.scss +82 -0
- data/core/helpers/symbols/_dingbats.scss +565 -0
- data/core/helpers/symbols/_geometric.scss +289 -0
- data/core/helpers/symbols/_letterlike.scss +235 -0
- data/core/helpers/symbols/_misc.scss +568 -0
- data/core/helpers/symbols/_operators.scss +766 -0
- data/core/helpers/symbols/_punctuation.scss +214 -0
- data/core/mixins/_align.scss +15 -0
- data/core/mixins/_animate.scss +16 -0
- data/core/mixins/_aspect-ratio.scss +86 -0
- data/core/mixins/_backface-visibility.scss +7 -0
- data/core/mixins/_background-image.scss +13 -0
- data/core/mixins/_blend.scss +10 -0
- data/core/mixins/_blendmodes.scss +24 -0
- data/core/mixins/_border-radius.scss +105 -0
- data/core/mixins/_browsers.scss +155 -0
- data/core/mixins/_bulletpoint.scss +12 -0
- data/core/mixins/_center.scss +3 -0
- data/core/mixins/_clearfix.scss +7 -0
- data/core/mixins/_columns.scss +22 -0
- data/core/mixins/_custom-property.scss +15 -0
- data/core/mixins/_devices.scss +97 -0
- data/core/mixins/_dropdown.scss +38 -0
- data/core/mixins/_fake-radius.scss +99 -0
- data/core/mixins/_filters.scss +163 -0
- data/core/mixins/_flip.scss +11 -0
- data/core/mixins/_font-face.scss +11 -0
- data/core/mixins/_fontsize.scss +126 -0
- data/core/mixins/_gallery.scss +134 -0
- data/core/mixins/_gradient.scss +72 -0
- data/core/mixins/_image-size.scss +18 -0
- data/core/mixins/_image.scss +12 -0
- data/core/mixins/_inputs.scss +18 -0
- data/core/mixins/_keyframes.scss +8 -0
- data/core/mixins/_last.scss +5 -0
- data/core/mixins/_nth-last.scss +7 -0
- data/core/mixins/_nth.scss +10 -0
- data/core/mixins/_placeholder.scss +15 -0
- data/core/mixins/_prefixer.scss +55 -0
- data/core/mixins/_selection.scss +15 -0
- data/core/mixins/_shadow.scss +7 -0
- data/core/mixins/_size.scss +13 -0
- data/core/mixins/_smart-horizontal.scss +21 -0
- data/core/mixins/_sudo-image.scss +12 -0
- data/core/mixins/_text-shadow.scss +30 -0
- data/core/mixins/_transforms.scss +264 -0
- data/core/mixins/_transition.scss +189 -0
- data/core/mixins/_triangle-classic.scss +170 -0
- data/core/mixins/_triangle.scss +250 -0
- data/core/mixins/_unwrap.scss +5 -0
- data/core/mixins/_user-select.scss +5 -0
- data/core/mixins/_vertical.scss +10 -0
- data/core/mixins/columns/_columns.scss +92 -0
- data/core/mixins/flexbox/_flex-container.scss +201 -0
- data/core/mixins/flexbox/_flex-grid.scss +235 -0
- data/core/mixins/flexbox/_flex-items.scss +140 -0
- data/core/mixins/flexbox/_flex-remove.scss +12 -0
- data/core/mixins/grid/_break-between.scss +6 -0
- data/core/mixins/grid/_grid.scss +150 -0
- data/core/mixins/svg/_svg-size.scss +4 -0
- data/core/mixins/svg/_svg.scss +9 -0
- data/core/placeholders/_clear.scss +27 -0
- data/core/placeholders/_cursor.scss +35 -0
- data/core/placeholders/_misc.scss +20 -0
- data/core/placeholders/_rendering.scss +21 -0
- data/core/placeholders/_text.scss +41 -0
- data/core/settings/_colours.scss +30 -0
- data/core/settings/_directories.scss +7 -0
- data/core/settings/_global.scss +14 -0
- data/core/settings/_grid.scss +24 -0
- data/core/settings/_padding.scss +8 -0
- data/core/settings/_spacing.scss +8 -0
- data/core/settings/_text.scss +13 -0
- data/doggystyle.gemspec +29 -0
- data/eyeglass-exports.js +7 -0
- data/features/install.feature +29 -0
- data/features/step_definitions/doggystyle_steps.rb +31 -0
- data/features/support/bourbon_support.rb +19 -0
- data/features/support/env.rb +1 -0
- data/features/update.feature +30 -0
- data/features/version.feature +5 -0
- data/index.js +7 -0
- data/lib/doggystyle.rb +7 -0
- data/lib/doggystyle/generator.rb +81 -0
- data/lib/doggystyle/version.rb +3 -0
- data/package.json +33 -0
- data/spec/doggystyle/library/border_color_spec.rb +51 -0
- data/spec/doggystyle/library/border_radius_spec.rb +25 -0
- data/spec/doggystyle/library/border_style_spec.rb +51 -0
- data/spec/doggystyle/library/border_width_spec.rb +51 -0
- data/spec/doggystyle/library/buttons_spec.rb +53 -0
- data/spec/doggystyle/library/clearfix_spec.rb +18 -0
- data/spec/doggystyle/library/contrast_switch_spec.rb +23 -0
- data/spec/doggystyle/library/ellipsis_spec.rb +20 -0
- data/spec/doggystyle/library/font_face_spec_1.rb +16 -0
- data/spec/doggystyle/library/font_face_spec_2.rb +21 -0
- data/spec/doggystyle/library/font_face_spec_3.rb +16 -0
- data/spec/doggystyle/library/font_face_spec_4.rb +17 -0
- data/spec/doggystyle/library/font_stacks_spec.rb +40 -0
- data/spec/doggystyle/library/hide_text_spec.rb +17 -0
- data/spec/doggystyle/library/hide_visually_spec.rb +35 -0
- data/spec/doggystyle/library/margin_spec.rb +51 -0
- data/spec/doggystyle/library/modular_scale_spec.rb +43 -0
- data/spec/doggystyle/library/padding_spec.rb +51 -0
- data/spec/doggystyle/library/position_spec.rb +67 -0
- data/spec/doggystyle/library/prefixer_spec.rb +34 -0
- data/spec/doggystyle/library/shade_spec.rb +31 -0
- data/spec/doggystyle/library/size_spec.rb +31 -0
- data/spec/doggystyle/library/strip_unit_spec.rb +31 -0
- data/spec/doggystyle/library/text_inputs_spec.rb +75 -0
- data/spec/doggystyle/library/tint_spec.rb +31 -0
- data/spec/doggystyle/library/triangle_spec.rb +31 -0
- data/spec/doggystyle/library/word_wrap_spec.rb +29 -0
- data/spec/doggystyle/utilities/assign_inputs_spec.rb +50 -0
- data/spec/doggystyle/utilities/collapse_directionals.rb +25 -0
- data/spec/doggystyle/utilities/directional_values_spec.rb +21 -0
- data/spec/doggystyle/utilities/font_source_declaration_spec.rb +29 -0
- data/spec/doggystyle/utilities/retrieve_bourbon_setting_spec.rb +31 -0
- data/spec/doggystyle/utilities/unpack_spec.rb +32 -0
- data/spec/doggystyle/validators/contains_spec.rb +27 -0
- data/spec/doggystyle/validators/is_length_spec.rb +49 -0
- data/spec/doggystyle/validators/is_light_spec.rb +37 -0
- data/spec/doggystyle/validators/is_number_spec.rb +43 -0
- data/spec/doggystyle/validators/is_size_spec.rb +43 -0
- data/spec/fixtures/_setup.scss +1 -0
- data/spec/fixtures/library/border-color.scss +26 -0
- data/spec/fixtures/library/border-radius.scss +17 -0
- data/spec/fixtures/library/border-style.scss +21 -0
- data/spec/fixtures/library/border-width.scss +21 -0
- data/spec/fixtures/library/buttons.scss +17 -0
- data/spec/fixtures/library/clearfix.scss +5 -0
- data/spec/fixtures/library/contrast-switch.scss +9 -0
- data/spec/fixtures/library/ellipsis.scss +5 -0
- data/spec/fixtures/library/font-face-1.scss +6 -0
- data/spec/fixtures/library/font-face-2.scss +10 -0
- data/spec/fixtures/library/font-face-3.scss +8 -0
- data/spec/fixtures/library/font-face-4.scss +7 -0
- data/spec/fixtures/library/font-stacks.scss +41 -0
- data/spec/fixtures/library/hide-text.scss +5 -0
- data/spec/fixtures/library/hide-visually.scss +9 -0
- data/spec/fixtures/library/margin.scss +21 -0
- data/spec/fixtures/library/modular-scale.scss +29 -0
- data/spec/fixtures/library/padding.scss +21 -0
- data/spec/fixtures/library/position.scss +25 -0
- data/spec/fixtures/library/prefixer.scss +13 -0
- data/spec/fixtures/library/shade.scss +17 -0
- data/spec/fixtures/library/size.scss +13 -0
- data/spec/fixtures/library/strip-unit.scss +17 -0
- data/spec/fixtures/library/text-inputs.scss +21 -0
- data/spec/fixtures/library/tint.scss +17 -0
- data/spec/fixtures/library/triangle.scss +9 -0
- data/spec/fixtures/library/word-wrap.scss +9 -0
- data/spec/fixtures/utilities/assign-inputs.scss +19 -0
- data/spec/fixtures/utilities/collapse-directionals.scss +17 -0
- data/spec/fixtures/utilities/directional-values.scss +13 -0
- data/spec/fixtures/utilities/font-source-declaration.scss +11 -0
- data/spec/fixtures/utilities/retrieve-bourbon-setting.scss +16 -0
- data/spec/fixtures/utilities/unpack.scss +17 -0
- data/spec/fixtures/validators/contains.scss +28 -0
- data/spec/fixtures/validators/is-length.scss +35 -0
- data/spec/fixtures/validators/is-light.scss +29 -0
- data/spec/fixtures/validators/is-number.scss +31 -0
- data/spec/fixtures/validators/is-size.scss +31 -0
- data/spec/spec_helper.rb +22 -0
- data/spec/support/matchers/have_rule.rb +35 -0
- data/spec/support/matchers/have_ruleset.rb +20 -0
- data/spec/support/matchers/have_value.rb +17 -0
- data/spec/support/parser_support.rb +16 -0
- data/spec/support/sass_support.rb +10 -0
- metadata +527 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/// If a value does not exist or is invalid, revert to a fallback value
|
|
2
|
+
///
|
|
3
|
+
/// @author Mark Notton
|
|
4
|
+
///
|
|
5
|
+
/// @access public
|
|
6
|
+
///
|
|
7
|
+
/// @param {*} $unit - The unit you want to check exists and is valid. Normally an nth list item or variable.
|
|
8
|
+
///
|
|
9
|
+
/// @param {*} $fallback - If the first parameter doesn't exist or isn't valid, revert back to this fallback
|
|
10
|
+
///
|
|
11
|
+
/// @param {string} $check - Check for a certain type of condition. Default is number.
|
|
12
|
+
/// Accepted check types : angel, duration, false, frequency, integer, length, number, percentage, position, pseudo, sudo, resolution, time
|
|
13
|
+
///
|
|
14
|
+
/// @require {function} is-absolute-length
|
|
15
|
+
/// @require {function} is-angel
|
|
16
|
+
/// @require {function} is-bool
|
|
17
|
+
/// @require {function} is-colour
|
|
18
|
+
/// @require {function} is-duration
|
|
19
|
+
/// @require {function} is-false
|
|
20
|
+
/// @require {function} is-frequency
|
|
21
|
+
/// @require {function} is-integer
|
|
22
|
+
/// @require {function} is-length
|
|
23
|
+
/// @require {function} is-list
|
|
24
|
+
/// @require {function} is-map
|
|
25
|
+
/// @require {function} is-null
|
|
26
|
+
/// @require {function} is-number
|
|
27
|
+
/// @require {function} is-percentage
|
|
28
|
+
/// @require {function} is-position
|
|
29
|
+
/// @require {function} is-pseudo
|
|
30
|
+
/// @require {function} is-relative-length
|
|
31
|
+
/// @require {function} is-resolution
|
|
32
|
+
/// @require {function} is-string
|
|
33
|
+
/// @require {function} is-time
|
|
34
|
+
/// @require {variable} warnings
|
|
35
|
+
///
|
|
36
|
+
/// @return {*}
|
|
37
|
+
|
|
38
|
+
@function check($value, $fallback, $check:number) {
|
|
39
|
+
@if index(angel duration false frequency integer length number percentage position pseudo sudo resolution time string bool boolean colour color list map null, $check) {
|
|
40
|
+
@if $check == angel and is-angel($value)
|
|
41
|
+
or $check == duration and is-duration($value)
|
|
42
|
+
or $check == false and is-false($value)
|
|
43
|
+
or $check == frequency and is-frequency($value)
|
|
44
|
+
or $check == integer and is-integer($value)
|
|
45
|
+
or $check == length and is-length($value)
|
|
46
|
+
or $check == number and is-number($value)
|
|
47
|
+
or $check == percentage and is-percentage($value)
|
|
48
|
+
or $check == position and is-position($value)
|
|
49
|
+
or $check == pseudo and is-pseudo($value)
|
|
50
|
+
or $check == sudo and is-sudo($value)
|
|
51
|
+
or $check == resolution and is-resolution($value)
|
|
52
|
+
or $check == string and is-string($value)
|
|
53
|
+
or $check == bool and is-bool($value)
|
|
54
|
+
or $check == boolean and is-boolean($value)
|
|
55
|
+
or $check == color and is-color($value)
|
|
56
|
+
or $check == colour and is-colour($value)
|
|
57
|
+
or $check == list and is-list($value)
|
|
58
|
+
or $check == map and is-map($value)
|
|
59
|
+
or $check == null and is-null($value) {
|
|
60
|
+
@return $value;
|
|
61
|
+
} @else {
|
|
62
|
+
@return $fallback;
|
|
63
|
+
}
|
|
64
|
+
} @else {
|
|
65
|
+
@if $warnings { @warn "#{$check} is not a valid type check. Returning the initial value: #{$value}"; }
|
|
66
|
+
@return $value;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/// List of all absolute length unit types
|
|
2
|
+
///
|
|
3
|
+
/// @link http://www.w3schools.com/cssref/css_units.asp
|
|
4
|
+
///
|
|
5
|
+
/// @type list
|
|
6
|
+
|
|
7
|
+
$absolute-lengths : cm mm in px pt pc;
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
/// Checks to see if value is a type of unit that can't be manipulated relative to parent elements
|
|
11
|
+
///
|
|
12
|
+
/// @author Hugo Giraudel
|
|
13
|
+
///
|
|
14
|
+
/// @link https://css-tricks.com/snippets/sass/advanced-type-checking/
|
|
15
|
+
///
|
|
16
|
+
/// @access public
|
|
17
|
+
///
|
|
18
|
+
/// @require {function} is-number
|
|
19
|
+
/// @require {variable} $abolute-lengths
|
|
20
|
+
///
|
|
21
|
+
/// @return {bool}
|
|
22
|
+
|
|
23
|
+
@function is-absolute-length($value) {
|
|
24
|
+
@return is-number($value) and index($absolute-lengths, unit($value)) != null;
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/// List of all angel unit types
|
|
2
|
+
///
|
|
3
|
+
/// @link http://www.w3schools.com/cssref/css_units.asp
|
|
4
|
+
///
|
|
5
|
+
/// @type list
|
|
6
|
+
|
|
7
|
+
$angel-types : deg rad grad turn;
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
/// Checks to see if value ends with an angle
|
|
11
|
+
///
|
|
12
|
+
/// @author Hugo Giraudel
|
|
13
|
+
///
|
|
14
|
+
/// @link https://css-tricks.com/snippets/sass/advanced-type-checking/
|
|
15
|
+
///
|
|
16
|
+
/// @access public
|
|
17
|
+
///
|
|
18
|
+
/// @require {function} is-number
|
|
19
|
+
/// @require {variable} angel-types
|
|
20
|
+
///
|
|
21
|
+
/// @return {bool}
|
|
22
|
+
|
|
23
|
+
@function is-angle($value) {
|
|
24
|
+
@return is-number($value) and index($angel-types, unit($value)) != null;
|
|
25
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// Checks to see if value is a boolean
|
|
2
|
+
///
|
|
3
|
+
/// @author Mark Notton
|
|
4
|
+
///
|
|
5
|
+
/// @access public
|
|
6
|
+
///
|
|
7
|
+
/// @return {bool}
|
|
8
|
+
|
|
9
|
+
@function is-bool($value) {
|
|
10
|
+
@return type-of($value) == 'bool';
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/// @alias is-bool
|
|
14
|
+
///
|
|
15
|
+
/// @access public
|
|
16
|
+
///
|
|
17
|
+
/// @require {function} is-bool
|
|
18
|
+
///
|
|
19
|
+
/// @return {bool}
|
|
20
|
+
|
|
21
|
+
@function is-boolean($value) {
|
|
22
|
+
@return type-of($value) == 'bool';
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// Checks to see if value is a colour
|
|
2
|
+
///
|
|
3
|
+
/// @author Mark Notton
|
|
4
|
+
///
|
|
5
|
+
/// @access public
|
|
6
|
+
///
|
|
7
|
+
/// @return {bool}
|
|
8
|
+
|
|
9
|
+
@function is-colour($value) {
|
|
10
|
+
@return type-of($value) == 'color';
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/// @alias is-colour
|
|
14
|
+
///
|
|
15
|
+
/// @access public
|
|
16
|
+
///
|
|
17
|
+
/// @require {function} is-colour
|
|
18
|
+
///
|
|
19
|
+
/// @return {bool}
|
|
20
|
+
|
|
21
|
+
@function is-color($value) {
|
|
22
|
+
@return is-colour($value);
|
|
23
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// Checks to see if a colour is dark
|
|
2
|
+
///
|
|
3
|
+
/// @author Mark Notton
|
|
4
|
+
///
|
|
5
|
+
/// @access public
|
|
6
|
+
///
|
|
7
|
+
/// @require {function} _brightness
|
|
8
|
+
/// @require {function} _lightness
|
|
9
|
+
///
|
|
10
|
+
/// @return {bool}
|
|
11
|
+
|
|
12
|
+
@function is-dark($colour) {
|
|
13
|
+
@return _brightness($colour) < _lightness();
|
|
14
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// Checks to see if value is a number
|
|
2
|
+
///
|
|
3
|
+
/// @author Hugo Giraudel
|
|
4
|
+
///
|
|
5
|
+
/// @link https://css-tricks.com/snippets/sass/advanced-type-checking/
|
|
6
|
+
///
|
|
7
|
+
/// @access public
|
|
8
|
+
///
|
|
9
|
+
/// @require {function} is-time
|
|
10
|
+
///
|
|
11
|
+
/// @return {bool}
|
|
12
|
+
|
|
13
|
+
@function is-duration($value) {
|
|
14
|
+
@return is-time($value);
|
|
15
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// Checks to see if value is any type of false
|
|
2
|
+
///
|
|
3
|
+
/// @author Probably Hugo Giraudel
|
|
4
|
+
///
|
|
5
|
+
/// @todo Find and reference original author
|
|
6
|
+
///
|
|
7
|
+
/// @access public
|
|
8
|
+
///
|
|
9
|
+
/// @return {bool}
|
|
10
|
+
|
|
11
|
+
@function is-false($value) {
|
|
12
|
+
@return not not index(false null 0 off def, $value);
|
|
13
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// Checks to see if value ends with a frequency
|
|
2
|
+
///
|
|
3
|
+
/// @author Hugo Giraudel
|
|
4
|
+
///
|
|
5
|
+
/// @link https://css-tricks.com/snippets/sass/advanced-type-checking/
|
|
6
|
+
///
|
|
7
|
+
/// @access public
|
|
8
|
+
///
|
|
9
|
+
/// @require {function} is-number
|
|
10
|
+
///
|
|
11
|
+
/// @return {bool}
|
|
12
|
+
|
|
13
|
+
@function is-frequency($value) {
|
|
14
|
+
@return is-number($value) and index('Hz' 'kHz', unit($value)) != null;
|
|
15
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/// Designed to check for special function types. For example, filters or transforms: rotate(45deg)
|
|
2
|
+
///
|
|
3
|
+
/// @author Mark Notton
|
|
4
|
+
///
|
|
5
|
+
/// @access public
|
|
6
|
+
///
|
|
7
|
+
/// @require {function} to-number
|
|
8
|
+
/// @require {function} is-string
|
|
9
|
+
/// @require {function} string-explode
|
|
10
|
+
///
|
|
11
|
+
/// @example scss - Usage
|
|
12
|
+
/// @debug is-function(rotate(45deg));
|
|
13
|
+
/// @debug is-function(transform);
|
|
14
|
+
///
|
|
15
|
+
/// @example scss - Output
|
|
16
|
+
/// (rotate, 45deg)
|
|
17
|
+
/// false
|
|
18
|
+
///
|
|
19
|
+
/// @return {bool | list} If value is not a string or does not fit the 'function' syntax, return false.
|
|
20
|
+
/// Otherwise, return a list with the 'function' name and the 'value' that was passed.
|
|
21
|
+
|
|
22
|
+
@function is-function($value) {
|
|
23
|
+
|
|
24
|
+
$values : ();
|
|
25
|
+
|
|
26
|
+
@if is-string($value) {
|
|
27
|
+
$first-brace : str-index($value, '(');
|
|
28
|
+
$last-brace : str-index($value, ')');
|
|
29
|
+
@if $first-brace and $last-brace {
|
|
30
|
+
$function : str-slice($value, 1, $first-brace - 1);;
|
|
31
|
+
$value : str-slice($value, $first-brace + 1, $last-brace - 1);
|
|
32
|
+
// If a number was passed, it would be returned back as a string. This converts it to a number, unless it's not really a number.
|
|
33
|
+
$value : _string-explode($value);
|
|
34
|
+
@each $val in $value {
|
|
35
|
+
$values : append($values, if(to-number($val) != 0, to-number($val), $val), comma);
|
|
36
|
+
}
|
|
37
|
+
@return ($function $values);
|
|
38
|
+
} @else {
|
|
39
|
+
@return false;
|
|
40
|
+
}
|
|
41
|
+
} @else {
|
|
42
|
+
@return false;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// Checks to see if value is a rounded number
|
|
2
|
+
///
|
|
3
|
+
/// @author Hugo Giraudel
|
|
4
|
+
///
|
|
5
|
+
/// @link https://css-tricks.com/snippets/sass/advanced-type-checking/
|
|
6
|
+
///
|
|
7
|
+
/// @access public
|
|
8
|
+
///
|
|
9
|
+
/// @require {function} is-number
|
|
10
|
+
///
|
|
11
|
+
/// @return {bool}
|
|
12
|
+
|
|
13
|
+
@function is-integer($value) {
|
|
14
|
+
@return is-number($value) and round($value) == $value;
|
|
15
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/// Checks to see if value ends with any type of unit
|
|
2
|
+
///
|
|
3
|
+
/// @author Hugo Giraudel
|
|
4
|
+
///
|
|
5
|
+
/// @link https://css-tricks.com/snippets/sass/advanced-type-checking/
|
|
6
|
+
///
|
|
7
|
+
/// @access public
|
|
8
|
+
///
|
|
9
|
+
/// @require {function} is-relative-length
|
|
10
|
+
/// @require {function} is-absolute-length
|
|
11
|
+
///
|
|
12
|
+
/// @return {bool}
|
|
13
|
+
|
|
14
|
+
@function is-length($value) {
|
|
15
|
+
@return is-relative-length($value) or is-absolute-length($value);
|
|
16
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// Checks to see if a colour is light
|
|
2
|
+
///
|
|
3
|
+
/// @author Mark Notton
|
|
4
|
+
///
|
|
5
|
+
/// @access public
|
|
6
|
+
///
|
|
7
|
+
/// @require {function} _brightness
|
|
8
|
+
/// @require {function} _lightness
|
|
9
|
+
///
|
|
10
|
+
/// @return {bool}
|
|
11
|
+
|
|
12
|
+
@function is-light($colour) {
|
|
13
|
+
@return _brightness($colour) > _lightness();
|
|
14
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/// Checks to see if value is a number. This includes units (except for calc)
|
|
2
|
+
///
|
|
3
|
+
/// @author Hugo Giraudel
|
|
4
|
+
///
|
|
5
|
+
/// @link https://css-tricks.com/snippets/sass/advanced-type-checking/
|
|
6
|
+
///
|
|
7
|
+
/// @access public
|
|
8
|
+
///
|
|
9
|
+
/// @return {bool}
|
|
10
|
+
|
|
11
|
+
@function is-number($value) {
|
|
12
|
+
@return type-of($value) == 'number';
|
|
13
|
+
// @each $number in $value {
|
|
14
|
+
// @if type-of($number) != 'number' {
|
|
15
|
+
// @return false;
|
|
16
|
+
// }
|
|
17
|
+
// }
|
|
18
|
+
// @return true;
|
|
19
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// Checks to see if value is a percentage
|
|
2
|
+
///
|
|
3
|
+
/// @author Hugo Giraudel
|
|
4
|
+
///
|
|
5
|
+
/// @link https://css-tricks.com/snippets/sass/advanced-type-checking/
|
|
6
|
+
///
|
|
7
|
+
/// @access public
|
|
8
|
+
///
|
|
9
|
+
/// @return {bool}
|
|
10
|
+
|
|
11
|
+
@function is-percentage($value) {
|
|
12
|
+
@return is-number($value) and unit($value) == '%';
|
|
13
|
+
}
|