네이티브 리치 텍스트 CSS 네임스페이스
내부 XHTML 스타일시트는 기존 네이티브 리치 텍스트 디코더를 통해 CSS 네임스페이스 선언과 한정된 요소 및 속성 selector를 지원합니다
<body xmlns="http://www.w3.org/1999/xhtml" xmlns:meta="urn:review">
<style>
@namespace h "http://www.w3.org/1999/xhtml";
@namespace review "urn:review";
h|span[review|status="ready"] { color: #204080; font-weight: bold }
</style>
<p><span meta:status="ready">Approved</span></p>
</body>
CSS 접두사는 XML 접두사와 독립적으로 네임스페이스 URI를 식별하므로, 예제의 review|status는 meta:status와 매칭됩니다. 두 접두사가 모두 urn:review로 해석되기 때문입니다
접두사 이름은 대소문자를 구분하고 일반 CSS 식별자 이스케이프를 받으며, 네임스페이스 URI 값은 인용 문자열과 인용 또는 비인용 url() 문법을 받습니다
비인용 url 토큰 안의 주석은 그대로 URI 문자로 남고, 비인용 URI 주변의 공백은 값에서 제외됩니다
접두사의 마지막 유효 선언이 그 스타일 요소 안에서 이기고, 마지막 default 선언이 독립적으로 이기며, 바인딩은 다른 스타일 요소로 새지 않습니다
선언은 스타일 규칙과 인식되는 비-import at-rule 앞에 두세요. 알 수 없는 무시되는 at-rule은 선언 영역을 닫지 않습니다
한정 이름과 기본 네임스페이스
h|span은 h에 선언된 URI의 로컬 span 이름과 매칭되고, *|span은 어떤 네임스페이스든 받으며, |span은 네임스페이스 없음을 요구합니다
h|*는 선언된 URI의 어떤 요소 이름과도 매칭됩니다. 디코더는 기존 지원 XHTML 요소 프로파일을 계속 소비합니다
@namespace "urn:review"; 같은 default 선언은 한정되지 않은 요소 selector와 암시적 universal selector가 있는 보통 복합체를 제한합니다
빈 default URI는 네임스페이스 없는 요소를 고르고, 리터럴 URI "*"는 보통 URI로서 *|span의 와일드카드 접두사와 다릅니다
속성 selector는 선언된 접두사, 와일드카드 접두사, 명시적 빈 접두사를 지원합니다. 접두사 없는 속성은 기본 요소 네임스페이스와 무관하게 네임스페이스 없음에 남습니다
XML 네임스페이스 선언은 보통 속성으로 세지 않습니다. 네임스페이스 해석은 속성 자신의 요소 스코프를 따르고 내장 xml 접두사를 포함해 로컬 접두사 가림을 존중합니다
함수형 selector
:is(), :where(), :not() 안의 대상 복합체는 명시적 type이나 universal selector가 없으면 기본 네임스페이스 제한을 생략합니다
명시적 universal selector는 그 제한을 유지합니다. 이전 조상 복합체, 상대 :has() 인수, 위치 selector의 of 필터는 보통 네임스페이스 매칭을 유지합니다
선언되지 않은 CSS 접두사는 그 selector를 무효화합니다. 관대한 is/where 목록은 다른 유효 분기를 유지할 수 있고, 엄격한 selector 그룹은 기존 그룹 전체 무효화 규칙을 유지합니다
저장 출력과 자원 한계
계산된 스타일은 네이티브 Pascal, Windows 작업, V1 콜백, Linux JSON과 V1 콜백을 통해 저장된 RV와 실제 위젯 appearance로 흐릅니다
기존 importance, 명시도, 소스 순서, 속성 상속 규칙은 네임스페이스 매칭 뒤에도 그대로 적용됩니다
네임스페이스 선언 저장소는 MaxNodes를 공유하고, 네임스페이스 스캔은 MaxTotalCodeUnits를 공유하며, 상속 속성 네임스페이스 조회는 유계 매칭과 스캔 작업을 청구합니다
취소와 예산 실패는 이전 디코더 출력과 커밋된 가져오기 상태를 보존합니다. 호출자는 원본 입력과 정상 한계로 재시도할 수 있습니다
외부 스타일시트, 조건부 미디어 규칙, 추가 상태 유사 클래스, 명시적 스코핑 루트, 테이블, 일반 CSS 레이아웃은 진행 중인 작업입니다