asw-v01: archive deferred content (packs, site, lab, legacy examples)

- 2.1: packs/ -> archive/packs/
- 2.2: site/ -> archive/site/
- 2.3: src/lab/ -> archive/lab/
- 2.4: examples/ -> archive/examples-legacy/ (SSI-based)
This commit is contained in:
exe.dev user 2026-06-07 10:39:21 +02:00
parent 416fe2f180
commit e47a9f4401
173 changed files with 11 additions and 5 deletions

View file

@ -1,128 +0,0 @@
---
title: "Reset"
description: "What ASW's reset layer does, where it came from, and what it deliberately leaves alone."
type: docs
weight: 60
date: 2026-04-09
tags: ["reset", "css", "reference"]
ai-disclosure: "generated"
ai-model: "claude-sonnet-4-5"
ai-provider: "Anthropic"
---
ASW's reset is in `src/layers/00-reset.css`, ported from [Pico CSS v2.1.1](https://picocss.com/) (MIT). It's an opinionated normalize, not a zero-baseline reset — it corrects browser inconsistencies without stripping all defaults.
---
## What it does
### Box-sizing
Every element uses `border-box`. Padding and border are included in the declared width.
```css
*, *::before, *::after {
box-sizing: border-box;
background-repeat: no-repeat;
}
```
`background-repeat: no-repeat` prevents accidental tiling on elements that receive a background image.
### Document baseline
```css
:where(:root) {
-webkit-tap-highlight-color: transparent; /* remove tap flash on mobile */
text-size-adjust: 100%; /* prevent font inflation on mobile */
text-rendering: optimizeLegibility;
overflow-wrap: break-word; /* wrap long URLs / tokens */
tab-size: 4;
}
```
### Font size
```css
html { font-size: 100%; }
```
Root font size is `100%` of the browser default (typically 16px). Responsive scaling is applied in `01-tokens.css` via `clamp()`. Setting `100%` here respects user accessibility preferences — users who set a larger browser font get a proportionally larger site.
### Body
```css
body {
width: 100%;
margin: 0;
padding: 0;
font-size: var(--text-base);
font-family: var(--font-ui);
background-color: var(--surface);
color: var(--text);
}
```
All visual values come from ASW tokens. Font and colour are set once here and inherited everywhere.
### Main
```css
main { display: block; }
```
Fixes a legacy IE bug where `<main>` wasn't treated as a block element. Still included for completeness.
### Nested lists
```css
:where(dl, ol, ul) :where(dl, ol, ul) { margin: 0; }
```
Removes the double margin that browsers add to nested lists.
---
## What it leaves alone
The reset deliberately does **not**:
- Zero out heading sizes or margins (those are handled by `02-semantic.css`)
- Remove list styles (lists get `list-style: square` in the semantic layer)
- Reset form element appearance (handled by `03-components.css`)
- Set `line-height` on body (set via `var(--leading)` in `08-layout.css`)
---
## Pseudo-elements
```css
::before, ::after {
text-decoration: inherit;
vertical-align: inherit;
}
```
Pseudo-elements inherit text decoration and vertical alignment from their parent. This prevents `::before`/`::after` content from appearing unexpectedly underlined in links.
---
## Customising the reset
The reset layer uses low-specificity `:where()` selectors where possible. Override anything with a standard selector — no `!important` needed.
```css
/* Override: use rem-based font scaling instead of responsive clamp */
html { font-size: 1rem; }
/* Override: add body padding for a specific layout */
body { padding-inline: var(--space-4); }
```
---
## Related
- [Semantic HTML](/docs/core/semantic-html/) — element styles built on top of this reset
- [Token System](/docs/core/tokens/) — the custom properties (`--surface`, `--text`, `--font-ui`) referenced in this layer