Component Documentation Browser
This skill provides access to comprehensive component documentation for fundamental-styles, SAP's CSS component library. Each component's documentation includes complete HTML examples with all variants, modifiers, states, and proper ARIA attributes extracted from Storybook stories.
When to Use This Skill
Use this skill when the user:
- Asks for HTML examples of any fundamental-styles component
- Needs to see all variants/modifiers for a component (e.g., "show me all button types")
- Wants working, copy-paste-ready HTML code
- Mentions Storybook examples or stories
- Asks "how do I use component X?"
- Needs to understand component structure and nesting
- References specific components by name (button, table, dialog, input, etc.)
How to Access Component Documentation
There are multiple ways to retrieve component documentation:
Method 1: Read Markdown Files Directly
The documentation lives in docs/components/ with one markdown file per component:
docs/components/button.md
docs/components/table.md
docs/components/input.md
docs/components/dialog.md
When to use: The user asks for a specific component by name, or you need complete documentation including frontmatter metadata.
Read the file and extract:
- Frontmatter (component name, selector, CSS file, category)
- All HTML examples with their headings
- Modifier descriptions
Method 2: Use MCP Tool (if available)
If you have access to the fundamental-styles MCP server, use the get_component_markdown tool:
get_component_markdown("button")
→ Returns structured JSON with all examples
get_component_markdown("input", examplesOnly: true)
→ Returns just the HTML code blocks
When to use: MCP server is available and you need structured programmatic access to the documentation.
Method 3: Browse the Component Index
Read docs/components/README.md to see all 140+ available components organized by category. Use this when the user asks "what components are available for X?" or needs to discover which component to use.
Component Organization
Components are organized into these categories:
- Actions (4): button, link, menu, split-button
- Forms (26): input, select, checkbox, radio, textarea, switch, date-picker, time-picker, etc.
- Navigation (8): tabs, breadcrumb, side-nav, pagination, menu, shellbar, etc.
- Layout (11): panel, card, page, section, bar, toolbar, wizard, etc.
- Data Display (23): table, list, tree, avatar, calendar, icon, object-status, etc.
- Feedback (15): dialog, popover, message-strip, alert, notification, busy-indicator, etc.
What the Documentation Contains
Each component markdown file includes:
- Frontmatter: Component metadata (name, selector, CSS file, category, tags)
- HTML Examples: Complete working code for every variant
- Modifiers: All available modifier classes (e.g.,
fd-button--emphasized)
- States: State classes (e.g.,
is-disabled, is-selected)
- Elements: Child elements with their own modifiers (e.g.,
fd-table__cell)
- ARIA Attributes: Proper accessibility markup
Example Workflows
User asks: "Show me button examples"
- Read
docs/components/button.md
- Extract all HTML examples (there are 20+ variants)
- Present relevant examples based on context:
- Primary/emphasized buttons
- Positive/negative buttons
- Transparent/ghost buttons
- Compact buttons
- Icon buttons
- Disabled states
User asks: "How do I make a compact table?"
- Read
docs/components/table.md
- Find the compact modifier section
- Show HTML example with
fd-table--compact class
- Explain how compact mode works with other modifiers
User asks: "What's available for navigation?"
- Read
docs/components/README.md
- Extract the Navigation category section
- List all navigation components with brief descriptions
- Offer to show examples for any specific component
Component Naming Conventions
Components follow BEM naming:
- Base class:
fd-{component} (e.g., fd-button, fd-table)
- Modifiers:
fd-{component}--{modifier} (e.g., fd-button--emphasized)
- Elements:
fd-{component}__{element} (e.g., fd-table__cell)
- States:
is-{state} (e.g., is-disabled, is-selected)
When users refer to components, they might use:
- Formal names: "button component", "table component"
- Just the component: "button", "table"
- CSS class: "fd-button", "fd-table"
- UI concept: "submit button", "data grid"
Map these to the correct markdown file (e.g., "submit button" → button.md).
Tips for Using This Skill
Always read the markdown file - Don't guess at HTML structure or modifiers. The documentation is authoritative and complete.
Look for multiple examples - Most components have 10-20+ examples showing different use cases. Show the most relevant one, but mention others exist.
Include ARIA attributes - All examples include proper accessibility markup. Don't strip these out.
Explain modifiers - When showing an example with modifiers, briefly explain what each one does (the markdown has descriptions).
Combine with other tools - If the user needs to actually build something, combine this skill with file editing to create their component.
Common Components Quick Reference
| User Need |
Component |
File |
| Button, link, action |
button, link |
button.md, link.md |
| Text input, password |
input |
input.md |
| Dropdown, select |
select |
select.md |
| Checkbox, radio |
checkbox, radio |
checkbox.md, radio.md |
| Toggle switch |
switch |
switch.md |
| Date picker |
date-picker |
date-picker.md |
| Data table |
table |
table.md |
| List of items |
list |
list.md |
| Modal, popup |
dialog |
dialog.md |
| Tooltip, help text |
popover |
popover.md |
| Alert, message |
message-strip, alert |
message-strip.md, alert.md |
| Tabs |
tabs |
tabs.md |
| Navigation menu |
menu, side-nav |
menu.md, side-nav.md |
| Form layout |
form-item |
form-item.md |
| Icons |
icon |
icon.md |
Related Tools and Skills
- MCP tool
get_component_markdown: Programmatic access to documentation (if MCP server available)
- MCP tool
list_components: Browse all available components with filters
- MCP tool
get_component_html: Get specific HTML variants
- MCP tool
search_components: Search by keyword
- Skill
/bem-naming: Learn BEM naming conventions for fundamental-styles
- Skill
/component-composition: Learn how to combine components correctly
Responding to the User
When the user asks for component documentation:
- Read the relevant markdown file(s)
- Show the specific example(s) they need - Don't dump all 20 examples, show 1-3 most relevant
- Explain the key modifiers - Help them understand what classes do
- Provide context - Brief note on when to use this variant
- Offer to show more - "There are 15 other button variants available. Want to see others?"
Keep responses focused and practical. The goal is to help them build their UI, not to document every possible variation.
1---2name: component-docs3description: Browse fundamental-styles component documentation with complete HTML examples from 140+ auto-generated markdown files. Use this when the user asks about component examples, modifiers, variants, HTML structure, or wants to see working code for any fundamental-styles component (button, table, input, dialog, etc.). Also trigger when they mention Storybook examples, CSS components, or need copy-paste-ready HTML.4---56# Component Documentation Browser78This skill provides access to comprehensive component documentation for fundamental-styles, SAP's CSS component library. Each component's documentation includes complete HTML examples with all variants, modifiers, states, and proper ARIA attributes extracted from Storybook stories.910## When to Use This Skill1112Use this skill when the user:13- Asks for HTML examples of any fundamental-styles component14- Needs to see all variants/modifiers for a component (e.g., "show me all button types")15- Wants working, copy-paste-ready HTML code16- Mentions Storybook examples or stories17- Asks "how do I use component X?"18- Needs to understand component structure and nesting19- References specific components by name (button, table, dialog, input, etc.)2021## How to Access Component Documentation2223There are multiple ways to retrieve component documentation:2425### Method 1: Read Markdown Files Directly2627The documentation lives in `docs/components/` with one markdown file per component:2829```30docs/components/button.md31docs/components/table.md32docs/components/input.md33docs/components/dialog.md34```3536**When to use**: The user asks for a specific component by name, or you need complete documentation including frontmatter metadata.3738Read the file and extract:39- Frontmatter (component name, selector, CSS file, category)40- All HTML examples with their headings41- Modifier descriptions4243### Method 2: Use MCP Tool (if available)4445If you have access to the `fundamental-styles` MCP server, use the `get_component_markdown` tool:4647```48get_component_markdown("button")49→ Returns structured JSON with all examples5051get_component_markdown("input", examplesOnly: true)52→ Returns just the HTML code blocks53```5455**When to use**: MCP server is available and you need structured programmatic access to the documentation.5657### Method 3: Browse the Component Index5859Read `docs/components/README.md` to see all 140+ available components organized by category. Use this when the user asks "what components are available for X?" or needs to discover which component to use.6061## Component Organization6263Components are organized into these categories:6465- **Actions** (4): button, link, menu, split-button66- **Forms** (26): input, select, checkbox, radio, textarea, switch, date-picker, time-picker, etc.67- **Navigation** (8): tabs, breadcrumb, side-nav, pagination, menu, shellbar, etc.68- **Layout** (11): panel, card, page, section, bar, toolbar, wizard, etc.69- **Data Display** (23): table, list, tree, avatar, calendar, icon, object-status, etc.70- **Feedback** (15): dialog, popover, message-strip, alert, notification, busy-indicator, etc.7172## What the Documentation Contains7374Each component markdown file includes:75761. **Frontmatter**: Component metadata (name, selector, CSS file, category, tags)772. **HTML Examples**: Complete working code for every variant783. **Modifiers**: All available modifier classes (e.g., `fd-button--emphasized`)794. **States**: State classes (e.g., `is-disabled`, `is-selected`)805. **Elements**: Child elements with their own modifiers (e.g., `fd-table__cell`)816. **ARIA Attributes**: Proper accessibility markup8283## Example Workflows8485### User asks: "Show me button examples"86871. Read `docs/components/button.md`882. Extract all HTML examples (there are 20+ variants)893. Present relevant examples based on context:90 - Primary/emphasized buttons91 - Positive/negative buttons92 - Transparent/ghost buttons93 - Compact buttons94 - Icon buttons95 - Disabled states9697### User asks: "How do I make a compact table?"98991. Read `docs/components/table.md`1002. Find the compact modifier section1013. Show HTML example with `fd-table--compact` class1024. Explain how compact mode works with other modifiers103104### User asks: "What's available for navigation?"1051061. Read `docs/components/README.md`1072. Extract the Navigation category section1083. List all navigation components with brief descriptions1094. Offer to show examples for any specific component110111## Component Naming Conventions112113Components follow BEM naming:114- **Base class**: `fd-{component}` (e.g., `fd-button`, `fd-table`)115- **Modifiers**: `fd-{component}--{modifier}` (e.g., `fd-button--emphasized`)116- **Elements**: `fd-{component}__{element}` (e.g., `fd-table__cell`)117- **States**: `is-{state}` (e.g., `is-disabled`, `is-selected`)118119When users refer to components, they might use:120- Formal names: "button component", "table component"121- Just the component: "button", "table"122- CSS class: "fd-button", "fd-table"123- UI concept: "submit button", "data grid"124125Map these to the correct markdown file (e.g., "submit button" → `button.md`).126127## Tips for Using This Skill1281291. **Always read the markdown file** - Don't guess at HTML structure or modifiers. The documentation is authoritative and complete.1301312. **Look for multiple examples** - Most components have 10-20+ examples showing different use cases. Show the most relevant one, but mention others exist.1321333. **Include ARIA attributes** - All examples include proper accessibility markup. Don't strip these out.1341354. **Explain modifiers** - When showing an example with modifiers, briefly explain what each one does (the markdown has descriptions).1361375. **Combine with other tools** - If the user needs to actually build something, combine this skill with file editing to create their component.138139## Common Components Quick Reference140141| User Need | Component | File |142|-----------|-----------|------|143| Button, link, action | button, link | button.md, link.md |144| Text input, password | input | input.md |145| Dropdown, select | select | select.md |146| Checkbox, radio | checkbox, radio | checkbox.md, radio.md |147| Toggle switch | switch | switch.md |148| Date picker | date-picker | date-picker.md |149| Data table | table | table.md |150| List of items | list | list.md |151| Modal, popup | dialog | dialog.md |152| Tooltip, help text | popover | popover.md |153| Alert, message | message-strip, alert | message-strip.md, alert.md |154| Tabs | tabs | tabs.md |155| Navigation menu | menu, side-nav | menu.md, side-nav.md |156| Form layout | form-item | form-item.md |157| Icons | icon | icon.md |158159## Related Tools and Skills160161- **MCP tool `get_component_markdown`**: Programmatic access to documentation (if MCP server available)162- **MCP tool `list_components`**: Browse all available components with filters163- **MCP tool `get_component_html`**: Get specific HTML variants164- **MCP tool `search_components`**: Search by keyword165- **Skill `/bem-naming`**: Learn BEM naming conventions for fundamental-styles166- **Skill `/component-composition`**: Learn how to combine components correctly167168## Responding to the User169170When the user asks for component documentation:1711721. **Read the relevant markdown file(s)**1732. **Show the specific example(s) they need** - Don't dump all 20 examples, show 1-3 most relevant1743. **Explain the key modifiers** - Help them understand what classes do1754. **Provide context** - Brief note on when to use this variant1765. **Offer to show more** - "There are 15 other button variants available. Want to see others?"177178Keep responses focused and practical. The goal is to help them build their UI, not to document every possible variation.