Skip to content

Instantly share code, notes, and snippets.

@Frankie-B
Forked from perjo927/HoverSupported.css
Created November 10, 2022 16:17
Show Gist options
  • Save Frankie-B/8ec781d3965961811eefb3683f8b4738 to your computer and use it in GitHub Desktop.
Save Frankie-B/8ec781d3965961811eefb3683f8b4738 to your computer and use it in GitHub Desktop.
CSS: Support hover only on non-touch devices using media query
/*
* Compiled CSS:
*/
a {
color: green;
}
@media not all and (pointer: coarse) {
a:hover {
color: blue;
}
}
@mixin hover-supported {
/*
* https://developer.mozilla.org/en-US/docs/Web/CSS/@media/pointer
* coarse: The primary input mechanism includes a pointing device of limited accuracy.
*/
@media not all and (pointer: coarse) {
&:hover {
@content;
}
}
}
a {
color:green;
@include hover-supported() {
color:blue;
}
}
// RandomAnchor.tsx
import styled, { css } from "styled-components";
import { hoverSupported } from "./CssUtils";
export const RandomAnchor = styled.a`
color: green;
/*
* Only use hover for the browsers we choose to support
*/
${hoverSupported(css`
&:hover {
color: blue;
}
`)};
`;
// Example for React-ts & Styled Components
import { css } from "styled-components";
export const hoverSupported = style => css`
@media not all and (pointer: coarse) {
${style};
}
`;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment