frontend-ui
Frontend UI checklist — CSS specificity, dark/light themes, visual testing, mobile responsiveness, i18n parity.
Skill by Arcanada-one
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/arcanada-one-frontend-ui
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, frontend, testing, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/frontend-ui
What's inside
- Skill name
frontend-ui- Description
- Frontend UI checklist — CSS specificity, dark/light themes, visual testing, mobile responsiveness, i18n parity. Apply when editing HTML/CSS.
- License
- MIT
- Instructions
- 214 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Frontend UI — Checklist for Web Interface Tasks
Use when task modifies HTML, CSS, templates, or visual components. Catches recurring UI bugs missed by HTTP/syntax checks.
---
## 1. CSS Dark/Light Mode Specificity
**Rule:** Light mode = default. `.dark` class = override. Never use `:not(.dark)` selectors.
### Anti-Pattern (BREAKS dark mode)
```css
.dark .component { background: #0f172a; }
:not(.dark) .component { background: #ffffff; } /* ← matches <body>, <section>, <div> */
```
`:not(.dark)` matches any ancestor without the class, including `<body>` / `<section>` / `<div>`. Since these are also ancestors of `.component`, the selector ALWAYS matches, overriding `.dark` rules due to cascade order. Result: light colors leak into dark mode.
### Correct Pattern
```css
.component { background: #ffffff; } /* default = light */
.dark .component { background: #0f172a; } /* override = dark */
```
Checklist:
- [ ] Tailwind config sets `darkMode: 'class'`
- [ ] `<html class="dark">` initial state from localStorage
- [ ] No `:not(.dark)` selectors in any CSS file
- [ ] Light styles have no class prefix (they ARE the default)
- [ ] Dark overrides use `.dark .component` pattern
---
## 2. Visual Verification
HTTP 200 + valid HTML is insufficient for UI tasks. A page can render with broken visual state and still return 200.
Required checks before marking UI task complete:
- [ ] Screenshot of dark mode (all sections visible, no light leaks)
- [ ] Screenshot of light mode (all sections visible, no dark leaks)
- [ ] Mobile viewport (320px, 375px) — no horizontal scroll, readable text
- [ ] Tablet viewport (768px) — layout adapts
- [ ] Desktop viewport (1280px+) — max-width containers work
- [ ] Theme toggle switches instantly (no flash of wrong theme)
- [ ] For animated drawers/dialogs, wait for the intended settled state and
verify the relevant content bounds fit the viewport before capturing evidence.
Visibility alone can pass mid-transition; document scroll-width checks can
miss fixed overlays clipped outside the window. Do not replace this with an
arbitrary sleep or silently disable the transition being tested. Inspect the
resulting screenshots before accepting them; intended scrolling content need
not fit vertically, but required controls must remain reachable.
If unable to capture screenshots, explicitly ask the user to verify visually before closing.
---
## 3. i18n UI Parity (if applicable)
For bilingual/multilingual sites:
- [ ] All supported language files have identical keys (diff check)
- [ ] Language switcher works from every page
- [ ] URL prefix `/en/`, `/ru/` respected on all internal links (`lang_url()` helper)
- [ ] Cookie persists language choice across requests
- [ ] Date formatting respects current language
- [ ] Text length difference (RU ~20-30% longer than EN) doesn't break layouts
- [ ] Hardcoded strings audit: `grep` in templates for English/Russian leaks on wrong-language pages
---
## 4. Mobile Responsiveness
- [ ] Navigation collapses to hamburger at lg breakpoint
- [ ] Tap targets ≥ 44×44px
- [ ] No content overflows viewport width
- [ ] Images scale down (`max-width: 100%`)
- [ ] Text doesn't get smaller than 14px base
---
## 5. Accessibility Baseline
- [ ] Color contrast ≥ WCAG AA for body text
- [ ] `<button>` has accessible label (`aria-label` if icon-only)
- [ ] Theme toggle has `aria-label` that reflects current state
- [ ] Skip-to-content link (for long navigation)
- [ ] Focus states visible (don't remove outline without replacement)
- [ ] `prefers-reduced-motion` respected for animations
---
## 6. Performance Hygiene
- [ ] No unbounded CSS (`* { animation: ... }`)
- [ ] Images have `loading="lazy"` where below fold
- [ ] Fonts loaded with `font-display: swap`
- [ ] No blocking scripts in `<head>` (use `defer` or `async`)
---
## 7. SEO & Social Preview
- [ ] Unique `<title>` per page
- [ ] `<meta description>` present and relevant
- [ ] Open Graph tags: `og:title`, `og:description`, `og:image`, `og:url`, `og:type`
- [ ] Twitter Card meta
- [ ] `og:image` file actually exists (not just referenced)
- [ ] Canonical URL
- [ ] `hreflang` in sitemap.xml for multilingual sites
---
## When to Apply
- Any `/dr-do` that modifies `.html`, `.php` templates, `.css`, `.vue`, `.tsx` files touching UI
- Any task with type "Website Development" or "Frontend"From Arcanada-one/datarim, MIT.
More from Arcanada-one/datarim
- 0.642score
human-outcome-reporting
Arcanada-one
Explain human-facing task outcomes with requirements, evidence, honest acceptance status and read-only re-explanation, inside or outside Datarim.
SkillAFreshness: A★ 16Claude Code +9 - 0.640score
finishing-a-development-branch
Arcanada-one
Use when implementation is complete and all tests pass.
SkillAFreshness: A★ 16Claude Code +9 - 0.639score
hypothesis-validation
Arcanada-one
Use when a product decision depends on an uncertain claim and needs a bounded, falsifiable check.
SkillAFreshness: A★ 16Claude Code +9 - 0.637score
customer-delivery
Arcanada-one
Enforce delivery from a verbatim requirement through pre-work knowledge selection, production evidence, and disposition; excludes enabling-only closure.
SkillAFreshness: A★ 16Claude Code +9 - 0.637score
artifact-context
Arcanada-one
Canonical conventions for native agents generating or editing Datarim artifacts, including stage headers, frontmatter, and exact contract quotations.
SkillAFreshness: A★ 16Claude Code +9 - 0.637score
cta-format
Arcanada-one
Canonical CTA "Next Step" block format for every /dr-* command and pipeline agent.
SkillAFreshness: A★ 16Claude Code +9 - 0.637score
ai-quality
Arcanada-one
Five pillars of AI-assisted development — decomposition, TDD, architecture-first, focused work, context.
SkillAFreshness: A★ 16Claude Code +9 - 0.637score
brainstorming
Arcanada-one
MUST use this before any creative work — features, components, functionality, behavior changes.
SkillAFreshness: A★ 16Claude Code +9 - 0.637score
compliance
Arcanada-one
Post-QA hardening — detects task type (code, docs, research, legal, content, infra) and applies the matching verification checklist before archiving.
SkillAFreshness: A★ 16Claude Code +9 - 0.637score
consilium
Arcanada-one
Assemble a panel of Datarim agents for multi-perspective analysis of decisions.
SkillAFreshness: A★ 16Claude Code +9 - 0.637score
context-window-self-clearing
Arcanada-one
Preserve Datarim task continuity while orchestrated Claude Code or Codex sessions compact or clear context at deterministic pressure thresholds.
SkillAFreshness: A★ 16Claude Code +9 - 0.637score
adversarial-review
Arcanada-one
Forces an adversarial mindset on a plan, PRD, design, or code change — break it rather than bless it.
SkillAFreshness: A★ 16Claude Code +9
Signals
- Stars
- 16
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Oct 18, 2026 (11 days ago)
- Last release
- Oct 22, 2026 (7 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/Arcanada-one/datarim
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Arcanada-one
- 0.642score
human-outcome-reporting
Arcanada-one
Explain human-facing task outcomes with requirements, evidence, honest acceptance status and read-only re-explanation, inside or outside Datarim.
SkillAFreshness: A★ 16Claude Code +9 - 0.640score
finishing-a-development-branch
Arcanada-one
Use when implementation is complete and all tests pass.
SkillAFreshness: A★ 16Claude Code +9 - 0.639score
hypothesis-validation
Arcanada-one
Use when a product decision depends on an uncertain claim and needs a bounded, falsifiable check.
SkillAFreshness: A★ 16Claude Code +9 - 0.637score
brainstorming
Arcanada-one
MUST use this before any creative work — features, components, functionality, behavior changes.
SkillAFreshness: A★ 16Claude Code +9 - 0.637score
artifact-context
Arcanada-one
Canonical conventions for native agents generating or editing Datarim artifacts, including stage headers, frontmatter, and exact contract quotations.
SkillAFreshness: A★ 16Claude Code +9 - 0.637score
ai-quality
Arcanada-one
Five pillars of AI-assisted development — decomposition, TDD, architecture-first, focused work, context.
SkillAFreshness: A★ 16Claude Code +9
Cite this page
frontend-ui skill. Agent Mart. https://agentmart.dev/skills/arcanada-one-frontend-ui (last updated 2026-10-24)