Mercurial > p > roundup > code
view website/www/_static/style.css @ 7346:4295ac110551
Ad skiplink to main on moblie; fix overlapping links
On mobile, the Roundup label at the top of the stacked table of
contents becomes a link to jump to the top of the main body of the
page. Without this there is no indication that a link on the main menu
has been clicked and there is a lot of scrolling to get to the real
content of the page. Ideally the left sidebar would become a menu link
an be shown only when activated but ....
Ran the top level pages through lighthouse to see how they do on
mobile. Style changes added to fix links that overlap; fix links that
were incorrectly displayed as blocks rather than in running text.
Fixes some spacing issues with nested lists inside definition lists
definition (dd) tags. Removed some indent when TOC follows n H1
header. Wrap search box on smaller screens so the search box doesn't
overlap the jump link. Add back left margin to footer.
Tried to prevent overlap with the prev/next/index submenu. It's better
but still not good.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sun, 14 May 2023 15:39:13 -0400 |
| parents | a3dbd44c3642 |
| children | ff5a50069822 |
line wrap: on
line source
/* layout*/ /* Set up fluid type scale. Major third for smaller screens and perfect fourth for larger screens. Allow override using --font-level-X. https://set.studio/some-simple-ways-to-make-content-look-good/ */ :root { --_font-level-0: var(--font-level-0, clamp(1rem, 0.96rem + 0.22vw, 1.13rem) ); --_font-level-1: var(--font-level-1, clamp( 1.25 * var(--_font-level-0), 1.16rem + 0.43vw, 1.5rem) ); --_font-level-2: var(--font-level-2, clamp( 1.25 * var(--_font-level-1), 1.41rem + 0.76vw, 2rem) ); --_font-level-3: var(--font-level-3, clamp( 1.25 * var(--_font-level-2), 1.71rem + 1.24vw, 2.66rem) ); --_font-level-4: var(--font-level-4, clamp( 1.25 * var(--_font-level-3), 2.05rem + 1.93vw, 3.55rem) ); } * + * { margin-block-start: 1.2em;} /* shrink spacing between list elements in tables of contents, badge displays */ div.toctree-wrapper * + *, div.contents * + *, div.release_info * { margin-block-start: 0.25em; } h1, h2, h3, h4, h5, h6 { line-height: 1.25; /* Larger spacing before header and smaller after to make header part of following section */ margin-block-end: 0.3em; } h1 { font-size: var(--_font-level-4); } /* remove whitespace at top of main column */ main h1 { margin-block-start: 0; } h2 { font-size: var(--_font-level-3); } h3 { font-size: var(--_font-level-2); } h4 { font-size: var(--_font-level-1); } /* snug header up to first paragraph of it's section. */ :is(h1,h2,h3,h4,h5,h6) + p { margin-block-start: 0; } body { background-color: #f5f5f5; color: rgb(20,20,20); font-family: sans-serif, Arial, Helvetica; font-size: var(--_font-level-0); margin:0; padding: 0 3em 0 14em; } /* -14em is size of table of contents/nav */ body > .header { margin: 0 0 0 -14em;} body > header > div.mobile { display:none; } body > .header div.label { font-size: 2em; font-weight: bold; margin: 0.67em 0 0.67em 1em;} body > .footer { margin: 1em 0 1em -14em; clear:both;} body > .navigation { margin-left: -14em; margin-inline-start: -14em; width: 14em; float: left; } body > .content { margin: 0; width: 100%; } body > .header > #searchbox { position: absolute; right: 1em; top: 1em;} body > .content > #subnav { position: absolute; right: 1.5em; top: 6em;} /* limit width of main column to 65 characters. On wider screens can be 100+ chars: too wide */ main { max-width: 65ch; line-height: calc(1.5 * 1em); } /* style */ :link { color: rgb(220,0,0); text-decoration: none;} :link:hover {text-decoration: underline;} :visited { color: rgb(187,0,0); text-decoration: none;} a.toc-backref { color: #000000; } .header h1 { margin-left: 1em; } .menu { padding: 0; margin-right: 1em;} .menu ul { padding: 0; margin: 0; } .menu li { margin: 5pt 0; } .menu > ul > li > * { display: block; padding: 2pt 2pt 2pt 10pt; border: solid thin #dadada; background-color:#ffffff; } .menu > ul > li.current > * { background-color:#dddddd; } .menu ul li:first-child { margin-top:0;} .menu ul { list-style-type:none;} /* sub-menus are indented */ .menu > ul > li > ul, .menu > ul > li.current > ul { border:none; background-color: inherit; } .menu ul ul { margin-left: 1em; font-size: smaller; } /* sub-menu items draw a separator */ .menu ul ul > li { margin: 0; padding: 0; border: none; border-top: solid thin #dadada; background-color: inherit; } .menu ul ul > li:first-child { border-top: none; } .menu ul li.toctree-l2.current { background-color: #dddddd; pading-block: 0.25em; } /* related */ div.related { width: 100%; font-size: 90%; } div.related-top { border-bottom: solid thin #dadada;} div.related-bottom { border-top: solid thin #dadada;} div.related ul { margin: 0; padding: 0 0 0 10px; list-style: none; } div.related li { display: inline;} div.related li.right { float: right; margin-right: 5px; } .footer { font-size: small; text-align: center; color: black; } .footer img { vertical-align: middle; } .content { padding: 1em; border: solid thin #dadada; background-color: #f7f7f7; } /* This is a little hack to inject a 'news' block into the title page without having to set up a custom directive. */ #roundup-issue-tracker .note { float: right; width: auto; border: solid thin #dadada; background-color:#f5f5f5; padding: 1em; margin: 1em; } #roundup-issue-tracker .note .admonition-title { display: none; } table { border-collapse: collapse; border-spacing: 1px; background-color: #fafafa; } table:has(caption) { margin-block: 1em; } table caption { font-weight: bold; font-size: smaller; } table.footnote { font-size: calc(1em - 1pt); position: relative } table.footnote::before { border: 1px solid black; content: ""; left: 0; position: absolute; top: 0; width: 25%; } td { /* pull text away from borders */ padding-inline: 0.5em; } td > p { /* remove top margin on a p inside table cell so that columns with paragraphs align at top of cell rather than leaving a blank margin */ margin-block-start: 0px; } input, textarea { border-width: 1px; } a.headerlink { font-size: 0.8em; margin-left: 0.3em; color: #c99; } div.admonition { padding-inline: 1em; padding-block: 0.25em; border-inline-start: grey solid 4px; background-color: #dfdfdf; } div.admonition.caution { border-inline-start: red solid 4px; } div.admonition.warning { border-inline-start: yellow solid 4px; } p.admonition-title { border-block-end: grey solid 2px; font-weight: bold; font-size: larger; margin-block: 0; } div.admonition.caution p.admonition-title { border-block-end: red solid 2px; } dt { font-weight: bold; margin-block-start: 1em;} dt + dd { margin-block-start: 0.25em; } dd p.first { margin-block-start: 0; } dd > ul:first-child { /* reduce indent with list inside dd. I want to reduce margin-inline-start on dd but :has(> ul:first-child) doesn't work in firefox yet, so use negative margin on ul. */ margin-inline-start: -32px; } #skiplink { display: block; margin-block-start: 1em; margin-inline-start: 1em;} #skiplink a { /* force stuff for screenreader off screen */ position:absolute; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden; padding: 0 0.75em; font-weight: bold; } #skiplink a:focus { position: static; width: auto; height: auto; } /* remove solid black border when focus is around the main section due to activation of skip-link. Page jumps there, that's enough. */ #main:focus-visible {outline: none;} /* Prevent examples from extending outside the viewport */ /*div.highlight > pre { overflow-wrap: anywhere; white-space: break-spaces; }*/ /* Forcing wrap in a pre leads to some confusing line breaks. Use a horizontal scroll. Indicate the scroll by using rounded scroll shadows. https://css-tricks.com/books/greatest-css-tricks/scroll-shadows/ https://blogit.create.pt/pedrolopes/2022/03/24/css-scroll-shadows/ */ div.highlight > pre { overflow-wrap: normal; overflow-x: auto; /* Shadows */ background-image: /* Shadow covers */ linear-gradient(to right, white, white), linear-gradient(to right, white, white), /* Shadow */ radial-gradient(farthest-side at 0px 50%, rgba(0, 0, 20, 0.5), rgba(255, 255, 255, 0)), radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 20, 0.5), rgba(255, 255, 255, 0)); /* square shadows */ /* linear-gradient(to right, rgba(0, 0, 0, 0.25), rgba(255, 255, 255, 0)), linear-gradient(to left, rgba(0, 0, 0, 0.25), rgba(255, 255, 255, 0)); */ background-position: left center, right center, left center, right center; background-repeat: no-repeat; background-color: white; background-size: 20px 100%, 20px 100%, 16px 100%, 16px 100%; background-attachment: local, local, scroll, scroll; } /* website only */ /* assume desktop reader for local html files, also no contact page for local doc files */ @media only screen and (max-width:960px) { /* setup for layout/page frame */ body { padding-inline-start: unset; /* remove space for float menu */} body > .header { margin-inline-start: unset; margin-block-start: 3em; /* move down from search */} body > .navigation { margin-inline-start: unset; width: unset; float: none;} body > .navigation li > ul > li { padding-block: 1em; /* move links away from each other */ } #roundup-issue-tracker .note { float: none; /* download box */} body > header > div.label.mobile { /* constrain nav label div */ display: block; margin-inline-start: 0.5em; max-width: 48%; } /* activate jump link and hide default label at top of stacked sidebar */ body > header > div.mobile span.jumplabel { display: block; font-size: small; } body > header > div.non_mobile { display: none; } body > .footer { margin-inline-start: 1em; } /* changes for content */ /* stop paths and things from overflowing the viewport. */ div.content { overflow-wrap: break-word; } /* add space between items in TOC to make hitting the links easier */ li[class^=toctree] { margin-block: 1em; } li[class^=toctree] > ul { margin-top: 1em; } div.contents ul.simple li { padding-block: .5em; } h1 + div.contents > ul:first-child { /* reduce wasted whitespace to left in TOC */ padding-inline-start: 1em; } #subnav { margin-block-end: 1em; min-height: 48px; } /* use for table of links to increase space between links on small devices */ table.linkspacing tr {height: 48px;} } @media only screen and (max-width:512px) { /* prevent searchbox bleed into jumplink@top left. */ #searchbox { max-width: 48%; } #searchbox > form { align-items: flex-end; display: inline-flex; flex-direction: column; } #searchbox > form > input[type=submit] { margin-block: 0.75em; } } /* Contact page */ div#contact table td { white-space: nowrap; padding: 1pt 1em; }
