summaryrefslogtreecommitdiffstats
path: root/mandoc.css
Commit message (Collapse)AuthorAgeFilesLines
* While the HTML standard allows multiple <h1> elements in the sameIngo Schwarze2022-07-061-9/+9
| | | | | | | | | | | | document, <h1> is intended for top level headers, and most of the sections in a manual page can hardly be considered top-level. It is more usual to use <h1> only for the main title of the document of for the site name. Consequently, move .Sh/.SH from <h1> to <h2> and .Ss/.SS from <h2> to <h3>, freeing <h1> for use by header.html in man.cgi(8). Discussed with Anna Vyalkova <cyber at sysrq dot in>.
* Finally get rid of the archaic <table> markup for header and footer linesIngo Schwarze2022-07-051-5/+14
| | | | | | | | | | | and use flexbox CSS instead. Improve accessibility by adding role and aria-label attributes to these header and footer lines. Using ideas from both Anna Vyalkova <cyber at sysrq dot in> and myself. As a welcome side effect, this also resolves the long-standing issue that the rendering was always 65em wide, requiring horizontal scrolling when the window was narrower. Now, rendering nicely adapts to browser windows of arbitrary narrowness.
* Instead of the custom <div class="manual-text">, use the standardIngo Schwarze2022-07-031-4/+2
| | | | | | | | | | HTML <main> element. The benefit is that it has the ARIA landmark role "main" by default. To ease the transition for people using their own CSS file instead of mandoc.css, retain the custom class for now. I had this idea in a discussion with Anna Vyalkova <cyber at sysrq dot in>. Patch from Anna, slightly tweaked by me.
* Avoid legacy CSS2 syntax for the "display" property and use the CSS3Ingo Schwarze2022-03-171-3/+3
| | | | | | | | | | two-value syntax "display: inline flow;" instead. In particular, there is no need to establish a new block formatting context with "flow-root", and in fact that's detrimental because it appears to introduce spurious soft-wrap opportunities. jmc@ reported a bogus line break between the opening angle bracket generated by .Aq Mt and the following email address.
* In HTML output, correctly render .Bd -unfilled in proportionally-spacedIngo Schwarze2021-03-301-0/+1
| | | | | | | | | | | font, rather than with the monospace font appropriate for .Bd -literal. This fixes a minibug reported by anton@. Implemented by no longer relying on the typical browser default of "pre { font-family: monospace }" but instead letting <pre> elements inherit the font family from their parent, then adding an explicit CSS .Li class only for those displays where the manual page author requested it by using the -literal option on the .Bd macro.
* Finally get rid of the "overflow: auto" property of ".Bl-tag > dd"Ingo Schwarze2020-10-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | which has long been know to cause ugly and pointless scroll bars. Matthew Martin <phy1729 at gmail dot com> helpfully explained the following two points to me: 1. What we need to do here is establish a new block formatting context such that the first line of the <dd> content moves down rather than to the right if the preceding <dt> is wide. 2. A comprehensive list of methods to establish block formatting context is available in: https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context In that list, i found that "column-count: 1" does the job. It is part of CSS Multi-column Layout Level 1. While that is still in Working Draft status according to https://www.w3.org/Style/CSS/current-work , it is fully supported by all browsers according to https://developer.mozilla.org/en-US/docs/Web/CSS/column-count , probably because it was already part of the second draft of this standard almost 20 years ago: WD-css3-multicol-20010118.
* Support prefers-color-scheme: dark.Ingo Schwarze2019-06-021-7/+20
| | | | | The :visited rule was contributed by <Armin at Besirovic dot com>. Guidance and OK tj@.
* Wrap .Sh/.SH sections and .Ss/.SS subsections in HTML <section> elementsIngo Schwarze2019-03-011-8/+10
| | | | | | as recommended for accessibility by the HTML 5 standard. Triggered by a similar, but slightly different suggestion from Laura Morales <lauretas at mail dot com>.
* Remove the HTML title= attributes which harmed accessibility andIngo Schwarze2019-01-111-1/+75
| | | | | | | violated the principle of separation of content and presentation. Instead, implement the tooltips purely in CSS. Thanks to John Gardner <gardnerjohng at gmail dot com> for suggesting most of the styling in the new ::before rules.
* After years of gnashing of teeth, i finally found a way to avoidIngo Schwarze2019-01-101-1/+6
| | | | | | | | | | | | | | | | | | having to write empty list elements for non-compact .Bl -tag lists: 1. Add margin-bottom to the <dd>. Note that margin-top on the <dt> doesn't work because it would put a short <dt> lower than the <dd>; margin-bottom on the <dt> doesn't work because it would put vertical space before the <dd> for a long <dt>; and margin-top on the <dd> doesn't work because it would put a short <dt> higher than the <dd>. Only margin-bottom on the <dd> has none of these adverse effects. 2. Of course, margin-bottom on the <dd> fails to take care of the vertical spacing before the first list element, so implement that separately by margin-top on the <dl>. 3. For .Bl -tag -compact, reset both to zero.
* Restrict "vertical-align: middle;" to <td> descendants of class="tbl"Ingo Schwarze2018-12-041-2/+2
| | | | elements, we don't want that for other tables.
* Make sure all borders in a table are drawn in the same color.Ingo Schwarze2018-12-041-1/+6
| | | | | | | Required because browsers tend to have inconsistent defaults: For example, Firefox 62.0.2 sets border-color for tbody, but not for table, and Pali Rohar reports that Chrome set it for td, but not for tr or tbody. The td part is from Pali Rohar, the tbody and tr parts from me.
* Implement tbl(7) lines in -T html output,Ingo Schwarze2018-11-261-2/+5
| | | | | | | | | | | | as far as they are on the edges of table cells rather than going through the middle of cells: * the box, doublebox, and allbox options; * the | and || layout modifiers; * and the _ and = data lines; - but not yet _ and = in individual layout and data cells. Missing feature reported by Pali dot Rohar at gmail dot com.
* Place mandoc.css into the public domain.Ingo Schwarze2018-11-261-0/+5
| | | | | | | | | | | | | | | | The reason for doing this rather than using the ISC license is that i guess that in some contexts, a requirement to preserve a Copyright and license header might be inconvenient, and i really don't care at all how people use it. What matters is that they do use it, or something similar - attempts to use mandoc without any CSS are a constant source of grief and bogus bug reports because HTML without CSS doesn't look very good: the more structural and semantic and the less presentational and old-fashioned the HTML, the more so. Thanks to Mark Harris <mark dot hsj at gmail dot com> for pointing out that the permissions on this particular file were unclear.
* Implement horizontal and vertical alignment of tbl(7) cell contentIngo Schwarze2018-11-241-1/+1
| | | | | in -T html output. This does not handle spanned cells yet. Missing feature reported by Pali dot Rohar at gmail dot com.
* Reduce excessive right padding in tagged list heads.Ingo Schwarze2018-08-271-1/+1
| | | | | | The 1.2em was an approximate equivalent of the 2n traditionally used for terminal display, but it is much too wide for HTML rendering. Issue reported by mikeb@.
* Remove more redundant element selectors where the class selectorIngo Schwarze2018-07-231-36/+36
| | | | | is already sufficient. John Gardner tells me that "CSS selectors should only contain what's necessary to target their subjects".
* replace the last instances of ex units by em;Ingo Schwarze2018-07-231-5/+5
| | | | recommended by John Gardner <gardnerjohng at gmail dot com>
* For -man -Thtml, ignore author-specified .HP widths because theyIngo Schwarze2018-06-251-0/+5
| | | | harm responsive design; use @media-dependent defaults instead.
* In HTML output, for lists that have an -indent argument, just useIngo Schwarze2018-06-101-2/+2
| | | | | | | | | | | | | a uniform indentation in CSS adapted to the viewport width and ignore the value of the argument taken from mdoc(7). While author-specified widths somewhat work as a micro-optimization in terminal and typeset output, they are nothing but harmful in HTML style= attributes because they break responsive design, whereas using a reasonable default indent almost never results in ugly output. Admittedly, the author-specified width might occasionally look even better, but only slightly so, and only for some viewport sizes. Based on guidance provided by John Gardner.
* John Gardner tells me that among frontend developers, gratuitous useIngo Schwarze2018-05-281-52/+55
| | | | | | | | | | of double selectors like "element.class" is considered poor style. When doing selection mainly by elements is not appropriate because most elements require several different styles, exclusively selecting by class is less cumbersome, more concise, and more flexible. So drop the elements from the selectors, except where they are required for disambiguation and except where they add clarity due to the presence of child selectors.
* Start with baby steps towards responsive design:Ingo Schwarze2018-05-261-0/+14
| | | | | Use a @media width query to select a set of default indentations. Suggested by John Gardner <gardnerjohng at gmail dot com>.
* Use em units rather than ex units for horizontal lengths.Ingo Schwarze2018-05-261-19/+19
| | | | | | John Gardner and others tell me it produces more predictable results and is generally considered better style. Also use 0em instead of 0ex, in general.
* Use <span> for .Ms rather than <b>; discussed with John Gardner.Ingo Schwarze2018-05-211-1/+2
|
* Use <span> for .Ad rather than <i>; also suggested by John Gardner.Ingo Schwarze2018-05-211-1/+2
|
* Use <span> rather than abusing <i> for .Pa;Ingo Schwarze2018-05-211-1/+2
| | | | suggested by John Gardner <gardnerjohng at gmail dot com>.
* Fix a long-standing issue:Ingo Schwarze2018-05-091-2/+3
| | | | | | | | | Some macros (Nd, Oo) can contain blocks but rendered as elements that can only contain phrasing content, resulting in invalid HTML nesting. Switch them to <div>. Also move the related "display: inline" style from the HTML to the CSS. Reminded during a conversation with John Gardner.
* Eliminate the class=It-* attributes.Ingo Schwarze2018-05-081-17/+25
| | | | | Cleaner HTML, more idiomatic CSS, and minus 30 lines of C code. Suggested by John Gardner <gardnerjohng at gmail dot com>.
* Switch the emitted HTML element from <b> to <code> for the fixedIngo Schwarze2018-05-081-8/+24
| | | | | | | | syntax element macros .Nm, .Fl, .Cm, .Ic, .In, .Fd, .Fn, and .Cd. Adjust both the internal and external style sheets such that rendering remains unchanged in typical browsers. Based on feedback from John Gardner <gardnerjohng at gmail dot com>.
* replace my vague and idiosyncratic term "selflink"Ingo Schwarze2018-04-241-1/+1
| | | | | with the clearer and more usual "permalink"; suggested by John Gardner <gardnerjohng at gmail dot com>
* The only elements using floats are dt.It-tag,Ingo Schwarze2017-07-161-2/+3
| | | | | | so the only elements allowed to the right of them are dd.It-tag. Fixes overlapping rendering after long tag lists without bodies, for example in the Xenocara apm(4) manual. Issue reported by tj@.
* use the same width increase logic for .Bl -hang as for .Bl -tagIngo Schwarze2017-07-151-1/+1
|
* correct left margins for different classes of definition listsIngo Schwarze2017-07-151-5/+5
|
* Handle .Bl -compact via CSS rather than writing individual styleIngo Schwarze2017-07-141-0/+8
| | | | | | | | attributes into .It blocks; suggested by Steffen Nurpmeso <steffen at sdaoden dot eu> on <groff at GNU dot org> in April 2017. Delete margin-bottom and margin-top style names and the 'v' argument letter from print_otag() because they are no longer used.
* Port ctags-style, less(1) :t internal searching from terminal outputIngo Schwarze2017-03-131-0/+5
| | | | | | | | | | to HTML output. For certain macros appearing at the beginning of .It heads, write HTML id="..." attributes such that deep linking works. Write HTML <a> attributes such that you can easily copy out link targets with the mouse. Try: http://man.openbsd.org/vmctl.8#create Feature suggested by <guettliml at Thomas dash Guettler dot de>, some details of the design and implementation by me.
* Wrap .St content in a <span class="St">.Ingo Schwarze2017-02-051-0/+1
| | | | Also add forgotten <span class="Ux"> to .At rendering.
* mark up .Ar, .Fa, .Va, .Ft, and .Vt with <var> rather than <i>;Ingo Schwarze2017-02-051-5/+10
| | | | suggested by bentley@ long ago, but needed lots of cleanup first
* for .Rs, use <cite>Ingo Schwarze2017-02-051-1/+2
|
* Improve HTML formatting of .Bl -tag.Ingo Schwarze2017-01-251-3/+12
| | | | | | | | | | | | | | | | | | | | | In particular, when using the style sheet, put the body on the same line as the head for short heads, or on the next line for long heads, in a way that preserves both correct indentation and correct vertical spacing with and without -compact, and with one or more heads per body (hi, Zaphod) - eight use cases so far - and with and without -tag, and with and without -offset, 32 use cases grand total. Using many ideas from zhuk@, from <David dot Dahlberg at fkie dot fraunhofer dot de>, and from Benny Lofgren <bl dash lists at lofgren dot biz>, and a few of my own. This is an excellent demonstration that CSS is an extremely hostile language, much more trapful and much harder to use than, say, C. When matthew@ reported this in July 2014 (!), it was already a known issue, and i no longer remember for how long. My first serious attempt at fixing it (in November 2015) failed miserably. I'd love to see simplifications of both the generated HTML code and of the style sheet, but without breaking any of the 32 use cases, please.
* slightly simplify header and footer stylesIngo Schwarze2017-01-211-7/+6
|
* Avoid writing constant style attributes over and over again.Ingo Schwarze2017-01-211-3/+6
| | | | Move them to the style sheet.
* clean up the remaining class attributesIngo Schwarze2017-01-211-26/+13
|
* Standardize class attributes for semantic macros.Ingo Schwarze2017-01-201-25/+41
| | | | Correct markup for .Va and iprove markup for .Dv, .Er, .Ev while here.
* standardize .Rs class attributesIngo Schwarze2017-01-201-15/+16
|
* standardize .Bl and .It class attributesIngo Schwarze2017-01-201-46/+35
|
* clean up markup of .Bd, .D1, .Dl, .Li, and .Ql;Ingo Schwarze2017-01-191-3/+11
| | | | in particular, stop abuse of <blockquote>
* clean up .Sx and .Xr HTML markupIngo Schwarze2017-01-191-3/+2
|
* Clean up CSS rules for sections and paragraphs.Ingo Schwarze2017-01-191-7/+13
| | | | Start using real macro names for CSS classes.
* Clean up and fix rules for header and footer lines.Ingo Schwarze2017-01-191-12/+21
| | | | In particular, horizontal alignment was missing.
* Start cleanup: trim useless HTML comments, <div> elements,Ingo Schwarze2017-01-191-22/+19
| | | | and CSS rules on the <html> and <body> levels.