수정자 (m_)
수정자(m_)는 블록 또는 내부 요소의 정적 변형을 표현합니다.
항상 구조 클래스와 함께 사용하며 구조 계층을 만들거나 변경하지 않습니다.
접두사의 범위는 접두사 기준표를 참고합니다.
정적 변형과 실행 상태
섹션 제목: “정적 변형과 실행 상태”m_: 크기·강조 수준·표현 유형처럼 구조에 부여한 정적 변형.data-state등 상태 속성: 사용자 동작이나 처리 결과에 따라 바뀌는 열림·로딩·완료·오류.- 네이티브·표준 ARIA 상태:
dialog[open],details[open],:popover-open,disabled,aria-selected등 해당 의미의 기존 상태 계약이 정본입니다. 같은 상태를 별도 data-state로 중복 저장하지 않습니다.
JS가 열림을 표현하기 위해 m_open을 토글하지 않습니다. CSS는 상태 속성을 해석합니다. 구체적인 구현은 상태 기반 UI를 따릅니다.
m_alert_error처럼 오류 안내의 고정된 표현 유형과 입력 검증 결과인 실행 상태 data-state="error"는 구분합니다. 이름에 error가 있다는 이유만으로 일괄 변환하지 않고, 실제로 무엇이 바뀌는지 판단합니다.
실제 사용으로 판단하기
섹션 제목: “실제 사용으로 판단하기”변경자를 추가하기 전에 현재 구분할 기본형 또는 서로 다른 사용 형태가 있는지 확인합니다.
- 같은 소유 구조의 모든 사용처가 항상 동일한 변경자를 필요로 하면 해당 표현을 기본 스타일로 합칩니다.
- 단일 사용처에 가상의 기본형을 만들어 변경자를 붙이지 않습니다. 미래에 쓸 가능성만으로 분리하지 않습니다.
- 제거하면 스타일이 달라진다는 사실만으로 변경자가 필요하다고 판단하지 않습니다. 실제로 구분할 사용 형태가 있어야 합니다.
- 서로 다른 실제 변형들이 공존하면 변경자 없는 사용처가 없다는 이유만으로 모두 합치지 않습니다. 모바일에서만 나타나는 차이도 실제 변형입니다.
- 같은 변경자 이름도 소유 구조와 부착 위치별로 판단합니다. 선택자에 매칭되지 않거나 기본값·다른 조건과 효과가 중복되면 그 위치를 정리합니다.
예를 들어 프로젝트의 모든 카드가 동일한 강조 표현을 사용한다면 그 표현은 카드의 기본값입니다. 일반 카드와 강조 카드가 실제로 함께 사용될 때는 card와 card m_emphasis로 구분할 수 있습니다.
재사용 라이브러리는 문서·데모로 지원하는 실제 기본형과 옵션을 계약으로 가질 수 있습니다. 한 소비 프로젝트에서 옵션 하나만 사용한다고 라이브러리 원본의 다른 지원 형태를 삭제하지 않습니다. 프로젝트 전용 추상화와 라이브러리의 지원 범위를 구분합니다.
이름과 조합
섹션 제목: “이름과 조합”- 블록 또는 내부 요소와 병용하며 단독으로 사용하지 않습니다.
- 이름은 의미·규칙을 드러냅니다.
.red,.big보다.m_alert_error,.m_size_large처럼 정의된 의미를 사용합니다. - 구조 변경이 필요하면 수정자 대신 구조 설계를 검토합니다.
- 조합·미디어쿼리·상태 조건의 충돌과 선택자 명시도를 검증합니다. 정리 후 관련 미사용 CSS도 함께 확인합니다.