Agent skill

Responsive Mobile First

by BlackBeltTechnology in BlackBeltTechnology/pi-agent-dashboard

Mobile-first responsive patterns with sticky headers, floating CTAs, accessible navigation, and touch-friendly interactions.

MITAuto-check passedFrontend & Design

Install Responsive Mobile First

skills CLI
$ npx skills add BlackBeltTechnology/pi-agent-dashboard --skill responsive-mobile-first -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install BlackBeltTechnology/pi-agent-dashboard responsive-mobile-first --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/frontend-patterns/.pi/skills/responsive-mobile-first .claude/skills/responsive-mobile-first && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
responsive-mobile-first
GitHub stars
315
Token cost
~2.1k tokens
SKILL.md length
27 words
Files
3
Skills in repo
66
Repo updated
First seen
Licence
MIT

At a glance

Mobile-first responsive patterns with sticky headers, floating CTAs, accessible navigation, and touch-friendly interactions.

  • Implementing responsive layouts
  • SKILL.md covers Breakpoint Strategy, Sticky Header, Mobile Navigation Drawer and Floating Mobile CTA, plus 7 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Mobile navigation

What it does

Responsive Mobile First is an agent skill from BlackBeltTechnology/pi-agent-dashboard. Mobile-first responsive patterns with sticky headers, floating CTAs, accessible navigation, and touch-friendly interactions. Use when implementing responsive layouts, mobile navigation, or ensuring touch-friendly UI.

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `SKILL.agent.md` and `SKILL.md.AGENTS.md`).

It sits in Frontend & Design, covering Responsive design and Mobile UI design. The repository describes itself as: Real-time web dashboard for pi coding-agent sessions. Multi-session view, live chat mirroring, integrated terminal, diff viewer, pi-flows execution, and mobile-first remote… The licence is MIT.

When your agent uses it

  • Implementing responsive layouts
  • Mobile navigation
  • Ensuring touch-friendly UI

Example prompts

  • “/responsive-mobile-first”

What it can do on your machine

Read from SKILL.md and the folder at commit 86e8e4d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Responsive Mobile First loads about 2.1k tokens when it runs. Until then it costs about 60 tokens; SKILL.md has 27 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~60
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from BlackBeltTechnology/pi-agent-dashboard at commit 86e8e4d, republished under its MIT licence (© BlackBeltTechnology). 27 words, ~2,067 tokens.

Download SKILL.mdSave it as .claude/skills/responsive-mobile-first/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
responsive-mobile-first
description
Mobile-first responsive patterns with sticky headers, floating CTAs, accessible navigation, and touch-friendly interactions. Use when implementing responsive layouts, mobile navigation, or ensuring touch-friendly UI.

Responsive Mobile-First

Breakpoint Strategy

tsx
// Tailwind default breakpoints (mobile-first)
// sm: 640px
// md: 768px
// lg: 1024px
// xl: 1280px
// 2xl: 1536px

// Write base styles for mobile, add breakpoints for larger screens
<div className="
  px-4 md:px-6 lg:px-8        // Padding increases
  text-sm md:text-base         // Font size scales
  grid-cols-1 md:grid-cols-2   // Grid expands
">

Sticky Header

tsx
// components/layout/Header.tsx
'use client';

import { useState, useEffect } from 'react';
import { cn } from '@/lib/utils';

export function Header() {
  const [isScrolled, setIsScrolled] = useState(false);

  useEffect(() => {
    const handleScroll = () => setIsScrolled(window.scrollY > 10);
    window.addEventListener('scroll', handleScroll);
    return () => window.removeEventListener('scroll', handleScroll);
  }, []);

  return (
    <header
      className={cn(
        'fixed top-0 left-0 right-0 z-50 transition-all duration-300',
        isScrolled
          ? 'bg-background/95 backdrop-blur-sm shadow-sm'
          : 'bg-transparent'
      )}
    >
      <nav className="container mx-auto px-4 h-16 flex items-center justify-between">
        <Logo />
        
        {/* Desktop Navigation */}
        <div className="hidden md:flex items-center gap-6">
          <NavLinks />
          <Button>Book Now</Button>
        </div>
        
        {/* Mobile Menu Button */}
        <MobileMenuButton className="md:hidden" />
      </nav>
    </header>
  );
}

Mobile Navigation Drawer

tsx
'use client';

import { useState } from 'react';
import { motion, AnimatePresence } from 'framer-motion';
import { X, Menu } from 'lucide-react';

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

  return (
    <>
      <button
        onClick={() => setIsOpen(true)}
        className="md:hidden p-2"
        aria-label="Open menu"
      >
        <Menu className="w-6 h-6" />
      </button>

      <AnimatePresence>
        {isOpen && (
          <>
            {/* Backdrop */}
            <motion.div
              initial={{ opacity: 0 }}
              animate={{ opacity: 1 }}
              exit={{ opacity: 0 }}
              onClick={() => setIsOpen(false)}
              className="fixed inset-0 bg-black/50 z-50 md:hidden"
            />
            
            {/* Drawer */}
            <motion.div
              initial={{ x: '100%' }}
              animate={{ x: 0 }}
              exit={{ x: '100%' }}
              transition={{ type: 'tween', duration: 0.3 }}
              className="fixed top-0 right-0 bottom-0 w-80 bg-background z-50 md:hidden"
            >
              <div className="p-4 flex justify-end">
                <button
                  onClick={() => setIsOpen(false)}
                  className="p-2"
                  aria-label="Close menu"
                >
                  <X className="w-6 h-6" />
                </button>
              </div>
              
              <nav className="px-4 space-y-4">
                <NavLink href="/" onClick={() => setIsOpen(false)}>
                  Home
                </NavLink>
                <NavLink href="/services" onClick={() => setIsOpen(false)}>
                  Services
                </NavLink>
                {/* More links */}
              </nav>
              
              <div className="absolute bottom-8 left-4 right-4">
                <Button className="w-full" size="lg">
                  Book a Session
                </Button>
              </div>
            </motion.div>
          </>
        )}
      </AnimatePresence>
    </>
  );
}

Floating Mobile CTA

tsx
// components/FloatingCTA.tsx
'use client';

import { useState, useEffect } from 'react';
import { motion, AnimatePresence } from 'framer-motion';
import Link from 'next/link';
import { useLocale } from 'next-intl';

export function FloatingCTA() {
  const [isVisible, setIsVisible] = useState(false);
  const locale = useLocale();

  useEffect(() => {
    const handleScroll = () => {
      // Show after scrolling past hero
      setIsVisible(window.scrollY > 500);
    };
    
    window.addEventListener('scroll', handleScroll);
    return () => window.removeEventListener('scroll', handleScroll);
  }, []);

  return (
    <AnimatePresence>
      {isVisible && (
        <motion.div
          initial={{ y: 100, opacity: 0 }}
          animate={{ y: 0, opacity: 1 }}
          exit={{ y: 100, opacity: 0 }}
          className="fixed bottom-6 left-4 right-4 z-40 md:hidden"
        >
          <Link
            href={`/${locale}/book`}
            className="block w-full bg-primary text-primary-foreground text-center py-4 rounded-full font-medium shadow-lg"
          >
            Book a Session
          </Link>
        </motion.div>
      )}
    </AnimatePresence>
  );
}

Responsive Grid Patterns

tsx
// 1-2-3 column grid
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 md:gap-6">
  {items.map(item => <Card key={item.id} {...item} />)}
</div>

// Sidebar layout
<div className="flex flex-col lg:flex-row gap-8">
  <main className="flex-1">{/* Main content */}</main>
  <aside className="w-full lg:w-80">{/* Sidebar */}</aside>
</div>

// Hero with text/image
<div className="flex flex-col-reverse md:flex-row items-center gap-8">
  <div className="flex-1">{/* Text content */}</div>
  <div className="w-full md:w-1/2">{/* Image */}</div>
</div>

Touch-Friendly Targets

tsx
// Minimum 44x44px touch targets
<button className="min-h-[44px] min-w-[44px] p-3">
  <Icon className="w-5 h-5" />
</button>

// Adequate spacing between interactive elements
<div className="flex gap-3">
  <Button>Primary</Button>
  <Button variant="outline">Secondary</Button>
</div>

// Large tap areas for cards
<Link href={href} className="block p-4 md:p-6">
  <Card />
</Link>

Responsive Typography

tsx
// Heading scale
<h1 className="text-3xl md:text-4xl lg:text-5xl xl:text-6xl font-bold">
  Main Heading
</h1>

<h2 className="text-2xl md:text-3xl lg:text-4xl font-semibold">
  Section Heading
</h2>

// Body text
<p className="text-base md:text-lg leading-relaxed">
  Body content with comfortable reading line height.
</p>

// Small text
<span className="text-xs md:text-sm text-muted-foreground">
  Caption or meta text
</span>

Responsive Spacing

tsx
// Section padding
<section className="py-12 md:py-16 lg:py-24">

// Container with responsive padding
<div className="container mx-auto px-4 md:px-6 lg:px-8">

// Stack spacing
<div className="space-y-4 md:space-y-6 lg:space-y-8">

Hide/Show Utilities

tsx
// Show only on mobile
<div className="block md:hidden">Mobile only</div>

// Show only on desktop
<div className="hidden md:block">Desktop only</div>

// Different content per breakpoint
<span className="md:hidden">Menu</span>
<span className="hidden md:inline">Navigation</span>

Responsive Images

tsx
import Image from 'next/image';

// Full-width responsive image
<div className="relative aspect-video w-full">
  <Image
    src="/hero.jpg"
    alt="Hero"
    fill
    className="object-cover"
    sizes="100vw"
    priority
  />
</div>

// Responsive sizes attribute
<Image
  src="/service.jpg"
  alt="Service"
  fill
  sizes="(max-width: 768px) 100vw, (max-width: 1024px) 50vw, 33vw"
/>

Container Component

tsx
// components/shared/Container.tsx
import { cn } from '@/lib/utils';

interface ContainerProps {
  children: React.ReactNode;
  className?: string;
  size?: 'default' | 'narrow' | 'wide';
}

export function Container({ 
  children, 
  className,
  size = 'default' 
}: ContainerProps) {
  return (
    <div
      className={cn(
        'mx-auto px-4 md:px-6',
        {
          'max-w-7xl': size === 'default',
          'max-w-4xl': size === 'narrow',
          'max-w-screen-2xl': size === 'wide',
        },
        className
      )}
    >
      {children}
    </div>
  );
}

© BlackBeltTechnology, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in packages/frontend-patterns/.pi/skills/responsive-mobile-first of BlackBeltTechnology/pi-agent-dashboard.

  • SKILL.md
  • SKILL.agent.md
  • SKILL.md.AGENTS.md

Open the folder on GitHubat commit 86e8e4d

Compare with similar skills

Responsive Mobile First next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Responsive Mobile First compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Responsive Mobile First this skillBlackBeltTechnology/pi-agent-dashboard315—~2.1kAutomated safety check: PassMIT
Acarshub Design Languagesdr-enthusiasts/docker-acarshub117—~1.1kAutomated safety check: PassGPL-3.0
Bmad UXaj-geddes/claude-code-bmad-skills488—~2kAutomated safety check: NotesCustom licence
Mobile Friendlykostja94/marketing-skills1k—~1.5kAutomated safety check: PassMIT
Android Mobile UI DesignModinMobileSTS/SlayTheAmethystModded403—~1kAutomated safety check: PassCustom licence
Mobile UX Optimizercuriositech/some_claude_skills243—~2.7kAutomated safety check: NotesMIT

Similar skills

  • Acarshub Design Language

    sdr-enthusiasts/docker-acarshub

    Use ONLY when working in the docker-acarshub repository AND building UI -- React components, SCSS modules, theme variables, accessibility, mobile responsiveness, Catppuccin color usage, Zustand…

    117 GitHub stars~1.1k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Bmad UX

    aj-geddes/claude-code-bmad-skills

    Solutioning-phase UX planning skill (optional; activate when the project has a UI).

    488 GitHub stars~2k tokensUpdated 3 mo ago
    Frontend & DesignAuto-check: notes
  • Mobile Friendly

    kostja94/marketing-skills

    When the user wants to optimize for mobile-first indexing or fix mobile usability.

    1k GitHub stars~1.5k tokensUpdated 3 days ago
    Frontend & DesignAuto-check passed
  • Android Mobile UI Design

    ModinMobileSTS/SlayTheAmethystModded

    Designs and reviews Android screens with attention to touch ergonomics, adaptive layouts, accessibility, state handling and an implementation handoff.

    403 GitHub stars~1k tokensUpdated today
    MobileAuto-check passed
  • Mobile UX Optimizer

    curiositech/some_claude_skills

    Mobile-first UX optimization for touch interfaces, responsive layouts, and performance.

    243 GitHub stars~2.7k tokensUpdated 1 mo ago
    MobileAuto-check: notes
  • Mobile First Design

    secondsky/claude-skills

    Designs responsive interfaces starting from mobile screens with progressive enhancement for larger devices.

    227 GitHub stars~494 tokensUpdated 11 days ago
    MobileAuto-check passed

More from BlackBeltTechnology/pi-agent-dashboard

All 66 skills in this repo
  • Browser

    BlackBeltTechnology/pi-agent-dashboard

    Browser automation via the agent-browser CLI. An agent skill from BlackBeltTechnology/pi-agent-dashboard.

    315 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • CI Troubleshoot

    BlackBeltTechnology/pi-agent-dashboard

    Diagnose failed GitHub Actions runs for pi-agent-dashboard: the 11-file workflow taxonomy, affected-test selection, the release pipeline, known failure modes, and how to read gh run logs and…

    315 GitHub stars~3.5k tokensUpdated today
    Auto-check passed
  • Debug Dashboard

    BlackBeltTechnology/pi-agent-dashboard

    Diagnose problems in the running pi-agent-dashboard system: server.log, /api/health, bridge WebSocket connectivity, vitest triage, known-issue FAQ entries.

    315 GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Implement

    BlackBeltTechnology/pi-agent-dashboard

    Disciplined implementation in pi-agent-dashboard: the rebuild matrix (extension→reload, server→restart, client→build+restart, openspec-apply→full rebuild) plus the project's code discipline rules.

    315 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Pi Dashboard

    BlackBeltTechnology/pi-agent-dashboard

    Monitor and control the pi-dashboard server. An agent skill from BlackBeltTechnology/pi-agent-dashboard.

    315 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Session To Guideline

    BlackBeltTechnology/pi-agent-dashboard

    Turn a pi session into a Markdown "how-we-did-it" collaboration guideline: reads the session's JSONL transcript and synthesizes a reusable playbook of which prompts worked, what had to be steered…

    315 GitHub stars~3.2k tokensUpdated today
    Auto-check passed

Questions about Responsive Mobile First

What does Responsive Mobile First do?

Mobile-first responsive patterns with sticky headers, floating CTAs, accessible navigation, and touch-friendly interactions. Responsive Mobile First is an agent skill from BlackBeltTechnology/pi-agent-dashboard. Mobile-first responsive patterns with sticky headers, floating CTAs, accessible navigation, and touch-friendly interactions.

When should I use Responsive Mobile First?

Responsive Mobile First fits situations like: implementing responsive layouts; mobile navigation; ensuring touch-friendly UI.

How do I install Responsive Mobile First in Claude Code?

Run `npx skills add BlackBeltTechnology/pi-agent-dashboard --skill responsive-mobile-first -a claude-code`. Or copy the skill folder (packages/frontend-patterns/.pi/skills/responsive-mobile-first in BlackBeltTechnology/pi-agent-dashboard) into .claude/skills/responsive-mobile-first in your project. Claude Code loads it when a task matches its description.

How do I install Responsive Mobile First in Codex?

Run `npx skills add BlackBeltTechnology/pi-agent-dashboard --skill responsive-mobile-first -a codex`. Or copy the skill folder (packages/frontend-patterns/.pi/skills/responsive-mobile-first in BlackBeltTechnology/pi-agent-dashboard) into .agents/skills/responsive-mobile-first in your project. Codex loads it when a task matches its description.

Can I use Responsive Mobile First in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add BlackBeltTechnology/pi-agent-dashboard --skill responsive-mobile-first -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/responsive-mobile-first, .gemini/skills/responsive-mobile-first, .github/skills/responsive-mobile-first and .opencode/skills/responsive-mobile-first in your project.

What does Responsive Mobile First need to run?

SKILL.md names no scripts, command-line tools or credentials: Responsive Mobile First is instructions for the agent only.

Does Responsive Mobile First access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Responsive Mobile First safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Responsive Mobile First use?

Responsive Mobile First is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Responsive Mobile First use?

About 2.1k tokens (SKILL.md is roughly 8.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Responsive Mobile First?

Skills that share tags, products or a category with Responsive Mobile First: Acarshub Design Language (sdr-enthusiasts/docker-acarshub, 117 stars), Bmad UX (aj-geddes/claude-code-bmad-skills, 488 stars), Mobile Friendly (kostja94/marketing-skills, 1k stars) and Android Mobile UI Design (ModinMobileSTS/SlayTheAmethystModded, 403 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Responsive Mobile First?

BlackBeltTechnology (a GitHub organization) maintains it in BlackBeltTechnology/pi-agent-dashboard, which has 315 GitHub stars. The repository holds 66 skills in this directory. The repository was last updated on October 8, 2026.

Source: BlackBeltTechnology/pi-agent-dashboard on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.