useMediaQuery

A hook for responsive breakpoint detection using media queries

Installation

npx shadcn@latest add @craftdotui/use-media-query

Usage

import { useMediaQuery } from "@/hooks/use-media-query";

function ResponsiveComponent() {
  const isDesktop = useMediaQuery("(min-width: 1024px)");
  const isTablet = useMediaQuery("(min-width: 768px) and (max-width: 1023px)");
  const isMobile = useMediaQuery("(max-width: 767px)");

  return (
    <div>
      {isDesktop && <p>Desktop View</p>}
      {isTablet && <p>Tablet View</p>}
      {isMobile && <p>Mobile View</p>}
    </div>
  );
}

API Reference

useMediaQuery

A hook for responsive breakpoint detection using media queries.

ParameterTypeDescription
querystringCSS media query string

Common Media Queries

// Breakpoints
const isMobile = useMediaQuery("(max-width: 767px)");
const isTablet = useMediaQuery("(min-width: 768px) and (max-width: 1023px)");
const isDesktop = useMediaQuery("(min-width: 1024px)");

// Orientation
const isPortrait = useMediaQuery("(orientation: portrait)");
const isLandscape = useMediaQuery("(orientation: landscape)");

// Dark mode
const prefersDark = useMediaQuery("(prefers-color-scheme: dark)");