archetype 0.0.1.pre.13 → 1.0.0.alpha.1
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 +4 -4
- data/CHANGELOG.md +97 -24
- data/README.md +11 -5
- data/VERSION +1 -0
- data/lib/archetype.rb +30 -18
- data/lib/archetype/actions/migrate.rb +152 -0
- data/lib/archetype/actions/theme.rb +6 -7
- data/lib/archetype/executor.rb +21 -7
- data/lib/archetype/extensions.rb +57 -0
- data/lib/archetype/functions.rb +2 -3
- data/lib/archetype/functions/css.rb +70 -0
- data/lib/archetype/functions/css/constants.rb +247 -0
- data/lib/archetype/functions/css/helpers.rb +265 -0
- data/lib/archetype/functions/css/routers.rb +28 -0
- data/lib/archetype/functions/css/routers/animation.rb +55 -0
- data/lib/archetype/functions/css/routers/background.rb +38 -0
- data/lib/archetype/functions/css/routers/border.rb +151 -0
- data/lib/archetype/functions/css/routers/list.rb +63 -0
- data/lib/archetype/functions/css/routers/margin_padding.rb +40 -0
- data/lib/archetype/functions/css/routers/outline.rb +56 -0
- data/lib/archetype/functions/css/routers/overflow.rb +11 -0
- data/lib/archetype/functions/css/routers/target.rb +38 -0
- data/lib/archetype/functions/css/routers/transition.rb +48 -0
- data/lib/archetype/functions/css/shorthands.rb +43 -0
- data/lib/archetype/functions/css/shorthands/animation.rb +18 -0
- data/lib/archetype/functions/css/shorthands/background.rb +68 -0
- data/lib/archetype/functions/css/shorthands/border.rb +102 -0
- data/lib/archetype/functions/hash.rb +3 -149
- data/lib/archetype/functions/hash/extend.rb +74 -0
- data/lib/archetype/functions/hash/shim.rb +48 -0
- data/lib/archetype/functions/helpers.rb +231 -22
- data/lib/archetype/functions/styleguide_memoizer.rb +18 -1
- data/lib/archetype/sass_extensions.rb +1 -3
- data/lib/archetype/sass_extensions/functions.rb +15 -1
- data/lib/archetype/sass_extensions/functions/environment.rb +152 -1
- data/lib/archetype/sass_extensions/functions/lists.rb +95 -45
- data/lib/archetype/sass_extensions/functions/locale.rb +107 -28
- data/lib/archetype/sass_extensions/functions/numbers.rb +118 -4
- data/lib/archetype/sass_extensions/functions/strings.rb +53 -0
- data/lib/archetype/sass_extensions/functions/styleguide.rb +43 -375
- data/lib/archetype/sass_extensions/functions/styleguide/components.rb +25 -0
- data/lib/archetype/sass_extensions/functions/styleguide/constants.rb +27 -0
- data/lib/archetype/sass_extensions/functions/styleguide/grammar.rb +80 -0
- data/lib/archetype/sass_extensions/functions/styleguide/helpers.rb +36 -0
- data/lib/archetype/sass_extensions/functions/styleguide/resolve.rb +159 -0
- data/lib/archetype/sass_extensions/functions/styleguide/styles.rb +146 -0
- data/lib/archetype/sass_extensions/functions/styleguide/themes.rb +40 -0
- data/lib/archetype/sass_extensions/functions/ui.rb +7 -57
- data/lib/archetype/sass_extensions/functions/ui/glyphs.rb +118 -0
- data/lib/archetype/sass_extensions/functions/ui/scopes.rb +96 -0
- data/lib/archetype/sass_extensions/functions/util.rb +14 -0
- data/lib/archetype/sass_extensions/functions/util/debug.rb +22 -0
- data/lib/archetype/sass_extensions/functions/util/hacks.rb +44 -0
- data/lib/archetype/sass_extensions/functions/util/images.rb +132 -0
- data/lib/archetype/sass_extensions/functions/util/misc.rb +220 -0
- data/lib/archetype/sass_extensions/functions/util/spacing.rb +83 -0
- data/lib/archetype/sass_extensions/functions/version.rb +12 -17
- data/lib/archetype/version.rb +1 -1
- data/stylesheets/archetype/_config.scss +1 -389
- data/stylesheets/archetype/_core.scss +15 -0
- data/stylesheets/archetype/_hacks.scss +4 -120
- data/stylesheets/archetype/_init.scss +4 -22
- data/stylesheets/archetype/_required.scss +3 -0
- data/stylesheets/archetype/_reset.scss +3 -0
- data/stylesheets/archetype/_styleguide.scss +2 -6
- data/stylesheets/archetype/_ui.scss +2 -358
- data/stylesheets/archetype/_util.scss +3 -10
- data/stylesheets/archetype/config/_core.scss +14 -0
- data/stylesheets/archetype/config/_environment.scss +19 -0
- data/stylesheets/archetype/config/_formatting.scss +63 -0
- data/stylesheets/archetype/config/_glyphs.scss +252 -0
- data/stylesheets/archetype/config/_resets.scss +7 -0
- data/stylesheets/archetype/config/_resolution.scss +3 -0
- data/stylesheets/archetype/config/_spacing.scss +5 -0
- data/stylesheets/archetype/config/_targeting.scss +18 -0
- data/stylesheets/archetype/config/_theme.scss +3 -0
- data/stylesheets/archetype/config/_typography.scss +56 -0
- data/stylesheets/archetype/config/_units.scss +2 -0
- data/stylesheets/archetype/config/_vars.scss +10 -0
- data/stylesheets/archetype/hacks/_core.scss +4 -0
- data/stylesheets/archetype/hacks/_hacks.scss +160 -0
- data/stylesheets/archetype/hacks/_init.scss +2 -0
- data/stylesheets/archetype/styleguide/_core.scss +4 -0
- data/stylesheets/archetype/styleguide/_init.scss +1 -0
- data/stylesheets/archetype/styleguide/_styleguide.scss +41 -18
- data/stylesheets/archetype/ui/_accessibility.scss +41 -0
- data/stylesheets/archetype/ui/_breakpoints.scss +19 -0
- data/stylesheets/archetype/ui/_core.scss +10 -0
- data/stylesheets/archetype/ui/_elements.scss +98 -0
- data/stylesheets/archetype/ui/_glyphs.scss +244 -0
- data/stylesheets/archetype/ui/_init.scss +5 -0
- data/stylesheets/archetype/ui/_layout.scss +37 -0
- data/stylesheets/archetype/ui/_locale.scss +12 -0
- data/stylesheets/archetype/ui/_scopes.scss +42 -0
- data/stylesheets/archetype/util/_core.scss +8 -0
- data/stylesheets/archetype/util/_debug.scss +9 -21
- data/stylesheets/archetype/util/_init.scss +1 -0
- data/stylesheets/archetype/util/_misc.scss +21 -86
- data/stylesheets/archetype/util/_spacing.scss +9 -40
- data/stylesheets/archetype/util/_styles.scss +189 -178
- data/stylesheets/archetype/util/_targeting.scss +51 -68
- data/templates/example/manifest.rb +2 -2
- data/templates/example/screen.scss +0 -1
- data/templates/project/manifest.rb +3 -8
- metadata +93 -263
- data/bin/archetype +0 -3
- data/lib/archetype/sass_extensions/monkey_patches.rb +0 -3
- data/lib/archetype/sass_extensions/monkey_patches/handle_include_loop.rb +0 -13
- data/stylesheets/archetype/_base.scss +0 -54
- data/stylesheets/archetype/_grid.scss +0 -3
- data/stylesheets/archetype/base/_h5bp.scss +0 -307
- data/stylesheets/archetype/base/_hybrid.scss +0 -25
- data/stylesheets/archetype/base/_normalize.scss +0 -634
- data/stylesheets/archetype/base/_reset.scss +0 -72
- data/stylesheets/archetype/grid/_config.scss +0 -14
- data/stylesheets/archetype/grid/_grid.scss +0 -391
- data/stylesheets/archetype/styleguide/_components.scss +0 -25
- data/stylesheets/archetype/styleguide/_helpers.scss +0 -215
- data/stylesheets/archetype/styleguide/_primitives.scss +0 -10
- data/stylesheets/archetype/styleguide/components/_alerts.scss +0 -59
- data/stylesheets/archetype/styleguide/components/_annotations.scss +0 -27
- data/stylesheets/archetype/styleguide/components/_bristol.scss +0 -15
- data/stylesheets/archetype/styleguide/components/_button_groups.scss +0 -47
- data/stylesheets/archetype/styleguide/components/_button_toolbars.scss +0 -17
- data/stylesheets/archetype/styleguide/components/_buttons.scss +0 -339
- data/stylesheets/archetype/styleguide/components/_canvas.scss +0 -15
- data/stylesheets/archetype/styleguide/components/_carets.scss +0 -336
- data/stylesheets/archetype/styleguide/components/_closes.scss +0 -63
- data/stylesheets/archetype/styleguide/components/_container.scss +0 -27
- data/stylesheets/archetype/styleguide/components/_copy.scss +0 -85
- data/stylesheets/archetype/styleguide/components/_flyouts.scss +0 -52
- data/stylesheets/archetype/styleguide/components/_headings.scss +0 -33
- data/stylesheets/archetype/styleguide/components/_headlines.scss +0 -64
- data/stylesheets/archetype/styleguide/components/_hovercards.scss +0 -27
- data/stylesheets/archetype/styleguide/components/_icons.scss +0 -17
- data/stylesheets/archetype/styleguide/components/_identities.scss +0 -34
- data/stylesheets/archetype/styleguide/components/_links.scss +0 -68
- data/stylesheets/archetype/styleguide/components/_loaders.scss +0 -154
- data/stylesheets/archetype/styleguide/components/_menu_items.scss +0 -31
- data/stylesheets/archetype/styleguide/components/_module.scss +0 -15
- data/stylesheets/archetype/styleguide/components/_pullquotes.scss +0 -29
- data/stylesheets/archetype/styleguide/components/_punchcut.scss +0 -18
- data/stylesheets/archetype/styleguide/components/_tooltips.scss +0 -28
- data/stylesheets/archetype/styleguide/primitives/_animations.scss +0 -17
- data/stylesheets/archetype/styleguide/primitives/_dimensions.scss +0 -50
- data/stylesheets/archetype/styleguide/primitives/_glyphs.scss +0 -11
- data/stylesheets/archetype/styleguide/primitives/_misc.scss +0 -8
- data/stylesheets/archetype/styleguide/primitives/_palettes.scss +0 -94
- data/stylesheets/archetype/styleguide/primitives/_shadows.scss +0 -23
- data/stylesheets/archetype/styleguide/primitives/_sprites.scss +0 -46
- data/stylesheets/archetype/styleguide/primitives/_textures.scss +0 -10
- data/stylesheets/archetype/styleguide/primitives/_typography.scss +0 -56
- data/stylesheets/archetype/util/_lists.scss +0 -57
- data/stylesheets/archetype/util/_rtl.scss +0 -279
- data/stylesheets/archetype/util/_units.scss +0 -18
- data/templates/project/screen.scss +0 -1
- data/templates/project/vendor/archetype/animations/loaders/large/large.png +0 -0
- data/templates/project/vendor/archetype/animations/loaders/large/large_dark.png +0 -0
- data/templates/project/vendor/archetype/animations/loaders/large/large_dark_static.png +0 -0
- data/templates/project/vendor/archetype/animations/loaders/large/large_static.png +0 -0
- data/templates/project/vendor/archetype/animations/loaders/medium/medium.png +0 -0
- data/templates/project/vendor/archetype/animations/loaders/medium/medium_dark.png +0 -0
- data/templates/project/vendor/archetype/animations/loaders/medium/medium_dark_static.png +0 -0
- data/templates/project/vendor/archetype/animations/loaders/medium/medium_static.png +0 -0
- data/templates/project/vendor/archetype/animations/loaders/small/small.png +0 -0
- data/templates/project/vendor/archetype/animations/loaders/small/small_dark.png +0 -0
- data/templates/project/vendor/archetype/animations/loaders/small/small_dark_static.png +0 -0
- data/templates/project/vendor/archetype/animations/loaders/small/small_static.png +0 -0
- data/templates/project/vendor/archetype/fontawesome-webfont.eot +0 -0
- data/templates/project/vendor/archetype/fontawesome-webfont.svg +0 -255
- data/templates/project/vendor/archetype/fontawesome-webfont.ttf +0 -0
- data/templates/project/vendor/archetype/fontawesome-webfont.woff +0 -0
- data/test/fixtures/stylesheets/archetype/assets/fonts/fontawesome-webfont.eot +0 -0
- data/test/fixtures/stylesheets/archetype/assets/fonts/fontawesome-webfont.svg +0 -255
- data/test/fixtures/stylesheets/archetype/assets/fonts/fontawesome-webfont.ttf +0 -0
- data/test/fixtures/stylesheets/archetype/assets/fonts/fontawesome-webfont.woff +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders-s7889ccc8c1.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/large/large.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/large/large_dark.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/large/large_dark_static.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/large/large_static.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/medium/medium.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/medium/medium_dark.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/medium/medium_dark_static.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/medium/medium_static.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/small/small.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/small/small_dark.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/small/small_dark_static.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/small/small_static.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/sprites/hovercard_tip.png +0 -0
- data/test/fixtures/stylesheets/archetype/config.rb +0 -21
- data/test/fixtures/stylesheets/archetype/source/b.scss +0 -9
- data/test/fixtures/stylesheets/archetype/source/base.scss +0 -3
- data/test/fixtures/stylesheets/archetype/source/hacks/ie_pseudo.scss +0 -13
- data/test/fixtures/stylesheets/archetype/source/hacks/transparent_focusable.scss +0 -5
- data/test/fixtures/stylesheets/archetype/source/locale.scss +0 -43
- data/test/fixtures/stylesheets/archetype/source/styleguide/alerts.scss +0 -21
- data/test/fixtures/stylesheets/archetype/source/styleguide/buttons.scss +0 -18
- data/test/fixtures/stylesheets/archetype/source/styleguide/drop.scss +0 -101
- data/test/fixtures/stylesheets/archetype/source/styleguide/extend.scss +0 -24
- data/test/fixtures/stylesheets/archetype/source/styleguide/fallback_styles.scss +0 -23
- data/test/fixtures/stylesheets/archetype/source/styleguide/invalid_structures.scss +0 -85
- data/test/fixtures/stylesheets/archetype/source/styleguide/multi_value.scss +0 -18
- data/test/fixtures/stylesheets/archetype/source/styleguide/nested_styleguides.scss +0 -40
- data/test/fixtures/stylesheets/archetype/source/styleguide/selective_state.scss +0 -22
- data/test/fixtures/stylesheets/archetype/source/ui/glyph_icon.scss +0 -35
- data/test/fixtures/stylesheets/archetype/source/ui/hide_element.scss +0 -5
- data/test/fixtures/stylesheets/archetype/source/ui/stroke.scss +0 -13
- data/test/fixtures/stylesheets/archetype/source/ui/triangle.scss +0 -13
- data/test/fixtures/stylesheets/archetype/source/utilities/associative.scss +0 -24
- data/test/fixtures/stylesheets/archetype/source/utilities/custom_output_styler.scss +0 -22
- data/test/fixtures/stylesheets/archetype/source/utilities/if-set.scss +0 -16
- data/test/fixtures/stylesheets/archetype/source/utilities/spacing/horizontal-spacing.scss +0 -27
- data/test/fixtures/stylesheets/archetype/source/utilities/spacing/vertical-spacing.scss +0 -27
- data/test/fixtures/stylesheets/archetype/source/utilities/styles/filter.scss +0 -9
- data/test/fixtures/stylesheets/archetype/source/utilities/styles/font-family.scss +0 -9
- data/test/fixtures/stylesheets/archetype/source/utilities/styles/z-index.scss +0 -18
- data/test/fixtures/stylesheets/archetype/source/utilities/targeting/target-browser.scss +0 -77
- data/test/fixtures/stylesheets/archetype/source/utilities/targeting/target-os.scss +0 -42
- data/test/fixtures/stylesheets/archetype/tmp/b.css +0 -14
- data/test/fixtures/stylesheets/archetype/tmp/base.css +0 -349
- data/test/fixtures/stylesheets/archetype/tmp/hacks/ie_pseudo.css +0 -11
- data/test/fixtures/stylesheets/archetype/tmp/hacks/transparent_focusable.css +0 -4
- data/test/fixtures/stylesheets/archetype/tmp/locale.css +0 -23
- data/test/fixtures/stylesheets/archetype/tmp/styleguide/alerts.css +0 -711
- data/test/fixtures/stylesheets/archetype/tmp/styleguide/buttons.css +0 -2119
- data/test/fixtures/stylesheets/archetype/tmp/styleguide/drop.css +0 -63
- data/test/fixtures/stylesheets/archetype/tmp/styleguide/extend.css +0 -11
- data/test/fixtures/stylesheets/archetype/tmp/styleguide/fallback_styles.css +0 -10
- data/test/fixtures/stylesheets/archetype/tmp/styleguide/invalid_structures.css +0 -21
- data/test/fixtures/stylesheets/archetype/tmp/styleguide/multi_value.css +0 -13
- data/test/fixtures/stylesheets/archetype/tmp/styleguide/nested_styleguides.css +0 -28
- data/test/fixtures/stylesheets/archetype/tmp/styleguide/selective_state.css +0 -177
- data/test/fixtures/stylesheets/archetype/tmp/ui/glyph_icon.css +0 -127
- data/test/fixtures/stylesheets/archetype/tmp/ui/hide_element.css +0 -8
- data/test/fixtures/stylesheets/archetype/tmp/ui/stroke.css +0 -17
- data/test/fixtures/stylesheets/archetype/tmp/ui/triangle.css +0 -35
- data/test/fixtures/stylesheets/archetype/tmp/utilities/associative.css +0 -9
- data/test/fixtures/stylesheets/archetype/tmp/utilities/custom_output_styler.css +0 -8
- data/test/fixtures/stylesheets/archetype/tmp/utilities/if-set.css +0 -9
- data/test/fixtures/stylesheets/archetype/tmp/utilities/spacing/horizontal-spacing.css +0 -29
- data/test/fixtures/stylesheets/archetype/tmp/utilities/spacing/vertical-spacing.css +0 -29
- data/test/fixtures/stylesheets/archetype/tmp/utilities/styles/filter.css +0 -11
- data/test/fixtures/stylesheets/archetype/tmp/utilities/styles/font-family.css +0 -16
- data/test/fixtures/stylesheets/archetype/tmp/utilities/styles/z-index.css +0 -15
- data/test/fixtures/stylesheets/archetype/tmp/utilities/targeting/target-browser.css +0 -105
- data/test/fixtures/stylesheets/archetype/tmp/utilities/targeting/target-os.css +0 -55
- data/test/helpers/diff.rb +0 -49
- data/test/helpers/io.rb +0 -36
- data/test/helpers/test_case.rb +0 -62
- data/test/integrations/archetype_test.rb +0 -126
- data/test/test_helper.rb +0 -26
- data/test/units/sass_extensions_test.rb +0 -200
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// @category ui/layout
|
|
2
|
+
|
|
3
|
+
// throw an error if archetype/ui has not been registered
|
|
4
|
+
$a-blackhole: require-archetype-modules(archetype/ui);
|
|
5
|
+
|
|
6
|
+
// additional non-standard compass features required in this module
|
|
7
|
+
@import "compass/layout/stretching";
|
|
8
|
+
|
|
9
|
+
// makes your element centered vertically and horizontally in a parent element
|
|
10
|
+
// @mixin centered-box
|
|
11
|
+
@mixin centered-box() {
|
|
12
|
+
@include stretch();
|
|
13
|
+
margin: auto;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// mixin for generating a fade box which fades from transparent to white
|
|
17
|
+
// @mixin fade-box
|
|
18
|
+
// @param $width {String} the width of the overlay
|
|
19
|
+
// @param $height {String} the height of the overlay
|
|
20
|
+
// @param $direction {String} top=vertical left=horizontal
|
|
21
|
+
// @param $from {Color} the start color
|
|
22
|
+
// @param $to {Color} the end color
|
|
23
|
+
@mixin fade-box($width: 100%, $height: 100%, $direction: top, $from: rgba(255,255,255,0.4), $to: rgba(255,255,255,1)) {
|
|
24
|
+
@if support-legacy-browser('ie', '8', $threshold: $critical-usage-threshold) {
|
|
25
|
+
@if $direction == left {
|
|
26
|
+
@include ie-filter(gradient(startColorstr=ie-hex-str($from), endColorstr=ie-hex-str($to), GradientType=1));
|
|
27
|
+
}
|
|
28
|
+
@else {
|
|
29
|
+
@include ie-filter(gradient(startColorstr=ie-hex-str($from), endColorstr=ie-hex-str($to)));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
@include background-image(linear-gradient($direction, $from, $to) );
|
|
33
|
+
@include pseudo-element($width: $width, $height: $height, $position: absolute);
|
|
34
|
+
text-align: center;
|
|
35
|
+
bottom: 0;
|
|
36
|
+
#{if($direction == left, right, left)}: 0;
|
|
37
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// @category ui/locale
|
|
2
|
+
|
|
3
|
+
// temporarily switch the interface locale
|
|
4
|
+
// @mixin switch-locale
|
|
5
|
+
// @param $locale {String} the locale code to switch to
|
|
6
|
+
// @content
|
|
7
|
+
@mixin switch-locale($locale) {
|
|
8
|
+
// keep track of the current locale, and switch
|
|
9
|
+
$tmp: switch-locale($locale);
|
|
10
|
+
@content;
|
|
11
|
+
$tmp: switch-locale($tmp);
|
|
12
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// @category ui/scopes
|
|
2
|
+
|
|
3
|
+
// a mixin to output the current context in a BEM style selector
|
|
4
|
+
// @link http://bem.info/method/
|
|
5
|
+
// @mixin BEM
|
|
6
|
+
// @param $element {String} the element name
|
|
7
|
+
// @param $modifier {String} the modifier
|
|
8
|
+
// @content
|
|
9
|
+
@mixin bem($element: null, $modifier: null) {
|
|
10
|
+
@at-root #{bem-selector("#{'&'}", $element, $modifier)} {
|
|
11
|
+
@content;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// scopes content block for high resolution (HiDPI/Retina) displays
|
|
16
|
+
// @mixin high-resolution
|
|
17
|
+
// @param $resolution {Number} the resolution to use (either a ratio, dpi, dpcm, or dppx)
|
|
18
|
+
// @content
|
|
19
|
+
@mixin high-resolution($resolution: $CONFIG_RESOLUTION_HIGH) {
|
|
20
|
+
@if $resolution {
|
|
21
|
+
$ratio: resolution-to-ratio($resolution);
|
|
22
|
+
$query: ();
|
|
23
|
+
|
|
24
|
+
$queries: (
|
|
25
|
+
if(support-legacy-browser('firefox', '16', $threshold: $critical-usage-threshold), '(min--moz-device-pixel-ratio: #{$ratio})', null),
|
|
26
|
+
'(-webkit-min-device-pixel-ratio: #{$ratio})',
|
|
27
|
+
'(-o-min-device-pixel-ratio: #{to-fraction($ratio)})',
|
|
28
|
+
'(min-resolution: #{resolution-to-dpi($resolution)})',
|
|
29
|
+
'(min-resolution: #{resolution-to-dppx($resolution)})'
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
@each $q in $queries {
|
|
33
|
+
@if $q {
|
|
34
|
+
$query: append($query, unquote('only screen and #{$q}'), comma);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@media #{$query} {
|
|
39
|
+
@content;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -1,27 +1,15 @@
|
|
|
1
1
|
// @category utilities/debug
|
|
2
2
|
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
// @param $if {Boolean} optional override for $CONFIG_DEBUG
|
|
6
|
-
// @return {Boolean} whether or not debug is enabled
|
|
7
|
-
@function is-debug-enabled($if: nil) {
|
|
8
|
-
// debug is only available in DEV environments, so check that first
|
|
9
|
-
// then check if the debug flag/override is truthy
|
|
10
|
-
@return (index($CONFIG_DEBUG_ENVS, archetype-env()) and if($if == nil, $CONFIG_DEBUG, $if));
|
|
11
|
-
}
|
|
3
|
+
// throw an error if archetype/core has not been registered
|
|
4
|
+
$a-blackhole: require-archetype-modules(archetype/util);
|
|
12
5
|
|
|
13
6
|
// a debug helper, print out a message
|
|
14
7
|
// @mixin debug-message
|
|
15
8
|
// @param $message {String} the message to output
|
|
16
|
-
// @param $
|
|
17
|
-
@mixin debug-message($message, $
|
|
18
|
-
@if(is-debug-enabled($
|
|
19
|
-
|
|
20
|
-
/* #{$message} */
|
|
21
|
-
}
|
|
22
|
-
@else {
|
|
23
|
-
-archetype-debug: quote($message);
|
|
24
|
-
}
|
|
9
|
+
// @param $iff {Boolean} override $CONFIG_DEBUG
|
|
10
|
+
@mixin debug-message($message, $iff: null) {
|
|
11
|
+
@if(is-debug-enabled($iff)) {
|
|
12
|
+
/* #{$message} */
|
|
25
13
|
}
|
|
26
14
|
}
|
|
27
15
|
|
|
@@ -29,9 +17,9 @@
|
|
|
29
17
|
// @mixin debug-hover-box
|
|
30
18
|
// @param $color {String} the color to draw the border
|
|
31
19
|
// @param $opacity {Number}
|
|
32
|
-
// @param $
|
|
33
|
-
@mixin debug-hover-box($color: rgb(0, 255, 255), $opacity: 0.9, $
|
|
34
|
-
@if(is-debug-enabled($
|
|
20
|
+
// @param $iff {Boolean} override $CONFIG_DEBUG
|
|
21
|
+
@mixin debug-hover-box($color: rgb(0, 255, 255), $opacity: 0.9, $iff: null) {
|
|
22
|
+
@if(is-debug-enabled($iff)) {
|
|
35
23
|
&:hover {
|
|
36
24
|
@include opacity($opacity);
|
|
37
25
|
@include box-shadow(0 0 3px 0 $color);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
$a-blackhole: require-archetype-modules(archetype/util);
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
// @category utilities
|
|
2
2
|
|
|
3
|
+
// throw an error if archetype/util has not been registered
|
|
4
|
+
$a-blackhole: require-archetype-modules(archetype/util);
|
|
5
|
+
|
|
3
6
|
// simplify checking if a value is defined before outputting it to a property
|
|
4
7
|
// @mixin if-set
|
|
5
8
|
// @param $property {String} css property to define
|
|
@@ -11,98 +14,30 @@
|
|
|
11
14
|
@if($ignore == false) {
|
|
12
15
|
$ignore: (0 0px);
|
|
13
16
|
}
|
|
14
|
-
@if($value != false and not index(-
|
|
17
|
+
@if($value != false and $value != null and not index(-archetype-list($ignore), $value)) {
|
|
15
18
|
#{$property}: $value;
|
|
16
19
|
}
|
|
17
20
|
}
|
|
18
21
|
|
|
19
|
-
|
|
20
|
-
//
|
|
21
|
-
// @
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
@
|
|
25
|
-
@if index($REGISTRY_DO_ONCE, $name) {
|
|
26
|
-
@return false;
|
|
22
|
+
// a mixin that prevents a given block from executing multiple times
|
|
23
|
+
// @mixin do-once
|
|
24
|
+
// @param $name {String} identifier to check/register
|
|
25
|
+
@mixin do-once($name) {
|
|
26
|
+
@if do-once($name) {
|
|
27
|
+
@content;
|
|
27
28
|
}
|
|
28
|
-
$REGISTRY_DO_ONCE: append($REGISTRY_DO_ONCE, $name);
|
|
29
|
-
@return true;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
// helper to determine if a sprite is already set or sprites are disabled
|
|
33
|
-
// @function _shouldSetSprite
|
|
34
|
-
// @private
|
|
35
|
-
// @param $sprite {SpriteMap} the sprite map to check against
|
|
36
|
-
// @return {Boolean} should the sprite be set
|
|
37
|
-
@function _shouldSetSprite($sprite) {
|
|
38
|
-
@return not $CONFIG_DISABLE_STYLEGUIDE_SPRITES and not $sprite;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// check that a sprite isn't nil or false
|
|
42
|
-
// @function styleguide-check-sprite
|
|
43
|
-
// @param $map {SpriteMap} the sprite map to check against
|
|
44
|
-
// @return {Boolean} is the sprite set
|
|
45
|
-
@function styleguide-check-sprite($map) {
|
|
46
|
-
@return not ($CONFIG_DISABLE_STYLEGUIDE_SPRITES and index(false nil, $map));
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
// wrapper for sprite()
|
|
50
|
-
// @function styleguide-sprite
|
|
51
|
-
// @param $map {SpriteMap} the sprite map
|
|
52
|
-
// @param $sprite {Sprite} the sprite name
|
|
53
|
-
// @param $offset-x {Number} the horizontal offset of the sprite position
|
|
54
|
-
// @param $offset-y {Number} the vertical offset of the sprite position
|
|
55
|
-
// @return {Sprite} the sprite object or nil
|
|
56
|
-
@function styleguide-sprite($map, $sprite, $offset-x: 0, $offset-y: 0) {
|
|
57
|
-
@if not styleguide-check-sprite($map) { @return nil; }
|
|
58
|
-
@return sprite($map, $sprite, $offset-x, $offset-y);
|
|
59
29
|
}
|
|
60
30
|
|
|
61
|
-
//
|
|
62
|
-
// @
|
|
63
|
-
// @param $
|
|
64
|
-
// @
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// wrapper for sprite-url()
|
|
74
|
-
// @function styleguide-sprite-url
|
|
75
|
-
// @param $map {SpriteMap} the sprite map
|
|
76
|
-
// @return {String} the sprite URL or nil
|
|
77
|
-
@function styleguide-sprite-url($map) {
|
|
78
|
-
@if not styleguide-check-sprite($map) { @return nil; }
|
|
79
|
-
@return sprite-url($map);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
// wrapper for sprite-file()
|
|
83
|
-
// @function styleguide-sprite-file
|
|
84
|
-
// @param $map {SpriteMap} the sprite map
|
|
85
|
-
// @param $sprite {Sprite} the sprite name
|
|
86
|
-
// @return {ImageFile} the image or nil
|
|
87
|
-
@function styleguide-sprite-file($map, $sprite) {
|
|
88
|
-
@if not styleguide-check-sprite($map) { @return nil; }
|
|
89
|
-
@return sprite-file($map, $sprite);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
// wrapper for image-width()
|
|
93
|
-
// @function styleguide-image-width
|
|
94
|
-
// @param $image {ImageFile} the image
|
|
95
|
-
// @return {Number} the width of the image or nil
|
|
96
|
-
@function styleguide-image-width($image) {
|
|
97
|
-
@if $image == nil { @return nil; }
|
|
98
|
-
@return image-width($image);
|
|
31
|
+
// helper mixin for iterating over a meta object that contains multiple values
|
|
32
|
+
// @mixin with-each-value
|
|
33
|
+
// @param $values {*} the value or meta object of values to iterate over
|
|
34
|
+
// @content
|
|
35
|
+
@mixin with-each-value($values) {
|
|
36
|
+
$values: if(has-multiple-values($values), map-get($values, values), append((), $values));
|
|
37
|
+
@each $value in $values {
|
|
38
|
+
$archetype-current-value: $value !global;
|
|
39
|
+
@content;
|
|
40
|
+
$archetype-current-value: null !global;
|
|
41
|
+
}
|
|
99
42
|
}
|
|
100
43
|
|
|
101
|
-
// wrapper for image-height()
|
|
102
|
-
// @function styleguide-image-height
|
|
103
|
-
// @param $image {ImageFile} the image
|
|
104
|
-
// @return {Number} the height of the image or nil
|
|
105
|
-
@function styleguide-image-height($image) {
|
|
106
|
-
@if $image == nil { @return nil; }
|
|
107
|
-
@return image-height($image);
|
|
108
|
-
}
|
|
@@ -1,38 +1,7 @@
|
|
|
1
1
|
// @category utilities/spacing
|
|
2
2
|
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
// @private
|
|
6
|
-
// @param $unit {Number} unit of measurement
|
|
7
|
-
// @param $direction {String} [horizontal|vertical] spacing
|
|
8
|
-
// @param $abuse {Boolean} @see _getUnit
|
|
9
|
-
// @return {String} the calculated spacing
|
|
10
|
-
@function _spacing($unit: nil, $direction: horizontal, $abuse: false) {
|
|
11
|
-
@if $unit == nil {
|
|
12
|
-
@return nil;
|
|
13
|
-
}
|
|
14
|
-
$unit: _getUnit($unit, $abuse);
|
|
15
|
-
$spacing: if($direction == vertical, $CONFIG_VERTICAL_SPACING, $CONFIG_HORIZONTAL_SPACING);
|
|
16
|
-
@return ($unit * $spacing);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
// horizonatl spacing calculations
|
|
20
|
-
// @function horizontal-spacing
|
|
21
|
-
// @param $unit {Number} unit of measurement
|
|
22
|
-
// @param $abuse {Boolean} @see _getUnit
|
|
23
|
-
// @return {String} the calculated horizontal spacing
|
|
24
|
-
@function horizontal-spacing($unit, $abuse: false) {
|
|
25
|
-
@return _spacing($unit, $abuse: $abuse);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
// vertical spacing calculations
|
|
29
|
-
// @function vertical-spacing
|
|
30
|
-
// @param $unit {Number} unit of measurement
|
|
31
|
-
// @param $abuse {Boolean} @see _getUnit
|
|
32
|
-
// @return {String} the calculated vertical spacing
|
|
33
|
-
@function vertical-spacing($unit, $abuse: false) {
|
|
34
|
-
@return _spacing($unit, $direction: vertical, $abuse: $abuse);
|
|
35
|
-
}
|
|
3
|
+
// throw an error if archetype/util has not been registered
|
|
4
|
+
$a-blackhole: require-archetype-modules(archetype/util);
|
|
36
5
|
|
|
37
6
|
// generate the vertical spacing offset
|
|
38
7
|
// @mixin vertical-spacing
|
|
@@ -40,8 +9,8 @@
|
|
|
40
9
|
// @param $top {Number} the units to offset from the top
|
|
41
10
|
// @param $bottom {Number} the units to offset from the bottom
|
|
42
11
|
// @param $method {String} [margin|padding] offset method
|
|
43
|
-
// @param $abuse {Boolean} @see
|
|
44
|
-
@mixin vertical-spacing($list: false, $top:
|
|
12
|
+
// @param $abuse {Boolean} @see _archetype_integerize
|
|
13
|
+
@mixin vertical-spacing($list: false, $top: null, $bottom: null, $method: false, $abuse: false) {
|
|
45
14
|
$list: get-collection($list, ($top $bottom), $min: 2);
|
|
46
15
|
@include _spacing($list, vertical, $method: $method, $abuse: $abuse);
|
|
47
16
|
}
|
|
@@ -51,8 +20,8 @@
|
|
|
51
20
|
// @param $left {Number} the units to offset from the left
|
|
52
21
|
// @param $right {Number} the units to offset from the right
|
|
53
22
|
// @param $method {String} [margin|padding] offset method
|
|
54
|
-
// @param $abuse {Boolean} @see
|
|
55
|
-
@mixin horizontal-spacing($list: false, $left:
|
|
23
|
+
// @param $abuse {Boolean} @see _archetype_integerize
|
|
24
|
+
@mixin horizontal-spacing($list: false, $left: null, $right: null, $method: false, $abuse: false) {
|
|
56
25
|
$list: get-collection($list, ($left $right), $min: 2);
|
|
57
26
|
@include _spacing($list, $method: $method, $abuse: $abuse);
|
|
58
27
|
}
|
|
@@ -62,7 +31,7 @@
|
|
|
62
31
|
// @private
|
|
63
32
|
// @param $units {List} the list of units e.g. (1) => $left:1 $right:1; (1 0) => $left:1 $right:0;
|
|
64
33
|
// @param $method {String} [margin|padding] offset method
|
|
65
|
-
// @param $abuse {Boolean} @see
|
|
34
|
+
// @param $abuse {Boolean} @see _archetype_integerize
|
|
66
35
|
@mixin _spacing($units, $direction: horizontal, $method: false, $abuse: false) {
|
|
67
36
|
@if(not $method) {
|
|
68
37
|
$method: $CONFIG_SPACING_METHOD;
|
|
@@ -72,7 +41,7 @@
|
|
|
72
41
|
@include if-set(#{$method}-bottom, vertical-spacing(nth($units,2), $abuse: $abuse), $ignore: nil);
|
|
73
42
|
}
|
|
74
43
|
@else {
|
|
75
|
-
@include if-set(#{$method}
|
|
76
|
-
@include if-set(#{$method}
|
|
44
|
+
@include if-set(#{$method}-left, horizontal-spacing(nth($units,1), $abuse: $abuse), $ignore: nil);
|
|
45
|
+
@include if-set(#{$method}-right, horizontal-spacing(nth($units,2), $abuse: $abuse), $ignore: nil);
|
|
77
46
|
}
|
|
78
47
|
}
|
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
@import "compass/layout/stretching";
|
|
2
|
-
|
|
3
1
|
// @category utilities/styles
|
|
4
2
|
|
|
3
|
+
// throw an error if archetype/util has not been registered
|
|
4
|
+
$a-blackhole: require-archetype-modules(archetype/util);
|
|
5
|
+
|
|
5
6
|
// this is a proxy for output-style
|
|
6
|
-
//
|
|
7
|
+
// this contains mixins that will eventually call output-style in one form or another
|
|
7
8
|
// @mixin _outputStyle
|
|
8
9
|
// @private
|
|
9
10
|
// @param $property {String} the CSS property to output
|
|
10
11
|
// @param $value {*} the CSS value to output
|
|
11
|
-
@mixin _outputStyle($property, $value:
|
|
12
|
-
@if($value
|
|
13
|
-
@if($property ==
|
|
14
|
-
@include round-button-ie-support($value)
|
|
15
|
-
}
|
|
16
|
-
@else if($property == target-browser) {
|
|
12
|
+
@mixin _outputStyle($property, $value: null) {
|
|
13
|
+
@if not is-null($value) {
|
|
14
|
+
@if($property == target-browser) {
|
|
17
15
|
@include target-browser(nth($value,1), nth($value,2), nth($value,3));
|
|
18
16
|
}
|
|
19
17
|
@else if($property == font-family) {
|
|
@@ -22,98 +20,89 @@
|
|
|
22
20
|
@else if($property == font-style) {
|
|
23
21
|
@include font-style($value);
|
|
24
22
|
}
|
|
25
|
-
@else if($property == hide-element) {
|
|
26
|
-
@include hide-element();
|
|
27
|
-
}
|
|
28
|
-
@else if($property == unstyled-button) {
|
|
29
|
-
@include unstyled-button();
|
|
30
|
-
}
|
|
31
23
|
@else {
|
|
32
24
|
@include output-style($property, $value);
|
|
33
25
|
}
|
|
34
26
|
}
|
|
35
27
|
}
|
|
36
28
|
|
|
29
|
+
@function check-for-custom-styler($property, $value, $method: pre) {
|
|
30
|
+
@return mixin-exists('custom-output-styler') and function-exits('has-custom-output-styler') and has-custom-output-styler($property, $value, $method);
|
|
31
|
+
}
|
|
32
|
+
|
|
37
33
|
// output a property or augment it to use a mixin
|
|
38
34
|
// @mixin output-style
|
|
39
35
|
// @param $property {String} the CSS property to output
|
|
40
36
|
// @param $value {*} the CSS value to output
|
|
41
|
-
@mixin output-style($property, $value:
|
|
42
|
-
|
|
43
|
-
|
|
37
|
+
@mixin output-style($property, $value: null) {
|
|
38
|
+
@if type-of($property) == map {
|
|
39
|
+
@include to-styles($property);
|
|
40
|
+
}
|
|
41
|
+
@elseif( not is-null($property) and length(-archetype-list($value)) > 0 and not is-null(first-value-of(-archetype-list($value))) and not index($CONFIG_DISABLED_CSS, $property)) {
|
|
44
42
|
// for mixins, we need to do some custom work
|
|
45
43
|
// check to see if we have a custom output styler (pre)
|
|
46
|
-
@if
|
|
44
|
+
@if check-for-custom-styler($property, $value, pre) {
|
|
47
45
|
@include custom-output-styler($property, $value, $method: pre);
|
|
48
46
|
}
|
|
47
|
+
// we're going to assume that any mixins that get invoked here have been properly imported
|
|
48
|
+
// if not, they will simply throw a compilation error
|
|
49
49
|
// border-radius
|
|
50
|
-
@else if($property == border-radius)
|
|
50
|
+
@else if($property == border-radius) { @include border-radius($value...); }
|
|
51
51
|
// box-sizing
|
|
52
|
-
@else if($property == box-sizing) { @include box-sizing($value); }
|
|
52
|
+
@else if($property == box-sizing) { @include box-sizing($value...); }
|
|
53
53
|
// box-shadow
|
|
54
|
-
@else if($property == box-shadow) { @include box-shadow($value); }
|
|
54
|
+
@else if($property == box-shadow) { @include box-shadow($value...); }
|
|
55
55
|
// text-shadow
|
|
56
56
|
@else if($property == text-shadow) { @include text-shadow($value); }
|
|
57
57
|
// filter-gradient
|
|
58
|
-
@else if($property == filter-gradient) { @include filter-gradient(
|
|
58
|
+
@else if($property == filter-gradient) { @include filter-gradient($value...); }
|
|
59
59
|
// background
|
|
60
|
-
@else if($property == background) { @include background($value); }
|
|
60
|
+
@else if($property == background) { @include background($value...); }
|
|
61
61
|
// background-image
|
|
62
|
-
@else if($property == background-image
|
|
62
|
+
@else if($property == background-image) { @include background-image($value...); }
|
|
63
63
|
// background-clip
|
|
64
|
-
@else if($property == background-clip) { @include background-clip($value); }
|
|
64
|
+
@else if($property == background-clip) { @include background-clip($value...); }
|
|
65
65
|
// background-size
|
|
66
|
-
@else if($property == background-size) { @include background-size($value); }
|
|
66
|
+
@else if($property == background-size) { @include background-size($value...); }
|
|
67
67
|
// background-origin
|
|
68
|
-
@else if($property == background-origin)
|
|
68
|
+
@else if($property == background-origin) { @include background-origin($value...); }
|
|
69
69
|
// IE filters
|
|
70
|
-
@else if($property == ie-filter) { @include ie-filter($value); }
|
|
70
|
+
@else if($property == ie-filter) { @include ie-filter($value...); }
|
|
71
71
|
// hide-text
|
|
72
|
-
@else if($property == hide-text) { @include hide-text($direction: if($value == true, $hide-text-direction, $value)); }
|
|
72
|
+
@else if($property == hide-text) { @include hide-text($direction: if($value == true, $hide-text-direction, $value...)); }
|
|
73
73
|
// inline-block
|
|
74
|
-
@else if($property == inline-block) { @include inline-block(); }
|
|
74
|
+
@else if($property == inline-block) { @include inline-block($value...); }
|
|
75
75
|
// opacity
|
|
76
|
-
@else if($property == opacity) { @include opacity($value); }
|
|
76
|
+
@else if($property == opacity) { @include opacity($value...); }
|
|
77
77
|
// min-width
|
|
78
|
-
@else if($property == min-width) { @include min-width($value); }
|
|
78
|
+
@else if($property == min-width) { @include min-width($value...); }
|
|
79
79
|
// min-height
|
|
80
|
-
@else if($property == min-height) { @include min-height($value); }
|
|
80
|
+
@else if($property == min-height) { @include min-height($value...); }
|
|
81
81
|
// max-width
|
|
82
|
-
@else if($property == max-width) { @include max-width($value); }
|
|
82
|
+
@else if($property == max-width) { @include max-width($value...); }
|
|
83
83
|
// max-height
|
|
84
|
-
@else if($property == max-height) { @include max-height($value); }
|
|
84
|
+
@else if($property == max-height) { @include max-height($value...); }
|
|
85
85
|
// stretch
|
|
86
|
-
@else if($property == stretch) { @include stretch(); }
|
|
86
|
+
@else if($property == stretch) { @include stretch($value...); }
|
|
87
87
|
// appearance
|
|
88
|
-
@else if($property == appearance) { @include appearance($value); }
|
|
88
|
+
@else if($property == appearance) { @include appearance($value...); }
|
|
89
89
|
// unhide-element
|
|
90
|
-
@else if($property == unhide-element) { @include unhide-element(); }
|
|
90
|
+
@else if($property == unhide-element) { @include unhide-element($value...); }
|
|
91
91
|
// ellipsis
|
|
92
|
-
@else if($property == ellipsis) { @include ellipsis(); }
|
|
92
|
+
@else if($property == ellipsis) { @include ellipsis($value...); }
|
|
93
93
|
// scale
|
|
94
|
-
@else if($property == scale) { @include scale($value); }
|
|
95
|
-
|
|
96
|
-
@else if($property ==
|
|
94
|
+
@else if($property == scale) { @include scale($value...); }
|
|
95
|
+
// z-index
|
|
96
|
+
@else if($property == z-index) { @include z-index($value...); }
|
|
97
|
+
@else if($property == glyph-icon) { @include glyph-icon($value...); }
|
|
98
|
+
@else if($property == extend) {
|
|
99
|
+
@each $v in -archetype-list($value) {
|
|
100
|
+
@extend #{$v};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
97
103
|
// animations
|
|
98
104
|
@else if($property == animation) {
|
|
99
|
-
@
|
|
100
|
-
@include animation($value);
|
|
101
|
-
}
|
|
102
|
-
@else {
|
|
103
|
-
@if $experimental-support-for-webkit {
|
|
104
|
-
-webkit-animation: $value;
|
|
105
|
-
}
|
|
106
|
-
@if $experimental-support-for-mozilla {
|
|
107
|
-
-moz-animation: $value;
|
|
108
|
-
}
|
|
109
|
-
@if $experimental-support-for-microsoft {
|
|
110
|
-
-ms-animation: $value;
|
|
111
|
-
}
|
|
112
|
-
@if $experimental-support-for-opera {
|
|
113
|
-
-o-animation: $value;
|
|
114
|
-
}
|
|
115
|
-
animation: $value;
|
|
116
|
-
}
|
|
105
|
+
@include animation($value...);
|
|
117
106
|
}
|
|
118
107
|
// hasLayout
|
|
119
108
|
@else if($property == has-layout) {
|
|
@@ -122,7 +111,7 @@
|
|
|
122
111
|
@include has-layout();
|
|
123
112
|
}
|
|
124
113
|
@else {
|
|
125
|
-
@include has-layout($value);
|
|
114
|
+
@include has-layout($value...);
|
|
126
115
|
}
|
|
127
116
|
}
|
|
128
117
|
// clearfix
|
|
@@ -137,15 +126,9 @@
|
|
|
137
126
|
@include clearfix();
|
|
138
127
|
}
|
|
139
128
|
}
|
|
140
|
-
// z-index
|
|
141
|
-
@else if($property == z-index) {
|
|
142
|
-
$value: -compass-list($value);
|
|
143
|
-
@if(length($value) > 1) { @include z-index(nth($value, 1), nth($value, 2)); }
|
|
144
|
-
@else { @include z-index($value); }
|
|
145
|
-
}
|
|
146
129
|
// :before/:after
|
|
147
130
|
@else if($property == ie-pseudo-before or $property == ie-pseudo-after) {
|
|
148
|
-
$value: -
|
|
131
|
+
$value: -archetype-list($value);
|
|
149
132
|
$content: false;
|
|
150
133
|
$tag: '';
|
|
151
134
|
@if length($value) > 1 {
|
|
@@ -161,10 +144,8 @@
|
|
|
161
144
|
@include ie-pseudo-after(nth($value, 1), $content, $tag);
|
|
162
145
|
}
|
|
163
146
|
}
|
|
164
|
-
//ellipsis
|
|
165
|
-
@else if($property == ellipsis) { @include ellipsis(); }
|
|
166
147
|
// check to see if we have a custom output styler (post)
|
|
167
|
-
@else if
|
|
148
|
+
@else if check-for-custom-styler($property, $value, post) {
|
|
168
149
|
@include custom-output-styler($property, $value, $method: post);
|
|
169
150
|
}
|
|
170
151
|
// otherwise just use a key-value pair
|
|
@@ -172,67 +153,147 @@
|
|
|
172
153
|
}
|
|
173
154
|
}
|
|
174
155
|
|
|
156
|
+
// outputs @content into a placeholder, and then extends it,
|
|
157
|
+
// if the placeholder already exists, just extend it
|
|
158
|
+
// @mixin archetype-smart-content
|
|
159
|
+
// @param $placeholder {String} the placeholder
|
|
160
|
+
// @param $extend {Boolean} if false, will only create the placeholder, but not extend it
|
|
161
|
+
// @param $here {Boolean} if true, will force the content to be output in the current context, and not extended
|
|
162
|
+
// @content
|
|
163
|
+
@mixin archetype-smart-content($placeholder, $extend: true, $here: null) {
|
|
164
|
+
@if $CONFIG_USE_SMART_CONTENT and not $here {
|
|
165
|
+
// if we haven't already registered this placeholder...
|
|
166
|
+
@if not index($archetype-placeholder-registry, $placeholder) {
|
|
167
|
+
// create it...
|
|
168
|
+
@at-root #{$placeholder} {
|
|
169
|
+
@content;
|
|
170
|
+
}
|
|
171
|
+
// and register it...
|
|
172
|
+
$archetype-placeholder-registry: append($archetype-placeholder-registry, $placeholder) !global;
|
|
173
|
+
}
|
|
174
|
+
@if $extend {
|
|
175
|
+
@extend #{$placeholder} !optional;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
@elseif $extend {
|
|
179
|
+
@content;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
175
183
|
// convert a list of key-value pairs into CSS rules
|
|
176
184
|
// @mixin to-styles
|
|
177
|
-
// @param $
|
|
185
|
+
// @param $map {Map} a of styles
|
|
178
186
|
// @param $states {Boolean|List} if true, output all states; if false, output no states; if a list, output only the states in the list
|
|
179
187
|
// @param $exclude {List} a list of styles to exclude from output
|
|
180
|
-
@
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
$
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
188
|
+
// @param $here {Boolean} if true, will force the content to be output in the current context, and not extended
|
|
189
|
+
// @content
|
|
190
|
+
@mixin to-styles($map: (), $states: true, $selectors: true, $exclude: (), $meta: (), $here: null) {
|
|
191
|
+
@if $map {
|
|
192
|
+
$exclude: -archetype-list($exclude);
|
|
193
|
+
$placeholder: (
|
|
194
|
+
map: $map,
|
|
195
|
+
states: $states,
|
|
196
|
+
selectors: $selectors,
|
|
197
|
+
exclude: $exclude
|
|
198
|
+
);
|
|
199
|
+
|
|
200
|
+
$message: meta-message($map, map-merge($meta, (phase: begin, origin: $archetype-origin-function or styles)));
|
|
201
|
+
@if $message { /* #{$message} */ }
|
|
202
|
+
|
|
203
|
+
$placeholder: unquote("%#{tokenize($placeholder)}");
|
|
204
|
+
// register a placeholder if needed
|
|
205
|
+
@include archetype-smart-content($placeholder, $here: $here) {
|
|
206
|
+
@each $property, $value in $map {
|
|
207
|
+
@include with-each-value($value) {
|
|
208
|
+
// get the expected value given any runtime locale context
|
|
209
|
+
$value: get-runtime-locale-value($archetype-current-value);
|
|
210
|
+
@if not (index($exclude, $property) or $property == '-archetype-meta') {
|
|
211
|
+
// deal with the states
|
|
212
|
+
@if($property == states and $states != false and length($value) > 0) {
|
|
213
|
+
@each $state, $val in $value {
|
|
214
|
+
@if(index(-archetype-list($states), $state) or $states == true) {
|
|
215
|
+
// get the state selector mappings
|
|
216
|
+
$selector-map: _getStateSelectorMap($state);
|
|
217
|
+
// output the state selectors if we're not using _only_ BEM style
|
|
218
|
+
@if($CONFIG_STATE_BEM != only) {
|
|
219
|
+
$selector: map-get($selector-map, selector);
|
|
220
|
+
// if the selector is valid...
|
|
221
|
+
@if($selector != null) {
|
|
222
|
+
// output it
|
|
223
|
+
#{$selector} {
|
|
224
|
+
@include to-styles($val, true, true, $exclude);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
// if BEM style states are enabled...
|
|
229
|
+
@if($CONFIG_STATE_BEM) {
|
|
230
|
+
// get the BEM states
|
|
231
|
+
$bem-states: map-get($selector-map, states);
|
|
232
|
+
// for each BEM state
|
|
233
|
+
@each $bem-state in $bem-states {
|
|
234
|
+
// output it (this looks scarier than it really is...)
|
|
235
|
+
@include bem($modifier: $bem-state) {
|
|
236
|
+
@include to-styles($val, true, true, $exclude);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
197
241
|
}
|
|
198
242
|
}
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
243
|
+
// deal with the nested selectors
|
|
244
|
+
@else if($property == selectors and $selectors != false and length($value) > 0) {
|
|
245
|
+
@each $selector, $val in $value {
|
|
246
|
+
@if(index(-archetype-list($selectors), $selector) or $selectors == true) {
|
|
247
|
+
$sel: _getSelectorSelector($selector);
|
|
248
|
+
@if str-index($sel, '%bem ') == 1 {
|
|
249
|
+
$sel: str-replace($sel, '%bem ', '');
|
|
250
|
+
@include bem($element: $sel) {
|
|
251
|
+
@include to-styles($val, true, true, $exclude);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
@else {
|
|
255
|
+
#{$sel} {
|
|
256
|
+
@include to-styles($val, true, true, $exclude);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
207
260
|
}
|
|
208
261
|
}
|
|
262
|
+
// otherwise, just output it
|
|
263
|
+
@else if($selectors == true and $states == true ) {
|
|
264
|
+
@include _outputStyle($property, $value);
|
|
265
|
+
}
|
|
209
266
|
}
|
|
210
267
|
}
|
|
211
|
-
// otherwise, just output it
|
|
212
|
-
@else if($selectors == true and $states == true ) {
|
|
213
|
-
@include _outputStyle($property, $value);
|
|
214
|
-
|
|
215
|
-
}
|
|
216
268
|
}
|
|
217
269
|
}
|
|
270
|
+
|
|
271
|
+
$message: meta-message($map, map-merge($meta, (phase: end, origin: $archetype-origin-function or styles)));
|
|
272
|
+
@if $message { /* #{$message} */ }
|
|
273
|
+
|
|
274
|
+
// any original block content passed in...
|
|
275
|
+
@content;
|
|
218
276
|
}
|
|
219
277
|
}
|
|
220
278
|
|
|
221
279
|
// helper function to compute the selector for various states
|
|
222
|
-
// @function
|
|
280
|
+
// @function _getStateSelectorMap
|
|
223
281
|
// @private
|
|
224
282
|
// @param $state {String} the state to select
|
|
225
283
|
// @param $prefix {String} the prefix to append to the state (for class names only)
|
|
226
|
-
@function
|
|
227
|
-
$
|
|
228
|
-
@if $
|
|
229
|
-
$
|
|
284
|
+
@function _getStateSelectorMap($state, $prefix: $CONFIG_STATE_PREFIX) {
|
|
285
|
+
$map: map-get($CONFIG_STATE_MAPPINGS, $state);
|
|
286
|
+
@if $map == null or length($map) == 0 {
|
|
287
|
+
$map: (
|
|
288
|
+
selector : '&.#{if(index(-archetype-list($CONFIG_STATE_NO_PREFIX), $state), $prefix, "")}#{$state}',
|
|
289
|
+
states : ($state)
|
|
290
|
+
);
|
|
230
291
|
}
|
|
231
|
-
@return $
|
|
292
|
+
@return $map;
|
|
232
293
|
}
|
|
233
294
|
|
|
234
295
|
@function _getSelectorSelector($selector) {
|
|
235
|
-
$selector: first-value-of(-
|
|
296
|
+
$selector: first-value-of(-archetype-list($selector));
|
|
236
297
|
@if $selector == $CORE_GLYPH_SELECTOR_VAR {
|
|
237
298
|
$selector: $archetype-glyph-selector;
|
|
238
299
|
}
|
|
@@ -244,13 +305,13 @@
|
|
|
244
305
|
|
|
245
306
|
// mixin for outputting filters in legacy IE
|
|
246
307
|
// @mixin ie-filter
|
|
247
|
-
// @param $value {String|List} a set of filters to output
|
|
308
|
+
// @param $value {String|List} a set of filters to output
|
|
248
309
|
@mixin ie-filter($value, $use-prefix: false) {
|
|
249
310
|
$out: false;
|
|
250
|
-
$value: -
|
|
311
|
+
$value: -archetype-list($value);
|
|
251
312
|
$ms-filter-prefix: 'progid:DXImageTransform.Microsoft.';
|
|
252
313
|
@each $item in $value {
|
|
253
|
-
@if($item != none) {
|
|
314
|
+
@if($item != none and str-index($item, $ms-filter-prefix) != 1) {
|
|
254
315
|
$item: #{$ms-filter-prefix}#{$item};
|
|
255
316
|
}
|
|
256
317
|
$out: if($out, '#{$out},#{$item}', '#{$item}');
|
|
@@ -280,61 +341,23 @@
|
|
|
280
341
|
@include if-set(position, $position);
|
|
281
342
|
}
|
|
282
343
|
|
|
283
|
-
// this is a helper for simple gradients when a direction is desired in degrees,
|
|
284
|
-
// but we still want to support old webkit browsers
|
|
285
|
-
// @mixin gradient-with-deg
|
|
286
|
-
// @param $deg {Number} the direction degree
|
|
287
|
-
// @param $start {Color} the start color
|
|
288
|
-
// @param $end {Color} the end color
|
|
289
|
-
@mixin gradient-with-deg($deg, $start, $end) {
|
|
290
|
-
// make sure it's a deg
|
|
291
|
-
$deg: if(unitless($deg), $deg * 1deg, $deg);
|
|
292
|
-
// we'll divide the circle into sections
|
|
293
|
-
$sector: (360deg / 8);
|
|
294
|
-
// offset it for calculations
|
|
295
|
-
$tmp: $deg - ($sector / 2);
|
|
296
|
-
$map: (
|
|
297
|
-
(right top),
|
|
298
|
-
(right),
|
|
299
|
-
(right bottom),
|
|
300
|
-
(bottom),
|
|
301
|
-
(left bottom),
|
|
302
|
-
(left),
|
|
303
|
-
(left top),
|
|
304
|
-
(top)
|
|
305
|
-
);
|
|
306
|
-
// compute the region it falls in
|
|
307
|
-
$region: nth($map, ceil(if($tmp < 0deg, 360 - $tmp, $tmp) / $sector));
|
|
308
|
-
// NOTE: we temporarily disable old webkit gradients as they don't support degrees
|
|
309
|
-
// this is a fallback for old webkit
|
|
310
|
-
@if($support-for-original-webkit-gradients) {
|
|
311
|
-
background-image: -owg(linear-gradient($region, $start, $end));
|
|
312
|
-
}
|
|
313
|
-
$tmp: $support-for-original-webkit-gradients;
|
|
314
|
-
$support-for-original-webkit-gradients: false;
|
|
315
|
-
// now the others
|
|
316
|
-
@include background-image(linear-gradient($deg, $start, $end));
|
|
317
|
-
// restore the old webkit value
|
|
318
|
-
$support-for-original-webkit-gradients: $tmp;
|
|
319
|
-
}
|
|
320
|
-
|
|
321
344
|
// abstract common issues and generate safe styles
|
|
322
|
-
@mixin safe($property:
|
|
323
|
-
@if($property
|
|
345
|
+
@mixin safe($property: null, $value: null) {
|
|
346
|
+
@if not is-null($property) and not is-null($value) {
|
|
324
347
|
// os friendly font stacks
|
|
325
348
|
@if($property == font-family) {
|
|
326
|
-
$stack:
|
|
327
|
-
@if($stack
|
|
349
|
+
$stack: map-get($CONFIG_SAFE_FONTS, $value);
|
|
350
|
+
@if($stack and length($stack) > 0) {
|
|
328
351
|
// first, step through the list of os safe fonts
|
|
329
352
|
@each $collection in $stack {
|
|
330
353
|
@if(length($collection) > 1) {
|
|
331
|
-
$default:
|
|
354
|
+
$default: null;
|
|
332
355
|
$os: nth($collection, 1);
|
|
333
356
|
$fonts: nth($collection, 2);
|
|
334
|
-
$family:
|
|
357
|
+
$family: null;
|
|
335
358
|
// next, step through the list of lang safe fonts
|
|
336
359
|
@each $item in $fonts {
|
|
337
|
-
@if($item
|
|
360
|
+
@if not is-null($item) {
|
|
338
361
|
$lang: nth($item, 1);
|
|
339
362
|
$font: nth($item, 2);
|
|
340
363
|
// check if the language matches or it's the default
|
|
@@ -346,13 +369,13 @@
|
|
|
346
369
|
$default: $font;
|
|
347
370
|
}
|
|
348
371
|
// if the keyword `default` is in the font-stack, substitute it with the default font-stack
|
|
349
|
-
$family: list-replace($family, index(-
|
|
372
|
+
$family: list-replace($family, index(-archetype-list($family), default), $default, comma);
|
|
350
373
|
}
|
|
351
374
|
}
|
|
352
375
|
@include target-os($os, font-family, $family);
|
|
353
376
|
}
|
|
354
377
|
}
|
|
355
|
-
$value:
|
|
378
|
+
$value: null;
|
|
356
379
|
}
|
|
357
380
|
}
|
|
358
381
|
// text-transform: uppercase isn't friendly to turkish
|
|
@@ -360,18 +383,18 @@
|
|
|
360
383
|
// TODO - more investigation, this may affect other locales as well
|
|
361
384
|
// @link http://www.w3.org/International/tests/html-css/text-transform/results-text-transform
|
|
362
385
|
// @link https://developer.mozilla.org/en/CSS/text-transform
|
|
363
|
-
$value:
|
|
386
|
+
$value: null;
|
|
364
387
|
}
|
|
365
388
|
@else if($property == font-variant and $value == small-caps and lang(tr_TR)) {
|
|
366
389
|
// TODO - more investigation, this may affect other locales as well
|
|
367
390
|
// @link https://developer.mozilla.org/en/CSS/font-variant
|
|
368
|
-
$value:
|
|
391
|
+
$value: null;
|
|
369
392
|
}
|
|
370
393
|
// italics aren't pretty in CJK
|
|
371
394
|
@else if($property == font-style and $value == italic and lang(CJK)) {
|
|
372
|
-
$value:
|
|
395
|
+
$value: null;
|
|
373
396
|
}
|
|
374
|
-
// if $value was set to `
|
|
397
|
+
// if $value was set to `null`, this does nothing
|
|
375
398
|
@include output-style($property, $value);
|
|
376
399
|
}
|
|
377
400
|
}
|
|
@@ -379,7 +402,7 @@
|
|
|
379
402
|
// web-safe font stacks, if no safe fonts are found, use the raw `$family` as output
|
|
380
403
|
// @mixin font-family
|
|
381
404
|
// @param $family {String} the font stack to output
|
|
382
|
-
@mixin font-family($family:
|
|
405
|
+
@mixin font-family($family: null) {
|
|
383
406
|
@include safe(font-family, $family);
|
|
384
407
|
}
|
|
385
408
|
|
|
@@ -398,7 +421,7 @@
|
|
|
398
421
|
// safely use font-style without localization issues
|
|
399
422
|
// @mixin font-style
|
|
400
423
|
// @param $style {String} the style
|
|
401
|
-
@mixin font-style($style:
|
|
424
|
+
@mixin font-style($style: null) {
|
|
402
425
|
@include safe(font-style, $style);
|
|
403
426
|
}
|
|
404
427
|
|
|
@@ -413,15 +436,3 @@
|
|
|
413
436
|
}
|
|
414
437
|
z-index: ($value + $layer);
|
|
415
438
|
}
|
|
416
|
-
|
|
417
|
-
// generate a tag name with a prefix
|
|
418
|
-
// @function prefixed-tag
|
|
419
|
-
// @param $tag {String} the tag to prefix
|
|
420
|
-
// @param $prefix {String} the prefix to prepend to the tag
|
|
421
|
-
// @return {String} the prefix joined with the tag
|
|
422
|
-
@function prefixed-tag($tag: '', $prefix: $CONFIG_GENERATED_TAG_PREFIX) {
|
|
423
|
-
@if $tag != '' {
|
|
424
|
-
$tag: '-#{$tag}';
|
|
425
|
-
}
|
|
426
|
-
@return '#{$prefix}#{$tag}';
|
|
427
|
-
}
|