Giter VIP home page Giter VIP logo

elm-primer-tooltips's Introduction

Elm friendly Primer CSS Tooltips

Build Status

Add tooltips built entirely in CSS to nearly any element. Just add a few classes and an aria-label attribute.

This repository is a port of primer-tooltip to expose the CSS selectors as an Elm union type. This port may be useful if you have some sort of tool that takes advantage of the Elm AST to generate optimized CSS selectors.

Install

This repository is distributed with Git and elm-package. Install the elm bindings with this command.

$ elm package install elm-primer-tooltips

Usage

The source files included are written in Sass (scss) You can simply point your sass include-path at your elm-stuff/packages/ThinkAlexandria/ directory and import it like this.

@import "elm-primer-tooltips/1.0.0/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

Documentation

Add tooltips built entirely in CSS to nearly any element. Just add a few classes and an aria-label attribute.

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.

In addition, you'll want to specify a direction:

  • .ToolTippedN
  • .ToolTippedNE
  • .ToolTippedE
  • .ToolTippedSE
  • .ToolTippedS
  • .ToolTippedSW
  • .ToolTippedW
  • .ToolTippedNW

Tooltip classes will conflict with Octicon classes, and as such, must go on a parent element instead of the icon.

<span class="ToolTipped ToolTippedN border p-2 mb-2 mr-2 float-left" aria-label="This is the tooltip on the North side.">
  Tooltip North
</span>
<span class="ToolTipped ToolTippedNE border p-2 mb-2 mr-2 float-left" aria-label="This is the tooltip on the North East side.">
  Tooltip North East
</span>
<span class="ToolTipped ToolTippedE border p-2 mb-2 mr-2 float-left" aria-label="This is the tooltip on the East side.">
  Tooltip East
</span>
<span class="ToolTipped ToolTippedSE border p-2 mb-2 mr-2 float-left" aria-label="This is the tooltip on the South East side.">
  Tooltip South East
</span>
<span class="ToolTipped ToolTippedS border p-2 mb-2 mr-2 float-left" aria-label="This is the tooltip on the South side.">
  Tooltip South
</span>
<span class="ToolTipped ToolTippedSW border p-2 mb-2 mr-2 float-left" aria-label="This is the tooltip on the South West side.">
  Tooltip South West
</span>
<span class="ToolTipped ToolTippedW border p-2 mb-2 mr-2 float-left" aria-label="This is the tooltip on the West side.">
  Tooltip West
</span>
<span class="ToolTipped ToolTippedNW border p-2 mb-2 mr-2 float-left" aria-label="This is the tooltip on the North West side.">
  Tooltip North West
</span>

Tooltips with multiple lines

Use .ToolTippedMultiline 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.

<span class="ToolTipped ToolTippedMultiline ToolTippedN border p-2" aria-label="This is the tooltip with multiple lines. This is the tooltip with multiple lines.">
  Tooltip with multiple lines
</span>

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. .ToolTippedNoDelay

<span class="ToolTipped ToolTippedN ToolTippedNoDelay border p-2" aria-label="This is the tooltip on the no delay side.">
  Tooltip no delay
</span>

License

MIT © GitHub, © Th!nk Inc.

elm-primer-tooltips's People

Contributors

broccolini avatar jonrohan avatar muan avatar yetanotherminion avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.