interpreting-html
GitHub将渲染后的HTML类名映射回源代码,用于解析CSS Modules、Fluent UI和Griffel生成的样式,辅助Playwright DOM检查及浏览器样式调试。
Trigger Scenarios
Install
npx skills add github/replica --skill interpreting-html -g -y
SKILL.md
Frontmatter
{
"name": "interpreting-html",
"description": "Map rendered\/pasted HTML class names back to source code (CSS Modules, Fluent UI, Griffel). USE WHEN: inspecting Playwright DOM output, debugging styles in the browser, or reverse-engineering pasted HTML."
}
How to Interpret Pasted HTML Code
When the site is rendered to HTML, you can identify several aspects of the app code via HTML properties:
- Class names with the pattern
_camelCase_123ab_45correspond to class names applied from CSS Modules.- For example,
class="_headerWrapper_16arl_15"in HTML comes fromclassName={styles.headerWrapper}in React.
- For example,
- Class names prefixed with
fui-are derived from Fluent UI components.- These are Fluent component root elements. For example,
fui-Buttonis a<Button/>. - These are Fluent component sub-elements if they contain the
__delimiter (BEM style). For example,fui-Button__iconcomes from<Button icon={<SomeIcon20Regular/>}/>.
- These are Fluent component root elements. For example,
- Class names that follow the pattern
f123abcare Griffel-generated atomic classes. Reset classes use anr…hash, and sequence classes start with___. These are auto-generated and are not authored source identifiers. For example:class="f11589ue f1q5o8ev f1pdflbu fkfq4zb". Do not search these hashes to locate authored styles. data-*attributes may be authored in React, generated by a framework, or derived from dynamic state. Verify their origin before using them to locate source; do not assume their values are static.aria-labelattributes and text content often appear as literal strings in this prototype, so searching them can help locate the corresponding JSX. For example,Create agentappears directly in the agents route. Values may also come from props, data, or localization, so a rendered string does not always have an exact literal match in source.
Interpreting React Grab Context
The prototype's customized React Grab context is not raw DOM output. It decodes CSS Module class names to their local names and omits Fluent/Griffel classes. A cleaned class such as brandLink can therefore correspond to a hashed CSS Module class in the browser.
The in Component (path:line:column) entries describe component usage or rendering ancestry, not necessarily component definitions. Components that render passed-in children may appear in the ancestry even when another component created that JSX. Use the reported location to inspect the relevant call site or component body before deciding which source to edit.
Version History
- f19c050 Current 2026-11-07 08:51


