zurb-foundation-5 5.2.2

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 (123) hide show
  1. checksums.yaml +7 -0
  2. data/.bowerrc +3 -0
  3. data/.editorconfig +9 -0
  4. data/.gitignore +46 -0
  5. data/.travis.yml +34 -0
  6. data/CONTRIBUTING.md +55 -0
  7. data/Gemfile +3 -0
  8. data/Gemfile.lock +16 -0
  9. data/Gruntfile.js +222 -0
  10. data/LICENSE +22 -0
  11. data/README.md +44 -0
  12. data/bower.json +20 -0
  13. data/composer.json +9 -0
  14. data/foundation.gemspec +21 -0
  15. data/humans.txt +8 -0
  16. data/js/foundation/foundation.abide.js +299 -0
  17. data/js/foundation/foundation.accordion.js +54 -0
  18. data/js/foundation/foundation.alert.js +43 -0
  19. data/js/foundation/foundation.clearing.js +531 -0
  20. data/js/foundation/foundation.dropdown.js +306 -0
  21. data/js/foundation/foundation.equalizer.js +68 -0
  22. data/js/foundation/foundation.interchange.js +331 -0
  23. data/js/foundation/foundation.joyride.js +849 -0
  24. data/js/foundation/foundation.js +609 -0
  25. data/js/foundation/foundation.magellan.js +173 -0
  26. data/js/foundation/foundation.offcanvas.js +50 -0
  27. data/js/foundation/foundation.orbit.js +606 -0
  28. data/js/foundation/foundation.reveal.js +427 -0
  29. data/js/foundation/foundation.slider.js +200 -0
  30. data/js/foundation/foundation.tab.js +168 -0
  31. data/js/foundation/foundation.tooltip.js +272 -0
  32. data/js/foundation/foundation.topbar.js +422 -0
  33. data/karma.conf.js +114 -0
  34. data/lib/foundation/engine.rb +20 -0
  35. data/lib/foundation/generators/USAGE +15 -0
  36. data/lib/foundation/generators/install_generator.rb +54 -0
  37. data/lib/foundation/generators/templates/application.html.erb +47 -0
  38. data/lib/foundation/generators/templates/application.html.haml +31 -0
  39. data/lib/foundation/generators/templates/application.html.slim +35 -0
  40. data/lib/foundation/sprockets.rb +4 -0
  41. data/lib/foundation/version.rb +3 -0
  42. data/lib/scss.js +114 -0
  43. data/lib/zurb-foundation.rb +33 -0
  44. data/package.json +48 -0
  45. data/robots.txt +4 -0
  46. data/run-tests.sh +83 -0
  47. data/sache.json +5 -0
  48. data/scss/foundation.scss +45 -0
  49. data/scss/foundation/_functions.scss +101 -0
  50. data/scss/foundation/_settings.scss +1279 -0
  51. data/scss/foundation/components/_accordion.scss +52 -0
  52. data/scss/foundation/components/_alert-boxes.scss +126 -0
  53. data/scss/foundation/components/_block-grid.scss +132 -0
  54. data/scss/foundation/components/_breadcrumbs.scss +127 -0
  55. data/scss/foundation/components/_button-groups.scss +108 -0
  56. data/scss/foundation/components/_buttons.scss +222 -0
  57. data/scss/foundation/components/_clearing.scss +247 -0
  58. data/scss/foundation/components/_dropdown-buttons.scss +129 -0
  59. data/scss/foundation/components/_dropdown.scss +248 -0
  60. data/scss/foundation/components/_flex-video.scss +51 -0
  61. data/scss/foundation/components/_forms.scss +496 -0
  62. data/scss/foundation/components/_global.scss +365 -0
  63. data/scss/foundation/components/_grid.scss +261 -0
  64. data/scss/foundation/components/_inline-lists.scss +56 -0
  65. data/scss/foundation/components/_joyride.scss +220 -0
  66. data/scss/foundation/components/_keystrokes.scss +61 -0
  67. data/scss/foundation/components/_labels.scss +104 -0
  68. data/scss/foundation/components/_magellan.scss +34 -0
  69. data/scss/foundation/components/_offcanvas.scss +381 -0
  70. data/scss/foundation/components/_orbit.scss +415 -0
  71. data/scss/foundation/components/_pagination.scss +150 -0
  72. data/scss/foundation/components/_panels.scss +91 -0
  73. data/scss/foundation/components/_pricing-tables.scss +150 -0
  74. data/scss/foundation/components/_progress-bars.scss +79 -0
  75. data/scss/foundation/components/_range-slider.scss +148 -0
  76. data/scss/foundation/components/_reveal-new.scss +0 -0
  77. data/scss/foundation/components/_reveal.scss +216 -0
  78. data/scss/foundation/components/_side-nav.scss +93 -0
  79. data/scss/foundation/components/_split-buttons.scss +191 -0
  80. data/scss/foundation/components/_sub-nav.scss +125 -0
  81. data/scss/foundation/components/_switch.scss +294 -0
  82. data/scss/foundation/components/_tables.scss +97 -0
  83. data/scss/foundation/components/_tabs.scss +105 -0
  84. data/scss/foundation/components/_thumbs.scss +68 -0
  85. data/scss/foundation/components/_tooltips.scss +140 -0
  86. data/scss/foundation/components/_top-bar.scss +640 -0
  87. data/scss/foundation/components/_type.scss +493 -0
  88. data/scss/foundation/components/_visibility.scss +345 -0
  89. data/scss/foundation/test.html +0 -0
  90. data/scss/normalize.scss +423 -0
  91. data/spec/abide/abide.js +173 -0
  92. data/spec/abide/advanced.html +22 -0
  93. data/spec/abide/basic.html +13 -0
  94. data/spec/accordion/accordion.js +94 -0
  95. data/spec/accordion/basic.html +39 -0
  96. data/spec/accordion/grid.html +44 -0
  97. data/spec/accordion/multiexpand.html +20 -0
  98. data/spec/alert/alert.js +35 -0
  99. data/spec/alert/basic.html +4 -0
  100. data/spec/clearing/222.gif +0 -0
  101. data/spec/clearing/777.gif +0 -0
  102. data/spec/clearing/basic.html +5 -0
  103. data/spec/clearing/ccc.gif +0 -0
  104. data/spec/clearing/clearing.js +55 -0
  105. data/spec/dropdown/basic.html +10 -0
  106. data/spec/dropdown/dropdown.js +65 -0
  107. data/spec/equalizer/basic.html +24 -0
  108. data/spec/equalizer/equalizer.js +30 -0
  109. data/spec/framework/framework.js +14 -0
  110. data/spec/helpers.js +37 -0
  111. data/spec/interchange/basic.html +3 -0
  112. data/spec/interchange/interchange.js +60 -0
  113. data/spec/joyride/joyride.js +14 -0
  114. data/spec/magellan/magellan.js +14 -0
  115. data/spec/offcanvas/offcanvas.js +14 -0
  116. data/spec/orbit/orbit.js +14 -0
  117. data/spec/reveal/reveal.js +14 -0
  118. data/spec/tab/tab.js +14 -0
  119. data/spec/tooltip/tooltip.js +14 -0
  120. data/spec/topbar/multidropdown.html +60 -0
  121. data/spec/topbar/sticky.html +31 -0
  122. data/spec/topbar/topbar.js +96 -0
  123. metadata +238 -0
@@ -0,0 +1,114 @@
1
+ module.exports = function(config) {
2
+ config.set({
3
+
4
+ // base path, that will be used to resolve files and exclude
5
+ basePath: '',
6
+
7
+ // frameworks to use
8
+ frameworks: ['jasmine'],
9
+
10
+ files: [
11
+ {pattern: 'dist/assets/css/normalize.css', watched: true, served: true, included: true},
12
+ {pattern: 'dist/assets/css/foundation.css', watched: true, served: true, included: true},
13
+ {pattern: 'vendor/modernizr/modernizr.js', watched: true, served: true, included: true},
14
+ {pattern: 'vendor/fastclick/lib/fastclick.js', watched: true, served: true, included: true},
15
+ {pattern: 'vendor/jquery/dist/jquery.js', watched: true, served: true, included: true},
16
+ {pattern: 'vendor/jquery-placeholder/jquery.placeholder.js', watched: true, served: true, included: true},
17
+ {pattern: 'vendor/jquery.cookie/jquery.cookie.js', watched: true, served: true, included: true},
18
+ {pattern: 'dist/assets/js/foundation/foundation.js', watched: true, served: true, included: true},
19
+ {pattern: 'dist/assets/js/foundation/foundation.*.js', watched: true, served: true, included: true},
20
+ {pattern: 'spec/**/*.html', watched: true, served: true, included: true},
21
+ {pattern: 'node_modules/jasmine-jquery/lib/jasmine-jquery.js', watched: true, served: true, included: true},
22
+ {pattern: 'spec/helpers.js', watched: true, served: true, included: true},
23
+ {pattern: 'spec/**/*.js', watched: true, served: true, included: true},
24
+ {pattern: 'spec/**/*.gif', watched: true, served: true, included: false}
25
+ ],
26
+
27
+ // list of files to exclude
28
+ exclude: [
29
+ ],
30
+
31
+ // test results reporter to use
32
+ // possible values: 'dots', 'progress', 'junit', 'growl', 'coverage'
33
+ reporters: ['progress'],
34
+
35
+ // web server port
36
+ port: 9876,
37
+
38
+ // enable / disable colors in the output (reporters and logs)
39
+ colors: true,
40
+
41
+ // level of logging
42
+ // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
43
+ logLevel: config.LOG_INFO,
44
+
45
+ // enable / disable watching file and executing tests whenever any file changes
46
+ autoWatch: true,
47
+
48
+ // Start these browsers, currently available:
49
+ // - Chrome
50
+ // - ChromeCanary
51
+ // - Firefox
52
+ // - Opera (has to be installed with `npm install karma-opera-launcher`)
53
+ // - Safari (only Mac; has to be installed with `npm install karma-safari-launcher`)
54
+ // - PhantomJS
55
+ // - IE (only Windows; has to be installed with `npm install karma-ie-launcher`)
56
+ browsers: ['SmallPhantomJS', 'LargePhantomJS', 'LargeChrome', 'Firefox'],
57
+
58
+ customLaunchers: {
59
+ SmallChrome: {
60
+ base: 'Chrome',
61
+ flags: ['--window-size=320,400']
62
+ },
63
+ LargeChrome: {
64
+ base: 'Chrome',
65
+ flags: ['--window-size=1025,400']
66
+ },
67
+ SmallPhantomJS: {
68
+ base: 'PhantomJS',
69
+ options: {
70
+ viewportSize: { width: 320, height: 400 }
71
+ }
72
+ },
73
+ LargePhantomJS: {
74
+ base: 'PhantomJS',
75
+ options: {
76
+ viewportSize: { width: 1025, height: 400 }
77
+ }
78
+ },
79
+ bs_iphone5: {
80
+ base: 'BrowserStack',
81
+ device: 'iPhone 5',
82
+ os: 'ios',
83
+ os_version: '6.0'
84
+ },
85
+ bs_ie9: {
86
+ base: 'BrowserStack',
87
+ os: 'Windows',
88
+ os_version: '7',
89
+ browser: 'IE',
90
+ browser_version: '9.0'
91
+ },
92
+ bs_ie10: {
93
+ base: 'BrowserStack',
94
+ os: 'Windows',
95
+ os_version: '7',
96
+ browser: 'IE',
97
+ browser_version: '10.0'
98
+ },
99
+ bs_android41: {
100
+ base: 'BrowserStack',
101
+ os: 'android',
102
+ os_version: '4.1',
103
+ device: 'Samsung Galaxy S III'
104
+ }
105
+ },
106
+
107
+ // If browser does not capture in given timeout [ms], kill it
108
+ captureTimeout: 60000,
109
+
110
+ // Continuous Integration mode
111
+ // if true, it capture browsers, run tests and exit
112
+ singleRun: false
113
+ });
114
+ };
@@ -0,0 +1,20 @@
1
+ module Foundation
2
+ class Engine < Rails::Engine
3
+ # Save this block, we'll use it in two calls to .initializer
4
+ add_paths_block = lambda { |app|
5
+ app.config.assets.paths << File.expand_path("../../../scss", __FILE__)
6
+ app.config.assets.paths << File.expand_path("../../../js", __FILE__)
7
+
8
+ # Ensure Zepto and Modernizr are precompiled in production
9
+ app.config.assets.precompile += %w(vendor/zepto.js vendor/custom.modernizr.js)
10
+ }
11
+
12
+ # Standard initializer
13
+ initializer 'foundation.update_asset_paths', &add_paths_block
14
+
15
+ # Special initializer lets us precompile assets without fully initializing
16
+ initializer 'foundation.update_asset_paths', :group => :assets,
17
+ &add_paths_block
18
+
19
+ end
20
+ end
@@ -0,0 +1,15 @@
1
+ Description:
2
+ Setup Foundation assets in your app and generate new layouts preconfigured to use Foundation
3
+
4
+ Example:
5
+ rails g foundation:install
6
+
7
+ This will insert foundation require lines into default application assets:
8
+ /app/assets/javascripts/application.js
9
+ /app/assets/stylesheets/application.css
10
+
11
+ And create sample layout (depending of your template engine):
12
+ /app/views/layouts/application.html.erb
13
+
14
+ And foundation variables override file:
15
+ /app/assets/stylesheets/foundation_and_overrides.scss
@@ -0,0 +1,54 @@
1
+ require 'rails/generators'
2
+
3
+ module Foundation
4
+ module Generators
5
+ class InstallGenerator < Rails::Generators::Base
6
+ source_root File.join(File.dirname(__FILE__), 'templates')
7
+ argument :layout_name, :type => :string, :default => 'application', :banner => 'layout_name'
8
+
9
+ class_option :haml, :desc => 'Generate HAML layout instead of erb', :type => :boolean
10
+ class_option :slim, :desc => 'Generate Slim layout instead of erb', :type => :boolean
11
+
12
+ def add_assets
13
+ # rails_ujs breaks, need to incorporate rails-behavior plugin for this to work seamlessly
14
+ # gsub_file "app/assets/javascripts/application#{detect_js_format[0]}", /\/\/= require jquery\n/, ""
15
+ insert_into_file "app/assets/javascripts/application#{detect_js_format[0]}", "#{detect_js_format[1]} require foundation\n", :after => "jquery_ujs\n"
16
+ append_to_file "app/assets/javascripts/application#{detect_js_format[0]}", "\n$(function(){ $(document).foundation(); });\n"
17
+ settings_file = File.join(File.dirname(__FILE__),"..","..","..","scss","foundation","_variables.scss")
18
+ create_file "app/assets/stylesheets/foundation_and_overrides.scss", File.read(settings_file)
19
+ append_to_file "app/assets/stylesheets/foundation_and_overrides.scss", "\n@import 'foundation';\n"
20
+ insert_into_file "app/assets/stylesheets/application#{detect_css_format[0]}", "#{detect_css_format[1]} require foundation_and_overrides\n", :after => "require_self\n"
21
+ end
22
+
23
+ def detect_js_format
24
+ return ['.coffee', '#='] if File.exist?('app/assets/javascripts/application.coffee')
25
+ return ['.js.coffee', '#='] if File.exist?('app/assets/javascripts/application.js.coffee')
26
+ return ['.js', '//='] if File.exist?('app/assets/javascripts/application.js')
27
+ end
28
+
29
+ def detect_css_format
30
+ return ['.css', ' *='] if File.exist?('app/assets/stylesheets/application.css')
31
+ return ['.css.sass', ' //='] if File.exist?('app/assets/stylesheets/application.css.sass')
32
+ return ['.sass', ' //='] if File.exist?('app/assets/stylesheets/application.sass')
33
+ return ['.css.scss', ' //='] if File.exist?('app/assets/stylesheets/application.css.scss')
34
+ return ['.scss', ' //='] if File.exist?('app/assets/stylesheets/application.scss')
35
+ end
36
+
37
+ def create_layout
38
+ if options.haml?||(defined?(Haml) && options.haml?)
39
+ template 'application.html.haml', "app/views/layouts/#{file_name}.html.haml"
40
+ elsif options.slim?||(defined?(Slim) && options.slim?)
41
+ template 'application.html.slim', "app/views/layouts/#{file_name}.html.slim"
42
+ else
43
+ template 'application.html.erb', "app/views/layouts/#{file_name}.html.erb"
44
+ end
45
+ end
46
+
47
+ private
48
+
49
+ def file_name
50
+ layout_name.underscore.downcase
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,47 @@
1
+ <!DOCTYPE html>
2
+ <!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
3
+ <!--[if lt IE 7 ]> <html class="ie6" lang="en"> <![endif]-->
4
+ <!--[if IE 7 ]> <html class="ie7" lang="en"> <![endif]-->
5
+ <!--[if IE 8 ]> <html class="ie8" lang="en"> <![endif]-->
6
+ <!--[if IE 9 ]> <html class="ie9" lang="en"> <![endif]-->
7
+ <!--[if (gt IE 9)|!(IE)]><!--> <html lang="en"> <!--<![endif]-->
8
+ <head>
9
+ <meta charset="utf-8" />
10
+
11
+ <!-- Uncomment to make IE8 render like IE7 -->
12
+ <!-- <meta http-equiv="X-UA-Compatible" content="IE=7" /> -->
13
+
14
+ <!-- Set the viewport width to device width for mobile -->
15
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
16
+
17
+ <title><%%= content_for?(:title) ? yield(:title) : "Untitled" %></title>
18
+
19
+ <%%= stylesheet_link_tag "application" %>
20
+ <%%= javascript_include_tag "vendor/custom.modernizr" %>
21
+ <%%= csrf_meta_tags %>
22
+ </head>
23
+
24
+ <body>
25
+
26
+ <%%= yield %>
27
+
28
+ <% if false %>
29
+ <script>
30
+ document.write('<script src=' +
31
+ ('__proto__' in {} ? '<%%= asset_path("vendor/zepto") %>' : '<%%= asset_path("jquery") %>') +
32
+ '><\/script>');
33
+ </script>
34
+
35
+ <script>
36
+ // Ensure rails_ujs works with Zepto
37
+ $.fn.ajaxSend = function(callback) {
38
+ return this.each(function(){
39
+ $(this).on('ajaxBeforeSend', callback);
40
+ });
41
+ };
42
+ var jQuery = $;
43
+ </script>
44
+ <% end %>
45
+ <%%= javascript_include_tag "application" %>
46
+ </body>
47
+ </html>
@@ -0,0 +1,31 @@
1
+ !!! 5
2
+ / paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/
3
+ /[if lt IE 7 ] <html class=\"ie6\" lang=\"en\">
4
+ /[if IE 7 ] <html class=\"ie7\" lang=\"en\">
5
+ /[if IE 8 ] <html class=\"ie8\" lang=\"en\">
6
+ /[if IE 9 ] <html class=\"ie9\" lang=\"en\">
7
+ /[if (gt IE 9)|!(IE)] <!--> <html lang=\"en\">
8
+
9
+ %head
10
+ %meta{ :charset => "utf-8" }
11
+
12
+ -# Uncomment to make IE8 render like IE7
13
+ -# meta http-equiv="X-UA-Compatible" content="IE=7"
14
+
15
+ -# Set the viewport width to device width for mobile
16
+ %meta{ :name => "viewport", :content => "width=device-width, initial-scale=1.0" }
17
+
18
+ %title= content_for?(:title) ? yield(:title) : "Untitled"
19
+
20
+ = stylesheet_link_tag "application"
21
+ = javascript_include_tag "vendor/custom.modernizr"
22
+ = csrf_meta_tag
23
+
24
+ %body
25
+
26
+ = yield
27
+
28
+ = javascript_include_tag "application"
29
+
30
+ :plain
31
+ </html>
@@ -0,0 +1,35 @@
1
+ doctype html
2
+ / http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/
3
+ /[if lt IE 7 ]
4
+ |<html class="ie6" lang="en">
5
+ /[if IE 7 ]
6
+ |<html class="ie7" lang="en">
7
+ /[if IE 8 ]
8
+ |<html class="ie8" lang="en">
9
+ /[if IE 9 ]
10
+ |<html class="ie9" lang="en">
11
+ /[if (gt IE 9)|!(IE)]
12
+ |<html lang="en">
13
+
14
+ head
15
+ meta charset="utf-8"
16
+
17
+ / Uncomment to make IE8 render like IE7
18
+ / meta http-equiv="X-UA-Compatible" content="IE=7"
19
+
20
+ / Set the viewport width to device width for mobile
21
+ meta name="viewport" content="width=device-width, initial-scale=1.0"
22
+
23
+ title == content_for?(:title) ? yield(:title) : "Untitled"
24
+
25
+ == stylesheet_link_tag "application"
26
+ == javascript_include_tag "vendor/custom.modernizr"
27
+ == csrf_meta_tag
28
+
29
+ body
30
+
31
+ == yield
32
+
33
+ == javascript_include_tag "application"
34
+
35
+ |</html>
@@ -0,0 +1,4 @@
1
+ require 'sprockets'
2
+
3
+ Sprockets.append_path File.expand_path("../../../scss", __FILE__)
4
+ Sprockets.append_path File.expand_path("../../../js", __FILE__)
@@ -0,0 +1,3 @@
1
+ module Foundation
2
+ VERSION = "5.2.2"
3
+ end
@@ -0,0 +1,114 @@
1
+ /*
2
+ Language: SCSS
3
+ Author: Kurt Emch <kurt@kurtemch.com>
4
+ */
5
+ module.exports = function(hljs) {
6
+ var IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';
7
+ var FUNCTION = {
8
+ className: 'function',
9
+ begin: IDENT_RE + '\\(', end: '\\)',
10
+ contains: ['self', hljs.NUMBER_MODE, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE]
11
+ };
12
+ var HEXCOLOR = {
13
+ className: 'hexcolor', begin: '#[0-9A-Fa-f]+'
14
+ };
15
+ var DEF_INTERNALS = {
16
+ className: 'attribute',
17
+ begin: '[A-Z\\_\\.\\-]+', end: ':',
18
+ excludeEnd: true,
19
+ illegal: '[^\\s]',
20
+ starts: {
21
+ className: 'value',
22
+ endsWithParent: true, excludeEnd: true,
23
+ contains: [
24
+ FUNCTION,
25
+ HEXCOLOR,
26
+ hljs.NUMBER_MODE,
27
+ hljs.QUOTE_STRING_MODE,
28
+ hljs.APOS_STRING_MODE,
29
+ hljs.C_BLOCK_COMMENT_MODE,
30
+ {
31
+ className: 'important', begin: '!important'
32
+ }
33
+ ]
34
+ }
35
+ };
36
+ return {
37
+ case_insensitive: true,
38
+ illegal: '[=/|\']',
39
+ contains: [
40
+ hljs.C_LINE_COMMENT_MODE,
41
+ hljs.C_BLOCK_COMMENT_MODE,
42
+ {
43
+ className: 'function',
44
+ begin: IDENT_RE + '\\(', end: '\\)',
45
+ contains: ['self', hljs.NUMBER_MODE, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE]
46
+ },
47
+ {
48
+ className: 'id', begin: '\\#[A-Za-z0-9_-]+',
49
+ relevance: 0
50
+ },
51
+ {
52
+ className: 'class', begin: '\\.[A-Za-z0-9_-]+',
53
+ relevance: 0
54
+ },
55
+ {
56
+ className: 'attr_selector',
57
+ begin: '\\[', end: '\\]',
58
+ illegal: '$'
59
+ },
60
+ {
61
+ className: 'tag', // begin: IDENT_RE, end: '[,|\\s]'
62
+ begin: '\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b',
63
+ relevance: 0
64
+ },
65
+ {
66
+ className: 'pseudo',
67
+ begin: ':(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)'
68
+ },
69
+ {
70
+ className: 'pseudo',
71
+ begin: '::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)'
72
+ },
73
+ {
74
+ className: 'attribute',
75
+ begin: '\\b(z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b',
76
+ illegal: '[^\\s]'
77
+ },
78
+ {
79
+ className: 'value',
80
+ begin: '\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b'
81
+ },
82
+ {
83
+ className: 'value',
84
+ begin: ':', end: ';',
85
+ contains: [
86
+ HEXCOLOR,
87
+ hljs.NUMBER_MODE,
88
+ hljs.QUOTE_STRING_MODE,
89
+ hljs.APOS_STRING_MODE,
90
+ {
91
+ className: 'important', begin: '!important'
92
+ }
93
+ ]
94
+ },
95
+ {
96
+ className: 'at_rule',
97
+ begin: '@', end: '[{;]',
98
+ keywords: 'mixin include for extend charset import media page font-face namespace',
99
+ contains: [
100
+ FUNCTION,
101
+ hljs.QUOTE_STRING_MODE,
102
+ hljs.APOS_STRING_MODE,
103
+ HEXCOLOR,
104
+ hljs.NUMBER_MODE,
105
+ {
106
+ className: 'preprocessor',
107
+ begin: '\\s[A-Za-z0-9_.-]+',
108
+ relevance: 0
109
+ }
110
+ ]
111
+ }
112
+ ]
113
+ };
114
+ };