Basic frontend layoyut
|
@ -0,0 +1,4 @@
|
||||||
|
.sass-cache/
|
||||||
|
bower_components/
|
||||||
|
dist/
|
||||||
|
node_modules/
|
|
@ -0,0 +1,30 @@
|
||||||
|
extends layout
|
||||||
|
|
||||||
|
block head
|
||||||
|
title Taiga Project management web application with scrum in mind!
|
||||||
|
|
||||||
|
block content
|
||||||
|
section.main.backlog
|
||||||
|
h1 Decathlon Backlog
|
||||||
|
include views/components/summary
|
||||||
|
include views/modules/burndown
|
||||||
|
div.sub-menu
|
||||||
|
a(href="", title="Move to Current Sprint")
|
||||||
|
span.ico(data-icon="")
|
||||||
|
span.text Move to current Sprint
|
||||||
|
a(href="", title="Show Filters")
|
||||||
|
span.ico(data-icon="")
|
||||||
|
span.text Show Filters
|
||||||
|
a(href="", title="Show Tags")
|
||||||
|
span.ico(data-icon="")
|
||||||
|
span.text Show Tags
|
||||||
|
include views/components/addnewus
|
||||||
|
include views/modules/backlog-table
|
||||||
|
sidebar.menu-secondary.sidebar
|
||||||
|
header
|
||||||
|
h2 Sprints
|
||||||
|
body
|
||||||
|
ul
|
||||||
|
li Text1
|
||||||
|
li text2
|
||||||
|
li test2
|
After Width: | Height: | Size: 141 KiB |
After Width: | Height: | Size: 140 KiB |
|
@ -0,0 +1,141 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<metadata>
|
||||||
|
This is a custom SVG webfont generated by Font Squirrel.
|
||||||
|
Copyright : Copyright c 2011 by Tyler Finck All rights reserved
|
||||||
|
Designer : Tyler Finck
|
||||||
|
Foundry : Tyler Finck
|
||||||
|
Foundry URL : httpwwwsurslycom
|
||||||
|
</metadata>
|
||||||
|
<defs>
|
||||||
|
<font id="OstrichSansMedium" horiz-adv-x="1705" >
|
||||||
|
<font-face units-per-em="2048" ascent="1536" descent="-512" />
|
||||||
|
<missing-glyph horiz-adv-x="430" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="430" />
|
||||||
|
<glyph unicode="	" horiz-adv-x="430" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="430" />
|
||||||
|
<glyph unicode="!" horiz-adv-x="190" d="M18 2v88h64v-88h-64zM18 203v1179h64v-1179h-64z" />
|
||||||
|
<glyph unicode=""" horiz-adv-x="331" d="M20 1200v180h64v-180h-64zM141 1200v180h66v-180h-66z" />
|
||||||
|
<glyph unicode="#" horiz-adv-x="1110" d="M-41 463v65h299l64 322h-299v65h311l90 465h68l-93 -465h291l88 465h66l-88 -465h245v-65h-260l-61 -322h258v-65h-272l-88 -463h-66l88 463h-289l-90 -463h-65l90 463h-287zM324 528h288l64 322h-289z" />
|
||||||
|
<glyph unicode="$" horiz-adv-x="655" d="M39 965q0 135 61 219q57 82 162 94v102h64v-102q41 -4 80.5 -19.5t71.5 -51.5t51.5 -95t19.5 -147v-33h-64v33q0 74 -14 121t-36.5 74.5t-51.5 38.5t-57 15v-514q4 -2 7 -3t7 -3q27 -12 63.5 -32.5t68.5 -53.5t54.5 -82t22.5 -120q0 -66 -15.5 -120.5t-46.5 -95.5 q-59 -78 -161 -90v-100h-64v100q-41 4 -81 20.5t-71.5 51.5t-51 93.5t-19.5 148.5v32h63v-32q0 -74 14.5 -121t37 -75t51 -40t57.5 -14v498l-8 4l-8 4l-63 35q-36 20 -67.5 54t-54 84t-22.5 122zM102 965q0 -53 15.5 -91t38 -64t51.5 -44t55 -31v477q-43 -6 -73.5 -29.5 t-50 -58t-28 -75.5t-8.5 -84zM326 166q76 10 117.5 72.5t41.5 167.5q0 53 -15 89.5t-38.5 62.5t-52.5 42l-53 29v-463z" />
|
||||||
|
<glyph unicode="%" horiz-adv-x="919" d="M0 922v176q0 84 47 136t121 52t121 -52t47 -136v-176q0 -84 -47 -136.5t-121 -52.5t-121 52.5t-47 136.5zM63 922q0 -43 24 -83t81 -40t79.5 40t22.5 83v176q0 43 -22.5 83t-79.5 40t-81 -40t-24 -83v-176zM109 0l553 1380h69l-553 -1380h-69zM502 281v176q0 84 46 135 t122 51q74 0 120 -51t46 -135v-176q0 -84 -46.5 -136.5t-119.5 -52.5q-76 0 -122 52.5t-46 136.5zM565 281q0 -43 22.5 -84t82.5 -41q57 0 79.5 41t22.5 84v176q0 20 -5 41.5t-17.5 40t-32 30t-48 11.5t-49 -11.5t-33 -30t-17.5 -40t-5 -41.5v-176z" />
|
||||||
|
<glyph unicode="&" horiz-adv-x="878" d="M0 340q0 68 16.5 119t44 91t63.5 73l73 65q16 16 34 32l37 32q-14 20 -36.5 59t-44 86t-37 99.5t-15.5 103.5q0 70 9.5 118t25.5 82q43 80 139 80q104 0 146 -94q18 -41 23 -92t5 -94q0 -74 -15 -133.5t-35.5 -104.5t-44 -74.5t-38.5 -46.5l268 -460q29 78 35 160.5 t6 148.5v20h66v-20q0 -78 -10 -180.5t-53 -194.5q0 -2 -1.5 -2t-1.5 -2l123 -211h-73l-86 147q-104 -147 -314 -147q-143 0 -227 100q-82 95 -82 240zM63 340q0 -51 14.5 -101.5t45.5 -89t77 -62.5t109 -24q190 0 277 146l-285 485l-32 -27l-31 -28q-37 -31 -69 -60.5 t-55.5 -63.5t-37 -76t-13.5 -99zM201 1100q0 -41 12 -85t29.5 -85t37 -76t33.5 -57q10 10 20.5 24.5t20.5 30.5q63 106 64 248q0 68 -8.5 109.5t-21.5 66t-33.5 33t-45.5 8.5q-23 0 -42 -7t-33.5 -30t-23.5 -65.5t-9 -114.5z" />
|
||||||
|
<glyph unicode="'" horiz-adv-x="165" d="M20 1200v180h64v-180h-64z" />
|
||||||
|
<glyph unicode="(" horiz-adv-x="339" d="M14 686q0 209 30 342t64.5 210t65.5 106.5t35 31.5l37 -55q-12 -10 -27 -27q-12 -14 -26.5 -36.5t-30.5 -57.5q-29 -66 -56.5 -188.5t-27.5 -325.5q0 -201 27.5 -323.5t56.5 -186.5q16 -35 29.5 -56.5t25.5 -35.5q12 -16 27 -25l-33 -55q-4 4 -36 33t-66 104 q-47 98 -71 234.5t-24 310.5z" />
|
||||||
|
<glyph unicode=")" horiz-adv-x="323" d="M27 1321h2l32 55q4 -4 36 -31.5t67 -105.5q94 -195 94 -545q0 -209 -29.5 -342t-65.5 -209.5t-68 -106.5t-34 -32l-34 55q10 10 24 27l26 37q15 23 32 57q29 63 56.5 187.5t27.5 326.5q0 100 -7.5 181t-19.5 143.5t-26.5 109t-28.5 76.5q-31 68 -56.5 92.5t-27.5 24.5z " />
|
||||||
|
<glyph unicode="*" horiz-adv-x="604" d="M20 1174l23 61l199 -74v211h63v-211l199 74l22 -61l-198 -74l149 -168l-49 -43l-156 176l-153 -176l-49 43l147 168z" />
|
||||||
|
<glyph unicode="+" horiz-adv-x="786" d="M25 651v66h299v299h65v-299h299v-66h-299v-299h-65v299h-299z" />
|
||||||
|
<glyph unicode="," horiz-adv-x="174" d="M27 -82v170h63v-170h-63z" />
|
||||||
|
<glyph unicode="-" horiz-adv-x="612" d="M27 657v64h499v-64h-499z" />
|
||||||
|
<glyph unicode="." horiz-adv-x="165" d="M25 0v88h65v-88h-65z" />
|
||||||
|
<glyph unicode="/" horiz-adv-x="786" d="M43 0l553 1380h70l-553 -1380h-70z" />
|
||||||
|
<glyph unicode="0" horiz-adv-x="655" d="M18 371v641q0 176 62 268q63 100 194 100q129 0 193 -100q63 -96 63 -268v-641q0 -172 -61 -269q-68 -102 -195 -102q-129 0 -194 102q-62 93 -62 269zM82 371q0 -307 192 -308q190 0 191 308v641q0 305 -191 305q-193 0 -192 -305v-641z" />
|
||||||
|
<glyph unicode="1" horiz-adv-x="397" d="M16 1108l209 272h64v-1380h-66v1270l-157 -203z" />
|
||||||
|
<glyph unicode="2" horiz-adv-x="655" d="M25 1010v32q0 162 63.5 250t192.5 88q123 0 194 -98q61 -90 62 -231q0 -279 -234 -488q-109 -96 -159 -215t-54 -285h191h223h33v-63h-33h-223h-256v33q0 92 12 167.5t37 141.5q53 150 186 270q211 193 211 439q0 123 -49 194.5t-141 71.5q-96 0 -142 -64 q-49 -68 -49 -211v-32h-65z" />
|
||||||
|
<glyph unicode="3" horiz-adv-x="620" d="M20 365v32h66v-32q0 -158 51 -230q47 -72 139 -72q88 0 140 80q27 39 39 93.5t12 119.5q0 92 -28.5 147.5t-59.5 84.5q-41 39 -83 54t-73 15h-59v64h59q37 0 80 18.5t79 55t60.5 93t24.5 134.5q0 66 -12.5 120t-38.5 95q-49 80 -140 80q-190 0 -190 -303v-33h-66v33 q0 174 62 266q68 100 194.5 100t194.5 -110q61 -92 61 -248q0 -106 -35.5 -174t-72.5 -103q-37 -37 -78 -57q45 -23 78 -55q37 -35 72.5 -101.5t35.5 -175.5q0 -164 -69.5 -260t-186.5 -96q-127 0 -194 98q-62 93 -62 267z" />
|
||||||
|
<glyph unicode="4" horiz-adv-x="663" d="M20 422v61l486 897h61v-1380h-65v422h-482zM96 485h406v750z" />
|
||||||
|
<glyph unicode="5" horiz-adv-x="634" d="M18 360v23h66v-23q0 -156 51 -227q45 -70 139 -70q90 0 140 84q27 41 39 95.5t12 117.5v146q0 152 -49 223q-45 66 -142 66q-90 0 -139 -78q-51 -80 -51 -211v-8v-4h-66v4v8v874h66h446v-63h-446v-561q70 104 190 104q125 0 195 -94q61 -90 61 -260v-146q0 -72 -16 -136 t-45 -111q-70 -113 -195 -113q-127 0 -192 96q-64 94 -64 264z" />
|
||||||
|
<glyph unicode="6" horiz-adv-x="638" d="M18 324v194v2v408q0 147 27 237t66 137.5t84 62.5t79 15q127 0 193 -90q63 -82 63 -225v-31h-65v31q0 121 -49 186.5t-142 65.5q-61 0 -99 -40t-58.5 -99.5t-26.5 -127t-6 -122.5v-154q70 104 190 105q131 0 195 -95q61 -92 61 -266v-149q0 -74 -16 -139.5t-45 -114.5 q-68 -115 -195 -115q-121 0 -188.5 85t-67.5 239zM84 324q0 -37 6 -82t26.5 -85t58.5 -67t99 -27q90 0 140 87q27 41 39 97t12 122v149q0 156 -49 230q-47 68 -142 67q-90 0 -139 -82q-51 -80 -51 -213v-196z" />
|
||||||
|
<glyph unicode="7" horiz-adv-x="770" d="M12 1317v63h682v-61l-551 -1319h-69l551 1317h-613z" />
|
||||||
|
<glyph unicode="8" horiz-adv-x="679" d="M14 360.5q0 178.5 66 268.5q30 41 70 61q-41 23 -70 62q-66 90 -66 268t66 268q68 92 213 92q143 0 211 -92q66 -86 65.5 -268t-65.5 -268q-29 -39 -70 -62q41 -20 70 -61q66 -86 65.5 -268.5t-65.5 -268.5q-68 -92 -211 -92q-145 0 -213 92q-66 90 -66 268.5zM80 360.5 q0 -159.5 51 -229.5q51 -68 161.5 -68t160.5 68q51 70 51 229.5t-51 231.5q-49 68 -160 67.5t-162 -67.5q-51 -72 -51 -231.5zM80 1020q0 -160 51 -229q51 -68 161.5 -68t160.5 68q51 70 51 229.5t-51 228.5q-49 68 -160 68t-162 -68q-51 -69 -51 -229z" />
|
||||||
|
<glyph unicode="9" horiz-adv-x="630" d="M16 334v33h66v-33q0 -133 49 -203q49 -68 141 -68q59 0 96.5 36t59 92.5t28.5 125t7 134.5v155q-33 -51 -81 -78.5t-110 -27.5q-127 0 -192 96q-63 90 -64 268v152q0 166 70 265t186 99q127 0 193 -88q63 -82 63 -231v-197v-2v-411q0 -211 -59 -326q-66 -125 -197 -125 q-127 0 -192 94q-64 88 -64 240zM82 864q0 -160 51 -231q45 -68 139 -68q90 0 140 82q25 39 38 94.5t13 120.5v199q0 127 -49 192q-47 63 -142 64q-88 0 -139 -82q-51 -84 -51 -219v-152z" />
|
||||||
|
<glyph unicode=":" horiz-adv-x="231" d="M29 334v155h63v-155h-63zM29 897v156h63v-156h-63z" />
|
||||||
|
<glyph unicode=";" horiz-adv-x="198" d="M27 260v229h65v-229h-65zM27 897v156h65v-156h-65z" />
|
||||||
|
<glyph unicode="<" />
|
||||||
|
<glyph unicode="=" horiz-adv-x="638" d="M27 412v63h499v-63h-499zM27 842v63h499v-63h-499z" />
|
||||||
|
<glyph unicode=">" />
|
||||||
|
<glyph unicode="?" horiz-adv-x="620" d="M29 997v31q0 166 63 258q66 96 193 96q121 0 194 -104q31 -47 46.5 -107.5t15.5 -132.5q0 -74 -17.5 -128t-42 -94t-52.5 -66.5t-50 -44.5l-19 -15q-8 -6 -12 -12q-41 -47 -64 -160q-22 -104 -22 -249v-25v-6v-33h-63v33v6q0 61 3 130.5t14 134t31.5 121t53.5 91.5 q12 16 37 33l45 41q25 23 45.5 56.5t33.5 78.5t13 108q0 61 -12 113.5t-37 89.5q-53 78 -141 78q-94 0 -140 -70q-51 -70 -51 -221v-31h-65zM197 2v88h65v-88h-65z" />
|
||||||
|
<glyph unicode="@" horiz-adv-x="1325" d="M25 727q18 117 66 214t122 175q68 70 152 115t180 65q68 14 133 14q22 0 44 -1q87 -6 164 -35t140.5 -79t108.5 -120q33 -51 51 -115.5t23 -133.5q2 -26 2 -53q0 -42 -5 -85q-8 -70 -32 -131q-23 -55 -69 -99t-102.5 -74t-114.5 -40q-27 -5 -51 -5q-29 0 -53 7 q-43 10 -64 43q-18 28 -18 65v15q-31 -23 -69.5 -28t-85.5 -5q-113 0 -162 58q-43 48 -43 134q0 28 4 60q14 125 74 191q66 70 178 69q29 0 76 -6t82 -31q12 -8 16 -14l4 16l4 31l64 -10l-4 -33l-5 -29l-13 -71l-16 -95q-9 -52 -16 -101l-14 -86q-6 -38 -8 -54q-1 -7 -1 -14 q0 -33 36 -43q16 -4 33 -5q33 0 74.5 12.5t81.5 36t73 56.5t49 74q20 53 29 114q5 38 5 76q0 24 -2 48q-5 62 -21.5 119.5t-43.5 100.5q-39 61 -96 105.5t-124.5 69t-144.5 29.5q-18 1 -37 1q-59 0 -120 -12q-74 -16 -148.5 -53t-140 -100.5t-115 -153.5t-67.5 -209 q-10 -61 -10 -119q0 -112 38 -205q56 -141 193 -225q86 -53 191 -76q82 -18 166 -18q23 0 47 2q109 6 212 38.5t187 94.5l25 18l39 -51l-27 -20q-88 -63 -198.5 -101.5t-233.5 -44.5h-45q-111 0 -212.5 25.5t-185.5 77.5q-154 96 -219 253q-43 102 -42 225q0 65 12 136z M410 680q-3 -28 -4 -51q0 -65 26 -92q33 -35 115 -35q51 0 79.5 5t49.5 23q23 23 39 74t33 139q5 27 4 47q0 22 -6 34q-11 24 -27 34q-16 12 -48 18.5t-73 6.5q-86 0 -131 -47q-23 -27 -37 -65t-20 -91z" />
|
||||||
|
<glyph unicode="A" horiz-adv-x="802" d="M20 0l109 479v6l209 895h51l316 -1380h-66l-94 422h-365l-94 -422h-66zM197 485h333l-168 721z" />
|
||||||
|
<glyph unicode="B" horiz-adv-x="688" d="M35 0v63v1317h227q158 0 234 -90q72 -90 71 -270q0 -178 -71 -268q-16 -20 -35 -35t-41 -27q43 -20 76 -59q72 -90 71.5 -270.5t-71.5 -270.5q-76 -90 -234 -90h-162h-65zM100 63h162q129 0 184.5 69t55.5 228.5t-58 229.5q-55 70 -182 69h-162v-596zM100 723h162 q127 0 182 70q57 70 58 227q0 160 -55.5 228.5t-184.5 68.5h-162v-594z" />
|
||||||
|
<glyph unicode="C" horiz-adv-x="704" d="M16 367v649q0 113 27 184.5t70 111.5t95 54t103 14q49 0 101.5 -14t95.5 -54t69.5 -112t26.5 -184v-33h-65v33q0 158 -58 229q-59 72 -170 72q-113 0 -172 -72q-57 -72 -57 -229v-649q0 -158 59 -232q55 -72 170 -72q111 0 170 72q57 76 58 232v32h65v-32 q0 -115 -26.5 -185.5t-69.5 -111.5t-95.5 -55.5t-101.5 -14.5q-51 0 -103 14.5t-95 55.5t-70 111.5t-27 185.5z" />
|
||||||
|
<glyph unicode="D" horiz-adv-x="712" d="M25 0v1380h235q164 0 244 -98q76 -90 76 -274v-635q0 -184 -76 -275q-80 -98 -244 -98h-235zM88 63h172q133 0 193.5 75t60.5 235v635q0 160 -60.5 234.5t-193.5 74.5h-172v-1254z" />
|
||||||
|
<glyph unicode="E" horiz-adv-x="620" d="M20 0v1380h496v-63h-432v-594h432v-64h-432v-596h432v-63h-496z" />
|
||||||
|
<glyph unicode="F" horiz-adv-x="630" d="M14 0v1380h496v-63h-432v-594h432v-64h-432v-659h-64z" />
|
||||||
|
<glyph unicode="G" horiz-adv-x="720" d="M20 365v653q0 178 72 268q76 94 223.5 94t221.5 -94q74 -90 73 -268v-33h-65v33q0 100 -22.5 159.5t-56.5 90t-74 40t-76.5 9.5t-77.5 -9.5t-75 -40t-56.5 -90t-22.5 -159.5v-653q0 -154 59 -230q55 -72 172 -72q115 0 170 72q59 76 60 230v180h-299v65h364v-245 q0 -178 -73 -271q-74 -94 -221.5 -94t-223.5 94q-72 95 -72 271z" />
|
||||||
|
<glyph unicode="H" horiz-adv-x="704" d="M20 0v1380h66v-659h418v659h65v-1380h-65v657h-418v-657h-66z" />
|
||||||
|
<glyph unicode="I" horiz-adv-x="223" d="M47 0v1380h64v-1380h-64z" />
|
||||||
|
<glyph unicode="J" horiz-adv-x="663" d="M0 338v31h63v-31q0 -92 20.5 -146.5t51.5 -83t68 -37t71 -8.5q102 0 156 64q53 70 53 211v1042h64v-1042q0 -168 -68 -250q-68 -88 -205 -88t-206 88q-68 82 -68 250z" />
|
||||||
|
<glyph unicode="K" horiz-adv-x="737" d="M16 0v1380h66v-784l524 784h78l-424 -632l424 -748h-74l-389 686l-139 -207v-479h-66z" />
|
||||||
|
<glyph unicode="L" horiz-adv-x="604" d="M8 0v1380h66v-1317h463v-63h-529z" />
|
||||||
|
<glyph unicode="M" horiz-adv-x="968" d="M14 0v1380h56l354 -1230l352 1230h58v-1380h-66v1118l-319 -1118h-50l-321 1118v-1118h-64z" />
|
||||||
|
<glyph unicode="N" horiz-adv-x="737" d="M18 0v1380h56l475 -1181v1181h65v-1380h-53l-477 1182v-1182h-66z" />
|
||||||
|
<glyph unicode="O" horiz-adv-x="729" d="M20 367v649q0 176 72 270q76 94 221 94q147 0 222 -94q74 -92 73 -270v-649q0 -115 -26.5 -185.5t-69.5 -111.5t-95 -55.5t-104 -14.5q-49 0 -101 14.5t-95 55.5t-70 111.5t-27 185.5zM84 367q0 -156 59 -232q55 -72 170 -72q113 0 172 72q57 72 58 232v649 q0 158 -57.5 229.5t-172.5 71.5q-117 0 -170 -72q-59 -76 -59 -229v-649z" />
|
||||||
|
<glyph unicode="P" horiz-adv-x="696" d="M23 0v1380h247q166 0 244 -90t78 -270t-78 -270.5t-244 -90.5h-184v-659h-63zM86 723h184q135 0 197 70q59 72 59 227q0 160 -59 228.5t-197 68.5h-184v-594z" />
|
||||||
|
<glyph unicode="Q" horiz-adv-x="712" d="M12 373v649q0 176 74 266q74 92 221 92q145 0 219 -92q74 -90 74 -266v-649q0 -176 -72 -273l-4 -4l133 -159h-84l-94 114q-70 -51 -172 -51q-147 0 -221 100q-74 95 -74 273zM78 373q0 -156 59 -234q55 -76 170 -76q78 0 131 37l-92 113h82l55 -66q51 76 52 226v649 q0 156 -58 227q-55 68 -169.5 68t-170.5 -68q-59 -76 -59 -227v-649z" />
|
||||||
|
<glyph unicode="R" horiz-adv-x="712" d="M23 2v1380h247q166 0 243 -89t77 -277q0 -184 -76 -275q-33 -39 -82 -63q39 -18 70 -49q92 -88 92 -244v-383h-66v383q0 125 -67.5 193.5t-190.5 68.5h-30h-154v-645h-63zM86 713h154h30q137 0 195 69q61 74 61 234q0 162 -59 231.5t-197 69.5h-184v-604z" />
|
||||||
|
<glyph unicode="S" horiz-adv-x="712" d="M20 1016q0 156 72 256q82 111 223 110q145 0 224 -96q74 -92 73 -270v-33h-65v33q0 156 -60 231q-55 70 -172 70q-111 0 -170 -84q-61 -84 -61 -217q0 -74 24.5 -125t60.5 -86t75 -55.5t69 -32.5l33 -15q27 -10 72 -31.5t88 -61.5t74.5 -101.5t31.5 -151.5 q0 -154 -73 -250q-80 -104 -224 -104q-147 0 -221 94q-74 88 -74 271v30h64v-30q0 -102 22.5 -162t56.5 -90.5t75 -39.5t77 -9q111 0 171.5 76.5t60.5 213.5q0 74 -25.5 124t-61.5 83t-75 51.5t-63 28.5l-35 14q-31 12 -76 36t-87 66t-73 104.5t-31 152.5z" />
|
||||||
|
<glyph unicode="T" horiz-adv-x="821" d="M10 1317v65h725v-65h-332v-1315h-63v1315h-330z" />
|
||||||
|
<glyph unicode="U" horiz-adv-x="712" d="M14 340v1042h64v-1042q0 -92 20.5 -146.5t51 -83t67.5 -36.5t72 -8q33 0 69.5 8t67.5 36.5t51.5 83t20.5 146.5v1042h63v-1042q0 -104 -25.5 -171t-64.5 -103.5t-88 -50t-94 -13.5q-47 0 -95.5 13.5t-88 50t-65.5 103.5t-26 171z" />
|
||||||
|
<glyph unicode="V" horiz-adv-x="821" d="M0 1382h66l305 -1216l303 1216h67l-346 -1380h-49z" />
|
||||||
|
<glyph unicode="W" horiz-adv-x="1333" d="M0 1380h66l266 -1198l264 1198h51l264 -1198l260 1198h68l-301 -1380h-53l-264 1198l-265 -1198h-51z" />
|
||||||
|
<glyph unicode="X" horiz-adv-x="802" d="M-8 0l327 690l-327 690h71l293 -614l287 614h72l-324 -690l328 -690h-72l-291 614l-293 -614h-71z" />
|
||||||
|
<glyph unicode="Y" horiz-adv-x="854" d="M-20 1380h73l342 -622l342 622h74l-383 -698v-682h-63v682z" />
|
||||||
|
<glyph unicode="Z" horiz-adv-x="837" d="M0 1317v63h672v-59l-590 -1258h600v-63h-672v63l588 1254h-598z" />
|
||||||
|
<glyph unicode="[" />
|
||||||
|
<glyph unicode="\" horiz-adv-x="778" d="M45 1380h70l553 -1380h-70z" />
|
||||||
|
<glyph unicode="]" />
|
||||||
|
<glyph unicode="^" />
|
||||||
|
<glyph unicode="_" horiz-adv-x="944" d="M41 0h827v-63h-827v63z" />
|
||||||
|
<glyph unicode="`" horiz-adv-x="165" d="M20 1200v180h64v-180h-64z" />
|
||||||
|
<glyph unicode="a" horiz-adv-x="802" d="M20 0l109 479v6l209 895h51l316 -1380h-66l-94 422h-365l-94 -422h-66zM197 485h333l-168 721z" />
|
||||||
|
<glyph unicode="b" horiz-adv-x="688" d="M35 0v63v1317h227q158 0 234 -90q72 -90 71 -270q0 -178 -71 -268q-16 -20 -35 -35t-41 -27q43 -20 76 -59q72 -90 71.5 -270.5t-71.5 -270.5q-76 -90 -234 -90h-162h-65zM100 63h162q129 0 184.5 69t55.5 228.5t-58 229.5q-55 70 -182 69h-162v-596zM100 723h162 q127 0 182 70q57 70 58 227q0 160 -55.5 228.5t-184.5 68.5h-162v-594z" />
|
||||||
|
<glyph unicode="c" horiz-adv-x="704" d="M16 367v649q0 113 27 184.5t70 111.5t95 54t103 14q49 0 101.5 -14t95.5 -54t69.5 -112t26.5 -184v-33h-65v33q0 158 -58 229q-59 72 -170 72q-113 0 -172 -72q-57 -72 -57 -229v-649q0 -158 59 -232q55 -72 170 -72q111 0 170 72q57 76 58 232v32h65v-32 q0 -115 -26.5 -185.5t-69.5 -111.5t-95.5 -55.5t-101.5 -14.5q-51 0 -103 14.5t-95 55.5t-70 111.5t-27 185.5z" />
|
||||||
|
<glyph unicode="d" horiz-adv-x="712" d="M25 0v1380h235q164 0 244 -98q76 -90 76 -274v-635q0 -184 -76 -275q-80 -98 -244 -98h-235zM88 63h172q133 0 193.5 75t60.5 235v635q0 160 -60.5 234.5t-193.5 74.5h-172v-1254z" />
|
||||||
|
<glyph unicode="e" horiz-adv-x="620" d="M20 0v1380h496v-63h-432v-594h432v-64h-432v-596h432v-63h-496z" />
|
||||||
|
<glyph unicode="f" horiz-adv-x="630" d="M14 0v1380h496v-63h-432v-594h432v-64h-432v-659h-64z" />
|
||||||
|
<glyph unicode="g" horiz-adv-x="720" d="M20 365v653q0 178 72 268q76 94 223.5 94t221.5 -94q74 -90 73 -268v-33h-65v33q0 100 -22.5 159.5t-56.5 90t-74 40t-76.5 9.5t-77.5 -9.5t-75 -40t-56.5 -90t-22.5 -159.5v-653q0 -154 59 -230q55 -72 172 -72q115 0 170 72q59 76 60 230v180h-299v65h364v-245 q0 -178 -73 -271q-74 -94 -221.5 -94t-223.5 94q-72 95 -72 271z" />
|
||||||
|
<glyph unicode="h" horiz-adv-x="704" d="M20 0v1380h66v-659h418v659h65v-1380h-65v657h-418v-657h-66z" />
|
||||||
|
<glyph unicode="i" horiz-adv-x="223" d="M47 0v1380h64v-1380h-64z" />
|
||||||
|
<glyph unicode="j" horiz-adv-x="663" d="M0 338v31h63v-31q0 -92 20.5 -146.5t51.5 -83t68 -37t71 -8.5q102 0 156 64q53 70 53 211v1042h64v-1042q0 -168 -68 -250q-68 -88 -205 -88t-206 88q-68 82 -68 250z" />
|
||||||
|
<glyph unicode="k" horiz-adv-x="737" d="M16 0v1380h66v-784l524 784h78l-424 -632l424 -748h-74l-389 686l-139 -207v-479h-66z" />
|
||||||
|
<glyph unicode="l" horiz-adv-x="604" d="M8 0v1380h66v-1317h463v-63h-529z" />
|
||||||
|
<glyph unicode="m" horiz-adv-x="968" d="M14 0v1380h56l354 -1230l352 1230h58v-1380h-66v1118l-319 -1118h-50l-321 1118v-1118h-64z" />
|
||||||
|
<glyph unicode="n" horiz-adv-x="737" d="M18 0v1380h56l475 -1181v1181h65v-1380h-53l-477 1182v-1182h-66z" />
|
||||||
|
<glyph unicode="o" horiz-adv-x="729" d="M20 367v649q0 176 72 270q76 94 221 94q147 0 222 -94q74 -92 73 -270v-649q0 -115 -26.5 -185.5t-69.5 -111.5t-95 -55.5t-104 -14.5q-49 0 -101 14.5t-95 55.5t-70 111.5t-27 185.5zM84 367q0 -156 59 -232q55 -72 170 -72q113 0 172 72q57 72 58 232v649 q0 158 -57.5 229.5t-172.5 71.5q-117 0 -170 -72q-59 -76 -59 -229v-649z" />
|
||||||
|
<glyph unicode="p" horiz-adv-x="696" d="M23 0v1380h247q166 0 244 -90t78 -270t-78 -270.5t-244 -90.5h-184v-659h-63zM86 723h184q135 0 197 70q59 72 59 227q0 160 -59 228.5t-197 68.5h-184v-594z" />
|
||||||
|
<glyph unicode="q" horiz-adv-x="712" d="M12 373v649q0 176 74 266q74 92 221 92q145 0 219 -92q74 -90 74 -266v-649q0 -176 -72 -273l-4 -4l133 -159h-84l-94 114q-70 -51 -172 -51q-147 0 -221 100q-74 95 -74 273zM78 373q0 -156 59 -234q55 -76 170 -76q78 0 131 37l-92 113h82l55 -66q51 76 52 226v649 q0 156 -58 227q-55 68 -169.5 68t-170.5 -68q-59 -76 -59 -227v-649z" />
|
||||||
|
<glyph unicode="r" horiz-adv-x="712" d="M23 2v1380h247q166 0 243 -89t77 -277q0 -184 -76 -275q-33 -39 -82 -63q39 -18 70 -49q92 -88 92 -244v-383h-66v383q0 125 -67.5 193.5t-190.5 68.5h-30h-154v-645h-63zM86 713h154h30q137 0 195 69q61 74 61 234q0 162 -59 231.5t-197 69.5h-184v-604z" />
|
||||||
|
<glyph unicode="s" horiz-adv-x="712" d="M20 1016q0 156 72 256q82 111 223 110q145 0 224 -96q74 -92 73 -270v-33h-65v33q0 156 -60 231q-55 70 -172 70q-111 0 -170 -84q-61 -84 -61 -217q0 -74 24.5 -125t60.5 -86t75 -55.5t69 -32.5l33 -15q27 -10 72 -31.5t88 -61.5t74.5 -101.5t31.5 -151.5 q0 -154 -73 -250q-80 -104 -224 -104q-147 0 -221 94q-74 88 -74 271v30h64v-30q0 -102 22.5 -162t56.5 -90.5t75 -39.5t77 -9q111 0 171.5 76.5t60.5 213.5q0 74 -25.5 124t-61.5 83t-75 51.5t-63 28.5l-35 14q-31 12 -76 36t-87 66t-73 104.5t-31 152.5z" />
|
||||||
|
<glyph unicode="t" horiz-adv-x="821" d="M10 1317v65h725v-65h-332v-1315h-63v1315h-330z" />
|
||||||
|
<glyph unicode="u" horiz-adv-x="712" d="M14 340v1042h64v-1042q0 -92 20.5 -146.5t51 -83t67.5 -36.5t72 -8q33 0 69.5 8t67.5 36.5t51.5 83t20.5 146.5v1042h63v-1042q0 -104 -25.5 -171t-64.5 -103.5t-88 -50t-94 -13.5q-47 0 -95.5 13.5t-88 50t-65.5 103.5t-26 171z" />
|
||||||
|
<glyph unicode="v" horiz-adv-x="821" d="M0 1382h66l305 -1216l303 1216h67l-346 -1380h-49z" />
|
||||||
|
<glyph unicode="w" horiz-adv-x="1333" d="M0 1380h66l266 -1198l264 1198h51l264 -1198l260 1198h68l-301 -1380h-53l-264 1198l-265 -1198h-51z" />
|
||||||
|
<glyph unicode="x" horiz-adv-x="802" d="M-8 0l327 690l-327 690h71l293 -614l287 614h72l-324 -690l328 -690h-72l-291 614l-293 -614h-71z" />
|
||||||
|
<glyph unicode="y" horiz-adv-x="854" d="M-20 1380h73l342 -622l342 622h74l-383 -698v-682h-63v682z" />
|
||||||
|
<glyph unicode="z" horiz-adv-x="837" d="M0 1317v63h672v-59l-590 -1258h600v-63h-672v63l588 1254h-598z" />
|
||||||
|
<glyph unicode="{" />
|
||||||
|
<glyph unicode="|" horiz-adv-x="182" d="M27 0v1380h63v-1380h-63z" />
|
||||||
|
<glyph unicode="}" />
|
||||||
|
<glyph unicode="~" />
|
||||||
|
<glyph unicode="©" />
|
||||||
|
<glyph unicode="­" horiz-adv-x="612" d="M27 657v64h499v-64h-499z" />
|
||||||
|
<glyph unicode="®" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="690" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="1382" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="690" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="1382" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="460" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="344" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="229" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="229" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="172" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="276" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="75" />
|
||||||
|
<glyph unicode="‐" horiz-adv-x="612" d="M27 657v64h499v-64h-499z" />
|
||||||
|
<glyph unicode="‑" horiz-adv-x="612" d="M27 657v64h499v-64h-499z" />
|
||||||
|
<glyph unicode="‒" horiz-adv-x="612" d="M27 657v64h499v-64h-499z" />
|
||||||
|
<glyph unicode="–" horiz-adv-x="612" d="M27 657v64h499v-64h-499z" />
|
||||||
|
<glyph unicode="—" horiz-adv-x="612" d="M27 657v64h499v-64h-499z" />
|
||||||
|
<glyph unicode="‘" horiz-adv-x="165" d="M20 1200v180h64v-180h-64z" />
|
||||||
|
<glyph unicode="’" horiz-adv-x="165" d="M20 1200v180h64v-180h-64z" />
|
||||||
|
<glyph unicode="“" horiz-adv-x="307" d="M20 1200v180h64v-180h-64zM141 1200v180h66v-180h-66z" />
|
||||||
|
<glyph unicode="”" horiz-adv-x="307" d="M20 1200v180h64v-180h-64zM141 1200v180h66v-180h-66z" />
|
||||||
|
<glyph unicode="•" />
|
||||||
|
<glyph unicode="…" horiz-adv-x="497" d="M25 0v88h65v-88h-65zM190 0v88h66v-88h-66zM356 0v88h66v-88h-66z" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="276" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="344" />
|
||||||
|
<glyph unicode="" horiz-adv-x="1380" d="M0 1380h1380v-1380h-1380v1380z" />
|
||||||
|
</font>
|
||||||
|
</defs></svg>
|
After Width: | Height: | Size: 21 KiB |
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<metadata>Generated by Fontastic.me</metadata>
|
||||||
|
<defs>
|
||||||
|
<font id="taiga" horiz-adv-x="512">
|
||||||
|
<font-face font-family="taiga" units-per-em="512" ascent="480" descent="-32"/>
|
||||||
|
<missing-glyph horiz-adv-x="512" />
|
||||||
|
|
||||||
|
<glyph unicode="a" d="M0 512l0-512 512 0 0 512z m52-51l179 0 0-102-179 0z m230 0l179 0 0-410-179 0z m-230-154l179 0 0-106-179 0z m0-157l179 0 0-99-179 0z"/>
|
||||||
|
<glyph unicode="b" d="M328 511l-284 1c0 0-2-336-2-492l46 0 59 38 43-58 60 97 56-75 57 56c5-5 12-11 19-18 8-8 17-17 25-24 7-7 12-13 17-16l46 0 0 349z m50-386l-16 15-51-51-65 86-59-97-29 39-63-46 0 393 223 1 0-102c0-2 0-3 1-4 1-1 3-1 4-1l95 0 0-277c-21 19-40 44-40 44z"/>
|
||||||
|
<glyph unicode="c" d="M0 512l0-512 512 0 0 512z m51-49l104 0 0-413-104 0z m158 0l98 0 0-415-98 0z m151-2l101 0 0-410-101 0z"/>
|
||||||
|
<glyph unicode="d" d="M224 512c-123 0-223-104-223-232 0-128 100-231 223-231 52 0 100 18 137 49l99-98 51 52-101 101c23 37 37 80 37 127 0 128-100 232-223 232z m0-32c107 0 193-89 193-200 0-111-86-200-193-200-107 0-193 89-193 200 0 111 86 200 193 200z"/>
|
||||||
|
<glyph unicode="e" d="M17 512l0-389 59 0 0-123 124 124 295 0 0 387-15 0-448 1z m48-45l381-2 0-296-263 0-5-4-59-63 0 66-54 0z"/>
|
||||||
|
<glyph unicode="f" d="M0 510l0-508 512 0 0 508z m52-51l409 0 0-408-409 0z m32-86l344 0 0-35-344 0z m0-68l344 0 0-35-344 0z m0-67l344 0 0-36-344 0z m0-68l344 0 0-35-344 0z"/>
|
||||||
|
<glyph unicode="g" d="M329 256c0 20-7 37-21 52-15 14-32 21-52 21-20 0-37-7-52-21-14-15-21-32-21-52 0-20 7-37 21-52 15-14 32-21 52-21 20 0 37 7 52 21 14 15 21 32 21 52z m146 31l0-63c0-3 0-5-2-7-1-2-3-3-6-4l-52-8c-4-10-8-19-12-26 7-9 17-22 31-39 2-2 3-5 3-7 0-3-1-5-3-7-5-7-14-17-28-31-14-13-23-20-27-20-2 0-5 1-7 3l-40 31c-8-5-17-8-26-11-3-26-6-44-8-53-1-6-5-8-10-8l-64 0c-2 0-5 0-7 2-2 2-3 4-3 6l-8 53c-9 3-18 6-26 10l-40-30c-2-2-4-3-7-3-3 0-5 1-7 3-24 22-40 38-47 48-2 2-2 4-2 7 0 2 0 4 2 6 3 4 8 11 14 19 7 9 12 16 16 21-5 9-9 19-12 28l-52 8c-3 0-5 1-6 3-2 2-2 4-2 7l0 63c0 3 0 5 2 7 1 2 3 3 5 4l53 8c3 8 7 17 12 26-8 11-18 24-31 39-2 3-3 5-3 7 0 2 1 4 3 7 5 7 14 17 28 30 14 14 23 21 27 21 2 0 5-1 7-3l40-31c8 5 17 8 26 11 3 26 6 44 8 53 1 6 5 8 10 8l64 0c2 0 5 0 7-2 2-2 3-4 3-6l8-53c9-3 18-6 26-10l40 30c2 2 4 3 7 3 3 0 5-1 7-3 25-23 41-39 47-49 2-1 2-3 2-6 0-2 0-4-2-6-3-4-8-11-14-19-7-9-12-16-16-21 5-9 9-18 12-28l52-8c3 0 5-1 6-3 2-2 2-4 2-7z"/>
|
||||||
|
</font></defs></svg>
|
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 387 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 9.2 MiB |
|
@ -0,0 +1,14 @@
|
||||||
|
doctype html
|
||||||
|
html(lang="en")
|
||||||
|
head
|
||||||
|
title= Taiga
|
||||||
|
meta(http-equiv="content-type", content="text/html; charset=utf-8")
|
||||||
|
meta(name="description", content="Taiga Landing page")
|
||||||
|
meta(name="keywords", content="Agile, Taiga, Management, Github")
|
||||||
|
meta(name="viewport", content="width=device-width, user-scalable=no")
|
||||||
|
link(rel="stylesheet", href="styles/main.css")
|
||||||
|
block head
|
||||||
|
body
|
||||||
|
div.wrapper
|
||||||
|
include views/modules/nav
|
||||||
|
block content
|
|
@ -0,0 +1,8 @@
|
||||||
|
//************************************************************************//
|
||||||
|
// These mixins/functions are deprecated
|
||||||
|
// They will be removed in the next MAJOR version release
|
||||||
|
//************************************************************************//
|
||||||
|
@mixin inline-block {
|
||||||
|
display: inline-block;
|
||||||
|
@warn "inline-block mixin is deprecated and will be removed in the next major version release";
|
||||||
|
}
|
|
@ -0,0 +1,78 @@
|
||||||
|
// Settings
|
||||||
|
@import "settings/prefixer";
|
||||||
|
@import "settings/px-to-em";
|
||||||
|
|
||||||
|
// Custom Helpers
|
||||||
|
@import "helpers/convert-units";
|
||||||
|
@import "helpers/gradient-positions-parser";
|
||||||
|
@import "helpers/is-num";
|
||||||
|
@import "helpers/linear-angle-parser";
|
||||||
|
@import "helpers/linear-gradient-parser";
|
||||||
|
@import "helpers/linear-positions-parser";
|
||||||
|
@import "helpers/linear-side-corner-parser";
|
||||||
|
@import "helpers/radial-arg-parser";
|
||||||
|
@import "helpers/radial-positions-parser";
|
||||||
|
@import "helpers/radial-gradient-parser";
|
||||||
|
@import "helpers/render-gradients";
|
||||||
|
@import "helpers/shape-size-stripper";
|
||||||
|
@import "helpers/str-to-num";
|
||||||
|
|
||||||
|
// Custom Functions
|
||||||
|
@import "functions/assign";
|
||||||
|
@import "functions/color-lightness";
|
||||||
|
@import "functions/flex-grid";
|
||||||
|
@import "functions/golden-ratio";
|
||||||
|
@import "functions/grid-width";
|
||||||
|
@import "functions/modular-scale";
|
||||||
|
@import "functions/px-to-em";
|
||||||
|
@import "functions/px-to-rem";
|
||||||
|
@import "functions/strip-units";
|
||||||
|
@import "functions/tint-shade";
|
||||||
|
@import "functions/transition-property-name";
|
||||||
|
@import "functions/unpack";
|
||||||
|
|
||||||
|
// CSS3 Mixins
|
||||||
|
@import "css3/animation";
|
||||||
|
@import "css3/appearance";
|
||||||
|
@import "css3/backface-visibility";
|
||||||
|
@import "css3/background";
|
||||||
|
@import "css3/background-image";
|
||||||
|
@import "css3/border-image";
|
||||||
|
@import "css3/border-radius";
|
||||||
|
@import "css3/box-sizing";
|
||||||
|
@import "css3/calc";
|
||||||
|
@import "css3/columns";
|
||||||
|
@import "css3/filter";
|
||||||
|
@import "css3/flex-box";
|
||||||
|
@import "css3/font-face";
|
||||||
|
@import "css3/font-feature-settings";
|
||||||
|
@import "css3/hyphens";
|
||||||
|
@import "css3/hidpi-media-query";
|
||||||
|
@import "css3/image-rendering";
|
||||||
|
@import "css3/keyframes";
|
||||||
|
@import "css3/linear-gradient";
|
||||||
|
@import "css3/perspective";
|
||||||
|
@import "css3/radial-gradient";
|
||||||
|
@import "css3/transform";
|
||||||
|
@import "css3/transition";
|
||||||
|
@import "css3/user-select";
|
||||||
|
@import "css3/placeholder";
|
||||||
|
|
||||||
|
// Addons & other mixins
|
||||||
|
@import "addons/button";
|
||||||
|
@import "addons/clearfix";
|
||||||
|
@import "addons/directional-values";
|
||||||
|
@import "addons/ellipsis";
|
||||||
|
@import "addons/font-family";
|
||||||
|
@import "addons/hide-text";
|
||||||
|
@import "addons/html5-input-types";
|
||||||
|
@import "addons/position";
|
||||||
|
@import "addons/prefixer";
|
||||||
|
@import "addons/retina-image";
|
||||||
|
@import "addons/size";
|
||||||
|
@import "addons/timing-functions";
|
||||||
|
@import "addons/triangle";
|
||||||
|
@import "addons/word-wrap";
|
||||||
|
|
||||||
|
// Soon to be deprecated Mixins
|
||||||
|
@import "bourbon-deprecated-upcoming";
|
|
@ -0,0 +1,374 @@
|
||||||
|
@mixin button ($style: simple, $base-color: #4294f0, $text-size: inherit, $padding: 7px 18px) {
|
||||||
|
|
||||||
|
@if type-of($style) == string and type-of($base-color) == color {
|
||||||
|
@include buttonstyle($style, $base-color, $text-size, $padding);
|
||||||
|
}
|
||||||
|
|
||||||
|
@if type-of($style) == string and type-of($base-color) == number {
|
||||||
|
$padding: $text-size;
|
||||||
|
$text-size: $base-color;
|
||||||
|
$base-color: #4294f0;
|
||||||
|
|
||||||
|
@if $padding == inherit {
|
||||||
|
$padding: 7px 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include buttonstyle($style, $base-color, $text-size, $padding);
|
||||||
|
}
|
||||||
|
|
||||||
|
@if type-of($style) == color and type-of($base-color) == color {
|
||||||
|
$base-color: $style;
|
||||||
|
$style: simple;
|
||||||
|
@include buttonstyle($style, $base-color, $text-size, $padding);
|
||||||
|
}
|
||||||
|
|
||||||
|
@if type-of($style) == color and type-of($base-color) == number {
|
||||||
|
$padding: $text-size;
|
||||||
|
$text-size: $base-color;
|
||||||
|
$base-color: $style;
|
||||||
|
$style: simple;
|
||||||
|
|
||||||
|
@if $padding == inherit {
|
||||||
|
$padding: 7px 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include buttonstyle($style, $base-color, $text-size, $padding);
|
||||||
|
}
|
||||||
|
|
||||||
|
@if type-of($style) == number {
|
||||||
|
$padding: $base-color;
|
||||||
|
$text-size: $style;
|
||||||
|
$base-color: #4294f0;
|
||||||
|
$style: simple;
|
||||||
|
|
||||||
|
@if $padding == #4294f0 {
|
||||||
|
$padding: 7px 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include buttonstyle($style, $base-color, $text-size, $padding);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:disabled {
|
||||||
|
opacity: 0.5;
|
||||||
|
cursor: not-allowed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Selector Style Button
|
||||||
|
//************************************************************************//
|
||||||
|
@mixin buttonstyle($type, $b-color, $t-size, $pad) {
|
||||||
|
// Grayscale button
|
||||||
|
@if $type == simple and $b-color == grayscale($b-color) {
|
||||||
|
@include simple($b-color, true, $t-size, $pad);
|
||||||
|
}
|
||||||
|
|
||||||
|
@if $type == shiny and $b-color == grayscale($b-color) {
|
||||||
|
@include shiny($b-color, true, $t-size, $pad);
|
||||||
|
}
|
||||||
|
|
||||||
|
@if $type == pill and $b-color == grayscale($b-color) {
|
||||||
|
@include pill($b-color, true, $t-size, $pad);
|
||||||
|
}
|
||||||
|
|
||||||
|
@if $type == flat and $b-color == grayscale($b-color) {
|
||||||
|
@include flat($b-color, true, $t-size, $pad);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Colored button
|
||||||
|
@if $type == simple {
|
||||||
|
@include simple($b-color, false, $t-size, $pad);
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if $type == shiny {
|
||||||
|
@include shiny($b-color, false, $t-size, $pad);
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if $type == pill {
|
||||||
|
@include pill($b-color, false, $t-size, $pad);
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if $type == flat {
|
||||||
|
@include flat($b-color, false, $t-size, $pad);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Simple Button
|
||||||
|
//************************************************************************//
|
||||||
|
@mixin simple($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
|
||||||
|
$color: hsl(0, 0, 100%);
|
||||||
|
$border: adjust-color($base-color, $saturation: 9%, $lightness: -14%);
|
||||||
|
$inset-shadow: adjust-color($base-color, $saturation: -8%, $lightness: 15%);
|
||||||
|
$stop-gradient: adjust-color($base-color, $saturation: 9%, $lightness: -11%);
|
||||||
|
$text-shadow: adjust-color($base-color, $saturation: 15%, $lightness: -18%);
|
||||||
|
|
||||||
|
@if is-light($base-color) {
|
||||||
|
$color: hsl(0, 0, 20%);
|
||||||
|
$text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
|
||||||
|
}
|
||||||
|
|
||||||
|
@if $grayscale == true {
|
||||||
|
$border: grayscale($border);
|
||||||
|
$inset-shadow: grayscale($inset-shadow);
|
||||||
|
$stop-gradient: grayscale($stop-gradient);
|
||||||
|
$text-shadow: grayscale($text-shadow);
|
||||||
|
}
|
||||||
|
|
||||||
|
border: 1px solid $border;
|
||||||
|
border-radius: 3px;
|
||||||
|
box-shadow: inset 0 1px 0 0 $inset-shadow;
|
||||||
|
color: $color;
|
||||||
|
display: inline-block;
|
||||||
|
font-size: $textsize;
|
||||||
|
font-weight: bold;
|
||||||
|
@include linear-gradient ($base-color, $stop-gradient);
|
||||||
|
padding: $padding;
|
||||||
|
text-decoration: none;
|
||||||
|
text-shadow: 0 1px 0 $text-shadow;
|
||||||
|
background-clip: padding-box;
|
||||||
|
|
||||||
|
&:hover:not(:disabled) {
|
||||||
|
$base-color-hover: adjust-color($base-color, $saturation: -4%, $lightness: -5%);
|
||||||
|
$inset-shadow-hover: adjust-color($base-color, $saturation: -7%, $lightness: 5%);
|
||||||
|
$stop-gradient-hover: adjust-color($base-color, $saturation: 8%, $lightness: -14%);
|
||||||
|
|
||||||
|
@if $grayscale == true {
|
||||||
|
$base-color-hover: grayscale($base-color-hover);
|
||||||
|
$inset-shadow-hover: grayscale($inset-shadow-hover);
|
||||||
|
$stop-gradient-hover: grayscale($stop-gradient-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
box-shadow: inset 0 1px 0 0 $inset-shadow-hover;
|
||||||
|
cursor: pointer;
|
||||||
|
@include linear-gradient ($base-color-hover, $stop-gradient-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active:not(:disabled),
|
||||||
|
&:focus:not(:disabled) {
|
||||||
|
$border-active: adjust-color($base-color, $saturation: 9%, $lightness: -14%);
|
||||||
|
$inset-shadow-active: adjust-color($base-color, $saturation: 7%, $lightness: -17%);
|
||||||
|
|
||||||
|
@if $grayscale == true {
|
||||||
|
$border-active: grayscale($border-active);
|
||||||
|
$inset-shadow-active: grayscale($inset-shadow-active);
|
||||||
|
}
|
||||||
|
|
||||||
|
border: 1px solid $border-active;
|
||||||
|
box-shadow: inset 0 0 8px 4px $inset-shadow-active, inset 0 0 8px 4px $inset-shadow-active;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Shiny Button
|
||||||
|
//************************************************************************//
|
||||||
|
@mixin shiny($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
|
||||||
|
$color: hsl(0, 0, 100%);
|
||||||
|
$border: adjust-color($base-color, $red: -117, $green: -111, $blue: -81);
|
||||||
|
$border-bottom: adjust-color($base-color, $red: -126, $green: -127, $blue: -122);
|
||||||
|
$fourth-stop: adjust-color($base-color, $red: -79, $green: -70, $blue: -46);
|
||||||
|
$inset-shadow: adjust-color($base-color, $red: 37, $green: 29, $blue: 12);
|
||||||
|
$second-stop: adjust-color($base-color, $red: -56, $green: -50, $blue: -33);
|
||||||
|
$text-shadow: adjust-color($base-color, $red: -140, $green: -141, $blue: -114);
|
||||||
|
$third-stop: adjust-color($base-color, $red: -86, $green: -75, $blue: -48);
|
||||||
|
|
||||||
|
@if is-light($base-color) {
|
||||||
|
$color: hsl(0, 0, 20%);
|
||||||
|
$text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
|
||||||
|
}
|
||||||
|
|
||||||
|
@if $grayscale == true {
|
||||||
|
$border: grayscale($border);
|
||||||
|
$border-bottom: grayscale($border-bottom);
|
||||||
|
$fourth-stop: grayscale($fourth-stop);
|
||||||
|
$inset-shadow: grayscale($inset-shadow);
|
||||||
|
$second-stop: grayscale($second-stop);
|
||||||
|
$text-shadow: grayscale($text-shadow);
|
||||||
|
$third-stop: grayscale($third-stop);
|
||||||
|
}
|
||||||
|
|
||||||
|
border: 1px solid $border;
|
||||||
|
border-bottom: 1px solid $border-bottom;
|
||||||
|
border-radius: 5px;
|
||||||
|
box-shadow: inset 0 1px 0 0 $inset-shadow;
|
||||||
|
color: $color;
|
||||||
|
display: inline-block;
|
||||||
|
font-size: $textsize;
|
||||||
|
font-weight: bold;
|
||||||
|
@include linear-gradient(top, $base-color 0%, $second-stop 50%, $third-stop 50%, $fourth-stop 100%);
|
||||||
|
padding: $padding;
|
||||||
|
text-align: center;
|
||||||
|
text-decoration: none;
|
||||||
|
text-shadow: 0 -1px 1px $text-shadow;
|
||||||
|
|
||||||
|
&:hover:not(:disabled) {
|
||||||
|
$first-stop-hover: adjust-color($base-color, $red: -13, $green: -15, $blue: -18);
|
||||||
|
$second-stop-hover: adjust-color($base-color, $red: -66, $green: -62, $blue: -51);
|
||||||
|
$third-stop-hover: adjust-color($base-color, $red: -93, $green: -85, $blue: -66);
|
||||||
|
$fourth-stop-hover: adjust-color($base-color, $red: -86, $green: -80, $blue: -63);
|
||||||
|
|
||||||
|
@if $grayscale == true {
|
||||||
|
$first-stop-hover: grayscale($first-stop-hover);
|
||||||
|
$second-stop-hover: grayscale($second-stop-hover);
|
||||||
|
$third-stop-hover: grayscale($third-stop-hover);
|
||||||
|
$fourth-stop-hover: grayscale($fourth-stop-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
cursor: pointer;
|
||||||
|
@include linear-gradient(top, $first-stop-hover 0%,
|
||||||
|
$second-stop-hover 50%,
|
||||||
|
$third-stop-hover 50%,
|
||||||
|
$fourth-stop-hover 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active:not(:disabled),
|
||||||
|
&:focus:not(:disabled) {
|
||||||
|
$inset-shadow-active: adjust-color($base-color, $red: -111, $green: -116, $blue: -122);
|
||||||
|
|
||||||
|
@if $grayscale == true {
|
||||||
|
$inset-shadow-active: grayscale($inset-shadow-active);
|
||||||
|
}
|
||||||
|
|
||||||
|
box-shadow: inset 0 0 20px 0 $inset-shadow-active;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Pill Button
|
||||||
|
//************************************************************************//
|
||||||
|
@mixin pill($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
|
||||||
|
$color: hsl(0, 0, 100%);
|
||||||
|
$border-bottom: adjust-color($base-color, $hue: 8, $saturation: -11%, $lightness: -26%);
|
||||||
|
$border-sides: adjust-color($base-color, $hue: 4, $saturation: -21%, $lightness: -21%);
|
||||||
|
$border-top: adjust-color($base-color, $hue: -1, $saturation: -30%, $lightness: -15%);
|
||||||
|
$inset-shadow: adjust-color($base-color, $hue: -1, $saturation: -1%, $lightness: 7%);
|
||||||
|
$stop-gradient: adjust-color($base-color, $hue: 8, $saturation: 14%, $lightness: -10%);
|
||||||
|
$text-shadow: adjust-color($base-color, $hue: 5, $saturation: -19%, $lightness: -15%);
|
||||||
|
|
||||||
|
@if is-light($base-color) {
|
||||||
|
$color: hsl(0, 0, 20%);
|
||||||
|
$text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
|
||||||
|
}
|
||||||
|
|
||||||
|
@if $grayscale == true {
|
||||||
|
$border-bottom: grayscale($border-bottom);
|
||||||
|
$border-sides: grayscale($border-sides);
|
||||||
|
$border-top: grayscale($border-top);
|
||||||
|
$inset-shadow: grayscale($inset-shadow);
|
||||||
|
$stop-gradient: grayscale($stop-gradient);
|
||||||
|
$text-shadow: grayscale($text-shadow);
|
||||||
|
}
|
||||||
|
|
||||||
|
border: 1px solid $border-top;
|
||||||
|
border-color: $border-top $border-sides $border-bottom;
|
||||||
|
border-radius: 16px;
|
||||||
|
box-shadow: inset 0 1px 0 0 $inset-shadow;
|
||||||
|
color: $color;
|
||||||
|
display: inline-block;
|
||||||
|
font-size: $textsize;
|
||||||
|
font-weight: normal;
|
||||||
|
line-height: 1;
|
||||||
|
@include linear-gradient ($base-color, $stop-gradient);
|
||||||
|
padding: $padding;
|
||||||
|
text-align: center;
|
||||||
|
text-decoration: none;
|
||||||
|
text-shadow: 0 -1px 1px $text-shadow;
|
||||||
|
background-clip: padding-box;
|
||||||
|
|
||||||
|
&:hover:not(:disabled) {
|
||||||
|
$base-color-hover: adjust-color($base-color, $lightness: -4.5%);
|
||||||
|
$border-bottom: adjust-color($base-color, $hue: 8, $saturation: 13.5%, $lightness: -32%);
|
||||||
|
$border-sides: adjust-color($base-color, $hue: 4, $saturation: -2%, $lightness: -27%);
|
||||||
|
$border-top: adjust-color($base-color, $hue: -1, $saturation: -17%, $lightness: -21%);
|
||||||
|
$inset-shadow-hover: adjust-color($base-color, $saturation: -1%, $lightness: 3%);
|
||||||
|
$stop-gradient-hover: adjust-color($base-color, $hue: 8, $saturation: -4%, $lightness: -15.5%);
|
||||||
|
$text-shadow-hover: adjust-color($base-color, $hue: 5, $saturation: -5%, $lightness: -22%);
|
||||||
|
|
||||||
|
@if $grayscale == true {
|
||||||
|
$base-color-hover: grayscale($base-color-hover);
|
||||||
|
$border-bottom: grayscale($border-bottom);
|
||||||
|
$border-sides: grayscale($border-sides);
|
||||||
|
$border-top: grayscale($border-top);
|
||||||
|
$inset-shadow-hover: grayscale($inset-shadow-hover);
|
||||||
|
$stop-gradient-hover: grayscale($stop-gradient-hover);
|
||||||
|
$text-shadow-hover: grayscale($text-shadow-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
border: 1px solid $border-top;
|
||||||
|
border-color: $border-top $border-sides $border-bottom;
|
||||||
|
box-shadow: inset 0 1px 0 0 $inset-shadow-hover;
|
||||||
|
cursor: pointer;
|
||||||
|
@include linear-gradient ($base-color-hover, $stop-gradient-hover);
|
||||||
|
text-shadow: 0 -1px 1px $text-shadow-hover;
|
||||||
|
background-clip: padding-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active:not(:disabled),
|
||||||
|
&:focus:not(:disabled) {
|
||||||
|
$active-color: adjust-color($base-color, $hue: 4, $saturation: -12%, $lightness: -10%);
|
||||||
|
$border-active: adjust-color($base-color, $hue: 6, $saturation: -2.5%, $lightness: -30%);
|
||||||
|
$border-bottom-active: adjust-color($base-color, $hue: 11, $saturation: 6%, $lightness: -31%);
|
||||||
|
$inset-shadow-active: adjust-color($base-color, $hue: 9, $saturation: 2%, $lightness: -21.5%);
|
||||||
|
$text-shadow-active: adjust-color($base-color, $hue: 5, $saturation: -12%, $lightness: -21.5%);
|
||||||
|
|
||||||
|
@if $grayscale == true {
|
||||||
|
$active-color: grayscale($active-color);
|
||||||
|
$border-active: grayscale($border-active);
|
||||||
|
$border-bottom-active: grayscale($border-bottom-active);
|
||||||
|
$inset-shadow-active: grayscale($inset-shadow-active);
|
||||||
|
$text-shadow-active: grayscale($text-shadow-active);
|
||||||
|
}
|
||||||
|
|
||||||
|
background: $active-color;
|
||||||
|
border: 1px solid $border-active;
|
||||||
|
border-bottom: 1px solid $border-bottom-active;
|
||||||
|
box-shadow: inset 0 0 6px 3px $inset-shadow-active;
|
||||||
|
text-shadow: 0 -1px 1px $text-shadow-active;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Flat Button
|
||||||
|
//************************************************************************//
|
||||||
|
@mixin flat($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
|
||||||
|
$color: hsl(0, 0, 100%);
|
||||||
|
|
||||||
|
@if is-light($base-color) {
|
||||||
|
$color: hsl(0, 0, 20%);
|
||||||
|
}
|
||||||
|
|
||||||
|
background-color: $base-color;
|
||||||
|
border-radius: 3px;
|
||||||
|
border: none;
|
||||||
|
color: $color;
|
||||||
|
display: inline-block;
|
||||||
|
font-size: inherit;
|
||||||
|
font-weight: bold;
|
||||||
|
padding: 7px 18px;
|
||||||
|
text-decoration: none;
|
||||||
|
background-clip: padding-box;
|
||||||
|
|
||||||
|
&:hover:not(:disabled){
|
||||||
|
$base-color-hover: adjust-color($base-color, $saturation: 4%, $lightness: 5%);
|
||||||
|
|
||||||
|
@if $grayscale == true {
|
||||||
|
$base-color-hover: grayscale($base-color-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
background-color: $base-color-hover;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active:not(:disabled),
|
||||||
|
&:focus:not(:disabled) {
|
||||||
|
$base-color-active: adjust-color($base-color, $saturation: -4%, $lightness: -5%);
|
||||||
|
|
||||||
|
@if $grayscale == true {
|
||||||
|
$base-color-active: grayscale($base-color-active);
|
||||||
|
}
|
||||||
|
|
||||||
|
background-color: $base-color-active;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
// Modern micro clearfix provides an easy way to contain floats without adding additional markup.
|
||||||
|
//
|
||||||
|
// Example usage:
|
||||||
|
//
|
||||||
|
// // Contain all floats within .wrapper
|
||||||
|
// .wrapper {
|
||||||
|
// @include clearfix;
|
||||||
|
// .content,
|
||||||
|
// .sidebar {
|
||||||
|
// float : left;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
@mixin clearfix {
|
||||||
|
&:after {
|
||||||
|
content:"";
|
||||||
|
display:table;
|
||||||
|
clear:both;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Acknowledgements
|
||||||
|
// Beat *that* clearfix: [Thierry Koblentz](http://www.css-101.org/articles/clearfix/latest-new-clearfix-so-far.php)
|
|
@ -0,0 +1,111 @@
|
||||||
|
// directional-property mixins are shorthands
|
||||||
|
// for writing properties like the following
|
||||||
|
//
|
||||||
|
// @include margin(null 0 10px);
|
||||||
|
// ------
|
||||||
|
// margin-right: 0;
|
||||||
|
// margin-bottom: 10px;
|
||||||
|
// margin-left: 0;
|
||||||
|
//
|
||||||
|
// - or -
|
||||||
|
//
|
||||||
|
// @include border-style(dotted null);
|
||||||
|
// ------
|
||||||
|
// border-top-style: dotted;
|
||||||
|
// border-bottom-style: dotted;
|
||||||
|
//
|
||||||
|
// ------
|
||||||
|
//
|
||||||
|
// Note: You can also use false instead of null
|
||||||
|
|
||||||
|
@function collapse-directionals($vals) {
|
||||||
|
$output: null;
|
||||||
|
|
||||||
|
$A: nth( $vals, 1 );
|
||||||
|
$B: if( length($vals) < 2, $A, nth($vals, 2));
|
||||||
|
$C: if( length($vals) < 3, $A, nth($vals, 3));
|
||||||
|
$D: if( length($vals) < 2, $A, nth($vals, if( length($vals) < 4, 2, 4) ));
|
||||||
|
|
||||||
|
@if $A == 0 { $A: 0 }
|
||||||
|
@if $B == 0 { $B: 0 }
|
||||||
|
@if $C == 0 { $C: 0 }
|
||||||
|
@if $D == 0 { $D: 0 }
|
||||||
|
|
||||||
|
@if $A == $B and $A == $C and $A == $D { $output: $A }
|
||||||
|
@else if $A == $C and $B == $D { $output: $A $B }
|
||||||
|
@else if $B == $D { $output: $A $B $C }
|
||||||
|
@else { $output: $A $B $C $D }
|
||||||
|
|
||||||
|
@return $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
@function contains-falsy($list) {
|
||||||
|
@each $item in $list {
|
||||||
|
@if not $item {
|
||||||
|
@return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin directional-property($pre, $suf, $vals) {
|
||||||
|
// Property Names
|
||||||
|
$top: $pre + "-top" + if($suf, "-#{$suf}", "");
|
||||||
|
$bottom: $pre + "-bottom" + if($suf, "-#{$suf}", "");
|
||||||
|
$left: $pre + "-left" + if($suf, "-#{$suf}", "");
|
||||||
|
$right: $pre + "-right" + if($suf, "-#{$suf}", "");
|
||||||
|
$all: $pre + if($suf, "-#{$suf}", "");
|
||||||
|
|
||||||
|
$vals: collapse-directionals($vals);
|
||||||
|
|
||||||
|
@if contains-falsy($vals) {
|
||||||
|
@if nth($vals, 1) { #{$top}: nth($vals, 1); }
|
||||||
|
|
||||||
|
@if length($vals) == 1 {
|
||||||
|
@if nth($vals, 1) { #{$right}: nth($vals, 1); }
|
||||||
|
} @else {
|
||||||
|
@if nth($vals, 2) { #{$right}: nth($vals, 2); }
|
||||||
|
}
|
||||||
|
|
||||||
|
// prop: top/bottom right/left
|
||||||
|
@if length($vals) == 2 {
|
||||||
|
@if nth($vals, 1) { #{$bottom}: nth($vals, 1); }
|
||||||
|
@if nth($vals, 2) { #{$left}: nth($vals, 2); }
|
||||||
|
|
||||||
|
// prop: top right/left bottom
|
||||||
|
} @else if length($vals) == 3 {
|
||||||
|
@if nth($vals, 3) { #{$bottom}: nth($vals, 3); }
|
||||||
|
@if nth($vals, 2) { #{$left}: nth($vals, 2); }
|
||||||
|
|
||||||
|
// prop: top right bottom left
|
||||||
|
} @else if length($vals) == 4 {
|
||||||
|
@if nth($vals, 3) { #{$bottom}: nth($vals, 3); }
|
||||||
|
@if nth($vals, 4) { #{$left}: nth($vals, 4); }
|
||||||
|
}
|
||||||
|
|
||||||
|
// prop: top/right/bottom/left
|
||||||
|
} @else {
|
||||||
|
#{$all}: $vals;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin margin($vals...) {
|
||||||
|
@include directional-property(margin, false, $vals...);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin padding($vals...) {
|
||||||
|
@include directional-property(padding, false, $vals...);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin border-style($vals...) {
|
||||||
|
@include directional-property(border, style, $vals...);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin border-color($vals...) {
|
||||||
|
@include directional-property(border, color, $vals...);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin border-width($vals...) {
|
||||||
|
@include directional-property(border, width, $vals...);
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
@mixin ellipsis($width: 100%) {
|
||||||
|
display: inline-block;
|
||||||
|
max-width: $width;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
$georgia: Georgia, Cambria, "Times New Roman", Times, serif;
|
||||||
|
$helvetica: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
|
||||||
|
$lucida-grande: "Lucida Grande", Tahoma, Verdana, Arial, sans-serif;
|
||||||
|
$monospace: "Bitstream Vera Sans Mono", Consolas, Courier, monospace;
|
||||||
|
$verdana: Verdana, Geneva, sans-serif;
|
|
@ -0,0 +1,10 @@
|
||||||
|
@mixin hide-text {
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
content: "";
|
||||||
|
display: block;
|
||||||
|
width: 0;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,86 @@
|
||||||
|
//************************************************************************//
|
||||||
|
// Generate a variable ($all-text-inputs) with a list of all html5
|
||||||
|
// input types that have a text-based input, excluding textarea.
|
||||||
|
// http://diveintohtml5.org/forms.html
|
||||||
|
//************************************************************************//
|
||||||
|
$inputs-list: 'input[type="email"]',
|
||||||
|
'input[type="number"]',
|
||||||
|
'input[type="password"]',
|
||||||
|
'input[type="search"]',
|
||||||
|
'input[type="tel"]',
|
||||||
|
'input[type="text"]',
|
||||||
|
'input[type="url"]',
|
||||||
|
|
||||||
|
// Webkit & Gecko may change the display of these in the future
|
||||||
|
'input[type="color"]',
|
||||||
|
'input[type="date"]',
|
||||||
|
'input[type="datetime"]',
|
||||||
|
'input[type="datetime-local"]',
|
||||||
|
'input[type="month"]',
|
||||||
|
'input[type="time"]',
|
||||||
|
'input[type="week"]';
|
||||||
|
|
||||||
|
// Bare inputs
|
||||||
|
//************************************************************************//
|
||||||
|
$all-text-inputs: assign-inputs($inputs-list);
|
||||||
|
|
||||||
|
// Hover Pseudo-class
|
||||||
|
//************************************************************************//
|
||||||
|
$all-text-inputs-hover: assign-inputs($inputs-list, hover);
|
||||||
|
|
||||||
|
// Focus Pseudo-class
|
||||||
|
//************************************************************************//
|
||||||
|
$all-text-inputs-focus: assign-inputs($inputs-list, focus);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// You must use interpolation on the variable:
|
||||||
|
// #{$all-text-inputs}
|
||||||
|
// #{$all-text-inputs-hover}
|
||||||
|
// #{$all-text-inputs-focus}
|
||||||
|
|
||||||
|
// Example
|
||||||
|
//************************************************************************//
|
||||||
|
// #{$all-text-inputs}, textarea {
|
||||||
|
// border: 1px solid red;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//************************************************************************//
|
||||||
|
// Generate a variable ($all-button-inputs) with a list of all html5
|
||||||
|
// input types that have a button-based input, excluding button.
|
||||||
|
//************************************************************************//
|
||||||
|
$inputs-button-list: 'input[type="button"]',
|
||||||
|
'input[type="reset"]',
|
||||||
|
'input[type="submit"]';
|
||||||
|
|
||||||
|
// Bare inputs
|
||||||
|
//************************************************************************//
|
||||||
|
$all-button-inputs: assign-inputs($inputs-button-list);
|
||||||
|
|
||||||
|
// Hover Pseudo-class
|
||||||
|
//************************************************************************//
|
||||||
|
$all-button-inputs-hover: assign-inputs($inputs-button-list, hover);
|
||||||
|
|
||||||
|
// Focus Pseudo-class
|
||||||
|
//************************************************************************//
|
||||||
|
$all-button-inputs-focus: assign-inputs($inputs-button-list, focus);
|
||||||
|
|
||||||
|
// Active Pseudo-class
|
||||||
|
//************************************************************************//
|
||||||
|
$all-button-inputs-active: assign-inputs($inputs-button-list, active);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// You must use interpolation on the variable:
|
||||||
|
// #{$all-button-inputs}
|
||||||
|
// #{$all-button-inputs-hover}
|
||||||
|
// #{$all-button-inputs-focus}
|
||||||
|
// #{$all-button-inputs-active}
|
||||||
|
|
||||||
|
// Example
|
||||||
|
//************************************************************************//
|
||||||
|
// #{$all-button-inputs}, button {
|
||||||
|
// border: 1px solid red;
|
||||||
|
// }
|
|
@ -0,0 +1,32 @@
|
||||||
|
@mixin position ($position: relative, $coordinates: null null null null) {
|
||||||
|
|
||||||
|
@if type-of($position) == list {
|
||||||
|
$coordinates: $position;
|
||||||
|
$position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
$coordinates: unpack($coordinates);
|
||||||
|
|
||||||
|
$top: nth($coordinates, 1);
|
||||||
|
$right: nth($coordinates, 2);
|
||||||
|
$bottom: nth($coordinates, 3);
|
||||||
|
$left: nth($coordinates, 4);
|
||||||
|
|
||||||
|
position: $position;
|
||||||
|
|
||||||
|
@if ($top and $top == auto) or (type-of($top) == number) {
|
||||||
|
top: $top;
|
||||||
|
}
|
||||||
|
|
||||||
|
@if ($right and $right == auto) or (type-of($right) == number) {
|
||||||
|
right: $right;
|
||||||
|
}
|
||||||
|
|
||||||
|
@if ($bottom and $bottom == auto) or (type-of($bottom) == number) {
|
||||||
|
bottom: $bottom;
|
||||||
|
}
|
||||||
|
|
||||||
|
@if ($left and $left == auto) or (type-of($left) == number) {
|
||||||
|
left: $left;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,45 @@
|
||||||
|
//************************************************************************//
|
||||||
|
// Example: @include prefixer(border-radius, $radii, webkit ms spec);
|
||||||
|
//************************************************************************//
|
||||||
|
// Variables located in /settings/_prefixer.scss
|
||||||
|
|
||||||
|
@mixin prefixer ($property, $value, $prefixes) {
|
||||||
|
@each $prefix in $prefixes {
|
||||||
|
@if $prefix == webkit {
|
||||||
|
@if $prefix-for-webkit {
|
||||||
|
-webkit-#{$property}: $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@else if $prefix == moz {
|
||||||
|
@if $prefix-for-mozilla {
|
||||||
|
-moz-#{$property}: $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@else if $prefix == ms {
|
||||||
|
@if $prefix-for-microsoft {
|
||||||
|
-ms-#{$property}: $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@else if $prefix == o {
|
||||||
|
@if $prefix-for-opera {
|
||||||
|
-o-#{$property}: $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@else if $prefix == spec {
|
||||||
|
@if $prefix-for-spec {
|
||||||
|
#{$property}: $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@else {
|
||||||
|
@warn "Unrecognized prefix: #{$prefix}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin disable-prefix-for-all() {
|
||||||
|
$prefix-for-webkit: false !global;
|
||||||
|
$prefix-for-mozilla: false !global;
|
||||||
|
$prefix-for-microsoft: false !global;
|
||||||
|
$prefix-for-opera: false !global;
|
||||||
|
$prefix-for-spec: false !global;
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
@mixin retina-image($filename, $background-size, $extension: png, $retina-filename: null, $retina-suffix: _2x, $asset-pipeline: false) {
|
||||||
|
@if $asset-pipeline {
|
||||||
|
background-image: image-url("#{$filename}.#{$extension}");
|
||||||
|
}
|
||||||
|
@else {
|
||||||
|
background-image: url("#{$filename}.#{$extension}");
|
||||||
|
}
|
||||||
|
|
||||||
|
@include hidpi {
|
||||||
|
@if $asset-pipeline {
|
||||||
|
@if $retina-filename {
|
||||||
|
background-image: image-url("#{$retina-filename}.#{$extension}");
|
||||||
|
}
|
||||||
|
@else {
|
||||||
|
background-image: image-url("#{$filename}#{$retina-suffix}.#{$extension}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@else {
|
||||||
|
@if $retina-filename {
|
||||||
|
background-image: url("#{$retina-filename}.#{$extension}");
|
||||||
|
}
|
||||||
|
@else {
|
||||||
|
background-image: url("#{$filename}#{$retina-suffix}.#{$extension}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
background-size: $background-size;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
@mixin size($size) {
|
||||||
|
$height: nth($size, 1);
|
||||||
|
$width: $height;
|
||||||
|
|
||||||
|
@if length($size) > 1 {
|
||||||
|
$height: nth($size, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
@if $height == auto or (type-of($height) == number and not unitless($height)) {
|
||||||
|
height: $height;
|
||||||
|
}
|
||||||
|
|
||||||
|
@if $width == auto or (type-of($height) == number and not unitless($width)) {
|
||||||
|
width: $width;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
// CSS cubic-bezier timing functions. Timing functions courtesy of jquery.easie (github.com/jaukia/easie)
|
||||||
|
// Timing functions are the same as demo'ed here: http://jqueryui.com/demos/effect/easing.html
|
||||||
|
|
||||||
|
// EASE IN
|
||||||
|
$ease-in-quad: cubic-bezier(0.550, 0.085, 0.680, 0.530);
|
||||||
|
$ease-in-cubic: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
||||||
|
$ease-in-quart: cubic-bezier(0.895, 0.030, 0.685, 0.220);
|
||||||
|
$ease-in-quint: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
||||||
|
$ease-in-sine: cubic-bezier(0.470, 0.000, 0.745, 0.715);
|
||||||
|
$ease-in-expo: cubic-bezier(0.950, 0.050, 0.795, 0.035);
|
||||||
|
$ease-in-circ: cubic-bezier(0.600, 0.040, 0.980, 0.335);
|
||||||
|
$ease-in-back: cubic-bezier(0.600, -0.280, 0.735, 0.045);
|
||||||
|
|
||||||
|
// EASE OUT
|
||||||
|
$ease-out-quad: cubic-bezier(0.250, 0.460, 0.450, 0.940);
|
||||||
|
$ease-out-cubic: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||||||
|
$ease-out-quart: cubic-bezier(0.165, 0.840, 0.440, 1.000);
|
||||||
|
$ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000);
|
||||||
|
$ease-out-sine: cubic-bezier(0.390, 0.575, 0.565, 1.000);
|
||||||
|
$ease-out-expo: cubic-bezier(0.190, 1.000, 0.220, 1.000);
|
||||||
|
$ease-out-circ: cubic-bezier(0.075, 0.820, 0.165, 1.000);
|
||||||
|
$ease-out-back: cubic-bezier(0.175, 0.885, 0.320, 1.275);
|
||||||
|
|
||||||
|
// EASE IN OUT
|
||||||
|
$ease-in-out-quad: cubic-bezier(0.455, 0.030, 0.515, 0.955);
|
||||||
|
$ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1.000);
|
||||||
|
$ease-in-out-quart: cubic-bezier(0.770, 0.000, 0.175, 1.000);
|
||||||
|
$ease-in-out-quint: cubic-bezier(0.860, 0.000, 0.070, 1.000);
|
||||||
|
$ease-in-out-sine: cubic-bezier(0.445, 0.050, 0.550, 0.950);
|
||||||
|
$ease-in-out-expo: cubic-bezier(1.000, 0.000, 0.000, 1.000);
|
||||||
|
$ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.150, 0.860);
|
||||||
|
$ease-in-out-back: cubic-bezier(0.680, -0.550, 0.265, 1.550);
|
|
@ -0,0 +1,83 @@
|
||||||
|
@mixin triangle ($size, $color, $direction) {
|
||||||
|
height: 0;
|
||||||
|
width: 0;
|
||||||
|
|
||||||
|
$width: nth($size, 1);
|
||||||
|
$height: nth($size, length($size));
|
||||||
|
|
||||||
|
$foreground-color: nth($color, 1);
|
||||||
|
$background-color: if(length($color) == 2, nth($color, 2), transparent);
|
||||||
|
|
||||||
|
@if ($direction == up) or ($direction == down) or ($direction == right) or ($direction == left) {
|
||||||
|
|
||||||
|
$width: $width / 2;
|
||||||
|
$height: if(length($size) > 1, $height, $height/2);
|
||||||
|
|
||||||
|
@if $direction == up {
|
||||||
|
border-left: $width solid $background-color;
|
||||||
|
border-right: $width solid $background-color;
|
||||||
|
border-bottom: $height solid $foreground-color;
|
||||||
|
|
||||||
|
} @else if $direction == right {
|
||||||
|
border-top: $width solid $background-color;
|
||||||
|
border-bottom: $width solid $background-color;
|
||||||
|
border-left: $height solid $foreground-color;
|
||||||
|
|
||||||
|
} @else if $direction == down {
|
||||||
|
border-left: $width solid $background-color;
|
||||||
|
border-right: $width solid $background-color;
|
||||||
|
border-top: $height solid $foreground-color;
|
||||||
|
|
||||||
|
} @else if $direction == left {
|
||||||
|
border-top: $width solid $background-color;
|
||||||
|
border-bottom: $width solid $background-color;
|
||||||
|
border-right: $height solid $foreground-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if ($direction == up-right) or ($direction == up-left) {
|
||||||
|
border-top: $height solid $foreground-color;
|
||||||
|
|
||||||
|
@if $direction == up-right {
|
||||||
|
border-left: $width solid $background-color;
|
||||||
|
|
||||||
|
} @else if $direction == up-left {
|
||||||
|
border-right: $width solid $background-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if ($direction == down-right) or ($direction == down-left) {
|
||||||
|
border-bottom: $height solid $foreground-color;
|
||||||
|
|
||||||
|
@if $direction == down-right {
|
||||||
|
border-left: $width solid $background-color;
|
||||||
|
|
||||||
|
} @else if $direction == down-left {
|
||||||
|
border-right: $width solid $background-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if ($direction == inset-up) {
|
||||||
|
border-width: $height $width;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: $background-color $background-color $foreground-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if ($direction == inset-down) {
|
||||||
|
border-width: $height $width;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: $foreground-color $background-color $background-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if ($direction == inset-right) {
|
||||||
|
border-width: $width $height;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: $background-color $background-color $background-color $foreground-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if ($direction == inset-left) {
|
||||||
|
border-width: $width $height;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: $background-color $foreground-color $background-color $background-color;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
@mixin word-wrap($wrap: break-word) {
|
||||||
|
word-wrap: $wrap;
|
||||||
|
|
||||||
|
@if $wrap == break-word {
|
||||||
|
overflow-wrap: break-word;
|
||||||
|
word-break: break-all;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
// http://www.w3.org/TR/css3-animations/#the-animation-name-property-
|
||||||
|
// Each of these mixins support comma separated lists of values, which allows different transitions for individual properties to be described in a single style rule. Each value in the list corresponds to the value at that same position in the other properties.
|
||||||
|
|
||||||
|
// Official animation shorthand property.
|
||||||
|
@mixin animation ($animations...) {
|
||||||
|
@include prefixer(animation, $animations, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Individual Animation Properties
|
||||||
|
@mixin animation-name ($names...) {
|
||||||
|
@include prefixer(animation-name, $names, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@mixin animation-duration ($times...) {
|
||||||
|
@include prefixer(animation-duration, $times, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@mixin animation-timing-function ($motions...) {
|
||||||
|
// ease | linear | ease-in | ease-out | ease-in-out
|
||||||
|
@include prefixer(animation-timing-function, $motions, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@mixin animation-iteration-count ($values...) {
|
||||||
|
// infinite | <number>
|
||||||
|
@include prefixer(animation-iteration-count, $values, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@mixin animation-direction ($directions...) {
|
||||||
|
// normal | alternate
|
||||||
|
@include prefixer(animation-direction, $directions, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@mixin animation-play-state ($states...) {
|
||||||
|
// running | paused
|
||||||
|
@include prefixer(animation-play-state, $states, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@mixin animation-delay ($times...) {
|
||||||
|
@include prefixer(animation-delay, $times, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@mixin animation-fill-mode ($modes...) {
|
||||||
|
// none | forwards | backwards | both
|
||||||
|
@include prefixer(animation-fill-mode, $modes, webkit moz spec);
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
@mixin appearance ($value) {
|
||||||
|
@include prefixer(appearance, $value, webkit moz ms o spec);
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
//************************************************************************//
|
||||||
|
// Backface-visibility mixin
|
||||||
|
//************************************************************************//
|
||||||
|
@mixin backface-visibility($visibility) {
|
||||||
|
@include prefixer(backface-visibility, $visibility, webkit spec);
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
//************************************************************************//
|
||||||
|
// Background-image property for adding multiple background images with
|
||||||
|
// gradients, or for stringing multiple gradients together.
|
||||||
|
//************************************************************************//
|
||||||
|
|
||||||
|
@mixin background-image($images...) {
|
||||||
|
$webkit-images: ();
|
||||||
|
$spec-images: ();
|
||||||
|
|
||||||
|
@each $image in $images {
|
||||||
|
$webkit-image: ();
|
||||||
|
$spec-image: ();
|
||||||
|
|
||||||
|
@if (type-of($image) == string) {
|
||||||
|
$url-str: str-slice($image, 0, 3);
|
||||||
|
$gradient-type: str-slice($image, 0, 6);
|
||||||
|
|
||||||
|
@if $url-str == "url" {
|
||||||
|
$webkit-image: $image;
|
||||||
|
$spec-image: $image;
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if $gradient-type == "linear" {
|
||||||
|
$gradients: _linear-gradient-parser($image);
|
||||||
|
$webkit-image: map-get($gradients, webkit-image);
|
||||||
|
$spec-image: map-get($gradients, spec-image);
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if $gradient-type == "radial" {
|
||||||
|
$gradients: _radial-gradient-parser($image);
|
||||||
|
$webkit-image: map-get($gradients, webkit-image);
|
||||||
|
$spec-image: map-get($gradients, spec-image);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$webkit-images: append($webkit-images, $webkit-image, comma);
|
||||||
|
$spec-images: append($spec-images, $spec-image, comma);
|
||||||
|
}
|
||||||
|
|
||||||
|
background-image: $webkit-images;
|
||||||
|
background-image: $spec-images;
|
||||||
|
}
|
|
@ -0,0 +1,55 @@
|
||||||
|
//************************************************************************//
|
||||||
|
// Background property for adding multiple backgrounds using shorthand
|
||||||
|
// notation.
|
||||||
|
//************************************************************************//
|
||||||
|
|
||||||
|
@mixin background($backgrounds...) {
|
||||||
|
$webkit-backgrounds: ();
|
||||||
|
$spec-backgrounds: ();
|
||||||
|
|
||||||
|
@each $background in $backgrounds {
|
||||||
|
$webkit-background: ();
|
||||||
|
$spec-background: ();
|
||||||
|
$background-type: type-of($background);
|
||||||
|
|
||||||
|
@if $background-type == string or list {
|
||||||
|
$background-str: if($background-type == list, nth($background, 1), $background);
|
||||||
|
|
||||||
|
$url-str: str-slice($background-str, 0, 3);
|
||||||
|
$gradient-type: str-slice($background-str, 0, 6);
|
||||||
|
|
||||||
|
@if $url-str == "url" {
|
||||||
|
$webkit-background: $background;
|
||||||
|
$spec-background: $background;
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if $gradient-type == "linear" {
|
||||||
|
$gradients: _linear-gradient-parser("#{$background}");
|
||||||
|
$webkit-background: map-get($gradients, webkit-image);
|
||||||
|
$spec-background: map-get($gradients, spec-image);
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if $gradient-type == "radial" {
|
||||||
|
$gradients: _radial-gradient-parser("#{$background}");
|
||||||
|
$webkit-background: map-get($gradients, webkit-image);
|
||||||
|
$spec-background: map-get($gradients, spec-image);
|
||||||
|
}
|
||||||
|
|
||||||
|
@else {
|
||||||
|
$webkit-background: $background;
|
||||||
|
$spec-background: $background;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@else {
|
||||||
|
$webkit-background: $background;
|
||||||
|
$spec-background: $background;
|
||||||
|
}
|
||||||
|
|
||||||
|
$webkit-backgrounds: append($webkit-backgrounds, $webkit-background, comma);
|
||||||
|
$spec-backgrounds: append($spec-backgrounds, $spec-background, comma);
|
||||||
|
}
|
||||||
|
|
||||||
|
background: $webkit-backgrounds;
|
||||||
|
background: $spec-backgrounds;
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
@mixin border-image($borders...) {
|
||||||
|
$webkit-borders: ();
|
||||||
|
$spec-borders: ();
|
||||||
|
|
||||||
|
@each $border in $borders {
|
||||||
|
$webkit-border: ();
|
||||||
|
$spec-border: ();
|
||||||
|
$border-type: type-of($border);
|
||||||
|
|
||||||
|
@if $border-type == string or list {
|
||||||
|
$border-str: if($border-type == list, nth($border, 1), $border);
|
||||||
|
|
||||||
|
$url-str: str-slice($border-str, 0, 3);
|
||||||
|
$gradient-type: str-slice($border-str, 0, 6);
|
||||||
|
|
||||||
|
@if $url-str == "url" {
|
||||||
|
$webkit-border: $border;
|
||||||
|
$spec-border: $border;
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if $gradient-type == "linear" {
|
||||||
|
$gradients: _linear-gradient-parser("#{$border}");
|
||||||
|
$webkit-border: map-get($gradients, webkit-image);
|
||||||
|
$spec-border: map-get($gradients, spec-image);
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if $gradient-type == "radial" {
|
||||||
|
$gradients: _radial-gradient-parser("#{$border}");
|
||||||
|
$webkit-border: map-get($gradients, webkit-image);
|
||||||
|
$spec-border: map-get($gradients, spec-image);
|
||||||
|
}
|
||||||
|
|
||||||
|
@else {
|
||||||
|
$webkit-border: $border;
|
||||||
|
$spec-border: $border;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@else {
|
||||||
|
$webkit-border: $border;
|
||||||
|
$spec-border: $border;
|
||||||
|
}
|
||||||
|
|
||||||
|
$webkit-borders: append($webkit-borders, $webkit-border, comma);
|
||||||
|
$spec-borders: append($spec-borders, $spec-border, comma);
|
||||||
|
}
|
||||||
|
|
||||||
|
-webkit-border-image: $webkit-borders;
|
||||||
|
border-image: $spec-borders;
|
||||||
|
border-style: solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Examples:
|
||||||
|
// @include border-image(url("image.png"));
|
||||||
|
// @include border-image(url("image.png") 20 stretch);
|
||||||
|
// @include border-image(linear-gradient(45deg, orange, yellow));
|
||||||
|
// @include border-image(linear-gradient(45deg, orange, yellow) stretch);
|
||||||
|
// @include border-image(linear-gradient(45deg, orange, yellow) 20 30 40 50 stretch round);
|
||||||
|
// @include border-image(radial-gradient(top, cover, orange, yellow, orange));
|
|
@ -0,0 +1,22 @@
|
||||||
|
//************************************************************************//
|
||||||
|
// Shorthand Border-radius mixins
|
||||||
|
//************************************************************************//
|
||||||
|
@mixin border-top-radius($radii) {
|
||||||
|
@include prefixer(border-top-left-radius, $radii, spec);
|
||||||
|
@include prefixer(border-top-right-radius, $radii, spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin border-bottom-radius($radii) {
|
||||||
|
@include prefixer(border-bottom-left-radius, $radii, spec);
|
||||||
|
@include prefixer(border-bottom-right-radius, $radii, spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin border-left-radius($radii) {
|
||||||
|
@include prefixer(border-top-left-radius, $radii, spec);
|
||||||
|
@include prefixer(border-bottom-left-radius, $radii, spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin border-right-radius($radii) {
|
||||||
|
@include prefixer(border-top-right-radius, $radii, spec);
|
||||||
|
@include prefixer(border-bottom-right-radius, $radii, spec);
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
@mixin box-sizing ($box) {
|
||||||
|
// content-box | border-box | inherit
|
||||||
|
@include prefixer(box-sizing, $box, webkit moz spec);
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
@mixin calc($property, $value) {
|
||||||
|
#{$property}: -webkit-calc(#{$value});
|
||||||
|
#{$property}: calc(#{$value});
|
||||||
|
}
|
|
@ -0,0 +1,47 @@
|
||||||
|
@mixin columns($arg: auto) {
|
||||||
|
// <column-count> || <column-width>
|
||||||
|
@include prefixer(columns, $arg, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin column-count($int: auto) {
|
||||||
|
// auto || integer
|
||||||
|
@include prefixer(column-count, $int, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin column-gap($length: normal) {
|
||||||
|
// normal || length
|
||||||
|
@include prefixer(column-gap, $length, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin column-fill($arg: auto) {
|
||||||
|
// auto || length
|
||||||
|
@include prefixer(column-fill, $arg, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin column-rule($arg) {
|
||||||
|
// <border-width> || <border-style> || <color>
|
||||||
|
@include prefixer(column-rule, $arg, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin column-rule-color($color) {
|
||||||
|
@include prefixer(column-rule-color, $color, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin column-rule-style($style: none) {
|
||||||
|
// none | hidden | dashed | dotted | double | groove | inset | inset | outset | ridge | solid
|
||||||
|
@include prefixer(column-rule-style, $style, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin column-rule-width ($width: none) {
|
||||||
|
@include prefixer(column-rule-width, $width, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin column-span($arg: none) {
|
||||||
|
// none || all
|
||||||
|
@include prefixer(column-span, $arg, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin column-width($length: auto) {
|
||||||
|
// auto || length
|
||||||
|
@include prefixer(column-width, $length, webkit moz spec);
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
@mixin filter($function: none) {
|
||||||
|
// <filter-function> [<filter-function]* | none
|
||||||
|
@include prefixer(filter, $function, webkit spec);
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,321 @@
|
||||||
|
// CSS3 Flexible Box Model and property defaults
|
||||||
|
|
||||||
|
// Custom shorthand notation for flexbox
|
||||||
|
@mixin box($orient: inline-axis, $pack: start, $align: stretch) {
|
||||||
|
@include display-box;
|
||||||
|
@include box-orient($orient);
|
||||||
|
@include box-pack($pack);
|
||||||
|
@include box-align($align);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin display-box {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -moz-box;
|
||||||
|
display: -ms-flexbox; // IE 10
|
||||||
|
display: box;
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin box-orient($orient: inline-axis) {
|
||||||
|
// horizontal|vertical|inline-axis|block-axis|inherit
|
||||||
|
@include prefixer(box-orient, $orient, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin box-pack($pack: start) {
|
||||||
|
// start|end|center|justify
|
||||||
|
@include prefixer(box-pack, $pack, webkit moz spec);
|
||||||
|
-ms-flex-pack: $pack; // IE 10
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin box-align($align: stretch) {
|
||||||
|
// start|end|center|baseline|stretch
|
||||||
|
@include prefixer(box-align, $align, webkit moz spec);
|
||||||
|
-ms-flex-align: $align; // IE 10
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin box-direction($direction: normal) {
|
||||||
|
// normal|reverse|inherit
|
||||||
|
@include prefixer(box-direction, $direction, webkit moz spec);
|
||||||
|
-ms-flex-direction: $direction; // IE 10
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin box-lines($lines: single) {
|
||||||
|
// single|multiple
|
||||||
|
@include prefixer(box-lines, $lines, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin box-ordinal-group($int: 1) {
|
||||||
|
@include prefixer(box-ordinal-group, $int, webkit moz spec);
|
||||||
|
-ms-flex-order: $int; // IE 10
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin box-flex($value: 0.0) {
|
||||||
|
@include prefixer(box-flex, $value, webkit moz spec);
|
||||||
|
-ms-flex: $value; // IE 10
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin box-flex-group($int: 1) {
|
||||||
|
@include prefixer(box-flex-group, $int, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
// CSS3 Flexible Box Model and property defaults
|
||||||
|
// Unified attributes for 2009, 2011, and 2012 flavours.
|
||||||
|
|
||||||
|
// 2009 - display (box | inline-box)
|
||||||
|
// 2011 - display (flexbox | inline-flexbox)
|
||||||
|
// 2012 - display (flex | inline-flex)
|
||||||
|
@mixin display($value) {
|
||||||
|
// flex | inline-flex
|
||||||
|
@if $value == "flex" {
|
||||||
|
// 2009
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -moz-box;
|
||||||
|
display: box;
|
||||||
|
|
||||||
|
// 2012
|
||||||
|
display: -webkit-flex;
|
||||||
|
display: -moz-flex;
|
||||||
|
display: -ms-flexbox; // 2011 (IE 10)
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
@elseif $value == "inline-flex" {
|
||||||
|
display: -webkit-inline-box;
|
||||||
|
display: -moz-inline-box;
|
||||||
|
display: inline-box;
|
||||||
|
|
||||||
|
display: -webkit-inline-flex;
|
||||||
|
display: -moz-inline-flex;
|
||||||
|
display: -ms-inline-flexbox;
|
||||||
|
display: inline-flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
@else {
|
||||||
|
display: $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2009 - box-flex (integer)
|
||||||
|
// 2011 - flex (decimal | width decimal)
|
||||||
|
// 2012 - flex (integer integer width)
|
||||||
|
@mixin flex($value) {
|
||||||
|
|
||||||
|
// Grab flex-grow for older browsers.
|
||||||
|
$flex-grow: nth($value, 1);
|
||||||
|
|
||||||
|
// 2009
|
||||||
|
@include prefixer(box-flex, $flex-grow, webkit moz spec);
|
||||||
|
|
||||||
|
// 2011 (IE 10), 2012
|
||||||
|
@include prefixer(flex, $value, webkit moz ms spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2009 - box-orient ( horizontal | vertical | inline-axis | block-axis)
|
||||||
|
// - box-direction (normal | reverse)
|
||||||
|
// 2011 - flex-direction (row | row-reverse | column | column-reverse)
|
||||||
|
// 2012 - flex-direction (row | row-reverse | column | column-reverse)
|
||||||
|
@mixin flex-direction($value: row) {
|
||||||
|
|
||||||
|
// Alt values.
|
||||||
|
$value-2009: $value;
|
||||||
|
$value-2011: $value;
|
||||||
|
$direction: "normal";
|
||||||
|
|
||||||
|
@if $value == row {
|
||||||
|
$value-2009: horizontal;
|
||||||
|
}
|
||||||
|
|
||||||
|
@elseif $value == "row-reverse" {
|
||||||
|
$value-2009: horizontal;
|
||||||
|
$direction: reverse;
|
||||||
|
}
|
||||||
|
|
||||||
|
@elseif $value == column {
|
||||||
|
$value-2009: vertical;
|
||||||
|
}
|
||||||
|
|
||||||
|
@elseif $value == "column-reverse" {
|
||||||
|
$value-2009: vertical;
|
||||||
|
$direction: reverse;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2009
|
||||||
|
@include prefixer(box-orient, $value-2009, webkit moz spec);
|
||||||
|
@if $direction == "reverse" {
|
||||||
|
@include prefixer(box-direction, $direction, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2012
|
||||||
|
@include prefixer(flex-direction, $value, webkit moz spec);
|
||||||
|
|
||||||
|
// 2011 (IE 10)
|
||||||
|
-ms-flex-direction: $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2009 - box-lines (single | multiple)
|
||||||
|
// 2011 - flex-wrap (nowrap | wrap | wrap-reverse)
|
||||||
|
// 2012 - flex-wrap (nowrap | wrap | wrap-reverse)
|
||||||
|
@mixin flex-wrap($value: nowrap) {
|
||||||
|
|
||||||
|
// Alt values.
|
||||||
|
$alt-value: $value;
|
||||||
|
@if $value == nowrap {
|
||||||
|
$alt-value: single;
|
||||||
|
}
|
||||||
|
|
||||||
|
@elseif $value == wrap {
|
||||||
|
$alt-value: multiple;
|
||||||
|
}
|
||||||
|
|
||||||
|
@elseif $value == "wrap-reverse" {
|
||||||
|
$alt-value: multiple;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include prefixer(box-lines, $alt-value, webkit moz spec);
|
||||||
|
@include prefixer(flex-wrap, $value, webkit moz ms spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2009 - TODO: parse values into flex-direction/flex-wrap
|
||||||
|
// 2011 - TODO: parse values into flex-direction/flex-wrap
|
||||||
|
// 2012 - flex-flow (flex-direction || flex-wrap)
|
||||||
|
@mixin flex-flow($value) {
|
||||||
|
@include prefixer(flex-flow, $value, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2009 - box-ordinal-group (integer)
|
||||||
|
// 2011 - flex-order (integer)
|
||||||
|
// 2012 - order (integer)
|
||||||
|
@mixin order($int: 0) {
|
||||||
|
// 2009
|
||||||
|
@include prefixer(box-ordinal-group, $int, webkit moz spec);
|
||||||
|
|
||||||
|
// 2012
|
||||||
|
@include prefixer(order, $int, webkit moz spec);
|
||||||
|
|
||||||
|
// 2011 (IE 10)
|
||||||
|
-ms-flex-order: $int;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2012 - flex-grow (number)
|
||||||
|
@mixin flex-grow($number: 0) {
|
||||||
|
@include prefixer(flex-grow, $number, webkit moz spec);
|
||||||
|
-ms-flex-positive: $number;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2012 - flex-shrink (number)
|
||||||
|
@mixin flex-shrink($number: 1) {
|
||||||
|
@include prefixer(flex-shrink, $number, webkit moz spec);
|
||||||
|
-ms-flex-negative: $number;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2012 - flex-basis (number)
|
||||||
|
@mixin flex-basis($width: auto) {
|
||||||
|
@include prefixer(flex-basis, $width, webkit moz spec);
|
||||||
|
-ms-flex-preferred-size: $width;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2009 - box-pack (start | end | center | justify)
|
||||||
|
// 2011 - flex-pack (start | end | center | justify)
|
||||||
|
// 2012 - justify-content (flex-start | flex-end | center | space-between | space-around)
|
||||||
|
@mixin justify-content ($value: flex-start) {
|
||||||
|
|
||||||
|
// Alt values.
|
||||||
|
$alt-value: $value;
|
||||||
|
@if $value == "flex-start" {
|
||||||
|
$alt-value: start;
|
||||||
|
}
|
||||||
|
|
||||||
|
@elseif $value == "flex-end" {
|
||||||
|
$alt-value: end;
|
||||||
|
}
|
||||||
|
|
||||||
|
@elseif $value == "space-between" {
|
||||||
|
$alt-value: justify;
|
||||||
|
}
|
||||||
|
|
||||||
|
@elseif $value == "space-around" {
|
||||||
|
$alt-value: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2009
|
||||||
|
@include prefixer(box-pack, $alt-value, webkit moz spec);
|
||||||
|
|
||||||
|
// 2012
|
||||||
|
@include prefixer(justify-content, $value, webkit moz ms o spec);
|
||||||
|
|
||||||
|
// 2011 (IE 10)
|
||||||
|
-ms-flex-pack: $alt-value;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2009 - box-align (start | end | center | baseline | stretch)
|
||||||
|
// 2011 - flex-align (start | end | center | baseline | stretch)
|
||||||
|
// 2012 - align-items (flex-start | flex-end | center | baseline | stretch)
|
||||||
|
@mixin align-items($value: stretch) {
|
||||||
|
|
||||||
|
$alt-value: $value;
|
||||||
|
|
||||||
|
@if $value == "flex-start" {
|
||||||
|
$alt-value: start;
|
||||||
|
}
|
||||||
|
|
||||||
|
@elseif $value == "flex-end" {
|
||||||
|
$alt-value: end;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2009
|
||||||
|
@include prefixer(box-align, $alt-value, webkit moz spec);
|
||||||
|
|
||||||
|
// 2012
|
||||||
|
@include prefixer(align-items, $value, webkit moz ms o spec);
|
||||||
|
|
||||||
|
// 2011 (IE 10)
|
||||||
|
-ms-flex-align: $alt-value;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2011 - flex-item-align (auto | start | end | center | baseline | stretch)
|
||||||
|
// 2012 - align-self (auto | flex-start | flex-end | center | baseline | stretch)
|
||||||
|
@mixin align-self($value: auto) {
|
||||||
|
|
||||||
|
$value-2011: $value;
|
||||||
|
@if $value == "flex-start" {
|
||||||
|
$value-2011: start;
|
||||||
|
}
|
||||||
|
|
||||||
|
@elseif $value == "flex-end" {
|
||||||
|
$value-2011: end;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2012
|
||||||
|
@include prefixer(align-self, $value, webkit moz spec);
|
||||||
|
|
||||||
|
// 2011 (IE 10)
|
||||||
|
-ms-flex-item-align: $value-2011;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2011 - flex-line-pack (start | end | center | justify | distribute | stretch)
|
||||||
|
// 2012 - align-content (flex-start | flex-end | center | space-between | space-around | stretch)
|
||||||
|
@mixin align-content($value: stretch) {
|
||||||
|
|
||||||
|
$value-2011: $value;
|
||||||
|
@if $value == "flex-start" {
|
||||||
|
$value-2011: start;
|
||||||
|
}
|
||||||
|
|
||||||
|
@elseif $value == "flex-end" {
|
||||||
|
$value-2011: end;
|
||||||
|
}
|
||||||
|
|
||||||
|
@elseif $value == "space-between" {
|
||||||
|
$value-2011: justify;
|
||||||
|
}
|
||||||
|
|
||||||
|
@elseif $value == "space-around" {
|
||||||
|
$value-2011: distribute;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2012
|
||||||
|
@include prefixer(align-content, $value, webkit moz spec);
|
||||||
|
|
||||||
|
// 2011 (IE 10)
|
||||||
|
-ms-flex-line-pack: $value-2011;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
// Order of the includes matters, and it is: normal, bold, italic, bold+italic.
|
||||||
|
|
||||||
|
@mixin font-face($font-family, $file-path, $weight: normal, $style: normal, $asset-pipeline: false ) {
|
||||||
|
@font-face {
|
||||||
|
font-family: $font-family;
|
||||||
|
font-weight: $weight;
|
||||||
|
font-style: $style;
|
||||||
|
|
||||||
|
@if $asset-pipeline == true {
|
||||||
|
src: font-url('#{$file-path}.eot');
|
||||||
|
src: font-url('#{$file-path}.eot?#iefix') format('embedded-opentype'),
|
||||||
|
font-url('#{$file-path}.woff') format('woff'),
|
||||||
|
font-url('#{$file-path}.ttf') format('truetype'),
|
||||||
|
font-url('#{$file-path}.svg##{$font-family}') format('svg');
|
||||||
|
} @else {
|
||||||
|
src: url('#{$file-path}.eot');
|
||||||
|
src: url('#{$file-path}.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('#{$file-path}.woff') format('woff'),
|
||||||
|
url('#{$file-path}.ttf') format('truetype'),
|
||||||
|
url('#{$file-path}.svg##{$font-family}') format('svg');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
// Font feature settings mixin and property default.
|
||||||
|
// Examples: @include font-feature-settings("liga");
|
||||||
|
// @include font-feature-settings("lnum" false);
|
||||||
|
// @include font-feature-settings("pnum" 1, "kern" 0);
|
||||||
|
// @include font-feature-settings("ss01", "ss02");
|
||||||
|
|
||||||
|
@mixin font-feature-settings($settings...) {
|
||||||
|
@if length($settings) == 0 { $settings: none; }
|
||||||
|
@include prefixer(font-feature-settings, $settings, webkit moz ms spec);
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
// HiDPI mixin. Default value set to 1.3 to target Google Nexus 7 (http://bjango.com/articles/min-device-pixel-ratio/)
|
||||||
|
@mixin hidpi($ratio: 1.3) {
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: $ratio),
|
||||||
|
only screen and (min--moz-device-pixel-ratio: $ratio),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: #{$ratio}/1),
|
||||||
|
only screen and (min-resolution: #{round($ratio*96)}dpi),
|
||||||
|
only screen and (min-resolution: #{$ratio}dppx) {
|
||||||
|
@content;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
@mixin hyphens($hyphenation: none) {
|
||||||
|
// none | manual | auto
|
||||||
|
@include prefixer(hyphens, $hyphenation, webkit moz ms spec);
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
@mixin image-rendering ($mode:auto) {
|
||||||
|
|
||||||
|
@if ($mode == crisp-edges) {
|
||||||
|
-ms-interpolation-mode: nearest-neighbor; // IE8+
|
||||||
|
image-rendering: -moz-crisp-edges;
|
||||||
|
image-rendering: -o-crisp-edges;
|
||||||
|
image-rendering: -webkit-optimize-contrast;
|
||||||
|
image-rendering: crisp-edges;
|
||||||
|
}
|
||||||
|
|
||||||
|
@else {
|
||||||
|
image-rendering: $mode;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
// Adds keyframes blocks for supported prefixes, removing redundant prefixes in the block's content
|
||||||
|
@mixin keyframes($name) {
|
||||||
|
$original-prefix-for-webkit: $prefix-for-webkit;
|
||||||
|
$original-prefix-for-mozilla: $prefix-for-mozilla;
|
||||||
|
$original-prefix-for-microsoft: $prefix-for-microsoft;
|
||||||
|
$original-prefix-for-opera: $prefix-for-opera;
|
||||||
|
$original-prefix-for-spec: $prefix-for-spec;
|
||||||
|
|
||||||
|
@if $original-prefix-for-webkit {
|
||||||
|
@include disable-prefix-for-all();
|
||||||
|
$prefix-for-webkit: true !global;
|
||||||
|
@-webkit-keyframes #{$name} {
|
||||||
|
@content;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@if $original-prefix-for-mozilla {
|
||||||
|
@include disable-prefix-for-all();
|
||||||
|
$prefix-for-mozilla: true !global;
|
||||||
|
@-moz-keyframes #{$name} {
|
||||||
|
@content;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$prefix-for-webkit: $original-prefix-for-webkit !global;
|
||||||
|
$prefix-for-mozilla: $original-prefix-for-mozilla !global;
|
||||||
|
$prefix-for-microsoft: $original-prefix-for-microsoft !global;
|
||||||
|
$prefix-for-opera: $original-prefix-for-opera !global;
|
||||||
|
$prefix-for-spec: $original-prefix-for-spec !global;
|
||||||
|
|
||||||
|
@if $original-prefix-for-spec {
|
||||||
|
@keyframes #{$name} {
|
||||||
|
@content;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
@mixin linear-gradient($pos, $G1, $G2: null,
|
||||||
|
$G3: null, $G4: null,
|
||||||
|
$G5: null, $G6: null,
|
||||||
|
$G7: null, $G8: null,
|
||||||
|
$G9: null, $G10: null,
|
||||||
|
$fallback: null) {
|
||||||
|
// Detect what type of value exists in $pos
|
||||||
|
$pos-type: type-of(nth($pos, 1));
|
||||||
|
$pos-spec: null;
|
||||||
|
$pos-degree: null;
|
||||||
|
|
||||||
|
// If $pos is missing from mixin, reassign vars and add default position
|
||||||
|
@if ($pos-type == color) or (nth($pos, 1) == "transparent") {
|
||||||
|
$G10: $G9; $G9: $G8; $G8: $G7; $G7: $G6; $G6: $G5;
|
||||||
|
$G5: $G4; $G4: $G3; $G3: $G2; $G2: $G1; $G1: $pos;
|
||||||
|
$pos: null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@if $pos {
|
||||||
|
$positions: _linear-positions-parser($pos);
|
||||||
|
$pos-degree: nth($positions, 1);
|
||||||
|
$pos-spec: nth($positions, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
$full: $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10;
|
||||||
|
|
||||||
|
// Set $G1 as the default fallback color
|
||||||
|
$fallback-color: nth($G1, 1);
|
||||||
|
|
||||||
|
// If $fallback is a color use that color as the fallback color
|
||||||
|
@if (type-of($fallback) == color) or ($fallback == "transparent") {
|
||||||
|
$fallback-color: $fallback;
|
||||||
|
}
|
||||||
|
|
||||||
|
background-color: $fallback-color;
|
||||||
|
background-image: -webkit-linear-gradient($pos-degree $full); // Safari 5.1+, Chrome
|
||||||
|
background-image: unquote("linear-gradient(#{$pos-spec}#{$full})");
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
@mixin perspective($depth: none) {
|
||||||
|
// none | <length>
|
||||||
|
@include prefixer(perspective, $depth, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin perspective-origin($value: 50% 50%) {
|
||||||
|
@include prefixer(perspective-origin, $value, webkit moz spec);
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
@mixin placeholder {
|
||||||
|
$placeholders: ":-webkit-input" ":-moz" "-moz" "-ms-input";
|
||||||
|
@each $placeholder in $placeholders {
|
||||||
|
&:#{$placeholder}-placeholder {
|
||||||
|
@content;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
// Requires Sass 3.1+
|
||||||
|
@mixin radial-gradient($G1, $G2,
|
||||||
|
$G3: null, $G4: null,
|
||||||
|
$G5: null, $G6: null,
|
||||||
|
$G7: null, $G8: null,
|
||||||
|
$G9: null, $G10: null,
|
||||||
|
$pos: null,
|
||||||
|
$shape-size: null,
|
||||||
|
$fallback: null) {
|
||||||
|
|
||||||
|
$data: _radial-arg-parser($G1, $G2, $pos, $shape-size);
|
||||||
|
$G1: nth($data, 1);
|
||||||
|
$G2: nth($data, 2);
|
||||||
|
$pos: nth($data, 3);
|
||||||
|
$shape-size: nth($data, 4);
|
||||||
|
|
||||||
|
$full: $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10;
|
||||||
|
|
||||||
|
// Strip deprecated cover/contain for spec
|
||||||
|
$shape-size-spec: _shape-size-stripper($shape-size);
|
||||||
|
|
||||||
|
// Set $G1 as the default fallback color
|
||||||
|
$first-color: nth($full, 1);
|
||||||
|
$fallback-color: nth($first-color, 1);
|
||||||
|
|
||||||
|
@if (type-of($fallback) == color) or ($fallback == "transparent") {
|
||||||
|
$fallback-color: $fallback;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add Commas and spaces
|
||||||
|
$shape-size: if($shape-size, '#{$shape-size}, ', null);
|
||||||
|
$pos: if($pos, '#{$pos}, ', null);
|
||||||
|
$pos-spec: if($pos, 'at #{$pos}', null);
|
||||||
|
$shape-size-spec: if(($shape-size-spec != ' ') and ($pos == null), '#{$shape-size-spec}, ', '#{$shape-size-spec} ');
|
||||||
|
|
||||||
|
background-color: $fallback-color;
|
||||||
|
background-image: -webkit-radial-gradient(unquote(#{$pos}#{$shape-size}#{$full}));
|
||||||
|
background-image: unquote("radial-gradient(#{$shape-size-spec}#{$pos-spec}#{$full})");
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
@mixin transform($property: none) {
|
||||||
|
// none | <transform-function>
|
||||||
|
@include prefixer(transform, $property, webkit moz ms o spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin transform-origin($axes: 50%) {
|
||||||
|
// x-axis - left | center | right | length | %
|
||||||
|
// y-axis - top | center | bottom | length | %
|
||||||
|
// z-axis - length
|
||||||
|
@include prefixer(transform-origin, $axes, webkit moz ms o spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin transform-style ($style: flat) {
|
||||||
|
@include prefixer(transform-style, $style, webkit moz ms o spec);
|
||||||
|
}
|
|
@ -0,0 +1,77 @@
|
||||||
|
// Shorthand mixin. Supports multiple parentheses-deliminated values for each variable.
|
||||||
|
// Example: @include transition (all 2s ease-in-out);
|
||||||
|
// @include transition (opacity 1s ease-in 2s, width 2s ease-out);
|
||||||
|
// @include transition-property (transform, opacity);
|
||||||
|
|
||||||
|
@mixin transition ($properties...) {
|
||||||
|
// Fix for vendor-prefix transform property
|
||||||
|
$needs-prefixes: false;
|
||||||
|
$webkit: ();
|
||||||
|
$moz: ();
|
||||||
|
$spec: ();
|
||||||
|
|
||||||
|
// Create lists for vendor-prefixed transform
|
||||||
|
@each $list in $properties {
|
||||||
|
@if nth($list, 1) == "transform" {
|
||||||
|
$needs-prefixes: true;
|
||||||
|
$list1: -webkit-transform;
|
||||||
|
$list2: -moz-transform;
|
||||||
|
$list3: ();
|
||||||
|
|
||||||
|
@each $var in $list {
|
||||||
|
$list3: join($list3, $var);
|
||||||
|
|
||||||
|
@if $var != "transform" {
|
||||||
|
$list1: join($list1, $var);
|
||||||
|
$list2: join($list2, $var);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$webkit: append($webkit, $list1);
|
||||||
|
$moz: append($moz, $list2);
|
||||||
|
$spec: append($spec, $list3);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create lists for non-prefixed transition properties
|
||||||
|
@else {
|
||||||
|
$webkit: append($webkit, $list, comma);
|
||||||
|
$moz: append($moz, $list, comma);
|
||||||
|
$spec: append($spec, $list, comma);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@if $needs-prefixes {
|
||||||
|
-webkit-transition: $webkit;
|
||||||
|
-moz-transition: $moz;
|
||||||
|
transition: $spec;
|
||||||
|
}
|
||||||
|
@else {
|
||||||
|
@if length($properties) >= 1 {
|
||||||
|
@include prefixer(transition, $properties, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
@else {
|
||||||
|
$properties: all 0.15s ease-out 0s;
|
||||||
|
@include prefixer(transition, $properties, webkit moz spec);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin transition-property ($properties...) {
|
||||||
|
-webkit-transition-property: transition-property-names($properties, 'webkit');
|
||||||
|
-moz-transition-property: transition-property-names($properties, 'moz');
|
||||||
|
transition-property: transition-property-names($properties, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin transition-duration ($times...) {
|
||||||
|
@include prefixer(transition-duration, $times, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin transition-timing-function ($motions...) {
|
||||||
|
// ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier()
|
||||||
|
@include prefixer(transition-timing-function, $motions, webkit moz spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin transition-delay ($times...) {
|
||||||
|
@include prefixer(transition-delay, $times, webkit moz spec);
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
@mixin user-select($arg: none) {
|
||||||
|
@include prefixer(user-select, $arg, webkit moz ms spec);
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
@function assign-inputs($inputs, $pseudo: null) {
|
||||||
|
$list : ();
|
||||||
|
|
||||||
|
@each $input in $inputs {
|
||||||
|
$input: unquote($input);
|
||||||
|
$input: if($pseudo, $input + ":" + $pseudo, $input);
|
||||||
|
$list: append($list, $input, comma);
|
||||||
|
}
|
||||||
|
|
||||||
|
@return $list;
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
// Programatically determines whether a color is light or dark
|
||||||
|
// Returns a boolean
|
||||||
|
// More details here http://robots.thoughtbot.com/closer-look-color-lightness
|
||||||
|
|
||||||
|
@function is-light($hex-color) {
|
||||||
|
$-local-red: red(rgba($hex-color, 1.0));
|
||||||
|
$-local-green: green(rgba($hex-color, 1.0));
|
||||||
|
$-local-blue: blue(rgba($hex-color, 1.0));
|
||||||
|
|
||||||
|
$-local-lightness: ($-local-red * 0.2126 + $-local-green * 0.7152 + $-local-blue * 0.0722) / 255;
|
||||||
|
|
||||||
|
@return $-local-lightness > .6;
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
// Flexible grid
|
||||||
|
@function flex-grid($columns, $container-columns: $fg-max-columns) {
|
||||||
|
$width: $columns * $fg-column + ($columns - 1) * $fg-gutter;
|
||||||
|
$container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter;
|
||||||
|
@return percentage($width / $container-width);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Flexible gutter
|
||||||
|
@function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) {
|
||||||
|
$container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter;
|
||||||
|
@return percentage($gutter / $container-width);
|
||||||
|
}
|
||||||
|
|
||||||
|
// The $fg-column, $fg-gutter and $fg-max-columns variables must be defined in your base stylesheet to properly use the flex-grid function.
|
||||||
|
// This function takes the fluid grid equation (target / context = result) and uses columns to help define each.
|
||||||
|
//
|
||||||
|
// The calculation presumes that your column structure will be missing the last gutter:
|
||||||
|
//
|
||||||
|
// -- column -- gutter -- column -- gutter -- column
|
||||||
|
//
|
||||||
|
// $fg-column: 60px; // Column Width
|
||||||
|
// $fg-gutter: 25px; // Gutter Width
|
||||||
|
// $fg-max-columns: 12; // Total Columns For Main Container
|
||||||
|
//
|
||||||
|
// div {
|
||||||
|
// width: flex-grid(4); // returns (315px / 995px) = 31.65829%;
|
||||||
|
// margin-left: flex-gutter(); // returns (25px / 995px) = 2.51256%;
|
||||||
|
//
|
||||||
|
// p {
|
||||||
|
// width: flex-grid(2, 4); // returns (145px / 315px) = 46.031746%;
|
||||||
|
// float: left;
|
||||||
|
// margin: flex-gutter(4); // returns (25px / 315px) = 7.936508%;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// blockquote {
|
||||||
|
// float: left;
|
||||||
|
// width: flex-grid(2, 4); // returns (145px / 315px) = 46.031746%;
|
||||||
|
// }
|
||||||
|
// }
|
|
@ -0,0 +1,3 @@
|
||||||
|
@function golden-ratio($value, $increment) {
|
||||||
|
@return modular-scale($value, $increment, $golden)
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
@function grid-width($n) {
|
||||||
|
@return $n * $gw-column + ($n - 1) * $gw-gutter;
|
||||||
|
}
|
||||||
|
|
||||||
|
// The $gw-column and $gw-gutter variables must be defined in your base stylesheet to properly use the grid-width function.
|
||||||
|
//
|
||||||
|
// $gw-column: 100px; // Column Width
|
||||||
|
// $gw-gutter: 40px; // Gutter Width
|
||||||
|
//
|
||||||
|
// div {
|
||||||
|
// width: grid-width(4); // returns 520px;
|
||||||
|
// margin-left: $gw-gutter; // returns 40px;
|
||||||
|
// }
|
|
@ -0,0 +1,66 @@
|
||||||
|
// Scaling Variables
|
||||||
|
$golden: 1.618;
|
||||||
|
$minor-second: 1.067;
|
||||||
|
$major-second: 1.125;
|
||||||
|
$minor-third: 1.2;
|
||||||
|
$major-third: 1.25;
|
||||||
|
$perfect-fourth: 1.333;
|
||||||
|
$augmented-fourth: 1.414;
|
||||||
|
$perfect-fifth: 1.5;
|
||||||
|
$minor-sixth: 1.6;
|
||||||
|
$major-sixth: 1.667;
|
||||||
|
$minor-seventh: 1.778;
|
||||||
|
$major-seventh: 1.875;
|
||||||
|
$octave: 2;
|
||||||
|
$major-tenth: 2.5;
|
||||||
|
$major-eleventh: 2.667;
|
||||||
|
$major-twelfth: 3;
|
||||||
|
$double-octave: 4;
|
||||||
|
|
||||||
|
@function modular-scale($value, $increment, $ratio) {
|
||||||
|
$v1: nth($value, 1);
|
||||||
|
$v2: nth($value, length($value));
|
||||||
|
$value: $v1;
|
||||||
|
|
||||||
|
// scale $v2 to just above $v1
|
||||||
|
@while $v2 > $v1 {
|
||||||
|
$v2: ($v2 / $ratio); // will be off-by-1
|
||||||
|
}
|
||||||
|
@while $v2 < $v1 {
|
||||||
|
$v2: ($v2 * $ratio); // will fix off-by-1
|
||||||
|
}
|
||||||
|
|
||||||
|
// check AFTER scaling $v2 to prevent double-counting corner-case
|
||||||
|
$double-stranded: $v2 > $v1;
|
||||||
|
|
||||||
|
@if $increment > 0 {
|
||||||
|
@for $i from 1 through $increment {
|
||||||
|
@if $double-stranded and ($v1 * $ratio) > $v2 {
|
||||||
|
$value: $v2;
|
||||||
|
$v2: ($v2 * $ratio);
|
||||||
|
} @else {
|
||||||
|
$v1: ($v1 * $ratio);
|
||||||
|
$value: $v1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@if $increment < 0 {
|
||||||
|
// adjust $v2 to just below $v1
|
||||||
|
@if $double-stranded {
|
||||||
|
$v2: ($v2 / $ratio);
|
||||||
|
}
|
||||||
|
|
||||||
|
@for $i from $increment through -1 {
|
||||||
|
@if $double-stranded and ($v1 / $ratio) < $v2 {
|
||||||
|
$value: $v2;
|
||||||
|
$v2: ($v2 / $ratio);
|
||||||
|
} @else {
|
||||||
|
$v1: ($v1 / $ratio);
|
||||||
|
$value: $v1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@return $value;
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
// Convert pixels to ems
|
||||||
|
// eg. for a relational value of 12px write em(12) when the parent is 16px
|
||||||
|
// if the parent is another value say 24px write em(12, 24)
|
||||||
|
|
||||||
|
@function em($pxval, $base: $em-base) {
|
||||||
|
@if not unitless($pxval) {
|
||||||
|
$pxval: strip-units($pxval);
|
||||||
|
}
|
||||||
|
@if not unitless($base) {
|
||||||
|
$base: strip-units($base);
|
||||||
|
}
|
||||||
|
@return ($pxval / $base) * 1em;
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
// Convert pixels to rems
|
||||||
|
// eg. for a relational value of 12px write rem(12)
|
||||||
|
// Assumes $em-base is the font-size of <html>
|
||||||
|
|
||||||
|
@function rem($pxval) {
|
||||||
|
@if not unitless($pxval) {
|
||||||
|
$pxval: strip-units($pxval);
|
||||||
|
}
|
||||||
|
|
||||||
|
$base: $em-base;
|
||||||
|
@if not unitless($base) {
|
||||||
|
$base: strip-units($base);
|
||||||
|
}
|
||||||
|
@return ($pxval / $base) * 1rem;
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
// Srtips the units from a value. e.g. 12px -> 12
|
||||||
|
|
||||||
|
@function strip-units($val) {
|
||||||
|
@return ($val / ($val * 0 + 1));
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
// Add percentage of white to a color
|
||||||
|
@function tint($color, $percent){
|
||||||
|
@return mix(white, $color, $percent);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add percentage of black to a color
|
||||||
|
@function shade($color, $percent){
|
||||||
|
@return mix(black, $color, $percent);
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
// Return vendor-prefixed property names if appropriate
|
||||||
|
// Example: transition-property-names((transform, color, background), moz) -> -moz-transform, color, background
|
||||||
|
//************************************************************************//
|
||||||
|
@function transition-property-names($props, $vendor: false) {
|
||||||
|
$new-props: ();
|
||||||
|
|
||||||
|
@each $prop in $props {
|
||||||
|
$new-props: append($new-props, transition-property-name($prop, $vendor), comma);
|
||||||
|
}
|
||||||
|
|
||||||
|
@return $new-props;
|
||||||
|
}
|
||||||
|
|
||||||
|
@function transition-property-name($prop, $vendor: false) {
|
||||||
|
// put other properties that need to be prefixed here aswell
|
||||||
|
@if $vendor and $prop == transform {
|
||||||
|
@return unquote('-'+$vendor+'-'+$prop);
|
||||||
|
}
|
||||||
|
@else {
|
||||||
|
@return $prop;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
// Convert shorthand to the 4-value syntax
|
||||||
|
|
||||||
|
@function unpack($shorthand) {
|
||||||
|
@if length($shorthand) == 1 {
|
||||||
|
@return nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1);
|
||||||
|
}
|
||||||
|
@else if length($shorthand) == 2 {
|
||||||
|
@return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 1) nth($shorthand, 2);
|
||||||
|
}
|
||||||
|
@else if length($shorthand) == 3 {
|
||||||
|
@return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 3) nth($shorthand, 2);
|
||||||
|
}
|
||||||
|
@else {
|
||||||
|
@return $shorthand;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
//************************************************************************//
|
||||||
|
// Helper function for str-to-num fn.
|
||||||
|
// Source: http://sassmeister.com/gist/9647408
|
||||||
|
//************************************************************************//
|
||||||
|
@function _convert-units($number, $unit) {
|
||||||
|
$strings: 'px' 'cm' 'mm' '%' 'ch' 'pica' 'in' 'em' 'rem' 'pt' 'pc' 'ex' 'vw' 'vh' 'vmin' 'vmax', 'deg', 'rad', 'grad', 'turn';
|
||||||
|
$units: 1px 1cm 1mm 1% 1ch 1pica 1in 1em 1rem 1pt 1pc 1ex 1vw 1vh 1vmin 1vmax, 1deg, 1rad, 1grad, 1turn;
|
||||||
|
$index: index($strings, $unit);
|
||||||
|
|
||||||
|
@if not $index {
|
||||||
|
@warn "Unknown unit `#{$unit}`.";
|
||||||
|
@return false;
|
||||||
|
}
|
||||||
|
@return $number * nth($units, $index);
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
@function _gradient-positions-parser($gradient-type, $gradient-positions) {
|
||||||
|
@if $gradient-positions
|
||||||
|
and ($gradient-type == linear)
|
||||||
|
and (type-of($gradient-positions) != color) {
|
||||||
|
$gradient-positions: _linear-positions-parser($gradient-positions);
|
||||||
|
}
|
||||||
|
@else if $gradient-positions
|
||||||
|
and ($gradient-type == radial)
|
||||||
|
and (type-of($gradient-positions) != color) {
|
||||||
|
$gradient-positions: _radial-positions-parser($gradient-positions);
|
||||||
|
}
|
||||||
|
@return $gradient-positions;
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
//************************************************************************//
|
||||||
|
// Helper for linear-gradient-parser
|
||||||
|
//************************************************************************//
|
||||||
|
@function _is-num($char) {
|
||||||
|
$values: '0' '1' '2' '3' '4' '5' '6' '7' '8' '9' 0 1 2 3 4 5 6 7 8 9;
|
||||||
|
$index: index($values, $char);
|
||||||
|
@return if($index, true, false);
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
// Private function for linear-gradient-parser
|
||||||
|
@function _linear-angle-parser($image, $first-val, $prefix, $suffix) {
|
||||||
|
$offset: null;
|
||||||
|
$unit-short: str-slice($first-val, str-length($first-val) - 2, str-length($first-val));
|
||||||
|
$unit-long: str-slice($first-val, str-length($first-val) - 3, str-length($first-val));
|
||||||
|
|
||||||
|
@if ($unit-long == "grad") or
|
||||||
|
($unit-long == "turn") {
|
||||||
|
$offset: if($unit-long == "grad", -100grad * 3, -0.75turn);
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if ($unit-short == "deg") or
|
||||||
|
($unit-short == "rad") {
|
||||||
|
$offset: if($unit-short == "deg", -90 * 3, 1.6rad);
|
||||||
|
}
|
||||||
|
|
||||||
|
@if $offset {
|
||||||
|
$num: _str-to-num($first-val);
|
||||||
|
|
||||||
|
@return (
|
||||||
|
webkit-image: -webkit- + $prefix + ($offset - $num) + $suffix,
|
||||||
|
spec-image: $image
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
@function _linear-gradient-parser($image) {
|
||||||
|
$image: unquote($image);
|
||||||
|
$gradients: ();
|
||||||
|
$start: str-index($image, "(");
|
||||||
|
$end: str-index($image, ",");
|
||||||
|
$first-val: str-slice($image, $start + 1, $end - 1);
|
||||||
|
|
||||||
|
$prefix: str-slice($image, 0, $start);
|
||||||
|
$suffix: str-slice($image, $end, str-length($image));
|
||||||
|
|
||||||
|
$has-multiple-vals: str-index($first-val, " ");
|
||||||
|
$has-single-position: unquote(_position-flipper($first-val) + "");
|
||||||
|
$has-angle: _is-num(str-slice($first-val, 0, 0));
|
||||||
|
|
||||||
|
@if $has-multiple-vals {
|
||||||
|
$gradients: _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals);
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if $has-single-position != "" {
|
||||||
|
$pos: unquote($has-single-position + "");
|
||||||
|
|
||||||
|
$gradients: (
|
||||||
|
webkit-image: -webkit- + $image,
|
||||||
|
spec-image: $prefix + "to " + $pos + $suffix
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if $has-angle {
|
||||||
|
// Rotate degree for webkit
|
||||||
|
$gradients: _linear-angle-parser($image, $first-val, $prefix, $suffix);
|
||||||
|
}
|
||||||
|
|
||||||
|
@else {
|
||||||
|
$gradients: (
|
||||||
|
webkit-image: -webkit- + $image,
|
||||||
|
spec-image: $image
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@return $gradients;
|
||||||
|
}
|
|
@ -0,0 +1,61 @@
|
||||||
|
@function _linear-positions-parser($pos) {
|
||||||
|
$type: type-of(nth($pos, 1));
|
||||||
|
$spec: null;
|
||||||
|
$degree: null;
|
||||||
|
$side: null;
|
||||||
|
$corner: null;
|
||||||
|
$length: length($pos);
|
||||||
|
// Parse Side and corner positions
|
||||||
|
@if ($length > 1) {
|
||||||
|
@if nth($pos, 1) == "to" { // Newer syntax
|
||||||
|
$side: nth($pos, 2);
|
||||||
|
|
||||||
|
@if $length == 2 { // eg. to top
|
||||||
|
// Swap for backwards compatability
|
||||||
|
$degree: _position-flipper(nth($pos, 2));
|
||||||
|
}
|
||||||
|
@else if $length == 3 { // eg. to top left
|
||||||
|
$corner: nth($pos, 3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@else if $length == 2 { // Older syntax ("top left")
|
||||||
|
$side: _position-flipper(nth($pos, 1));
|
||||||
|
$corner: _position-flipper(nth($pos, 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
@if ("#{$side} #{$corner}" == "left top") or ("#{$side} #{$corner}" == "top left") {
|
||||||
|
$degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
|
||||||
|
}
|
||||||
|
@else if ("#{$side} #{$corner}" == "right top") or ("#{$side} #{$corner}" == "top right") {
|
||||||
|
$degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
|
||||||
|
}
|
||||||
|
@else if ("#{$side} #{$corner}" == "right bottom") or ("#{$side} #{$corner}" == "bottom right") {
|
||||||
|
$degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
|
||||||
|
}
|
||||||
|
@else if ("#{$side} #{$corner}" == "left bottom") or ("#{$side} #{$corner}" == "bottom left") {
|
||||||
|
$degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
|
||||||
|
}
|
||||||
|
$spec: to $side $corner;
|
||||||
|
}
|
||||||
|
@else if $length == 1 {
|
||||||
|
// Swap for backwards compatability
|
||||||
|
@if $type == string {
|
||||||
|
$degree: $pos;
|
||||||
|
$spec: to _position-flipper($pos);
|
||||||
|
}
|
||||||
|
@else {
|
||||||
|
$degree: -270 - $pos; //rotate the gradient opposite from spec
|
||||||
|
$spec: $pos;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$degree: unquote($degree + ",");
|
||||||
|
$spec: unquote($spec + ",");
|
||||||
|
@return $degree $spec;
|
||||||
|
}
|
||||||
|
|
||||||
|
@function _position-flipper($pos) {
|
||||||
|
@return if($pos == left, right, null)
|
||||||
|
if($pos == right, left, null)
|
||||||
|
if($pos == top, bottom, null)
|
||||||
|
if($pos == bottom, top, null);
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
// Private function for linear-gradient-parser
|
||||||
|
@function _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals) {
|
||||||
|
$val-1: str-slice($first-val, 0, $has-multiple-vals - 1 );
|
||||||
|
$val-2: str-slice($first-val, $has-multiple-vals + 1, str-length($first-val));
|
||||||
|
$val-3: null;
|
||||||
|
$has-val-3: str-index($val-2, " ");
|
||||||
|
|
||||||
|
@if $has-val-3 {
|
||||||
|
$val-3: str-slice($val-2, $has-val-3 + 1, str-length($val-2));
|
||||||
|
$val-2: str-slice($val-2, 0, $has-val-3 - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
$pos: _position-flipper($val-1) _position-flipper($val-2) _position-flipper($val-3);
|
||||||
|
$pos: unquote($pos + "");
|
||||||
|
|
||||||
|
// Use old spec for webkit
|
||||||
|
@if $val-1 == "to" {
|
||||||
|
@return (
|
||||||
|
webkit-image: -webkit- + $prefix + $pos + $suffix,
|
||||||
|
spec-image: $image
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bring the code up to spec
|
||||||
|
@else {
|
||||||
|
@return (
|
||||||
|
webkit-image: -webkit- + $image,
|
||||||
|
spec-image: $prefix + "to " + $pos + $suffix
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,69 @@
|
||||||
|
@function _radial-arg-parser($G1, $G2, $pos, $shape-size) {
|
||||||
|
@each $value in $G1, $G2 {
|
||||||
|
$first-val: nth($value, 1);
|
||||||
|
$pos-type: type-of($first-val);
|
||||||
|
$spec-at-index: null;
|
||||||
|
|
||||||
|
// Determine if spec was passed to mixin
|
||||||
|
@if type-of($value) == list {
|
||||||
|
$spec-at-index: if(index($value, at), index($value, at), false);
|
||||||
|
}
|
||||||
|
@if $spec-at-index {
|
||||||
|
@if $spec-at-index > 1 {
|
||||||
|
@for $i from 1 through ($spec-at-index - 1) {
|
||||||
|
$shape-size: $shape-size nth($value, $i);
|
||||||
|
}
|
||||||
|
@for $i from ($spec-at-index + 1) through length($value) {
|
||||||
|
$pos: $pos nth($value, $i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@else if $spec-at-index == 1 {
|
||||||
|
@for $i from ($spec-at-index + 1) through length($value) {
|
||||||
|
$pos: $pos nth($value, $i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$G1: null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If not spec calculate correct values
|
||||||
|
@else {
|
||||||
|
@if ($pos-type != color) or ($first-val != "transparent") {
|
||||||
|
@if ($pos-type == number)
|
||||||
|
or ($first-val == "center")
|
||||||
|
or ($first-val == "top")
|
||||||
|
or ($first-val == "right")
|
||||||
|
or ($first-val == "bottom")
|
||||||
|
or ($first-val == "left") {
|
||||||
|
|
||||||
|
$pos: $value;
|
||||||
|
|
||||||
|
@if $pos == $G1 {
|
||||||
|
$G1: null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if
|
||||||
|
($first-val == "ellipse")
|
||||||
|
or ($first-val == "circle")
|
||||||
|
or ($first-val == "closest-side")
|
||||||
|
or ($first-val == "closest-corner")
|
||||||
|
or ($first-val == "farthest-side")
|
||||||
|
or ($first-val == "farthest-corner")
|
||||||
|
or ($first-val == "contain")
|
||||||
|
or ($first-val == "cover") {
|
||||||
|
|
||||||
|
$shape-size: $value;
|
||||||
|
|
||||||
|
@if $value == $G1 {
|
||||||
|
$G1: null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if $value == $G2 {
|
||||||
|
$G2: null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@return $G1, $G2, $pos, $shape-size;
|
||||||
|
}
|
|
@ -0,0 +1,50 @@
|
||||||
|
@function _radial-gradient-parser($image) {
|
||||||
|
$image: unquote($image);
|
||||||
|
$gradients: ();
|
||||||
|
$start: str-index($image, "(");
|
||||||
|
$end: str-index($image, ",");
|
||||||
|
$first-val: str-slice($image, $start + 1, $end - 1);
|
||||||
|
|
||||||
|
$prefix: str-slice($image, 0, $start);
|
||||||
|
$suffix: str-slice($image, $end, str-length($image));
|
||||||
|
|
||||||
|
$is-spec-syntax: str-index($first-val, "at");
|
||||||
|
|
||||||
|
@if $is-spec-syntax and $is-spec-syntax > 1 {
|
||||||
|
$keyword: str-slice($first-val, 1, $is-spec-syntax - 2);
|
||||||
|
$pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val));
|
||||||
|
$pos: append($pos, $keyword, comma);
|
||||||
|
|
||||||
|
$gradients: (
|
||||||
|
webkit-image: -webkit- + $prefix + $pos + $suffix,
|
||||||
|
spec-image: $image
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if $is-spec-syntax == 1 {
|
||||||
|
$pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val));
|
||||||
|
|
||||||
|
$gradients: (
|
||||||
|
webkit-image: -webkit- + $prefix + $pos + $suffix,
|
||||||
|
spec-image: $image
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if str-index($image, "cover") or str-index($image, "contain") {
|
||||||
|
@warn "Radial-gradient needs to be updated to conform to latest spec.";
|
||||||
|
|
||||||
|
$gradients: (
|
||||||
|
webkit-image: null,
|
||||||
|
spec-image: $image
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
@else {
|
||||||
|
$gradients: (
|
||||||
|
webkit-image: -webkit- + $image,
|
||||||
|
spec-image: $image
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
@return $gradients;
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
@function _radial-positions-parser($gradient-pos) {
|
||||||
|
$shape-size: nth($gradient-pos, 1);
|
||||||
|
$pos: nth($gradient-pos, 2);
|
||||||
|
$shape-size-spec: _shape-size-stripper($shape-size);
|
||||||
|
|
||||||
|
$pre-spec: unquote(if($pos, "#{$pos}, ", null))
|
||||||
|
unquote(if($shape-size, "#{$shape-size},", null));
|
||||||
|
$pos-spec: if($pos, "at #{$pos}", null);
|
||||||
|
|
||||||
|
$spec: "#{$shape-size-spec} #{$pos-spec}";
|
||||||
|
|
||||||
|
// Add comma
|
||||||
|
@if ($spec != ' ') {
|
||||||
|
$spec: "#{$spec},"
|
||||||
|
}
|
||||||
|
|
||||||
|
@return $pre-spec $spec;
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
// User for linear and radial gradients within background-image or border-image properties
|
||||||
|
|
||||||
|
@function _render-gradients($gradient-positions, $gradients, $gradient-type, $vendor: false) {
|
||||||
|
$pre-spec: null;
|
||||||
|
$spec: null;
|
||||||
|
$vendor-gradients: null;
|
||||||
|
@if $gradient-type == linear {
|
||||||
|
@if $gradient-positions {
|
||||||
|
$pre-spec: nth($gradient-positions, 1);
|
||||||
|
$spec: nth($gradient-positions, 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@else if $gradient-type == radial {
|
||||||
|
$pre-spec: nth($gradient-positions, 1);
|
||||||
|
$spec: nth($gradient-positions, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
@if $vendor {
|
||||||
|
$vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient(#{$pre-spec} $gradients);
|
||||||
|
}
|
||||||
|
@else if $vendor == false {
|
||||||
|
$vendor-gradients: "#{$gradient-type}-gradient(#{$spec} #{$gradients})";
|
||||||
|
$vendor-gradients: unquote($vendor-gradients);
|
||||||
|
}
|
||||||
|
@return $vendor-gradients;
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
@function _shape-size-stripper($shape-size) {
|
||||||
|
$shape-size-spec: null;
|
||||||
|
@each $value in $shape-size {
|
||||||
|
@if ($value == "cover") or ($value == "contain") {
|
||||||
|
$value: null;
|
||||||
|
}
|
||||||
|
$shape-size-spec: "#{$shape-size-spec} #{$value}";
|
||||||
|
}
|
||||||
|
@return $shape-size-spec;
|
||||||
|
}
|
|
@ -0,0 +1,50 @@
|
||||||
|
//************************************************************************//
|
||||||
|
// Helper function for linear/radial-gradient-parsers.
|
||||||
|
// Source: http://sassmeister.com/gist/9647408
|
||||||
|
//************************************************************************//
|
||||||
|
@function _str-to-num($string) {
|
||||||
|
// Matrices
|
||||||
|
$strings: '0' '1' '2' '3' '4' '5' '6' '7' '8' '9';
|
||||||
|
$numbers: 0 1 2 3 4 5 6 7 8 9;
|
||||||
|
|
||||||
|
// Result
|
||||||
|
$result: 0;
|
||||||
|
$divider: 0;
|
||||||
|
$minus: false;
|
||||||
|
|
||||||
|
// Looping through all characters
|
||||||
|
@for $i from 1 through str-length($string) {
|
||||||
|
$character: str-slice($string, $i, $i);
|
||||||
|
$index: index($strings, $character);
|
||||||
|
|
||||||
|
@if $character == '-' {
|
||||||
|
$minus: true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@else if $character == '.' {
|
||||||
|
$divider: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@else {
|
||||||
|
@if not $index {
|
||||||
|
$result: if($minus, $result * -1, $result);
|
||||||
|
@return _convert-units($result, str-slice($string, $i));
|
||||||
|
}
|
||||||
|
|
||||||
|
$number: nth($numbers, $index);
|
||||||
|
|
||||||
|
@if $divider == 0 {
|
||||||
|
$result: $result * 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
@else {
|
||||||
|
// Move the decimal dot to the left
|
||||||
|
$divider: $divider * 10;
|
||||||
|
$number: $number / $divider;
|
||||||
|
}
|
||||||
|
|
||||||
|
$result: $result + $number;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@return if($minus, $result * -1, $result);
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
// Variable settings for /addons/prefixer.scss
|
||||||
|
$prefix-for-webkit: true !default;
|
||||||
|
$prefix-for-mozilla: true !default;
|
||||||
|
$prefix-for-microsoft: true !default;
|
||||||
|
$prefix-for-opera: true !default;
|
||||||
|
$prefix-for-spec: true !default; // required for keyframe mixin
|
|
@ -0,0 +1 @@
|
||||||
|
$em-base: 16px !default;
|
|
@ -0,0 +1,6 @@
|
||||||
|
.avatar {
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
/* Buttons components */
|
|
@ -0,0 +1,38 @@
|
||||||
|
fieldset {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
input[type="text"],
|
||||||
|
input[type="password"],
|
||||||
|
input[type="email"],
|
||||||
|
textarea,
|
||||||
|
select {
|
||||||
|
margin: 0;
|
||||||
|
width: 100%;
|
||||||
|
max-width: 100%;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
select {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
input[type="text"]:focus,
|
||||||
|
input[type="password"]:focus,
|
||||||
|
input[type="email"]:focus,
|
||||||
|
textarea:focus {
|
||||||
|
border: 1px solid #aaa;
|
||||||
|
color: #444;
|
||||||
|
-moz-box-shadow: 0 0 3px rgba(0,0,0,.2);
|
||||||
|
-webkit-box-shadow: 0 0 3px rgba(0,0,0,.2);
|
||||||
|
box-shadow: 0 0 3px rgba(0,0,0,.2);
|
||||||
|
}
|
||||||
|
textarea {
|
||||||
|
min-height: 60px;
|
||||||
|
resize: vertical;
|
||||||
|
}
|
||||||
|
label,
|
||||||
|
legend {
|
||||||
|
display: block;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 13px; }
|
||||||
|
input[type="checkbox"] {
|
||||||
|
display: inline;
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
/* Colors */
|
||||||
|
|
||||||
|
$black: #000000;
|
||||||
|
$blackish: #050505;
|
||||||
|
$gray: #555555;
|
||||||
|
$grayLight: #cdcdcd;
|
||||||
|
$whitish: #f5f5f5;
|
||||||
|
$white: #FFFFFF;
|
||||||
|
|
||||||
|
$greenTaiga: #72a114;
|
||||||
|
$freshTaiga: #9dce0a;
|
||||||
|
$darkTaiga: #879b89;
|
||||||
|
$dryTaiga: #70a87d;
|
||||||
|
$morningTaiga: #7ab987;
|
||||||
|
|
||||||
|
$lightRed: #ff8282;
|
||||||
|
$red: #ff0000;
|
||||||
|
|
||||||
|
$buttonGreen: #699b05;
|
||||||
|
$buttonGreenHover: #9dce0a;
|
||||||
|
$buttonGray: #585858;
|
||||||
|
$buttonGrayHover: #879b89;
|
|
@ -0,0 +1,32 @@
|
||||||
|
/* Elements */
|
||||||
|
|
||||||
|
/* Blockquotes */
|
||||||
|
blockquote, blockquote p {
|
||||||
|
line-height: 24px;
|
||||||
|
color: #777;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
blockquote {
|
||||||
|
margin: 0 0 20px;
|
||||||
|
padding: 9px 20px 0 19px;
|
||||||
|
border-left: 1px solid #ddd;
|
||||||
|
cite {
|
||||||
|
display: block;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #555;
|
||||||
|
&:before {
|
||||||
|
content: "\2014 \0020";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
a, a:visited {
|
||||||
|
color: #555;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* __Lists__ */
|
||||||
|
|
||||||
|
ul, ol {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
ul { list-style: none outside; }
|
||||||
|
ol { list-style: decimal; }
|
|
@ -0,0 +1,27 @@
|
||||||
|
/* FTW */
|
||||||
|
* { box-sizing: border-box }
|
||||||
|
|
||||||
|
/* #Reset & Basics (Inspired by E. Meyers)
|
||||||
|
================================================== */
|
||||||
|
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
font-size: 100%;
|
||||||
|
font: inherit;
|
||||||
|
vertical-align: baseline; }
|
||||||
|
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
|
||||||
|
display: block; }
|
||||||
|
body {
|
||||||
|
line-height: 1; }
|
||||||
|
ol, ul {
|
||||||
|
list-style: none; }
|
||||||
|
blockquote, q {
|
||||||
|
quotes: none; }
|
||||||
|
blockquote:before, blockquote:after,
|
||||||
|
q:before, q:after {
|
||||||
|
content: '';
|
||||||
|
content: none; }
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0; }
|
|
@ -0,0 +1,102 @@
|
||||||
|
/* Typography */
|
||||||
|
|
||||||
|
/*Font face*/
|
||||||
|
|
||||||
|
@each $font-face in DroidSans, DroidSans-Bold, ostrichSans, taiga {
|
||||||
|
@font-face {
|
||||||
|
font-family: '#{$font-face}';
|
||||||
|
src: url('../fonts/#{$font-face}.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('../fonts/#{$font-face}.woff') format('woff'),
|
||||||
|
url('../fonts/#{$font-face}.ttf') format('truetype'),
|
||||||
|
url('../fonts/#{$font-face}.svg#{$font-face}') format('svg');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h1, h2, h3, h4, h5, h6 {
|
||||||
|
color: $blackish;
|
||||||
|
font-weight: normal;
|
||||||
|
a {
|
||||||
|
font-weight: inherit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*__Font Sizes__*/
|
||||||
|
.small {font-size: .7em;}
|
||||||
|
.medium {font-size: 1em;}
|
||||||
|
.large {font-size: 1.2;}
|
||||||
|
.xlarge {font-size: 2em;}
|
||||||
|
.xxlarge {font-size: 3em;}
|
||||||
|
|
||||||
|
p { margin: 0 0 20px 0;
|
||||||
|
img {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
em { font-style: italic; }
|
||||||
|
strong { font-weight: bold; color: #333; }
|
||||||
|
|
||||||
|
hr {
|
||||||
|
border: solid #ddd;
|
||||||
|
border-width: 1px 0 0;
|
||||||
|
clear: both;
|
||||||
|
margin: 10px 0 30px;
|
||||||
|
height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* __Links__ */
|
||||||
|
|
||||||
|
a, a:visited {
|
||||||
|
color: #333;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Taiga Icons */
|
||||||
|
|
||||||
|
[data-icon]:before {
|
||||||
|
font-family: "taiga" !important;
|
||||||
|
content: attr(data-icon);
|
||||||
|
font-style: normal !important;
|
||||||
|
font-weight: normal !important;
|
||||||
|
font-variant: normal !important;
|
||||||
|
text-transform: none !important;
|
||||||
|
speak: none;
|
||||||
|
line-height: 1;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
}
|
||||||
|
|
||||||
|
[class^="icon-"]:before,
|
||||||
|
[class*=" icon-"]:before {
|
||||||
|
font-family: "taiga" !important;
|
||||||
|
font-style: normal !important;
|
||||||
|
font-weight: normal !important;
|
||||||
|
font-variant: normal !important;
|
||||||
|
text-transform: none !important;
|
||||||
|
speak: none;
|
||||||
|
line-height: 1;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-backlog:before {
|
||||||
|
content: "a";
|
||||||
|
}
|
||||||
|
.icon-issues:before {
|
||||||
|
content: "b";
|
||||||
|
}
|
||||||
|
.icon-kanban:before {
|
||||||
|
content: "c";
|
||||||
|
}
|
||||||
|
.icon-search:before {
|
||||||
|
content: "d";
|
||||||
|
}
|
||||||
|
.icon-video:before {
|
||||||
|
content: "e";
|
||||||
|
}
|
||||||
|
.icon-wiki:before {
|
||||||
|
content: "f";
|
||||||
|
}
|
||||||
|
.icon-settings:before {
|
||||||
|
content: "g";
|
||||||
|
}
|
|
@ -0,0 +1,2 @@
|
||||||
|
.backlog {
|
||||||
|
}
|