diff --git a/.bundlewatch.config.js b/.bundlewatch.config.js index d1a40844..a6aa7250 100644 --- a/.bundlewatch.config.js +++ b/.bundlewatch.config.js @@ -5,8 +5,9 @@ module.exports = { maxSize: "1.1kb", }, { + // Exact 1000-byte Brotli ceiling for #397 (not "1kb" / 1024B). path: "dist/index.min.css", - maxSize: "1.05kb", + maxSize: "1000B", }, { path: "dist/mini.css", diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..d3d3fc3d --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,32 @@ +name: CI + +on: + pull_request: + push: + branches: + - main + +permissions: + contents: read + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + + - name: Setup pnpm + uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 + + - name: Setup Node.js + uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + with: + node-version: 22 + cache: pnpm + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Build and bundlewatch + run: pnpm run build diff --git a/dist/index.css b/dist/index.css index a7b9dc0f..766e4782 100644 --- a/dist/index.css +++ b/dist/index.css @@ -45,7 +45,7 @@ } :where(:root) { - font-family: system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Open Sans, Helvetica Neue, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji; + font-family: system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji; line-height: 1.5; } diff --git a/dist/index.min.css b/dist/index.min.css index 53087495..a34de1e6 100644 --- a/dist/index.min.css +++ b/dist/index.min.css @@ -1 +1 @@ -@layer reset{*,:before,:after{box-sizing:border-box;margin:0;padding:0}:where(h1){margin-block:.67em;margin-inline:0;font-size:2em}:where(h2){margin-block:.83em;margin-inline:0;font-size:1.5em}:where(h3){margin-block:1em;margin-inline:0;font-size:1.17em}:where(h4){margin-block:1.33em;margin-inline:0}:where(h5){margin-block:1.67em;margin-inline:0;font-size:.83em}:where(h6){margin-block:2.33em;margin-inline:0;font-size:.67em}:where(h1,h2,h3,h4){text-wrap:balance}:where(:root){font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}:where(html){-webkit-text-size-adjust:none;text-size-adjust:none}:where(main){display:block}:where(p+p){margin-block-start:1rem}:where(:target){scroll-margin-block:5ex}:where(a){background-color:#0000}:where(a:not([class])){-webkit-text-decoration-skip-ink:auto;text-decoration-skip-ink:auto}:where(abbr[title]){text-decoration:underline dotted}:where(code,kbd,samp,pre){font-family:ui-monospace,monospace;font-size:1em}:where(sub,sup){vertical-align:baseline;font-size:75%;line-height:0;position:relative}:where(sub){bottom:-.25em}:where(sup){top:-.5em}:where(button,input,optgroup,select,textarea){font:inherit;line-height:inherit}:where(input:not([type=button]):not([type=checkbox]):not([type=color]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=range]):not([type=reset]):not([type=submit]),textarea){border:1px solid}:where(button,[type=button],[type=reset],[type=submit]){padding:1px 6px}:where(button){text-transform:none;overflow:visible}:where(button):not(:disabled),:where([type=button]):not(:disabled),:where([type=reset]):not(:disabled),:where([type=submit]):not(:disabled){cursor:pointer}:where(input){overflow:visible}:where(input,textarea){padding:1px}:where(fieldset){border:1px solid;margin-block:0;margin-inline:2px}:where(legend){color:inherit;white-space:normal;max-inline-size:100%;display:table}:where(progress){vertical-align:baseline;display:inline-block}:where(select){text-transform:none}:where(textarea){resize:vertical;vertical-align:top;overflow:auto}:where([type=color]){background:inherit}::placeholder{color:inherit;opacity:.5}:where(ul,ol,menu){padding-inline-start:40px}:where(ul[role=list],ol[role=list]){padding-inline-start:0;list-style:none}:where(img,picture,video,canvas,svg){max-inline-size:100%;display:block}:where(img,video,canvas,svg){block-size:auto}:where(hr){box-sizing:content-box;block-size:0;color:inherit;overflow:visible}:where(dl,ol,ul){margin-block:1em;margin-inline:0}:where(ol ol,ol ul,ol dl,ul ol,ul ul,ul dl,dl ol,dl ul,dl dl){margin:0}:where(b,strong){font-weight:bolder}:where(audio){display:inline-block}:where(audio):not([controls]){block-size:0;display:none}:where(img){border:0}:where(svg:not([fill])){fill:currentColor}:where(svg):not(:root){overflow:hidden}:where(table){text-indent:0;border-color:inherit}:where(details){display:block}:where(dialog){color:canvastext;background-color:canvas;border:solid;block-size:fit-content;inline-size:fit-content;margin:auto;padding:1em;display:block;inset-inline:0}:where(summary){display:list-item}:where(template){display:none}}:where(dialog):not([open]),[hidden]:not([hidden=until-found i]){display:none} \ No newline at end of file +@layer reset{*,:before,:after{box-sizing:border-box;margin:0;padding:0}:where(h1){margin-block:.67em;margin-inline:0;font-size:2em}:where(h2){margin-block:.83em;margin-inline:0;font-size:1.5em}:where(h3){margin-block:1em;margin-inline:0;font-size:1.17em}:where(h4){margin-block:1.33em;margin-inline:0}:where(h5){margin-block:1.67em;margin-inline:0;font-size:.83em}:where(h6){margin-block:2.33em;margin-inline:0;font-size:.67em}:where(h1,h2,h3,h4){text-wrap:balance}:where(:root){font-family:system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}:where(html){-webkit-text-size-adjust:none;text-size-adjust:none}:where(main){display:block}:where(p+p){margin-block-start:1rem}:where(:target){scroll-margin-block:5ex}:where(a){background-color:#0000}:where(a:not([class])){-webkit-text-decoration-skip-ink:auto;text-decoration-skip-ink:auto}:where(abbr[title]){text-decoration:underline dotted}:where(code,kbd,samp,pre){font-family:ui-monospace,monospace;font-size:1em}:where(sub,sup){vertical-align:baseline;font-size:75%;line-height:0;position:relative}:where(sub){bottom:-.25em}:where(sup){top:-.5em}:where(button,input,optgroup,select,textarea){font:inherit;line-height:inherit}:where(input:not([type=button]):not([type=checkbox]):not([type=color]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=range]):not([type=reset]):not([type=submit]),textarea){border:1px solid}:where(button,[type=button],[type=reset],[type=submit]){padding:1px 6px}:where(button){text-transform:none;overflow:visible}:where(button):not(:disabled),:where([type=button]):not(:disabled),:where([type=reset]):not(:disabled),:where([type=submit]):not(:disabled){cursor:pointer}:where(input){overflow:visible}:where(input,textarea){padding:1px}:where(fieldset){border:1px solid;margin-block:0;margin-inline:2px}:where(legend){color:inherit;white-space:normal;max-inline-size:100%;display:table}:where(progress){vertical-align:baseline;display:inline-block}:where(select){text-transform:none}:where(textarea){resize:vertical;vertical-align:top;overflow:auto}:where([type=color]){background:inherit}::placeholder{color:inherit;opacity:.5}:where(ul,ol,menu){padding-inline-start:40px}:where(ul[role=list],ol[role=list]){padding-inline-start:0;list-style:none}:where(img,picture,video,canvas,svg){max-inline-size:100%;display:block}:where(img,video,canvas,svg){block-size:auto}:where(hr){box-sizing:content-box;block-size:0;color:inherit;overflow:visible}:where(dl,ol,ul){margin-block:1em;margin-inline:0}:where(ol ol,ol ul,ol dl,ul ol,ul ul,ul dl,dl ol,dl ul,dl dl){margin:0}:where(b,strong){font-weight:bolder}:where(audio){display:inline-block}:where(audio):not([controls]){block-size:0;display:none}:where(img){border:0}:where(svg:not([fill])){fill:currentColor}:where(svg):not(:root){overflow:hidden}:where(table){text-indent:0;border-color:inherit}:where(details){display:block}:where(dialog){color:canvastext;background-color:canvas;border:solid;block-size:fit-content;inline-size:fit-content;margin:auto;padding:1em;display:block;inset-inline:0}:where(summary){display:list-item}:where(template){display:none}}:where(dialog):not([open]),[hidden]:not([hidden=until-found i]){display:none} \ No newline at end of file diff --git a/docs/reference/index.md b/docs/reference/index.md index d5351a6a..3729222b 100644 --- a/docs/reference/index.md +++ b/docs/reference/index.md @@ -65,7 +65,7 @@ Body text inherits line height and font from the root, and those defaults differ ```css :where(:root) { line-height: 1.5; - font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-family: system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; } ``` diff --git a/src/components/global.css b/src/components/global.css index 21ba1fa2..3fcfa4b2 100644 --- a/src/components/global.css +++ b/src/components/global.css @@ -3,7 +3,7 @@ :where(:root) { line-height: 1.5; - font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-family: system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; } :where(html) {