Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
hoodini avatar

Mobile Responsiveness

  • 1.1k installs
  • 262 repo stars
  • Updated July 11, 2026
  • hoodini/ai-agents-skills

mobile-responsiveness is an agent skill that generates production-grade responsive layouts, mobile-first CSS, Tailwind classes, and fluid typography for developers building web applications across every device size.

About

mobile-responsiveness is a hoodini/ai-agents-skills agent skill for building mobile-first, production-grade responsive web UIs. It encodes breakpoint strategy starting from mobile base styles, then scaling with min-width media queries at 768px tablet and 1024px desktop thresholds, plus Tailwind utility patterns, touch interactions, mobile navigation, and fluid typography. Developers reach for mobile-responsiveness when implementing responsive layouts, viewport optimization, or touch-friendly components without manual cross-device debugging marathons. Triggers include responsive design, mobile-first, breakpoints, touch events, and viewport keywords. The skill targets frontend engineers shipping SaaS dashboards, marketing sites, or content apps that must render cleanly from phones through large desktops.

  • Mobile-first breakpoint system with CSS custom properties and clamp() for fluid scaling
  • Ready-to-copy Tailwind responsive utilities covering mobile, tablet, desktop and xl screens
  • Touch interaction and viewport meta guidance for native-feeling mobile experiences
  • Triggers automatically on keywords: responsive design, mobile-first, breakpoints, touch events, viewport
  • Produces both vanilla CSS and framework-specific implementations

Mobile Responsiveness by the numbers

  • 1,087 all-time installs (skills.sh)
  • +50 installs in the week ending Aug 4, 2026 (Skillselion tracking)
  • Ranked #350 of 2,245 Frontend Development skills by installs in the Skillselion catalog
  • Security screen: MEDIUM risk (skills.sh audit)
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/hoodini/ai-agents-skills --skill mobile-responsiveness

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1.1k
repo stars262
Security audit3 / 3 scanners passed
Last updatedJuly 11, 2026
Repositoryhoodini/ai-agents-skills

How do you build mobile-first responsive layouts?

Generate production-grade responsive layouts, mobile-first CSS, Tailwind classes, and fluid typography that work across every device without manual debugging.

Who is it for?

Frontend developers implementing responsive web apps who want agent-guided mobile-first CSS, Tailwind breakpoints, and touch-optimized layouts.

Skip if: Native iOS or Android app teams building non-web mobile clients without CSS or Tailwind layout concerns.

When should I use this skill?

The user mentions responsive design, mobile-first, breakpoints, touch events, viewport, Tailwind responsive classes, or mobile navigation.

What you get

Mobile-first CSS, Tailwind breakpoint classes, touch-friendly navigation, and fluid typography rules.

  • responsive CSS rules
  • Tailwind breakpoint classes
  • mobile navigation markup

Files

SKILL.mdMarkdownGitHub ↗

Mobile Responsiveness

Build responsive, mobile-first web applications.

Mobile-First Breakpoints

/* Mobile first - no media query needed for mobile base */
.container {
  padding: 1rem;
}

/* Tablet */
@media (min-width: 768px) {
  .container {
    padding: 2rem;
  }
}

/* Desktop */
@media (min-width: 1024px) {
  .container {
    padding: 3rem;
    max-width: 1200px;
    margin: 0 auto;
  }
}

/* Large desktop */
@media (min-width: 1280px) {
  .container {
    max-width: 1400px;
  }
}

Tailwind Breakpoints

<div className="
  p-4          /* Mobile: padding 1rem */
  md:p-8       /* Tablet 768px+: padding 2rem */
  lg:p-12      /* Desktop 1024px+: padding 3rem */
  xl:max-w-6xl /* Large 1280px+: max-width */
">
  <h1 className="
    text-2xl     /* Mobile */
    md:text-3xl  /* Tablet */
    lg:text-4xl  /* Desktop */
  ">
    Responsive Heading
  </h1>
</div>

Fluid Typography

:root {
  /* Fluid font size: 16px at 320px viewport, 20px at 1200px viewport */
  --font-size-base: clamp(1rem, 0.9rem + 0.5vw, 1.25rem);
  
  /* Fluid heading */
  --font-size-h1: clamp(2rem, 1.5rem + 2.5vw, 4rem);
}

body {
  font-size: var(--font-size-base);
}

h1 {
  font-size: var(--font-size-h1);
}

Touch Interactions

import { useState } from 'react';

function SwipeableCard({ onSwipeLeft, onSwipeRight, children }) {
  const [touchStart, setTouchStart] = useState<number | null>(null);
  const [touchEnd, setTouchEnd] = useState<number | null>(null);

  const minSwipeDistance = 50;

  const onTouchStart = (e: React.TouchEvent) => {
    setTouchEnd(null);
    setTouchStart(e.targetTouches[0].clientX);
  };

  const onTouchMove = (e: React.TouchEvent) => {
    setTouchEnd(e.targetTouches[0].clientX);
  };

  const onTouchEnd = () => {
    if (!touchStart || !touchEnd) return;
    
    const distance = touchStart - touchEnd;
    const isLeftSwipe = distance > minSwipeDistance;
    const isRightSwipe = distance < -minSwipeDistance;
    
    if (isLeftSwipe) onSwipeLeft?.();
    if (isRightSwipe) onSwipeRight?.();
  };

  return (
    <div
      onTouchStart={onTouchStart}
      onTouchMove={onTouchMove}
      onTouchEnd={onTouchEnd}
    >
      {children}
    </div>
  );
}

Mobile Navigation

import { useState } from 'react';

function MobileNav() {
  const [isOpen, setIsOpen] = useState(false);

  return (
    <>
      {/* Hamburger button - visible on mobile */}
      <button
        className="md:hidden p-2"
        onClick={() => setIsOpen(!isOpen)}
        aria-expanded={isOpen}
        aria-label="Toggle menu"
      >
        <span className={`hamburger ${isOpen ? 'open' : ''}`} />
      </button>

      {/* Mobile menu */}
      <nav
        className={`
          fixed inset-0 bg-white z-50 transform transition-transform
          ${isOpen ? 'translate-x-0' : '-translate-x-full'}
          md:static md:translate-x-0 md:bg-transparent
        `}
      >
        <ul className="flex flex-col md:flex-row gap-4 p-4 md:p-0">
          <li><a href="/">Home</a></li>
          <li><a href="/about">About</a></li>
          <li><a href="/contact">Contact</a></li>
        </ul>
      </nav>

      {/* Backdrop */}
      {isOpen && (
        <div
          className="fixed inset-0 bg-black/50 z-40 md:hidden"
          onClick={() => setIsOpen(false)}
        />
      )}
    </>
  );
}

Safe Areas (Notch/Home Indicator)

/* Account for iPhone notch and home indicator */
.container {
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
  padding-bottom: env(safe-area-inset-bottom);
}

/* Fixed bottom navigation */
.bottom-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  padding-bottom: max(1rem, env(safe-area-inset-bottom));
}

Viewport Meta Tag

<meta 
  name="viewport" 
  content="width=device-width, initial-scale=1, viewport-fit=cover"
/>

useMediaQuery Hook

import { useState, useEffect } from 'react';

function useMediaQuery(query: string): boolean {
  const [matches, setMatches] = useState(false);

  useEffect(() => {
    const media = window.matchMedia(query);
    setMatches(media.matches);

    const listener = (e: MediaQueryListEvent) => setMatches(e.matches);
    media.addEventListener('change', listener);
    
    return () => media.removeEventListener('change', listener);
  }, [query]);

  return matches;
}

// Usage
function Component() {
  const isMobile = useMediaQuery('(max-width: 767px)');
  const isTablet = useMediaQuery('(min-width: 768px) and (max-width: 1023px)');
  const isDesktop = useMediaQuery('(min-width: 1024px)');

  return isMobile ? <MobileView /> : <DesktopView />;
}

Resources

  • Responsive Design: https://web.dev/learn/design/
  • Mobile-First CSS: https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Responsive_Design
  • Viewport Units: https://developer.mozilla.org/en-US/docs/Web/CSS/length#viewport-percentage_lengths

Related skills

How it compares

Choose mobile-responsiveness over generic frontend-design skills when the task is specifically breakpoint strategy, Tailwind responsive utilities, and touch/mobile navigation implementation.

FAQ

What breakpoint strategy does mobile-responsiveness use?

mobile-responsiveness follows a mobile-first CSS strategy with base mobile styles unscoped, then min-width media queries at 768px for tablet and 1024px for desktop layouts including max-width containers.

Does mobile-responsiveness support Tailwind CSS?

mobile-responsiveness generates production-grade Tailwind responsive classes alongside mobile-first CSS patterns, touch interaction guidance, and fluid typography for multi-device web applications.

Is Mobile Responsiveness safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.