Use this template when proposing a new concept, a modification to an existing concept, or a new named composition. Copy the relevant section below into a new GitHub issue and fill in all fields.
Incomplete proposals will be returned for revision before discussion begins. The template exists because the quality of a proposal is almost entirely determined by the specificity of the motivating application and the precision of the before/after SDL description — not by the elegance of the abstract definition.
Select one:
- New concept (region type, behaviour, property, or named composition)
- Modification to an existing concept
- New named composition only
- Correction to an existing definition
One or two sentences. What is the concept and what structural pattern does it describe?
Name at least one real, publicly available application that exposes the gap this concept addresses. Vague references ("some apps do this") are not sufficient — name the application and describe the specific structural feature.
Application name:
Structural feature: Describe what the application does structurally. Be specific — which region, what behaviour, what happens when.
Why the current SDL cannot describe it cleanly: Quote the SDL description you would write today and explain exactly where it becomes ambiguous, incorrect, or silent.
Write the definition as it would appear in the specification. Follow the style of existing definitions: name the concept, describe what it is, list its properties or values if applicable, and give at least one example.
Concept name:
Definition:
Properties / values (if applicable):
Examples:
Write two complete SDL descriptions of the motivating application: one using only the current vocabulary (showing the gap), and one using the proposed concept (showing what it enables). This is the most important part of the proposal.
Before (current SDL, showing the gap):
[SDL description]
What is wrong or missing:
After (with proposed concept):
[SDL description]
What is now expressible that was not before:
Apply the proposed concept to at least one other application to verify it generalises. If the concept only applies to a single application, it may be too narrow.
Application:
SDL description with proposed concept:
[SDL description]
Does the proposed concept conflict with, overlap with, or render redundant any existing SDL concept? If yes, explain how the conflict should be resolved.
SDL describes structure, not implementation. Confirm that the proposed concept does not require knowledge of a specific framework, CSS technique, or JavaScript pattern to understand or apply.
- The concept can be described and understood without reference to any specific technology
- The concept can be applied to applications built in React, Angular, Vue, or any other framework
If you checked neither box, explain:
If accepted, which version number would this change warrant?
- Minor version increment (new concept or modified definition) — Draft 1.X
- Correction (no meaning change) — no version increment
If you are proposing a new worked example rather than a new concept, use this shorter form instead.
What structural patterns does it illustrate? Does it stress-test any existing concept in an interesting way?
[SDL description]
Any edge cases, ambiguities, or patterns worth calling out for readers.
- Yes — this should be treated as a concept modification and use the full proposal form
- No — this is a clarification or correction only