This skill is for aligning the names used in design systems and UI implementation with Web standards and responsibility boundaries. Do not decide naming based on appearance or convention; judge based on the meaning of HTML and CSS, responsibilities, reuse contracts, and scope of application.
When to use this skill
- When deciding the official names for a design system or UI library
ContainerWrapperBlockTextWhen reviewing designs or documents that contain ambiguous terms such asLinkとButton、NavigationとMenu、PatternとComponentとTemplateWhen separating out- When organizing the naming of layout wrappers, spacing, column structures, and text types
- When unifying glossaries, implementation guides, Figma names, CMS names, and review comments
What to check first
- Does the term have an established meaning in Web standards?
- Does the name express responsibility rather than appearance?
- Is it structure, behavior, a reuse unit, a page rendering definition, or an appearance variation?
- Does it have a reuse contract managed from a single source?
- Is it a higher-level definition applied to the entire page?
Only when there is not enough information and the above judgments cannot be made, briefly check the following.
- What HTML element is the entity?
- Does it involve state changes or JavaScript?
- Is it reused from a single definition?
- Is it a rendering definition for the entire page, or a local UI fragment?
Most important policies
- Do not make terminology contradict existing Web standards
- Name by responsibility, not by appearance
- Do not confuse structure, behavior, reuse units, page rendering definitions, and themes
- Do not use overly broad generic terms as official names
- Make design boundaries and reuse conditions understandable from the name
Terminology criteria
Element
- Refers to an HTML element itself, or the smallest unit directly corresponding to an HTML element
- For generic terms for HTML elements, prefer
Elementprioritize - Do not call every element
BlockModuleWidgetnot called
Section
- Refers to a semantic or structural section within a page
sectionThe element is the first candidate, but depending on context,articleetc. may be used- Do not use in the sense of a content-width wrapper
Sectionnot use
Container
- CSS の
containerRefers only to elements to which -family properties are applied section containerCall it together with the related target, as in- Do not call a structural wrapper for content-width control
Containernot called
Inner / Outer
Innerrefers to an inner wrapper responsible for content-width control or centeringOuterrefers to an outer wrapper responsible for external spacing, surrounding placement, and adjusting relationships with the surroundingsInner / Outershould not be used alone as an all-purpose wrapper name; handle it together with the related target, as insection innercard outertreat as a set with related targets, as inInner / OuterDo not confuse with the concept of a container query target
Gutter
- Refers to inline-direction spacing that protects between the content edge and the viewport edge
- Values should be tokenized and not replaced with ad hoc padding adjustments per Section
- The spacing between columns or elements is
Gutternot called
Gap
- refers to the spacing between child elements in Flex, Grid, Multi-column, etc.
- The distance between rows, columns, cards, and chips is
gaphandled with the concept of - In normal flow,
marginをGapnot called
Columns / Flex Columns / Grid / Row
Columnsrefers only to column placement by CSS Multi-column Layout- Column placement by Flexbox is
Flex Columnscalled - Structural placement by CSS Grid Layout is
Gridcalled Rowis a placement result that holds in the parent layout context and is not defined as an independent element name
Paragraph / Rich Text
- A single paragraph, or a single text block, is
Paragraphcalled - An editing area that contains multiple inline decorations or multiple types of child elements is
Rich Textcalled - A single paragraph, inline text, and long-form editing area are collectively
Textnot called
Link / Button
<a>An element that usesLinkis called<button>と<input type="submit"><input type="button"><input type="reset">はButtontreat as- Merely looking like a button does not mean
Buttonshould be named <a role="button">is a boundary case andButtonis close to, but in principle the implementation itself should be avoided- ARIA role should not be the primary determinant of the official name
Navigation / Menu
- Navigation flows within a site or app are
Navigationcalled - If necessary,
Primary NavigationFooter NavigationLocal Navigationsupplement the responsibility as in - UI for command execution or operation selection is
Menucalled - Site navigation flows
Menuare not called, and operation menus areNavalso not called
Template / Pattern / Component / Dynamic Element / Theme
Templaterefers to a rendering definition applied at the page level or an equivalent higher-level unitPatternrefers to a static, reusable display fragment and does not assume dynamic data or conditional logicComponentrefers to a reusable unit managed from a single source and having replaceable input pointsDynamic Elementrefers to behavior-centric UI involving JavaScript and state transitions, andComponentis not mutually exclusive withThemerefers to differences in appearance, tokens, typography, color, spacing, and default layout on top of a shared architecture- Static fragments
Templateare not called, and mere duplicates are not automaticallyComponentregarded as, and the architecture itselfThemeis not called
Deprecated term
Block
display: blockeasily conflicts with existing meanings such as, and is too ambiguous as a general generic term
Wrapper
- Does not indicate what responsibility the wrapper has
- For width control,
Inner, and for externally related layout,Outerprioritize
Text
- Cannot distinguish between a single paragraph, inline text, and a long-form editing area
Widget / Module
- The scope of responsibility is ambiguous, making it hard to express design boundaries
Recommended correspondence table
| Usage | Recommended term | Discouraged term |
|---|---|---|
| Generic term for HTML elements | Element | Block, Module, Widget |
| Section boundary | Section | Group |
| Element with CSS container functionality | Container | Generic container, Wrapper |
| Content width wrapper | Inner | Container, Wrapper |
| Wrapper for external related-type layout | Outer | Wrapper |
| Outer protective margin | Gutter | Padding, Column gutter |
| Inter-element margin | Gap | Gutter |
| Column layout via Multi-column | Columns | Flex Columns, Grid Columns |
| Column layout via Flex | Flex Columns | Columns |
| Structural layout via Grid | Grid | Columns, Grid Columns |
| Single paragraph | Paragraph | Text |
| Long-form editing area | Rich Text | Text |
<a> |
Link | Button, Link Button |
<button> |
Button | Link Button |
| Site navigation flow | Navigation | Menu |
| Action menu | Menu | Nav |
| Static reusable fragment | Pattern | Template |
| Page rendering definition | Template | Pattern |
| Unit with a reuse contract | Component | Static copy |
| Behavior-centric UI | Dynamic Element | Collective term for Component |
| Appearance difference | Theme | Architecture |
Decision flow
- Check whether the meaning of that term is established in Web standards
- Check whether the name is appearance-driven
- Determine whether it is a static display fragment or dynamic UI
- If it is a single source with a reuse contract, consider
Componentconsider - If it is a page-level and conditional rendering definition, consider
Templateconsider - Otherwise, narrow it down to a more specific term such as
ElementSectionPatternnarrow down to more specific terms such as
Documentation operation rules
- For every official term, define what it refers to, what it does not refer to, where it is used, and where it is not used
- Make UI labels and official names match as much as possible
- Treat additions or changes to terms not as mere notation fixes but as compatibility changes
- Even when allowing colloquial names, define an official name separately
Policy for output
- First, clarify which of
ElementSectionContainerInnerOuterGutterGapColumnsFlex ColumnsGridParagraphRich TextLinkButtonNavigationMenuPatternComponentDynamic ElementTemplateThemethe target is handled as - When rejecting an existing name, briefly indicate what is risky. Perspectives are conflict with Web standards, appearance-driven naming, ambiguity of responsibility, and unclear design boundaries
ContainerIfInneris used as a content width wrapper, prioritize replacing it withWrapperBlockTextFor ambiguous terms such asPatternComponentTemplate, propose breaking them down into terms with clearer responsibilities
Final check
- Does that name contradict the existing meanings of HTML and CSS?
- Does that name express responsibility rather than appearance?
- Are structure, behavior, reuse unit, page rendering definition, and theme not being conflated?
- Can the reuse conditions and management unit be understood from the name?
- Is an overly broad generic term not being made the official name?
- Are inconsistencies between UI labels, implementation names, and document names left unaddressed?
- Is the scope of impact of terminology changes being checked?