Files
JIMRI/web/css/default.css
T
2026-06-17 14:00:51 +02:00

1118 lines
21 KiB
CSS

/* Derived from the mozilla.org css */
/* which was written by dave shea, http://www.mezzoblue.com/ */
/* Modified L. David Baron. */
/* Modified and simplified for use by JMRI by John Plocher. */
/* Updated for responsiveness/accessibility and colors JMRI 2020 Egbert Broerse */
/* JMRI website Base Styles
* maintained by John Plocher and Egbert Broerse 2021
* (Original Mozilla classes are defined in the Markup Guide
* http://fantasai.inkedblade.net/mozilla/web/guide/markup)
* and W3CSS https://www.w3schools.com/w3css/default.asp
*/
/* TOC:
Random HTML Styles
General Structure
Navigation
Comments and Other Asides
Emphasis
Computers - General
Code
Examples and Figures
Q and A (FAQ)
Tables
Meta
Animation via css
*/
/* Style Colors css vars */
:root {
--primary-color1: #554FA0; /* Purple */
--primary-color2: #FFD700; /* Orange */
--primary-color3: #778899; /* LightSlateGray */
--hover-color: #C0C0C0; /* LightGray */
--background-color1: #B695C0; /* LightPurple */
--background-color2: #F5F5DC; /* Sand Beige */
}
/* Random HTML Styles */
body {
margin: 0;
font-family: PT Sans, Lucida Sans Unicode, Tahoma, sans-serif;
}
form {
margin: 0;
display: inline;
}
.bar-1 {
padding: 0px 16px;
float: left;
width: auto;
border: none;
display: block;
outline: 0;
}
.button, span.button {
color: White;
background-color: inherit;
border: none;
cursor: pointer;
overflow: hidden;
padding: 8px 16px;
vertical-align: middle;
text-decoration: none;
text-align: center;
white-space: nowrap
}
strong.button { /*in line "button" used in NetBeans an LocoIO help pages*/
color: Black;
background-color: White;
border: Black;
overflow: hidden;
padding: 2px;
vertical-align: middle;
text-align: center;
}
.button:hover {
background-color: #C0C0C0; /*var(--hover-color);*/
color: #778899; /*var(--primary-color3); LightSlateGray */
position: relative;
display: inline-block;
cursor: pointer
}
.block-show { /* unhide objects */
display: block!important;
}
.block {
display: block;
width: 100%;
}
.card-1 {
display: block;
background-color: #778899; /*var(--primary-color3); LightSlateGray */
color: White;
width: 95%;
box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12)
}
.card-1:hover {
color: Black;
}
.inline {
display: inline-block;
}
dt {
font-weight: bold;
}
/* General Structure */
* {
box-sizing: border-box;
}
.subtitle {
font-style: italic;
}
p {
text-indent: 0;
}
div.para {
margin: 1em 0;
}
div.para > * {
margin-top: 0.2em;
margin-bottom: 0.2em;
}
div.section {
display: block;
padding-left: 3%;
}
div.section > h2,
div.section > h3,
div.section > h4,
div.section > h5,
div.section > h6 {
margin-left: -1.0%;
}
blockquote address:before {
content: "\2015";
}
.video-container {
position: relative;
overflow: hidden;
width: 100%;
padding-top: 56.25%; /* 16:9 Aspect Ratio (divide 9 by 16 = 0.5625) */
}
.responsive-iframe {
position: absolute; /* to fit in video-container div */
top: 0;
left: 0;
bottom: 0;
right: 0;
width: 100%;
height: 100%;
}
/* flex: blocks that try to fit on a row, or wrap. Collapse to full width on smaller screens */
.flex-container {
display: flex;
flex-wrap: wrap;
}
.flex-item-30 {
padding: 1px;
flex: 30%;
}
.flex-item-50 {
padding: 1px;
flex: 50%;
}
.flex-item-70 {
padding: 1px;
flex: 70%;
}
/* Responsive layout - makes a one column-layout instead of a two-column layout */
@media (max-width: 800px) {
.flex-item-30, .flex-item-50, .flex-item-70 {
flex: 100%;
}
}
/* group several items in a div, responsive, replaces table */
.row::after {
content: "";
clear: both;
display: table;
}
/* Navigation */
.ex-ref {
font-style: italic;
}
dl.toc dt {
margin-top: 0.5em;
font-size: 90%;
}
dl.toc p {
margin: 0;
font-size: 80%;
text-indent: 1em;
}
dl.toc p:first-child {
text-indent: 0;
}
dl.toc > dd {
margin-left: 1em;
}
ol.toc ol {
list-style-type: circle;
}
ol.toc > li > ol {
font-size: 80%;
}
ul.snav {/* section navigation or short navigation, whichever you prefer */
margin: 0.7em 10%;
padding: .2em;
text-align: center;
}
ul.snav li {
list-style-type: none;
}
ul.snav > li {
display: inline;
}
ul.snav > li:before {
content: " | ";
}
ul.snav > li:first-child:before {
content: "";
}
a.cont {
display: block;
margin-right: 0;
text-align: right;
border: thin solid #FFD700; /* --primary-color2 - Orange */
}
/* Comments and other Asides */
/* AsciiDoctor styles */
.admonitionblock > table {
border-collapse: separate;
border: 0;
background: none;
width: 100%;
}
.admonitionblock > table td.content {
padding-left: 1.125em;
padding-right: 1.25em;
border-left: 1px solid #dddddf;
color: rgba(0,0,0,.6)
}
.admonitionblock.note :before {
content: ""; /* nothing */
}
.note {
font-style: italic;
}
.note:before {
content: "Note: ";
}
.remark {
font-size: smaller;
}
.remark:before {
content: "[";
}
.remark:after {
content: "]";
}
/* Emphasis */
/* em, strong */
strong.stronger {
font-style: italic;
font-weight: bold;
}
strong.very-strong {
font-weight: bold;
text-transform: uppercase;
}
*.important,
div.important,
p.important {
margin: 1em;
padding: 0.1em;
border: solid #FFD700; /* --primary-color2 - Orange */
}
p.noted,
div.noted {
margin: 1em;
padding: 0.1em;
border: 2px solid #778899; /* --primary-color3: LightSlateGray */
}
span.important,
em.important,
strong.important {
font-size: large;
}
.xlarge {
font-size:24px;
}
/* small [Since JMRI 1.2.3] sticker to mark introductory version number in Release Notes */
span.since {
color: Black;
font-weight: normal;
float: right;
background: #FFD700; /* --primary-color2 - Orange */
background-size: 100% 100%;
border-radius: 4px;
margin: 2px 2px 2px 2px;
padding: .2em .3em;
}
.since a:link {
color: Black;
font-weight: normal;
}
.since a:visited {
color: Black;
font-weight: normal;
}
.since a:link:hover, :visited:hover {
color: White;
font-weight: normal;
}
span.donate {
background: #FFD700; /* --primary-color2 - Orange */
border-radius: 10px;
font-weight: normal;
padding: 2px 5px 2px 5px;
box-shadow: 0 2px 5px 0 rgba(0,0,0,0.3),0 2px 10px 0 rgba(0,0,0,0.3);
}
.donate a:visited {
font-weight: normal;
}
/* Computers - General */
span.application {
font-style: italic;
}
kbd.command,
span.command {
font-family: monospace;
white-space: pre;
}
tt.filename,
span.filename {
font-style: italic;
white-space: nowrap;
}
tt.productnumber,
span.productnumber {
font-size: 90%;
font-family: monospace;
}
span.textbutton {
display: inline-block;
border: 1px solid black;
border-radius: 4px;
padding: 0 10px;
}
/* Code */
code {
font-family: monospace;
white-space: nowrap;
background-color: #F5F5DC; /*var(--background-color2);*/ /* Sand Beige */
color: #554FA0; /*var(--primary-color1);*/
}
code.block {
display: block;
overflow-x: scroll;
padding: .2em;
white-space: pre;
}
pre.incorrect-code { color: red; }
pre.code,
pre.incorrect-code {
overflow: auto;
margin: 1em .5em;
padding: .2em;
border: solid 1px;
}
pre.code .remark,
pre.incorrect-code .remark {
font-size: 1em;
font-style: italic;
}
/* turn off content generation */
pre.code .remark:before,
pre.incorrect-code .remark:before,
pre.code .remark:after,
pre.incorrect-code .remark:after,
pre.code .note:before,
pre.incorrect-code .note:before {
content: "";
}
/* Examples and Figures */
/* turn off borders so we don't need border=0 on image links */
:link img, :visited img {
border: 0;
}
/* add a border when an image has a white background on a white page */
.image-border {
border: solid thin black !important;
}
.deepLevel #mainContent :link img, .deepLevel #mainContent :visited img {
border: medium solid;
}
.example,
.incorrect-example {
margin: 1em 3%;
padding: .25em;
border: 2px solid blue;
font-family: monospace;
}
.Xexample:before,
.Xincorrect-example:before {
display: block;
font-weight: bold;
content: "Example";
}
.Xincorrect-example:before {
content: "Incorrect Example";
}
.example[title]:before,
.incorrect-example[title]:before {
content: attr(title);
}
.figure,
.screenshot {
display: block;
margin: .75em auto;
}
.screenshot[title]:after,
.figure[title]:after {
display: block;
margin: 0 8% .05em;
font-style: italic;
font-size: small;
text-align: right;
content: attr(title);
}
pre.screen {
overflow: auto;
margin: 1em .5em;
padding: .2em;
border: solid 1px;
font-family: monospace;
white-space: pre-wrap;
}
.co,
.callout {
text-decoration: underline;
}
.incorrect.incorrect,
.incorrect-example,
.incorrect-code {
border: solid red;
}
.right { float:right!important }
.image.right { margin-left:.625em }
/* Q and A (FAQ) */
.qandaset .question {
font-size: large;
font-weight: bold;
}
.qandaset .answer {
margin-top: 1em;
}
/* Tables */
.wide {
overflow-x: scroll;
}
table {
max-width: 99%;
border-collapse: collapse;
margin-top: 1em;
margin-bottom: 1em;
}
th {
padding-top: 1px;
padding-bottom: 1px;
text-align: left;
background-color: #FFD700; /* --primary-color2 - Orange */
color: white;
}
tr {
color: #554FA0; /*var(--primary-color1); Purple */
}
tr:nth-child(odd) {
background-color: #F5F5DC; /*var(--background-color2); Sand Beige */
}
td {
padding: 0.2em;
border: 1px solid #778899; /* --primary-color3: LightSlateGray */
vertical-align: top;
word-wrap: normal; /* fit long text block into a cell, alternatively add a td.wrap class */
}
table.data {
margin: 0.5em auto;
border: 1px solid;
}
table.data caption {
margin: 1em auto 0.2em;
font-size: small;
font-style: italic;
text-align: center;
}
/* Meta */
address {
text-align: right;
}
.author {
margin-bottom: 1em;
text-align: left;
}
/* end Base styles */
/*html elements*/
html {
padding: 0;
margin: 0;
}
body {
padding: 0;
margin: 0;
background: White;
color: Black;
font-family: Verdana, Sans-serif;
font-size: 90%;
position: relative;
min-height: 100%;
}
label, input {
font-weight: bold;
color: #3D2DF3;
}
h1, h2, h3, h4, h5, h6 {
margin: 1em 0 0.5em 0;
border-right: 0;
border-left: 0;
color: Black;
}
h1 { font-size: 140%; padding: 9px; padding-left: 1em; }
h2 { font-size: 120%; padding: 3px; padding-left: 3em; border-bottom: solid thin #778899;} /*var(--primary-color3); LightSlateGray */
h3 { font-size: 110%; padding: 1.5px; padding-left: 5em; border-bottom: solid thin #778899; }
h4 { font-size: 100%; padding: 1px; padding-left: 7em; border-bottom: solid thin #778899;}
h5 { font-size: 90%; padding: 1px; padding-left: 9em; border-bottom: solid thin #778899;}
h6 { font-size: 90%; padding: 1px; padding-left: 11em; border-bottom: solid thin #778899;}
sup {
font-size: 70%;
}
img {
max-width: 100%;
height: auto;
}
:link {
color: #554FA0; /*var(--primary-color1);*/
font-weight: bold;
}
:visited {
color: #090051;
font-weight: bold;
}
:link:hover, :visited:hover {
color: #5B52CB;
}
h1 :link, h2 :link, h3 :link, h4 :link, h1 :visited {
font-weight: normal;
}
hr {
padding: 0;
height: 4px;
margin: 2em 0;
color: #778899; /*var(--primary-color3); LightSlateGray */
}
/* alignment */
.floatLeft {
float: left;
margin: 5px 10px 5px 0;
}
.floatRight {
float: right;
margin: 5px 0 5px 10px;
}
/* page structure*/
/* Use a media query to add a breakpoint at 1024px, same point as top menus collapse into a dropdown (see /Header) */
@media only screen and (max-width: 1024px) {
#hor-nav {
display: none;
}
#side {
display: none;
}
h1, h2, h3, h4, h5, h6 {
padding: 0.3em;
}
}
/*2 Column Layout on bigger screens */
@media only screen and (min-width: 1025px) {
.mBody {
margin: 0 auto;
}
#mainContent {
left: 250px; /* = #mainContent is loaded before sidebar following guidelines (more important), so shift to right for width of #side(bar)*/
}
/*.nomenu #mainContent, /* .nomenu @deprecated 4.21.3/Jan 2021 as it describes sidebar no menu = top */
#mainContent.no-sidebar {
width: 98%;
left: 1%;
}
#side {
display: block;
animation: animate-left 0.4s;
}
#drop-nav, #show-side, #close-side {
display: none;
}
.list dd {
margin: 0 0 0 10em;
}
}
/*Base Mobile Layout*/
#mBody {
width: 100%;
margin: 0 auto;
position: absolute;
top: 64px;
left: 0;
padding: 0;
}
.nomenu #mBody {
background: #EEF; /*what color is this?*/
}
/*sidebar menus and links*/
#side {
position: fixed; /* Make it stick, even on scroll */
overflow: auto; /* Enable scrolling if the sidenav has more content than the screen */
float: left;
left: 0;
top: 64px;
bottom: 0;
padding: 0 0.3em 1em 0.3em; /* try some extra padding at the bottom to display all contents (item 3: 1em) */
voice-family: inherit;
max-height: 100%;
width: 250px;
z-index: 2;
background-color: #F5F5DC; /*--background-color2: Sand Beige */
color: #778899; /*var(--primary-color3); LightSlateGray */
}
.nomenu #side,
.no-sidebar #side {
display: none;
}
#side h2 {
margin-top: 0.5em;
background-color: inherit;
}
#side h3, #side h3:link {
margin: 0.5em 0 0 0;
padding-left: 1em;
background-color: inherit;
color: Black;
}
#side h4 {
font-size: 90%;
margin-top: 0;
margin-bottom: 0.5em;
}
#side p {
margin: 0 0 1em 2em;
font-size: 87%;
}
#side dl {
margin-top: 0;
}
#side dt {
font-weight: bold;
color: #554FA0; /*var(--primary-color1);*/
}
#side .dtheader {
color: black;
}
#side dd {
padding: 0 0 0.3em 0.3em;
margin: 0 0 1em 0;
font-size: 87%;
}
#side ul {
padding: 0;
margin: 0;
}
#side li {
list-style: none;
padding: 0 0 0.3em 0.5em;
}
#side li.here,
#side li.here:link {
/* highlight current page in sidebar */
background-color: #778899; /*var(--primary-color3); LightSlateGray */
color: #F5F5DC; /* Sand Beige = sidebar bg color */
font-weight: normal;
}
#side :link, #side :visited {
color: #554FA0; /*var(--primary-color1);*/
}
/*header*/
#header { /* No longer used for the JMRI website */
background: var(--background-color1);
}
#header img { /* No longer used for the JMRI logo */
float: left;
margin: 0;
padding: 0px 5px 5px 0px;
}
#mainNav { /* top row of top-of-page navbar */
background: #778899; /*var(--primary-color3); LightSlateGray */
color: White;
width: 100%; /* resize with window width */
height: auto; /* how much box below the text? 51px */
vertical-align: middle;
/* position: relative; // must be off for sticky */
z-index: 3;
overflow: visible; /* ! required to see More... the dropdown */
}
#mainNav li { /* list items are used for navbar menu choices */
white-space: nowrap;
list-style-type: none;
display: inline;
padding-right: 0.6em;
}
#mainNav :link, #mainNav :visited, #navbtn-more {
/* list items are usually links ... */
font-size: 100%;
text-transform: lowercase;
text-decoration: none;
font-weight: normal;
color: White;
}
#mainNav :link:hover, #mainNav :visited:hover {
color: #778899; /*var(--primary-color3); LightSlateGray */
}
.sticky { /* sticky navigation */
position: fixed;
top: 0;
width: 100%;
}
.sticky + .mainContent {
padding-top: 60px;
}
.hor-nav {
padding: 8px 16px;
display: inline-block;
}
/* 2020 dropdown from w3c, used in collapsed menu */
.dropdown {
position: relative;
top: 100%;
}
.dropdown ul {
list-style-type: none;
overflow: hidden;
}
.dropdown-content {
position: absolute;
top: 100%;
opacity: 0;
background-color: #778899; /*var(--primary-color3); LightSlateGray */
color: #000;
transition: box-shadow 125ms 0ms, transform 125ms 0ms, opacity 125ms 0ms, visibility 0ms .25s;
box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);
z-index: 5;
cursor: auto;
min-width: 160px;
margin: 0;
}
.dropdown-content a {
color: Black;
text-decoration: none;
text-align: left;
}
.dropdown:hover > .dropdown-content {
visibility: visible;
transition: visibility 0ms 0ms, opacity 83.33333333ms 0ms, transform .25s 0ms, box-shadow 83.33333333ms 62.5ms;
opacity: 1;
}
.dropdown-menuitem {
display: block;
position: relative;
white-space: nowrap;
width: 100%;
}
.hidden {
display: none;
}
/* Search Form constructs */
#searchform { /* search form */
position: absolute;
left: 100px;
top: 5px;
z-index: 4;
}
/* google search items in results */
.gsc-wrapper {
background: #F5F5DC; /* makes search result URL/title readable */
}
.gsc-thumbnail-inside { /* highlights JMRI result items */
background: LightSlateGray;
}
.gsc-thumbnail-inside :hover { /* highlights JMRI result items */
background: LightGray;
}
#title {
background: #AAC;
margin: 0 0 0 205px; /* Size of background box */
width: auto; /* resize with window width */
top: -14px;
height: 59px; /* how much box below the text? */
position: relative;
}
#title p {
width: auto; /* resize with window width */
height: 50px; /* how much box below the text? */
position: relative;
top: -6px;
border: solid 3px #AAE;
text-align: center;
font-size: 120%;
font-weight: bold;
background: #554FA0; /* primary-color1: Purple */
color: White;
}
/* } */
/*body*/
#mainContent {
background: White;
line-height: 1.3; /* value other than 'normal' needed for WinIE */
position: fixed;
top: 64px;
bottom: 0;
z-index: -1;
margin-left: 10px;
margin-right: 10px;
padding: 20px 30px 0px 10px;
max-width: 100%;
float: left;
voice-family: inherit;
max-height: 100%;
overflow: auto;
}
.nomenu #mainContent,
.no-sidebar #mainContent {
margin-left: 10px;
margin-right: 10px;
margin-bottom: 10px;
background: White;
}
/*what's new*/
#teaser p {
color: #5C5885;
margin-top: 0;
margin-left: 5px;
}
/* 2 column list panel */
.image100w td {
vertical-align: top
}
.image100w h2 {
color: #554FA0; /*var(--primary-color1);*/
background-color: #EEECF6;
background-position: center left;
padding: 7px;
border-right: 0;
border-left: 0;
margin-top: 0;
margin-bottom: 0;
}
.list {
margin: 2em 0 0 0;
}
.list dl {
margin: 0;
}
.list dt {
margin: 0 0 0 10em;
padding: 0.4em 0 0 0.7em;
}
.list .im100w {
clear: left;
float: left;
width: 102px;
text-align: center;
border: 0;
margin: 0;
padding: 1em 0 0.5em 0;
}
.list .im { /* col 1 of list */
clear: left;
float: left;
width: 6em;
text-align: center;
border: 0;
margin: 0;
padding: 1em 0 0.5em 0;
}
.list .left {
clear: left;
float: left;
width: 10em;
text-align: center;
border: 0;
margin: 0;
padding: 0.25em 0 0.25em 0;
}
.list dd.first {
}
.list dd {
margin: 0 0 0 2em; /*mobile first */
padding: 1px 0 0.4em 0.7em;
border-bottom: solid 1px LightSlateGray;
}
.list dd p, .list dd ul {
margin-top: 0.2em;
margin-bottom: 0.2em;
}
.list dd .quotes {
color: #5C5885;
}
.list dd .quotes p {
float: left;
width: 40%;
margin: 1em 5%;
}
/* generic reusable style */
.highlight {
display: block;
border-top: double 3px #ccc;
border-bottom: double 3px #ccc;
padding: 8px;
margin: 20px 40px;
}
.highlight img {
float: right;
margin: 0 20px 0 20px;
}
.highlight dl {
padding: 1em;
}
.highlight dd {
white-space: nowrap;
}
.this { font-weight: bold;
border: solid 1px #E6E0D7;
}
.mice {
font-size: 70%;
line-height: 1.1;
color: #999;
margin-top: 2em;
}
.mice :link, .mice :visited {
color: #666;
}
.linkset {
padding: 10px;
margin: 0 0 0.5em 0;
background: #eee;
border-top: double 3px #ccc;
border-bottom: double 3px #ccc;
}
.linkset li {
list-style-type: none;
padding-left: 20px;
margin: 12px;
}
#rhs, #rhs2 {
position: absolute;
left: 650px;
top: 160px;
width: 160px;
}
#rhs2 {
top: 0;
}
#rhs img {
padding-left: 35px;
margin-bottom: -20px;
}
/*footer*/
#bn {
clear: both;
border-top: solid 1px #EAE6DE;
padding: 0 0 0 0.5em;
margin: 3em 0 0.5em 0;
}
#bn li {
list-style: none;
display: inline;
white-space: nowrap;
}
#bn :link, #bn :visited {
padding: 0 1em 0 0.5em;
}
#bn :visited {
font-weight: bold;
}
#footer p {
font-size: 73%;
line-height: normal;
margin: 0 0 1em 1em;
}
/*accessibility tweaks*/
.skipLink {
position: absolute;
left: -999px;
width: 990px;
}
hr.hide {
display: none;
}
/* css animation */
@keyframes animate-left {
from {left:-300px; opacity:0} to {left:0; opacity:1}
}