Shared UI/visual-design rule library for building polished, distinctive, multimedia-rich self-contained HTML stories. The Data2Story Designer and Programmer read it to choose a visual language (theme, type pairing, layout, components, motion) and implement it so every blog looks intentional and editorial, never templated. Use when designing or reshaping a story's look, picking fonts/colors/themes, building a hero/chart/card/map/audio component, adding motion or an interactive, or fixing a visual defect (invisible chart, overflow, broken media, AI-slop look). Not a pipeline stage — a design source consulted by other roles.
npx skills add https://github.com/QinghongLin/data2story-skill --skill frontend-design-pro
A shared design system for building beautiful, distinctive, multimedia-rich HTML stories. This is not a pipeline stage; it is a library the Designer reads to choose a visual language and the Programmer reads to implement it, so output looks like an editorial product, not a default template.
page_rhythm and per-section visuals, pick a theme and component vocabulary from here. Borrow tokens, layout, and component recipes; record the chosen theme in designer.json page_rhythm.:root variables and build each visual with the matching component recipe and motion/accessibility rules here.references/themes.json → anti_patterns.references/media_presentation.json.:root tokens so the whole page is coherent and re-themeable. See references/design_tokens.json for tokens and references/typography.json for concrete file://-safe font-pairing stacks.references/layout.json.prefers-reduced-motion, AA contrast, focus states, and "never autoplay sound." See references/motion.json for motion tokens, choreography, accessibility, and the anti-slop checklist.file://.references/design_tokens.json — color roles, data-color scales, fluid type scale, spacing/radius/shadow, themed via :root.references/layout.json — content column, full-bleed breakout, section rhythm, responsive grid, sticky patterns.references/components.json — recipes: hero/teaser, stat callouts, card deck, pull quote, chart/map frames, audio players, scrollytelling, before/after, guess-reveal, data table, references footer.references/media_presentation.json — how to present each channel (image, video, audio, chart, map, instance) richly, and the "all five channels by default" doctrine.references/themes.json — ready-made distinctive themes (token presets) and the anti-patterns to avoid.references/interaction_playbook.json — the deep interaction/craft playbook: craft principles, centerpiece doctrine, the universal engine (state + render + steps[]), and recipes for explorables/scrollytelling/guess-reveal.references/pitfalls.json — the 错题本 (mistakes-never-to-repeat ledger): real bugs from shipped runs, each with how a role detects it. Read before building.references/exemplars/cinematic_flagship.md — a proven cinematic-blog blueprint with copy-paste recipes (pick-a-side hero, accuracy scorecard, cinemagraph hero, continuous backdrop, publish-gate manifest).references/abstract_excellence.json — the positive flagship playbook for the dry / abstract / computational topic (chart-led / statistical / non-photographic): reframe hook, signature annotated chart, the reader's own position, disciplined typography, and the runnable-verify layer. Read whenever the topic resolves is_visual=false (especially is_computational=true) — the analogue of the cinematic recipes for stories with no photographable subject.references/typography.json — font-pairing catalog, file://-safe font stacks, and the ban list of generic/default type choices.references/finish.json — the editorial finish layer: the small polish details that lift a page from competent to crafted.references/motion.json — motion tokens, choreography, micro-interactions, accessibility, reduced-motion, performance, and the anti-slop checklist.references/quality_rubric.json — the shared design-quality rubric authors are scored against.A story is well-designed when it commits to one clear visual identity, uses several media channels with craft, reads cleanly on mobile and desktop, and could not be mistaken for a default template.
Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.
Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.
Set up Tailwind CSS v4 in Expo with react-native-css and NativeWind v5 for universal styling
Use Expo DOM components to run web code in a webview on native and as-is on web. Migrate web code to native incrementally.
Take qinghonglin/frontend-design-pro from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.