haiku/docs/interface_guidelines/docbook-css/styles.css

681 lines
12 KiB
CSS
Raw Normal View History

/*
* styles.css
*
* Copyright (c) 2004 David Holroyd, and contributors
* See the file 'COPYING' for terms of use
*
* Part of the Docbook-CSS stylesheet
* http://www.badgers-in-foil.co.uk/projects/docbook-css/
*/
/*
* CSS2 styling for DocBook XML
*
* To be included in the cascade _after_ core.css. Defines styling that can't
* be generated mechanically from another source.
*/
/*
* TODO:
*
* - do I remember correctly that <abstract> be hidden for screen media?
*/
article, book {
margin:.5em;
}
title, subtitle {
font-family:sans-serif;
}
title {
font-weight:bolder;
margin-bottom:.5em;
}
/*
* Sectioning elements that may contain paragraph-level elements get left/right
* margins
*/
section>*, chapter>*, bibliography>*, appendix>*, glossary>*, preface>*,
dedication>*, colophon>*, sect1>*, sect2>*, sect3>*, sect4>*, sect5>*,
bibliodiv>* {
margin-left:10%;
margin-right:10%;
}
/*
* Give admonitions bigger margins, to set them more apart from the main
* flow of text.
*/
warning, caution, important, tip, note {
margin-left: 15%;
margin-right: 15%;
}
/*
* Remove any margin defined be the previous rule when the child in question
* is a section or title. Titles should be allowed to take up the maximum
* available width, as they're usually is larger type. Sections must not
* be given margins because, the *contents* of the section will alreay have
* them; we don't want to recursively increase margins with the nesting depth
* of the document.
*/
section, title, sect1, sect2, sect3, sect4, sect5, bibliodiv {
margin-left:0;
margin-right:0;
}
book>title, article>title {
font-size:xx-large;
text-align:center;
border-bottom-style:solid;
}
appendix>title, bibliography>title, chapter>title, colophon>title, dedication>title, glossary>title, part>title, preface>title {
font-size:xx-large;
text-align:center;
}
section>title, sect1>title, bibliodiv>title {
font-size:xx-large;
}
section>section>title, sect2>title {
font-size:x-large;
margin-left:5%;
}
section>section>section>title, sect3>title {
font-size:large;
margin-left:7.5%;
}
section>section>section>section>title, sect4>title {
font-size:large;
margin-left:10%;
}
section>section>section>section>section>title, sect5>title {
font-size:inherit;
margin-left:10%;
}
biblioentry > title {
display: inline;
}
/* Give vertical spacing between compoments of the document */
*+section, *+chapter, *+bibliography, *+bibliodiv, *+appendix, *+glossary {
margin-top: 3em;
}
section>*+section {
margin-top: 2em;
}
section>section>*+section {
margin-top: 1em;
}
/*
* Give paragraph-level elements some leading space when they aren't the first
* item in their containing block.
*/
*+para, *+formalpara, *+blockquote, *+glossentry, *+table, *+variablelist,
*+example, *+informalexample, *+programlisting, *+cmdsynopsis,
*+orderedlist, *+itemizedlist, *+figure,
*>warning, *>caution, *>important, *>tip, *>note {
margin-top:.5em;
}
/*
* BiblioEntry blocks need a bit more space, since they may contain multiple
* paragraphs, and so need greater-than-paragraph spacing to make it clear
* which gap is the end just of a paragraph, and which gap is the end of the
* entry
*/
*+biblioentry {
margin-top: 1em;
}
/*
* REVISIT: I think this is the proper way; but deson't work in Firefox 0.8
formalpara > title {
display: run-in;
}
* Make all children of formalpara inline, instead...
*/
formalpara > * {
display: inline;
}
formalpara > title:after {
content: ".";
}
para, formalpara {
text-align: justify;
}
quote:before {
content: open-quote;
}
quote:after {
content: close-quote;
}
question, answer {
margin-top:.5em;
display:list-item;
}
question>para, answer>para {
display:inline;
}
/* see language specific files for content */
question:before {
display:marker;
font-weight:bolder;
}
answer:before {
display:marker;
font-weight: bolder;
}
emphasis {
font-style:italic;
}
emphasis[role="strong"] {
font-weight:bolder;
}
emphasis[role="bold"] {
font-weight:bolder;
font-style:inherit;
}
emphasis[role="underline"] {
text-decoration:underline;
font-style:inherit;
}
emphasis[role="strikethrough"] {
text-decoration:line-through;
font-style:inherit;
}
emphasis>emphasis {
font-weight:bolder;
}
foreignphrase, wordasword, productname {
font-style:italic;
}
replaceable {
font-style:italic;
}
sgmltag[class="starttag"]:before, sgmltag[class="emptytag"]:before {
content: "<";
}
sgmltag[class="starttag"]:after, sgmltag[class="endtag"]:after {
content: ">";
}
sgmltag[class="endtag"]:before {
content: "</";
}
sgmltag[class="emptytag"]:after {
content: "/>";
}
sgmltag[class="attvalue"]:before, sgmltag[class="attvalue"]:after {
content: '"';
}
sgmltag[class="genentity"]:before {
content: "&";
}
sgmltag[class="genentity"]:after {
content: ";";
}
sgmltag[class="sgmlcomment"]:before {
content: "<!--";
}
sgmltag[class="sgmlcomment"]:after {
content: "-->";
}
sgmltag[class="xmlpi"]:before {
content: "<?";
}
sgmltag[class="xmlpi"]:after {
content: "?>";
}
application, keycap, guimenu, guimenuitem, guisubmenu {
font-family: sans-serif;
}
/*
* ensure there's some whitespace between elements of an author's name
*/
author>* + *:before {
content: " ";
}
/* give keycaps a '3D' shaded look */
keycap {
padding-left: .2em;
padding-right: .2em;
border-style: solid;
border-top-width: 2px;
border-left-width: 3px;
border-right-width: 3px;
border-bottom-width: 4px;
border-top-color: #eeeecc;
border-left-color: #eeeecc;
border-right-color: #999977;
border-bottom-color: #999977;
background-color: #ddddbb;
/* All these borders may interfere with text on the line bellow. Make
the text a little smaller to try and 'pull up' the bottom edge, */
font-size: smaller;
}
keycombo>keycap+keycap:before {
/* FIXME: this appears inside the second keycap's 3D boarder, but
* ideally, we'd like it to appear inbetween the two keycaps */
content: "-";
}
menuchoice>guimenu+guimenuitem:before,
menuchoice>guimenuitem+guimenuitem:before,
menuchoice>guimenuitem+guisubmenu:before {
/*content: "->";*/
/* a 'proper' left-arrow character */
content: "\2192";
}
guibutton {
border: 2px outset #dddddd;
background-color: #dddddd;
/*
border: 2px solid;
border-top-color: #eeeeee;
border-left-color: #eeeeee;
border-right-color: #999999;
border-bottom-color: #999999;
background-color: #dddddd;
*/}
/* render link-like elements per HTML's normal styling */
link, ulink, email {
/* When ulink contains no body text, the url should be rendered
* at this point in the document. Can't see how to do this with CSS */
color:#0000ff;
text-decoration:underline;
}
/*ulink:after {
content: " <" attr(url) ">";
}*/
email:before {
content: "<";
}
email:after {
content: ">";
}
citation:before {
content: "[";
}
citation:after {
content: "]";
}
xref:after {
/* simple symbol - content: "#" attr(linkend);*/
/* 'section' symbol */
content: "\00a7" attr(linkend);
color:#0000ff;
text-decoration: underline;
}
blockquote {
padding-left:3em;
padding-bottom: 1em;
}
blockquote>attribution {
text-align:right;
font-style: italic;
}
blockquote>attribution:after {
/* I've tried various things to position the attribution after the
* other blockquote content (e.g. relative/absolute positioning), but
* none of the things I tried produced satisfactory results (e.g. the
* attribution appears at the bottom of the containing block, but it
* overlaps preceeding content). */
content:":"
}
blockquote>para:before {
content: open-quote;
}
blockquote>para:after {
content: no-close-quote;
}
blockquote>para:last-child:after {
content: close-quote;
}
/* lists */
itemizedlist {
padding-left: 1em;
list-style-type: disc;
}
listitem+listitem {
padding-top: .5em;
}
/* 2 deep nested lists */
itemizedlist itemizedlist {
list-style-type: circle;
}
/* 3 or more deep nested lists */
itemizedlist itemizedlist itemizedlist {
list-style-type: square;
}
itemizedlist>listitem {
display:list-item;
}
orderedlist {
padding-left: 1.5em;
list-style-type: decimal;
}
orderedlist>listitem {
display:list-item;
}
/*
* We've got no way of properly implementing call-out lists with CSS, so just
* present as a list of bullet points.
*/
calloutlist {
padding-left: 1em;
list-style-type: disc;
}
calloutlist>callout {
display:list-item;
}
/*
* The list of possible mark names is not defined by Docbook, but "opencircle"
* and "bullet" are used in T.D.G. example
*/
itemizedlist[mark="opencircle"], listitem[override="opencircle"] {
list-style-type: circle;
}
itemizedlist[mark="bullet"], listitem[override="bullet"] {
list-style-type: disc;
}
varlistentry>listitem {
margin-left: 2em;
}
varlistentry+varlistentry {
margin-top: .5em;
}
simplelist[type=horiz] {
display: block;
}
simplelist[type=inline]>member+member:before {
/* typically, we end up with unwanted whitespace before the comma
* (i.e. whitespace between <member> elements). I see no way of
* suppressing this with CSS.
* TODO: try a combination of :after and :first-child instead to
* avoid the above issue */
content: ", ";
}
cmdsynopsis, code, command, computeroutput, envar, filename, keycode, keysym,
literal, option, parameter, sgmltag, systemitem {
font-family: monospace;
}
filename[class=directory]:after {
content: "/";
}
/* TODO: Are these specific to 'en' locales or not? */
trademark:after {
content: "\2122"
}
trademark[class="copyright"]:after {
content: "\A9"
}
trademark[class="registered"]:after {
content: "\AE"
}
trademark[class="service"]:after {
content: "\2120"
}
example, informalexample, programlisting {
background-color:#dddddd;
padding: .5em;
border: 1px dashed black;
}
example programlisting, informalexample programlisting {
background-color: none;
padding: 0;
border: none;
}
/* admonitions */
warning, caution, tip, note, important {
border: 1px dashed gray;
padding: .5em;
}
/* Have admonition titles appear inline with generated content ("Note:" etc.) */
warning>title, caution>title, tip>title, note>title, important>title {
display: inline;
}
warning:before, caution:before, tip:before, note:before, important:before {
/* Match the style of <title> */
font-weight: bolder;
font-family: sans-serif;
}
/* FIXME: background colours are cheezy :S ... */
/* see language specific css for content: */
warning:before {
background-color: red;
}
caution:before {
background-color: yellow;
}
tip:before {
background-color: #aaaddd;
}
note:before {
background-color: #dddddd;
}
important:before {
background-color: plum;
}
/* Tables */
thead > row > entry {
/* FIXME: will under-rule every row in the <thead>, not just the last
* (I tried adding this style to <thead> itself, but this doesn't
* appear to work in combination with display:table-header-group, as
* defined in tables.css) */
border-bottom: 2px solid black;
}
thead {
font-weight: bolder;
}
entry {
padding: .2em;
}
/* Footnotes */
/*
* Attempt to display footnotes on-mouseover. This may well break if a
* footnote element has multiple children (I think the children will end up
* stacked on top of each other).
*/
footnote {
position: relative;
cursor: help;
}
footnote:hover {
}
footnote>* {
display: none;
z-index: 100;
}
footnote:hover>* {
display: block;
position: fixed;
border: 2px dotted black;
background-color: #ffeeaa;
padding: .5em;
left: 0px;
bottom: 0px;
}
footnote:before {
content: "?";
background-color: #ffeeaa;
border: 2px dotted black;
font-size: smaller;
}
/*
Attempting to format <footnote> as a sitebar, floating it to the right.
Sometimes works for footnotes in the 'main body' of some text, but works badly
when the containing block is, for instance, a table cell.
footnote:before {
content: "*";
display: block;
border: 2px dotted black;
}
footnote>* {
display: block;
float: right;
border: 2px dotted black;
padding: .5em;
width: 25%;
top: -1em;
}
footnote>*:before {
content: "*Footnote";
display: block;
font-weight: bold;
font-family: sans-serif;
}
*/
glossentry>glossterm {
font-weight: bolder;
font-style: italic;
}
userinput {
font-weight: bolder;
}
figure {
text-align: center;
}
imageobject {
display: block;
}
mediaobject>textobject {
font-size: smaller;
}
/* Content */
question:before {
content: "Q: ";
}
answer:before {
content: "A: ";
}
example > title:before {
content: "Example: ";
}
quote {
quotes: "“" "”";
}
quote quote {
quotes: "" "";
}
/* Admonitions */
warning:before {
content: "Warning: ";
}
caution:before {
content: "Caution: ";
}
important:before {
content: "Important: ";
}
tip:before {
content: "Tip: ";
}
note:before {
content: "Note: ";
}