/* 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} }