archetype 0.0.1.pre.1 → 0.0.1.pre.3.00dfd9a
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/CHANGELOG.md +88 -0
- data/LICENSE +16 -0
- data/README.md +87 -1
- data/VERSION.yml +6 -0
- data/lib/README.rdoc +4 -0
- data/lib/archetype.rb +45 -0
- data/lib/archetype/functions.rb +9 -0
- data/lib/archetype/functions/hash.rb +149 -0
- data/lib/archetype/functions/helpers.rb +125 -0
- data/lib/archetype/functions/styleguide_memoizer.rb +61 -0
- data/lib/archetype/sass_extensions.rb +6 -0
- data/lib/archetype/sass_extensions/functions.rb +14 -0
- data/lib/archetype/sass_extensions/functions/environment.rb +14 -0
- data/lib/archetype/sass_extensions/functions/lists.rb +284 -0
- data/lib/archetype/sass_extensions/functions/locale.rb +77 -0
- data/lib/archetype/sass_extensions/functions/numbers.rb +19 -0
- data/lib/archetype/sass_extensions/functions/styleguide.rb +406 -0
- data/lib/archetype/sass_extensions/functions/ui.rb +59 -0
- data/lib/archetype/sass_extensions/functions/version.rb +95 -0
- data/lib/archetype/version.rb +75 -0
- data/stylesheets/_archetype.scss +2 -0
- data/stylesheets/archetype/_base.scss +46 -0
- data/stylesheets/archetype/_config.scss +366 -0
- data/stylesheets/archetype/_grid.scss +3 -0
- data/stylesheets/archetype/_hacks.scss +72 -0
- data/stylesheets/archetype/_init.scss +23 -0
- data/stylesheets/archetype/_styleguide.scss +6 -0
- data/stylesheets/archetype/_ui.scss +326 -0
- data/stylesheets/archetype/_util.scss +12 -0
- data/stylesheets/archetype/base/_h5bp.scss +307 -0
- data/stylesheets/archetype/base/_hybrid.scss +25 -0
- data/stylesheets/archetype/base/_normalize.scss +595 -0
- data/stylesheets/archetype/base/_reset.scss +72 -0
- data/stylesheets/archetype/grid/_config.scss +14 -0
- data/stylesheets/archetype/grid/_grid.scss +391 -0
- data/stylesheets/archetype/styleguide/_components.scss +25 -0
- data/stylesheets/archetype/styleguide/_helpers.scss +215 -0
- data/stylesheets/archetype/styleguide/_primitives.scss +10 -0
- data/stylesheets/archetype/styleguide/_styleguide.scss +41 -0
- data/stylesheets/archetype/styleguide/components/_alerts.scss +59 -0
- data/stylesheets/archetype/styleguide/components/_annotations.scss +27 -0
- data/stylesheets/archetype/styleguide/components/_bristol.scss +15 -0
- data/stylesheets/archetype/styleguide/components/_button_groups.scss +47 -0
- data/stylesheets/archetype/styleguide/components/_button_toolbars.scss +17 -0
- data/stylesheets/archetype/styleguide/components/_buttons.scss +338 -0
- data/stylesheets/archetype/styleguide/components/_canvas.scss +15 -0
- data/stylesheets/archetype/styleguide/components/_carets.scss +336 -0
- data/stylesheets/archetype/styleguide/components/_closes.scss +63 -0
- data/stylesheets/archetype/styleguide/components/_container.scss +27 -0
- data/stylesheets/archetype/styleguide/components/_copy.scss +85 -0
- data/stylesheets/archetype/styleguide/components/_flyouts.scss +52 -0
- data/stylesheets/archetype/styleguide/components/_headings.scss +33 -0
- data/stylesheets/archetype/styleguide/components/_headlines.scss +63 -0
- data/stylesheets/archetype/styleguide/components/_hovercards.scss +27 -0
- data/stylesheets/archetype/styleguide/components/_icons.scss +17 -0
- data/stylesheets/archetype/styleguide/components/_identities.scss +34 -0
- data/stylesheets/archetype/styleguide/components/_links.scss +66 -0
- data/stylesheets/archetype/styleguide/components/_loaders.scss +154 -0
- data/stylesheets/archetype/styleguide/components/_menu_items.scss +31 -0
- data/stylesheets/archetype/styleguide/components/_module.scss +15 -0
- data/stylesheets/archetype/styleguide/components/_pullquotes.scss +29 -0
- data/stylesheets/archetype/styleguide/components/_punchcut.scss +18 -0
- data/stylesheets/archetype/styleguide/components/_tooltips.scss +28 -0
- data/stylesheets/archetype/styleguide/primitives/_animations.scss +17 -0
- data/stylesheets/archetype/styleguide/primitives/_dimensions.scss +50 -0
- data/stylesheets/archetype/styleguide/primitives/_glyphs.scss +11 -0
- data/stylesheets/archetype/styleguide/primitives/_misc.scss +8 -0
- data/stylesheets/archetype/styleguide/primitives/_palettes.scss +94 -0
- data/stylesheets/archetype/styleguide/primitives/_shadows.scss +23 -0
- data/stylesheets/archetype/styleguide/primitives/_sprites.scss +46 -0
- data/stylesheets/archetype/styleguide/primitives/_textures.scss +10 -0
- data/stylesheets/archetype/styleguide/primitives/_typography.scss +56 -0
- data/stylesheets/archetype/util/_debug.scss +40 -0
- data/stylesheets/archetype/util/_lists.scss +57 -0
- data/stylesheets/archetype/util/_misc.scss +108 -0
- data/stylesheets/archetype/util/_rtl.scss +279 -0
- data/stylesheets/archetype/util/_spacing.scss +78 -0
- data/stylesheets/archetype/util/_styles.scss +466 -0
- data/stylesheets/archetype/util/_targeting.scss +210 -0
- data/stylesheets/archetype/util/_units.scss +18 -0
- data/templates/example/index.html +40 -0
- data/templates/example/manifest.rb +13 -0
- data/templates/example/screen.scss +99 -0
- data/templates/example/vendor/archetype/animations/loaders/large/large.png +0 -0
- data/templates/example/vendor/archetype/animations/loaders/large/large_dark.png +0 -0
- data/templates/example/vendor/archetype/animations/loaders/large/large_dark_static.png +0 -0
- data/templates/example/vendor/archetype/animations/loaders/large/large_static.png +0 -0
- data/templates/example/vendor/archetype/animations/loaders/medium/medium.png +0 -0
- data/templates/example/vendor/archetype/animations/loaders/medium/medium_dark.png +0 -0
- data/templates/example/vendor/archetype/animations/loaders/medium/medium_dark_static.png +0 -0
- data/templates/example/vendor/archetype/animations/loaders/medium/medium_static.png +0 -0
- data/templates/example/vendor/archetype/animations/loaders/small/small.png +0 -0
- data/templates/example/vendor/archetype/animations/loaders/small/small_dark.png +0 -0
- data/templates/example/vendor/archetype/animations/loaders/small/small_dark_static.png +0 -0
- data/templates/example/vendor/archetype/animations/loaders/small/small_static.png +0 -0
- data/templates/example/vendor/archetype/fontawesome-webfont.eot +0 -0
- data/templates/example/vendor/archetype/fontawesome-webfont.svg +255 -0
- data/templates/example/vendor/archetype/fontawesome-webfont.ttf +0 -0
- data/templates/example/vendor/archetype/fontawesome-webfont.woff +0 -0
- data/templates/project/manifest.rb +9 -0
- data/templates/project/screen.scss +1 -0
- 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 +255 -0
- 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 +255 -0
- 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/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 +19 -0
- data/test/fixtures/stylesheets/archetype/expected/b.css +14 -0
- data/test/fixtures/stylesheets/archetype/expected/base.css +349 -0
- data/test/fixtures/stylesheets/archetype/expected/hacks/ie_pseudo.css +11 -0
- data/test/fixtures/stylesheets/archetype/expected/locale.css +23 -0
- data/test/fixtures/stylesheets/archetype/expected/styleguide/buttons.css +2091 -0
- data/test/fixtures/stylesheets/archetype/expected/styleguide/fallback_styles.css +9 -0
- data/test/fixtures/stylesheets/archetype/expected/styleguide/nested_styleguides.css +24 -0
- data/test/fixtures/stylesheets/archetype/expected/styleguide/selective_state.css +174 -0
- data/test/fixtures/stylesheets/archetype/expected/ui/glyph_icon.css +37 -0
- data/test/fixtures/stylesheets/archetype/expected/ui/hide_element.css +8 -0
- data/test/fixtures/stylesheets/archetype/expected/ui/stroke.css +17 -0
- data/test/fixtures/stylesheets/archetype/expected/ui/triangle.css +35 -0
- data/test/fixtures/stylesheets/archetype/expected/utilities/associative.css +9 -0
- data/test/fixtures/stylesheets/archetype/expected/utilities/if-set.css +9 -0
- data/test/fixtures/stylesheets/archetype/expected/utilities/spacing/horizontal-spacing.css +29 -0
- data/test/fixtures/stylesheets/archetype/expected/utilities/spacing/vertical-spacing.css +29 -0
- data/test/fixtures/stylesheets/archetype/expected/utilities/styles/filter.css +11 -0
- data/test/fixtures/stylesheets/archetype/expected/utilities/styles/font-family.css +16 -0
- data/test/fixtures/stylesheets/archetype/expected/utilities/styles/z-index.css +15 -0
- data/test/fixtures/stylesheets/archetype/expected/utilities/targeting/target-browser.css +100 -0
- data/test/fixtures/stylesheets/archetype/expected/utilities/targeting/target-os.css +55 -0
- data/test/fixtures/stylesheets/archetype/source/b.scss +9 -0
- data/test/fixtures/stylesheets/archetype/source/base.scss +3 -0
- data/test/fixtures/stylesheets/archetype/source/hacks/ie_pseudo.scss +13 -0
- data/test/fixtures/stylesheets/archetype/source/locale.scss +43 -0
- data/test/fixtures/stylesheets/archetype/source/styleguide/buttons.scss +18 -0
- data/test/fixtures/stylesheets/archetype/source/styleguide/fallback_styles.scss +22 -0
- data/test/fixtures/stylesheets/archetype/source/styleguide/nested_styleguides.scss +40 -0
- data/test/fixtures/stylesheets/archetype/source/styleguide/selective_state.scss +22 -0
- data/test/fixtures/stylesheets/archetype/source/ui/glyph_icon.scss +13 -0
- data/test/fixtures/stylesheets/archetype/source/ui/hide_element.scss +5 -0
- data/test/fixtures/stylesheets/archetype/source/ui/stroke.scss +13 -0
- data/test/fixtures/stylesheets/archetype/source/ui/triangle.scss +13 -0
- data/test/fixtures/stylesheets/archetype/source/utilities/associative.scss +24 -0
- data/test/fixtures/stylesheets/archetype/source/utilities/if-set.scss +16 -0
- data/test/fixtures/stylesheets/archetype/source/utilities/spacing/horizontal-spacing.scss +27 -0
- data/test/fixtures/stylesheets/archetype/source/utilities/spacing/vertical-spacing.scss +27 -0
- data/test/fixtures/stylesheets/archetype/source/utilities/styles/filter.scss +9 -0
- data/test/fixtures/stylesheets/archetype/source/utilities/styles/font-family.scss +9 -0
- data/test/fixtures/stylesheets/archetype/source/utilities/styles/z-index.scss +18 -0
- data/test/fixtures/stylesheets/archetype/source/utilities/targeting/target-browser.scss +70 -0
- data/test/fixtures/stylesheets/archetype/source/utilities/targeting/target-os.scss +42 -0
- data/test/helpers/diff.rb +49 -0
- data/test/helpers/io.rb +36 -0
- data/test/helpers/test_case.rb +62 -0
- data/test/integrations/archetype_test.rb +126 -0
- data/test/test_helper.rb +26 -0
- data/test/units/sass_extensions_test.rb +207 -0
- metadata +303 -15
@@ -0,0 +1,72 @@
|
|
1
|
+
// @category hacks
|
2
|
+
@import "util";
|
3
|
+
|
4
|
+
// hack to support negative margins in legacy IE
|
5
|
+
// @mixin hack-negative-margin
|
6
|
+
@mixin hack-negative-margin() {
|
7
|
+
@if($legacy-support-for-ie6 or $legacy-support-for-ie7) {
|
8
|
+
@include has-layout();
|
9
|
+
position: relative;
|
10
|
+
}
|
11
|
+
}
|
12
|
+
|
13
|
+
// max-height hack
|
14
|
+
// @mixin max-height
|
15
|
+
// @param $value {String} the height
|
16
|
+
@mixin max-height($value) {
|
17
|
+
@include hacked-maximum(height, $value);
|
18
|
+
}
|
19
|
+
|
20
|
+
// max-width hack
|
21
|
+
// @mixin max-width
|
22
|
+
// @param $value {String} the width
|
23
|
+
@mixin max-width($value) {
|
24
|
+
@include hacked-maximum(width, $value);
|
25
|
+
}
|
26
|
+
|
27
|
+
// generic max-* hack wrapper
|
28
|
+
// @mixin hacked-maximum
|
29
|
+
// @param $property {String} property [height|width]
|
30
|
+
// @param $value {String} the value
|
31
|
+
@mixin hacked-maximum($property, $value) {
|
32
|
+
max-#{$property}: $value;
|
33
|
+
@include bang-hack($property, auto, $value);
|
34
|
+
}
|
35
|
+
|
36
|
+
// proxy for ie-pseudo
|
37
|
+
// @mixin ie-pseudo-before
|
38
|
+
// @param $styles {String} the styles to apply to the pseudo-element
|
39
|
+
// @param $content {String} the content to insert into the element (similar to css `content` attribute)
|
40
|
+
// @param $name {String} the name of the element
|
41
|
+
@mixin ie-pseudo-before($styles: false, $content: false, $name: '') {
|
42
|
+
@include ie-pseudo($styles, $content, before, $name);
|
43
|
+
}
|
44
|
+
|
45
|
+
// proxy for ie-pseudo
|
46
|
+
// @mixin ie-pseudo-after
|
47
|
+
// @param $styles {String} the styles to apply to the pseudo-element
|
48
|
+
// @param $content {String} the content to insert into the element (similar to css `content` attribute)
|
49
|
+
// @param $name {String} the name of the element
|
50
|
+
@mixin ie-pseudo-after($styles: false, $content: false, $name: '') {
|
51
|
+
@include ie-pseudo($styles, $content, after, $name);
|
52
|
+
}
|
53
|
+
|
54
|
+
// this creates a one-type executing expression that inserts an element relative to `this` element.
|
55
|
+
// this allows some level of support for :before/:after in IE6/7
|
56
|
+
// inspired by http://nicolasgallagher.com/better-float-containment-in-ie/
|
57
|
+
// @mixin ie-pseudo
|
58
|
+
// @param $styles {String} the styles to apply to the pseudo-element
|
59
|
+
// @param $content {String} the content to insert into the element (similar to css `content` attribute)
|
60
|
+
// @param $placement {String} [before|after] simulate :before or :after behavior
|
61
|
+
// @param $name {String} the name of the element
|
62
|
+
@mixin ie-pseudo($styles: false, $content: false, $placement: before, $name: '') {
|
63
|
+
@if $legacy-support-for-ie6 or $legacy-support-for-ie7 {
|
64
|
+
$method: if($placement == before, insertBefore, appendChild);
|
65
|
+
$content: if($content and $content != nil, 'this.el.innerHTML="#{-ie-pseudo-content($content)}",', '');
|
66
|
+
@if $CONFIG_GENERATED_TAG_CSS {
|
67
|
+
$styles: if($styles and $styles != nil, #{$CONFIG_GENERATED_TAG_CSS}#{$styles}, $CONFIG_GENERATED_TAG_CSS);
|
68
|
+
}
|
69
|
+
$styles: if($styles and $styles != nil, 'this.el.style.cssText="#{$styles}",', '');
|
70
|
+
*zoom: expression(this.runtimeStyle.zoom="1", this.el=document.createElement("#{prefixed-tag($name)}"),#{$content}#{$styles}this.#{$method}(this.el));
|
71
|
+
}
|
72
|
+
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
// include configs
|
2
|
+
@import "archetype/config";
|
3
|
+
|
4
|
+
// include Compass mixins
|
5
|
+
@import "compass";
|
6
|
+
|
7
|
+
// utility mixins and helper functions
|
8
|
+
@import "archetype/util";
|
9
|
+
|
10
|
+
// custom hacks
|
11
|
+
@import "archetype/hacks";
|
12
|
+
|
13
|
+
// ui
|
14
|
+
@import "archetype/ui";
|
15
|
+
|
16
|
+
// grids
|
17
|
+
@import "archetype/grid";
|
18
|
+
|
19
|
+
// styleguide
|
20
|
+
@import "archetype/styleguide";
|
21
|
+
|
22
|
+
// base
|
23
|
+
@import "archetype/base";
|
@@ -0,0 +1,326 @@
|
|
1
|
+
// @category ui
|
2
|
+
@import "hacks";
|
3
|
+
@import "compass/layout/stretching";
|
4
|
+
|
5
|
+
// computes the border position to use
|
6
|
+
// @function _getTriangleBorderDirection
|
7
|
+
// @private
|
8
|
+
// @param $direction {String} the direction the arrow is pointing (top, left, top left, etc)
|
9
|
+
// @return {List} the computed border position (e.g. top, left, bottom)
|
10
|
+
@function _getTriangleBorderDirection($direction) {
|
11
|
+
@if(length($direction) == 1) {
|
12
|
+
@return opposite-position($direction);
|
13
|
+
}
|
14
|
+
@return if(index($direction, top), bottom, top);
|
15
|
+
}
|
16
|
+
|
17
|
+
// computes the border width for the triangle
|
18
|
+
// @function _getTriangleBorderWidth
|
19
|
+
// @private
|
20
|
+
// @param $width {Number} the width of the arrow
|
21
|
+
// @param $height {Number} the height of the arrow
|
22
|
+
// @param $direction {String} the direction the arrow is pointing (top, left, top left, etc)
|
23
|
+
// @return {List} the computed border widths
|
24
|
+
@function _getTriangleBorderWidth($width, $height, $direction) {
|
25
|
+
@if(length($direction) == 1) {
|
26
|
+
// TOP
|
27
|
+
@if($direction == top) {
|
28
|
+
@return 0 ($width/2) $height;
|
29
|
+
}
|
30
|
+
// BOTTOM
|
31
|
+
@else if($direction == bottom) {
|
32
|
+
@return $height ($width/2) 0;
|
33
|
+
}
|
34
|
+
// LEFT
|
35
|
+
@else if($direction == left) {
|
36
|
+
@return ($height/2) $width ($height/2) 0;
|
37
|
+
}
|
38
|
+
// RIGHT
|
39
|
+
@else if($direction == right) {
|
40
|
+
@return ($height/2) 0 ($height/2) $width;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
@else if(index($direction, top)) {
|
44
|
+
// TOP LEFT
|
45
|
+
@if(index($direction, left)) {
|
46
|
+
@return 0 $width $height 0;
|
47
|
+
}
|
48
|
+
// TOP RIGHT
|
49
|
+
@else {
|
50
|
+
@return 0 0 $height $width;
|
51
|
+
}
|
52
|
+
}
|
53
|
+
@else if(index($direction, bottom)) {
|
54
|
+
// BOTTOM LEFT
|
55
|
+
@if(index($direction, left)) {
|
56
|
+
@return $height $width 0 0;
|
57
|
+
}
|
58
|
+
// BOTTOM RIGHT
|
59
|
+
@else {
|
60
|
+
@return $height 0 0 $width;
|
61
|
+
}
|
62
|
+
}
|
63
|
+
@return 0;
|
64
|
+
}
|
65
|
+
|
66
|
+
// generates a cross-browser triangle using borders
|
67
|
+
// @mixin triangle
|
68
|
+
// @param $direction {String} the direction the arrow is pointing (top, left, top left, etc)
|
69
|
+
// @param $width {Number} the width of the arrow
|
70
|
+
// @param $height {Number} the height of the arrow
|
71
|
+
// @param $color {Color} the color of the arrow
|
72
|
+
@mixin triangle($direction: bottom, $width: 1em, $height: false, $color: #aaa) {
|
73
|
+
$direction: rtl($direction);
|
74
|
+
// if no height was specified, assume it's identitcal to width
|
75
|
+
@if(not $height) {
|
76
|
+
$height: $width;
|
77
|
+
}
|
78
|
+
// zero out it's content
|
79
|
+
height: 0;
|
80
|
+
width : 0;
|
81
|
+
// IE6 needs some extra love
|
82
|
+
@include target-browser(ie 6, font-size, 0);
|
83
|
+
@include target-browser(ie 6, line-height, 0);
|
84
|
+
border: {
|
85
|
+
// for IE6, transparent borders are simulated using `dashed` styles instead of a chroma filter
|
86
|
+
// IE won't render a `dashed` border-style unless (width * 5) >= border-width
|
87
|
+
// since width is always 0, dashed borders aren't rendered
|
88
|
+
// @link http://hedgerwow.appspot.com/demo/arrows
|
89
|
+
style: dashed;
|
90
|
+
// transparent for all other browsers
|
91
|
+
color: transparent;
|
92
|
+
width: _getTriangleBorderWidth($width, $height, $direction);
|
93
|
+
#{_getTriangleBorderDirection($direction)}: {
|
94
|
+
color: $color;
|
95
|
+
style: solid;
|
96
|
+
}
|
97
|
+
}
|
98
|
+
}
|
99
|
+
|
100
|
+
// makes your element centered vertically and horizontally in a parent element
|
101
|
+
// @mixin centered-box
|
102
|
+
@mixin centered-box() {
|
103
|
+
@include stretch();
|
104
|
+
margin: auto;
|
105
|
+
}
|
106
|
+
|
107
|
+
// hide element visibly but preserve screen-reader support
|
108
|
+
// @mixin hide-element
|
109
|
+
// @credit Jonathan Snook
|
110
|
+
// @link http://snook.ca/archives/html_and_css/hiding-content-for-accessibility
|
111
|
+
@mixin hide-element() {
|
112
|
+
position: absolute !important;
|
113
|
+
height: 1px;
|
114
|
+
width: 1px;
|
115
|
+
overflow: hidden;
|
116
|
+
@include target-browser(ie lte 7, clip, rect(1px 1px 1px 1px));
|
117
|
+
clip: rect(1px, 1px, 1px, 1px);
|
118
|
+
}
|
119
|
+
|
120
|
+
// mixin for generating a fade box which fades from transparent to white
|
121
|
+
// @mixin fade-box
|
122
|
+
// @param $width {String} the width of the overlay
|
123
|
+
// @param $height {String} the height of the overlay
|
124
|
+
// @param $direction {String} top=vertical left=horizontal
|
125
|
+
@mixin fade-box($width: 100%, $height: 100%, $direction: top) {
|
126
|
+
$direction: rtl($direction);
|
127
|
+
// TODO - update this when Compass supports IE alpha channels
|
128
|
+
@if $direction == left {
|
129
|
+
@include ie-filter(gradient(startColorstr='#00ffffff', endColorstr='#ffffff', GradientType=1));
|
130
|
+
}
|
131
|
+
@else {
|
132
|
+
@include ie-filter(gradient(startColorstr='#00ffffff', endColorstr='#ffffff'));
|
133
|
+
}
|
134
|
+
@include background-image(linear-gradient($direction, rgba(255,255,255,0.4), rgba(255,255,255,1)) );
|
135
|
+
@include pseudo-element($width: $width, $height: $height, $position: absolute);
|
136
|
+
text-align: center;
|
137
|
+
bottom: 0;
|
138
|
+
#{if($direction == left, right, left)}: 0;
|
139
|
+
}
|
140
|
+
|
141
|
+
// create a stroke line around text (or font icon)
|
142
|
+
// @mixin stroke
|
143
|
+
// @param $width {Number} the width of the stroke
|
144
|
+
// @param $color {Color} the color of the stroke
|
145
|
+
// @param $shadow {List} an additional drop shadow to attach
|
146
|
+
@mixin glyph-stroke($width: 1px, $color: black, $shadow: false) {
|
147
|
+
@include box-shadow(compact(0 $width 0 $color, 0 -1*$width 0 $color, $width 0 0 $color, -1*$width 0 0 $color, $shadow));
|
148
|
+
}
|
149
|
+
|
150
|
+
// create a glyph icon
|
151
|
+
// @mixin glyph-icon
|
152
|
+
// @param $icon {String} the icon name
|
153
|
+
// @param $size {Number} the size of the icon
|
154
|
+
// @param $color {Color} the color of the font
|
155
|
+
// @param $placement {String} where to place the icon [before|after|inline]
|
156
|
+
// @param $ie-styles {String} styles to apply to IE6/7 (this is needed because the faux :before isn't extensible)
|
157
|
+
@mixin glyph-icon($icon, $size: default, $color: inherit, $placement: before, $ie-styles: false) {
|
158
|
+
$char-mapping: nil;
|
159
|
+
$char-code: nil;
|
160
|
+
@if $icon {
|
161
|
+
$char-mapping: -compass-list(associative($CONFIG_GLYPHS_MAPPINGS, $icon, $strict: true));
|
162
|
+
$char-code: nth($char-mapping, 1);
|
163
|
+
}
|
164
|
+
@if $char-code == nil and $icon != false {
|
165
|
+
@warn "could not find character mapping for `#{icon}`";
|
166
|
+
}
|
167
|
+
@else {
|
168
|
+
@if $size == default {
|
169
|
+
$default-size: nil;
|
170
|
+
@if $icon {
|
171
|
+
$default-size: nth-cyclic($char-mapping, 2);
|
172
|
+
}
|
173
|
+
$size: if(type-of($default-size) == number, $default-size, 100%);
|
174
|
+
}
|
175
|
+
// if the size is under a given threshold, use a halfling, if available
|
176
|
+
@if $icon {
|
177
|
+
$char-code: nth-cyclic(-compass-list($char-code), if(comparable($CONFIG_GLYPHS_THRESHOLD, $size) and $size <= $CONFIG_GLYPHS_THRESHOLD, 2, 1));
|
178
|
+
}
|
179
|
+
$selector: if(index(before after, $placement), '&:#{$placement}', '&');
|
180
|
+
#{$selector} {
|
181
|
+
font-family: $CONFIG_GLYPHS_NAME;
|
182
|
+
font-weight: $CONFIG_GLYPHS_WEIGHT;
|
183
|
+
font-style: $CONFIG_GLYPHS_STYLE;
|
184
|
+
text-decoration: inherit;
|
185
|
+
speak: none;
|
186
|
+
@include if-set(font-size, $size);
|
187
|
+
@include if-set(color, $color);
|
188
|
+
@if $icon {
|
189
|
+
content: $char-code;
|
190
|
+
}
|
191
|
+
}
|
192
|
+
@if($selector != '&' and $ie-styles != nil) {
|
193
|
+
// support for IE6/7
|
194
|
+
$styles: "font-family:'#{$CONFIG_GLYPHS_NAME}';font-weight:#{$CONFIG_GLYPHS_WEIGHT};font-style:#{$CONFIG_GLYPHS_STYLE};text-decoration:inherit;";
|
195
|
+
@if($size != nil) {
|
196
|
+
$styles: $styles + "font-size:#{$size};"
|
197
|
+
}
|
198
|
+
@if($color != nil) {
|
199
|
+
$styles: $styles + "color:#{$color};"
|
200
|
+
}
|
201
|
+
@if($ie-styles) {
|
202
|
+
$styles: $styles + $ie-styles;
|
203
|
+
}
|
204
|
+
@include ie-pseudo($styles: $styles, $content: $char-code, $placement: $placement, $name: glyph);
|
205
|
+
}
|
206
|
+
}
|
207
|
+
}
|
208
|
+
|
209
|
+
// generate rotational and position keyframes for loading spinners
|
210
|
+
// @mixin generate-loader-keyframes
|
211
|
+
@mixin generate-loader-keyframes() {
|
212
|
+
@if not $CONFIG_DISABLE_STYLEGUIDE_SPRITES {
|
213
|
+
// generate rotating keyframes
|
214
|
+
@include -generate-loader-keyframes-360();
|
215
|
+
// generate specific keyframes
|
216
|
+
@each $size in $CONFIG_LOADERS {
|
217
|
+
@if $size != nil {
|
218
|
+
$values: nth($size, 2);
|
219
|
+
$size: nth($size, 1);
|
220
|
+
@each $context in (1 2) {
|
221
|
+
$name: unquote('#{$size}-#{$context}');
|
222
|
+
$icon: nth-cyclic(associative($values, default), $context);
|
223
|
+
$position: styleguide-sprite-position($CONFIG_SPRITE_LOADERS, $icon);
|
224
|
+
$sprite-file: styleguide-sprite-file($CONFIG_SPRITE_LOADERS, $icon);
|
225
|
+
$width: styleguide-image-width($sprite-file);
|
226
|
+
$height: styleguide-image-height($sprite-file);
|
227
|
+
@include -generate-loader-keyframes-position($name, $position, $width, $height);
|
228
|
+
}
|
229
|
+
}
|
230
|
+
}
|
231
|
+
}
|
232
|
+
}
|
233
|
+
|
234
|
+
// generate rotational keyframes for loading spinners
|
235
|
+
// @mixin -generate-loader-keyframes-360
|
236
|
+
// @private
|
237
|
+
@mixin -generate-loader-keyframes-360() {
|
238
|
+
@if do-once("archetype/ui/generate-keyframe/#{$CONFIG_KEYFRAME_LOADERS}") {
|
239
|
+
@if archetype-version('compass >= 0.13') {
|
240
|
+
@include keyframes($CONFIG_KEYFRAME_LOADERS) {
|
241
|
+
from { @include rotate(0deg); }
|
242
|
+
to { @include rotate(360deg); }
|
243
|
+
}
|
244
|
+
}
|
245
|
+
@else {
|
246
|
+
@-webkit-keyframes #{$CONFIG_KEYFRAME_LOADERS} {
|
247
|
+
from { -webkit-transform: rotate(0deg); }
|
248
|
+
to { -webkit-transform: rotate(360deg); }
|
249
|
+
}
|
250
|
+
@-moz-keyframes #{$CONFIG_KEYFRAME_LOADERS} {
|
251
|
+
from { -moz-transform: rotate(0deg); }
|
252
|
+
to { -moz-transform: rotate(360deg); }
|
253
|
+
}
|
254
|
+
@-ms-keyframes #{$CONFIG_KEYFRAME_LOADERS} {
|
255
|
+
from { -ms-transform: rotate(0deg); }
|
256
|
+
to { -ms-transform: rotate(360deg); }
|
257
|
+
}
|
258
|
+
@-o-keyframes #{$CONFIG_KEYFRAME_LOADERS} {
|
259
|
+
from { -o-transform: rotate(0deg); }
|
260
|
+
to { -o-transform: rotate(360deg); }
|
261
|
+
}
|
262
|
+
@keyframes #{$CONFIG_KEYFRAME_LOADERS} {
|
263
|
+
from { transform: rotate(0deg); }
|
264
|
+
to { transform: rotate(360deg); }
|
265
|
+
}
|
266
|
+
}
|
267
|
+
}
|
268
|
+
}
|
269
|
+
|
270
|
+
// generate position keyframes for loading spinners
|
271
|
+
// @mixin -generate-loader-keyframes-position
|
272
|
+
// @private
|
273
|
+
// @param $name {String} the name for this keyframe
|
274
|
+
// @param $position {List} the background-position of the spinner image
|
275
|
+
// @param $width {Number} the width of the spinner image
|
276
|
+
// @param $height {Number} the height of the spinner image
|
277
|
+
@mixin -generate-loader-keyframes-position($name, $position, $width, $height) {
|
278
|
+
$name: unquote('#{$CONFIG_KEYFRAME_LOADERS}-position-#{$name}');
|
279
|
+
@if do-once("archetype/ui/generate-keyframe/#{$name}") {
|
280
|
+
@if archetype-version('compass >= 0.13') {
|
281
|
+
@include keyframes($name) {
|
282
|
+
from, to { @include -generate-loader-keyframes-position-css($position, $width, $height); }
|
283
|
+
}
|
284
|
+
}
|
285
|
+
@else {
|
286
|
+
@-webkit-keyframes #{$name} {
|
287
|
+
from, to { @include -generate-loader-keyframes-position-css($position, $width, $height); }
|
288
|
+
}
|
289
|
+
@-moz-keyframes #{$name} {
|
290
|
+
from, to { @include -generate-loader-keyframes-position-css($position, $width, $height); }
|
291
|
+
}
|
292
|
+
@-ms-keyframes #{$name} {
|
293
|
+
from, to { @include -generate-loader-keyframes-position-css($position, $width, $height); }
|
294
|
+
}
|
295
|
+
@-o-keyframes #{$name} {
|
296
|
+
from, to { @include -generate-loader-keyframes-position-css($position, $width, $height); }
|
297
|
+
}
|
298
|
+
@keyframes #{$name} {
|
299
|
+
from, to { @include -generate-loader-keyframes-position-css($position, $width, $height); }
|
300
|
+
}
|
301
|
+
}
|
302
|
+
}
|
303
|
+
}
|
304
|
+
|
305
|
+
// a helper to generate the required CSS for the position keyframe
|
306
|
+
// @mixin -generate-loader-keyframes-position-css
|
307
|
+
// @private
|
308
|
+
// @param $position {List} the background-position of the spinner image
|
309
|
+
// @param $width {Number} the width of the spinner image
|
310
|
+
// @param $height {Number} the height of the spinner image
|
311
|
+
@mixin -generate-loader-keyframes-position-css($position, $width, $height) {
|
312
|
+
background-position: $position;
|
313
|
+
width: $width;
|
314
|
+
height: $height;
|
315
|
+
margin-left: $width / -2;
|
316
|
+
margin-top: $height / -2;
|
317
|
+
}
|
318
|
+
|
319
|
+
// a method for removing default styling from a button
|
320
|
+
// @mixin unstyled-button
|
321
|
+
@mixin unstyled-button() {
|
322
|
+
background: none;
|
323
|
+
border: none;
|
324
|
+
padding: 0;
|
325
|
+
@include appearance(none);
|
326
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
// utility functions and convenience methods
|
2
|
+
// @category utilities
|
3
|
+
@import "config";
|
4
|
+
// import dependencies
|
5
|
+
@import "util/units";
|
6
|
+
@import "util/lists";
|
7
|
+
@import "util/misc";
|
8
|
+
@import "util/spacing";
|
9
|
+
@import "util/debug";
|
10
|
+
@import "util/rtl";
|
11
|
+
@import "util/styles";
|
12
|
+
@import "util/targeting";
|