oliverdavies.uk/source/_daily_emails/2023-12-20.md

35 lines
1.2 KiB
Markdown
Raw Normal View History

2024-01-03 20:00:00 +00:00
---
title: >
2024-02-07 20:01:19 +00:00
hover + focus = hocus
2024-01-03 20:00:00 +00:00
pubDate: 2023-12-20
permalink: >-
2024-02-07 20:01:19 +00:00
archive/2023/12/20/hover-focus-hocus
2024-01-03 20:00:00 +00:00
tags:
2024-02-07 20:01:19 +00:00
- software-development
- accessibility
- css
- tailwind-css
2024-01-03 20:00:00 +00:00
---
When creating accessible websites, as well as hover states for focusable elements, such as buttons, you also need to add focus styles that apply when users navigate the page using a keyboard and focusing on an element.
With Tailwind, that can mean a lot of duplication if your hover and focus states are similar or the same, as the same classes need to be added with both the `:hover` and `:focus` variants.
One of Tailwind's best features is its extensibility, which means I can create a new interaction state - `:hocus` - that works for both.
It's very easy to do by adding this code to your `tailwind.config.js` or `tailwind.config.ts` file:
```javascript
const plugin = require("tailwindcss/plugin");
module.exports = plugin(({ addVariant }) => {
  addVariant("hocus", ["&:hover", "&:focus"]);
});
```
Or, use [the Tailwind CSS plugin I wrote][plugin].
Get more accessible websites and less duplication today!
[plugin]: https://www.npmjs.com/package/tailwindcss-plugin-hocus-state