On 9/19/24 4:58 PM, Chromestatus wrote:


        Contact emails

msten...@chromium.org


        Explainer

https://github.com/mstensho/page-margin-boxes


        Specification

https://drafts.csswg.org/css-page-3/#margin-boxes


        Summary

Add support for page margin boxes, when printing a web document, or exporting it as PDF. @page margin boxes allows an author to define the contents in the margin area of a page, for instance to provide custom headers and footers, rather than using the built-in headers and footers generated by the browser. A margin box is defined via an at-rule inside a CSS @page rule. There are 16 rules defined, one for each page margin box. There's one margin box for each of the 4 corners on the page, and three (start, middle, end) for each of the 4 sides. The appearance and the contents of a margin box are specified with CSS properties inside the at-rule, including the "content" property. Counters are also to be supported, for page numbering. The specification defines two special counter names: "page" for the current page number, and "pages" for the total number of pages.



        Blink component

Blink>Layout>Printing <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink>Layout>Printing>


        TAG review

https://github.com/w3ctag/design-reviews/issues/918


        TAG review status

Issues addressed


        Risks



        Interoperability and Compatibility

The spec defines the CSS counter names 'page' and 'pages'. Both are accessible by the document's contents, so that any element may use the counters to tell the current page number, or the total number of pages. Documents that use these counter names without being aware of this feature may be in for a surprise. Most browsers offer to generate some default headers and footers, and they are usually enabled by default. If the document has margin at-rules, they may come in conflict. We need some way of making sure that we either use the browser-default headers and footers, or the author-defined @page margins.

Can you clarify what you mean by "in for a surprise"? I don't think I understand the compat implications of @page+ margin boxes here.

Also, do you have a plan for default header/footer conflicts w/ developer-provided ones?



/Gecko/: No signal (https://github.com/mozilla/standards-positions/issues/921)

/WebKit/: No signal (https://github.com/WebKit/standards-positions/issues/275)

/Web developers/: Positive https://bugs.chromium.org/p/chromium/issues/detail?id=320370 currently has 98 stars.

/Other signals/:


        WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?

None



        Debuggability

None

I think it's possible to emulate the print media via DevTools. Maybe there are other possible debug modes to visually represent these named margin boxes (as follow up work)?


        Will this feature be supported on all six Blink platforms
        (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?

Yes


        Is this feature fully tested by web-platform-tests
        
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?

No

WPT tests will be written and submitted while working on this feature.



        Flag name on chrome://flags

None


        Finch feature name

PageMarginBoxes


        Requires code in //chrome?

False


        Tracking bug

https://bugs.chromium.org/p/chromium/issues/detail?id=320370


        Estimated milestones

Shipping on desktop     131
Shipping on Android     131
Shipping on WebView     131



        Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way).

None


        Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5195769732923392?gate=6322213557108736


        Links to previous Intent discussions

Intent to Prototype: https://groups.google.com/a/chromium.org/g/blink-dev/c/ZCPkcu_dSF8


This intent message was generated by Chrome Platform Status <https://chromestatus.com>.
--
You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/66ec9090.2b0a0220.b3b1b.006b.GAE%40google.com <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/66ec9090.2b0a0220.b3b1b.006b.GAE%40google.com?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/24a1a48d-d40a-446b-8b7c-900b1d3a2ddd%40chromium.org.

Reply via email to