archetype 0.0.1.pre.3.811928f → 0.0.1.pre.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +24 -1
  3. data/LICENSE +1 -1
  4. data/README.md +1 -1
  5. data/VERSION.yml +1 -1
  6. data/bin/archetype +3 -0
  7. data/lib/archetype.rb +4 -0
  8. data/lib/archetype/actions/help.rb +16 -0
  9. data/lib/archetype/actions/theme.rb +73 -0
  10. data/lib/archetype/executor.rb +27 -0
  11. data/lib/archetype/functions/hash.rb +28 -12
  12. data/lib/archetype/functions/helpers.rb +46 -13
  13. data/lib/archetype/functions/styleguide_memoizer.rb +9 -1
  14. data/lib/archetype/sass_extensions.rb +1 -0
  15. data/lib/archetype/sass_extensions/functions/lists.rb +34 -40
  16. data/lib/archetype/sass_extensions/functions/locale.rb +32 -16
  17. data/lib/archetype/sass_extensions/functions/styleguide.rb +115 -37
  18. data/lib/archetype/sass_extensions/functions/ui.rb +3 -2
  19. data/lib/archetype/sass_extensions/functions/version.rb +11 -6
  20. data/lib/archetype/sass_extensions/monkey_patches.rb +3 -0
  21. data/lib/archetype/sass_extensions/monkey_patches/handle_include_loop.rb +13 -0
  22. data/lib/archetype/version.rb +19 -12
  23. data/stylesheets/archetype/_base.scss +3 -0
  24. data/stylesheets/archetype/_config.scss +31 -7
  25. data/stylesheets/archetype/_hacks.scss +17 -5
  26. data/stylesheets/archetype/_ui.scss +64 -23
  27. data/stylesheets/archetype/styleguide/components/_buttons.scss +6 -6
  28. data/stylesheets/archetype/styleguide/components/_headlines.scss +1 -0
  29. data/stylesheets/archetype/styleguide/components/_links.scss +2 -0
  30. data/stylesheets/archetype/util/_styles.scss +59 -14
  31. data/stylesheets/archetype/util/_targeting.scss +1 -1
  32. data/templates/_theme/_components.scss +3 -0
  33. data/templates/_theme/_config.scss +1 -0
  34. data/templates/_theme/_core.scss +13 -0
  35. data/templates/_theme/_helpers.scss +1 -0
  36. data/templates/_theme/_primitives.scss +3 -0
  37. data/templates/_theme/components/README +1 -0
  38. data/templates/_theme/primitives/README +1 -0
  39. data/test/fixtures/stylesheets/archetype/config.rb +2 -0
  40. data/test/fixtures/stylesheets/archetype/expected/base.css +349 -0
  41. data/test/fixtures/stylesheets/archetype/expected/hacks/ie_pseudo.css +3 -3
  42. data/test/fixtures/stylesheets/archetype/expected/hacks/transparent_focusable.css +4 -0
  43. data/test/fixtures/stylesheets/archetype/expected/locale.css +23 -0
  44. data/test/fixtures/stylesheets/archetype/expected/styleguide/alerts.css +675 -0
  45. data/test/fixtures/stylesheets/archetype/expected/styleguide/buttons.css +110 -18
  46. data/test/fixtures/stylesheets/archetype/expected/styleguide/drop.css +63 -0
  47. data/test/fixtures/stylesheets/archetype/expected/styleguide/extend.css +7 -0
  48. data/test/fixtures/stylesheets/archetype/expected/styleguide/invalid_structures.css +21 -0
  49. data/test/fixtures/stylesheets/archetype/expected/styleguide/multi_value.css +13 -0
  50. data/test/fixtures/stylesheets/archetype/expected/styleguide/selective_state.css +3 -0
  51. data/test/fixtures/stylesheets/archetype/expected/ui/glyph_icon.css +116 -2
  52. data/test/fixtures/stylesheets/archetype/expected/utilities/associative.css +9 -0
  53. data/test/fixtures/stylesheets/archetype/expected/utilities/custom_output_styler.css +8 -0
  54. data/test/fixtures/stylesheets/archetype/expected/utilities/targeting/target-browser.css +5 -0
  55. data/test/fixtures/stylesheets/archetype/source/base.scss +3 -0
  56. data/test/fixtures/stylesheets/archetype/source/hacks/transparent_focusable.scss +5 -0
  57. data/test/fixtures/stylesheets/archetype/source/locale.scss +43 -0
  58. data/test/fixtures/stylesheets/archetype/source/styleguide/alerts.scss +21 -0
  59. data/test/fixtures/stylesheets/archetype/source/styleguide/buttons.scss +5 -1
  60. data/test/fixtures/stylesheets/archetype/source/styleguide/drop.scss +101 -0
  61. data/test/fixtures/stylesheets/archetype/source/styleguide/extend.scss +23 -0
  62. data/test/fixtures/stylesheets/archetype/source/styleguide/fallback_styles.scss +1 -1
  63. data/test/fixtures/stylesheets/archetype/source/styleguide/invalid_structures.scss +85 -0
  64. data/test/fixtures/stylesheets/archetype/source/styleguide/multi_value.scss +18 -0
  65. data/test/fixtures/stylesheets/archetype/source/styleguide/nested_styleguides.scss +1 -1
  66. data/test/fixtures/stylesheets/archetype/source/styleguide/selective_state.scss +1 -1
  67. data/test/fixtures/stylesheets/archetype/source/ui/glyph_icon.scss +30 -0
  68. data/test/fixtures/stylesheets/archetype/source/utilities/associative.scss +24 -0
  69. data/test/fixtures/stylesheets/archetype/source/utilities/custom_output_styler.scss +21 -0
  70. data/test/fixtures/stylesheets/archetype/source/utilities/targeting/target-browser.scss +8 -1
  71. data/test/helpers/test_case.rb +2 -2
  72. data/test/integrations/archetype_test.rb +3 -1
  73. data/test/units/sass_extensions_test.rb +18 -25
  74. metadata +108 -36
  75. data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders-s7889ccc8c1.png +0 -0
@@ -61,15 +61,27 @@
61
61
  // @param $name {String} the name of the element
62
62
  @mixin ie-pseudo($styles: false, $content: false, $placement: before, $name: '') {
63
63
  @if $legacy-support-for-ie6 or $legacy-support-for-ie7 {
64
+ $this: 't';
65
+ $cmd: (unquote('#{$this}.el=document.createElement("#{prefixed-tag($name)}")'));
64
66
  $method: if($placement == before, insertBefore, appendChild);
65
- $content: if($content and $content != nil, 'this.el.innerHTML="#{-ie-pseudo-content($content)}",', '');
67
+ @if $content and $content != nil {
68
+ $cmd: append($cmd, unquote('#{$this}.el.innerHTML="#{-ie-pseudo-content($content)}"'), comma);
69
+ }
66
70
  @if $CONFIG_GENERATED_TAG_CSS {
67
71
  $styles: if($styles and $styles != nil, #{$CONFIG_GENERATED_TAG_CSS}#{$styles}, $CONFIG_GENERATED_TAG_CSS);
68
72
  }
69
- $styles: if($styles and $styles != nil, 'this.el.style.cssText="#{$styles}",', '');
70
- @if $name != '' {
71
- $name: '-#{$name}';
73
+ @if $styles and $styles != nil {
74
+ // sets the icon styles on the node
75
+ $cmd: append($cmd, unquote('#{$this}.el.style.cssText="#{$styles}"'), comma);
72
76
  }
73
- *zoom: expression(this.runtimeStyle.zoom="1", this.el=document.createElement("#{$CONFIG_GENERATED_TAG_PREFIX}#{$name}"),#{$content}#{$styles}this.#{$method}(this.el));
77
+ // if we're using the insertBefore method, we need to specify the node reference to the first childNode
78
+ $reference-node: if($placement == before, ',#{$this}.childNodes[0]||null', '');
79
+ $cmd: append($cmd, unquote('#{$this}.#{$method}(#{$this}.el#{$reference-node})'), comma);
80
+ $runOnce: unquote('this.runtimeStyle.zoom="1"'); // this ensures the expression is only invoked once
81
+
82
+ // we execute in a setTimeout to decouple from the current UI thread
83
+ // this prevents an edge case in IE crashing with an `Operation Aborted` if the node hasn't finished rendering yet
84
+ // http://www.nczonline.net/blog/2008/03/17/the-dreaded-operation-aborted-error/
85
+ *zoom: expression(#{$runOnce},(function(#{$this}){setTimeout(function(){#{$cmd}})}(this)));
74
86
  }
75
87
  }
@@ -117,6 +117,21 @@
117
117
  clip: rect(1px, 1px, 1px, 1px);
118
118
  }
119
119
 
120
+ // revert hide element with config
121
+ // @mixin unhide-element
122
+ // @link http://snook.ca/archives/html_and_css/hiding-content-for-accessibility
123
+ // @param $position {String} value for the position property
124
+ // @param $height {String} value for the height property
125
+ // @param $width {String} value for the width property
126
+ // @param $overflow {String} value for the overflow property
127
+ @mixin unhide-element($position: static, $height:auto, $width:auto, $overflow:visible) {
128
+ position: $position !important;
129
+ height: $height;
130
+ width: $width;
131
+ overflow: $overflow;
132
+ clip: auto;
133
+ }
134
+
120
135
  // mixin for generating a fade box which fades from transparent to white
121
136
  // @mixin fade-box
122
137
  // @param $width {String} the width of the overlay
@@ -124,7 +139,7 @@
124
139
  // @param $direction {String} top=vertical left=horizontal
125
140
  @mixin fade-box($width: 100%, $height: 100%, $direction: top) {
126
141
  $direction: rtl($direction);
127
- // TODO - update this when Compass supports IE alpha channels
142
+ // TODO - update this when Compass supports IE alpha channels
128
143
  @if $direction == left {
129
144
  @include ie-filter(gradient(startColorstr='#00ffffff', endColorstr='#ffffff', GradientType=1));
130
145
  }
@@ -155,21 +170,30 @@
155
170
  // @param $placement {String} where to place the icon [before|after|inline]
156
171
  // @param $ie-styles {String} styles to apply to IE6/7 (this is needed because the faux :before isn't extensible)
157
172
  @mixin glyph-icon($icon, $size: default, $color: inherit, $placement: before, $ie-styles: false) {
158
- $char-mapping: -compass-list(associative($CONFIG_GLYPHS_MAPPINGS, $icon, $strict: true));
159
- $char-code: nth($char-mapping, 1);
173
+ $char-mapping: nil;
174
+ $char-code: nil;
175
+ @if $icon {
176
+ $char-mapping: -compass-list(associative($CONFIG_GLYPHS_MAPPINGS, $icon, $strict: true));
177
+ $char-code: nth($char-mapping, 1);
178
+ }
160
179
  @if $char-code == nil and $icon != false {
161
180
  @warn "could not find character mapping for `#{icon}`";
162
181
  }
163
182
  @else {
164
183
  @if $size == default {
165
- $default-size: nth-cyclic($char-mapping, 2);
184
+ $default-size: nil;
185
+ @if $icon {
186
+ $default-size: nth-cyclic($char-mapping, 2);
187
+ }
166
188
  $size: if(type-of($default-size) == number, $default-size, 100%);
167
189
  }
168
190
  // if the size is under a given threshold, use a halfling, if available
169
- $char-code: nth-cyclic(-compass-list($char-code), if(comparable($CONFIG_GLYPHS_THRESHOLD, $size) and $size <= $CONFIG_GLYPHS_THRESHOLD, 2, 1));
191
+ @if $icon {
192
+ $char-code: nth(-compass-list($char-code), 1);
193
+ }
170
194
  $selector: if(index(before after, $placement), '&:#{$placement}', '&');
171
195
  #{$selector} {
172
- font-family: $CONFIG_GLYPHS_NAME;
196
+ font-family: '#{$CONFIG_GLYPHS_NAME}-#{$CONFIG_GLYPHS_VERSION}', '#{$CONFIG_GLYPHS_NAME}';
173
197
  font-weight: $CONFIG_GLYPHS_WEIGHT;
174
198
  font-style: $CONFIG_GLYPHS_STYLE;
175
199
  text-decoration: inherit;
@@ -180,9 +204,9 @@
180
204
  content: $char-code;
181
205
  }
182
206
  }
183
- @if($selector != '&') {
207
+ @if($selector != '&' and $ie-styles != nil) {
184
208
  // support for IE6/7
185
- $styles: "font-family:'#{$CONFIG_GLYPHS_NAME}';font-weight:#{$CONFIG_GLYPHS_WEIGHT};font-style:#{$CONFIG_GLYPHS_STYLE};text-decoration:inherit;";
209
+ $styles: "font-family:'#{$CONFIG_GLYPHS_NAME}-#{$CONFIG_GLYPHS_VERSION}', '#{$CONFIG_GLYPHS_NAME}';font-weight:#{$CONFIG_GLYPHS_WEIGHT};font-style:#{$CONFIG_GLYPHS_STYLE};text-decoration:inherit;";
186
210
  @if($size != nil) {
187
211
  $styles: $styles + "font-size:#{$size};"
188
212
  }
@@ -234,25 +258,33 @@
234
258
  }
235
259
  }
236
260
  @else {
237
- @-webkit-keyframes #{$CONFIG_KEYFRAME_LOADERS} {
238
- from { -webkit-transform: rotate(0deg); }
239
- to { -webkit-transform: rotate(360deg); }
261
+ @if $experimental-support-for-webkit {
262
+ @-webkit-keyframes #{$CONFIG_KEYFRAME_LOADERS} {
263
+ from { -webkit-transform: rotate(0deg); }
264
+ to { -webkit-transform: rotate(360deg); }
265
+ }
240
266
  }
241
- @-moz-keyframes #{$CONFIG_KEYFRAME_LOADERS} {
242
- from { -moz-transform: rotate(0deg); }
243
- to { -moz-transform: rotate(360deg); }
267
+ @if $experimental-support-for-mozilla {
268
+ @-moz-keyframes #{$CONFIG_KEYFRAME_LOADERS} {
269
+ from { -moz-transform: rotate(0deg); }
270
+ to { -moz-transform: rotate(360deg); }
271
+ }
244
272
  }
245
- @-ms-keyframes #{$CONFIG_KEYFRAME_LOADERS} {
246
- from { -ms-transform: rotate(0deg); }
247
- to { -ms-transform: rotate(360deg); }
273
+ @if $experimental-support-for-microsoft {
274
+ @-ms-keyframes #{$CONFIG_KEYFRAME_LOADERS} {
275
+ from { -ms-transform: rotate(0deg); }
276
+ to { -ms-transform: rotate(360deg); }
277
+ }
248
278
  }
249
- @-o-keyframes #{$CONFIG_KEYFRAME_LOADERS} {
250
- from { -o-transform: rotate(0deg); }
251
- to { -o-transform: rotate(360deg); }
279
+ @if $experimental-support-for-opera {
280
+ @-o-keyframes #{$CONFIG_KEYFRAME_LOADERS} {
281
+ from { -o-transform: rotate(0deg); }
282
+ to { -o-transform: rotate(360deg); }
283
+ }
252
284
  }
253
285
  @keyframes #{$CONFIG_KEYFRAME_LOADERS} {
254
- from { transform: rotate(0deg); }
255
- to { transform: rotate(360deg); }
286
+ from { transform: rotate(0deg); }
287
+ to { transform: rotate(360deg); }
256
288
  }
257
289
  }
258
290
  }
@@ -305,4 +337,13 @@
305
337
  height: $height;
306
338
  margin-left: $width / -2;
307
339
  margin-top: $height / -2;
308
- }
340
+ }
341
+
342
+ // a method for removing default styling from a button
343
+ // @mixin unstyled-button
344
+ @mixin unstyled-button() {
345
+ background: none;
346
+ border: none;
347
+ padding: 0;
348
+ @include appearance(none);
349
+ }
@@ -111,6 +111,7 @@ $a-blackhole: styleguide-add-component($STYLEGUIDE_BUTTONS_ID, $STYLEGUIDE_BUTT
111
111
  )),
112
112
  // IMPORTANCE in CONTEXTS
113
113
  ((primary in-dark), (
114
+ inherit (in-dark),
114
115
  (states, (
115
116
  (hover, (
116
117
  background-color $CONFIG_COLOR_BG_BUTTON_PRIMARY_DARK_HOVER,
@@ -118,10 +119,10 @@ $a-blackhole: styleguide-add-component($STYLEGUIDE_BUTTONS_ID, $STYLEGUIDE_BUTT
118
119
  background-image $CONFIG_GRADIENT_BUTTON_PRIMARY_DARK_HOVER
119
120
  )),
120
121
  nil
121
- )),
122
- nil
122
+ ))
123
123
  )),
124
124
  ((secondary in-dark), (
125
+ inherit (in-dark),
125
126
  (states, (
126
127
  (hover, (
127
128
  background-color $CONFIG_COLOR_BG_BUTTON_SECONDARY_DARK_HOVER,
@@ -129,10 +130,10 @@ $a-blackhole: styleguide-add-component($STYLEGUIDE_BUTTONS_ID, $STYLEGUIDE_BUTT
129
130
  background-image $CONFIG_GRADIENT_BUTTON_SECONDARY_DARK_HOVER
130
131
  )),
131
132
  nil
132
- )),
133
- nil
133
+ ))
134
134
  )),
135
135
  ((spotlight in-dark), (
136
+ inherit (in-dark),
136
137
  (states, (
137
138
  (hover, (
138
139
  background-color $CONFIG_COLOR_BG_BUTTON_SPOTLIGHT_DARK_HOVER,
@@ -140,8 +141,7 @@ $a-blackhole: styleguide-add-component($STYLEGUIDE_BUTTONS_ID, $STYLEGUIDE_BUTT
140
141
  background-image $CONFIG_GRADIENT_BUTTON_SPOTLIGHT_DARK_HOVER
141
142
  )),
142
143
  nil
143
- )),
144
- nil
144
+ ))
145
145
  )),
146
146
  // in the punchcut context (inherit from in-dark)
147
147
  (primary in-punchcut, (
@@ -7,6 +7,7 @@ $STYLEGUIDE_HEADLINES: () !default;
7
7
  @if not styleguide-component-exists($STYLEGUIDE_HEADLINES_ID, $CONFIG_THEME) {
8
8
  $a-blackhole: styleguide-add-component($STYLEGUIDE_HEADLINES_ID, $STYLEGUIDE_HEADLINES, (
9
9
  (default, (
10
+ font-family headline,
10
11
  font-size nth($CONFIG_FONT_HEADLINE_LARGE, 1),
11
12
  font-weight bold,
12
13
  line-height nth-cyclic($CONFIG_FONT_HEADLINE_LARGE, 2),
@@ -56,6 +56,8 @@ $a-blackhole: styleguide-add-component($STYLEGUIDE_LINKS_ID, $STYLEGUIDE_LINKS,
56
56
  (states, (
57
57
  (hover, (
58
58
  color nth($CONFIG_COLOR_BRAND, 1),
59
+ cursor pointer,
60
+ target-browser (ie, cursor, hand),
59
61
  text-decoration none
60
62
  )),
61
63
  nil
@@ -10,7 +10,11 @@
10
10
  // @param $value {*} the CSS value to output
11
11
  @mixin _outputStyle($property, $value: nil) {
12
12
  @if($value != nil) {
13
- @if($property == target-browser) {
13
+ // !!DO NOT COPY TO ARCHETYPE - this mixin is specific to _round_button.scss
14
+ @if($property == round-button-ie-support) {
15
+ @include round-button-ie-support($value)
16
+ }
17
+ @else if($property == target-browser) {
14
18
  @include target-browser(nth($value,1), nth($value,2), nth($value,3));
15
19
  }
16
20
  @else if($property == font-family) {
@@ -19,12 +23,21 @@
19
23
  @else if($property == font-style) {
20
24
  @include font-style($value);
21
25
  }
26
+ @else if($property == hide-element) {
27
+ @include hide-element();
28
+ }
22
29
  @else {
23
30
  @include output-style($property, $value);
24
31
  }
25
32
  }
26
33
  }
27
34
 
35
+ // Themes can override this function & custom-output-styler to add their own
36
+ // custom style includes.
37
+ @function has-custom-output-styler($property, $value, $method:pre){
38
+ @return false;
39
+ }
40
+
28
41
  // output a property or augment it to use a mixin
29
42
  // @mixin output-style
30
43
  // @param $property {String} the CSS property to output
@@ -32,8 +45,13 @@
32
45
  @mixin output-style($property, $value: nil) {
33
46
  @if($property != nil and nth(-compass-list($value), 1) != nil and not index($CONFIG_DISABLED_CSS, $property)) {
34
47
  // for mixins, we need to do some custom work
48
+ // has-custom-output-styler: copy & pasted from latest github repo 10/3/2013
49
+ // check to see if we have a custom output styler (pre)
50
+ @if has-custom-output-styler($property, $value, pre) == true {
51
+ @include custom-output-styler($property, $value, $method: pre);
52
+ }
35
53
  // border-radius
36
- @if($property == border-radius) { @include border-radius(rtl($value, border-radius)); }
54
+ @else if($property == border-radius) { @include border-radius(rtl($value, border-radius)); }
37
55
  // box-sizing
38
56
  @else if($property == box-sizing) { @include box-sizing($value); }
39
57
  // box-shadow
@@ -70,6 +88,8 @@
70
88
  @else if($property == max-height) { @include max-height($value); }
71
89
  // stretch
72
90
  @else if($property == stretch) { @include stretch(); }
91
+ // appearance
92
+ @else if($property == appearance) { @include appearance($value); }
73
93
  // bunch of RTL support
74
94
  @else if($property == margin) { @include margin($value); }
75
95
  @else if($property == margin-left) { @include margin-left($value); }
@@ -87,22 +107,30 @@
87
107
  @else if($property == border-left-style) { @include border-left-style($value); }
88
108
  @else if($property == border-right-style) { @include border-right-style($value); }
89
109
  @else if($property == clear) { @include clear($value); }
90
- @else if($property == float) { @include float($value); }
91
110
  @else if($property == text-align) { @include text-align($value); }
92
111
  @else if($property == background-position) { @include background-position($value); }
93
112
  @else if($property == left) { @include left($value); }
94
113
  @else if($property == right) { @include right($value); }
95
114
  @else if($property == glyph-icon) { @include glyph-icon(nth($value, 1), nth($value, 2), nth($value, 3), nth($value, 4), nth($value, 5)); }
115
+ @else if($property == scale) { @include scale($value); }
96
116
  // animations
97
117
  @else if($property == animation) {
98
118
  @if archetype-version('compass >= 0.13') {
99
119
  @include animation($value);
100
120
  }
101
121
  @else {
102
- -webkit-animation: $value;
103
- -moz-animation: $value;
104
- -ms-animation: $value;
105
- -o-animation: $value;
122
+ @if $experimental-support-for-webkit {
123
+ -webkit-animation: $value;
124
+ }
125
+ @if $experimental-support-for-mozilla {
126
+ -moz-animation: $value;
127
+ }
128
+ @if $experimental-support-for-microsoft {
129
+ -ms-animation: $value;
130
+ }
131
+ @if $experimental-support-for-opera {
132
+ -o-animation: $value;
133
+ }
106
134
  animation: $value;
107
135
  }
108
136
  }
@@ -134,8 +162,6 @@
134
162
  @if(length($value) > 1) { @include z-index(nth($value, 1), nth($value, 2)); }
135
163
  @else { @include z-index($value); }
136
164
  }
137
- // make sure content is always quoted
138
- @else if($property == content) { #{$property}: quote($value); }
139
165
  // :before/:after
140
166
  @else if($property == ie-pseudo-before or $property == ie-pseudo-after) {
141
167
  $value: -compass-list($value);
@@ -154,6 +180,13 @@
154
180
  @include ie-pseudo-after(nth($value, 1), $content, $tag);
155
181
  }
156
182
  }
183
+ //ellipsis
184
+ @else if($property == ellipsis) { @include ellipsis(); }
185
+ // has-custom-output-styler: copy & pasted from latest github repo 10/3/2013
186
+ // check to see if we have a custom output styler (post)
187
+ @else if has-custom-output-styler($property, $value, post) == true {
188
+ @include custom-output-styler($property, $value, $method: post);
189
+ }
157
190
  // otherwise just use a key-value pair
158
191
  @else { #{$property}: $value; }
159
192
  }
@@ -165,7 +198,7 @@
165
198
  // @param $states {Bool|List} if true, output all states; if false, output no states; if a list, output only the states in the list
166
199
  // @param $exclude {List} a list of styles to exclude from output
167
200
  @mixin to-styles($list: (), $states: true, $selectors: true, $exclude: ()) {
168
- $exclude: compact($exclude, nil);
201
+ $exclude: -compass-list($exclude);
169
202
  $states-data: ();
170
203
  $selectors-data: ();
171
204
  @each $item in $list {
@@ -180,7 +213,7 @@
180
213
  $selectors-data: $value;
181
214
  }
182
215
  @else if($selectors == true and $states == true) {
183
- @include _outputStyle($property, unquote($value));
216
+ @include _outputStyle($property, $value);
184
217
  }
185
218
  }
186
219
  }
@@ -211,7 +244,7 @@
211
244
 
212
245
  // this is identical to to-styles, but we need to avoid Sass' recursion check :(
213
246
  @mixin _toStyles2($list: (), $states: true, $selectors: true, $exclude: ()) {
214
- $exclude: compact($exclude, nil);
247
+ $exclude: -compass-list($exclude);
215
248
  $states-data: ();
216
249
  $selectors-data: ();
217
250
  @each $item in $list {
@@ -226,7 +259,7 @@
226
259
  $selectors-data: $value;
227
260
  }
228
261
  @else if($selectors == true and $states == true) {
229
- @include _outputStyle($property, unquote($value));
262
+ @include _outputStyle($property, $value);
230
263
  }
231
264
  }
232
265
  }
@@ -262,7 +295,7 @@
262
295
  $property: nth($item, 1);
263
296
  $value: nth($item, 2);
264
297
  @if(not index($exclude, $property)) {
265
- @include _outputStyle($property, unquote($value));
298
+ @include _outputStyle($property, $value);
266
299
  }
267
300
  }
268
301
  }
@@ -452,3 +485,15 @@
452
485
  }
453
486
  z-index: ($value + $layer);
454
487
  }
488
+
489
+ // generate a tag name with a prefix
490
+ // @function prefixed-tag
491
+ // @param $tag {String} the tag to prefix
492
+ // @param $prefix {String} the prefix to prepend to the tag
493
+ // @return {String} the prefix joined with the tag
494
+ @function prefixed-tag($tag: '', $prefix: $CONFIG_GENERATED_TAG_PREFIX) {
495
+ @if $tag != '' {
496
+ $tag: '-#{$tag}';
497
+ }
498
+ @return '#{$prefix}#{$tag}';
499
+ }
@@ -150,7 +150,7 @@
150
150
  $prefix: nth(('_', '*'), $idx);
151
151
  $value: if(index($CORE_CSS_RTL_VALUE_SUPPORT, $property), rtl($value, $property), $value);
152
152
  // NOTE: RTL support on properties like `border-left-width` won't fully work until Compass/Sass support string replace methods
153
- @include debug-message("[archetype:target-browser:being] --- #{$browsers} ---");
153
+ @include debug-message("[archetype:target-browser:begin] --- #{$browsers} ---");
154
154
  @include output-style(#{$prefix}#{rtl($property)}, $value);
155
155
  @include debug-message("[archetype:target-browser:end] --- #{$browsers} ---");
156
156
  $value: nil;
@@ -0,0 +1,3 @@
1
+ // import your components here!
2
+ // e.g.
3
+ // @import "components/my_component";
@@ -0,0 +1 @@
1
+ $CONFIG_THEME: "__THEME_NAME__" !default;
@@ -0,0 +1,13 @@
1
+ // setup theme configs and styles
2
+ @import "config";
3
+ @import "primitives";
4
+
5
+ // extend the __THEME_EXTENDS__ theme
6
+ @import "__THEME_EXTENDS__";
7
+ //@import "../__THEME_EXTENDS__/core";
8
+
9
+ // import helper functions
10
+ @import "helpers";
11
+
12
+ // finally initialize our custom components
13
+ @import "components";
@@ -0,0 +1 @@
1
+ // helper methods go here
@@ -0,0 +1,3 @@
1
+ // import your primitives here!
2
+ // e.g.
3
+ // @import "primitives/my_primitive";