jekyll-theme-pirati 0.1.0

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 (232) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +55 -0
  5. data/_includes/accordeon/accordeon-column.html +8 -0
  6. data/_includes/accordeon/accordeon.html +12 -0
  7. data/_includes/article-list/featured_article.html +55 -0
  8. data/_includes/article-list/list-3col.html +55 -0
  9. data/_includes/article-list/pagination.html +36 -0
  10. data/_includes/article-list/standard_article.html +45 -0
  11. data/_includes/disqus_comments.html +20 -0
  12. data/_includes/footer.html +23 -0
  13. data/_includes/google-analytics.html +12 -0
  14. data/_includes/head.html +60 -0
  15. data/_includes/header.html +115 -0
  16. data/_includes/icon-github.html +1 -0
  17. data/_includes/icon-github.svg +1 -0
  18. data/_includes/icon-twitter.html +1 -0
  19. data/_includes/icon-twitter.svg +1 -0
  20. data/_includes/js/custom.js +245 -0
  21. data/_includes/js/fb.js +15 -0
  22. data/_includes/js/main.html +18 -0
  23. data/_includes/js/piwik.js +11 -0
  24. data/_includes/js/tw.js +15 -0
  25. data/_includes/people/item.html +31 -0
  26. data/_includes/people/list-2col.html +25 -0
  27. data/_includes/right-bar/bar_cal.html +15 -0
  28. data/_includes/right-bar/bar_fb.html +23 -0
  29. data/_includes/right-bar/bar_foto.html +20 -0
  30. data/_includes/right-bar/bar_map.html +37 -0
  31. data/_includes/right-bar/bar_people.html +25 -0
  32. data/_includes/right-bar/bar_program.html +35 -0
  33. data/_includes/right-bar/bar_teams_summary.html +22 -0
  34. data/_includes/right-bar/bar_teams_toc.html +31 -0
  35. data/_includes/right-bar/bar_textbox.html +23 -0
  36. data/_includes/right-bar/bar_toc.html +77 -0
  37. data/_includes/right-bar/bar_tw.html +16 -0
  38. data/_includes/right-bar/bar_video.html +23 -0
  39. data/_includes/right-bar/rbar.html +39 -0
  40. data/_includes/right-bar/social-bar.html +16 -0
  41. data/_includes/social.html +14 -0
  42. data/_includes/submenu.html +22 -0
  43. data/_includes/title/title_header.html +9 -0
  44. data/_layouts/blank.html +14 -0
  45. data/_layouts/compress.html +10 -0
  46. data/_layouts/default.html +23 -0
  47. data/_layouts/home.html +34 -0
  48. data/_layouts/page.html +34 -0
  49. data/_layouts/post.html +110 -0
  50. data/_layouts/redirected.html +13 -0
  51. data/_layouts/team.html +45 -0
  52. data/_sass/_base.scss +24 -0
  53. data/_sass/_settings.scss +569 -0
  54. data/_sass/_sprites.scss +0 -0
  55. data/_sass/components/BasicPage.scss +464 -0
  56. data/_sass/components/BlogPosting.scss +274 -0
  57. data/_sass/components/Person.scss +42 -0
  58. data/_sass/components/Slider.scss +0 -0
  59. data/_sass/components/banner.scss +75 -0
  60. data/_sass/components/blockquote.scss +53 -0
  61. data/_sass/components/card.scss +154 -0
  62. data/_sass/components/contact-bar.scss +93 -0
  63. data/_sass/components/content-card.scss +31 -0
  64. data/_sass/components/cta-button.scss +54 -0
  65. data/_sass/components/header-bar.scss +108 -0
  66. data/_sass/components/hero.scss +164 -0
  67. data/_sass/components/highlight.scss +60 -0
  68. data/_sass/components/icon.scss +25 -0
  69. data/_sass/components/pagination.scss +75 -0
  70. data/_sass/components/pripoj-se.scss +97 -0
  71. data/_sass/components/scroll-top.scss +32 -0
  72. data/_sass/components/simple-accordion.scss +85 -0
  73. data/_sass/components/tag.scss +30 -0
  74. data/_sass/components/top-bar.scss +492 -0
  75. data/_sass/components/top-sub-nav.scss +186 -0
  76. data/_sass/components/vertical-navigation.scss +68 -0
  77. data/_sass/components/welcome-header.scss +188 -0
  78. data/_sass/components/widget-accordion.scss +293 -0
  79. data/_sass/components/widget-share-box.scss +57 -0
  80. data/_sass/components/widget-simple-text.scss +15 -0
  81. data/_sass/foundation/_global.scss +638 -0
  82. data/_sass/foundation/components/_accordion-menu.scss +32 -0
  83. data/_sass/foundation/components/_accordion.scss +129 -0
  84. data/_sass/foundation/components/_badge.scss +55 -0
  85. data/_sass/foundation/components/_breadcrumbs.scss +95 -0
  86. data/_sass/foundation/components/_button-group.scss +195 -0
  87. data/_sass/foundation/components/_button.scss +265 -0
  88. data/_sass/foundation/components/_callout.scss +105 -0
  89. data/_sass/foundation/components/_close-button.scss +61 -0
  90. data/_sass/foundation/components/_drilldown.scss +79 -0
  91. data/_sass/foundation/components/_dropdown-menu.scss +221 -0
  92. data/_sass/foundation/components/_dropdown.scss +65 -0
  93. data/_sass/foundation/components/_flex-video.scss +63 -0
  94. data/_sass/foundation/components/_flex.scss +28 -0
  95. data/_sass/foundation/components/_float.scss +27 -0
  96. data/_sass/foundation/components/_label.scss +55 -0
  97. data/_sass/foundation/components/_media-object.scss +115 -0
  98. data/_sass/foundation/components/_menu-icon.scss +9 -0
  99. data/_sass/foundation/components/_menu.scss +314 -0
  100. data/_sass/foundation/components/_off-canvas.scss +177 -0
  101. data/_sass/foundation/components/_orbit.scss +193 -0
  102. data/_sass/foundation/components/_pagination.scss +162 -0
  103. data/_sass/foundation/components/_progress-bar.scss +64 -0
  104. data/_sass/foundation/components/_reveal.scss +172 -0
  105. data/_sass/foundation/components/_slider.scss +133 -0
  106. data/_sass/foundation/components/_sticky.scss +38 -0
  107. data/_sass/foundation/components/_switch.scss +232 -0
  108. data/_sass/foundation/components/_table.scss +234 -0
  109. data/_sass/foundation/components/_tabs.scss +165 -0
  110. data/_sass/foundation/components/_thumbnail.scss +54 -0
  111. data/_sass/foundation/components/_title-bar.scss +89 -0
  112. data/_sass/foundation/components/_tooltip.scss +104 -0
  113. data/_sass/foundation/components/_top-bar.scss +168 -0
  114. data/_sass/foundation/components/_visibility.scss +132 -0
  115. data/_sass/foundation/forms/_checkbox.scss +40 -0
  116. data/_sass/foundation/forms/_error.scss +84 -0
  117. data/_sass/foundation/forms/_fieldset.scss +54 -0
  118. data/_sass/foundation/forms/_forms.scss +34 -0
  119. data/_sass/foundation/forms/_help-text.scss +30 -0
  120. data/_sass/foundation/forms/_input-group.scss +128 -0
  121. data/_sass/foundation/forms/_label.scss +48 -0
  122. data/_sass/foundation/forms/_meter.scss +109 -0
  123. data/_sass/foundation/forms/_progress.scss +85 -0
  124. data/_sass/foundation/forms/_range.scss +144 -0
  125. data/_sass/foundation/forms/_select.scss +67 -0
  126. data/_sass/foundation/forms/_text.scss +163 -0
  127. data/_sass/foundation/foundation.scss +102 -0
  128. data/_sass/foundation/grid/_classes.scss +151 -0
  129. data/_sass/foundation/grid/_column.scss +126 -0
  130. data/_sass/foundation/grid/_flex-grid.scss +274 -0
  131. data/_sass/foundation/grid/_grid.scss +60 -0
  132. data/_sass/foundation/grid/_gutter.scss +34 -0
  133. data/_sass/foundation/grid/_layout.scss +51 -0
  134. data/_sass/foundation/grid/_position.scss +73 -0
  135. data/_sass/foundation/grid/_row.scss +95 -0
  136. data/_sass/foundation/grid/_size.scss +24 -0
  137. data/_sass/foundation/settings/_settings.scss +567 -0
  138. data/_sass/foundation/typography/_alignment.scss +22 -0
  139. data/_sass/foundation/typography/_base.scss +443 -0
  140. data/_sass/foundation/typography/_helpers.scss +77 -0
  141. data/_sass/foundation/typography/_print.scss +77 -0
  142. data/_sass/foundation/typography/_typography.scss +28 -0
  143. data/_sass/foundation/util/_breakpoint.scss +275 -0
  144. data/_sass/foundation/util/_color.scss +60 -0
  145. data/_sass/foundation/util/_flex.scss +68 -0
  146. data/_sass/foundation/util/_mixins.scss +235 -0
  147. data/_sass/foundation/util/_selector.scss +40 -0
  148. data/_sass/foundation/util/_unit.scss +90 -0
  149. data/_sass/foundation/util/_util.scss +11 -0
  150. data/_sass/foundation/util/_value.scss +107 -0
  151. data/_sass/main.scss +40 -0
  152. data/_sass/minima.scss +51 -0
  153. data/_sass/minima/_base.scss +254 -0
  154. data/_sass/minima/_layout.scss +255 -0
  155. data/_sass/minima/_syntax-highlighting.scss +71 -0
  156. data/_sass/objects/media.scss +55 -0
  157. data/_sass/objects/section.scss +247 -0
  158. data/_sass/objects/space.scss +7 -0
  159. data/_sass/scroll-top.scss +31 -0
  160. data/_sass/utilities/utilities.scss +190 -0
  161. data/assets/css/main.scss +110 -0
  162. data/assets/favicon/apple-touch-icon-114x114.png +0 -0
  163. data/assets/favicon/apple-touch-icon-120x120.png +0 -0
  164. data/assets/favicon/apple-touch-icon-144x144.png +0 -0
  165. data/assets/favicon/apple-touch-icon-152x152.png +0 -0
  166. data/assets/favicon/apple-touch-icon-57x57.png +0 -0
  167. data/assets/favicon/apple-touch-icon-60x60.png +0 -0
  168. data/assets/favicon/apple-touch-icon-72x72.png +0 -0
  169. data/assets/favicon/apple-touch-icon-76x76.png +0 -0
  170. data/assets/favicon/favicon-128.png +0 -0
  171. data/assets/favicon/favicon-16x16.png +0 -0
  172. data/assets/favicon/favicon-196x196.png +0 -0
  173. data/assets/favicon/favicon-32x32.png +0 -0
  174. data/assets/favicon/favicon-96x96.png +0 -0
  175. data/assets/favicon/favicon.ico +0 -0
  176. data/assets/favicon/mstile-144x144.png +0 -0
  177. data/assets/favicon/mstile-150x150.png +0 -0
  178. data/assets/favicon/mstile-310x150.png +0 -0
  179. data/assets/favicon/mstile-310x310.png +0 -0
  180. data/assets/favicon/mstile-70x70.png +0 -0
  181. data/assets/fonts/bebasneue_regular-webfont.eot +0 -0
  182. data/assets/fonts/bebasneue_regular-webfont.svg +3906 -0
  183. data/assets/fonts/bebasneue_regular-webfont.ttf +0 -0
  184. data/assets/fonts/bebasneue_regular-webfont.woff +0 -0
  185. data/assets/fonts/bebasneue_regular-webfont.woff2 +0 -0
  186. data/assets/icons/blog.png +0 -0
  187. data/assets/icons/compass.png +0 -0
  188. data/assets/icons/facebook.png +0 -0
  189. data/assets/icons/github.png +0 -0
  190. data/assets/icons/googleplus.png +0 -0
  191. data/assets/icons/instagram.png +0 -0
  192. data/assets/icons/linkedin.png +0 -0
  193. data/assets/icons/pinterest.png +0 -0
  194. data/assets/icons/piratewiki.png +0 -0
  195. data/assets/icons/redmine.png +0 -0
  196. data/assets/icons/twitter.png +0 -0
  197. data/assets/icons/vkontakte.png +0 -0
  198. data/assets/icons/youtube.png +0 -0
  199. data/assets/img/brand/logo-group.png +0 -0
  200. data/assets/img/brand/logo-group.svg +27 -0
  201. data/assets/img/brand/logo-round.png +0 -0
  202. data/assets/img/brand/logo-round.svg +104 -0
  203. data/assets/img/brand/logo.ai +5083 -16
  204. data/assets/img/brand/logo.pdf +1405 -4
  205. data/assets/img/brand/logo.png +0 -0
  206. data/assets/img/brand/logo.svg +10 -0
  207. data/assets/img/brand/logo_easy.png +0 -0
  208. data/assets/img/brand/logo_napis.ai +5003 -21
  209. data/assets/img/brand/logo_napis.pdf +1482 -3
  210. data/assets/img/brand/logo_napis.png +0 -0
  211. data/assets/img/brand/logo_napis.svg +48 -0
  212. data/assets/img/brand/logo_napis_male.png +0 -0
  213. data/assets/img/brand/logo_napis_white.ai +5106 -16
  214. data/assets/img/brand/logo_napis_white.pdf +1532 -2
  215. data/assets/img/brand/logo_napis_white.png +0 -0
  216. data/assets/img/brand/logo_napis_white.svg +51 -0
  217. data/assets/img/brand/logo_white.ai +5194 -23
  218. data/assets/img/brand/logo_white.pdf +1388 -4
  219. data/assets/img/brand/logo_white.png +0 -0
  220. data/assets/img/brand/logo_white.svg +14 -0
  221. data/assets/img/brand/logotyp_email.png +0 -0
  222. data/assets/img/brand/logow.svg +19 -0
  223. data/assets/img/header/background.jpg +0 -0
  224. data/assets/img/people/jakub-pirat.jpg +0 -0
  225. data/assets/img/posts/obrazek.u.tohoto.postu.jpg +0 -0
  226. data/assets/img/tiles/lightGrey.png +0 -0
  227. data/assets/img/tiles/tableOfContent.png +0 -0
  228. data/assets/js/common-libs.min.js +1 -0
  229. data/assets/js/custom.min.js +1 -0
  230. data/assets/people/piratska-strana.png +0 -0
  231. data/assets/people/ppp.jpg +0 -0
  232. metadata +316 -0
@@ -0,0 +1,77 @@
1
+ // Foundation for Sites by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
5
+ ////
6
+ /// @group typography-helpers
7
+ ////
8
+
9
+ /// Default font size for lead paragraphs.
10
+ /// @type Number
11
+ $lead-font-size: $global-font-size * 1.25 !default;
12
+
13
+ /// Default line height for lead paragraphs.
14
+ /// @type String
15
+ $lead-lineheight: 1.6 !default;
16
+
17
+ /// Default line height for subheaders.
18
+ /// @type Number
19
+ $subheader-lineheight: 1.4 !default;
20
+
21
+ /// Default font color for subheaders.
22
+ /// @type Color
23
+ $subheader-color: $dark-gray !default;
24
+
25
+ /// Default font weight for subheaders.
26
+ /// @type String
27
+ $subheader-font-weight: $global-weight-normal !default;
28
+
29
+ /// Default top margin for subhheaders.
30
+ /// @type Number
31
+ $subheader-margin-top: 0.2rem !default;
32
+
33
+ /// Default bottom margin for subheaders.
34
+ /// @type Number
35
+ $subheader-margin-bottom: 0.5rem !default;
36
+
37
+ /// Default font size for statistic numbers.
38
+ /// @type Number
39
+ $stat-font-size: 2.5rem !default;
40
+
41
+ @mixin foundation-typography-helpers {
42
+ // Use to create a subheading under a main header
43
+ // Make sure you pair the two elements in a <header> element, like this:
44
+ // <header>
45
+ // <h1>Heading</h1>
46
+ // <h2>Subheading</h2>
47
+ // </header>
48
+ .subheader {
49
+ margin-top: $subheader-margin-top;
50
+ margin-bottom: $subheader-margin-bottom;
51
+ font-weight: $subheader-font-weight;
52
+ line-height: $subheader-lineheight;
53
+ color: $subheader-color;
54
+ }
55
+
56
+ // Use to style an introductory lead, deck, blurb, etc.
57
+ .lead {
58
+ font-size: $lead-font-size;
59
+ line-height: $lead-lineheight;
60
+ }
61
+
62
+ // Use to style a large number to display a statistic
63
+ .stat {
64
+ font-size: $stat-font-size;
65
+ line-height: 1;
66
+
67
+ p + & {
68
+ margin-top: -1rem;
69
+ }
70
+ }
71
+
72
+ // Use to remove the bullets from an unordered list
73
+ .no-bullet {
74
+ margin-#{$global-left}: 0;
75
+ list-style: none;
76
+ }
77
+ }
@@ -0,0 +1,77 @@
1
+ // Foundation for Sites by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
5
+ /// If `true`, all elements will have transparent backgrounds when printed, to save on ink.
6
+ /// @type Boolean
7
+ /// @group global
8
+ $print-transparent-backgrounds: true !default;
9
+
10
+ // scss-lint:disable all
11
+
12
+ @mixin foundation-print-styles {
13
+ .show-for-print { display: none !important; }
14
+
15
+ @media print {
16
+ * {
17
+ @if $print-transparent-backgrounds {
18
+ background: transparent !important;
19
+ }
20
+
21
+ color: black !important; // Black prints faster: h5bp.com/s
22
+ box-shadow: none !important;
23
+ text-shadow: none !important;
24
+ }
25
+
26
+ .show-for-print { display: block !important; }
27
+ .hide-for-print { display: none !important; }
28
+
29
+ table.show-for-print { display: table !important; }
30
+ thead.show-for-print { display: table-header-group !important; }
31
+ tbody.show-for-print { display: table-row-group !important; }
32
+ tr.show-for-print { display: table-row !important; }
33
+ td.show-for-print { display: table-cell !important; }
34
+ th.show-for-print { display: table-cell !important; }
35
+
36
+ // Display the URL of a link after the text
37
+ a,
38
+ a:visited { text-decoration: underline;}
39
+ a[href]:after { content: ' (' attr(href) ')'; }
40
+
41
+ // Don't display the URL for images or JavaScript/internal links
42
+ .ir a:after,
43
+ a[href^='javascript:']:after,
44
+ a[href^='#']:after { content: ''; }
45
+
46
+ // Display what an abbreviation stands for after the text
47
+ abbr[title]:after { content: ' (' attr(title) ')'; }
48
+
49
+ // Prevent page breaks in the middle of a blockquote or preformatted text block
50
+ pre,
51
+ blockquote {
52
+ border: 1px solid $dark-gray;
53
+ page-break-inside: avoid;
54
+ }
55
+
56
+ // h5bp.com/t
57
+ thead { display: table-header-group; }
58
+
59
+ tr,
60
+ img { page-break-inside: avoid; }
61
+
62
+ img { max-width: 100% !important; }
63
+
64
+ @page { margin: 0.5cm; }
65
+
66
+ p,
67
+ h2,
68
+ h3 {
69
+ orphans: 3;
70
+ widows: 3;
71
+ }
72
+
73
+ // Avoid page breaks after a heading
74
+ h2,
75
+ h3 { page-break-after: avoid; }
76
+ }
77
+ }
@@ -0,0 +1,28 @@
1
+ // Foundation for Sites by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
5
+ ////
6
+ /// @group typography
7
+ ////
8
+
9
+ // scss-lint:disable DeclarationOrder
10
+
11
+ // Base typography styles (tags only)
12
+ @import 'base';
13
+
14
+ // Typography helper classes (classes only)
15
+ @import 'helpers';
16
+
17
+ // Text alignment classes
18
+ @import 'alignment';
19
+
20
+ // Print styles
21
+ @import 'print';
22
+
23
+ @mixin foundation-typography {
24
+ @include foundation-typography-base;
25
+ @include foundation-typography-helpers;
26
+ @include foundation-text-alignment;
27
+ @include foundation-print-styles;
28
+ }
@@ -0,0 +1,275 @@
1
+ // Foundation for Sites by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
5
+ ////
6
+ /// @group breakpoints
7
+ ////
8
+
9
+ // scss-lint:disable ZeroUnit
10
+
11
+ /// A list of named breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries.
12
+ /// @type Map
13
+ $breakpoints: (
14
+ small: 0,
15
+ medium: 640px,
16
+ large: 1024px,
17
+ xlarge: 1200px,
18
+ xxlarge: 1440px,
19
+ ) !default;
20
+
21
+ $-zf-zero-breakpoint: small !default;
22
+
23
+ @if nth(map-values($breakpoints), 1) != 0 {
24
+ @error 'Your smallest breakpoint (defined in $breakpoints) must be set to "0".';
25
+ }
26
+ @else {
27
+ $-zf-zero-breakpoint: nth(map-keys($breakpoints), 1);
28
+ }
29
+
30
+ /// All of the names in this list will be output as classes in your CSS, like `.small-12`, `.medium-6`, and so on. Each value in this list must also be in the `$breakpoints` map.
31
+ /// @type List
32
+ $breakpoint-classes: (small medium large) !default;
33
+
34
+ /// Generates a media query string matching the input value. Refer to the documentation for the `breakpoint()` mixin to see what the possible inputs are.
35
+ ///
36
+ /// @param {Keyword|Number} $val [small] - Breakpoint name, or px, rem, or em value to process.
37
+ @function breakpoint($val: $-zf-zero-breakpoint) {
38
+ // Size or keyword
39
+ $bp: nth($val, 1);
40
+ // Value for max-width media queries
41
+ $bp-max: 0;
42
+ // Direction of media query (up, down, or only)
43
+ $dir: if(length($val) > 1, nth($val, 2), up);
44
+ // Eventual output
45
+ $str: '';
46
+ // Is it a named media query?
47
+ $named: false;
48
+
49
+ // Orientation media queries have a unique syntax
50
+ @if $bp == 'landscape' or $bp == 'portrait' {
51
+ @return '(orientation: #{$bp})';
52
+ }
53
+ @else if $bp == 'retina' {
54
+ @return '(-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi)';
55
+ }
56
+
57
+ // Try to pull a named breakpoint out of the $breakpoints map
58
+ @if type-of($bp) == 'string' {
59
+ @if map-has-key($breakpoints, $bp) {
60
+ @if $dir == 'only' or $dir == 'down' {
61
+ $bp-max: -zf-map-next($breakpoints, $bp);
62
+ }
63
+
64
+ $bp: map-get($breakpoints, $bp);
65
+ $named: true;
66
+ }
67
+ @else {
68
+ $bp: 0;
69
+ @warn 'breakpoint(): "#{$val}" is not defined in your $breakpoints setting.';
70
+ }
71
+ }
72
+
73
+ // Convert any pixel, rem, or unitless value to em
74
+ $bp: -zf-bp-to-em($bp);
75
+ @if $bp-max {
76
+ $bp-max: -zf-bp-to-em($bp-max) - (1/16);
77
+ }
78
+
79
+ // Conditions to skip media query creation
80
+ // - It's a named breakpoint that resolved to "0 down" or "0 up"
81
+ // - It's a numeric breakpoint that resolved to "0 " + anything
82
+ @if $bp > 0em or $dir == 'only' or $dir == 'down' {
83
+ // `only` ranges use the format `(min-width: n) and (max-width: n)`
84
+ @if $dir == 'only' {
85
+ // Only named media queries can have an "only" range
86
+ @if $named == true {
87
+ // Only use "min-width" if the floor is greater than 0
88
+ @if $bp > 0em {
89
+ $str: $str + '(min-width: #{$bp})';
90
+
91
+ // Only add "and" to the media query if there's a ceiling
92
+ @if $bp-max != null {
93
+ $str: $str + ' and ';
94
+ }
95
+ }
96
+
97
+ // Only use "max-width" if there's a ceiling
98
+ @if $bp-max != null {
99
+ $str: $str + '(max-width: #{$bp-max})';
100
+ }
101
+ }
102
+ @else {
103
+ @warn 'breakpoint(): Only named media queries can have an `only` range.';
104
+ }
105
+ }
106
+
107
+ // `down` ranges use the format `(max-width: n)`
108
+ @else if $dir == 'down' {
109
+ $max: if($named, $bp-max, $bp);
110
+
111
+ // Skip media query creation if input value is exactly "0 down",
112
+ // unless the function was called as "small down", in which case it's just "small only"
113
+ @if $named or $bp > 0em {
114
+ @if $max != null {
115
+ $str: $str + '(max-width: #{$max})';
116
+ }
117
+ }
118
+ }
119
+
120
+ // `up` ranges use the format `(min-width: n)`
121
+ @else if $bp > 0em {
122
+ $str: $str + '(min-width: #{$bp})';
123
+ }
124
+ }
125
+
126
+ @return $str;
127
+ }
128
+
129
+ /// Wraps a media query around the content you put inside the mixin. This mixin accepts a number of values:
130
+ /// - If a string is passed, the mixin will look for it in the `$breakpoints` map, and use a media query there.
131
+ /// - If a pixel value is passed, it will be converted to an em value using `$global-font-size` as the base.
132
+ /// - If a rem value is passed, the unit will be changed to em.
133
+ /// - If an em value is passed, the value will be used as-is.
134
+ ///
135
+ /// @param {Keyword|Number} $value - Breakpoint name, or px, rem, or em value to process.
136
+ ///
137
+ /// @output If the breakpoint is "0px and larger", outputs the content as-is. Otherwise, outputs the content wrapped in a media query.
138
+ @mixin breakpoint($value) {
139
+ $str: breakpoint($value);
140
+
141
+ // If $str is still an empty string, no media query is needed
142
+ @if $str == '' {
143
+ @content;
144
+ }
145
+
146
+ // Otherwise, wrap the content in a media query
147
+ @else {
148
+ @media screen and #{$str} {
149
+ @content;
150
+ }
151
+ }
152
+ }
153
+
154
+ /// Convers the breakpoints map to a URL-encoded string, like this: `key1=value1&key2=value2`. The value is then dropped into the CSS for a special `<meta>` tag, which is read by the Foundation JavaScript. This is how we transfer values from Sass to JavaScript, so they can be defined in one place.
155
+ /// @access private
156
+ ///
157
+ /// @param {Map} $map - Map to convert.
158
+ ///
159
+ /// @returns {String} A string containing the map's contents.
160
+ @function -zf-bp-serialize($map) {
161
+ $str: '';
162
+ @each $key, $value in $map {
163
+ $str: $str + $key + '=' + -zf-bp-to-em($value) + '&';
164
+ }
165
+ $str: str-slice($str, 1, -2);
166
+
167
+ @return $str;
168
+ }
169
+
170
+ /// Find the next key in a map.
171
+ /// @access private
172
+ ///
173
+ /// @param {Map} $map - Map to traverse.
174
+ /// @param {Mixed} $key - Key to use as a starting point.
175
+ ///
176
+ /// @returns {Mixed} The value for the key after `$key`, if `$key` was found. If `$key` was not found, or `$key` was the last value in the map, returns `null`.
177
+ @function -zf-map-next($map, $key) {
178
+ // Store the values of the map as a list, so we can access them with nth
179
+ $values: map-values($map);
180
+
181
+ // Ghetto for loop
182
+ $i: 1;
183
+ $found: false;
184
+ @each $val in map-keys($map) {
185
+ @if $found == false {
186
+ @if ($key == $val) {
187
+ $found: true;
188
+ }
189
+ $i: $i + 1;
190
+ }
191
+ }
192
+
193
+ // If the key doesn't exist, or it's the last key in the map, return null
194
+ @if $i > length($map) {
195
+ @return null;
196
+ }
197
+ // Otherwise, return the value
198
+ @else {
199
+ @return nth($values, $i);
200
+ }
201
+ }
202
+
203
+ /// Get a value for a breakpoint from a responsive config map. If the config map has the key `$value`, the exact breakpoint value is returned. If the config map does *not* have the breakpoint, the value matching the next lowest breakpoint in the config map is returned.
204
+ /// @access private
205
+ ///
206
+ /// @param {Map} $map - Input config map.
207
+ /// @param {Keyword} $value - Breakpoint name to use.
208
+ ///
209
+ /// @return {Mixed} The corresponding breakpoint value.
210
+ @function -zf-get-bp-val($map, $value) {
211
+ // Check if the breakpoint name exists globally
212
+ @if not map-has-key($breakpoints, $value) {
213
+ @return null;
214
+ }
215
+ // Check if the breakpoint name exists in the local config map
216
+ @else if map-has-key($map, $value) {
217
+ // If it does, just return the value
218
+ @return map-get($map, $value);
219
+ }
220
+ // Otherwise, find the next lowest breakpoint and return that value
221
+ @else {
222
+ $anchor: null;
223
+ $found: false;
224
+
225
+ @each $key, $val in $breakpoints {
226
+ @if not $found {
227
+ @if map-has-key($map, $key) {
228
+ $anchor: $key;
229
+ }
230
+ @if $key == $value {
231
+ $found: true;
232
+ }
233
+ }
234
+ }
235
+
236
+ @return map-get($map, $anchor);
237
+ }
238
+ }
239
+
240
+ // Legacy breakpoint variables
241
+ // These will be removed in 6.3
242
+ $small-up: null;
243
+ $small-only: null;
244
+ $medium-up: null;
245
+ $medium-only: null;
246
+ $large-up: null;
247
+ $large-only: null;
248
+ $xlarge-up: null;
249
+ $xlarge-only: null;
250
+ $xxlarge-up: null;
251
+ $xxlarge-only: null;
252
+
253
+ @if map-has-key($breakpoints, small) {
254
+ $small-up: screen;
255
+ $small-only: unquote('screen and #{breakpoint(small only)}');
256
+ }
257
+
258
+ @if map-has-key($breakpoints, medium) {
259
+ $medium-up: unquote('screen and #{breakpoint(medium)}');
260
+ $medium-only: unquote('screen and #{breakpoint(medium only)}');
261
+ }
262
+
263
+ @if map-has-key($breakpoints, large) {
264
+ $large-up: unquote('screen and #{breakpoint(large)}');
265
+ $large-only: unquote('screen and #{breakpoint(large only)}');
266
+ }
267
+
268
+ @if map-has-key($breakpoints, xlarge) {
269
+ $xlarge-up: unquote('screen and #{breakpoint(xlarge)}');
270
+ $xlarge-only: unquote('screen and #{breakpoint(xlarge only)}');
271
+ }
272
+
273
+ @if map-has-key($breakpoints, xxlarge) {
274
+ $xxlarge-up: unquote('screen and #{breakpoint(xxlarge)}');
275
+ }