2 * Nick's web site: default stylesheet
4 * Copyright © 2018-2020 Nick Bowler
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <https://www.gnu.org/licenses/>.
21 $backgroundcolour: #ffffff;
22 $foregroundcolour: #000000;
24 $linkdefaultcolour: #0000cd;
25 $linkactivecolour: #ff0000;
26 $linkvisitedcolour: #800080;
28 $ruledefaultcolour: #d3d3d3;
29 $rulestrongcolour: #696969;
31 $annotationcolour: #708090;
33 $tableshadecolour: #f5f5f5;
35 @mixin header_size($maxwidth, $fontsize) {
37 max-width: 1em * ($maxwidth / $fontsize);
41 background-color: $backgroundcolour;
42 color: $foregroundcolour;
43 font-family: sans-serif;
47 a:link { color: $linkdefaultcolour; }
48 a:visited { color: $linkvisitedcolour; }
49 a:active { color: $linkactivecolour; }
51 h1 { @include header_size(60em, 2em); }
52 h2 { @include header_size(60em, 1.5em); }
53 h5 { @include header_size(60em, 1em); }
55 p>img { max-width: 40em; width: 100%; height: auto; }
59 @media (max-width: 28em) { text-align: left; }
64 p, table, div, ul, ol, dl, hr {
70 p, table, body>div, h5 { margin: 1em 0; }
72 li { margin: 0 0 0 2em; }
73 dd { margin: 0 0 0 1em; }
79 border-top: 1px solid $ruledefaultcolour;
83 font-family: monospace;
85 &:before { content: "% "; }
90 color: $annotationcolour;
92 a:link, a:visited { color: inherit; }
93 @media not screen { visibility: hidden; }
96 // General table styles.
98 border: 1px solid $ruledefaultcolour;
99 border-collapse: collapse;
103 table>* { font-size: 0.9em; }
113 vertical-align: middle;
119 thead>tr, tbody>tr { border: solid $ruledefaultcolour; }
120 th, thead>tr { border-bottom: 1px solid $rulestrongcolour; }
121 *>table, *>th { border: none; }
122 thead>tr { border-width: 1px; }
123 tbody>tr { border-width: 0 1px; }
125 td + td { box-shadow: -1px 0 $backgroundcolour; }
128 &:nth-of-type(even) { background-color: $tableshadecolour; }
129 &:last-child { border-bottom: solid 1px $ruledefaultcolour; }
132 // Specific table styles
134 &>tr>*:first-child, &>*>tr>*:first-child {
135 &+* { text-align: center; }
140 $sortcols: name, date, size;
141 @each $col in $sortcols {
142 #filelist-#{$col}-sort {
145 /* Update table header state */
148 display: -moz-inline-box !important;
149 display: inline-block !important;
151 label { display: none; }
154 /* Show only appropriate items from the sort body (forward) */
155 tbody+tbody>tr.#{$col} { display: table-row; }
156 tbody+tbody>tr { display: none; }
159 & ~ #filelist-#{$col}-rev:checked ~ table.filelist {
160 /* Show only appropriate items from sort body (reversed) */
161 tbody+tbody>tr.#{$col}rev { display: table-row; }
162 tbody+tbody>tr { display: none; }
165 /* Unhide associated checkbox for keyboard navigation */
166 & ~ #filelist-#{$col}-rev { display: block !important; }
169 &:focus ~ table.filelist th>label~label>span {
174 display: block !important;
180 #filelist-#{$col}-rev {
181 &:checked ~ table.filelist {
182 /* Update table header state */
185 display: -moz-inline-box !important;
186 display: inline !important;
188 img { display: none; }
192 &:focus ~ table.filelist th>label~label>img {
203 /* Enable the sorted tables only when non-default option is selected */
204 #filelist-name-rev, #filelist-date-sort, #filelist-size-sort {
205 &:checked~table.filelist>tbody {
206 &+tbody { display: table-row-group !important; }
212 &>tr>*:first-child, &>*>tr>*:first-child {
213 &+td { min-width: 50%; }
217 th>label>* { padding: 1px; }
218 th>label, th>label>* {
220 vertical-align: middle;
221 display: -moz-inline-box;
222 display: inline-block;
225 th img { margin-left: 0.5ex; }
228 border-bottom: solid 1px $ruledefaultcolour;
239 #breadcrumbs>*, #sitetitle>* { font-size: 0.8em; }
243 list-style-type: none;
249 li + li:before { content: "/ "; }
252 display: inline-block;
257 #footer, #article-info {
264 display: inline-block;
271 #footer p { color: $annotationcolour; }
272 #article-info p { font-style: italic; }
274 // "unordered" lists with explicit ordering in content
276 li { list-style: none; }
277 li>span:first-child, li>*:first-child>span:first-child {
278 display: inline-block;
285 @media (max-width: 512px) {
286 body { margin: 0.6em; }
287 ul ul { margin-left: -1.2em; }
291 @media (max-width: 35em) {
292 #sitetitle * { float: none; }
293 #footer { padding: 0 1em; }