Signing, terms and clauses / Exclusions list
An exclusions list that is as visible as the inclusions
What a quote, warranty or scope does not cover, printed alongside what it does, so the boundary is stated rather than implied.
Why this block is harder than it looks
Exclusions are always set smaller and lower than inclusions, and that is exactly backwards for the reader most likely to be affected. The layout problem is that an exclusions list must be visually parallel to the inclusions list, so the two can be read as a pair, while remaining clearly the negative of it. Doing that with a colour or an icon fails on paper. Doing it by shrinking the type turns the exclusions into small print, which is the appearance the document should be avoiding.
The decisions that make it work
Reasons rather than a description of the code. Each of these is a choice that has a wrong answer, and the wrong answer is usually the default.
- Set the exclusions at the same type size and in the same list style as the inclusions. If one is smaller, it is the one that will be disputed.
- Put them adjacent, in two columns or in two blocks one after the other, with matching headings, so the pair reads as one statement about scope.
- Do not use colour or an icon to signal the negative. Use the heading, which survives greyscale, photocopying and being read aloud.
- Phrase each entry as a complete statement rather than a fragment, so an item read in isolation still says what is excluded.
- Keep each entry together with break-inside: avoid, and keep the heading with the first entry using break-after: avoid.
- Where the list is long, say how many there are in the heading. Twelve exclusions is a different document from three, and the count tells the reader before they start.
The fragment
Markup and the CSS it needs, and nothing else. It expects a document that already has a page rule and a base stylesheet, so paste it into one rather than opening it on its own.
<section class="scope">
<div class="col">
<h3>Included in this quotation</h3>
<ul>
<li>Survey of the ground floor and its structural elements.</li>
<li>A written report with photographic record.</li>
</ul>
</div>
<div class="col">
<h3>Not included (4 items)</h3>
<ul>
<li>Any inspection requiring the lifting of fixed floor coverings.</li>
<li>Testing of services, including electrical and gas installations.</li>
</ul>
</div>
</section>
<style>
.scope {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 10mm;
align-items: start;
margin: 12pt 0;
}
.scope h3 {
break-after: avoid;
margin: 0 0 4pt;
font-size: 9.5pt; /* identical on both sides */
font-weight: 700;
}
.scope ul { margin: 0; padding-left: 14pt; }
.scope li {
break-inside: avoid;
margin-bottom: 3pt;
font-size: 9pt; /* same size as the inclusions */
line-height: 1.4;
}
</style>What breaks when it is built the obvious way
Setting the exclusions two points smaller at the foot of the page under a heading like Notes. It is the layout that produces the argument later, because the customer's honest answer is that they did not see it, and the document agrees with them.
How to prove it survived pagination
Photocopy the page and hand it to somebody who has not read it. Ask what is not included. If they have to hunt, or if they find the inclusions first and stop, the two lists are not parallel enough.
Where it sits in a finished document
This page is one block. The document it belongs to has a page rule, a base stylesheet, a header and everything else around it, and repeating all of that here would make thirty pages that say the same thing. The quotation template is a complete file with this block already in it, so take that and change the fragment rather than assembling one from parts. The property doing most of the work here is covered on its own page, with the support caveats that belong there rather than here.
Frequently asked
Will this fragment work on its own?
Not as a whole document. It has no page rule, no margins and no base type, because those belong to the document rather than to the block, and duplicating them in every fragment would mean thirty copies to keep in step. Paste it into a template that already has them.
Why does it look right in a browser and wrong in the PDF?
Because a browser window is one continuous surface and a document is a stack of fixed rectangles. Nothing in a scrolling view exercises a page boundary, so every break rule in the fragment is inert until the content is paginated. Render the real thing with enough content to cross two or three boundaries, then look.
Do I need a special option on the render request for this?
No. Everything on this page is CSS and markup, which is your side of the boundary. What the render has to give you is a real page size with real margins, and after that the layout is decided by the stylesheet.
Other parts of a document
The blocks that sit next to this one, and one from the next group along so you are not sealed inside a single kind of problem.
A warranty block that states its period, start and limits together
What is warranted, for how long, from when, and what voids it, printed as one block on a warranty card or the back of a certificate.
An insurance block with insurer, policy number, limit and expiry
Insurer, policy number, cover type, indemnity limit and expiry date, printed where a client or a principal contractor needs to verify cover.
A signature block that never lands alone on the last page
Rule, printed name, title and date, laid out to be signed by hand, and required to stay attached to the text it is signing.
A document control block with owner, status and review date
Owner, status, issue date, review date and reference, gathered into one block near the front of a controlled document.
Quotation, as a complete file
The whole document with this block already in place, ready to copy and change.
break-after in paged output
The property carrying the weight here, with its real support status.
Every part of a document
The full list, grouped by the kind of problem the block poses.
Paste the fragment into the playground inside a page rule and see what it does at a real page size. That is the only way any of this gets confirmed.