# Naming Conventions

Status: Mandatory
Date: 2026-07-03

## General

- Use clear domain-oriented names.
- Prefer explicit names over abbreviations.
- Keep naming consistent across Website, Builder, Backoffice.

## Files and Folders

- Folders: kebab-case.
- TypeScript files: kebab-case with suffix.
- Interfaces: PascalCase.
- Types: PascalCase.
- Enums: PascalCase.
- Constants: UPPER_SNAKE_CASE for true constants.

## Angular Artifacts

- Component: name.component.ts
- Container component: name.container.component.ts
- Facade: name.facade.ts
- Service: name.service.ts
- Adapter: name.adapter.ts
- Token: name.token.ts
- Guard: name.guard.ts
- Resolver: name.resolver.ts
- Pipe: name.pipe.ts

## Configuration Contracts

- Bootstrap payload root: BootstrapConfig.
- Domain segments named by function:
  - TenantConfig
  - BrandingConfig
  - ThemeConfig
  - FeatureFlagsConfig
  - NavigationConfig
  - PageConfig
  - SectionConfig
  - WidgetConfig

## Event and Action Naming

- Outputs: actionRequested, valueChanged, selectionChanged.
- Facade commands: loadX, updateX, saveX, publishX.
- Selectors/signals: xState, xViewModel, isXEnabled.

## Prohibited Names

- Generic names without domain meaning such as DataService or UtilsService.
- Tenant-coded names in frontend source.
- Brand-specific class names in reusable layers.
