Socket
Socket
Sign inDemoInstall

postcss-focus-visible

Package Overview
Dependencies
9
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    postcss-focus-visible

Use the :focus-visible pseudo-selector in CSS


Version published
Maintainers
1
Install size
1.50 MB
Created

Package description

What is postcss-focus-visible?

The postcss-focus-visible npm package is a PostCSS plugin that polyfills the :focus-visible pseudo-class. It allows developers to style elements that have focus only when they are focused via keyboard input, providing better accessibility and user experience. This is particularly useful for avoiding focus styles when clicking on elements with a mouse, which can sometimes be visually disruptive.

What are postcss-focus-visible's main functionalities?

Polyfill :focus-visible

This feature allows developers to use the :focus-visible pseudo-class in their CSS, which the plugin then compiles into a backward-compatible format. The output CSS works in conjunction with a JavaScript detection script to apply focus styles only when an element is focused via the keyboard.

/* Input CSS */
:focus-visible { outline: 1px solid black; }

/* Output CSS */
.js-focus-visible :focus:not(.focus-visible) { outline: none; }
.js-focus-visible .focus-visible { outline: 1px solid black; }

Other packages similar to postcss-focus-visible

Readme

Source

PostCSS Focus Visible PostCSS Logo

NPM Version Build Status Windows Build Status Gitter Chat

PostCSS Focus Visible lets you use the :focus-visible pseudo-selector in CSS, following the Selectors Level 4 specification.

:focus:not(:focus-visible) {
  outline: none;
}

/* becomes */

:focus:not(.focus-visible) {
  outline: none;
}

PostCSS Focus Visible replaces the :focus-visible pseudo-selector with a .focus-visible class selector, the same selector used by the focus-visible polyfill. The replacement selector can be changed using the replaceWith option.

Usage

Add PostCSS Focus Visible to your build tool:

npm install postcss-focus-visible --save-dev
Node

Use PostCSS Focus Visible to process your CSS:

import focusVisible from 'postcss-focus-visible';

focusVisible.process(YOUR_CSS);
PostCSS

Add PostCSS to your build tool:

npm install postcss --save-dev

Use PostCSS Focus Visible as a plugin:

import postcss from 'gulp-postcss';
import focusVisible from 'postcss-focus-visible';

postcss([
  focusVisible()
]).process(YOUR_CSS);
Webpack

Add PostCSS Loader to your build tool:

npm install postcss-loader --save-dev

Use PostCSS Focus Visible in your Gulpfile:

import focusVisible from 'postcss-focus-visible';

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [
          'style-loader',
          { loader: 'css-loader', options: { importLoaders: 1 } },
          { loader: 'postcss-loader', options: {
            ident: 'postcss',
            plugins: () => [ focusVisible() ]
          } }
        ]
      }
    ]
  }
}
Gulp

Add Gulp PostCSS to your build tool:

npm install gulp-postcss --save-dev

Use PostCSS Focus Visible in your Gulpfile:

import postcss from 'gulp-postcss';
import focusVisible from 'postcss-focus-visible';

gulp.task('css', () => gulp.src('./src/*.css').pipe(
  postcss([
    focusVisible()
  ])
).pipe(
  gulp.dest('.')
));
Grunt

Add Grunt PostCSS to your build tool:

npm install grunt-postcss --save-dev

Use PostCSS Focus Visible in your Gruntfile:

import focusVisible from 'postcss-focus-visible';

grunt.loadNpmTasks('grunt-postcss');

grunt.initConfig({
  postcss: {
    options: {
      use: [
       focusVisible()
      ]
    },
    dist: {
      src: '*.css'
    }
  }
});

Options

replaceWith

The replaceWith option defines the selector to replace :focus-visible. By default, the replacement selector is .focus-visible.

focusVisible({ replaceWith: '[data-focus-visible-added]' });
:focus:not(:focus-visible) {
  outline: none;
}

/* becomes */

:focus:not([data-focus-visible-added]) {
  outline: none;
}

Keywords

FAQs

Last updated on 17 Feb 2018

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc