Claude Code skill for building frontend UI the Wes Bos way: research pitfalls and modern platform features before planning, design accessible (WCAG) components with native HTML/CSS, then verify the approach against Wes Bos on X + trusted sources (MDN, web.dev, CSS-Tricks). Framew
SaferSkills independently audited wes-bos-sick-picks (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Build frontend the way you'd build it after reading the current best thinking — not from memory. The platform moves fast; what was "roll your own with JS" two years ago is often "one native element + a few lines of CSS" today. This skill front-loads research so the plan is right before any code is written, bakes in accessibility, and cross-checks the chosen approach against trusted voices (Wes Bos chief among them) before committing. The goal each time: pick the sickest modern approach — and prove it's the right call.
Use it for: new components (modal/dialog, drawer, popover, tabs, tooltip, accordion, combobox, carousel…), layout/animation/interaction work, or any "what's the right modern way to do X in HTML/CSS/JS" question. It is framework-agnostic — adapt the output to the project's stack and conventions (React, Vue, Svelte, Angular, web components, or plain HTML).
⚠️ Do this research before you write the plan or any code. The whole point is to discover the modern/native primitive and its pitfalls up front, so you don't plan around an outdated approach.
Run web searches before planning. Goal: find the current-best, ideally native, approach and the gotchas that bite people.
Search in this order, adapting the topic:
"<feature> modern best practices <current year>" — e.g. accessible drawer dialog element 2026 best practices"<feature> accessibility WCAG pitfalls" — focus management, keyboard, screen readers, ARIA."<native element/API> <feature>" — is there a native primitive? (<dialog>, <details>, popover API, <selectlist>/<selectedcontent>, anchor positioning, inert, command/commandfor invokers…)"<feature> CSS animation @starting-style allow-discrete transition-behavior" — modern transitions for top-layer / display:none elements.caniuse / Baseline status). Decide: ship it, progressively enhance, or polyfill.Then fetch the 2–3 most relevant articles (WebFetch) to extract concrete code, the exact CSS, and the named pitfalls — don't stop at search snippets.
Capture, in your own notes: the recommended approach, what it gives you for free, the known pitfalls, and the browser-support caveats.
Accessibility is a design input, not a later pass. Prefer native semantics that hand you correct behavior for free, then fill the gaps:
<dialog>, <button>, <nav>, headings, lists). Native elements come with roles, keyboard behavior, and focus handling.aria-label / aria-labelledby (link region to its visible title), aria-describedby where useful. Reuse the project's i18n for labels; never hard-code if the repo localizes.Tab order, Enter/Space, Escape to dismiss, arrow keys where the pattern expects them (tabs, menus, listboxes). Visible :focus-visible styling.<dialog> does this for you), and restore it to the trigger on close.aria-expanded, aria-selected, aria-current, aria-modal, aria-live for dynamic updates.prefers-reduced-motion (disable/replace motion), and don't trap scroll or break zoom.Reach for the platform before reaching for JS or a library:
<dialog> + showModal(), popover API, <details>/<summary>, inert, command/commandfor invokers, CSS anchor positioning, :has(), container queries, scrollbar-gutter, text-wrap: balance/pretty, view transitions.display:none elements: @starting-style, transition-behavior: allow-discrete, transitioning display/overlay.dvh/svh units, modern color/spacing tokens — match whatever the project's styling system already uses (Tailwind, CSS modules, vanilla, etc.).Before finalizing the plan, confirm the chosen approach against external authorities — this is the "would Wes Bos do it this way?" gate.
wesbos twitter x.com <feature> <native element> or wesbos tips <feature>. He frequently posts sharp takes and gotchas on native HTML/CSS (dialog modality requiring .showModal(), @starting-style + allow-discrete, popover API, etc.). Cite the specific post.Trusted source allowlist (prefer these; recency matters):
developer.mozilla.org), web.dev / Chrome for Developersw3.org/WAI/ARIA/apg), A11Y ProjectEscape/dismiss, screen-reader announcement of the accessible name, and reduced-motion behavior.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.