optimizely-frontend-component
- Repo stars 0
- Author updated Live
- Author repo skills-registry
- Domain
- Design
- Compatible agents
-
- Claude Code
- Cursor
- Cline
- Codex
- Windsurf
- Gemini CLI
- +20
- Trust score
- 88 / 100 · community maintained
- Author / version / license
- @tomevault-io · no license declared
- Token usage
- Lean
- Setup complexity
- Guided setup
- External API key
- Not required
- Operating systems
- macOS · Linux · Windows
- Runtime requirements
- No special requirements
- Permissions
-
- Read-only
- Write / modify
- Shell exec
- Network behavior
- Local-only
- Install commands
- 26 variants
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
Heads up: 未限定 allowed-tools,默认拥有全部工具权限。
---
name: optimizely-frontend-component
description: Conventions for building accessible, RTL-ready, modular layout/UI components in this Next.js 16…
category: design
runtime: no special runtime
---
# optimizely-frontend-component output preview
## PART A: Task fit
- Use case: Conventions for building accessible, RTL-ready, modular layout/UI components in this Next.js 16 + React 19 + Tailwind 4 + Headless UI 2 codebase. Use this skill whenever the user asks to: (1) build, refactor, or extend any component under src/components/layout/** (Header, Footer, Nav, Sidebar, Drawer); (2) add interactive UI primitives like dropdowns, mega menus, dialogs, popovers, disclosures, command palettes, language switchers, mobile menus; (3) make existing UI keyboard-accessible or RTL-safe; (4) introduce a new family of UI components (cards, banners, ctas) where the modular file layout, data colocation, and a11y/RTL principles below apply. This skill captures the patterns used in src/components/layout/Header/ and src/components/layout/Footer/ — the canonical references. Use when this capability is needed..
- Inputs: target material, constraints, expected output, and acceptance criteria.
- Evidence boundary: follow “When to apply this skill / Core principles / Quick start” and do not present inference as author intent.
## PART B: Execution result
- **01** The card summarizes the use case; runtime output centers on “Conventions for building accessible, RTL-ready, modular layout/UI components in this Next.js 16 + React 19 + Tailwind 4 + Headless UI 2 codebase. Use this skill whenever the user asks to: (1) build, refactor, or extend any component under src/components/layout/** (Header, Footer, Nav, Sidebar, Drawer); (2) add interactive UI primitives like dropdowns, mega menus, dialogs, popovers, disclosures, command palettes, language switchers, mobile menus; (3) make existing UI keyboard-accessible or RTL-safe; (4) introduce a new family of UI components (cards, banners, ctas) where the modular file layout, data colocation, and a11y/RTL principles below apply. This skill captures the patterns used in src/components/layout/Header/ and src/components/layout/Footer/ — the canonical references. Use when this capability is needed.”.
- **02** When the source has headings, the agent prioritizes “When to apply this skill / Core principles / Quick start” so the result follows the author’s structure.
- **03** Typical output includes task judgment, concrete steps, required commands or file edits, validation, and follow-up options.
- **04** Risk context follows the fingerprint: read files, write/modify files, run shell commands; mostly runs locally; usually needs no extra API key.
## Running Rules
- read files, write/modify files, run shell commands; mostly runs locally; usually needs no extra API key.
- Validate with a small sample before expanding scope.
- Return the result, validation criteria, and next iteration options. The source does not require a stable slash command. After installation, invoke the skill by name and describe the task.
Name target files or source material, expected output, forbidden changes, and whether network or shell access is allowed. Permission fingerprint: read files, write/modify files, run shell commands.
Start with a small task and check whether the result follows “When to apply this skill / Core principles / Quick start”. Inspect diffs, logs, previews, or tests before expanding scope.
Confirm the final output includes a concrete result, evidence, and next action. If it stays generic, tighten inputs, boundaries, and acceptance criteria.
---
name: optimizely-frontend-component
description: Conventions for building accessible, RTL-ready, modular layout/UI components in this Next.js 16…
category: design
source: tomevault-io/skills-registry
---
# optimizely-frontend-component
## When to use
- Conventions for building accessible, RTL-ready, modular layout/UI components in this Next.js 16 + React 19 + Tailwind…
- Use it when the task has clear inputs, repeatable steps, and validation criteria.
## What to provide
- Target material, scope, expected result, and forbidden changes.
- Whether network, commands, file writes, or external services are allowed.
## Execution rules
- Organize steps around “When to apply this skill / Core principles / Quick start” and keep inference separate from source facts.
- read files, write/modify files, run shell commands; mostly runs locally; usually needs no extra API key.
- Validate with a small sample before expanding the task.
## Output requirements
- Return the deliverable, key evidence, validation method, and next action.
- Mark missing information as unknown; do not invent commands, platforms, or dependencies. The author source anchors workflow facts; repository files anchor sources and commands; Fluxly only adds fit, limitations, and quality judgment.
skill "optimizely-frontend-component" {
input -> user goal + target files + boundaries + acceptance criteria
context -> When to apply this skill / Core principles / Quick start
rules -> SKILL.md triggers / order / output contract
runtime -> no special runtime | read files, write/modify files, run shell commands | mostly runs locally
guardrails -> usually needs no extra API key + small-sample validation + diff/log review
output -> copyable result + checklist + next iteration
} Optimizely Frontend Component Conventions
Principles for building UI components in this codebase. The Header at src/components/blocks/Header/ and Footer at src/components/blocks/Footer/ are the canonical reference implementations — when in doubt, mirror their structure.
When to apply this skill
Apply to anything that renders interactive UI:
- Layout chrome —
Header,Footer,Sidebar,Drawer, breadcrumbs. - Interactive primitives — dropdowns, mega menus, popovers, disclosures, dialogs, tooltips, tabs, listboxes, comboboxes, language switchers, mobile menus.
- Composable visual blocks where children may be added later (cards, banners, CTAs) and the structure should stay open for extension.
Do not apply this skill to pure CMS content type definitions (use optimizely-cms-content-types) or deployment scripts (use optimizely-frontend-hosting).
Core principles
Each principle has a topical reference under references/ with the full detail.
Modular file layout. One concern per file. Subcomponents live next to their parent in a feature folder. Data is colocated. →
references/file-layout.mdHeadless UI by default. Any interactive primitive that has a Headless UI equivalent uses it. Don't roll bespoke open/close state machines. The v2 specifics (when to use
transitionprop,anchorinstead of hand-positioning, the click-outside bug) matter. →references/headless-ui.mdAccessibility is part of "done." Native semantics first, visible focus rings on every interactive element, ARIA wired correctly on toggles, list semantics on lists. →
references/accessibility.mdRTL by default. Use logical CSS properties so
<html dir="rtl">flips the layout for free. Never hand-writedir="rtl"on individual elements. →references/rtl.mdOpen-for-extension data shapes. Schemas should let new entries (children, items, sections) render correctly with zero component edits. The mega menu pattern is the canonical example. →
references/mega-menu-pattern.mdServer-first, client when needed. Mark a file
"use client"only when it actually uses hooks, refs, event handlers, or browser APIs. →references/file-layout.md(Server vs client section)Keep visual styling out of CMS content types. Visual variants belong in display templates (see
optimizely-cms-content-types), not in component prop enums.High-level architecture and patterns. This skill captures the high-level architecture and patterns for layout components, including the rationale for the principles above and how they work together to create a scalable, maintainable codebase. →
references/layout-architecture.mdContent resolution. — how content resolution works for layout components, including the use of
getContentandgetLinkhelpers, theContentResolvercomponent, and best practices for structuring content types to work well with these patterns. →references/content-resolution.md
Quick start
For a typical new layout component (a drawer, a sidebar, a mega menu, etc.):
- Read
references/file-layout.mdfor the folder structure and TypeScript conventions. - Read
references/headless-ui.mdto pick the right primitive and avoid the v2 pitfalls. - Read
references/accessibility.mdandreferences/rtl.mdto know what "done" looks like. - Look at
references/header-reference.md(CMS driven) andreferences/footer-reference.md(CMS driven) for annotated walkthroughs of how each principle is applied. - If something breaks, check
references/troubleshooting.mdfirst — most frontend bugs in this codebase have already been encountered and documented.
Authoring checklist
Before considering any layout/UI component done:
- File layout follows
src/components/layout/<Feature>/with one concern per file; - Every interactive primitive uses Headless UI; no hand-rolled open/close state for things HUI covers.
npm run lintis clean;npx tsc --noEmitis clean.- Tab through every interactive surface — focus is always visible, Esc closes overlays, click-outside closes overlays.
- Set
<html dir="rtl">in DevTools and confirm the layout mirrors with no overlap, no off-canvas, and direction-implying icons (arrows) flip while neutral icons (chevrons-down) stay. - At the
lgbreakpoint boundary, desktop and mobile UIs are mutually exclusive. - Adding a new entry to the data file renders correctly with zero component edits.
References
references/file-layout.md— Folder structure, data colocation, server-vs-client split, naming, TypeScript conventions.references/headless-ui.md— Primitive lookup table, v2 specifics, annotated examples for Popover and Disclosure.references/accessibility.md— A11y checklist with the rationale and code patterns for each item.references/rtl.md— RTL principles, logical-property mapping,useDocumentLanguagehook, what to flip and what not to.references/mega-menu-pattern.md— Schema and adaptive-layout rules; how to add a new category with zero component edits.references/header-reference.md— Annotated walkthrough of the Header (state-owning shell, Headless UI, RTL toggle, mega menu, mobile drawer); the Header refactor fix log.references/footer-reference.md— Annotated walkthrough of the Footer (server-rendered, content-info landmark, link grid, social icons); the Footer audit fix log; responsive-grid defaults.references/troubleshooting.md— Click-outside doesn't close, Tab stops invisible, span-as-link, RTL doesn't mirror, hydration warnings, file-truncation recovery.references/search-reference— Annotated walkthrough of the Search
Source: abhinavssingh/training-saas-site — distributed by TomeVault.
Decide Fit First
Design Intent
How To Use It
Boundaries And Review