yamlcss 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (213) hide show
  1. checksums.yaml +7 -0
  2. data/.travis.yml +12 -0
  3. data/Gemfile +10 -0
  4. data/Gemfile.lock +56 -0
  5. data/LICENSE.txt +59 -0
  6. data/Rakefile +23 -0
  7. data/Readme.md +120 -0
  8. data/VERSIONS.md +5 -0
  9. data/bin/yamlcss +6 -0
  10. data/lib/yamlcss.rb +22 -0
  11. data/lib/yamlcss/engine.rb +7 -0
  12. data/lib/yamlcss/generator.rb +84 -0
  13. data/lib/yamlcss/version.rb +4 -0
  14. data/vendor/assets/stylesheets/_iehacks.scss +3 -0
  15. data/vendor/assets/stylesheets/_yaml.scss +3 -0
  16. data/yaml/Gruntfile.js +199 -0
  17. data/yaml/License.txt +36 -0
  18. data/yaml/Readme.md +64 -0
  19. data/yaml/changelog.md +307 -0
  20. data/yaml/config.rb +25 -0
  21. data/yaml/demos/css/custom-grids.css +27 -0
  22. data/yaml/demos/css/flexible-columns.css +26 -0
  23. data/yaml/demos/css/flexible-grids.css +26 -0
  24. data/yaml/demos/css/rtl-support.css +31 -0
  25. data/yaml/demos/css/screen/screen-custom-grids.css +41 -0
  26. data/yaml/demos/css/screen/screen-rtl-support.css +182 -0
  27. data/yaml/demos/custom-grid.html +129 -0
  28. data/yaml/demos/flexible-columns.html +124 -0
  29. data/yaml/demos/flexible-grid.html +142 -0
  30. data/yaml/demos/rtl-support.html +127 -0
  31. data/yaml/docs/assets/css/icons/external_link.png +0 -0
  32. data/yaml/docs/assets/css/icons/hcalendar.png +0 -0
  33. data/yaml/docs/assets/css/icons/hcard.png +0 -0
  34. data/yaml/docs/assets/css/icons/icon-geo.png +0 -0
  35. data/yaml/docs/assets/css/icons/icon-hatom.png +0 -0
  36. data/yaml/docs/assets/css/icons/icon-haudio.png +0 -0
  37. data/yaml/docs/assets/css/icons/icon-hcalendar-add.png +0 -0
  38. data/yaml/docs/assets/css/icons/icon-hcalendar-download.png +0 -0
  39. data/yaml/docs/assets/css/icons/icon-hcalendar.png +0 -0
  40. data/yaml/docs/assets/css/icons/icon-hcard-add.png +0 -0
  41. data/yaml/docs/assets/css/icons/icon-hcard-download.png +0 -0
  42. data/yaml/docs/assets/css/icons/icon-hcard.png +0 -0
  43. data/yaml/docs/assets/css/icons/icon-hresume.png +0 -0
  44. data/yaml/docs/assets/css/icons/icon-rel-tag.png +0 -0
  45. data/yaml/docs/assets/css/icons/icon-xfn.png +0 -0
  46. data/yaml/docs/assets/css/icons/xfn/xfn-child.png +0 -0
  47. data/yaml/docs/assets/css/icons/xfn/xfn-colleague-met.png +0 -0
  48. data/yaml/docs/assets/css/icons/xfn/xfn-colleague.png +0 -0
  49. data/yaml/docs/assets/css/icons/xfn/xfn-friend-met.png +0 -0
  50. data/yaml/docs/assets/css/icons/xfn/xfn-friend.png +0 -0
  51. data/yaml/docs/assets/css/icons/xfn/xfn-me.png +0 -0
  52. data/yaml/docs/assets/css/icons/xfn/xfn-parent.png +0 -0
  53. data/yaml/docs/assets/css/icons/xfn/xfn-small.png +0 -0
  54. data/yaml/docs/assets/css/icons/xfn/xfn-spouse.png +0 -0
  55. data/yaml/docs/assets/css/icons/xfn/xfn-sweetheart-met.png +0 -0
  56. data/yaml/docs/assets/css/icons/xfn/xfn-sweetheart.png +0 -0
  57. data/yaml/docs/assets/css/layout-min.css +3 -0
  58. data/yaml/docs/assets/css/layout.css +3262 -0
  59. data/yaml/docs/assets/images/demo-custom-grid.png +0 -0
  60. data/yaml/docs/assets/images/demo-flex-column.png +0 -0
  61. data/yaml/docs/assets/images/demo-flex-grid.png +0 -0
  62. data/yaml/docs/assets/images/demo-rtl.png +0 -0
  63. data/yaml/docs/assets/images/yaml-solo-transparent-small.png +0 -0
  64. data/yaml/docs/assets/images/yaml-solo-transparent.png +0 -0
  65. data/yaml/docs/assets/js/domscript.js +209 -0
  66. data/yaml/docs/assets/js/jquery.gridbuilder.js +131 -0
  67. data/yaml/docs/assets/js/snippet/ZeroClipboard.swf +0 -0
  68. data/yaml/docs/assets/js/snippet/jquery.snippet.css +116 -0
  69. data/yaml/docs/assets/js/snippet/jquery.snippet.js +782 -0
  70. data/yaml/docs/assets/js/snippet/jquery.snippet.min.css +40 -0
  71. data/yaml/docs/assets/js/snippet/jquery.snippet.min.js +12 -0
  72. data/yaml/docs/assets/js/snippet/snippet.css +296 -0
  73. data/yaml/docs/index.html +3845 -0
  74. data/yaml/lib/html5shiv/html5shiv-printshiv.js +11 -0
  75. data/yaml/lib/html5shiv/html5shiv.js +8 -0
  76. data/yaml/lib/jquery-1.10.1.min.js +6 -0
  77. data/yaml/lib/jquery-migrate-1.2.1.min.js +2 -0
  78. data/yaml/package.json +20 -0
  79. data/yaml/sass/docs/assets/css/_screen.scss +786 -0
  80. data/yaml/sass/docs/assets/css/layout.scss +28 -0
  81. data/yaml/sass/static-build/add-ons/accessible-tabs/tabs.scss +15 -0
  82. data/yaml/sass/static-build/add-ons/microformats/microformats.scss +18 -0
  83. data/yaml/sass/static-build/add-ons/rtl-support/core/base-rtl.scss +20 -0
  84. data/yaml/sass/static-build/add-ons/rtl-support/forms/gray-theme-rtl.scss +16 -0
  85. data/yaml/sass/static-build/add-ons/rtl-support/navigation/hlist-rtl.scss +18 -0
  86. data/yaml/sass/static-build/add-ons/rtl-support/navigation/vlist-rtl.scss +18 -0
  87. data/yaml/sass/static-build/add-ons/rtl-support/screen/typography-rtl.scss +16 -0
  88. data/yaml/sass/static-build/core/base.scss +19 -0
  89. data/yaml/sass/static-build/core/iehacks.scss +19 -0
  90. data/yaml/sass/static-build/forms/gray-theme.scss +14 -0
  91. data/yaml/sass/static-build/navigation/hlist.scss +16 -0
  92. data/yaml/sass/static-build/navigation/vlist.scss +16 -0
  93. data/yaml/sass/static-build/print/print.scss +15 -0
  94. data/yaml/sass/static-build/screen/grid-960gs-12.scss +15 -0
  95. data/yaml/sass/static-build/screen/grid-960gs-16.scss +15 -0
  96. data/yaml/sass/static-build/screen/grid-blueprint.scss +15 -0
  97. data/yaml/sass/static-build/screen/grid-fluid-12col.scss +15 -0
  98. data/yaml/sass/static-build/screen/screen-FULLPAGE-layout.scss +15 -0
  99. data/yaml/sass/static-build/screen/screen-PAGE-layout.scss +15 -0
  100. data/yaml/sass/static-build/screen/typography.scss +16 -0
  101. data/yaml/sass/yaml-sass/_yaml-var-globals.scss +39 -0
  102. data/yaml/sass/yaml-sass/_yaml-var-typography.scss +80 -0
  103. data/yaml/sass/yaml-sass/add-ons/accessible-tabs/_tabs.scss +139 -0
  104. data/yaml/sass/yaml-sass/add-ons/accessible-tabs/jquery.tabs.js +266 -0
  105. data/yaml/sass/yaml-sass/add-ons/microformats/_microformats.scss +179 -0
  106. data/yaml/sass/yaml-sass/add-ons/microformats/icons/external_link.png +0 -0
  107. data/yaml/sass/yaml-sass/add-ons/microformats/icons/hcalendar.png +0 -0
  108. data/yaml/sass/yaml-sass/add-ons/microformats/icons/hcard.png +0 -0
  109. data/yaml/sass/yaml-sass/add-ons/microformats/icons/icon-geo.png +0 -0
  110. data/yaml/sass/yaml-sass/add-ons/microformats/icons/icon-hatom.png +0 -0
  111. data/yaml/sass/yaml-sass/add-ons/microformats/icons/icon-haudio.png +0 -0
  112. data/yaml/sass/yaml-sass/add-ons/microformats/icons/icon-hcalendar-add.png +0 -0
  113. data/yaml/sass/yaml-sass/add-ons/microformats/icons/icon-hcalendar-download.png +0 -0
  114. data/yaml/sass/yaml-sass/add-ons/microformats/icons/icon-hcalendar.png +0 -0
  115. data/yaml/sass/yaml-sass/add-ons/microformats/icons/icon-hcard-add.png +0 -0
  116. data/yaml/sass/yaml-sass/add-ons/microformats/icons/icon-hcard-download.png +0 -0
  117. data/yaml/sass/yaml-sass/add-ons/microformats/icons/icon-hcard.png +0 -0
  118. data/yaml/sass/yaml-sass/add-ons/microformats/icons/icon-hresume.png +0 -0
  119. data/yaml/sass/yaml-sass/add-ons/microformats/icons/icon-rel-tag.png +0 -0
  120. data/yaml/sass/yaml-sass/add-ons/microformats/icons/icon-xfn.png +0 -0
  121. data/yaml/sass/yaml-sass/add-ons/microformats/icons/xfn/xfn-child.png +0 -0
  122. data/yaml/sass/yaml-sass/add-ons/microformats/icons/xfn/xfn-colleague-met.png +0 -0
  123. data/yaml/sass/yaml-sass/add-ons/microformats/icons/xfn/xfn-colleague.png +0 -0
  124. data/yaml/sass/yaml-sass/add-ons/microformats/icons/xfn/xfn-friend-met.png +0 -0
  125. data/yaml/sass/yaml-sass/add-ons/microformats/icons/xfn/xfn-friend.png +0 -0
  126. data/yaml/sass/yaml-sass/add-ons/microformats/icons/xfn/xfn-me.png +0 -0
  127. data/yaml/sass/yaml-sass/add-ons/microformats/icons/xfn/xfn-parent.png +0 -0
  128. data/yaml/sass/yaml-sass/add-ons/microformats/icons/xfn/xfn-small.png +0 -0
  129. data/yaml/sass/yaml-sass/add-ons/microformats/icons/xfn/xfn-spouse.png +0 -0
  130. data/yaml/sass/yaml-sass/add-ons/microformats/icons/xfn/xfn-sweetheart-met.png +0 -0
  131. data/yaml/sass/yaml-sass/add-ons/microformats/icons/xfn/xfn-sweetheart.png +0 -0
  132. data/yaml/sass/yaml-sass/add-ons/rtl-support/core/_base-rtl.scss +177 -0
  133. data/yaml/sass/yaml-sass/add-ons/rtl-support/forms/_gray-theme-rtl.scss +34 -0
  134. data/yaml/sass/yaml-sass/add-ons/rtl-support/navigation/_hlist-rtl.scss +42 -0
  135. data/yaml/sass/yaml-sass/add-ons/rtl-support/navigation/_vlist-rtl.scss +45 -0
  136. data/yaml/sass/yaml-sass/add-ons/rtl-support/screen/_typography-rtl.scss +30 -0
  137. data/yaml/sass/yaml-sass/add-ons/syncheight/jquery.syncheight.js +112 -0
  138. data/yaml/sass/yaml-sass/core/_base.scss +15 -0
  139. data/yaml/sass/yaml-sass/core/_iehacks.scss +426 -0
  140. data/yaml/sass/yaml-sass/core/base-modules/_accessibility.scss +48 -0
  141. data/yaml/sass/yaml-sass/core/base-modules/_columns.scss +27 -0
  142. data/yaml/sass/yaml-sass/core/base-modules/_float-handling.scss +32 -0
  143. data/yaml/sass/yaml-sass/core/base-modules/_forms-core.scss +296 -0
  144. data/yaml/sass/yaml-sass/core/base-modules/_grids-core.scss +55 -0
  145. data/yaml/sass/yaml-sass/core/base-modules/_normalization.scss +165 -0
  146. data/yaml/sass/yaml-sass/core/base-modules/_print-core.scss +36 -0
  147. data/yaml/sass/yaml-sass/core/js/yaml-focusfix.js +70 -0
  148. data/yaml/sass/yaml-sass/forms/_gray-theme.scss +475 -0
  149. data/yaml/sass/yaml-sass/mixins/_yaml-mixins-core.scss +248 -0
  150. data/yaml/sass/yaml-sass/navigation/_hlist.scss +106 -0
  151. data/yaml/sass/yaml-sass/navigation/_vlist.scss +129 -0
  152. data/yaml/sass/yaml-sass/print/_print.scss +61 -0
  153. data/yaml/sass/yaml-sass/screen/_grid-960gs-12.scss +4 -0
  154. data/yaml/sass/yaml-sass/screen/_grid-960gs-16.scss +4 -0
  155. data/yaml/sass/yaml-sass/screen/_grid-blueprint.scss +4 -0
  156. data/yaml/sass/yaml-sass/screen/_grid-fluid-12col.scss +4 -0
  157. data/yaml/sass/yaml-sass/screen/_screen-FULLPAGE-layout.scss +171 -0
  158. data/yaml/sass/yaml-sass/screen/_screen-PAGE-layout.scss +165 -0
  159. data/yaml/sass/yaml-sass/screen/_typography.scss +485 -0
  160. data/yaml/yaml/add-ons/accessible-tabs/jquery.tabs.js +266 -0
  161. data/yaml/yaml/add-ons/accessible-tabs/tabs.css +136 -0
  162. data/yaml/yaml/add-ons/microformats/icons/external_link.png +0 -0
  163. data/yaml/yaml/add-ons/microformats/icons/hcalendar.png +0 -0
  164. data/yaml/yaml/add-ons/microformats/icons/hcard.png +0 -0
  165. data/yaml/yaml/add-ons/microformats/icons/icon-geo.png +0 -0
  166. data/yaml/yaml/add-ons/microformats/icons/icon-hatom.png +0 -0
  167. data/yaml/yaml/add-ons/microformats/icons/icon-haudio.png +0 -0
  168. data/yaml/yaml/add-ons/microformats/icons/icon-hcalendar-add.png +0 -0
  169. data/yaml/yaml/add-ons/microformats/icons/icon-hcalendar-download.png +0 -0
  170. data/yaml/yaml/add-ons/microformats/icons/icon-hcalendar.png +0 -0
  171. data/yaml/yaml/add-ons/microformats/icons/icon-hcard-add.png +0 -0
  172. data/yaml/yaml/add-ons/microformats/icons/icon-hcard-download.png +0 -0
  173. data/yaml/yaml/add-ons/microformats/icons/icon-hcard.png +0 -0
  174. data/yaml/yaml/add-ons/microformats/icons/icon-hresume.png +0 -0
  175. data/yaml/yaml/add-ons/microformats/icons/icon-rel-tag.png +0 -0
  176. data/yaml/yaml/add-ons/microformats/icons/icon-xfn.png +0 -0
  177. data/yaml/yaml/add-ons/microformats/icons/xfn/xfn-child.png +0 -0
  178. data/yaml/yaml/add-ons/microformats/icons/xfn/xfn-colleague-met.png +0 -0
  179. data/yaml/yaml/add-ons/microformats/icons/xfn/xfn-colleague.png +0 -0
  180. data/yaml/yaml/add-ons/microformats/icons/xfn/xfn-friend-met.png +0 -0
  181. data/yaml/yaml/add-ons/microformats/icons/xfn/xfn-friend.png +0 -0
  182. data/yaml/yaml/add-ons/microformats/icons/xfn/xfn-me.png +0 -0
  183. data/yaml/yaml/add-ons/microformats/icons/xfn/xfn-parent.png +0 -0
  184. data/yaml/yaml/add-ons/microformats/icons/xfn/xfn-small.png +0 -0
  185. data/yaml/yaml/add-ons/microformats/icons/xfn/xfn-spouse.png +0 -0
  186. data/yaml/yaml/add-ons/microformats/icons/xfn/xfn-sweetheart-met.png +0 -0
  187. data/yaml/yaml/add-ons/microformats/icons/xfn/xfn-sweetheart.png +0 -0
  188. data/yaml/yaml/add-ons/microformats/microformats.css +167 -0
  189. data/yaml/yaml/add-ons/rtl-support/core/base-rtl.css +167 -0
  190. data/yaml/yaml/add-ons/rtl-support/core/base-rtl.min.css +3 -0
  191. data/yaml/yaml/add-ons/rtl-support/forms/gray-theme-rtl.css +44 -0
  192. data/yaml/yaml/add-ons/rtl-support/navigation/hlist-rtl.css +48 -0
  193. data/yaml/yaml/add-ons/rtl-support/navigation/vlist-rtl.css +54 -0
  194. data/yaml/yaml/add-ons/rtl-support/screen/typography-rtl.css +38 -0
  195. data/yaml/yaml/add-ons/syncheight/jquery.syncheight.js +112 -0
  196. data/yaml/yaml/core/base.css +705 -0
  197. data/yaml/yaml/core/base.min.css +3 -0
  198. data/yaml/yaml/core/iehacks.css +468 -0
  199. data/yaml/yaml/core/iehacks.min.css +3 -0
  200. data/yaml/yaml/core/js/yaml-focusfix.js +70 -0
  201. data/yaml/yaml/forms/gray-theme.css +676 -0
  202. data/yaml/yaml/navigation/hlist.css +109 -0
  203. data/yaml/yaml/navigation/vlist.css +144 -0
  204. data/yaml/yaml/print/print.css +42 -0
  205. data/yaml/yaml/screen/grid-960gs-12.css +164 -0
  206. data/yaml/yaml/screen/grid-960gs-16.css +212 -0
  207. data/yaml/yaml/screen/grid-blueprint.css +308 -0
  208. data/yaml/yaml/screen/grid-fluid-12col.css +164 -0
  209. data/yaml/yaml/screen/screen-FULLPAGE-layout.css +184 -0
  210. data/yaml/yaml/screen/screen-PAGE-layout.css +196 -0
  211. data/yaml/yaml/screen/typography.css +486 -0
  212. data/yamlcss.gemspec +30 -0
  213. metadata +314 -0
@@ -0,0 +1,139 @@
1
+ @media screen, projection {
2
+ .jquery_tabs {
3
+ margin:0 0 1.5em 0;
4
+
5
+ ul.tabs-list {
6
+ font-size: 1em;
7
+ display:table;
8
+ table-layout:fixed;
9
+ list-style-type:none;
10
+ margin: 0;
11
+ position:relative;
12
+ z-index:1;
13
+
14
+ li {
15
+ margin: 0 4px 0 0;
16
+ border:0 none;
17
+ display:inline;
18
+ float:left;
19
+ padding:0;
20
+
21
+ a {
22
+ font-size: 1em;
23
+ line-height: 1.5;
24
+ padding: 0.75em;
25
+ background: transparent;
26
+
27
+ display:block;
28
+ float:left;
29
+ font-weight:normal;
30
+ margin:0;
31
+
32
+ &:focus,
33
+ &:hover,
34
+ &:active {
35
+ background:#eee;
36
+ border-radius: 0.2em 0.2em 0 0;
37
+ color:#000;
38
+
39
+ font-weight:normal;
40
+ outline: 0 none;
41
+ text-decoration:none;
42
+ }
43
+ }
44
+
45
+ &.current {
46
+ a,
47
+ a:focus,
48
+ a:hover,
49
+ a:active {
50
+ background:#fff;
51
+ border:1px #ccc solid;
52
+ border-radius:0.2em 0.2em 0 0;
53
+ color:#000;
54
+
55
+ border-bottom:0 none;
56
+ font-weight:bold;
57
+ text-decoration:none;
58
+ }
59
+ }
60
+ }
61
+ }
62
+
63
+ .content {
64
+ border-top: 1px #ccc solid;
65
+
66
+ clear:both;
67
+ padding: 0;
68
+ position:relative;
69
+ top:-1px;
70
+ margin-bottom:-1px;
71
+ }
72
+ }
73
+
74
+ /* hiding texts visually */
75
+ .jquery_tabs .tabhead {
76
+ position:absolute;
77
+ left:-32768px; // LTR
78
+ }
79
+ .jquery_tabs .current-info,
80
+ .jquery_tabs .accessibletabsanchor {
81
+ left:-999em;
82
+ position:absolute;
83
+ }
84
+
85
+ /** Avoid margin collapsing to enable correct sync of all tabs
86
+ *
87
+ * @workaround
88
+ * @affected all browsers
89
+ * @css-for all browsers
90
+ * @valid yes
91
+ */
92
+
93
+ .jquery_tabs .tab-content {
94
+ border-bottom: 1px transparent solid;
95
+ border-top: 1px transparent solid;
96
+ padding-top: 1.5em;
97
+ *overflow:hidden;
98
+ }
99
+
100
+ /** Containing floats adjustment and stability fixes for Internet Explorer
101
+ *
102
+ * @workaround
103
+ * @affected IE 5.x/Win, IE6, IE7
104
+ * @css-for IE 5.x/Win, IE6, IE7
105
+ * @valid no
106
+ */
107
+
108
+ * html .jquery_tabs {
109
+ zoom:1;
110
+ width:auto;
111
+ position:relative;
112
+
113
+ // IE < 7 don't support transparent borders
114
+ .tab-content {
115
+ border-bottom: 1px #fff solid;
116
+ border-top: 1px #fff solid;
117
+ }
118
+
119
+ .content {
120
+ z-index:-1;
121
+ }
122
+ }
123
+
124
+ *+html .jquery_tabs { zoom:1; width:auto; }
125
+ .jquery_tabs * { zoom:1; }
126
+ }
127
+
128
+ /* Make tabs printable */
129
+ @media print {
130
+ .jquery_tabs {
131
+ .tabs-list {
132
+ display: none !important;
133
+ }
134
+ .tabbody,
135
+ .tabhead {
136
+ display: block !important;
137
+ }
138
+ }
139
+ }
@@ -0,0 +1,266 @@
1
+ /**
2
+ * Accessible Tabs - jQuery plugin for accessible, unobtrusive tabs
3
+ * Build to seemlessly work with the CCS-Framework YAML (yaml.de) not depending on YAML though
4
+ * @requires jQuery - tested with 1.9.1, 1.7 and 1.4.2 but might as well work with older versions
5
+ *
6
+ * english article: http://blog.ginader.de/archives/2009/02/07/jQuery-Accessible-Tabs-How-to-make-tabs-REALLY-accessible.php
7
+ * german article: http://blog.ginader.de/archives/2009/02/07/jQuery-Accessible-Tabs-Wie-man-Tabs-WIRKLICH-zugaenglich-macht.php
8
+ *
9
+ * code: http://github.com/ginader/Accessible-Tabs
10
+ * please report issues at: http://github.com/ginader/Accessible-Tabs/issues
11
+ *
12
+ * Copyright (c) 2007 Dirk Ginader (ginader.de)
13
+ * Dual licensed under the MIT and GPL licenses:
14
+ * http://www.opensource.org/licenses/mit-license.php
15
+ * http://www.gnu.org/licenses/gpl.html
16
+ *
17
+ */
18
+
19
+ (function($) {
20
+ var debugMode = true;
21
+ $.fn.extend({
22
+ // We assume there could be multiple sets of tabs on a page, so,
23
+ // the unique id for each invididual tab's heading is identified with params q and r (e.g., id="accessibletabscontent0-2")
24
+ getUniqueId: function(p, q, r){
25
+ if (r===undefined) {r='';} else {r='-'+r;}
26
+ return p + q + r;
27
+ },
28
+ accessibleTabs: function(config) {
29
+ var defaults = {
30
+ wrapperClass: 'content', // Classname to apply to the div that is wrapped around the original Markup
31
+ currentClass: 'current', // Classname to apply to the LI of the selected Tab
32
+ tabhead: 'h4', // Tag or valid Query Selector of the Elements to Transform the Tabs-Navigation from (originals are removed)
33
+ tabheadClass: 'tabhead', // Classname to apply to the target heading element for each tab div
34
+ tabbody: '.tabbody', // Tag or valid Query Selector of the Elements to be treated as the Tab Body
35
+ fx:'show', // can be "fadeIn", "slideDown", "show"
36
+ fxspeed: 'normal', // speed (String|Number): "slow", "normal", or "fast") or the number of milliseconds to run the animation
37
+ currentInfoText: 'current tab: ', // text to indicate for screenreaders which tab is the current one
38
+ currentInfoPosition: 'prepend', // Definition where to insert the Info Text. Can be either "prepend" or "append"
39
+ currentInfoClass: 'current-info', // Class to apply to the span wrapping the CurrentInfoText
40
+ tabsListClass:'tabs-list', // Class to apply to the generated list of tabs above the content
41
+ syncheights:false, // syncs the heights of the tab contents when the SyncHeight plugin is available http://blog.ginader.de/dev/jquery/syncheight/index.php
42
+ syncHeightMethodName:'syncHeight', // set the Method name of the plugin you want to use to sync the tab contents. Defaults to the SyncHeight plugin: http://github.com/ginader/syncHeight
43
+ cssClassAvailable:false, // Enable individual css classes for tabs. Gets the appropriate class name of a tabhead element and apply it to the tab list element. Boolean value
44
+ saveState:false, // save the selected tab into a cookie so it stays selected after a reload. This requires that the wrapping div needs to have an ID (so we know which tab we're saving)
45
+ autoAnchor:false, // will move over any existing id of a headline in tabs markup so it can be linked to it
46
+ pagination:false, // adds buttons to each tab to switch to the next/previous tab
47
+ position:'top', // can be 'top' or 'bottom'. Defines where the tabs list is inserted.
48
+ wrapInnerNavLinks: '', // inner wrap for a-tags in tab navigation. See http://api.jquery.com/wrapInner/ for further informations
49
+ firstNavItemClass: 'first', // Classname of the first list item in the tab navigation
50
+ lastNavItemClass: 'last', // Classname of the last list item in the tab navigation
51
+ clearfixClass: 'clearfix' // Name of the Class that is used to clear/contain floats
52
+ };
53
+ var keyCodes = {
54
+ 37 : -1, //LEFT
55
+ 38 : -1, //UP
56
+ 39 : +1, //RIGHT
57
+ 40 : +1 //DOWN
58
+ };
59
+ var positions = {
60
+ top : 'prepend',
61
+ bottom : 'append'
62
+ };
63
+ this.options = $.extend(defaults, config);
64
+
65
+ var tabsCount = 0;
66
+ if($("body").data('accessibleTabsCount') !== undefined){
67
+ tabsCount = $("body").data('accessibleTabsCount');
68
+ }
69
+ $("body").data('accessibleTabsCount',this.size()+tabsCount);
70
+
71
+ var o = this;
72
+ return this.each(function(t) {
73
+ var el = $(this);
74
+ var list = '';
75
+ var tabCount = 0;
76
+ var ids = [];
77
+
78
+ $(el).wrapInner('<div class="'+o.options.wrapperClass+'"></div>');
79
+
80
+ $(el).find(o.options.tabhead).each(function(i){
81
+ var id = '';
82
+ var elId = $(this).attr('id');
83
+ if(elId){
84
+ // Skip this item if it already exists.
85
+ if(elId.indexOf('accessibletabscontent') === 0) {
86
+ return;
87
+ }
88
+ id =' id="'+elId+'"';
89
+ }
90
+ var tabId = o.getUniqueId('accessibletabscontent', tabsCount+t, i);//get a unique id to assign to this tab's heading
91
+ var navItemId = o.getUniqueId('accessibletabsnavigation', tabsCount+t, i);//get a unique id for this navigation item
92
+ ids.push(tabId);
93
+ if(o.options.cssClassAvailable === true) {
94
+ var cssClass = '';
95
+ if($(this).attr('class')) {
96
+ cssClass = $(this).attr('class');
97
+ cssClass = ' class="'+cssClass+'"';
98
+ }
99
+ list += '<li id="'+navItemId+'"><a'+id+''+cssClass+' href="#'+tabId+'">'+$(this).html()+'</a></li>';
100
+ } else {
101
+ list += '<li id="'+navItemId+'"><a'+id+' href="#'+tabId+'">'+$(this).html()+'</a></li>';
102
+ }
103
+ $(this).attr({"id": tabId, "class": o.options.tabheadClass, "tabindex": "-1"});//assign the unique id and the tabheadClass class name to this tab's heading
104
+ tabCount++;
105
+ });
106
+
107
+ if (o.options.syncheights && $.fn[o.options.syncHeightMethodName]) {
108
+ $(el).find(o.options.tabbody)[o.options.syncHeightMethodName]();
109
+ $(window).resize(function(){
110
+ $(el).find(o.options.tabbody)[o.options.syncHeightMethodName]();
111
+ });
112
+ }
113
+
114
+ // Ensure that the call to setup tabs is re-runnable
115
+ var tabs_selector = '.' + o.options.tabsListClass;
116
+ if(!$(el).find(tabs_selector).length) {
117
+ $(el)[positions[o.options.position]]('<ul class="'+o.options.clearfixClass+' '+o.options.tabsListClass+' tabamount'+tabCount+'"></ul>');
118
+ }
119
+
120
+ $(el).find(tabs_selector).append(list);
121
+
122
+ // initial show first content block and hide the others
123
+ var content = $(el).find(o.options.tabbody);
124
+ if (content.length > 0) {
125
+ $(content).hide();
126
+ $(content[0]).show();
127
+ }
128
+ $(el).find("ul."+o.options.tabsListClass+">li:first").addClass(o.options.currentClass).addClass(o.options.firstNavItemClass)
129
+ .find('a')[o.options.currentInfoPosition]('<span class="'+o.options.currentInfoClass+'">'+o.options.currentInfoText+'</span>')
130
+ .parents("ul."+o.options.tabsListClass).children('li:last').addClass(o.options.lastNavItemClass);
131
+
132
+ if (o.options.wrapInnerNavLinks) {
133
+ $(el).find('ul.'+o.options.tabsListClass+'>li>a').wrapInner(o.options.wrapInnerNavLinks);
134
+ }
135
+
136
+ $(el).find('ul.'+o.options.tabsListClass+'>li>a').each(function(i){
137
+ $(this).click(function(event){
138
+ event.preventDefault();
139
+ el.trigger("showTab.accessibleTabs", [$(event.target)]);
140
+ if(o.options.saveState && $.cookie){
141
+ $.cookie('accessibletab_'+el.attr('id')+'_active',i);
142
+ }
143
+ $(el).find('ul.'+o.options.tabsListClass+'>li.'+o.options.currentClass).removeClass(o.options.currentClass)
144
+ .find("span."+o.options.currentInfoClass).remove();
145
+ $(this).blur();
146
+ $(el).find(o.options.tabbody+':visible').hide();
147
+ $(el).find(o.options.tabbody).eq(i)[o.options.fx](o.options.fxspeed);
148
+ $(this)[o.options.currentInfoPosition]('<span class="'+o.options.currentInfoClass+'">'+o.options.currentInfoText+'</span>')
149
+ .parent().addClass(o.options.currentClass);
150
+ //now, only after writing the currentInfoText span to the tab list link, set focus to the tab's heading
151
+
152
+ $($(this).attr("href")).focus().keyup(function(event){
153
+ if(keyCodes[event.keyCode]){
154
+ o.showAccessibleTab(i+keyCodes[event.keyCode]);
155
+ $(this).unbind( "keyup" );
156
+ }
157
+ });
158
+
159
+ // $(el).find('.accessibletabsanchor').keyup(function(event){
160
+ // if(keyCodes[event.keyCode]){
161
+ // o.showAccessibleTab(i+keyCodes[event.keyCode]);
162
+ // }
163
+ // });
164
+ });
165
+
166
+ $(this).focus(function(){
167
+ $(document).keyup(function(event){
168
+ if(keyCodes[event.keyCode]){
169
+ o.showAccessibleTab(i+keyCodes[event.keyCode]);
170
+ }
171
+ });
172
+ });
173
+ $(this).blur(function(){
174
+ $(document).unbind( "keyup" );
175
+ });
176
+
177
+ });
178
+
179
+ if(o.options.saveState && $.cookie){
180
+ var savedState = $.cookie('accessibletab_'+el.attr('id')+'_active');
181
+ debug($.cookie('accessibletab_'+el.attr('id')+'_active'));
182
+ if(savedState !== null){
183
+ o.showAccessibleTab(savedState,el.attr('id'));
184
+ }
185
+ }
186
+
187
+ if(o.options.autoAnchor && window.location.hash){
188
+ var anchorTab = $('.'+o.options.tabsListClass).find(window.location.hash);
189
+ if(anchorTab.size()){
190
+ anchorTab.click();
191
+ }
192
+ }
193
+
194
+ if(o.options.pagination){
195
+ var m = '<ul class="pagination">';
196
+ m +=' <li class="previous"><a href="#{previousAnchor}"><span>{previousHeadline}</span></a></li>';
197
+ m +=' <li class="next"><a href="#{nextAnchor}"><span>{nextHeadline}</span></a></li>';
198
+ m +='</ul>';
199
+ var tabs = $(el).find('.tabbody');
200
+ var tabcount = tabs.size();
201
+ tabs.each(function(idx){
202
+ $(this).append(m);
203
+ var next = idx+1;
204
+ if(next>=tabcount){next = 0;}
205
+ var previous = idx-1;
206
+ if(previous<0){previous = tabcount-1;}
207
+ var p = $(this).find('.pagination');
208
+ var previousEl = p.find('.previous');
209
+ previousEl.find('span').text($('#'+ids[previous]).text());
210
+ previousEl.find('a').attr('href','#'+ids[previous])
211
+ .click(function(event){
212
+ event.preventDefault();
213
+ $(el).find('.tabs-list a').eq(previous).click();
214
+ });
215
+ var nextEl = p.find('.next');
216
+ nextEl.find('span').text($('#'+ids[next]).text());
217
+ nextEl.find('a').attr('href','#'+ids[next])
218
+ .click(function(event){
219
+ event.preventDefault();
220
+ $(el).find('.tabs-list a').eq(next).click();
221
+ });
222
+ });
223
+ }
224
+ });
225
+ },
226
+ showAccessibleTab: function(index,id){
227
+ debug('showAccessibleTab');
228
+ var o = this;
229
+ if(id) {
230
+ var el = $('#'+id);
231
+ var links = el.find('ul.'+o.options.tabsListClass+'>li>a');
232
+ el.trigger("showTab.accessibleTabs", [links.eq(index)]);
233
+ links.eq(index).click();
234
+ } else {
235
+ return this.each(function() {
236
+ var el = $(this);
237
+ el.trigger("showTab.accessibleTabs");
238
+ var links = el.find('ul.'+o.options.tabsListClass+'>li>a');
239
+ el.trigger("showTab.accessibleTabs", [links.eq(index)]);
240
+ links.eq(index).click();
241
+ });
242
+ }
243
+ },
244
+ showAccessibleTabSelector: function(selector){
245
+ debug('showAccessibleTabSelector');
246
+ var el = $(selector);
247
+ if(el){
248
+ if(el.get(0).nodeName.toLowerCase() === 'a'){
249
+ el.click();
250
+ }else{
251
+ debug('the selector of a showAccessibleTabSelector() call needs to point to a tabs headline!');
252
+ }
253
+ }
254
+ }
255
+ });
256
+ // private Methods
257
+ function debug(msg,info){
258
+ if(debugMode && window.console && window.console.log){
259
+ if(info){
260
+ window.console.log(info+': ',msg);
261
+ }else{
262
+ window.console.log(msg);
263
+ }
264
+ }
265
+ }
266
+ })(jQuery);
@@ -0,0 +1,179 @@
1
+ @media all {
2
+
3
+ /* hCards + hCalendars */
4
+ .vcard,
5
+ .vevent {
6
+ line-height: 1.5em;
7
+ border:2px solid #e0e7b8 !important;
8
+ padding:30px 5px 5px 5px !important;
9
+ border-radius:8px;
10
+ -moz-border-radius:8px;
11
+ -webkit-border-radius:8px;
12
+ margin: 0 0 1.5em 0 !important;
13
+ /* small IE-Fix for background images */
14
+ zoom:1;
15
+ }
16
+
17
+ span.vcard,
18
+ span.vevent {
19
+ padding:2px 1px 2px 70px !important;
20
+ margin:0 2px 0 !important;
21
+ }
22
+
23
+ .vcard {
24
+ background-color:#f8f8ec;
25
+ background-repeat:no-repeat;
26
+ background-position:5px 5px;
27
+ background-image: url(icons/hcard.png) !important;
28
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD0AAAAQCAMAAACSjoczAAAAsVBMVEVcjAFmmQb4+Ozd5sGnw2q5z4fv8t56piLU4bJwoBSwyXmMsj+VuE3C1ZWDrDDm7M/L26SOuziu4xpqnQeLtzao3RWVzQGNxQSm2xJ0qwyr4BeevlxjlQS47CJ1rQ2JtjWRyQKTvz1wpQrB8zFuowmf1Q14rwyFvAeLwwW88CWz5x206B+JwAZ9tAqbzRRrlhmazwij2BCBuAmZxjqi1Bh8rCP///9fjwKWzAWs3SGdzxWFTyrgAAABPElEQVR4XpXQ1W7EMBCG0cyYHaZlZipz3//B6tlkt03Vi+ZTbqzoyL/s4bXlfn88vmKbat3pODw+ZoOPtpow6fEhG/R6LXWapjibzXB5yMpy/dxOF5MJ6S4us/Jhff95AbFm/9MFdrtOE36/rQDzASBsgjhpUqad7vcrjSVVAWkihlI2te83NdiznuJut+vgjyzEBCRXRiCCUCZECwB6aAyn/wYsrfOKxWKKp9N2+3jj2tTXREhxkwhIEFQSgIyjSEuhBWi0IDRjMNSkX7DGm01T0z1RQBO1M7Sccd+dFL8uX61WiE/UfD7HKgHsT63Bug/NT52n+CtpjNBJXC+vdaC0O1mHOISaoQmYV+R5fnfpyuOhAaUlN0rgRTMF0gceWXpNEBganzQAjEZvLtKt8oqzddrzvPYai++wbV80NCCamQ5vZwAAAABJRU5ErkJggg==') !important;
29
+
30
+ a {
31
+ padding-left:11px;
32
+ background: url(icons/external_link.png) top left no-repeat;
33
+ background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAANAQMAAACn5x0BAAAABlBMVEX///9jlQQUCBxBAAAAAXRSTlMAQObYZgAAACBJREFUCB0FwaEJAAAIALA1/xYEs6/axQ0QLEUzJMkB8FxYBJy/sjNiAAAAAElFTkSuQmCC') top left no-repeat;
34
+ color:#679A06;
35
+ }
36
+
37
+ .adr {
38
+ display:block;
39
+ margin:0.5em 0;
40
+ }
41
+
42
+ .email {
43
+ font-family:Consolas, "Lucida Console", "Andale Mono", "Bitstream Vera Sans Mono", "Courier New", Courier;
44
+ }
45
+ }
46
+
47
+
48
+ .vevent {
49
+ background:#f8f8ec url(icons/hcalendar.png) 5px 5px no-repeat !important;
50
+ background: #f8f8ec url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAQCAMAAABjhdy+AAAAtFBMVEVcjAH4+OxmmQa5z4ewyXnU4bJwoBSMsj/d5sGVzQFqnQeLtzbm7M/v8t6Ouziu4xp6piKo3RWNxQSLwwXC1ZXL26S06B9jlQR0qwyJtjWr4BeDrDCJwAanw2q47CKVuE11rQ3B8zGevlyRyQKj2BBwpQp4rwyFvAeazwi88CVuowmz5x2m2xKf1Q1rlhmi1Bh9tAqBuAn///+Zxjqe1AyWzAVfjwJ8rCOTvz2s3SGdzxWbzRS/OR+KAAABFklEQVR4Xo3P1W4EMQyG0fwODcMyM0OZ+/7vVc80u6tWq3Y+KXc+siNwbrrdtloP+DdHfJ/FqJX23qsSvyCjfdo7HKqQJEkwn88x3ad5frytQMLJpCA1TNN8cdx8lCDSXPwHCVGrMckXT5vnz5Io4vQ10IyYdDrfBHkRHMH1NOmSdFGv1324ziSmIcBPGiOhqWEyD0RkRbhcdjEYrNf3d9zqRKy1GGdoUtQ0niatyeqsD0nSK8grnFitzkQpxfPerI+xsZYUKyhyh+12O+CRe+Pw4y9GmQbvYq5/kSDBJUe01hGGhmI0SGoJRzxSkQiDILg5dSGc4oEZAJlRP3YEQ1IFIaJ2+4VjUiERloCJEKIiQXgJlfoCe5IaqIOvDWoAAAAASUVORK5CYII=') 5px 5px no-repeat !important;
51
+ }
52
+
53
+ .vevent {
54
+ a {
55
+ padding-left:11px;
56
+ background: url(icons/external_link.png) top left no-repeat;
57
+ background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAANAQMAAACn5x0BAAAABlBMVEX///9jlQQUCBxBAAAAAXRSTlMAQObYZgAAACBJREFUCB0FwaEJAAAIALA1/xYEs6/axQ0QLEUzJMkB8FxYBJy/sjNiAAAAAElFTkSuQmCC') top left no-repeat;
58
+ color:#679A06;
59
+ }
60
+
61
+ p {
62
+ margin: 0;
63
+ }
64
+
65
+ .description {
66
+ display:block;
67
+ margin-top:1em;
68
+ }
69
+
70
+ .location {
71
+ display:block;
72
+ color:#679A06;
73
+ }
74
+
75
+ .summary {
76
+ display:block;
77
+ color:#679A06;
78
+ font-weight:bold;
79
+ }
80
+ }
81
+
82
+ /* XFN relationship */
83
+
84
+ a.xfnRelationship {
85
+ padding-right:26px;
86
+ background-image: url(xfn/xfn-small.png);
87
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAOCAMAAADzLXfBAAAAq1BMVEXGxsb///+Zzg6NxAqVzA32+u6JxAqKwxfK6zya0xCh1xKFwQrt9tyk2ROX0Q+Fvgi75SvU6aya0h6z4SOl2hSQxgqDvwmq0xWd0hCYyQ6MwwmRzQ1/uwi32XvJ4puizxKu1RiRxwyg1xONyQuUyCrD4oye1RGLwgfF6TeIwQiEvQe/5jHc7b3O7EGSyguu1mq22hrE5H6122vD5zSIvxu833zi7syUyxuo3RZV5oaGAAAAAXRSTlMAQObYZgAAAN1JREFUeF51kNVuxWAMg+sfi8wMh/mM9/5PtrS7mzTLiZUvuYphuDr/K+0u+DtJwsvb0TRvN9M0j5cwTGihbS/1PC9Nqa+xlmPktj371mxZlu/7e3Jp7e2Fz3aMKJZRA6CBjF/gzzPxsmRfEjux6VWzgcQHNmVJnDF2f0jN1PXxqrCTHThj+cqnDluhADjougiKMboX4q4lIu70rSLeSjhC0P2UbdG/y2vbn6YAnfpEME3EeXY4B+RTUHMKHpwPPMsNzVfV5KV+h9qhP2RVNRTFOD4XjWMxDJV2//vbD/KGFzMfCBH8AAAAAElFTkSuQmCC');
88
+ background-repeat:no-repeat;
89
+ background-position:right;
90
+
91
+ &[rel~="colleague"],
92
+ &[rel~="co-worker"] {
93
+ padding-right:21px;
94
+ background-image: url(icons/xfn/xfn-colleague.png);
95
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAOCAMAAAAVBLyFAAAAYFBMVEXGxsa+z+woYcAmYL++z+u9zuvZ4/TO2/H///++zuvd5/WgueLy9fvR3fJVg87u8/mRr9/G1e7q8Pk0asP7/P5diM9CdMfC0u1chs+0yOmdt+Ln7fh5nNlQfsxPfstdiNANDsYBAAAAAXRSTlMAQObYZgAAAI5JREFUeF5tUNcKw0AMszxuZe90//9f9o7QkkL1IiHkSeQMagoDEA3mspPCD5IjFL4IszU6Fg3SQi9m3jvzRSvFQguzLB38kcKRkm/KjsK7iPRJ06lXvco6bsN8siruefDoPlZdrdKGVvbKN7c5GFmYmPk5PFhkmnULmlNccGUWlhAt4N9B5FAQAVWDwtEbDGwHzDGQ3uIAAAAASUVORK5CYII=');
96
+ }
97
+
98
+ &[rel~="met"] {
99
+ padding-right:32px;
100
+ background-image: url(icons/icon-xfn.png);
101
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAASCAMAAACQGyXoAAAAwFBMVEXGxsb///+Fvgj2+u6JxAqh1xKKwxeRxwyNxAq32XvJ4puNyQuIwQiVzA2Dvwnt9tzD4oyZzg6SyguMwwmRzQ2a0xCFwQqizxKX0Q+u1RjU6ayg1xOq0xWe1RG122uu1mqQxgqd0hCl0U2YyQ6a0h6LwgfO7EF/uwiUyCqz4SPK6zyl2hSq01a75Svc7b2k2ROEvQe/5jGYzDnD5zSc0CzE5H6833zF6TeIvxun3BOUyxvi7syo1z222hq924uo3RbH6VQeAAAAAXRSTlMAQObYZgAAAT1JREFUeF59keVunDEQRX2NHzLDMjMHiu//Vp1ttpUiJTnSjD33eH6ZsXCrg4/Q45Ckjn+vVrvd6fK8Xq/n8zn158tpt1vlOmTb6vUz4jHT6nDYHIjNho7H5dEKFqiDaqu8bfM8r4hej0qN8p5Sd9sqNUVTTUWTgbhlENP8hqptW7I9eh3hHOHqYt/v/3CBKHtCRjlnwWg0ir+JPSLfhSOz2IXA8gku5bQbE8kAQscS+0H/KhEJx4ZFcfBmjQ0sfQliW8C20UCSpV3f9xMtGjRWAWchXbKLUKCgnHaTJJEOXn7hvIAjkySAXQyAe07WmOESDn8Re7KeMRy25N/BjTFkreFwduQplcd5at0HK+XHGeUB09aD9F5/2785LdjWm/0nnb3DG7NQe8PJpCy7rq5/vlHXXVeWE0+HX//+Hw2+L1y/3yDiAAAAAElFTkSuQmCC');
102
+ }
103
+
104
+ &[rel~="colleague"][rel~="met"],
105
+ &[rel~="co-worker"][rel~="met"] {
106
+ padding-right:26px;
107
+ background-image: url(icons/xfn/xfn-colleague-met.png);
108
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAOCAMAAADzLXfBAAAAYFBMVEXGxsa+z+woYcAmX7+9zuv///++zuve5/XF1O6huuP7/P7Z4/RCdMfq8PjS3vLN2/E0asOxxudQfszZ5PVWg86Qr95bhs/v8/rn7fjy9ftdiNDe6PV5nNitxOe6zeqdtuISlCqmAAAAAXRSTlMAQObYZgAAAJ9JREFUeF5tkIcOwzAIRH0HHtm7e/z/XxYnalOpRboDPSMb41ylsAhqCoDCDNG56ep/I0aHnO8kHy2azwGc5nQR4eEYui8eVk4ax86Dw9b/zQfx2PiN5BIRDbZ+oH/zcy11k1JpnBl73d4tuDB1esy1mNb+c1Fz9rMciq49lfucPSljGs37EmmfxwD5pIjQA+/+avq/B1cBCFCFafV1by9mVwgBHNGRhAAAAABJRU5ErkJggg==');
109
+ }
110
+
111
+ &[rel~="friend"] {
112
+ padding-right:21px;
113
+ background-image: url(icons/xfn/xfn-friend.png);
114
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAOCAMAAAAVBLyFAAAAYFBMVEXGxsYoYcC+z+wmX7++z+u9zuv////Z4/Spv+a+zuupwOZCdMfE0+7e5/X6+/3y9fszaMKfuOKtw+bo7/leidDU3/Jbhs94nNi5y+qOrNy/0OzZ5PWuxOe0yOnj6/fd5vUgjr18AAAAAXRSTlMAQObYZgAAAItJREFUeF5lzwcKwzAMBVBN7+zuef9bVmoaaKnA/vD4FhggUhYVUb8sriZd+JkugnjemPHUysNNIHvskPmwlIsTgayERulN+UOMuJGCehytdd6n/RcNFesy33snWR9OyNikLBsNU0X2/RO1rg8EGkYHZJuxL7O1KKDDekJK1orPvw9BVNFMpKpkIRFeAVEHR3zEFfkAAAAASUVORK5CYII=');
115
+ }
116
+
117
+ &[rel~="friend"][rel~="met"] {
118
+ padding-right:26px;
119
+ background-image: url(icons/xfn/xfn-friend-met.png);
120
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAOCAMAAADzLXfBAAAAYFBMVEXGxsa+z+soYcC+z+y+zusnX7+9zuupv+b////e5/Vch8/o7vn6+/2huuPE1O7U3/KpwOZCdMe/0Os0acKuxOfy9fuxxuff5/aVsd+0yOm6zOqtw+ayx+jZ4/R5nNi/z+u6Bqx7AAAAAXRSTlMAQObYZgAAAKRJREFUeF5t0AdOBTEMBNCMW9rW3xtw/1vikGVBAkdRrBfJGjmENwPMwH4BhnfMV+ec/la+BjQ4KdFjWur+wYGbFyUtdfn45bI5lRqxu21OX37oeCF3a/5OSrc5zo5zetE+57zSWp/3wV0v5IDuo5JOh1hbr30+p/O4kruWUaY8/OQ8kiN56XFYTt0RkJq040+K8Tvn/3vIviCBgMUMBhFhCFsOn7mzCfRhKm+OAAAAAElFTkSuQmCC');
121
+ }
122
+
123
+ &[rel~="sweetheart"] {
124
+ padding-right:21px;
125
+ background-image: url(icons/xfn/xfn-sweetheart.png);
126
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAOCAMAAAAVBLyFAAAAYFBMVEXGxsYoYcD4Qq6+z+vZ4/Q/ccb4UbX///++zuu9zuv/8/rd5vUlXb5bhs/6e8b5cMLy9fv90OuhuuN4m9i2yOlSfcn8t+H8oNaJqNqzmNPD0e3w3/KtxOb0hMv7n9X9xObCRbgHAAAAAXRSTlMAQObYZgAAAHlJREFUeF51j1cKA0EMQ12mby3p9f63jDxLSEJY2UbwkD9E5FQzNuEyzIE08UeNIzW/MfOul6cxXVEH1E0ybKBEaSO1AJ2O8vhCo2d/DaGsKJvNSF0Gmd6pcfYMtfvzvT+UmJEyUFnLRUJ95I+iCFL/hWptK55wNo5etO8G3lYCx4oAAAAASUVORK5CYII=');
127
+ }
128
+
129
+ &[rel~="sweetheart"][rel~="met"] {
130
+ padding-right:26px;
131
+ background-image: url(icons/xfn/xfn-sweetheart-met.png);
132
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAOCAMAAADzLXfBAAAAYFBMVEXGxsYoYMDg5vX4Qq6+z+z///+9zutCdMfY4vT/8vpahc7y9fuhuuP4TrMlXb76ccL90Ov6esWxxuf9xOb5Wbc0asT8uOKyx+i2yel4nNj8odeJqNqzmNOtw+b7n9X3gMlS9TiMAAAAAXRSTlMAQObYZgAAAINJREFUeF6N0McKAzEMRVE9FZepJb3//19GTGK8GAI54M1F2EZEKTjV9ehHYM9sW8wUzD0AnGfZWaGk5hoAzSTjHz1s+4IyfwFwu8rTY7ITrPQ2InK/z96xoN7fAdBRJnMo77ZdhBua+2s+ZlsF7wd8DcjS13+iMpEy/2sPlLQqu2N6A+dbBzWluY7VAAAAAElFTkSuQmCC');
133
+ }
134
+
135
+ &[rel~="child"] {
136
+ padding-right:21px;
137
+ background-image: url(icons/xfn/xfn-child.png);
138
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAANCAMAAACTkM4rAAAAvVBMVEXM2e/B0Oz///++zuvA0OzAz+u+zuvA0Oy/z+vz9vsoYcChwv/q7/n////p7vi+zuszasbn7viVseCkxP/+//87b8bz9vzs8fltlNTt9P/r8Pnm7/+ZtOGateFrk9QsZMGnxv/7/P/8/f46bsXa5PS60v/6/P9xltUuZcLQ3PHT4v+yzf/w9PuLqd0zacM3bMRymN2CqO6xzf/8/f9Fdsh6o+uox//N3/+txOfE2f81a8bG1e5ejNu20P/w9v9zpagkAAAACXRSTlP45gAUm+oS6Z4bD6DtAAAAlUlEQVQIW2WPVQ7DQAwFHY692XCZmZnx/seqk0ZJpc6Pn0Z6sg2qqStejqKbKmgGuIhYxxQXDA1siKWstDvVskyIWVgOhyYRhamSjgUe8gxZTWq3Bkf0vurBqvUS3V6h+gOi4UiIcaGCKdFsLhZ5cblac3Gz3e0PqbKc4EgZp/Ml2WjDtZRw933/GUVvFtn1+HP9/48fzYIO5ZD33dQAAAAASUVORK5CYII=');
139
+ }
140
+
141
+ &[rel~="parent"] {
142
+ padding-right:21px;
143
+ background-image: url(icons/xfn/xfn-parent.png);
144
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAOCAMAAAAVBLyFAAAA3lBMVEXA0OzJ1u7Az+u+zuu+zuu/z+v///+/z+vI1u7A0OwoYcChwv////++zuvw9Prx9Puyzf/9/v7n7ffm7Pf+/v/9/v+iw//S4f3l7fyryf/7/f/f5/a30P/Y5v9nj9Pu8vspYsCPse3P4P+7zevb6P9didTc6f9Rf8x1m9n2+f+OrN6tw+qlxf/+//+VseCTte/U4//k6/d7ntgrY8E4bchql+MvZsKnxv/F2f/Z4/Q3bMQwaMSVuPnV5P+tw+ZdiNBch89Mfc9Jes9Ies9Hes5Hec5Gec6StPCQtPbQ4P5zH8oEAAAACnRSTlPk+OYREJgAmfjnFvieJgAAAK9JREFUeF5lz9WOw0AMhlGHOok9kKTMzMzLjO//QutuqipSvyvrXPmHjOuBugSemwHHtmJtuFKxaXRs2Q4IP5KnegUqV6SMfAFBliHfrdaIqM5nNgClmRrYajN1mLQCZaTMHRD7TAMmk5AcIo6ICuMUTRCnRLN5ihaISyJa5RPScr3ZIu72P0THm5xW/MTtHf53/0BEj/yE8J+eX17f3j8+v77DMPz1xXlQ0nnQ9ew/oEsSiPZewisAAAAASUVORK5CYII=');
145
+ }
146
+
147
+ &[rel~="spouse"] {
148
+ padding-right:21px;
149
+ background-image: url(icons/xfn/xfn-spouse.png);
150
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAOCAMAAAAVBLyFAAABaFBMVEW+zuu+zuvAz+z///+/z+vA0Oy/z+vI1u7J1u7A0OzA0Oz///++zuvw9Prx9Pv9/v6usTfw8O+7vjv9/f3n7ffm7PfT089+f1nR1EGRkYjGxsL29vXc3Nr+/v6oqKKfojOUly/Y2NXc3NlrazHAwzySlC93eEttbzJ7fDjIyz5MTSSAgTrGyT7z8/Nub0e6vTvx8fDz8/KVl0LM0ECChChqazySkoJ8fyaRky5TVC+QkzF3eDONjy2doDJ3eDuLi36KjC3v7+6HiTZ9fyvr7vTs7/WWmTF0dTjq6uimqTRzdEKDhUWTlS/o6OaEhTqChCvo6vGCg0KlqDWysqyChDh6eyitsDdvcDK2trC3ujlyc0HHx8KqrTeBgj55eViHiS9paUijpTNcXUV9fVirrjaYmjHHx8O9vbeChDZ2eCp+f012dyxgYiS/wjy4uzp3eDK4uLP5+fjKysbExz1zc07u8fjJycX4+PfL29bJAAAAC3RSTlMPEeQAl+SZ+Pjo54Y2LlAAAADTSURBVHhebY/TjgVBAAX7Enu6B5e2bWNp27aN39+ZyWZf7p7HSiqpQzREq6N/02kloFIbrYz7HbMa1SqiN/BAzi4CRXsJ4A16YrIhHI8JzVYkKHTzIdiGCGXe42jSkWik0o5M9tbLKKHcXWHYgnKlWoOl/v7BSeiz3fFB7PUPR0bhGxufkNDk1DQwMzs3v7AILC2vyOLq2jqwsbm1Dezs7ski2z8IHLlOAqdnrvOLyytG5YjrG7PTfP/w6Hx6fpEilNTXN7/b43H7v76V1MFD/9z+AVw1IjFL8DyHAAAAAElFTkSuQmCC');
151
+ }
152
+
153
+ &[rel~="me"] {
154
+ padding-right:21px;
155
+ background-image: url(icons/xfn/xfn-me.png);
156
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAOCAMAAAAVBLyFAAAAWlBMVEXGxsYoYcC+z+u+z+y9zusnYL/Z4/S+zusoYMBdiM/y9fteidDd5/QnYMDe5/VCdcihuuPy9Ps1a8SUsN+8zetdidDJ1u7Z5PV4m9hCdMeuxOc0asStw+b///+reoflAAAAAXRSTlMAQObYZgAAAH1JREFUeF5dj1cOBDEIQ7Ehbfpsr/e/5qYoH7Mg2eLJICHiSVU1Ja2Iz2T6Hmq5i1bwAnBpTIXVE4DUUUuNEW78QwCuDQWx6o8InBuihOrDiud+XNwA3DoKObKtmB3m9Bl66uQAF13Wd0d5KF2knvfL8aGpPKlUUoMZSaOXHyGOEL2qtmFaAAAAAElFTkSuQmCC');
157
+ }
158
+ }
159
+
160
+ /* rel-tag */
161
+
162
+ a[rel~="tag"] {
163
+ padding-right:32px;
164
+ background: url(icons/icon-rel-tag.png);
165
+ background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAASCAMAAACQGyXoAAAAwFBMVEXGxsb///8zcMkhXsDx9PpCf9A5dcsnYL8tZcEzasQoYcAlYsJljtJFgtOluuF1ltM9e85KiNUtbMgudMseVbgpZMFHhNNLidYoaMW3yehPjddqlNYvacVXlNtpjM7e5/UhWrxqo+FFecxbgsp+sufR2+90quM3ftCBotonZsTj6/c0es6Kqt1Pgc9Wk9vT3fHJ2PE3Zr9Xi9SrweaIo9iUs+KVrNvG1O6Fotc6gtJTkNrBzukbW7+HuOhOjNh+ntfOA5d8AAAAAXRSTlMAQObYZgAAATtJREFUeF51kdXOHDEMheMgDDLDMtPP3L7/W9Wzq6q92S+J5eOjJJZMyK4xyuK67r9gZtwBTSO66XS1Wi0Wi58bmKGeenogjehOpw65xX/i1AmXmPrzLpqoui5ygXjRr1zkRX3TqOo6I7aIvAuMPHovcBFR4T1WHHgTRYUlNs9Fs3mDzSGUZw4zTxz57rB5Cr08z4jCR0P6BG0YHqGCIJQVzKSUIdbRDRHqoyt/g+QVNbwyM9c9Yhn/lYjxQcv2jc/PXGuodABwoFKiS5HWB0sNjMztcniwKTy3lGJXMZL5MNn20E8e4FX1sAwCeM/i2BJVIg66js/1li0HpuZfAMs+K0t0HURNJswZD7uFNE3ZWCaG3UeThn3fg7k4Qca2ZRwnyX6/Xn8g6/0+SeLSYXocsGuuc1e3qP6f/h96Fy3YfuOuuQAAAABJRU5ErkJggg==');
166
+ background-repeat: no-repeat;
167
+ background-position: right;
168
+ }
169
+
170
+ /* geo */
171
+
172
+ abbr[class~="geo"] {
173
+ padding-right:32px;
174
+ background: url(icons/icon-geo.png) no-repeat right;
175
+ background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAASCAMAAACQGyXoAAABF1BMVEWSxzD///+n1DSfzTKr1zWZyjGx3Det2zau2zbw9+Kk0jSgzjK62Tev1DXG5juXyTC31zbT60rW7FCh0DO32Gey1l6ayjGcyzGy3TebyjGs2TbQ5o/n9MSUyTCmzzPO5o+z3Ty/4zr6/PPD42X1+ubw+Nux2EHM6EGu1kHU6JnJ5z7r9c+v10XI44XO6kW43kbj8rmr1Tew2TvL5X2v3DfB3Tiz3zjR55mVxjCr1Tiu2TjY6qPh77nJ433C4Gy+3WvG5W3G4n2l1jXM5Ia23kOx3Dq04Dir1UC02U/S6I+t2Dey2Em12kqo1DigzjOm0zXk8cO32lW83WSt1jri8Lmp1DbB33T0+eao1zWl0zSizjS02kKx3Dmg7209AAABHUlEQVR4Xn3R1W4DQQwFUHtgmcPMzGVmZub//456U6VKpaRHGkvXV34aQD0qYRYZ0xF0yU5KJcdpN/q+7wdBQLPfaDtO6U3qED1YmYfFQGqKklRIcholWuYANEWbI2xVTVOPO1gbqMXscJitqMUaVgdqiNp0Or2EWKni1xF2srW9n1BUab8GIIRYxAshnhY+UYzDhhB4LgjdMsYOy2yU2anXkVxtI21eNwVNGLcZZOtb2Krj4/OIArXlFiN0axjGJRbeH7DQxLNu97qJhdt9vDcIAETIC2L5rneKZDWyS7MXCVFrmpzc8CkfnJimSW2C88RMnAPISUiFbzwmOZWDqBv/lYr/4cZAly7P523b8yxr+YdleZ5t512p///73zK9KpM38kTwAAAAAElFTkSuQmCC') no-repeat right;
176
+ border:none;
177
+ cursor:default;
178
+ }
179
+ }