mfb.css 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671
  1. /**
  2. * CONTENTS
  3. *
  4. * #Introduction........Naming conventions used throughout the code.
  5. *
  6. * #SETTINGS
  7. * Variables............Globally-available variables and config.
  8. *
  9. * #TOOLS
  10. * Mixins...............Useful mixins.
  11. *
  12. * #GENERIC
  13. * Demo styles..........Styles for demo only (consider removing these).
  14. *
  15. * #BASE
  16. * Raw styles...........The very basic component wrapper.
  17. * Modifiers............The basic styles dependant on component placement.
  18. * Debuggers............The basic styles dependant on component placement.
  19. *
  20. * #BUTTONS
  21. * Base..................Wrapping and constraining every button.
  22. * Modifiers.............Styles that depends on state and settings.
  23. * Animations............Main animations of the component.
  24. * Debuggers.............Styles for development.
  25. *
  26. * #LABELS
  27. * Base..................Wrapping and constraining every label.
  28. * Modifiers.............Styles that depends on state and settings.
  29. * Debuggers.............Styles for development.
  30. *
  31. * #DEVELOPMENT
  32. * In development........These styles are in development and not yet finalised
  33. * Debuggers.............Helper styles and flags for development.
  34. */
  35. /*------------------------------------*\
  36. #Introduction
  37. \*------------------------------------*/
  38. /**
  39. * The code AND the comments use naming conventions to refer to each part of
  40. * the UI put in place by this component. If you see that somewhere they are
  41. * not followed please consider a Pull Request. The naming conventions are:
  42. *
  43. * "Component" : the widget itself as a whole. This is the last time it will be
  44. * called anything different than "component". So, stay away from
  45. * "widget", "button" or anything else when referring to the
  46. * Component in general.
  47. *
  48. * "Main Button" : the button that is always in view. Hovering or clicking on it
  49. * will reveal the child buttons.
  50. *
  51. * "Child buttons" : if you've read the previous point you know what they are.
  52. * Did you read the previous point? :)
  53. *
  54. * "Label(s)" : the tooltip that fades in when hovering over a button.
  55. /*------------------------------------*\
  56. #SETTINGS | Variables
  57. \*------------------------------------*/
  58. /**
  59. * These variables are the default styles that serve as fallback and can be
  60. * easily customised at compile time.
  61. * Consider overriding them in your own style sheets rather than editing them
  62. * here. Refer to the docs for more info.
  63. */
  64. /* COLORS ----------------------------*/
  65. /* EFFECTS ---------------------------*/
  66. /* SPEEDS ----------------------------*/
  67. /* SIZES -----------------------------*/
  68. /* SPACING ---------------------------*/
  69. /* OTHER VARIABLES -------------------*/
  70. /*------------------------------------*\
  71. #BASE | Raw styles
  72. \*------------------------------------*/
  73. /**
  74. * The very core styling of the button.
  75. * These styles are shared by every instance of the button.
  76. * Styles placed here should NOT care about placement in the screen,
  77. * options chosen by the user or state of the button.
  78. */
  79. .mfb-component--tl, .mfb-component--tr, .mfb-component--bl, .mfb-component--br {
  80. box-sizing: border-box;
  81. margin: 25px;
  82. position: fixed;
  83. white-space: nowrap;
  84. z-index: 30;
  85. padding-left: 0;
  86. list-style: none; }
  87. .mfb-component--tl *, .mfb-component--tr *, .mfb-component--bl *, .mfb-component--br *, .mfb-component--tl *:before, .mfb-component--tr *:before, .mfb-component--bl *:before, .mfb-component--br *:before, .mfb-component--tl *:after, .mfb-component--tr *:after, .mfb-component--bl *:after, .mfb-component--br *:after {
  88. box-sizing: inherit; }
  89. /*------------------------------------*\
  90. #BASE | Modifiers
  91. \*------------------------------------*/
  92. /**
  93. * These styles depends on the placement of the button.
  94. * Styles can be:
  95. * 1. Top-left: modified by the " --tl " suffix.
  96. * 2. Top-right: modified by the " --tr " suffix.
  97. * 3. Bottom-left: modified by the " --bl " suffix.
  98. * 4. Bottom-right: modified by the " --br " suffix.
  99. */
  100. .mfb-component--tl {
  101. left: 0;
  102. top: 0; }
  103. .mfb-component--tr {
  104. right: 0;
  105. top: 0; }
  106. .mfb-component--bl {
  107. left: 0;
  108. bottom: 0; }
  109. .mfb-component--br {
  110. right: 0;
  111. bottom: 0; }
  112. /*------------------------------------*\
  113. #BUTTONS | Base
  114. \*------------------------------------*/
  115. .mfb-component__button--main, .mfb-component__button--child {
  116. background-color: #E40A5D;
  117. display: inline-block;
  118. position: relative;
  119. border: none;
  120. border-radius: 50%;
  121. box-shadow: 0 0 4px rgba(0, 0, 0, 0.14), 0 4px 8px rgba(0, 0, 0, 0.28);
  122. cursor: pointer;
  123. outline: none;
  124. padding: 0;
  125. position: relative;
  126. -webkit-user-drag: none;
  127. color: #f1f1f1; }
  128. /**
  129. * This is the unordered list for the list items that contain
  130. * the child buttons.
  131. *
  132. */
  133. .mfb-component__list {
  134. list-style: none;
  135. margin: 0;
  136. padding: 0; }
  137. .mfb-component__list > li {
  138. display: block;
  139. position: absolute;
  140. top: 0;
  141. right: 1px;
  142. padding: 10px 0;
  143. margin: -10px 0; }
  144. /**
  145. * These are the basic styles for all the icons inside the main button
  146. */
  147. .mfb-component__icon, .mfb-component__main-icon--active,
  148. .mfb-component__main-icon--resting, .mfb-component__child-icon {
  149. position: absolute;
  150. font-size: 18px;
  151. text-align: center;
  152. line-height: 56px;
  153. width: 100%; }
  154. .mfb-component__wrap {
  155. padding: 25px;
  156. margin: -25px; }
  157. [data-mfb-toggle="hover"]:hover .mfb-component__icon, [data-mfb-toggle="hover"]:hover .mfb-component__main-icon--active,
  158. [data-mfb-toggle="hover"]:hover .mfb-component__main-icon--resting, [data-mfb-toggle="hover"]:hover .mfb-component__child-icon,
  159. [data-mfb-state="open"] .mfb-component__icon,
  160. [data-mfb-state="open"] .mfb-component__main-icon--active,
  161. [data-mfb-state="open"] .mfb-component__main-icon--resting,
  162. [data-mfb-state="open"] .mfb-component__child-icon {
  163. -webkit-transform: scale(1) rotate(0deg);
  164. transform: scale(1) rotate(0deg); }
  165. /*------------------------------------*\
  166. #BUTTONS | Modifiers
  167. \*------------------------------------*/
  168. .mfb-component__button--main {
  169. height: 56px;
  170. width: 56px;
  171. z-index: 20; }
  172. .mfb-component__button--child {
  173. height: 56px;
  174. width: 56px; }
  175. .mfb-component__main-icon--active,
  176. .mfb-component__main-icon--resting {
  177. -webkit-transform: scale(1) rotate(360deg);
  178. transform: scale(1) rotate(360deg);
  179. -webkit-transition: -webkit-transform 150ms cubic-bezier(0.4, 0, 1, 1);
  180. transition: transform 150ms cubic-bezier(0.4, 0, 1, 1); }
  181. .mfb-component__child-icon,
  182. .mfb-component__child-icon {
  183. line-height: 56px;
  184. font-size: 18px; }
  185. .mfb-component__main-icon--active {
  186. opacity: 0; }
  187. [data-mfb-toggle="hover"]:hover .mfb-component__main-icon,
  188. [data-mfb-state="open"] .mfb-component__main-icon {
  189. -webkit-transform: scale(1) rotate(0deg);
  190. transform: scale(1) rotate(0deg); }
  191. [data-mfb-toggle="hover"]:hover .mfb-component__main-icon--resting,
  192. [data-mfb-state="open"] .mfb-component__main-icon--resting {
  193. opacity: 0;
  194. position: absolute !important; }
  195. [data-mfb-toggle="hover"]:hover .mfb-component__main-icon--active,
  196. [data-mfb-state="open"] .mfb-component__main-icon--active {
  197. opacity: 1; }
  198. /*------------------------------------*\
  199. #BUTTONS | Animations
  200. \*------------------------------------*/
  201. /**
  202. * SLIDE IN + FADE
  203. * When hovering the main button, the child buttons slide out from beneath
  204. * the main button while transitioning from transparent to opaque.
  205. *
  206. */
  207. .mfb-component--tl.mfb-slidein .mfb-component__list li,
  208. .mfb-component--tr.mfb-slidein .mfb-component__list li {
  209. opacity: 0;
  210. transition: all 0.5s; }
  211. .mfb-component--tl.mfb-slidein[data-mfb-toggle="hover"]:hover .mfb-component__list li, .mfb-component--tl.mfb-slidein[data-mfb-state="open"] .mfb-component__list li,
  212. .mfb-component--tr.mfb-slidein[data-mfb-toggle="hover"]:hover .mfb-component__list li,
  213. .mfb-component--tr.mfb-slidein[data-mfb-state="open"] .mfb-component__list li {
  214. opacity: 1; }
  215. .mfb-component--tl.mfb-slidein[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(1), .mfb-component--tl.mfb-slidein[data-mfb-state="open"] .mfb-component__list li:nth-child(1),
  216. .mfb-component--tr.mfb-slidein[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(1),
  217. .mfb-component--tr.mfb-slidein[data-mfb-state="open"] .mfb-component__list li:nth-child(1) {
  218. -webkit-transform: translateY(70px);
  219. transform: translateY(70px); }
  220. .mfb-component--tl.mfb-slidein[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(2), .mfb-component--tl.mfb-slidein[data-mfb-state="open"] .mfb-component__list li:nth-child(2),
  221. .mfb-component--tr.mfb-slidein[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(2),
  222. .mfb-component--tr.mfb-slidein[data-mfb-state="open"] .mfb-component__list li:nth-child(2) {
  223. -webkit-transform: translateY(140px);
  224. transform: translateY(140px); }
  225. .mfb-component--tl.mfb-slidein[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(3), .mfb-component--tl.mfb-slidein[data-mfb-state="open"] .mfb-component__list li:nth-child(3),
  226. .mfb-component--tr.mfb-slidein[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(3),
  227. .mfb-component--tr.mfb-slidein[data-mfb-state="open"] .mfb-component__list li:nth-child(3) {
  228. -webkit-transform: translateY(210px);
  229. transform: translateY(210px); }
  230. .mfb-component--tl.mfb-slidein[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(4), .mfb-component--tl.mfb-slidein[data-mfb-state="open"] .mfb-component__list li:nth-child(4),
  231. .mfb-component--tr.mfb-slidein[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(4),
  232. .mfb-component--tr.mfb-slidein[data-mfb-state="open"] .mfb-component__list li:nth-child(4) {
  233. -webkit-transform: translateY(280px);
  234. transform: translateY(280px); }
  235. .mfb-component--bl.mfb-slidein .mfb-component__list li,
  236. .mfb-component--br.mfb-slidein .mfb-component__list li {
  237. opacity: 0;
  238. transition: all 0.5s; }
  239. .mfb-component--bl.mfb-slidein[data-mfb-toggle="hover"]:hover .mfb-component__list li, .mfb-component--bl.mfb-slidein[data-mfb-state="open"] .mfb-component__list li,
  240. .mfb-component--br.mfb-slidein[data-mfb-toggle="hover"]:hover .mfb-component__list li,
  241. .mfb-component--br.mfb-slidein[data-mfb-state="open"] .mfb-component__list li {
  242. opacity: 1; }
  243. .mfb-component--bl.mfb-slidein[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(1), .mfb-component--bl.mfb-slidein[data-mfb-state="open"] .mfb-component__list li:nth-child(1),
  244. .mfb-component--br.mfb-slidein[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(1),
  245. .mfb-component--br.mfb-slidein[data-mfb-state="open"] .mfb-component__list li:nth-child(1) {
  246. -webkit-transform: translateY(-70px);
  247. transform: translateY(-70px); }
  248. .mfb-component--bl.mfb-slidein[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(2), .mfb-component--bl.mfb-slidein[data-mfb-state="open"] .mfb-component__list li:nth-child(2),
  249. .mfb-component--br.mfb-slidein[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(2),
  250. .mfb-component--br.mfb-slidein[data-mfb-state="open"] .mfb-component__list li:nth-child(2) {
  251. -webkit-transform: translateY(-140px);
  252. transform: translateY(-140px); }
  253. .mfb-component--bl.mfb-slidein[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(3), .mfb-component--bl.mfb-slidein[data-mfb-state="open"] .mfb-component__list li:nth-child(3),
  254. .mfb-component--br.mfb-slidein[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(3),
  255. .mfb-component--br.mfb-slidein[data-mfb-state="open"] .mfb-component__list li:nth-child(3) {
  256. -webkit-transform: translateY(-210px);
  257. transform: translateY(-210px); }
  258. .mfb-component--bl.mfb-slidein[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(4), .mfb-component--bl.mfb-slidein[data-mfb-state="open"] .mfb-component__list li:nth-child(4),
  259. .mfb-component--br.mfb-slidein[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(4),
  260. .mfb-component--br.mfb-slidein[data-mfb-state="open"] .mfb-component__list li:nth-child(4) {
  261. -webkit-transform: translateY(-280px);
  262. transform: translateY(-280px); }
  263. /**
  264. * SLIDE IN SPRING
  265. * Same as slide-in but with a springy animation.
  266. *
  267. */
  268. .mfb-component--tl.mfb-slidein-spring .mfb-component__list li,
  269. .mfb-component--tr.mfb-slidein-spring .mfb-component__list li {
  270. opacity: 0;
  271. transition: all 0.5s;
  272. transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55); }
  273. .mfb-component--tl.mfb-slidein-spring .mfb-component__list li:nth-child(1),
  274. .mfb-component--tr.mfb-slidein-spring .mfb-component__list li:nth-child(1) {
  275. transition-delay: 0.05s; }
  276. .mfb-component--tl.mfb-slidein-spring .mfb-component__list li:nth-child(2),
  277. .mfb-component--tr.mfb-slidein-spring .mfb-component__list li:nth-child(2) {
  278. transition-delay: 0.1s; }
  279. .mfb-component--tl.mfb-slidein-spring .mfb-component__list li:nth-child(3),
  280. .mfb-component--tr.mfb-slidein-spring .mfb-component__list li:nth-child(3) {
  281. transition-delay: 0.15s; }
  282. .mfb-component--tl.mfb-slidein-spring .mfb-component__list li:nth-child(4),
  283. .mfb-component--tr.mfb-slidein-spring .mfb-component__list li:nth-child(4) {
  284. transition-delay: 0.2s; }
  285. .mfb-component--tl.mfb-slidein-spring[data-mfb-toggle="hover"]:hover .mfb-component__list li, .mfb-component--tl.mfb-slidein-spring[data-mfb-state="open"] .mfb-component__list li,
  286. .mfb-component--tr.mfb-slidein-spring[data-mfb-toggle="hover"]:hover .mfb-component__list li,
  287. .mfb-component--tr.mfb-slidein-spring[data-mfb-state="open"] .mfb-component__list li {
  288. opacity: 1; }
  289. .mfb-component--tl.mfb-slidein-spring[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(1), .mfb-component--tl.mfb-slidein-spring[data-mfb-state="open"] .mfb-component__list li:nth-child(1),
  290. .mfb-component--tr.mfb-slidein-spring[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(1),
  291. .mfb-component--tr.mfb-slidein-spring[data-mfb-state="open"] .mfb-component__list li:nth-child(1) {
  292. transition-delay: 0.05s;
  293. -webkit-transform: translateY(70px);
  294. transform: translateY(70px); }
  295. .mfb-component--tl.mfb-slidein-spring[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(2), .mfb-component--tl.mfb-slidein-spring[data-mfb-state="open"] .mfb-component__list li:nth-child(2),
  296. .mfb-component--tr.mfb-slidein-spring[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(2),
  297. .mfb-component--tr.mfb-slidein-spring[data-mfb-state="open"] .mfb-component__list li:nth-child(2) {
  298. transition-delay: 0.1s;
  299. -webkit-transform: translateY(140px);
  300. transform: translateY(140px); }
  301. .mfb-component--tl.mfb-slidein-spring[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(3), .mfb-component--tl.mfb-slidein-spring[data-mfb-state="open"] .mfb-component__list li:nth-child(3),
  302. .mfb-component--tr.mfb-slidein-spring[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(3),
  303. .mfb-component--tr.mfb-slidein-spring[data-mfb-state="open"] .mfb-component__list li:nth-child(3) {
  304. transition-delay: 0.15s;
  305. -webkit-transform: translateY(210px);
  306. transform: translateY(210px); }
  307. .mfb-component--tl.mfb-slidein-spring[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(4), .mfb-component--tl.mfb-slidein-spring[data-mfb-state="open"] .mfb-component__list li:nth-child(4),
  308. .mfb-component--tr.mfb-slidein-spring[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(4),
  309. .mfb-component--tr.mfb-slidein-spring[data-mfb-state="open"] .mfb-component__list li:nth-child(4) {
  310. transition-delay: 0.2s;
  311. -webkit-transform: translateY(280px);
  312. transform: translateY(280px); }
  313. .mfb-component--bl.mfb-slidein-spring .mfb-component__list li,
  314. .mfb-component--br.mfb-slidein-spring .mfb-component__list li {
  315. opacity: 0;
  316. transition: all 0.5s;
  317. transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55); }
  318. .mfb-component--bl.mfb-slidein-spring .mfb-component__list li:nth-child(1),
  319. .mfb-component--br.mfb-slidein-spring .mfb-component__list li:nth-child(1) {
  320. transition-delay: 0.05s; }
  321. .mfb-component--bl.mfb-slidein-spring .mfb-component__list li:nth-child(2),
  322. .mfb-component--br.mfb-slidein-spring .mfb-component__list li:nth-child(2) {
  323. transition-delay: 0.1s; }
  324. .mfb-component--bl.mfb-slidein-spring .mfb-component__list li:nth-child(3),
  325. .mfb-component--br.mfb-slidein-spring .mfb-component__list li:nth-child(3) {
  326. transition-delay: 0.15s; }
  327. .mfb-component--bl.mfb-slidein-spring .mfb-component__list li:nth-child(4),
  328. .mfb-component--br.mfb-slidein-spring .mfb-component__list li:nth-child(4) {
  329. transition-delay: 0.2s; }
  330. .mfb-component--bl.mfb-slidein-spring[data-mfb-toggle="hover"]:hover .mfb-component__list li, .mfb-component--bl.mfb-slidein-spring[data-mfb-state="open"] .mfb-component__list li,
  331. .mfb-component--br.mfb-slidein-spring[data-mfb-toggle="hover"]:hover .mfb-component__list li,
  332. .mfb-component--br.mfb-slidein-spring[data-mfb-state="open"] .mfb-component__list li {
  333. opacity: 1; }
  334. .mfb-component--bl.mfb-slidein-spring[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(1), .mfb-component--bl.mfb-slidein-spring[data-mfb-state="open"] .mfb-component__list li:nth-child(1),
  335. .mfb-component--br.mfb-slidein-spring[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(1),
  336. .mfb-component--br.mfb-slidein-spring[data-mfb-state="open"] .mfb-component__list li:nth-child(1) {
  337. transition-delay: 0.05s;
  338. -webkit-transform: translateY(-70px);
  339. transform: translateY(-70px); }
  340. .mfb-component--bl.mfb-slidein-spring[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(2), .mfb-component--bl.mfb-slidein-spring[data-mfb-state="open"] .mfb-component__list li:nth-child(2),
  341. .mfb-component--br.mfb-slidein-spring[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(2),
  342. .mfb-component--br.mfb-slidein-spring[data-mfb-state="open"] .mfb-component__list li:nth-child(2) {
  343. transition-delay: 0.1s;
  344. -webkit-transform: translateY(-140px);
  345. transform: translateY(-140px); }
  346. .mfb-component--bl.mfb-slidein-spring[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(3), .mfb-component--bl.mfb-slidein-spring[data-mfb-state="open"] .mfb-component__list li:nth-child(3),
  347. .mfb-component--br.mfb-slidein-spring[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(3),
  348. .mfb-component--br.mfb-slidein-spring[data-mfb-state="open"] .mfb-component__list li:nth-child(3) {
  349. transition-delay: 0.15s;
  350. -webkit-transform: translateY(-210px);
  351. transform: translateY(-210px); }
  352. .mfb-component--bl.mfb-slidein-spring[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(4), .mfb-component--bl.mfb-slidein-spring[data-mfb-state="open"] .mfb-component__list li:nth-child(4),
  353. .mfb-component--br.mfb-slidein-spring[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(4),
  354. .mfb-component--br.mfb-slidein-spring[data-mfb-state="open"] .mfb-component__list li:nth-child(4) {
  355. transition-delay: 0.2s;
  356. -webkit-transform: translateY(-280px);
  357. transform: translateY(-280px); }
  358. /**
  359. * ZOOM-IN
  360. * When hovering the main button, the child buttons grow
  361. * from zero to normal size.
  362. *
  363. */
  364. .mfb-component--tl.mfb-zoomin .mfb-component__list li,
  365. .mfb-component--tr.mfb-zoomin .mfb-component__list li {
  366. -webkit-transform: scale(0);
  367. transform: scale(0); }
  368. .mfb-component--tl.mfb-zoomin .mfb-component__list li:nth-child(1),
  369. .mfb-component--tr.mfb-zoomin .mfb-component__list li:nth-child(1) {
  370. -webkit-transform: translateY(70px) scale(0);
  371. transform: translateY(70px) scale(0);
  372. transition: all 0.5s;
  373. transition-delay: 0.15s; }
  374. .mfb-component--tl.mfb-zoomin .mfb-component__list li:nth-child(2),
  375. .mfb-component--tr.mfb-zoomin .mfb-component__list li:nth-child(2) {
  376. -webkit-transform: translateY(140px) scale(0);
  377. transform: translateY(140px) scale(0);
  378. transition: all 0.5s;
  379. transition-delay: 0.1s; }
  380. .mfb-component--tl.mfb-zoomin .mfb-component__list li:nth-child(3),
  381. .mfb-component--tr.mfb-zoomin .mfb-component__list li:nth-child(3) {
  382. -webkit-transform: translateY(210px) scale(0);
  383. transform: translateY(210px) scale(0);
  384. transition: all 0.5s;
  385. transition-delay: 0.05s; }
  386. .mfb-component--tl.mfb-zoomin .mfb-component__list li:nth-child(4),
  387. .mfb-component--tr.mfb-zoomin .mfb-component__list li:nth-child(4) {
  388. -webkit-transform: translateY(280px) scale(0);
  389. transform: translateY(280px) scale(0);
  390. transition: all 0.5s;
  391. transition-delay: 0s; }
  392. .mfb-component--tl.mfb-zoomin[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(1), .mfb-component--tl.mfb-zoomin[data-mfb-state="open"] .mfb-component__list li:nth-child(1),
  393. .mfb-component--tr.mfb-zoomin[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(1),
  394. .mfb-component--tr.mfb-zoomin[data-mfb-state="open"] .mfb-component__list li:nth-child(1) {
  395. -webkit-transform: translateY(70px) scale(1);
  396. transform: translateY(70px) scale(1);
  397. transition-delay: 0.05s; }
  398. .mfb-component--tl.mfb-zoomin[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(2), .mfb-component--tl.mfb-zoomin[data-mfb-state="open"] .mfb-component__list li:nth-child(2),
  399. .mfb-component--tr.mfb-zoomin[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(2),
  400. .mfb-component--tr.mfb-zoomin[data-mfb-state="open"] .mfb-component__list li:nth-child(2) {
  401. -webkit-transform: translateY(140px) scale(1);
  402. transform: translateY(140px) scale(1);
  403. transition-delay: 0.1s; }
  404. .mfb-component--tl.mfb-zoomin[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(3), .mfb-component--tl.mfb-zoomin[data-mfb-state="open"] .mfb-component__list li:nth-child(3),
  405. .mfb-component--tr.mfb-zoomin[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(3),
  406. .mfb-component--tr.mfb-zoomin[data-mfb-state="open"] .mfb-component__list li:nth-child(3) {
  407. -webkit-transform: translateY(210px) scale(1);
  408. transform: translateY(210px) scale(1);
  409. transition-delay: 0.15s; }
  410. .mfb-component--tl.mfb-zoomin[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(4), .mfb-component--tl.mfb-zoomin[data-mfb-state="open"] .mfb-component__list li:nth-child(4),
  411. .mfb-component--tr.mfb-zoomin[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(4),
  412. .mfb-component--tr.mfb-zoomin[data-mfb-state="open"] .mfb-component__list li:nth-child(4) {
  413. -webkit-transform: translateY(280px) scale(1);
  414. transform: translateY(280px) scale(1);
  415. transition-delay: 0.2s; }
  416. .mfb-component--bl.mfb-zoomin .mfb-component__list li,
  417. .mfb-component--br.mfb-zoomin .mfb-component__list li {
  418. -webkit-transform: scale(0);
  419. transform: scale(0); }
  420. .mfb-component--bl.mfb-zoomin .mfb-component__list li:nth-child(1),
  421. .mfb-component--br.mfb-zoomin .mfb-component__list li:nth-child(1) {
  422. -webkit-transform: translateY(-70px) scale(0);
  423. transform: translateY(-70px) scale(0);
  424. transition: all 0.5s;
  425. transition-delay: 0.15s; }
  426. .mfb-component--bl.mfb-zoomin .mfb-component__list li:nth-child(2),
  427. .mfb-component--br.mfb-zoomin .mfb-component__list li:nth-child(2) {
  428. -webkit-transform: translateY(-140px) scale(0);
  429. transform: translateY(-140px) scale(0);
  430. transition: all 0.5s;
  431. transition-delay: 0.1s; }
  432. .mfb-component--bl.mfb-zoomin .mfb-component__list li:nth-child(3),
  433. .mfb-component--br.mfb-zoomin .mfb-component__list li:nth-child(3) {
  434. -webkit-transform: translateY(-210px) scale(0);
  435. transform: translateY(-210px) scale(0);
  436. transition: all 0.5s;
  437. transition-delay: 0.05s; }
  438. .mfb-component--bl.mfb-zoomin .mfb-component__list li:nth-child(4),
  439. .mfb-component--br.mfb-zoomin .mfb-component__list li:nth-child(4) {
  440. -webkit-transform: translateY(-280px) scale(0);
  441. transform: translateY(-280px) scale(0);
  442. transition: all 0.5s;
  443. transition-delay: 0s; }
  444. .mfb-component--bl.mfb-zoomin[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(1), .mfb-component--bl.mfb-zoomin[data-mfb-state="open"] .mfb-component__list li:nth-child(1),
  445. .mfb-component--br.mfb-zoomin[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(1),
  446. .mfb-component--br.mfb-zoomin[data-mfb-state="open"] .mfb-component__list li:nth-child(1) {
  447. -webkit-transform: translateY(-70px) scale(1);
  448. transform: translateY(-70px) scale(1);
  449. transition-delay: 0.05s; }
  450. .mfb-component--bl.mfb-zoomin[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(2), .mfb-component--bl.mfb-zoomin[data-mfb-state="open"] .mfb-component__list li:nth-child(2),
  451. .mfb-component--br.mfb-zoomin[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(2),
  452. .mfb-component--br.mfb-zoomin[data-mfb-state="open"] .mfb-component__list li:nth-child(2) {
  453. -webkit-transform: translateY(-140px) scale(1);
  454. transform: translateY(-140px) scale(1);
  455. transition-delay: 0.1s; }
  456. .mfb-component--bl.mfb-zoomin[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(3), .mfb-component--bl.mfb-zoomin[data-mfb-state="open"] .mfb-component__list li:nth-child(3),
  457. .mfb-component--br.mfb-zoomin[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(3),
  458. .mfb-component--br.mfb-zoomin[data-mfb-state="open"] .mfb-component__list li:nth-child(3) {
  459. -webkit-transform: translateY(-210px) scale(1);
  460. transform: translateY(-210px) scale(1);
  461. transition-delay: 0.15s; }
  462. .mfb-component--bl.mfb-zoomin[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(4), .mfb-component--bl.mfb-zoomin[data-mfb-state="open"] .mfb-component__list li:nth-child(4),
  463. .mfb-component--br.mfb-zoomin[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(4),
  464. .mfb-component--br.mfb-zoomin[data-mfb-state="open"] .mfb-component__list li:nth-child(4) {
  465. -webkit-transform: translateY(-280px) scale(1);
  466. transform: translateY(-280px) scale(1);
  467. transition-delay: 0.2s; }
  468. /**
  469. * FOUNTAIN
  470. * When hovering the main button the child buttons
  471. * jump into view from outside the viewport
  472. */
  473. .mfb-component--tl.mfb-fountain .mfb-component__list li,
  474. .mfb-component--tr.mfb-fountain .mfb-component__list li {
  475. -webkit-transform: scale(0);
  476. transform: scale(0); }
  477. .mfb-component--tl.mfb-fountain .mfb-component__list li:nth-child(1),
  478. .mfb-component--tr.mfb-fountain .mfb-component__list li:nth-child(1) {
  479. -webkit-transform: translateY(-70px) scale(0);
  480. transform: translateY(-70px) scale(0);
  481. transition: all 0.5s;
  482. transition-delay: 0.15s; }
  483. .mfb-component--tl.mfb-fountain .mfb-component__list li:nth-child(2),
  484. .mfb-component--tr.mfb-fountain .mfb-component__list li:nth-child(2) {
  485. -webkit-transform: translateY(-140px) scale(0);
  486. transform: translateY(-140px) scale(0);
  487. transition: all 0.5s;
  488. transition-delay: 0.1s; }
  489. .mfb-component--tl.mfb-fountain .mfb-component__list li:nth-child(3),
  490. .mfb-component--tr.mfb-fountain .mfb-component__list li:nth-child(3) {
  491. -webkit-transform: translateY(-210px) scale(0);
  492. transform: translateY(-210px) scale(0);
  493. transition: all 0.5s;
  494. transition-delay: 0.05s; }
  495. .mfb-component--tl.mfb-fountain .mfb-component__list li:nth-child(4),
  496. .mfb-component--tr.mfb-fountain .mfb-component__list li:nth-child(4) {
  497. -webkit-transform: translateY(-280px) scale(0);
  498. transform: translateY(-280px) scale(0);
  499. transition: all 0.5s;
  500. transition-delay: 0s; }
  501. .mfb-component--tl.mfb-fountain[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(1), .mfb-component--tl.mfb-fountain[data-mfb-state="open"] .mfb-component__list li:nth-child(1),
  502. .mfb-component--tr.mfb-fountain[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(1),
  503. .mfb-component--tr.mfb-fountain[data-mfb-state="open"] .mfb-component__list li:nth-child(1) {
  504. -webkit-transform: translateY(70px) scale(1);
  505. transform: translateY(70px) scale(1);
  506. transition-delay: 0.05s; }
  507. .mfb-component--tl.mfb-fountain[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(2), .mfb-component--tl.mfb-fountain[data-mfb-state="open"] .mfb-component__list li:nth-child(2),
  508. .mfb-component--tr.mfb-fountain[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(2),
  509. .mfb-component--tr.mfb-fountain[data-mfb-state="open"] .mfb-component__list li:nth-child(2) {
  510. -webkit-transform: translateY(140px) scale(1);
  511. transform: translateY(140px) scale(1);
  512. transition-delay: 0.1s; }
  513. .mfb-component--tl.mfb-fountain[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(3), .mfb-component--tl.mfb-fountain[data-mfb-state="open"] .mfb-component__list li:nth-child(3),
  514. .mfb-component--tr.mfb-fountain[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(3),
  515. .mfb-component--tr.mfb-fountain[data-mfb-state="open"] .mfb-component__list li:nth-child(3) {
  516. -webkit-transform: translateY(210px) scale(1);
  517. transform: translateY(210px) scale(1);
  518. transition-delay: 0.15s; }
  519. .mfb-component--tl.mfb-fountain[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(4), .mfb-component--tl.mfb-fountain[data-mfb-state="open"] .mfb-component__list li:nth-child(4),
  520. .mfb-component--tr.mfb-fountain[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(4),
  521. .mfb-component--tr.mfb-fountain[data-mfb-state="open"] .mfb-component__list li:nth-child(4) {
  522. -webkit-transform: translateY(280px) scale(1);
  523. transform: translateY(280px) scale(1);
  524. transition-delay: 0.2s; }
  525. .mfb-component--bl.mfb-fountain .mfb-component__list li,
  526. .mfb-component--br.mfb-fountain .mfb-component__list li {
  527. -webkit-transform: scale(0);
  528. transform: scale(0); }
  529. .mfb-component--bl.mfb-fountain .mfb-component__list li:nth-child(1),
  530. .mfb-component--br.mfb-fountain .mfb-component__list li:nth-child(1) {
  531. -webkit-transform: translateY(70px) scale(0);
  532. transform: translateY(70px) scale(0);
  533. transition: all 0.5s;
  534. transition-delay: 0.15s; }
  535. .mfb-component--bl.mfb-fountain .mfb-component__list li:nth-child(2),
  536. .mfb-component--br.mfb-fountain .mfb-component__list li:nth-child(2) {
  537. -webkit-transform: translateY(140px) scale(0);
  538. transform: translateY(140px) scale(0);
  539. transition: all 0.5s;
  540. transition-delay: 0.1s; }
  541. .mfb-component--bl.mfb-fountain .mfb-component__list li:nth-child(3),
  542. .mfb-component--br.mfb-fountain .mfb-component__list li:nth-child(3) {
  543. -webkit-transform: translateY(210px) scale(0);
  544. transform: translateY(210px) scale(0);
  545. transition: all 0.5s;
  546. transition-delay: 0.05s; }
  547. .mfb-component--bl.mfb-fountain .mfb-component__list li:nth-child(4),
  548. .mfb-component--br.mfb-fountain .mfb-component__list li:nth-child(4) {
  549. -webkit-transform: translateY(280px) scale(0);
  550. transform: translateY(280px) scale(0);
  551. transition: all 0.5s;
  552. transition-delay: 0s; }
  553. .mfb-component--bl.mfb-fountain[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(1), .mfb-component--bl.mfb-fountain[data-mfb-state="open"] .mfb-component__list li:nth-child(1),
  554. .mfb-component--br.mfb-fountain[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(1),
  555. .mfb-component--br.mfb-fountain[data-mfb-state="open"] .mfb-component__list li:nth-child(1) {
  556. -webkit-transform: translateY(-70px) scale(1);
  557. transform: translateY(-70px) scale(1);
  558. transition-delay: 0.05s; }
  559. .mfb-component--bl.mfb-fountain[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(2), .mfb-component--bl.mfb-fountain[data-mfb-state="open"] .mfb-component__list li:nth-child(2),
  560. .mfb-component--br.mfb-fountain[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(2),
  561. .mfb-component--br.mfb-fountain[data-mfb-state="open"] .mfb-component__list li:nth-child(2) {
  562. -webkit-transform: translateY(-140px) scale(1);
  563. transform: translateY(-140px) scale(1);
  564. transition-delay: 0.1s; }
  565. .mfb-component--bl.mfb-fountain[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(3), .mfb-component--bl.mfb-fountain[data-mfb-state="open"] .mfb-component__list li:nth-child(3),
  566. .mfb-component--br.mfb-fountain[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(3),
  567. .mfb-component--br.mfb-fountain[data-mfb-state="open"] .mfb-component__list li:nth-child(3) {
  568. -webkit-transform: translateY(-210px) scale(1);
  569. transform: translateY(-210px) scale(1);
  570. transition-delay: 0.15s; }
  571. .mfb-component--bl.mfb-fountain[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(4), .mfb-component--bl.mfb-fountain[data-mfb-state="open"] .mfb-component__list li:nth-child(4),
  572. .mfb-component--br.mfb-fountain[data-mfb-toggle="hover"]:hover .mfb-component__list li:nth-child(4),
  573. .mfb-component--br.mfb-fountain[data-mfb-state="open"] .mfb-component__list li:nth-child(4) {
  574. -webkit-transform: translateY(-280px) scale(1);
  575. transform: translateY(-280px) scale(1);
  576. transition-delay: 0.2s; }
  577. /*------------------------------------*\
  578. #LABELS | base
  579. \*------------------------------------*/
  580. /**
  581. * These are the labels associated to each button,
  582. * exposed only when hovering the related button.
  583. * They are called labels but are in fact data-attributes of
  584. * each button (an anchor tag).
  585. */
  586. [data-mfb-label]:after {
  587. content: attr(data-mfb-label);
  588. opacity: 0;
  589. transition: all 0.5s;
  590. background: rgba(0, 0, 0, 0.4);
  591. padding: 4px 10px;
  592. border-radius: 3px;
  593. color: rgba(255, 255, 255, 0.8);
  594. font-size: 14px;
  595. font-weight: normal;
  596. pointer-events: none;
  597. line-height: normal;
  598. position: absolute;
  599. top: 50%;
  600. margin-top: -11px;
  601. transition: all 0.5s; }
  602. [data-mfb-toggle="hover"] [data-mfb-label]:hover:after,
  603. [data-mfb-state="open"] [data-mfb-label]:after {
  604. content: attr(data-mfb-label);
  605. opacity: 1;
  606. transition: all 0.3s; }
  607. /*------------------------------------*\
  608. #LABELS | Modifiers
  609. \*------------------------------------*/
  610. .mfb-component--br [data-mfb-label]:after, .mfb-component--tr [data-mfb-label]:after {
  611. content: attr(data-mfb-label);
  612. right: 70px; }
  613. .mfb-component--br .mfb-component__list [data-mfb-label]:after, .mfb-component--tr .mfb-component__list [data-mfb-label]:after {
  614. content: attr(data-mfb-label);
  615. right: 70px; }
  616. .mfb-component--tl [data-mfb-label]:after, .mfb-component--bl [data-mfb-label]:after {
  617. content: attr(data-mfb-label);
  618. left: 70px; }
  619. .mfb-component--tl .mfb-component__list [data-mfb-label]:after, .mfb-component--bl .mfb-component__list [data-mfb-label]:after {
  620. content: attr(data-mfb-label);
  621. left: 70px; }
  622. /*------------------------------------*\
  623. #DEVELOPMENT | In development
  624. \*------------------------------------*/
  625. /**
  626. * This part is where unfinished code should stay.
  627. * When a feature is ready(sh) move these styles to their proper place.
  628. */
  629. /*------------------------------------*\
  630. #DEVELOPMENT | Debuggers
  631. \*------------------------------------*/
  632. /**
  633. * These are mainly helpers for development. They do not have to end up
  634. * in production but it's handy to keep them when developing.
  635. */
  636. /**
  637. * Apply this class to the html tag when developing the slide-in button
  638. */
  639. /*# sourceMappingURL=mfb.css.map */