strata-academic 1.0.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.
- checksums.yaml +7 -0
- data/LICENSE +116 -0
- data/README.md +110 -0
- data/_layouts/homepage.html +101 -0
- data/_sass/strata-academic.scss +3220 -0
- data/assets/css/style.scss +4 -0
- data/assets/img/avatar.png +0 -0
- data/assets/img/bg.jpg +0 -0
- data/assets/img/favicon-dark.png +0 -0
- data/assets/img/favicon.png +0 -0
- data/assets/js/favicon-switcher.js +64 -0
- data/assets/js/scale.fix.js +27 -0
- data/assets/original/css/fontawesome-all.min.css +5 -0
- data/assets/original/css/images/overlay.png +0 -0
- data/assets/original/css/main.css +3221 -0
- data/assets/original/js/breakpoints.min.js +2 -0
- data/assets/original/js/browser.min.js +2 -0
- data/assets/original/js/jquery.min.js +2 -0
- data/assets/original/js/jquery.poptrox.min.js +2 -0
- data/assets/original/js/main.js +117 -0
- data/assets/original/js/util.js +587 -0
- data/assets/original/sass/libs/_breakpoints.scss +223 -0
- data/assets/original/sass/libs/_functions.scss +90 -0
- data/assets/original/sass/libs/_html-grid.scss +149 -0
- data/assets/original/sass/libs/_mixins.scss +78 -0
- data/assets/original/sass/libs/_vars.scss +59 -0
- data/assets/original/sass/libs/_vendor.scss +376 -0
- data/assets/original/sass/main.scss +1633 -0
- data/assets/original/webfonts/fa-brands-400.eot +0 -0
- data/assets/original/webfonts/fa-brands-400.svg +3442 -0
- data/assets/original/webfonts/fa-brands-400.ttf +0 -0
- data/assets/original/webfonts/fa-brands-400.woff +0 -0
- data/assets/original/webfonts/fa-brands-400.woff2 +0 -0
- data/assets/original/webfonts/fa-regular-400.eot +0 -0
- data/assets/original/webfonts/fa-regular-400.svg +803 -0
- data/assets/original/webfonts/fa-regular-400.ttf +0 -0
- data/assets/original/webfonts/fa-regular-400.woff +0 -0
- data/assets/original/webfonts/fa-regular-400.woff2 +0 -0
- data/assets/original/webfonts/fa-solid-900.eot +0 -0
- data/assets/original/webfonts/fa-solid-900.svg +4649 -0
- data/assets/original/webfonts/fa-solid-900.ttf +0 -0
- data/assets/original/webfonts/fa-solid-900.woff +0 -0
- data/assets/original/webfonts/fa-solid-900.woff2 +0 -0
- metadata +162 -0
| @@ -0,0 +1,78 @@ | |
| 1 | 
            +
            /// Makes an element's :before pseudoelement a FontAwesome icon.
         | 
| 2 | 
            +
            /// @param {string} $content Optional content value to use.
         | 
| 3 | 
            +
            /// @param {string} $category Optional category to use.
         | 
| 4 | 
            +
            /// @param {string} $where Optional pseudoelement to target (before or after).
         | 
| 5 | 
            +
            @mixin icon($content: false, $category: regular, $where: before) {
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            	text-decoration: none;
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            	&:#{$where} {
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            		@if $content {
         | 
| 12 | 
            +
            			content: $content;
         | 
| 13 | 
            +
            		}
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            		-moz-osx-font-smoothing: grayscale;
         | 
| 16 | 
            +
            		-webkit-font-smoothing: antialiased;
         | 
| 17 | 
            +
            		display: inline-block;
         | 
| 18 | 
            +
            		font-style: normal;
         | 
| 19 | 
            +
            		font-variant: normal;
         | 
| 20 | 
            +
            		text-rendering: auto;
         | 
| 21 | 
            +
            		line-height: 1;
         | 
| 22 | 
            +
            		text-transform: none !important;
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            		@if ($category == brands) {
         | 
| 25 | 
            +
            			font-family: 'Font Awesome 5 Brands';
         | 
| 26 | 
            +
            		}
         | 
| 27 | 
            +
            		@elseif ($category == solid) {
         | 
| 28 | 
            +
            			font-family: 'Font Awesome 5 Free';
         | 
| 29 | 
            +
            			font-weight: 900;
         | 
| 30 | 
            +
            		}
         | 
| 31 | 
            +
            		@else {
         | 
| 32 | 
            +
            			font-family: 'Font Awesome 5 Free';
         | 
| 33 | 
            +
            			font-weight: 400;
         | 
| 34 | 
            +
            		}
         | 
| 35 | 
            +
             | 
| 36 | 
            +
            	}
         | 
| 37 | 
            +
             | 
| 38 | 
            +
            }
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            /// Applies padding to an element, taking the current element-margin value into account.
         | 
| 41 | 
            +
            /// @param {mixed} $tb Top/bottom padding.
         | 
| 42 | 
            +
            /// @param {mixed} $lr Left/right padding.
         | 
| 43 | 
            +
            /// @param {list} $pad Optional extra padding (in the following order top, right, bottom, left)
         | 
| 44 | 
            +
            /// @param {bool} $important If true, adds !important.
         | 
| 45 | 
            +
            @mixin padding($tb, $lr, $pad: (0,0,0,0), $important: null) {
         | 
| 46 | 
            +
             | 
| 47 | 
            +
            	@if $important {
         | 
| 48 | 
            +
            		$important: '!important';
         | 
| 49 | 
            +
            	}
         | 
| 50 | 
            +
             | 
| 51 | 
            +
            	$x: 0.1em;
         | 
| 52 | 
            +
             | 
| 53 | 
            +
            	@if unit(_size(element-margin)) == 'rem' {
         | 
| 54 | 
            +
            		$x: 0.1rem;
         | 
| 55 | 
            +
            	}
         | 
| 56 | 
            +
             | 
| 57 | 
            +
            	padding: ($tb + nth($pad,1)) ($lr + nth($pad,2)) max($x, $tb - _size(element-margin) + nth($pad,3)) ($lr + nth($pad,4)) #{$important};
         | 
| 58 | 
            +
             | 
| 59 | 
            +
            }
         | 
| 60 | 
            +
             | 
| 61 | 
            +
            /// Encodes a SVG data URL so IE doesn't choke (via codepen.io/jakob-e/pen/YXXBrp).
         | 
| 62 | 
            +
            /// @param {string} $svg SVG data URL.
         | 
| 63 | 
            +
            /// @return {string} Encoded SVG data URL.
         | 
| 64 | 
            +
            @function svg-url($svg) {
         | 
| 65 | 
            +
             | 
| 66 | 
            +
            	$svg: str-replace($svg, '"', '\'');
         | 
| 67 | 
            +
            	$svg: str-replace($svg, '%', '%25');
         | 
| 68 | 
            +
            	$svg: str-replace($svg, '<', '%3C');
         | 
| 69 | 
            +
            	$svg: str-replace($svg, '>', '%3E');
         | 
| 70 | 
            +
            	$svg: str-replace($svg, '&', '%26');
         | 
| 71 | 
            +
            	$svg: str-replace($svg, '#', '%23');
         | 
| 72 | 
            +
            	$svg: str-replace($svg, '{', '%7B');
         | 
| 73 | 
            +
            	$svg: str-replace($svg, '}', '%7D');
         | 
| 74 | 
            +
            	$svg: str-replace($svg, ';', '%3B');
         | 
| 75 | 
            +
             | 
| 76 | 
            +
            	@return url("data:image/svg+xml;charset=utf8,#{$svg}");
         | 
| 77 | 
            +
             | 
| 78 | 
            +
            }
         | 
| @@ -0,0 +1,59 @@ | |
| 1 | 
            +
            // Misc.
         | 
| 2 | 
            +
            	$misc: (
         | 
| 3 | 
            +
            		z-index-base:		10000
         | 
| 4 | 
            +
            	);
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            // Duration.
         | 
| 7 | 
            +
            	$duration: (
         | 
| 8 | 
            +
            		transition:			0.2s
         | 
| 9 | 
            +
            	);
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            // Size.
         | 
| 12 | 
            +
            	$size: (
         | 
| 13 | 
            +
            		border-radius:		0.35em,
         | 
| 14 | 
            +
            		element-height:		2.75em,
         | 
| 15 | 
            +
            		element-margin:		2em,
         | 
| 16 | 
            +
            		container-width:	100%
         | 
| 17 | 
            +
            	);
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            // Font.
         | 
| 20 | 
            +
            	$font: (
         | 
| 21 | 
            +
            		family:				('Source Sans Pro', Helvetica, sans-serif),
         | 
| 22 | 
            +
            		family-fixed:		('Courier New', monospace),
         | 
| 23 | 
            +
            		weight:				400,
         | 
| 24 | 
            +
            		weight-bold:		400
         | 
| 25 | 
            +
            	);
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            // Palette.
         | 
| 28 | 
            +
            	$palette: (
         | 
| 29 | 
            +
            		bg:					#fff,
         | 
| 30 | 
            +
            		fg:					#a2a2a2,
         | 
| 31 | 
            +
            		fg-bold:			#787878,
         | 
| 32 | 
            +
            		fg-light:			#b2b2b2,
         | 
| 33 | 
            +
            		border:				#efefef,
         | 
| 34 | 
            +
            		border-bg:			#f7f7f7,
         | 
| 35 | 
            +
            		border2:			#dfdfdf,
         | 
| 36 | 
            +
            		border2-bg:			#e7e7e7,
         | 
| 37 | 
            +
             | 
| 38 | 
            +
            		accent1: (
         | 
| 39 | 
            +
            			bg:				#49bf9d,
         | 
| 40 | 
            +
            			fg:				mix(#49bf9d, #ffffff, 25%),
         | 
| 41 | 
            +
            			fg-bold:		#ffffff,
         | 
| 42 | 
            +
            			fg-light:		mix(#49bf9d, #ffffff, 40%),
         | 
| 43 | 
            +
            			border:			rgba(255,255,255,0.25),
         | 
| 44 | 
            +
            			border-bg:		rgba(255,255,255,0.075),
         | 
| 45 | 
            +
            			border2:		rgba(255,255,255,0.5),
         | 
| 46 | 
            +
            			border2-bg:		rgba(255,255,255,0.2)
         | 
| 47 | 
            +
            		),
         | 
| 48 | 
            +
             | 
| 49 | 
            +
            		accent2: (
         | 
| 50 | 
            +
            			bg:				#1f1815,
         | 
| 51 | 
            +
            			fg:				rgba(255,255,255,0.5),
         | 
| 52 | 
            +
            			fg-bold:		#ffffff,
         | 
| 53 | 
            +
            			fg-light:		rgba(255,255,255,0.4),
         | 
| 54 | 
            +
            			border:			rgba(255,255,255,0.25),
         | 
| 55 | 
            +
            			border-bg:		rgba(255,255,255,0.075),
         | 
| 56 | 
            +
            			border2:		rgba(255,255,255,0.5),
         | 
| 57 | 
            +
            			border2-bg:		rgba(255,255,255,0.2)
         | 
| 58 | 
            +
            		)
         | 
| 59 | 
            +
            	);
         | 
| @@ -0,0 +1,376 @@ | |
| 1 | 
            +
            // vendor.scss v1.0 | @ajlkn | MIT licensed */
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            // Vars.
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            	/// Vendor prefixes.
         | 
| 6 | 
            +
            	/// @var {list}
         | 
| 7 | 
            +
            	$vendor-prefixes: (
         | 
| 8 | 
            +
            		'-moz-',
         | 
| 9 | 
            +
            		'-webkit-',
         | 
| 10 | 
            +
            		'-ms-',
         | 
| 11 | 
            +
            		''
         | 
| 12 | 
            +
            	);
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            	/// Properties that should be vendorized.
         | 
| 15 | 
            +
            	/// Data via caniuse.com, github.com/postcss/autoprefixer, and developer.mozilla.org
         | 
| 16 | 
            +
            	/// @var {list}
         | 
| 17 | 
            +
            	$vendor-properties: (
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            		// Animation.
         | 
| 20 | 
            +
            			'animation',
         | 
| 21 | 
            +
            			'animation-delay',
         | 
| 22 | 
            +
            			'animation-direction',
         | 
| 23 | 
            +
            			'animation-duration',
         | 
| 24 | 
            +
            			'animation-fill-mode',
         | 
| 25 | 
            +
            			'animation-iteration-count',
         | 
| 26 | 
            +
            			'animation-name',
         | 
| 27 | 
            +
            			'animation-play-state',
         | 
| 28 | 
            +
            			'animation-timing-function',
         | 
| 29 | 
            +
             | 
| 30 | 
            +
            		// Appearance.
         | 
| 31 | 
            +
            			'appearance',
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            		// Backdrop filter.
         | 
| 34 | 
            +
            			'backdrop-filter',
         | 
| 35 | 
            +
             | 
| 36 | 
            +
            		// Background image options.
         | 
| 37 | 
            +
            			'background-clip',
         | 
| 38 | 
            +
            			'background-origin',
         | 
| 39 | 
            +
            			'background-size',
         | 
| 40 | 
            +
             | 
| 41 | 
            +
            		// Box sizing.
         | 
| 42 | 
            +
            			'box-sizing',
         | 
| 43 | 
            +
             | 
| 44 | 
            +
            		// Clip path.
         | 
| 45 | 
            +
            			'clip-path',
         | 
| 46 | 
            +
             | 
| 47 | 
            +
            		// Filter effects.
         | 
| 48 | 
            +
            			'filter',
         | 
| 49 | 
            +
             | 
| 50 | 
            +
            		// Flexbox.
         | 
| 51 | 
            +
            			'align-content',
         | 
| 52 | 
            +
            			'align-items',
         | 
| 53 | 
            +
            			'align-self',
         | 
| 54 | 
            +
            			'flex',
         | 
| 55 | 
            +
            			'flex-basis',
         | 
| 56 | 
            +
            			'flex-direction',
         | 
| 57 | 
            +
            			'flex-flow',
         | 
| 58 | 
            +
            			'flex-grow',
         | 
| 59 | 
            +
            			'flex-shrink',
         | 
| 60 | 
            +
            			'flex-wrap',
         | 
| 61 | 
            +
            			'justify-content',
         | 
| 62 | 
            +
            			'order',
         | 
| 63 | 
            +
             | 
| 64 | 
            +
            		// Font feature.
         | 
| 65 | 
            +
            			'font-feature-settings',
         | 
| 66 | 
            +
            			'font-language-override',
         | 
| 67 | 
            +
            			'font-variant-ligatures',
         | 
| 68 | 
            +
             | 
| 69 | 
            +
            		// Font kerning.
         | 
| 70 | 
            +
            			'font-kerning',
         | 
| 71 | 
            +
             | 
| 72 | 
            +
            		// Fragmented borders and backgrounds.
         | 
| 73 | 
            +
            			'box-decoration-break',
         | 
| 74 | 
            +
             | 
| 75 | 
            +
            		// Grid layout.
         | 
| 76 | 
            +
            			'grid-column',
         | 
| 77 | 
            +
            			'grid-column-align',
         | 
| 78 | 
            +
            			'grid-column-end',
         | 
| 79 | 
            +
            			'grid-column-start',
         | 
| 80 | 
            +
            			'grid-row',
         | 
| 81 | 
            +
            			'grid-row-align',
         | 
| 82 | 
            +
            			'grid-row-end',
         | 
| 83 | 
            +
            			'grid-row-start',
         | 
| 84 | 
            +
            			'grid-template-columns',
         | 
| 85 | 
            +
            			'grid-template-rows',
         | 
| 86 | 
            +
             | 
| 87 | 
            +
            		// Hyphens.
         | 
| 88 | 
            +
            			'hyphens',
         | 
| 89 | 
            +
            			'word-break',
         | 
| 90 | 
            +
             | 
| 91 | 
            +
            		// Masks.
         | 
| 92 | 
            +
            			'mask',
         | 
| 93 | 
            +
            			'mask-border',
         | 
| 94 | 
            +
            			'mask-border-outset',
         | 
| 95 | 
            +
            			'mask-border-repeat',
         | 
| 96 | 
            +
            			'mask-border-slice',
         | 
| 97 | 
            +
            			'mask-border-source',
         | 
| 98 | 
            +
            			'mask-border-width',
         | 
| 99 | 
            +
            			'mask-clip',
         | 
| 100 | 
            +
            			'mask-composite',
         | 
| 101 | 
            +
            			'mask-image',
         | 
| 102 | 
            +
            			'mask-origin',
         | 
| 103 | 
            +
            			'mask-position',
         | 
| 104 | 
            +
            			'mask-repeat',
         | 
| 105 | 
            +
            			'mask-size',
         | 
| 106 | 
            +
             | 
| 107 | 
            +
            		// Multicolumn.
         | 
| 108 | 
            +
            			'break-after',
         | 
| 109 | 
            +
            			'break-before',
         | 
| 110 | 
            +
            			'break-inside',
         | 
| 111 | 
            +
            			'column-count',
         | 
| 112 | 
            +
            			'column-fill',
         | 
| 113 | 
            +
            			'column-gap',
         | 
| 114 | 
            +
            			'column-rule',
         | 
| 115 | 
            +
            			'column-rule-color',
         | 
| 116 | 
            +
            			'column-rule-style',
         | 
| 117 | 
            +
            			'column-rule-width',
         | 
| 118 | 
            +
            			'column-span',
         | 
| 119 | 
            +
            			'column-width',
         | 
| 120 | 
            +
            			'columns',
         | 
| 121 | 
            +
             | 
| 122 | 
            +
            		// Object fit.
         | 
| 123 | 
            +
            			'object-fit',
         | 
| 124 | 
            +
            			'object-position',
         | 
| 125 | 
            +
             | 
| 126 | 
            +
            		// Regions.
         | 
| 127 | 
            +
            			'flow-from',
         | 
| 128 | 
            +
            			'flow-into',
         | 
| 129 | 
            +
            			'region-fragment',
         | 
| 130 | 
            +
             | 
| 131 | 
            +
            		// Scroll snap points.
         | 
| 132 | 
            +
            			'scroll-snap-coordinate',
         | 
| 133 | 
            +
            			'scroll-snap-destination',
         | 
| 134 | 
            +
            			'scroll-snap-points-x',
         | 
| 135 | 
            +
            			'scroll-snap-points-y',
         | 
| 136 | 
            +
            			'scroll-snap-type',
         | 
| 137 | 
            +
             | 
| 138 | 
            +
            		// Shapes.
         | 
| 139 | 
            +
            			'shape-image-threshold',
         | 
| 140 | 
            +
            			'shape-margin',
         | 
| 141 | 
            +
            			'shape-outside',
         | 
| 142 | 
            +
             | 
| 143 | 
            +
            		// Tab size.
         | 
| 144 | 
            +
            			'tab-size',
         | 
| 145 | 
            +
             | 
| 146 | 
            +
            		// Text align last.
         | 
| 147 | 
            +
            			'text-align-last',
         | 
| 148 | 
            +
             | 
| 149 | 
            +
            		// Text decoration.
         | 
| 150 | 
            +
            			'text-decoration-color',
         | 
| 151 | 
            +
            			'text-decoration-line',
         | 
| 152 | 
            +
            			'text-decoration-skip',
         | 
| 153 | 
            +
            			'text-decoration-style',
         | 
| 154 | 
            +
             | 
| 155 | 
            +
            		// Text emphasis.
         | 
| 156 | 
            +
            			'text-emphasis',
         | 
| 157 | 
            +
            			'text-emphasis-color',
         | 
| 158 | 
            +
            			'text-emphasis-position',
         | 
| 159 | 
            +
            			'text-emphasis-style',
         | 
| 160 | 
            +
             | 
| 161 | 
            +
            		// Text size adjust.
         | 
| 162 | 
            +
            			'text-size-adjust',
         | 
| 163 | 
            +
             | 
| 164 | 
            +
            		// Text spacing.
         | 
| 165 | 
            +
            			'text-spacing',
         | 
| 166 | 
            +
             | 
| 167 | 
            +
            		// Transform.
         | 
| 168 | 
            +
            			'transform',
         | 
| 169 | 
            +
            			'transform-origin',
         | 
| 170 | 
            +
             | 
| 171 | 
            +
            		// Transform 3D.
         | 
| 172 | 
            +
            			'backface-visibility',
         | 
| 173 | 
            +
            			'perspective',
         | 
| 174 | 
            +
            			'perspective-origin',
         | 
| 175 | 
            +
            			'transform-style',
         | 
| 176 | 
            +
             | 
| 177 | 
            +
            		// Transition.
         | 
| 178 | 
            +
            			'transition',
         | 
| 179 | 
            +
            			'transition-delay',
         | 
| 180 | 
            +
            			'transition-duration',
         | 
| 181 | 
            +
            			'transition-property',
         | 
| 182 | 
            +
            			'transition-timing-function',
         | 
| 183 | 
            +
             | 
| 184 | 
            +
            		// Unicode bidi.
         | 
| 185 | 
            +
            			'unicode-bidi',
         | 
| 186 | 
            +
             | 
| 187 | 
            +
            		// User select.
         | 
| 188 | 
            +
            			'user-select',
         | 
| 189 | 
            +
             | 
| 190 | 
            +
            		// Writing mode.
         | 
| 191 | 
            +
            			'writing-mode',
         | 
| 192 | 
            +
             | 
| 193 | 
            +
            	);
         | 
| 194 | 
            +
             | 
| 195 | 
            +
            	/// Values that should be vendorized.
         | 
| 196 | 
            +
            	/// Data via caniuse.com, github.com/postcss/autoprefixer, and developer.mozilla.org
         | 
| 197 | 
            +
            	/// @var {list}
         | 
| 198 | 
            +
            	$vendor-values: (
         | 
| 199 | 
            +
             | 
| 200 | 
            +
            		// Cross fade.
         | 
| 201 | 
            +
            			'cross-fade',
         | 
| 202 | 
            +
             | 
| 203 | 
            +
            		// Element function.
         | 
| 204 | 
            +
            			'element',
         | 
| 205 | 
            +
             | 
| 206 | 
            +
            		// Filter function.
         | 
| 207 | 
            +
            			'filter',
         | 
| 208 | 
            +
             | 
| 209 | 
            +
            		// Flexbox.
         | 
| 210 | 
            +
            			'flex',
         | 
| 211 | 
            +
            			'inline-flex',
         | 
| 212 | 
            +
             | 
| 213 | 
            +
            		// Grab cursors.
         | 
| 214 | 
            +
            			'grab',
         | 
| 215 | 
            +
            			'grabbing',
         | 
| 216 | 
            +
             | 
| 217 | 
            +
            		// Gradients.
         | 
| 218 | 
            +
            			'linear-gradient',
         | 
| 219 | 
            +
            			'repeating-linear-gradient',
         | 
| 220 | 
            +
            			'radial-gradient',
         | 
| 221 | 
            +
            			'repeating-radial-gradient',
         | 
| 222 | 
            +
             | 
| 223 | 
            +
            		// Grid layout.
         | 
| 224 | 
            +
            			'grid',
         | 
| 225 | 
            +
            			'inline-grid',
         | 
| 226 | 
            +
             | 
| 227 | 
            +
            		// Image set.
         | 
| 228 | 
            +
            			'image-set',
         | 
| 229 | 
            +
             | 
| 230 | 
            +
            		// Intrinsic width.
         | 
| 231 | 
            +
            			'max-content',
         | 
| 232 | 
            +
            			'min-content',
         | 
| 233 | 
            +
            			'fit-content',
         | 
| 234 | 
            +
            			'fill',
         | 
| 235 | 
            +
            			'fill-available',
         | 
| 236 | 
            +
            			'stretch',
         | 
| 237 | 
            +
             | 
| 238 | 
            +
            		// Sticky position.
         | 
| 239 | 
            +
            			'sticky',
         | 
| 240 | 
            +
             | 
| 241 | 
            +
            		// Transform.
         | 
| 242 | 
            +
            			'transform',
         | 
| 243 | 
            +
             | 
| 244 | 
            +
            		// Zoom cursors.
         | 
| 245 | 
            +
            			'zoom-in',
         | 
| 246 | 
            +
            			'zoom-out',
         | 
| 247 | 
            +
             | 
| 248 | 
            +
            	);
         | 
| 249 | 
            +
             | 
| 250 | 
            +
            // Functions.
         | 
| 251 | 
            +
             | 
| 252 | 
            +
            	/// Removes a specific item from a list.
         | 
| 253 | 
            +
            	/// @author Hugo Giraudel
         | 
| 254 | 
            +
            	/// @param {list} $list List.
         | 
| 255 | 
            +
            	/// @param {integer} $index Index.
         | 
| 256 | 
            +
            	/// @return {list} Updated list.
         | 
| 257 | 
            +
            	@function remove-nth($list, $index) {
         | 
| 258 | 
            +
             | 
| 259 | 
            +
            		$result: null;
         | 
| 260 | 
            +
             | 
| 261 | 
            +
            		@if type-of($index) != number {
         | 
| 262 | 
            +
            			@warn "$index: #{quote($index)} is not a number for `remove-nth`.";
         | 
| 263 | 
            +
            		}
         | 
| 264 | 
            +
            		@else if $index == 0 {
         | 
| 265 | 
            +
            			@warn "List index 0 must be a non-zero integer for `remove-nth`.";
         | 
| 266 | 
            +
            		}
         | 
| 267 | 
            +
            		@else if abs($index) > length($list) {
         | 
| 268 | 
            +
            			@warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`.";
         | 
| 269 | 
            +
            		}
         | 
| 270 | 
            +
            		@else {
         | 
| 271 | 
            +
             | 
| 272 | 
            +
            			$result: ();
         | 
| 273 | 
            +
            			$index: if($index < 0, length($list) + $index + 1, $index);
         | 
| 274 | 
            +
             | 
| 275 | 
            +
            			@for $i from 1 through length($list) {
         | 
| 276 | 
            +
             | 
| 277 | 
            +
            				@if $i != $index {
         | 
| 278 | 
            +
            					$result: append($result, nth($list, $i));
         | 
| 279 | 
            +
            				}
         | 
| 280 | 
            +
             | 
| 281 | 
            +
            			}
         | 
| 282 | 
            +
             | 
| 283 | 
            +
            		}
         | 
| 284 | 
            +
             | 
| 285 | 
            +
            		@return $result;
         | 
| 286 | 
            +
             | 
| 287 | 
            +
            	}
         | 
| 288 | 
            +
             | 
| 289 | 
            +
            	/// Replaces a substring within another string.
         | 
| 290 | 
            +
            	/// @author Hugo Giraudel
         | 
| 291 | 
            +
            	/// @param {string} $string String.
         | 
| 292 | 
            +
            	/// @param {string} $search Substring.
         | 
| 293 | 
            +
            	/// @param {string} $replace Replacement.
         | 
| 294 | 
            +
            	/// @return {string} Updated string.
         | 
| 295 | 
            +
            	@function str-replace($string, $search, $replace: '') {
         | 
| 296 | 
            +
             | 
| 297 | 
            +
            		$index: str-index($string, $search);
         | 
| 298 | 
            +
             | 
| 299 | 
            +
            		@if $index {
         | 
| 300 | 
            +
            			@return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
         | 
| 301 | 
            +
            		}
         | 
| 302 | 
            +
             | 
| 303 | 
            +
            		@return $string;
         | 
| 304 | 
            +
             | 
| 305 | 
            +
            	}
         | 
| 306 | 
            +
             | 
| 307 | 
            +
            	/// Replaces a substring within each string in a list.
         | 
| 308 | 
            +
            	/// @param {list} $strings List of strings.
         | 
| 309 | 
            +
            	/// @param {string} $search Substring.
         | 
| 310 | 
            +
            	/// @param {string} $replace Replacement.
         | 
| 311 | 
            +
            	/// @return {list} Updated list of strings.
         | 
| 312 | 
            +
            	@function str-replace-all($strings, $search, $replace: '') {
         | 
| 313 | 
            +
             | 
| 314 | 
            +
            		@each $string in $strings {
         | 
| 315 | 
            +
            			$strings: set-nth($strings, index($strings, $string), str-replace($string, $search, $replace));
         | 
| 316 | 
            +
            		}
         | 
| 317 | 
            +
             | 
| 318 | 
            +
            		@return $strings;
         | 
| 319 | 
            +
             | 
| 320 | 
            +
            	}
         | 
| 321 | 
            +
             | 
| 322 | 
            +
            // Mixins.
         | 
| 323 | 
            +
             | 
| 324 | 
            +
            	/// Wraps @content in vendorized keyframe blocks.
         | 
| 325 | 
            +
            	/// @param {string} $name Name.
         | 
| 326 | 
            +
            	@mixin keyframes($name) {
         | 
| 327 | 
            +
             | 
| 328 | 
            +
            		@-moz-keyframes #{$name} { @content; }
         | 
| 329 | 
            +
            		@-webkit-keyframes #{$name} { @content; }
         | 
| 330 | 
            +
            		@-ms-keyframes #{$name} { @content; }
         | 
| 331 | 
            +
            		@keyframes #{$name} { @content; }
         | 
| 332 | 
            +
             | 
| 333 | 
            +
            	}
         | 
| 334 | 
            +
             | 
| 335 | 
            +
            	/// Vendorizes a declaration's property and/or value(s).
         | 
| 336 | 
            +
            	/// @param {string} $property Property.
         | 
| 337 | 
            +
            	/// @param {mixed} $value String/list of value(s).
         | 
| 338 | 
            +
            	@mixin vendor($property, $value) {
         | 
| 339 | 
            +
             | 
| 340 | 
            +
            		// Determine if property should expand.
         | 
| 341 | 
            +
            			$expandProperty: index($vendor-properties, $property);
         | 
| 342 | 
            +
             | 
| 343 | 
            +
            		// Determine if value should expand (and if so, add '-prefix-' placeholder).
         | 
| 344 | 
            +
            			$expandValue: false;
         | 
| 345 | 
            +
             | 
| 346 | 
            +
            			@each $x in $value {
         | 
| 347 | 
            +
            				@each $y in $vendor-values {
         | 
| 348 | 
            +
            					@if $y == str-slice($x, 1, str-length($y)) {
         | 
| 349 | 
            +
             | 
| 350 | 
            +
            						$value: set-nth($value, index($value, $x), '-prefix-' + $x);
         | 
| 351 | 
            +
            						$expandValue: true;
         | 
| 352 | 
            +
             | 
| 353 | 
            +
            					}
         | 
| 354 | 
            +
            				}
         | 
| 355 | 
            +
            			}
         | 
| 356 | 
            +
             | 
| 357 | 
            +
            		// Expand property?
         | 
| 358 | 
            +
            			@if $expandProperty {
         | 
| 359 | 
            +
            			    @each $vendor in $vendor-prefixes {
         | 
| 360 | 
            +
            			        #{$vendor}#{$property}: #{str-replace-all($value, '-prefix-', $vendor)};
         | 
| 361 | 
            +
            			    }
         | 
| 362 | 
            +
            			}
         | 
| 363 | 
            +
             | 
| 364 | 
            +
            		// Expand just the value?
         | 
| 365 | 
            +
            			@elseif $expandValue {
         | 
| 366 | 
            +
            			    @each $vendor in $vendor-prefixes {
         | 
| 367 | 
            +
            			        #{$property}: #{str-replace-all($value, '-prefix-', $vendor)};
         | 
| 368 | 
            +
            			    }
         | 
| 369 | 
            +
            			}
         | 
| 370 | 
            +
             | 
| 371 | 
            +
            		// Neither? Treat them as a normal declaration.
         | 
| 372 | 
            +
            			@else {
         | 
| 373 | 
            +
            		        #{$property}: #{$value};
         | 
| 374 | 
            +
            			}
         | 
| 375 | 
            +
             | 
| 376 | 
            +
            	}
         |