agentsclimarketplace

Speckit.frontend

Skill wedabro/bro-skills/.agents/skills/speckit.frontend

Frontend Developer - Build UI components, state management, data fetching, accessibility, and performance without generic styling.From its SKILL.md

Install
npx -y skills add wedabro/bro-skills --skill speckit.frontend

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

5.7 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it

🎯 Mission

Realize Design System (from @speckit.uiux ) into production code: reusable components, clean state management, optimized data fetching, accessible & smooth animation standard taste-skill.

πŸ“₯ Input

  • .agent/knowledge_base/ui_ux_standards.md (Design System)
  • .agent/specs/[feature]/spec.md (UI requirements)
  • API contract from @speckit.backend
  • .agent/memory/constitution.md (ENV, Docker-First)

πŸ“‹ Protocol

0. Mandatory Preflight

  • Before writing code, inspect the current page family, shared layout, components, design tokens, theme, and feature structure.
  • Report the reusable components found, the upstream source of truth to change, and the files to create or update. Then implement.
  • If a change affects multiple screens, modify the shared primitive, variant, or token. Do not patch the same visual property page by page.

1. Layout & Component Architecture

  • Compose every page from the shared application shell, container, breadcrumb, page header, and content primitives. Pages of the same type use the same structure, width, horizontal padding, and title placement.
  • Small, reusable, single responsibility components. Viewport uses 100dvh instead of 100vh to avoid layout jump on mobile.
  • Before creating a component, search for an existing primitive that can be reused, extended with typed props/variants, or composed. When two components overlap by roughly 70% or more, prefer one shared component with variants.
  • Keep feature-only components inside the feature. Promote a component to shared UI/layout only when multiple features use it.
  • Keep page files focused on composition and page-level data flow. At roughly 250–300 lines, review the file and extract independent UI or logic.
  • Do not copy repeated JSX, form structure, modal shells, control styles, pagination, state views, formatting, or API error handling. At the second occurrence, evaluate a component, hook, utility, config, schema, or service.
  • According to Design System: spacing/typography/color tokens. Absolutely do not hardcode inline style unless required.
  • ALWAYS prefer existing framework/theme classes such as p-4, text-lg, gap-4, and rounded-md so the interface stays on one shared scale.
  • Use gap-4 as the primary component/grid gap. Reserve gap-2 for tightly related controls and gap-6/gap-8 for clear hierarchy boundaries.
  • DO NOT use arbitrary fixed-pixel utilities when an existing class or token covers the intent. Fixed px values are limited to hairline borders (border-[1px]), blur/shadow tuning, and very small precision radii.
  • Promote any repeated pixel exception to a named theme token or reusable class.

2. Shared Primitives & Variants

  • Build display modes as centrally defined, explicitly typed variants. Do not create separate components that differ only by color or state.
  • Use shared FormField and control primitives for label, helper, error, required, disabled, read-only, success, and loading states.
  • Use a shared table/data-table primitive for loading, empty state, pagination, sorting, filtering, row actions, selection, responsiveness, and formatting as applicable.
  • Use shared dialog/drawer shell, header, content, and footer primitives. Centralize overlay, width, padding, radius, z-index, and animation.

3. State, Data & TypeScript

  • It is PROHIBITED to use useState for continuous values ​​(mouse position, scroll progress). Use useMotionValue / useTransform of Framer Motion / GSAP.
  • Data fetching: MUST have Skeletal loader states (match the final UI shape), do not use generic circular spinner.
  • Put repeated status labels, visual variants, navigation, and display mappings in typed configuration rather than inline JSX conditionals.
  • Type component props, API models, view models, and variant unions explicitly. Avoid any; isolate and justify it when an external boundary requires it.

4. Accessibility, Responsive & UI Rules

  • Semantic HTML, ARIA. MANDATORY contrast ratio test (WCAG AA). Button CTA text must be easy to read on the button background.
  • Button text must NOT wrap on the desktop. Label button is brief (maximum 3 words).
  • Tactile Feedback: use built-in utilities such as active:scale-95 or active:translate-y-px.
  • Design mobile-first with the established sm, md, lg, xl, and 2xl breakpoints. Do not add a page-local breakpoint without a reusable need.
  • Let each shared component own its responsive behavior when appropriate.

5. Motion & Performance

  • Animate transform and opacity (supports hardware acceleration). It is PROHIBITED to animate top/left/width/height continuously.
  • REQUIRED respect for prefers-reduced-motion if adding complex animations.
  • GSAP / Framer Motion must be cleared in time (to avoid memory leaks).

6. ENV & Config

  • Use NEXT_PUBLIC_* for client config. NO hard-code endpoints.

7. Completion Gate

  • Verify responsive behavior and default, hover, focus, disabled, read-only, loading, empty, error, and success states that apply.
  • Run the project's type-check, lint, tests, and production build.
  • Confirm no unrelated business behavior changed and no avoidable JSX/style duplication or arbitrary visual values were introduced.

πŸ“€ Output

  • UI component code + basic tests (render/interaction).

🚫 Guard Rails

  • DO NOT hard-code text/URL/color β†’ use i18n/tokens/ENV.
  • DO NOT use 2 CTA buttons for the same purpose on one screen.
  • DO NOT violate a11y (missing label, button with white text on light background).
  • Use the language configured by the project or requested by the user.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Gives 0 of the 12 instructions most design frontend skills give in ~1.3k tokens

Counted across 1,169 of the 1,878 authors here whose files we hold, read 2026-08-07

  • Use CSS variables for color consistencyin 72 of 1169, across 23 files
  • Commit to one bold aesthetic direction before codingin 72 of 1169, across 27 files
  • Match implementation complexity to the aesthetic visionin 70 of 1169, across 20 files
  • Add atmospheric background effects and texturesin 57 of 1169, across 9 files
  • Use unexpected spatial compositions and layoutsin 56 of 1169, across 8 files
  • Implement real working codein 55 of 1169, across 7 files
  • Vary themes and aesthetics across different designsin 48 of 1169, across 7 files
  • Launch chromium in headless modein 47 of 1169, across 4 files
  • Close the browser when donein 47 of 1169, across 4 files
  • Run provided scripts with help flag firstin 47 of 1169, across 4 files
  • Wait for network idle statein 47 of 1169, across 4 files
  • Use descriptive selectors for elementsin 47 of 1169, across 4 files

Said here and by no other author read

  • inspect shared layout and tokens before writing code
  • report reusable components and source of truth before implementing
  • modify shared primitives for multi-screen changes
  • compose every page from shared application primitives
  • extract independent UI or logic from large files
  • use typed configuration for repeated status labels and variants

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 326,696. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.