livingstyleguide 2.0.0.alpha.8 → 2.0.0.alpha.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5e3b015481d2b291fe4ba908445a84a459d76419
4
- data.tar.gz: 116a75025030319420a75c8fa6a74110a81252fa
3
+ metadata.gz: e03cd21e33364ddfbf67d1a6d9f9c76e07d44ba2
4
+ data.tar.gz: 7f1ebb09b674d7846a915b3fb8547c9e191e62eb
5
5
  SHA512:
6
- metadata.gz: 1eaa5240a3bf3afb259c544b76207a060ae9fcadb0da48edeb52af8d31d314a036741e59043fb1a78fa7628866a951d1e0fd2a17ec918cf058d50824592a5956
7
- data.tar.gz: 7d06db6a008fea6c480440f241c9497baadf0a3fab357cacaf06f62c8048f410a1aacded48de4e300c1c09c36a05654e532e8a4c0955f4dbfbaca6b059f6b3e3
6
+ metadata.gz: 532de7e59bd8e913945e6983bf635533f662c9cc702ce1b086dccc2a33dbd64aa4e0359520272cbc5afde6e64e304aaa698ac2ebb3dc0aa742377653cd19c9a3
7
+ data.tar.gz: 68cad8cb19c4cc277794f312fac26d010bd3018a239f8610c06cf18a363859574fe31014b05f8e00ba9a549285daec12453a78e342542372ae53726871758f35
@@ -65,7 +65,7 @@
65
65
  }
66
66
 
67
67
  document.addEventListener('DOMContentLoaded', function() {
68
- var switches = document.getElementsByClassName('livingstyleguide--code-switch');
68
+ var switches = document.getElementsByClassName('lsg--code-switch');
69
69
  for (var i = 0; i < switches.length; i++) {
70
70
  switches[i].addEventListener('click', toggleCode);
71
71
  }
@@ -3,6 +3,7 @@
3
3
  require 'tilt'
4
4
  require 'erb'
5
5
  require 'digest'
6
+ require 'pathname'
6
7
 
7
8
  class LivingStyleGuide::Document < ::Tilt::Template
8
9
  attr_accessor :source, :type, :filters, :template, :classes, :html
@@ -63,7 +64,7 @@ class LivingStyleGuide::Document < ::Tilt::Template
63
64
 
64
65
  def path
65
66
  if file
66
- File.dirname(file)
67
+ Pathname.new(File.dirname(file)).cleanpath.to_s
67
68
  elsif options.has_key?(:livingstyleguide)
68
69
  options[:livingstyleguide].path
69
70
  else
@@ -86,8 +87,8 @@ class LivingStyleGuide::Document < ::Tilt::Template
86
87
  result = ERB.new(erb).result(@filters.get_binding)
87
88
  @source = result
88
89
  @html = render_html(result, locals)
89
- @classes.unshift "livingstyleguide--#{@type}-example"
90
- @classes.unshift "livingstyleguide--example"
90
+ @classes.unshift "lsg--#{@type}-example"
91
+ @classes.unshift "lsg--example"
91
92
  ERB.new(template_erb).result(binding).gsub(/\n\n+/, "\n")
92
93
  end
93
94
 
@@ -154,7 +155,7 @@ class LivingStyleGuide::Document < ::Tilt::Template
154
155
  code_with_highlights << %Q(</strong>)
155
156
  inside_highlight = false
156
157
  else
157
- code_with_highlights << %Q(<strong class="livingstyleguide--code-highlight">)
158
+ code_with_highlights << %Q(<strong class="lsg--code-highlight">)
158
159
  inside_highlight = true
159
160
  end
160
161
  next_position = positions.shift
@@ -243,7 +244,8 @@ class LivingStyleGuide::Document < ::Tilt::Template
243
244
  private
244
245
  def generate_id
245
246
  if @file
246
- @file.sub('/_', '/').gsub(/\.\w+/, '')
247
+ id = Pathname.new(@file).cleanpath.to_s
248
+ id.sub('/_', '/').gsub(/\.\w+/, '')
247
249
  else
248
250
  "section-#{Digest::SHA256.hexdigest(data)[0...6]}"
249
251
  end
@@ -108,7 +108,7 @@ module LivingStyleGuide
108
108
  def style_variables
109
109
  return unless @options.has_key?(:style)
110
110
  @options[:style].map do |key, value|
111
- "$livingstyleguide--#{key}: #{value}"
111
+ "$lsg--#{key}: #{value}"
112
112
  end
113
113
  end
114
114
 
@@ -2,10 +2,13 @@ LivingStyleGuide.add_filter :colors do |arguments, options, content|
2
2
  colors = content.split(/\n+/).map{ |l| l.strip.split(/\s+/) }
3
3
  columns = colors.map{ |l| l.size }.max
4
4
  colors = colors.flatten
5
+
6
+ document.head << ERB.new(File.read("#{File.dirname(__FILE__)}/../templates/colors-example.html.erb")).result
7
+
5
8
  document.scss << <<-SCSS
6
- $livingstyleguide--variables: () !default;
7
- $livingstyleguide--variables: join(
8
- $livingstyleguide--variables, (#{
9
+ $lsg--variables: () !default;
10
+ $lsg--variables: join(
11
+ $lsg--variables, (#{
9
12
  colors.reject{ |c| c == '-' }.map do |variable|
10
13
  %Q("#{variable}": #{variable})
11
14
  end.join(', ')
@@ -16,7 +19,7 @@ LivingStyleGuide.add_filter :colors do |arguments, options, content|
16
19
  if variable == '-'
17
20
  css_class = '-lsg-empty'
18
21
  end
19
- %Q(<li class="livingstyleguide--color-swatch #{css_class || variable}">#{variable}</li>\n)
20
- end.join("\n")
21
- %(<ul class="livingstyleguide--color-swatches -lsg-#{columns}-columns">\n#{colors_html}\n</ul>\n)
22
- end
22
+ %Q(<li class="lsg--color-swatch #{css_class || variable}"><span>#{variable}</span></li>\n)
23
+ end.join("\n")
24
+ %(<ul class="lsg--color-swatches -lsg-#{columns}-columns">\n#{colors_html}\n</ul>\n)
25
+ end
@@ -1,16 +1,19 @@
1
- LivingStyleGuide.add_filter :css, :scss do |arguments, options, source|
1
+ LivingStyleGuide.add_filter :css do |arguments, options, css|
2
2
  file = arguments.first
3
- if file =~ /\.(css|scss|sass)$/
3
+ if file =~ /\.css$/
4
4
  if document.file
5
5
  file = File.join(File.dirname(document.file), file)
6
6
  end
7
7
  document.depend_on file
8
8
  document.scss << %Q(@import "#{file}";\n)
9
9
  else
10
- if options[:preprocessor] == "sass"
11
- source = Sass::Engine.new(source).to_tree.to_scss
10
+ scope = "#" + document.id.gsub(/[\/\.]/, '\\\0')
11
+ scoped_css = css.gsub(/(?<=\}|\A|;)[^@\};]+?(?=\{)/) do |selector|
12
+ selector.split(",").map do |single_selector|
13
+ "#{scope} #{single_selector}"
14
+ end.join(",")
12
15
  end
13
- document.scss << "##{document.id.gsub('/', '\\/')} {\n#{source}\n}\n"
16
+ document.scss << scoped_css
14
17
  end
15
18
  nil
16
19
  end
@@ -1,13 +1,5 @@
1
- require 'json'
2
- require 'yaml'
3
-
4
1
  LivingStyleGuide.add_filter :data do |arguments, options, data|
5
- if options[:format] == "yaml"
6
- data = Psych.load(data)
7
- else
8
- data = "{#{data}}" unless data.strip =~ /^[\[\{]/
9
- data = JSON.parse(data)
10
- end
2
+ data = LivingStyleGuide.parse_data(data)
11
3
  if data.is_a?(Array)
12
4
  document.locals = [] unless document.locals.is_a?(Array)
13
5
  document.locals.push(*data)
@@ -17,10 +17,7 @@ LivingStyleGuide.add_filter :import do |arguments, options, data|
17
17
  raise "Error: Please use `@css #{glob}` instead of `@import #{glob}` for importing Sass."
18
18
  end
19
19
 
20
- if data
21
- Kernel.require 'json'
22
- data = JSON.parse("{#{data}}")
23
- end
20
+ data = LivingStyleGuide.parse_data(data)
24
21
 
25
22
  map_files glob do |file|
26
23
  html = ::Tilt.new(file, livingstyleguide: document).render(document.scope, data)
@@ -0,0 +1,28 @@
1
+ LivingStyleGuide.add_filter :scss do |arguments, options, scss|
2
+ file = arguments.first
3
+ if file
4
+ if document.file
5
+ file = File.join(File.dirname(document.file), file)
6
+ end
7
+ document.depend_on file
8
+ document.scss << %Q(@import "#{file}";\n)
9
+ else
10
+ document.scss << "##{document.id.gsub(/[\/\.]/, '\\\0')} {\n#{scss}\n}\n"
11
+ end
12
+ nil
13
+ end
14
+
15
+ LivingStyleGuide.add_filter :sass do |arguments, options, sass|
16
+ file = arguments.first
17
+ if file
18
+ if document.file
19
+ file = File.join(File.dirname(document.file), file)
20
+ end
21
+ document.depend_on file
22
+ document.scss << %Q(@import "#{file}";\n)
23
+ else
24
+ scss = Sass::Engine.new(sass).to_tree.to_scss
25
+ document.scss << "##{document.id.gsub(/[\/\.]/, '\\\0')} {\n#{scss}\n}\n"
26
+ end
27
+ nil
28
+ end
@@ -1,7 +1,7 @@
1
1
  LivingStyleGuide.add_filter :style do |arguments, options, block|
2
2
  options.delete :block_type
3
3
  options.each do |key, value|
4
- document.scss << %Q($livingstyleguide--#{key.to_s.gsub("_", "-")}: #{value};\n)
4
+ document.scss << %Q($lsg--#{key.to_s.gsub("_", "-")}: #{value};\n)
5
5
  end
6
6
  nil
7
7
  end
@@ -30,6 +30,7 @@ require 'livingstyleguide/filters/add_wrapper_class'
30
30
  require 'livingstyleguide/filters/font_example'
31
31
  require 'livingstyleguide/filters/colors'
32
32
  require 'livingstyleguide/filters/css'
33
+ require 'livingstyleguide/filters/sass'
33
34
  require 'livingstyleguide/filters/style'
34
35
  require 'livingstyleguide/filters/data'
35
36
  require 'livingstyleguide/filters/layout'
@@ -14,19 +14,20 @@ module LivingStyleGuide
14
14
  }
15
15
 
16
16
  class RedcarpetHTML < ::Redcarpet::Render::HTML
17
-
18
17
  def initialize(options = {}, document)
19
18
  @options = options
20
- @options[:prefix] ||= 'livingstyleguide--'
19
+ @options[:prefix] ||= 'lsg--'
21
20
  @document = document
21
+ @header = nil
22
+ @ids = {}
22
23
  super @options
23
24
  end
24
25
 
25
26
  def header(text, header_level)
26
- id = slug(text)
27
+ @header = id = slug(text)
27
28
  klass = %w(page-title headline sub-headline sub-sub-headline)[header_level]
28
29
  header_level += 1
29
- %Q(<h#{header_level} class="#{@options[:prefix]}#{klass}" id="#{id}"><a class="livingstyleguide--anchor" href="##{id}"></a>#{text}</h#{header_level}>\n)
30
+ %Q(<h#{header_level} class="#{@options[:prefix]}#{klass}" id="#{id}"><a class="lsg--anchor" href="##{id}"></a>#{text}</h#{header_level}>\n)
30
31
  end
31
32
 
32
33
  def paragraph(text)
@@ -46,6 +47,7 @@ module LivingStyleGuide
46
47
  language = language.to_s.strip.to_sym
47
48
  language = @options[:default_language] if language == :''
48
49
  document = Document.new(livingstyleguide: @document) { code }
50
+ document.id = document_id
49
51
  document.type = language == :example ? :html : language
50
52
  document.template = template_for(language)
51
53
  document.render(@document.scope)
@@ -64,6 +66,17 @@ module LivingStyleGuide
64
66
  text.downcase.gsub(/[ _\.\-!\?\(\)\[\]]+/, '-').gsub(/^-|-$/, '')
65
67
  end
66
68
 
69
+ private
70
+ def document_id
71
+ file = File.basename(@document.file, ".lsg").sub(/^_/, "") if @document.file
72
+ id = [file, @header].compact.uniq.join("-")
73
+ if id != ""
74
+ @ids[id] ||= 0
75
+ @ids[id] += 1
76
+ [id, @ids[id]].join("-")
77
+ end
78
+ end
79
+
67
80
  private
68
81
  def template_for(language)
69
82
  language == :example ? :example : :code
@@ -1,3 +1,3 @@
1
1
  <section class="<%= classes.join(' ') %>" id="<%= id %>">
2
- <pre class="livingstyleguide--code-block"><code class="livingstyleguide--code"><%= highlighted_source %></code></pre>
2
+ <pre class="lsg--code-block"><code class="lsg--code"><%= highlighted_source %></code></pre>
3
3
  </section>
@@ -0,0 +1,64 @@
1
+ <script>
2
+ document.addEventListener('DOMContentLoaded', function() {
3
+ if (testCopy()) {
4
+ var colorSwatches = document.getElementsByClassName('lsg--color-swatch');
5
+ for (var i = 0; i < colorSwatches.length; i++) {
6
+
7
+ if (!colorSwatches[i].classList.contains('-lsg-empty')) {
8
+ colorSwatches[i].appendChild(createSpan());
9
+ colorSwatches[i].addEventListener('click', function(event) {
10
+ if (event.altKey) {
11
+ var copyHexColors = window.getComputedStyle(this, ':after').getPropertyValue('content');
12
+ copyHexColors = copyHexColors.replace(/'/g, "");
13
+ selectElementRange(createDiv(copyHexColors));
14
+ }
15
+ else {
16
+ selectElementRange(this.children[0]);
17
+ }
18
+ });
19
+ }
20
+ }
21
+ }
22
+ });
23
+
24
+ function createDiv(copyHexColors) {
25
+ var divCopy = document.createElement('div');
26
+ divCopy.className = '-lsg-remove';
27
+ divCopy.setAttribute('style', 'opacity:0; position: absolute; top: -10000px');
28
+ divCopy.appendChild(document.createTextNode(copyHexColors));
29
+ document.body.appendChild(divCopy);
30
+ return divCopy
31
+ }
32
+
33
+ function createSpan() {
34
+ var spanHover = document.createElement('span');
35
+ spanHover.className = 'lsg--copy-color';
36
+ spanHover.appendChild(document.createTextNode("Click to copy variable\nAlt + click to copy HEX code"));
37
+ return spanHover
38
+ }
39
+
40
+ function selectElementRange(copyElementSelect) {
41
+ var range = document.createRange();
42
+ range.selectNode(copyElementSelect);
43
+ window.getSelection().removeAllRanges();
44
+ window.getSelection().addRange(range);
45
+
46
+ document.execCommand('copy');
47
+
48
+ if (copyElementSelect.classList.contains('-lsg-remove')) {
49
+ document.body.removeChild(copyElementSelect);
50
+ }
51
+
52
+ window.getSelection().removeAllRanges();
53
+ }
54
+
55
+ function testCopy() {
56
+ try {
57
+ document.execCommand('copy');
58
+ return true;
59
+ }
60
+ catch(err) {
61
+ return false;
62
+ }
63
+ }
64
+ </script>
@@ -1,6 +1,6 @@
1
1
  <section class="<%= classes.join(' ') %>" id="<%= id %>">
2
- <div class="livingstyleguide--html">
2
+ <div class="lsg--html">
3
3
  <%= html %>
4
4
  </div>
5
- <pre class="livingstyleguide--code-block"><code class="livingstyleguide--code"><%= highlighted_source %></code></pre>
5
+ <pre class="lsg--code-block"><code class="lsg--code"><%= highlighted_source %></code></pre>
6
6
  </section>
@@ -1,3 +1,3 @@
1
- <div class="livingstyleguide--font-example" style="font: <%= font %>">
1
+ <div class="lsg--font-example" style="font: <%= font %>">
2
2
  <%= text %>
3
3
  </div>
@@ -1,4 +1,4 @@
1
1
  <section class="<%= classes.join(' ') %>" id="<%= id %>">
2
2
  <script><%= html %></script>
3
- <pre class="livingstyleguide--code-block"><code class="livingstyleguide--code"><%= highlighted_source %></code></pre>
3
+ <pre class="lsg--code-block"><code class="lsg--code"><%= highlighted_source %></code></pre>
4
4
  </section>
@@ -18,7 +18,7 @@ for(var e,l='article aside footer header nav section time picture'.split(' ');e=
18
18
 
19
19
  <body class="livingstyleguide">
20
20
  <%= header %>
21
- <div class="livingstyleguide--container">
21
+ <div class="lsg--container">
22
22
  <%= html %>
23
23
  </div>
24
24
  <%= footer %>
@@ -1,3 +1,3 @@
1
1
  module LivingStyleGuide
2
- VERSION = '2.0.0.alpha.8'
2
+ VERSION = '2.0.0.alpha.9'
3
3
  end
@@ -1,6 +1,8 @@
1
1
  Encoding.default_external = Encoding::UTF_8
2
2
  Encoding.default_internal = Encoding::UTF_8
3
3
 
4
+ require "yaml"
5
+
4
6
  begin
5
7
  require 'compass'
6
8
  rescue LoadError
@@ -10,8 +12,8 @@ module LivingStyleGuide
10
12
  @@default_options = {
11
13
  default_language: :example,
12
14
  title: 'Living Style Guide',
13
- header: '<h1 class="livingstyleguide--page-title">Living Style Guide</h1>',
14
- footer: '<div class="livingstyleguide--footer"><a class="livingstyleguide--logo" href="http://livingstyleguide.org">Made with the LivingStyleGuide gem.</a></div>',
15
+ header: '<h1 class="lsg--page-title">Living Style Guide</h1>',
16
+ footer: '<div class="lsg--footer"><a class="lsg--logo" href="http://livingstyleguide.org">Made with the LivingStyleGuide gem.</a></div>',
15
17
  root: '/'
16
18
  }
17
19
 
@@ -22,6 +24,16 @@ module LivingStyleGuide
22
24
  def self.add_filter(*keys, &block)
23
25
  Filters.add_filter(*keys, &block)
24
26
  end
27
+
28
+ def self.parse_data(data)
29
+ if data
30
+ if Psych.respond_to?(:safe_load)
31
+ Psych.safe_load(data)
32
+ else
33
+ Psych.load(data)
34
+ end
35
+ end
36
+ end
25
37
  end
26
38
 
27
39
  require 'livingstyleguide/version'
@@ -1,52 +1,52 @@
1
1
  //// INTEGRATION ////
2
2
 
3
- $livingstyleguide--layout-selector: body !default;
3
+ $lsg--layout-selector: body !default;
4
4
 
5
5
  //// TYPOGRAPHY ////
6
6
 
7
- $livingstyleguide--base-font: 'Georgia', 'Times New Roman', serif !default;
8
- $livingstyleguide--base-font-size: 14px !default;
9
- $livingstyleguide--base-font-weight: normal !default;
10
- $livingstyleguide--base-line-height: 1.4 !default;
11
- $livingstyleguide--base-text-align: left !default;
12
- $livingstyleguide--page-title-font-size: 30px !default;
13
- $livingstyleguide--headline-font: $livingstyleguide--base-font !default;
14
- $livingstyleguide--headline-font-size: 22px !default;
15
- $livingstyleguide--headline-text-align: left !default;
16
- $livingstyleguide--sub-headline-font-size: 16px !default;
17
- $livingstyleguide--sub-sub-headline-font-size: $livingstyleguide--base-font-size !default;
18
- $livingstyleguide--headline-font-weight: bold !default;
19
- $livingstyleguide--headline-line-height: 1.1 !default;
20
- $livingstyleguide--code-font: Courier, "Courier New", monospace !default;
21
- $livingstyleguide--code-font-size: 12px !default;
22
- $livingstyleguide--code-font-weight: normal !default;
23
- $livingstyleguide--code-line-height: 1.5 !default;
7
+ $lsg--base-font: 'Georgia', 'Times New Roman', serif !default;
8
+ $lsg--base-font-size: 14px !default;
9
+ $lsg--base-font-weight: normal !default;
10
+ $lsg--base-line-height: 1.4 !default;
11
+ $lsg--base-text-align: left !default;
12
+ $lsg--page-title-font-size: 30px !default;
13
+ $lsg--headline-font: $lsg--base-font !default;
14
+ $lsg--headline-font-size: 22px !default;
15
+ $lsg--headline-text-align: left !default;
16
+ $lsg--sub-headline-font-size: 16px !default;
17
+ $lsg--sub-sub-headline-font-size: $lsg--base-font-size !default;
18
+ $lsg--headline-font-weight: bold !default;
19
+ $lsg--headline-line-height: 1.1 !default;
20
+ $lsg--code-font: Courier, "Courier New", monospace !default;
21
+ $lsg--code-font-size: 12px !default;
22
+ $lsg--code-font-weight: normal !default;
23
+ $lsg--code-line-height: 1.5 !default;
24
24
 
25
25
  //// STYLING ////
26
26
 
27
- $livingstyleguide--background-color: #f7f7f7 !default;
28
- $livingstyleguide--border-width: 1px !default;
29
- $livingstyleguide--border-color: silver !default;
30
- $livingstyleguide--border-radius: 0 !default;
31
- $livingstyleguide--color: #505050 !default;
32
- $livingstyleguide--width: 640px !default;
33
- $livingstyleguide--gap-width: 10px !default;
34
- $livingstyleguide--full-width-padding: $livingstyleguide--gap-width !default;
35
-
36
- $livingstyleguide--code-background-color: #dddddd !default;
37
- $livingstyleguide--code-color: #505050 !default;
38
- $livingstyleguide--code-border-width: $livingstyleguide--border-width !default;
39
- $livingstyleguide--code-border-color: $livingstyleguide--border-color !default;
40
- $livingstyleguide--code-border-radius: $livingstyleguide--border-radius !default;
41
-
42
- $livingstyleguide--color-swatch-color: black !default;
43
- $livingstyleguide--color-swatch-border-width: 4px !default;
44
- $livingstyleguide--color-swatch-border-color: rgba(black, 0.05) !default;
45
- $livingstyleguide--color-swatch-border-radius: 50% !default;
46
- $livingstyleguide--color-swatches-per-line: 2 !default;
47
-
48
- $livingstyleguide--highlight-color: #f6ffa3 !default;
49
- $livingstyleguide--highlight-border-radius: 2px;
27
+ $lsg--background-color: #f7f7f7 !default;
28
+ $lsg--border-width: 1px !default;
29
+ $lsg--border-color: silver !default;
30
+ $lsg--border-radius: 0 !default;
31
+ $lsg--color: #505050 !default;
32
+ $lsg--width: 640px !default;
33
+ $lsg--gap-width: 10px !default;
34
+ $lsg--full-width-padding: $lsg--gap-width !default;
35
+
36
+ $lsg--code-background-color: #dddddd !default;
37
+ $lsg--code-color: #505050 !default;
38
+ $lsg--code-border-width: $lsg--border-width !default;
39
+ $lsg--code-border-color: $lsg--border-color !default;
40
+ $lsg--code-border-radius: $lsg--border-radius !default;
41
+
42
+ $lsg--color-swatch-color: black !default;
43
+ $lsg--color-swatch-border-width: 4px !default;
44
+ $lsg--color-swatch-border-color: rgba(black, 0.05) !default;
45
+ $lsg--color-swatch-border-radius: 50% !default;
46
+ $lsg--color-swatches-per-line: 2 !default;
47
+
48
+ $lsg--highlight-color: #f6ffa3 !default;
49
+ $lsg--highlight-border-radius: 2px;
50
50
 
51
51
  //// IMPORTS ////
52
52
 
@@ -1,23 +1,23 @@
1
- .livingstyleguide--code {
2
- @extend %livingstyleguide--reset;
1
+ .lsg--code {
2
+ @extend %lsg--reset;
3
3
  }
4
4
 
5
- .livingstyleguide--code-span,
6
- .livingstyleguide--code-block {
7
- @extend %livingstyleguide--reset;
8
- background: $livingstyleguide--code-background-color;
9
- border-radius: $livingstyleguide--code-border-radius;
10
- color: $livingstyleguide--code-color;
5
+ .lsg--code-span,
6
+ .lsg--code-block {
7
+ @extend %lsg--reset;
8
+ background: $lsg--code-background-color;
9
+ border-radius: $lsg--code-border-radius;
10
+ color: $lsg--code-color;
11
11
  display: inline;
12
- font-family: $livingstyleguide--code-font;
13
- font-size: $livingstyleguide--code-font-size;
14
- font-weight: $livingstyleguide--code-font-weight;
12
+ font-family: $lsg--code-font;
13
+ font-size: $lsg--code-font-size;
14
+ font-weight: $lsg--code-font-weight;
15
15
  overflow: scroll;
16
16
  padding: 0 3px;
17
17
  -webkit-font-smoothing: subpixel-antialiased;
18
18
 
19
19
  kbd {
20
- @extend %livingstyleguide--reset;
20
+ @extend %lsg--reset;
21
21
  display: block;
22
22
  font-weight: bold;
23
23
 
@@ -27,8 +27,8 @@
27
27
  }
28
28
 
29
29
  em {
30
- @extend %livingstyleguide--reset;
31
- color: lighten($livingstyleguide--code-color, 10%);
30
+ @extend %lsg--reset;
31
+ color: lighten($lsg--code-color, 10%);
32
32
  display: inline;
33
33
  font-style: normal;
34
34
  font-weight: bold;
@@ -37,23 +37,23 @@
37
37
  }
38
38
 
39
39
  b {
40
- @extend %livingstyleguide--reset;
41
- color: lighten($livingstyleguide--code-color, 20%);
40
+ @extend %lsg--reset;
41
+ color: lighten($lsg--code-color, 20%);
42
42
  display: inline;
43
43
  font-weight: bold;
44
44
  vertical-align: baseline;
45
45
  }
46
46
 
47
47
  i {
48
- @extend %livingstyleguide--reset;
49
- color: lighten($livingstyleguide--code-color, 30%);
48
+ @extend %lsg--reset;
49
+ color: lighten($lsg--code-color, 30%);
50
50
  display: inline;
51
51
  vertical-align: baseline;
52
52
  }
53
53
 
54
54
  q {
55
- @extend %livingstyleguide--reset;
56
- color: lighten($livingstyleguide--code-color, 30%);
55
+ @extend %lsg--reset;
56
+ color: lighten($lsg--code-color, 30%);
57
57
  display: inline;
58
58
  vertical-align: baseline;
59
59
 
@@ -64,61 +64,61 @@
64
64
  }
65
65
 
66
66
  var {
67
- @extend %livingstyleguide--reset;
67
+ @extend %lsg--reset;
68
68
  display: inline;
69
69
  text-decoration: underline;
70
70
  vertical-align: baseline;
71
71
  }
72
72
  }
73
73
 
74
- .livingstyleguide--code-block {
74
+ .lsg--code-block {
75
75
  display: block;//none;
76
- line-height: $livingstyleguide--code-line-height;
77
- padding: 3px $livingstyleguide--gap-width;
78
- width: $livingstyleguide--width;
76
+ line-height: $lsg--code-line-height;
77
+ padding: 3px $lsg--gap-width;
78
+ width: $lsg--width;
79
79
 
80
80
  .show-code & {
81
81
  display: block;
82
82
  }
83
83
  }
84
84
 
85
- .livingstyleguide--example + .livingstyleguide--code-block {
85
+ .lsg--example + .lsg--code-block {
86
86
  border-top-left-radius: 0;
87
87
  border-top-right-radius: 0;
88
88
  margin-top: 0;
89
89
  }
90
90
 
91
- .livingstyleguide--layout-example + .livingstyleguide--code-block {
92
- background: $livingstyleguide--code-background-color;
91
+ .lsg--layout-example + .lsg--code-block {
92
+ background: $lsg--code-background-color;
93
93
  border-radius: 0;
94
- margin: 0 0 $livingstyleguide--gap-width;
95
- padding: $livingstyleguide--gap-width 0;
94
+ margin: 0 0 $lsg--gap-width;
95
+ padding: $lsg--gap-width 0;
96
96
  width: 100%;
97
97
 
98
- .livingstyleguide--code {
98
+ .lsg--code {
99
99
  display: block;
100
100
  margin: auto;
101
- width: $livingstyleguide--width;
101
+ width: $lsg--width;
102
102
  }
103
103
  }
104
104
 
105
- .livingstyleguide--font-example {
106
- @extend .livingstyleguide--example;
105
+ .lsg--font-example {
106
+ @extend .lsg--example;
107
107
  }
108
108
 
109
- .livingstyleguide--code-highlight {
110
- @extend %livingstyleguide--reset;
111
- background-color: $livingstyleguide--highlight-color;
112
- border-radius: $livingstyleguide--highlight-border-radius;
109
+ .lsg--code-highlight {
110
+ @extend %lsg--reset;
111
+ background-color: $lsg--highlight-color;
112
+ border-radius: $lsg--highlight-border-radius;
113
113
  display: inline;
114
114
  font-style: inherit;
115
115
  font-weight: inherit;
116
116
  vertical-align: baseline;
117
117
  }
118
118
 
119
- .livingstyleguide--code-highlight-block {
120
- @extend %livingstyleguide--reset;
121
- @extend .livingstyleguide--code-highlight;
119
+ .lsg--code-highlight-block {
120
+ @extend %lsg--reset;
121
+ @extend .lsg--code-highlight;
122
122
  display: block;
123
123
  }
124
124
 
@@ -1,22 +1,22 @@
1
- .livingstyleguide--color-swatch {
2
- @extend %livingstyleguide--reset;
3
- color: $livingstyleguide--color-swatch-color;
1
+ .lsg--color-swatch {
2
+ @extend %lsg--reset;
3
+ color: $lsg--color-swatch-color;
4
4
  float: left;
5
- font-family: $livingstyleguide--code-font;
6
- font-size: $livingstyleguide--code-font-size;
5
+ font-family: $lsg--code-font;
6
+ font-size: $lsg--code-font-size;
7
7
  font-weight: bold;
8
- height: 4em * $livingstyleguide--base-line-height;
9
- line-height: 1em * $livingstyleguide--base-line-height;
8
+ height: 4em * $lsg--base-line-height;
9
+ line-height: 1em * $lsg--base-line-height;
10
10
  list-style: none;
11
- margin: 0 $livingstyleguide--gap-width $livingstyleguide--gap-width 0;
11
+ margin: 0 $lsg--gap-width $lsg--gap-width 0;
12
12
  position: relative;
13
13
  text-align: center;
14
14
  z-index: 1;
15
15
 
16
16
  &:before {
17
- @extend %livingstyleguide--reset;
18
- border: $livingstyleguide--color-swatch-border-width $livingstyleguide--color-swatch-border-color solid;
19
- border-radius: $livingstyleguide--color-swatch-border-radius;
17
+ @extend %lsg--reset;
18
+ border: $lsg--color-swatch-border-width $lsg--color-swatch-border-color solid;
19
+ border-radius: $lsg--color-swatch-border-radius;
20
20
  content: "";
21
21
  height: 100%;
22
22
  left: 0;
@@ -26,31 +26,58 @@
26
26
  z-index: -1;
27
27
  }
28
28
 
29
+ &:hover:before {
30
+ color: black;
31
+ cursor: pointer;
32
+ }
33
+
29
34
  &:after {
35
+ cursor: pointer;
30
36
  display: block;
31
37
  font-weight: normal;
32
38
  text-align: center;
33
39
  }
34
40
  }
35
41
 
36
- .livingstyleguide--color-swatches {
37
- @extend %livingstyleguide--reset;
38
- margin: $livingstyleguide--gap-width auto (-$livingstyleguide--gap-width) auto;
42
+ .lsg--copy-color {
43
+ background: $lsg--background-color;
44
+ border-radius: $lsg--border-radius;
45
+ color: $lsg--color;
46
+ cursor: pointer;
47
+ font-family: $lsg--base-font;
48
+ font-size: 0.8em;
49
+ left: 0;
50
+ line-height: 1.2em;
51
+ padding: 3px 0 3px 0;
52
+ position: absolute;
53
+ visibility: hidden;
54
+ white-space: pre-wrap;
55
+ width: 100%;
56
+ z-index: 1;
57
+
58
+ .lsg--color-swatch:hover & {
59
+ visibility: visible;
60
+ }
61
+ }
62
+
63
+ .lsg--color-swatches {
64
+ @extend %lsg--reset;
65
+ margin: $lsg--gap-width auto (-$lsg--gap-width) auto;
39
66
  overflow: hidden;
40
- padding-left: $livingstyleguide--gap-width;
41
- width: $livingstyleguide--width + 2 * $livingstyleguide--gap-width;
67
+ padding-left: $lsg--gap-width;
68
+ width: $lsg--width + 2 * $lsg--gap-width;
42
69
  }
43
70
 
44
71
  @for $i from 1 through 12 {
45
- .livingstyleguide--color-swatches.-lsg-#{$i}-columns .livingstyleguide--color-swatch {
46
- $size: floor(($livingstyleguide--width - ($i - 1) * $livingstyleguide--gap-width) / $i);
72
+ .lsg--color-swatches.-lsg-#{$i}-columns .lsg--color-swatch {
73
+ $size: floor(($lsg--width - ($i - 1) * $lsg--gap-width) / $i);
47
74
  height: $size;
48
75
  padding-top: $size / 2 + ($size / 5 - 20px);
49
76
  width: $size;
50
77
  }
51
78
  }
52
79
 
53
- .livingstyleguide--color-swatch.-lsg-empty {
80
+ .lsg--color-swatch.-lsg-empty {
54
81
  overflow: hidden;
55
82
  text-align: left;
56
83
  text-indent: -119988px;
@@ -60,4 +87,3 @@
60
87
  display: none;
61
88
  }
62
89
  }
63
-
@@ -1,46 +1,46 @@
1
- .livingstyleguide--paragraph,
2
- .livingstyleguide--code-block,
3
- .livingstyleguide--unordered-list,
4
- .livingstyleguide--ordered-list {
5
- @extend %livingstyleguide--reset;
6
- color: $livingstyleguide--color;
7
- font-family: $livingstyleguide--base-font;
8
- font-size: $livingstyleguide--base-font-size;
9
- font-weight: $livingstyleguide--base-font-weight;
10
- line-height: $livingstyleguide--base-line-height;
11
- margin: $livingstyleguide--gap-width auto;
12
- text-align: $livingstyleguide--base-text-align;
13
- width: $livingstyleguide--width;
1
+ .lsg--paragraph,
2
+ .lsg--code-block,
3
+ .lsg--unordered-list,
4
+ .lsg--ordered-list {
5
+ @extend %lsg--reset;
6
+ color: $lsg--color;
7
+ font-family: $lsg--base-font;
8
+ font-size: $lsg--base-font-size;
9
+ font-weight: $lsg--base-font-weight;
10
+ line-height: $lsg--base-line-height;
11
+ margin: $lsg--gap-width auto;
12
+ text-align: $lsg--base-text-align;
13
+ width: $lsg--width;
14
14
  -webkit-font-smoothing: antialiased;
15
15
  }
16
16
 
17
- .livingstyleguide--unordered-list-item,
18
- .livingstyleguide--ordered-list-item {
19
- @extend %livingstyleguide--reset;
17
+ .lsg--unordered-list-item,
18
+ .lsg--ordered-list-item {
19
+ @extend %lsg--reset;
20
20
  display: list-item;
21
21
  list-style: disc;
22
- margin: ceil($livingstyleguide--gap-width / 2) 0 ceil($livingstyleguide--gap-width / 2) (2 * $livingstyleguide--gap-width);
22
+ margin: ceil($lsg--gap-width / 2) 0 ceil($lsg--gap-width / 2) (2 * $lsg--gap-width);
23
23
  }
24
24
 
25
- .livingstyleguide--page-title,
26
- .livingstyleguide--headline,
27
- .livingstyleguide--sub-headline,
28
- .livingstyleguide--sub-sub-headline {
29
- @extend %livingstyleguide--reset;
30
- color: $livingstyleguide--color;
25
+ .lsg--page-title,
26
+ .lsg--headline,
27
+ .lsg--sub-headline,
28
+ .lsg--sub-sub-headline {
29
+ @extend %lsg--reset;
30
+ color: $lsg--color;
31
31
  display: block;
32
- font-family: $livingstyleguide--headline-font;
33
- font-size: $livingstyleguide--headline-font-size;
34
- font-weight: $livingstyleguide--headline-font-weight;
35
- line-height: $livingstyleguide--headline-line-height;
36
- margin: (3 * $livingstyleguide--gap-width) auto $livingstyleguide--gap-width;
37
- text-align: $livingstyleguide--headline-text-align;
38
- width: $livingstyleguide--width;
32
+ font-family: $lsg--headline-font;
33
+ font-size: $lsg--headline-font-size;
34
+ font-weight: $lsg--headline-font-weight;
35
+ line-height: $lsg--headline-line-height;
36
+ margin: (3 * $lsg--gap-width) auto $lsg--gap-width;
37
+ text-align: $lsg--headline-text-align;
38
+ width: $lsg--width;
39
39
  -webkit-font-smoothing: antialiased;
40
40
  }
41
41
 
42
- .livingstyleguide--anchor {
43
- @extend %livingstyleguide--reset;
42
+ .lsg--anchor {
43
+ @extend %lsg--reset;
44
44
  color: inherit;
45
45
  display: inline;
46
46
  margin-left: -1em;
@@ -49,9 +49,9 @@
49
49
  text-decoration: none;
50
50
  width: 1em;
51
51
 
52
- .livingstyleguide--headline:hover &,
53
- .livingstyleguide--sub-headline:hover &,
54
- .livingstyleguide--sub-sub-headline:hover & {
52
+ .lsg--headline:hover &,
53
+ .lsg--sub-headline:hover &,
54
+ .lsg--sub-sub-headline:hover & {
55
55
  opacity: 0.5;
56
56
 
57
57
  &:hover {
@@ -64,41 +64,41 @@
64
64
  }
65
65
  }
66
66
 
67
- .livingstyleguide--page-title {
67
+ .lsg--page-title {
68
68
  display: block;
69
- font-size: $livingstyleguide--page-title-font-size;
69
+ font-size: $lsg--page-title-font-size;
70
70
  }
71
71
 
72
- .livingstyleguide--sub-headline {
72
+ .lsg--sub-headline {
73
73
  display: block;
74
- font-size: $livingstyleguide--sub-headline-font-size;
74
+ font-size: $lsg--sub-headline-font-size;
75
75
  }
76
76
 
77
- .livingstyleguide--sub-sub-headline {
77
+ .lsg--sub-sub-headline {
78
78
  display: block;
79
- font-size: $livingstyleguide--sub-sub-headline-font-size;
79
+ font-size: $lsg--sub-sub-headline-font-size;
80
80
  }
81
81
 
82
- .livingstyleguide--example {
83
- @extend %livingstyleguide--reset;
82
+ .lsg--example {
83
+ @extend %lsg--reset;
84
84
  background: white;
85
- border-top-left-radius: $livingstyleguide--border-radius;
86
- border-top-right-radius: $livingstyleguide--border-radius;
85
+ border-top-left-radius: $lsg--border-radius;
86
+ border-top-right-radius: $lsg--border-radius;
87
87
  display: block;
88
- margin: $livingstyleguide--gap-width auto 0;
88
+ margin: $lsg--gap-width auto 0;
89
89
  overflow: hidden;
90
- padding: $livingstyleguide--gap-width;
90
+ padding: $lsg--gap-width;
91
91
  position: relative;
92
- width: $livingstyleguide--width;
92
+ width: $lsg--width;
93
93
 
94
94
  &.-lsg-has-full-width {
95
- @extend #{$livingstyleguide--layout-selector} !optional;
95
+ @extend #{$lsg--layout-selector} !optional;
96
96
  border-radius: 0;
97
97
  display: block;
98
98
  height: auto;
99
99
  margin: 0 auto;
100
100
  min-height: auto;
101
- padding: $livingstyleguide--full-width-padding;
101
+ padding: $lsg--full-width-padding;
102
102
  width: 100%;
103
103
  }
104
104
 
@@ -106,9 +106,9 @@
106
106
  display: none;
107
107
  }
108
108
 
109
- .livingstyleguide--code-block {
110
- margin-bottom: -$livingstyleguide--gap-width;
111
- margin-left: -$livingstyleguide--gap-width;
112
- margin-right: -$livingstyleguide--gap-width;
109
+ .lsg--code-block {
110
+ margin-bottom: -$lsg--gap-width;
111
+ margin-left: -$lsg--gap-width;
112
+ margin-right: -$lsg--gap-width;
113
113
  }
114
114
  }
@@ -1,24 +1,24 @@
1
1
  .livingstyleguide {
2
- @extend %livingstyleguide--reset;
3
- background: $livingstyleguide--background-color;
2
+ @extend %lsg--reset;
3
+ background: $lsg--background-color;
4
4
  display: block;
5
5
  }
6
6
 
7
- .livingstyleguide--container {
8
- @extend %livingstyleguide--reset;
7
+ .lsg--container {
8
+ @extend %lsg--reset;
9
9
  display: block;
10
10
  min-height: 50vh;
11
11
  }
12
12
 
13
- .livingstyleguide--footer {
14
- @extend %livingstyleguide--reset;
13
+ .lsg--footer {
14
+ @extend %lsg--reset;
15
15
  display: block;
16
- margin: (4 * $livingstyleguide--gap-width) auto;
17
- width: $livingstyleguide--width;
16
+ margin: (4 * $lsg--gap-width) auto;
17
+ width: $lsg--width;
18
18
  }
19
19
 
20
- .livingstyleguide--logo {
21
- @extend %livingstyleguide--reset;
20
+ .lsg--logo {
21
+ @extend %lsg--reset;
22
22
  background: url('data:image/png;base64,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');
23
23
  background-size: 100%;
24
24
  display: block;
@@ -1,4 +1,4 @@
1
- %livingstyleguide--reset {
1
+ %lsg--reset {
2
2
  background: transparent;
3
3
  border: none;
4
4
  border-collapse: collapse;
@@ -1,6 +1,6 @@
1
- $livingstyleguide--variables: () !default;
1
+ $lsg--variables: () !default;
2
2
 
3
- @each $variable, $value in $livingstyleguide--variables {
3
+ @each $variable, $value in $lsg--variables {
4
4
  $value: null !default;
5
5
  @if $value != null {
6
6
  $selector: $variable;
@@ -12,17 +12,21 @@ $livingstyleguide--variables: () !default;
12
12
  }
13
13
  .#{$selector} {
14
14
  @if type-of($value) == color {
15
- @if (lightness($value) < lightness($livingstyleguide--color)) {
16
- color: $livingstyleguide--background-color;
15
+ @if (lightness($value) < lightness($lsg--color)) {
16
+ color: $lsg--background-color;
17
17
  }
18
18
 
19
19
  &:before {
20
20
  background: $value;
21
21
  }
22
+ &:hover:before {
23
+ background: transparentize($value, 0.6);
24
+ }
25
+
22
26
  }
23
27
 
24
28
  &:after {
25
- @extend %livingstyleguide--code !optional;
29
+ @extend %lsg--code !optional;
26
30
  content: "#{inspect($value)}";
27
31
  }
28
32
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: livingstyleguide
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.alpha.8
4
+ version: 2.0.0.alpha.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nico Hagenburger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-01 00:00:00.000000000 Z
11
+ date: 2015-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minisyntax
@@ -223,6 +223,7 @@ files:
223
223
  - lib/livingstyleguide/filters/markdown.rb
224
224
  - lib/livingstyleguide/filters/options.rb
225
225
  - lib/livingstyleguide/filters/require.rb
226
+ - lib/livingstyleguide/filters/sass.rb
226
227
  - lib/livingstyleguide/filters/style.rb
227
228
  - lib/livingstyleguide/filters/syntax.rb
228
229
  - lib/livingstyleguide/filters/type.rb
@@ -233,6 +234,7 @@ files:
233
234
  - lib/livingstyleguide/integration/sprockets.rb
234
235
  - lib/livingstyleguide/markdown_extensions.rb
235
236
  - lib/livingstyleguide/templates/code.html.erb
237
+ - lib/livingstyleguide/templates/colors-example.html.erb
236
238
  - lib/livingstyleguide/templates/default.html.erb
237
239
  - lib/livingstyleguide/templates/example.html.erb
238
240
  - lib/livingstyleguide/templates/font-example.html.erb
@@ -266,7 +268,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
266
268
  version: 1.3.1
267
269
  requirements: []
268
270
  rubyforge_project:
269
- rubygems_version: 2.2.2
271
+ rubygems_version: 2.4.5
270
272
  signing_key:
271
273
  specification_version: 4
272
274
  summary: Generate beautiful front-end style guides