archetype 0.0.1.pre.3.90263a7 → 0.0.1.pre.3.811928f

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.
Files changed (78) hide show
  1. data/CHANGELOG.md +1 -24
  2. data/LICENSE +1 -1
  3. data/README.md +1 -1
  4. data/VERSION.yml +1 -1
  5. data/lib/archetype.rb +0 -4
  6. data/lib/archetype/functions/hash.rb +12 -28
  7. data/lib/archetype/functions/helpers.rb +13 -56
  8. data/lib/archetype/functions/styleguide_memoizer.rb +1 -9
  9. data/lib/archetype/sass_extensions.rb +0 -1
  10. data/lib/archetype/sass_extensions/functions/lists.rb +40 -34
  11. data/lib/archetype/sass_extensions/functions/locale.rb +16 -32
  12. data/lib/archetype/sass_extensions/functions/styleguide.rb +37 -115
  13. data/lib/archetype/sass_extensions/functions/ui.rb +2 -3
  14. data/lib/archetype/sass_extensions/functions/version.rb +6 -11
  15. data/lib/archetype/version.rb +12 -19
  16. data/stylesheets/archetype/_base.scss +0 -3
  17. data/stylesheets/archetype/_config.scss +5 -22
  18. data/stylesheets/archetype/_hacks.scss +21 -62
  19. data/stylesheets/archetype/_ui.scss +11 -56
  20. data/stylesheets/archetype/base/_h5bp.scss +12 -12
  21. data/stylesheets/archetype/base/_normalize.scss +139 -178
  22. data/stylesheets/archetype/styleguide/_helpers.scss +4 -1
  23. data/stylesheets/archetype/styleguide/components/_alerts.scss +1 -1
  24. data/stylesheets/archetype/styleguide/components/_buttons.scss +6 -7
  25. data/stylesheets/archetype/styleguide/components/_closes.scss +2 -2
  26. data/stylesheets/archetype/util/_styles.scss +7 -45
  27. data/stylesheets/archetype/util/_targeting.scss +0 -2
  28. data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders-s7889ccc8c1.png +0 -0
  29. data/test/fixtures/stylesheets/archetype/config.rb +0 -2
  30. data/test/fixtures/stylesheets/archetype/expected/hacks/ie_pseudo.css +3 -3
  31. data/test/fixtures/stylesheets/archetype/expected/styleguide/buttons.css +18 -110
  32. data/test/fixtures/stylesheets/archetype/expected/styleguide/selective_state.css +0 -3
  33. data/test/fixtures/stylesheets/archetype/expected/ui/glyph_icon.css +2 -116
  34. data/test/fixtures/stylesheets/archetype/expected/utilities/targeting/target-browser.css +0 -5
  35. data/test/fixtures/stylesheets/archetype/source/styleguide/buttons.scss +1 -5
  36. data/test/fixtures/stylesheets/archetype/source/styleguide/fallback_styles.scss +1 -1
  37. data/test/fixtures/stylesheets/archetype/source/styleguide/nested_styleguides.scss +1 -1
  38. data/test/fixtures/stylesheets/archetype/source/styleguide/selective_state.scss +1 -1
  39. data/test/fixtures/stylesheets/archetype/source/ui/glyph_icon.scss +0 -30
  40. data/test/fixtures/stylesheets/archetype/source/utilities/targeting/target-browser.scss +1 -8
  41. data/test/helpers/test_case.rb +2 -2
  42. data/test/integrations/archetype_test.rb +1 -3
  43. data/test/units/sass_extensions_test.rb +25 -18
  44. metadata +23 -80
  45. checksums.yaml +0 -7
  46. data/bin/archetype +0 -3
  47. data/lib/archetype/actions/help.rb +0 -16
  48. data/lib/archetype/actions/theme.rb +0 -73
  49. data/lib/archetype/executor.rb +0 -27
  50. data/lib/archetype/sass_extensions/monkey_patches.rb +0 -3
  51. data/lib/archetype/sass_extensions/monkey_patches/handle_include_loop.rb +0 -41
  52. data/templates/_theme/_components.scss +0 -3
  53. data/templates/_theme/_config.scss +0 -1
  54. data/templates/_theme/_core.scss +0 -13
  55. data/templates/_theme/_helpers.scss +0 -1
  56. data/templates/_theme/_primitives.scss +0 -3
  57. data/templates/_theme/components/README +0 -1
  58. data/templates/_theme/primitives/README +0 -1
  59. data/test/fixtures/stylesheets/archetype/expected/base.css +0 -349
  60. data/test/fixtures/stylesheets/archetype/expected/hacks/transparent_focusable.css +0 -4
  61. data/test/fixtures/stylesheets/archetype/expected/locale.css +0 -23
  62. data/test/fixtures/stylesheets/archetype/expected/styleguide/alerts.css +0 -675
  63. data/test/fixtures/stylesheets/archetype/expected/styleguide/drop.css +0 -63
  64. data/test/fixtures/stylesheets/archetype/expected/styleguide/extend.css +0 -7
  65. data/test/fixtures/stylesheets/archetype/expected/styleguide/invalid_structures.css +0 -21
  66. data/test/fixtures/stylesheets/archetype/expected/styleguide/multi_value.css +0 -13
  67. data/test/fixtures/stylesheets/archetype/expected/utilities/associative.css +0 -9
  68. data/test/fixtures/stylesheets/archetype/expected/utilities/custom_output_styler.css +0 -8
  69. data/test/fixtures/stylesheets/archetype/source/base.scss +0 -3
  70. data/test/fixtures/stylesheets/archetype/source/hacks/transparent_focusable.scss +0 -5
  71. data/test/fixtures/stylesheets/archetype/source/locale.scss +0 -43
  72. data/test/fixtures/stylesheets/archetype/source/styleguide/alerts.scss +0 -21
  73. data/test/fixtures/stylesheets/archetype/source/styleguide/drop.scss +0 -101
  74. data/test/fixtures/stylesheets/archetype/source/styleguide/extend.scss +0 -23
  75. data/test/fixtures/stylesheets/archetype/source/styleguide/invalid_structures.scss +0 -85
  76. data/test/fixtures/stylesheets/archetype/source/styleguide/multi_value.scss +0 -18
  77. data/test/fixtures/stylesheets/archetype/source/utilities/associative.scss +0 -24
  78. data/test/fixtures/stylesheets/archetype/source/utilities/custom_output_styler.scss +0 -21
@@ -15,13 +15,10 @@ module Archetype::SassExtensions::Styleguide
15
15
  DEFAULT = 'default'
16
16
  REGEX = 'regex'
17
17
  SPECIAL = %w(states selectors)
18
- DROPALL = %w(all true)
19
18
  # these are unique CSS keys that can be exploited to provide fallback functionality by providing a second value
20
19
  # e.g color: red; color: rgba(255,0,0, 0.8);
21
- FALLBACKS = %w(background background-image background-color border border-bottom border-bottom-color border-color border-left border-left-color border-right border-right-color border-top border-top-color clip color layer-background-color outline outline-color white-space extend)
22
- # these are mixins that make sense to run multiple times within a block
23
- MULTIMIXINS = %w(target-browser)
24
- ADDITIVES = FALLBACKS + [DROP, INHERIT, STYLEGUIDE] + MULTIMIXINS
20
+ FALLBACKS = %w(background background-image background-color border border-bottom border-bottom-color border-color border-left border-left-color border-right border-right-color border-top border-top-color clip color layer-background-color outline outline-color white-space)
21
+ ADDITIVES = FALLBACKS + [DROP, INHERIT, STYLEGUIDE]
25
22
  @@archetype_styleguide_mutex = Mutex.new
26
23
  # :startdoc:
27
24
 
@@ -79,7 +76,7 @@ module Archetype::SassExtensions::Styleguide
79
76
  extensions = theme[:extensions]
80
77
  return Sass::Script::Bool.new(false) if component_exists(id, theme, extension, force)
81
78
  extensions.push(extension)
82
- components[id] = (components[id] ||= Archetype::Hash.new).rmerge(helpers.list_to_hash(data, 1, SPECIAL, ADDITIVES))
79
+ components[id] = (components[id] ||= {}).rmerge(helpers.list_to_hash(data, 1, SPECIAL, ADDITIVES))
83
80
  return Sass::Script::Bool.new(true)
84
81
  end
85
82
  end
@@ -101,7 +98,7 @@ module Archetype::SassExtensions::Styleguide
101
98
  #
102
99
  def styleguide_component_exists(id, theme = nil, extension = nil, force = false)
103
100
  @@archetype_styleguide_mutex.synchronize do
104
- extension = helpers.to_str(extension).hash if not extension.nil?
101
+ extension = helpers.to_str(extension) if not extension.nil?
105
102
  return Sass::Script::Bool.new( component_exists(id, theme, extension, force) )
106
103
  end
107
104
  end
@@ -226,34 +223,29 @@ private
226
223
  #
227
224
  def extract_styles(id, modifiers, strict = false, theme = nil, context = nil)
228
225
  theme = get_theme(theme)
229
- context ||= theme[:components][id] || Archetype::Hash.new
226
+ context ||= theme[:components][id] || {}
230
227
  modifiers = helpers.to_str(modifiers)
231
- return Archetype::Hash.new if context.nil? or context.empty?
228
+ return {} if context.nil? or context.empty?
232
229
  # push on the defaults first
233
- out = (strict ? resolve_dependents(id, context[modifiers], theme[:name], context) : context[DEFAULT]) || Archetype::Hash.new
230
+ out = (strict ? resolve_dependents(id, context[modifiers], theme[:name], context) : context[DEFAULT]) || {}
234
231
  out = out.clone
235
232
  # if it's not strict, find anything that matched
236
233
  if not strict
237
234
  modifiers = modifiers.split
238
- context.each do |key, definition|
239
- definition = [key, definition]
235
+ context.each do |definition|
240
236
  modifier = definition[0]
241
237
  if modifier != DEFAULT
242
238
  match = true
243
239
  modifier = modifier.split
244
240
  if modifier[0] == REGEX
245
241
  # if it's a regex pattern, test if it matches
246
- match = modifiers.join(' ') =~ /#{modifier[1].gsub(/\A"|"\Z/, '')}/i
242
+ match = modifiers.join(' ') =~ /#{modifiers[1].gsub(/\A"|"\Z/, '')}/i
247
243
  else
248
244
  # otherwise, if the modifier isn't in our list of modifiers, it's not valid and just move on
249
245
  modifier.each { |i| match = false if not modifiers.include?(i) }
250
246
  end
251
247
  # if it matched, process it
252
- if match
253
- tmp = resolve_dependents(id, definition[1], theme[:name], nil, out)
254
- out, tmp = post_resolve_drops(out, tmp)
255
- out = out.rmerge(tmp)
256
- end
248
+ out = out.rmerge(resolve_dependents(id, definition[1], theme[:name], nil, out.keys)) if match
257
249
  end
258
250
  end
259
251
  end
@@ -261,19 +253,15 @@ private
261
253
  # this lets us define special states and elements
262
254
  SPECIAL.each do |special_key|
263
255
  if out.is_a? Hash
264
- special = out[special_key] || Archetype::Hash.new
265
- if special == 'nil'
266
- out[special_key] = Archetype::Hash.new
267
- else
268
- tmp = Archetype::Hash.new
269
- special.each { |key, value| tmp[key] = extract_styles(key, key, true, theme[:name], special) }
270
- out[special_key] = tmp if not tmp.empty?
271
- end
256
+ special = out[special_key]
257
+ tmp = {}
258
+ (special || {}).each { |key, value| tmp[key] = extract_styles(key, key, true, theme[:name], special) }
259
+ out[special_key] = tmp if not tmp.empty?
272
260
  end
273
261
  end
274
262
  # check for nested styleguides
275
263
  styleguide = out[STYLEGUIDE]
276
- if not (styleguide.nil? or styleguide.empty?)
264
+ if styleguide and not styleguide.empty?
277
265
  styles = get_styles(styleguide, theme[:name])
278
266
  out.delete(STYLEGUIDE)
279
267
  out = styles.rmerge(out)
@@ -281,87 +269,6 @@ private
281
269
  return out
282
270
  end
283
271
 
284
- #
285
- # given two objects, resolve the chain of dropped styles
286
- # this runs after having already resolved the dropped styles and merged
287
- #
288
- # *Parameters*:
289
- # - <tt>obj</tt> {Hash} the source object
290
- # - <tt>merger</tt> {Hash} the object to be merged in
291
- # *Returns*:
292
- # - {Array.<Hash>} the resulting `obj` and `merger` objects
293
- #
294
- def post_resolve_drops(obj, merger)
295
- return [obj, merger] if obj.nil? or merger.nil?
296
- drop = merger[DROP]
297
- keys = obj.keys
298
- if not drop.nil?
299
- drop.to_a.each do |key|
300
- key = helpers.to_str(key)
301
- obj.delete(key) if not SPECIAL.include?(key)
302
- end
303
- merger.delete(DROP)
304
- else
305
- end
306
- SPECIAL.each do |special|
307
- if obj[special].is_a?(Hash) and merger[special].is_a?(Hash)
308
- obj[special], merger[special] = post_resolve_drops(obj[special], merger[special])
309
- end
310
- end
311
- return [obj, merger]
312
- end
313
-
314
- #
315
- # given two objects, resolve the chain of dropped styles
316
- #
317
- # *Parameters*:
318
- # - <tt>value</tt> {Hash} the source object
319
- # - <tt>obj</tt> {Hash} the object to be merged in
320
- # - <tt>is_special</tt> {Boolean} whether this is from a SPECIAL branch of a Hash
321
- # *Returns*:
322
- # - {Array.<Hash>} the resulting value
323
- #
324
- def resolve_drops(value, obj, is_special = false)
325
- return value if not (value.is_a?(Hash) and obj.is_a?(Hash))
326
- keys = obj.keys
327
- drop = value[DROP]
328
- if not drop.nil?
329
- tmp = Archetype::Hash.new
330
- if DROPALL.include?(helpers.to_str(drop))
331
- if not keys.nil?
332
- keys.each do |key|
333
- if SPECIAL.include?(key)
334
- if not (obj[key].nil? or obj[key].empty?)
335
- tmp[key] = Archetype::Hash.new
336
- tmp[key][DROP] = obj[key].keys
337
- end
338
- else
339
- tmp[key] = 'nil'
340
- end
341
- end
342
- end
343
- else
344
- drop.to_a.each do |key|
345
- key = helpers.to_str(key)
346
- if SPECIAL.include?(key)
347
- if not (obj[key].nil? or obj[key].empty?)
348
- tmp[key] = Archetype::Hash.new
349
- tmp[key][DROP] = obj[key].keys
350
- end
351
- else
352
- tmp[key] = 'nil'
353
- end
354
- end
355
- end
356
- value.delete(DROP) if not is_special
357
- value = tmp.rmerge(value)
358
- end
359
- value.each do |key|
360
- value[key] = resolve_drops(value[key], obj[key], key, SPECIAL.include?(key)) if not value[key].nil?
361
- end
362
- return value
363
- end
364
-
365
272
  #
366
273
  # resolve any dependent references from the component
367
274
  #
@@ -374,19 +281,33 @@ private
374
281
  # *Returns*:
375
282
  # - {Hash} a hash of the resolved styles
376
283
  #
377
- def resolve_dependents(id, value, theme = nil, context = nil, obj = nil)
284
+ def resolve_dependents(id, value, theme = nil, context = nil, keys = nil)
378
285
  # we have to create a clone here as the passed in value is volatile and we're performing destructive changes
379
286
  value = value.clone
380
287
  # check that we're dealing with a hash
381
288
  if value.is_a?(Hash)
382
289
  # check for dropped styles
383
- value = resolve_drops(value, obj)
384
-
290
+ drop = value[DROP]
291
+ if not drop.nil?
292
+ tmp = {}
293
+ if %w(all true).include?(helpers.to_str(drop)) and not keys.nil? and not keys.empty?
294
+ keys.each do |key|
295
+ tmp[key] = 'nil'
296
+ end
297
+ else
298
+ drop = drop.to_a
299
+ drop.each do |key|
300
+ tmp[helpers.to_str(key)] = 'nil'
301
+ end
302
+ end
303
+ value.delete(DROP)
304
+ value = tmp.rmerge(value)
305
+ end
385
306
  # check for inheritance
386
307
  inherit = value[INHERIT]
387
- if not (inherit.nil? or inherit.empty?)
308
+ if inherit and not inherit.empty?
388
309
  # create a temporary object and extract the nested styles
389
- tmp = Archetype::Hash.new
310
+ tmp = {}
390
311
  inherit.each { |related| tmp = tmp.rmerge(extract_styles(id, related, true, theme, context)) }
391
312
  # remove the inheritance key and update the styles
392
313
  value.delete(INHERIT)
@@ -427,8 +348,9 @@ private
427
348
  #
428
349
  def get_styles(description, theme = nil, state = 'false')
429
350
  state = helpers.to_str(state)
430
- styles = Archetype::Hash.new
431
- description.to_a.each do |sentence|
351
+ description = description.to_a
352
+ styles = {}
353
+ description.each do |sentence|
432
354
  # get the grammar from the sentence
433
355
  id, modifiers, token = grammar(sentence, theme, state)
434
356
  if id
@@ -18,11 +18,10 @@ module Archetype::SassExtensions::UI
18
18
  # - {String} the unique string
19
19
  #
20
20
  def unique(prefix = '')
21
- prefix = helpers.to_str(prefix, ' ', :quotes)
21
+ prefix = helpers.to_str(prefix).gsub(/\A"|"\Z/, '')
22
22
  prefix = '.' if prefix == 'class'
23
23
  prefix = '#' if prefix == 'id'
24
- suffix = Compass.configuration.testing ? "RANDOM_UID" : "#{Time.now.to_i}-#{rand(36**8).to_s(36)}-#{uid}"
25
- return Sass::Script::String.new("#{prefix}archetype-uid-#{suffix}")
24
+ return Sass::Script::String.new("#{prefix}archetype-uid-#{uid}")
26
25
  end
27
26
 
28
27
  #
@@ -8,7 +8,7 @@ require 'sass/version'
8
8
  #
9
9
  module Archetype::SassExtensions::Version
10
10
  # :stopdoc:
11
- COMPARATOR_PATTERN = /(\s[neqglt]+\s|[><=!]+)/
11
+ COMPARATOR_PATTERN = /([neglt]+|[><=!]+)/
12
12
  VERSION_PATTERN = /\d+(\.\d+)*(\.[x|\*])?/
13
13
  # :startdoc:
14
14
 
@@ -21,15 +21,10 @@ module Archetype::SassExtensions::Version
21
21
  # - {String|Boolean} if no test or test is just a lookup of a framework, it returns the version of that framework, otherwise it returns the result of the test
22
22
  #
23
23
  def archetype_version(test = nil)
24
- test = test.nil? ? 'archetype' : helpers.to_str(test, ' ', :quotes).downcase
25
- lib = ''
26
- if test.include?('compass')
27
- lib = Compass::VERSION
28
- elsif test.include?('sass')
29
- lib = Sass::VERSION
30
- else
31
- lib = Archetype::VERSION
32
- end
24
+ test = test.nil? ? 'archetype' : helpers.to_str(test).gsub(/\A"|"\Z/, '').downcase
25
+ lib = Archetype::VERSION
26
+ lib = Compass::VERSION if test.include?('compass')
27
+ lib = Sass::VERSION if test.include?('sass')
33
28
  # strip off any non-official versioning (e.g. pre/alpha/rc)
34
29
  lib = lib.match(VERSION_PATTERN)[0]
35
30
  result = compare_version(lib, test.match(VERSION_PATTERN), test.match(COMPARATOR_PATTERN))
@@ -60,7 +55,7 @@ private
60
55
  # check for wild cards
61
56
  wild = version.index('x')
62
57
  # check the comparison
63
- comparator = ((comparator || [])[0] || 'eq').strip
58
+ comparator = (comparator || [])[0] || 'eq'
64
59
  eq = comparator =~ /(e|=)/
65
60
  lt = comparator =~ /(l|<)/
66
61
  gt = comparator =~ /(g|>)/
@@ -10,7 +10,7 @@ module Archetype
10
10
  # Method borrowed from Compass. All credit goes to Chris Eppstein and other contributors
11
11
  # https://github.com/chriseppstein/compass/blob/stable/lib/compass/version.rb
12
12
  # \(This method swiped from Haml and then modified, some credit goes to Nathan Weizenbaum\)
13
- #
13
+ #
14
14
  # *Returns*:
15
15
  # - {String} the version of Archetype
16
16
  #
@@ -29,25 +29,18 @@ module Archetype
29
29
 
30
30
  def read_version
31
31
  require 'yaml'
32
- begin
33
- @version = YAML.load(File.read(scope('VERSION.yml')))
34
- @version[:teeny] = @version[:patch]
35
- @version[:string] = "#{@version[:major]}.#{@version[:minor]}"
36
- @version[:string] << ".#{@version[:patch]}" if @version[:patch]
37
- @version[:string] << ".#{@version[:build]}" if @version[:build]
38
- @version[:string] << ".#{@version[:state]}" if @version[:state]
39
- @version[:string] << ".#{@version[:iteration]}" if @version[:iteration]
40
- if !ENV['OFFICIAL'] && r = revision
41
- @version[:string] << ".#{r[0..6]}"
42
- @version[:rev] = r
43
- end
44
- return @version
45
- rescue
46
- # this is a hack, but I'm not fully understanding how to fix this correctly
47
- # see issue #4
48
- # if it failed, try again, for now
49
- return read_version
32
+ @version = YAML::load(File.read(scope('VERSION.yml')))
33
+ @version[:teeny] = @version[:patch]
34
+ @version[:string] = "#{@version[:major]}.#{@version[:minor]}"
35
+ @version[:string] << ".#{@version[:patch]}" if @version[:patch]
36
+ @version[:string] << ".#{@version[:build]}" if @version[:build]
37
+ @version[:string] << ".#{@version[:state]}" if @version[:state]
38
+ @version[:string] << ".#{@version[:iteration]}" if @version[:iteration]
39
+ if !ENV['OFFICIAL'] && r = revision
40
+ @version[:string] << ".#{r[0..6]}"
41
+ @version[:rev] = r
50
42
  end
43
+ @version
51
44
  end
52
45
 
53
46
  def revision
@@ -38,9 +38,6 @@ $RESET_INIT: false !default;
38
38
  // the font-face mixin will likely change in a future version, keep an eye on this
39
39
  // https://github.com/chriseppstein/compass/issues/867
40
40
  @include font-face($CONFIG_GLYPHS_NAME, $CONFIG_GLYPHS_FILES, $CONFIG_GLYPHS_EOT, $CONFIG_GLYPHS_WEIGHT, $CONFIG_GLYPHS_STYLE);
41
- // output a second @font-face set with a versioned family name
42
- // this will help avoid collisions when multi-app CSS is loaded on a single page
43
- @include font-face('#{$CONFIG_GLYPHS_NAME}-#{$CONFIG_GLYPHS_VERSION}', $CONFIG_GLYPHS_FILES, $CONFIG_GLYPHS_EOT, $CONFIG_GLYPHS_WEIGHT, $CONFIG_GLYPHS_STYLE);
44
41
  }
45
42
 
46
43
  // auto invoke base reset
@@ -40,14 +40,13 @@ $CONTENT_PLACEHOLDER: '\0020' !default;
40
40
  $CONFIG_DISABLED_CSS: () !default; // a list of CSS3 features to always disable when using output-style()
41
41
  $CONFIG_GENERATED_TAG_PREFIX: x-archetype !default; // the prefix for the tag name to create when using ie-pseudo method
42
42
  $CONFIG_GENERATED_TAG_CSS: false !default; // styles to apply to the generated tag when using ie-pseudo method (use this as a way to reset styles on these tags)
43
- $CONFIG_GENERATED_TAG_INLINE: true !default; // if `true` insert the styles inline on the generated tag, otherwise insert the styles in a unique css rule
44
43
 
45
44
  // z-layers
46
45
  $CONFIG_Z_INDEX_BASE: 0 !default; // the default starting layer for z-index calculations
47
46
  $CONFIG_Z_LAYERS_OFFSET: 100 !default; // the offset between z-layers
48
47
  $CONFIG_Z_LAYERS: (default dialog navigation) !default; // the orders for the z-layers
49
48
 
50
- // compass
49
+ // compass
51
50
  $COMPASS_RTL_SUPPORT: false !default; // does your Compass version support RTL? set to true if Compass mixins support RTL
52
51
 
53
52
  // sprites
@@ -59,7 +58,6 @@ $CONFIG_KEYFRAME_LOADERS: archetype-loader !default;
59
58
 
60
59
  // glyphs
61
60
  $CONFIG_GLYPHS_NAME: FontAwesome !default; // name for the font-face
62
- $CONFIG_GLYPHS_VERSION: '0.0.1' !default; // the glyph library version number
63
61
  $CONFIG_GLYPHS_SVG_ID: $CONFIG_GLYPHS_NAME !default;
64
62
  $CONFIG_GLYPHS_BASE_PATH: 'vendor/archetype/fontawesome-webfont' !default; // generic path to all glpyh fonts (sans extensions)
65
63
  $CONFIG_GLYPHS_EOT: '#{$CONFIG_GLYPHS_BASE_PATH}.eot' !default;
@@ -306,12 +304,12 @@ $CONFIG_BROWSER_WARN_ON_HACK: false !default;
306
304
  $CONFIG_BROWSER_VENDORS_HACK: (
307
305
  (webkit-all, safari webkit chrome),
308
306
  (gecko-all, firefox gecko mozilla),
309
- (opera-all, opera) // NOTE: this may stop working once Opera switches over to using WebKit/Blink
307
+ (opera-all, opera)
310
308
  ) !default;
311
309
 
312
310
  // os targeting
313
311
  $CONFIG_OS_VENDORS_CLASS: (
314
- (os-win, windows win winxp win7 win8),
312
+ (os-win, windows win winxp win7),
315
313
  (os-mac, apple mac osx),
316
314
  (os-linux, linux),
317
315
  (os-other, other misc unknown)
@@ -323,30 +321,21 @@ $CORE_SAFE_FONTS: (
323
321
  (sans-serif, (
324
322
  (default, (
325
323
  (default (sans-serif)),
326
- (ko_KR ('Malgun Gothic', default)),
327
- (zh_TW (SimSun, default)),
328
- (zh_CN (SimSun, default))
324
+ (ko_KR ('Malgun Gothic', default))
329
325
  )),
330
326
  (win, (
331
327
  (default (Arial, sans-serif)),
332
328
  (ja_JP (メイリオ, Meiryo, 'MS Pゴシック', 'MS PGothic', default)),
333
- (zh_TW (default, '微軟正黑體', 'Microsoft JhengHei', PMingLiu, '宋体', SimSun)),
334
- (zh_CN (default, '华文细黑', 'STHeiti Light', '微软雅黑体', 'Microsoft Yahei', '新宋体', NSimSun, '宋体', SimSun)),
335
329
  (ko_KR nil)
336
330
  )),
337
331
  (mac, (
338
332
  (default (Helvetica, Arial, sans-serif)),
339
- (zh_TW (default, '黑體-繁', 'Heiti TC', '儷黑Pro', 'LiHei Pro', PMingLiu, '宋体', SimSun)),
340
- (zh_CN (default, '黑体-简', 'Heiti SC', '华文细黑', 'STHeiti Light', '华文黑体', STHeiti)),
341
333
  (ja_JP ('Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', 'MS Pゴシック', 'MS PGothic', default)),
342
334
  (ko_KR nil)
343
335
  )),
344
336
  (linux, (
345
337
  (default (Helvetica, FreeSans, 'Liberation Sans', Helmet, Arial, sans-serif)),
346
- (zh_TW (default, PMingLiu, '宋体', SimSun)),
347
- (zh_CN (default, '新宋体', NSimSun, '宋体', SimSun)),
348
- (ja_JP nil),
349
- (ko_KR nil)
338
+ (CJK nil)
350
339
  ))
351
340
  )),
352
341
  (serif, (
@@ -366,9 +355,3 @@ $CORE_SAFE_FONTS: (
366
355
  ); // note that this declaration isn't a `default`, but rather is enforced everytime. this can be modified (via extending $CONFIG_SAFE_FONTS)
367
356
  $CONFIG_SAFE_FONTS: () !default;
368
357
  $CONFIG_SAFE_FONTS: associative-merge($CORE_SAFE_FONTS, $CONFIG_SAFE_FONTS);
369
-
370
- $archetype-glyph-selector: false !default;
371
- $archetype-pseudo-selector: false !default;
372
-
373
- $CORE_GLYPH_SELECTOR_VAR: '$archetype-glyph-selector';
374
- $CORE_GLYPH_SELECTOR_VAR: '$archetype-pseudo-selector';
@@ -34,83 +34,42 @@
34
34
  }
35
35
 
36
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
- // @content
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
42
41
  @mixin ie-pseudo-before($styles: false, $content: false, $name: '') {
43
- @if archetype-version('Sass >= 3.2') {
44
- @include ie-pseudo($styles, $content, before, $name) {
45
- @content;
46
- }
47
- }
48
- @else {
49
- @include ie-pseudo($styles, $content, before, $name);
50
- }
42
+ @include ie-pseudo($styles, $content, before, $name);
51
43
  }
52
44
 
53
45
  // proxy for ie-pseudo
54
- // @mixin ie-pseudo-after
55
- // @param $styles {String} the styles to apply to the pseudo-element
56
- // @param $content {String} the content to insert into the element (similar to css `content` attribute)
57
- // @param $name {String} the name of the element
58
- // @content
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
59
50
  @mixin ie-pseudo-after($styles: false, $content: false, $name: '') {
60
- @if archetype-version('Sass >= 3.2') {
61
- @include ie-pseudo($styles, $content, after, $name) {
62
- @content;
63
- }
64
- }
65
- @else {
66
- @include ie-pseudo($styles, $content, after, $name);
67
- }
51
+ @include ie-pseudo($styles, $content, after, $name);
68
52
  }
69
53
 
70
- // this creates a one-time executing expression that inserts an element relative to `this` element.
54
+ // this creates a one-type executing expression that inserts an element relative to `this` element.
71
55
  // this allows some level of support for :before/:after in IE6/7
72
56
  // inspired by http://nicolasgallagher.com/better-float-containment-in-ie/
73
- // @mixin ie-pseudo
74
- // @param $styles {String} the styles to apply to the pseudo-element
75
- // @param $content {String} the content to insert into the element (similar to css `content` attribute)
76
- // @param $placement {String} [before|after] simulate :before or :after behavior
77
- // @param $name {String} the name of the element
78
- // @param $uid {String} a custom, unique identifier for the generate element
79
- // @content
80
- @mixin ie-pseudo($styles: false, $content: false, $placement: before, $name: '', $uid: false) {
81
- $archetype-pseudo-selector: false;
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: '') {
82
63
  @if $legacy-support-for-ie6 or $legacy-support-for-ie7 {
83
- $uid: if($uid, $uid, unique('ie-pseudo-'));
84
- $archetype-pseudo-selector: '& ##{$uid}';
85
64
  $method: if($placement == before, insertBefore, appendChild);
86
65
  $content: if($content and $content != nil, 'this.el.innerHTML="#{-ie-pseudo-content($content)}",', '');
87
66
  @if $CONFIG_GENERATED_TAG_CSS {
88
67
  $styles: if($styles and $styles != nil, #{$CONFIG_GENERATED_TAG_CSS}#{$styles}, $CONFIG_GENERATED_TAG_CSS);
89
68
  }
90
- // if we're using inline styles...
91
- $inline: if($styles and $styles != nil and $CONFIG_GENERATED_TAG_INLINE, 'this.el.style.cssText="#{$styles}",', '');
92
- *zoom: expression(this.runtimeStyle.zoom="1", this.el=document.createElement("#{prefixed-tag($name)}"),this.el.id="#{$uid}",#{$content}#{$inline}this.#{$method}(this.el));
93
- // if we're NOT using inline styles...
94
- @if not $CONFIG_GENERATED_TAG_INLINE {
95
- // output it on the generated selector
96
- #{$archetype-pseudo-selector} {
97
- @include to-styles(-style-string-to-list(unquote($styles)));
98
- @if archetype-version('Sass >= 3.2') {
99
- @content;
100
- }
101
- }
69
+ $styles: if($styles and $styles != nil, 'this.el.style.cssText="#{$styles}",', '');
70
+ @if $name != '' {
71
+ $name: '-#{$name}';
102
72
  }
103
- }
104
- }
105
-
106
- // a hack that allows elements with transparent backgrounds to be focusable in IE
107
- // @mixin transparent-focusable
108
- // @param $url {String} an optional URL to point to an image (not required)
109
- // @param $data {String} an optional data URI for a transparent image (not required)
110
- @mixin transparent-focusable($url: url(https://), $data: 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7') {
111
- $bg: (transparent);
112
- background: append($bg, $data);
113
- @if $url {
114
- @include target-browser(ie lte 7, background, append($bg, $url));
73
+ *zoom: expression(this.runtimeStyle.zoom="1", this.el=document.createElement("#{$CONFIG_GENERATED_TAG_PREFIX}#{$name}"),#{$content}#{$styles}this.#{$method}(this.el));
115
74
  }
116
75
  }