hint.css 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647
  1. /*! Hint.css - v2.5.0 - 2017-04-23
  2. * http://kushagragour.in/lab/hint/
  3. * Copyright (c) 2017 Kushagra Gour */
  4. /*-------------------------------------* HINT.css - A CSS tooltip library
  5. \*-------------------------------------*/
  6. /**
  7. * HINT.css is a tooltip library made in pure CSS.
  8. *
  9. * Source: https://github.com/chinchang/hint.css
  10. * Demo: http://kushagragour.in/lab/hint/
  11. *
  12. */
  13. /**
  14. * source: hint-core.scss
  15. *
  16. * Defines the basic styling for the tooltip.
  17. * Each tooltip is made of 2 parts:
  18. * 1) body (:after)
  19. * 2) arrow (:before)
  20. *
  21. * Classes added:
  22. * 1) hint
  23. */
  24. [class*="hint--"] {
  25. position: relative;
  26. display: inline-block;
  27. /**
  28. * tooltip arrow
  29. */
  30. /**
  31. * tooltip body
  32. */ }
  33. [class*="hint--"]:before, [class*="hint--"]:after {
  34. position: absolute;
  35. -webkit-transform: translate3d(0, 0, 0);
  36. -moz-transform: translate3d(0, 0, 0);
  37. transform: translate3d(0, 0, 0);
  38. visibility: hidden;
  39. opacity: 0;
  40. z-index: 1000000;
  41. pointer-events: none;
  42. -webkit-transition: 0.3s ease;
  43. -moz-transition: 0.3s ease;
  44. transition: 0.3s ease;
  45. -webkit-transition-delay: 0ms;
  46. -moz-transition-delay: 0ms;
  47. transition-delay: 0ms; }
  48. [class*="hint--"]:hover:before, [class*="hint--"]:hover:after {
  49. visibility: visible;
  50. opacity: 1; }
  51. [class*="hint--"]:hover:before, [class*="hint--"]:hover:after {
  52. -webkit-transition-delay: 100ms;
  53. -moz-transition-delay: 100ms;
  54. transition-delay: 100ms; }
  55. [class*="hint--"]:before {
  56. content: '';
  57. position: absolute;
  58. background: transparent;
  59. border: 6px solid transparent;
  60. z-index: 1000001; }
  61. [class*="hint--"]:after {
  62. background: #383838;
  63. color: white;
  64. padding: 8px 10px;
  65. font-size: 12px;
  66. font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  67. line-height: 12px;
  68. white-space: nowrap; }
  69. [class*="hint--"][aria-label]:after {
  70. content: attr(aria-label); }
  71. [class*="hint--"][data-hint]:after {
  72. content: attr(data-hint); }
  73. [aria-label='']:before, [aria-label='']:after,
  74. [data-hint='']:before,
  75. [data-hint='']:after {
  76. display: none !important; }
  77. /**
  78. * source: hint-position.scss
  79. *
  80. * Defines the positoning logic for the tooltips.
  81. *
  82. * Classes added:
  83. * 1) hint--top
  84. * 2) hint--bottom
  85. * 3) hint--left
  86. * 4) hint--right
  87. */
  88. /**
  89. * set default color for tooltip arrows
  90. */
  91. .hint--top-left:before {
  92. border-top-color: #383838; }
  93. .hint--top-right:before {
  94. border-top-color: #383838; }
  95. .hint--top:before {
  96. border-top-color: #383838; }
  97. .hint--bottom-left:before {
  98. border-bottom-color: #383838; }
  99. .hint--bottom-right:before {
  100. border-bottom-color: #383838; }
  101. .hint--bottom:before {
  102. border-bottom-color: #383838; }
  103. .hint--left:before {
  104. border-left-color: #383838; }
  105. .hint--right:before {
  106. border-right-color: #383838; }
  107. /**
  108. * top tooltip
  109. */
  110. .hint--top:before {
  111. margin-bottom: -11px; }
  112. .hint--top:before, .hint--top:after {
  113. bottom: 100%;
  114. left: 50%; }
  115. .hint--top:before {
  116. left: calc(50% - 6px); }
  117. .hint--top:after {
  118. -webkit-transform: translateX(-50%);
  119. -moz-transform: translateX(-50%);
  120. transform: translateX(-50%); }
  121. .hint--top:hover:before {
  122. -webkit-transform: translateY(-8px);
  123. -moz-transform: translateY(-8px);
  124. transform: translateY(-8px); }
  125. .hint--top:hover:after {
  126. -webkit-transform: translateX(-50%) translateY(-8px);
  127. -moz-transform: translateX(-50%) translateY(-8px);
  128. transform: translateX(-50%) translateY(-8px); }
  129. /**
  130. * bottom tooltip
  131. */
  132. .hint--bottom:before {
  133. margin-top: -11px; }
  134. .hint--bottom:before, .hint--bottom:after {
  135. top: 100%;
  136. left: 50%; }
  137. .hint--bottom:before {
  138. left: calc(50% - 6px); }
  139. .hint--bottom:after {
  140. -webkit-transform: translateX(-50%);
  141. -moz-transform: translateX(-50%);
  142. transform: translateX(-50%); }
  143. .hint--bottom:hover:before {
  144. -webkit-transform: translateY(8px);
  145. -moz-transform: translateY(8px);
  146. transform: translateY(8px); }
  147. .hint--bottom:hover:after {
  148. -webkit-transform: translateX(-50%) translateY(8px);
  149. -moz-transform: translateX(-50%) translateY(8px);
  150. transform: translateX(-50%) translateY(8px); }
  151. /**
  152. * right tooltip
  153. */
  154. .hint--right:before {
  155. margin-left: -11px;
  156. margin-bottom: -6px; }
  157. .hint--right:after {
  158. margin-bottom: -14px; }
  159. .hint--right:before, .hint--right:after {
  160. left: 100%;
  161. bottom: 50%; }
  162. .hint--right:hover:before {
  163. -webkit-transform: translateX(8px);
  164. -moz-transform: translateX(8px);
  165. transform: translateX(8px); }
  166. .hint--right:hover:after {
  167. -webkit-transform: translateX(8px);
  168. -moz-transform: translateX(8px);
  169. transform: translateX(8px); }
  170. /**
  171. * left tooltip
  172. */
  173. .hint--left:before {
  174. margin-right: -11px;
  175. margin-bottom: -6px; }
  176. .hint--left:after {
  177. margin-bottom: -14px; }
  178. .hint--left:before, .hint--left:after {
  179. right: 100%;
  180. bottom: 50%; }
  181. .hint--left:hover:before {
  182. -webkit-transform: translateX(-8px);
  183. -moz-transform: translateX(-8px);
  184. transform: translateX(-8px); }
  185. .hint--left:hover:after {
  186. -webkit-transform: translateX(-8px);
  187. -moz-transform: translateX(-8px);
  188. transform: translateX(-8px); }
  189. /**
  190. * top-left tooltip
  191. */
  192. .hint--top-left:before {
  193. margin-bottom: -11px; }
  194. .hint--top-left:before, .hint--top-left:after {
  195. bottom: 100%;
  196. left: 50%; }
  197. .hint--top-left:before {
  198. left: calc(50% - 6px); }
  199. .hint--top-left:after {
  200. -webkit-transform: translateX(-100%);
  201. -moz-transform: translateX(-100%);
  202. transform: translateX(-100%); }
  203. .hint--top-left:after {
  204. margin-left: 12px; }
  205. .hint--top-left:hover:before {
  206. -webkit-transform: translateY(-8px);
  207. -moz-transform: translateY(-8px);
  208. transform: translateY(-8px); }
  209. .hint--top-left:hover:after {
  210. -webkit-transform: translateX(-100%) translateY(-8px);
  211. -moz-transform: translateX(-100%) translateY(-8px);
  212. transform: translateX(-100%) translateY(-8px); }
  213. /**
  214. * top-right tooltip
  215. */
  216. .hint--top-right:before {
  217. margin-bottom: -11px; }
  218. .hint--top-right:before, .hint--top-right:after {
  219. bottom: 100%;
  220. left: 50%; }
  221. .hint--top-right:before {
  222. left: calc(50% - 6px); }
  223. .hint--top-right:after {
  224. -webkit-transform: translateX(0);
  225. -moz-transform: translateX(0);
  226. transform: translateX(0); }
  227. .hint--top-right:after {
  228. margin-left: -12px; }
  229. .hint--top-right:hover:before {
  230. -webkit-transform: translateY(-8px);
  231. -moz-transform: translateY(-8px);
  232. transform: translateY(-8px); }
  233. .hint--top-right:hover:after {
  234. -webkit-transform: translateY(-8px);
  235. -moz-transform: translateY(-8px);
  236. transform: translateY(-8px); }
  237. /**
  238. * bottom-left tooltip
  239. */
  240. .hint--bottom-left:before {
  241. margin-top: -11px; }
  242. .hint--bottom-left:before, .hint--bottom-left:after {
  243. top: 100%;
  244. left: 50%; }
  245. .hint--bottom-left:before {
  246. left: calc(50% - 6px); }
  247. .hint--bottom-left:after {
  248. -webkit-transform: translateX(-100%);
  249. -moz-transform: translateX(-100%);
  250. transform: translateX(-100%); }
  251. .hint--bottom-left:after {
  252. margin-left: 12px; }
  253. .hint--bottom-left:hover:before {
  254. -webkit-transform: translateY(8px);
  255. -moz-transform: translateY(8px);
  256. transform: translateY(8px); }
  257. .hint--bottom-left:hover:after {
  258. -webkit-transform: translateX(-100%) translateY(8px);
  259. -moz-transform: translateX(-100%) translateY(8px);
  260. transform: translateX(-100%) translateY(8px); }
  261. /**
  262. * bottom-right tooltip
  263. */
  264. .hint--bottom-right:before {
  265. margin-top: -11px; }
  266. .hint--bottom-right:before, .hint--bottom-right:after {
  267. top: 100%;
  268. left: 50%; }
  269. .hint--bottom-right:before {
  270. left: calc(50% - 6px); }
  271. .hint--bottom-right:after {
  272. -webkit-transform: translateX(0);
  273. -moz-transform: translateX(0);
  274. transform: translateX(0); }
  275. .hint--bottom-right:after {
  276. margin-left: -12px; }
  277. .hint--bottom-right:hover:before {
  278. -webkit-transform: translateY(8px);
  279. -moz-transform: translateY(8px);
  280. transform: translateY(8px); }
  281. .hint--bottom-right:hover:after {
  282. -webkit-transform: translateY(8px);
  283. -moz-transform: translateY(8px);
  284. transform: translateY(8px); }
  285. /**
  286. * source: hint-sizes.scss
  287. *
  288. * Defines width restricted tooltips that can span
  289. * across multiple lines.
  290. *
  291. * Classes added:
  292. * 1) hint--small
  293. * 2) hint--medium
  294. * 3) hint--large
  295. *
  296. */
  297. .hint--small:after,
  298. .hint--medium:after,
  299. .hint--large:after {
  300. white-space: normal;
  301. line-height: 1.4em;
  302. word-wrap: break-word; }
  303. .hint--small:after {
  304. width: 80px; }
  305. .hint--medium:after {
  306. width: 150px; }
  307. .hint--large:after {
  308. width: 300px; }
  309. /**
  310. * source: hint-theme.scss
  311. *
  312. * Defines basic theme for tooltips.
  313. *
  314. */
  315. [class*="hint--"] {
  316. /**
  317. * tooltip body
  318. */ }
  319. [class*="hint--"]:after {
  320. text-shadow: 0 -1px 0px black;
  321. box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.3); }
  322. /**
  323. * source: hint-color-types.scss
  324. *
  325. * Contains tooltips of various types based on color differences.
  326. *
  327. * Classes added:
  328. * 1) hint--error
  329. * 2) hint--warning
  330. * 3) hint--info
  331. * 4) hint--success
  332. *
  333. */
  334. /**
  335. * Error
  336. */
  337. .hint--error:after {
  338. background-color: #b34e4d;
  339. text-shadow: 0 -1px 0px #592726; }
  340. .hint--error.hint--top-left:before {
  341. border-top-color: #b34e4d; }
  342. .hint--error.hint--top-right:before {
  343. border-top-color: #b34e4d; }
  344. .hint--error.hint--top:before {
  345. border-top-color: #b34e4d; }
  346. .hint--error.hint--bottom-left:before {
  347. border-bottom-color: #b34e4d; }
  348. .hint--error.hint--bottom-right:before {
  349. border-bottom-color: #b34e4d; }
  350. .hint--error.hint--bottom:before {
  351. border-bottom-color: #b34e4d; }
  352. .hint--error.hint--left:before {
  353. border-left-color: #b34e4d; }
  354. .hint--error.hint--right:before {
  355. border-right-color: #b34e4d; }
  356. /**
  357. * Warning
  358. */
  359. .hint--warning:after {
  360. background-color: #c09854;
  361. text-shadow: 0 -1px 0px #6c5328; }
  362. .hint--warning.hint--top-left:before {
  363. border-top-color: #c09854; }
  364. .hint--warning.hint--top-right:before {
  365. border-top-color: #c09854; }
  366. .hint--warning.hint--top:before {
  367. border-top-color: #c09854; }
  368. .hint--warning.hint--bottom-left:before {
  369. border-bottom-color: #c09854; }
  370. .hint--warning.hint--bottom-right:before {
  371. border-bottom-color: #c09854; }
  372. .hint--warning.hint--bottom:before {
  373. border-bottom-color: #c09854; }
  374. .hint--warning.hint--left:before {
  375. border-left-color: #c09854; }
  376. .hint--warning.hint--right:before {
  377. border-right-color: #c09854; }
  378. /**
  379. * Info
  380. */
  381. .hint--info:after {
  382. background-color: #3986ac;
  383. text-shadow: 0 -1px 0px #1a3c4d; }
  384. .hint--info.hint--top-left:before {
  385. border-top-color: #3986ac; }
  386. .hint--info.hint--top-right:before {
  387. border-top-color: #3986ac; }
  388. .hint--info.hint--top:before {
  389. border-top-color: #3986ac; }
  390. .hint--info.hint--bottom-left:before {
  391. border-bottom-color: #3986ac; }
  392. .hint--info.hint--bottom-right:before {
  393. border-bottom-color: #3986ac; }
  394. .hint--info.hint--bottom:before {
  395. border-bottom-color: #3986ac; }
  396. .hint--info.hint--left:before {
  397. border-left-color: #3986ac; }
  398. .hint--info.hint--right:before {
  399. border-right-color: #3986ac; }
  400. /**
  401. * Success
  402. */
  403. .hint--success:after {
  404. background-color: #458746;
  405. text-shadow: 0 -1px 0px #1a321a; }
  406. .hint--success.hint--top-left:before {
  407. border-top-color: #458746; }
  408. .hint--success.hint--top-right:before {
  409. border-top-color: #458746; }
  410. .hint--success.hint--top:before {
  411. border-top-color: #458746; }
  412. .hint--success.hint--bottom-left:before {
  413. border-bottom-color: #458746; }
  414. .hint--success.hint--bottom-right:before {
  415. border-bottom-color: #458746; }
  416. .hint--success.hint--bottom:before {
  417. border-bottom-color: #458746; }
  418. .hint--success.hint--left:before {
  419. border-left-color: #458746; }
  420. .hint--success.hint--right:before {
  421. border-right-color: #458746; }
  422. /**
  423. * source: hint-always.scss
  424. *
  425. * Defines a persisted tooltip which shows always.
  426. *
  427. * Classes added:
  428. * 1) hint--always
  429. *
  430. */
  431. .hint--always:after, .hint--always:before {
  432. opacity: 1;
  433. visibility: visible; }
  434. .hint--always.hint--top:before {
  435. -webkit-transform: translateY(-8px);
  436. -moz-transform: translateY(-8px);
  437. transform: translateY(-8px); }
  438. .hint--always.hint--top:after {
  439. -webkit-transform: translateX(-50%) translateY(-8px);
  440. -moz-transform: translateX(-50%) translateY(-8px);
  441. transform: translateX(-50%) translateY(-8px); }
  442. .hint--always.hint--top-left:before {
  443. -webkit-transform: translateY(-8px);
  444. -moz-transform: translateY(-8px);
  445. transform: translateY(-8px); }
  446. .hint--always.hint--top-left:after {
  447. -webkit-transform: translateX(-100%) translateY(-8px);
  448. -moz-transform: translateX(-100%) translateY(-8px);
  449. transform: translateX(-100%) translateY(-8px); }
  450. .hint--always.hint--top-right:before {
  451. -webkit-transform: translateY(-8px);
  452. -moz-transform: translateY(-8px);
  453. transform: translateY(-8px); }
  454. .hint--always.hint--top-right:after {
  455. -webkit-transform: translateY(-8px);
  456. -moz-transform: translateY(-8px);
  457. transform: translateY(-8px); }
  458. .hint--always.hint--bottom:before {
  459. -webkit-transform: translateY(8px);
  460. -moz-transform: translateY(8px);
  461. transform: translateY(8px); }
  462. .hint--always.hint--bottom:after {
  463. -webkit-transform: translateX(-50%) translateY(8px);
  464. -moz-transform: translateX(-50%) translateY(8px);
  465. transform: translateX(-50%) translateY(8px); }
  466. .hint--always.hint--bottom-left:before {
  467. -webkit-transform: translateY(8px);
  468. -moz-transform: translateY(8px);
  469. transform: translateY(8px); }
  470. .hint--always.hint--bottom-left:after {
  471. -webkit-transform: translateX(-100%) translateY(8px);
  472. -moz-transform: translateX(-100%) translateY(8px);
  473. transform: translateX(-100%) translateY(8px); }
  474. .hint--always.hint--bottom-right:before {
  475. -webkit-transform: translateY(8px);
  476. -moz-transform: translateY(8px);
  477. transform: translateY(8px); }
  478. .hint--always.hint--bottom-right:after {
  479. -webkit-transform: translateY(8px);
  480. -moz-transform: translateY(8px);
  481. transform: translateY(8px); }
  482. .hint--always.hint--left:before {
  483. -webkit-transform: translateX(-8px);
  484. -moz-transform: translateX(-8px);
  485. transform: translateX(-8px); }
  486. .hint--always.hint--left:after {
  487. -webkit-transform: translateX(-8px);
  488. -moz-transform: translateX(-8px);
  489. transform: translateX(-8px); }
  490. .hint--always.hint--right:before {
  491. -webkit-transform: translateX(8px);
  492. -moz-transform: translateX(8px);
  493. transform: translateX(8px); }
  494. .hint--always.hint--right:after {
  495. -webkit-transform: translateX(8px);
  496. -moz-transform: translateX(8px);
  497. transform: translateX(8px); }
  498. /**
  499. * source: hint-rounded.scss
  500. *
  501. * Defines rounded corner tooltips.
  502. *
  503. * Classes added:
  504. * 1) hint--rounded
  505. *
  506. */
  507. .hint--rounded:after {
  508. border-radius: 4px; }
  509. /**
  510. * source: hint-effects.scss
  511. *
  512. * Defines various transition effects for the tooltips.
  513. *
  514. * Classes added:
  515. * 1) hint--no-animate
  516. * 2) hint--bounce
  517. *
  518. */
  519. .hint--no-animate:before, .hint--no-animate:after {
  520. -webkit-transition-duration: 0ms;
  521. -moz-transition-duration: 0ms;
  522. transition-duration: 0ms; }
  523. .hint--bounce:before, .hint--bounce:after {
  524. -webkit-transition: opacity 0.3s ease, visibility 0.3s ease, -webkit-transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
  525. -moz-transition: opacity 0.3s ease, visibility 0.3s ease, -moz-transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
  526. transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24); }