Modal-Style Text Selection with Fokus

By  on  

Every once in a while I find a tiny JavaScript library that does something very specific, very well.  My latest find, Fokus, is a utility that listens for text selection within the page, and when such an event occurs, shows a beautiful modal dialog in the background of the entire page, allowing only the highlighted block to display at it's normal mode.

The HTML

Nothing special needs to be done with the page HTML, and you don't create "active" zones -- simply include the JavaScript file at the bottom of the page:

<!-- at bottom of the page -->
<script src="fokus/js/fokus.min.js" async></script>

The overlay elegantly fades in and out.  Canvas is used to create the overlay, and CSS' pointer-events property is used to ensure event handling consistency.  It would be great if Fokus was a bit more modular, including allowing active zones and customized overlay color, but it's hard to complain about anything else with Fokus.

Fokus isn't a necessity for any site, but I was taken aback by how smooth and accurate Fokus is.  Weighing in at just 3KB, it's an impressive little library.  Have an idea for how you'd use Fokus?  Share it!

Recent Features

  • By
    5 Ways that CSS and JavaScript Interact That You May Not Know About

    CSS and JavaScript:  the lines seemingly get blurred by each browser release.  They have always done a very different job but in the end they are both front-end technologies so they need do need to work closely.  We have our .js files and our .css, but...

  • By
    Page Visibility API

    One event that's always been lacking within the document is a signal for when the user is looking at a given tab, or another tab. When does the user switch off our site to look at something else? When do they come back?

Incredible Demos

  • By
    MooTools TwitterGitter Plugin

    Everyone loves Twitter. Everyone loves MooTools. That's why everyone should love TwitterGitter, a MooTools plugin that retrieves a user's recent tweets and allows the user to format them however the user would like. TwitterGitter allows the user to choose the number of...

  • By
    MooTools Window Object Dumping

    Ever want to see all of the information stored within the window property of your browser? Here's your chance. The XHTML We need a wrapper DIV that we'll consider a console. The CSS I like making this look like a command-line console. The MooTools JavaScript Depending on what you have loaded...

Discussion

  1. patrick

    why not using it when using html5 contenteditable. it would play very nice together by let the user focus on the content he wants to edit.

  2. nice find. one thing; your website search box is broke. i couldn’t search for anything directly from the box and i had to use google for searching your website.

  3. smashercosmo

    Nice plugin. But I think, that implementation is too complex. It would be rather simpler to add outline: 999px solid rgba(0,0,0,0.7) to the focused block instead of rendering canvas.

  4. Nice… but until I was told what to do to make it work in the demo I would never have known! And that’s where it falls down.

  5. You could totally use this tool to launch a submenu that allows you to print it, send it to someone or post to twitter, etc. It would be super cool and as always you rock for puttin’ this out.

    • Alex

      This is really the best idea for this snippet. Thanks for sharing!

  6. how can you have an option to edit the text selected?
    Thank you

  7. s23q

    where is this to download??

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!