# Primer Tooltips [![npm version](https://img.shields.io/npm/v/primer-tooltips.svg)](https://www.npmjs.org/package/primer-tooltips) [![Build Status](https://travis-ci.org/primer/primer.svg?branch=master)](https://travis-ci.org/primer/primer) > Add tooltips built entirely in CSS to nearly any element. Just add a few classes and an aria-label attribute. This repository is a module of the full [primer][primer] repository. ## Install This repository is distributed with [npm][npm]. After [installing npm][install-npm], you can install `primer-tooltips` with this command. ``` $ npm install --save primer-tooltips ``` ## Usage The source files included are written in [Sass][sass] (`scss`) You can simply point your sass `include-path` at your `node_modules` directory and import it like this. ```scss @import "primer-tooltips/index.scss"; ``` You can also import specific portions of the module by importing those partials from the `/lib/` folder. _Make sure you import any requirements along with the modules._ ## Build For a compiled **css** version of this module, a npm script is included that will output a css version to `build/build.css` The built css file is also included in the npm package. ``` $ npm run build ``` ## Documentation Add tooltips built entirely in CSS to nearly any element. {:toc} ## Implementation and accessibility **Attention**: we use `aria-label` for tooltips instead of something like `data-tooltip` because it is crucial that the tooltip content is available for screen reader users as well. However, `aria-label` **replaces** the text content of an element for screen reader users, so only use tooltip if there is no better way to present the information, or consider using `title` for supplement information. **Note:** Tooltip classes will conflict with Octicon styles, and as such, must be applied to the parent element instead of the icon. ## Tooltip direction Specify the direction of a tooltip with north, south, east, and west directions: - `.tooltipped-n` - `.tooltipped-ne` - `.tooltipped-e` - `.tooltipped-se` - `.tooltipped-s` - `.tooltipped-sw` - `.tooltipped-w` - `.tooltipped-nw` ```html Tooltip North Tooltip North East Tooltip East Tooltip South East Tooltip South Tooltip South West Tooltip West Tooltip North West ``` ## Tooltip alignment Align tooltips to the left or right of an element, combined with a directional class to specify north or south. ```html Tooltip North East align left 1 Tooltip North East align left 2 Tooltip South East align left 1 Tooltip South East align left 2 Tooltip North West align right 1 Tooltip North West align right 2 Tooltip South West align right 1 Tooltip South West align right 2 ``` ## Tooltips with multiple lines Use `.tooltipped-multiline` when you have long content. This style has some limitations: you cannot pre-format the text with newlines, and tooltips are limited to a max-width of `250px`. ```html Tooltip with multiple lines ``` ## Tooltips No Delay By default the tooltips have a slight delay before appearing. This is to keep multiple tooltips in the UI from being distracting. There is a modifier class you can use to override this. `.tooltipped-no-delay` ```html Tooltip no delay ``` ## License [MIT](./LICENSE) © [GitHub](https://github.com/) [primer]: https://github.com/primer/primer [docs]: http://primer.github.io/ [npm]: https://www.npmjs.com/ [install-npm]: https://docs.npmjs.com/getting-started/installing-node [sass]: http://sass-lang.com/