UNPKG

oboe.js-demo

Version:
938 lines (777 loc) 18.7 kB
/* categorical colours from https://github.com/mbostock/d3/wiki/Ordinal-Scales */ @font-face { font-family: "Computer Modern mono"; src: url("/type/cmuntt.eot"); src: url("/type/cmuntt.ttf"); src: url("/type/cmuntt.svg"); src: url("/type/cmuntt.woff"); } @font-face { font-family: "Computer Modern"; src: url("/type/cmunrm.eot"); src: url("/type/cmunrm.ttf"); src: url("/type/cmunrm.svg"); src: url("/type/cmunrm.woff"); } @font-face { font-family: "Computer Modern italic"; src: url("/type/cmunti.eot"); src: url("/type/cmunti.ttf"); src: url("/type/cmunti.svg"); src: url("/type/cmunti.woff"); } html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, figure { margin: 0; padding: 0; border: 0; outline: 0; vertical-align: baseline; background: transparent; font-weight: normal; } html { line-height: 1; background-color: #0f0a07; } body { color: #0f0a07; } nav ul { list-style: none; } blockquote, q { quotes: none; } blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; } ins { text-decoration: none; } del { text-decoration: line-through; } table { border-collapse: collapse; border-spacing: 0; } body { background: #fefefc; color: #0f0a07; font-family: "Computer Modern", georgia, serif; font-size: 120%; } em { font-family: "Computer Modern italic"; font-style: normal; } #header { height: 70px; transition: height 0.5s; } #header, footer { background: #0f0a07; } #siteNav { text-align: right; padding-top: 0.5em; padding-bottom: 0.5em; background-color: #f5f3ee; z-index: 1; border-bottom: 1px #fefefc solid; left: 0; right: 0; overflow: hidden; transition: padding 0.5s; height: 1em; } .is-sticky #siteNav { border-bottom-color: #c1bcb7; } #siteNav ul { max-width: 1100px; margin-left: auto; margin-right: auto; } .reducedLogo { float: left; margin-left: 20px; position: relative; top: -40px; transition: top 0.5s; } .reducedLogo.show { top: 0; } #siteNav li { display: inline-block; } #siteNav .siteLink { margin-right: 1em; color: #827e7a; } #siteNav a.siteLink:hover { color: #74b58c; } #siteNav a.siteLink:active { color: #569a6e; } #siteNav span.siteLink { text-decoration: underline; } #pagearea { display: table; max-width: 1100px; margin: 10px auto; padding: 0 20px; padding-bottom: 100px; } footer { border-top: 10px solid #827e7a; border-bottom: 30px solid #0f0a07; position: relative; z-index: 10; height: 20px; } .footer-contents { max-width: 860px; margin: 0 auto; } footer p, footer p a { color: #5a5855; } footer p a:hover { color: #82ca9c; } .col { margin-top: 30px; } .col.col1 { margin-right: 40px; } a, summary { color: #74b58c; fill: #74b58c; text-decoration: none; transition: all 0.5s; } a:hover, summary:hover { color: #4a765a; fill: #4a765a; text-decoration: underline; transition: all 0.2s; cursor: pointer; } a:active, summary:active { color: #0f0a07; fill: #0f0a07; transition: all 0s; } .internalNav a.active { background: #f5f3ee; border-left-color: #827e7a; } .internalNav a { display: block; padding: 5px; margin: 0 -6px; border-left: 1px solid #fefefc; } h1 a, h1 a:hover, li.reducedLogo a { color: #0f0a07; text-decoration: none; } .internalNav h2, .marked h2 { border-bottom: 1px #c1bcb7 solid; padding-bottom: 6px; margin: 1.2em 0 0.7em; } details { margin: 1.6em 0; } details summary { margin-left: 1em; margin-bottom: 0.5em; } /* main four elements making up grid */ .row { display: table-row; } h1, .strapline, .col { display: table-cell; vertical-align: top; } /* set width of left column */ h1, .col1 { width: 30%; } h1 { font-size: 350%; padding: 30px 40px 0.5em 0; } .strapline { padding: 52px 0 0 70px; font-size: 180%; line-height: 1.1; } .col2 { padding-left: 70px; } p { margin: 0.6em 0 0.6em 0; line-height: 1.5; } #download { display: block; background: #74b58c; padding: 15px; box-shadow: inset 0 -3px 0 #69b284; border-radius: 6px; color: white; font-size: 180%; margin: 4px 0 40px 0; width: 6em; text-align: center; transition: all 0.5s; } #download:hover { transition: all 0.15s; text-decoration: none; background: #4a765a; box-shadow: inset 0 -3px 0 #569a6e; } #download:active { transition: all 0s; background: #569a6e; box-shadow: inset 0 3px 0 #44805a; padding: 16px 15px 14px 15px; } #version { display: block; font-size: 50%; margin-top: 6px; opacity: 0.6; } nav ul.links { font-size: 120%; } nav ul.links li { margin: 0.5em 0; } nav ul.sections li { margin: 0.3em 0; } th { padding: 0 0 1em 0; } td { padding: 0 0.4em 0.6em 0.4em; line-height: 1.5; min-width: 7em; } table { margin: 1.5em 0 1em 0; } thead { display: none; } footer { padding: 17px 20px; height: 30px; } #footer-contents { text-align: center; position: relative; max-width: 1100px; margin-left: auto; margin-right: auto; } #footer-contents a { display: inline-block; } #footer-contents .contact { position: absolute; left: 0.8em; padding: 20px 0; color: #827e7a; } #footer-contents .contact:hover { color: #74b58c; } #footer-contents .contact:active { color: #0f0a07; } #footer-contents #externalLinks { display: inline-block; } #footer-contents #externalLinks .logo { fill: #827e7a; transition: all 0.5s; } #footer-contents #externalLinks a { margin: 0 15px; padding: 0 15px; } #footer-contents #externalLinks a:hover { text-decoration: none; } #footer-contents #externalLinks a:hover .logo { fill: #74b58c; transition: all 0.2s; } #footer-contents #externalLinks a:active .logo { fill: #0f0a07; } #footer-contents #sw { position: absolute; right: 0.8em; background: url(http://samwakeling.com/img/sw-icon-100.png) no-repeat; height: 64px; width: 50px; background-size: 100%; text-indent: -1000px; overflow: hidden; opacity: 0.8; transition: all 0.6s; background-position: 50%; } #footer-contents #sw:hover { transition: all 0.2s; opacity: 1; } svg.menuButton { display: none; margin-right: 20px; cursor: pointer; } svg.menuButton .background { fill: #f5f3ee; } svg.menuButton .rung { fill: #827e7a; transition: all 0.5s; } .open svg.menuButton .rung, svg.menuButton:hover .rung { fill: #74b58c; } svg.menuButton:active .background { fill: #fefefc; } svg.menuButton:active .rung { fill: #0f0a07; transition: all 0.2s; } /* Small screens - 1 column */ @media only screen and (max-width: 950px) { #header { height: 60px; } #pagearea { display: block; } .col1 { width: auto; } .col2 { padding-left: 0px; } .row { display: block; } h1, .strapline, .col { display: block; vertical-align: top; } h1 { margin-bottom: 0.1em; padding: 30px 0 0.2em 0; } h1, .strapline { margin-left: auto; margin-right: auto; text-align: center; } body:not(.home) #download { display: none; } #download { margin-left: auto; margin-right: auto; } #footer-contents { height: 135px; } #footer-contents #sw, #footer-contents .contact { bottom: 0; } .col.col1 { margin-right: 0; } .strapline { padding: 0; margin-top: 0; } #siteNav .siteLink { margin-right: 0.7em; } } /* Even Smaller screens */ @media only screen and (max-width: 600px) { figure .lightbox { opacity: 1; } svg.menuButton { display: inline; } #siteNav:not(.open) ul { display: none; } #siteNav li { display: block; margin-top: 0.2em; } #siteNav { position: fixed; top: 0; } #siteNav .siteLink { margin-right: 20px; } #siteNav li.reducedLogo { display: none; } #header { height: 20px; } footer { height: 30px; } #footer-contents #externalLinks a { margin: 0 5px; padding: 0 5px; } h1, .strapline { margin-top: 20px; } h1, .col1 { width: auto; } .col.col1 { margin-left: auto; margin-right: auto; } .strapline { width: auto; } #pagearea { padding: 0 20px; } #siteNav { text-align: right; padding-top: 0.2em; padding-bottom: 0.2em; height: auto; } } .marked { position: relative; } .marked, .marked pre { max-width: 672px; } .marked pre { background-color: #f5f3ee; overflow: auto; padding: 1em; line-height: 1.2em; margin: 0em 0 2em 0; } code { font-family: "Computer Modern mono", monospace; color: #3d3935; font-size: 80%; } code .comment { color: #74b58c; } code .string { color: #d8615a; } code .keyword { color: #50c3db; } /* inline code examples */ :not(pre) > code { display: inline-block; background-color: #f5f3ee; border-radius: 2px; padding: 2px 5px; } .marked ul, ol { margin: 0 2em 2em 2em; } .marked ul { list-style: none; } /* use bullets from the font and otherwise make them look like LaTeX. */ .marked li { margin: 0.5em 0; padding-left: 0; line-height: 1.5; } .marked ul li:before { content: "•"; padding-right: 0; position: absolute; left: 1em; } @media only screen and (max-width: 950px) { .marked, .marked pre { max-width: 100%; } } template { /* browsers that don't understand template elements fail to hide them */ display: none; } #demoTemplateHolder { display: none; } [data-demo] { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; margin: 1em 0 2em 0; background-color: #fefefc; position: relative; -webkit-backface-visibility: hidden; -webkit-perspective: 1000; } div.demoCaption { position: absolute; width: 14em; text-align: right; bottom: 2em; cursor: pointer; } div.demoCaption p { margin-bottom: 0.3em; margin-top: 0; } div.demoCaption p, div.demoCaption a { /* outline effect */ text-shadow: -1px -1px 0 #fefefc, 1px -1px 0 #fefefc, -1px 1px 0 #fefefc, 1px 1px 0 #fefefc; } div.demoCaption:hover a { color: #4a765a; fill: #4a765a; text-decoration: underline; transition: all 0.2s; cursor: pointer; } div.demoCaption:active a { color: #0f0a07; fill: #0f0a07; transition: all 0s; } rect.fade, .lightbox { fill: #fefefc; opacity: 0.9; } .lightbox { stroke: #74b58c; stroke-width: 2; vector-effect: non-scaling-stroke; } .lightbox div { text-align: right; } .lightbox p { line-height: 100%; margin-bottom: 0.15em; } .packet text { fill: #fefefc; text-anchor: middle; font-size: 60%; } .controls text { color: #74b58c; fill: #74b58c; text-decoration: none; transition: all 0.5s; } .controls text.play { text-anchor: middle; alignment-baseline: middle; font-size: 125%; } .controls:hover { cursor: pointer; } .controls:hover text.play, .controls .reset:hover text { color: #4a765a; fill: #4a765a; text-decoration: underline; transition: all 0.2s; cursor: pointer; } .controls:active text.play, .controls .reset:active text { color: #0f0a07; fill: #0f0a07; transition: all 0s; } .clickableArea { opacity: 0; } .paused .controls .reset:not(:hover) text { fill: #c8c5c1; } .pie-divide { fill: none; stroke: #fefefc; stroke-width: 1; } .aerial { fill: #74b58c; } g.client.received-0 .part.unit-0 { display: inline; } .unit-0 .packet.airwave { fill: none; stroke: black; } g.client.received-1 .part.unit-1 { display: inline; } .unit-1 .packet.airwave { fill: none; stroke: black; } g.client.received-2 .part.unit-2 { display: inline; } .unit-2 .packet.airwave { fill: none; stroke: black; } g.client.received-3 .part.unit-3 { display: inline; } .unit-3 .packet.airwave { fill: none; stroke: black; } g.client.received-4 .part.unit-4 { display: inline; } .unit-4 .packet.airwave { fill: none; stroke: black; } g.client.received-5 .part.unit-5 { display: inline; } .unit-5 .packet.airwave { fill: none; stroke: black; } g.client.received-6 .part.unit-6 { display: inline; } .unit-6 .packet.airwave { fill: none; stroke: black; } g.client.received-7 .part.unit-7 { display: inline; } .unit-7 .packet.airwave { fill: none; stroke: black; } g.client.received-8 .part.unit-8 { display: inline; } .unit-8 .packet.airwave { fill: none; stroke: black; } g.client.received-9 .part.unit-9 { display: inline; } .unit-9 .packet.airwave { fill: none; stroke: black; } .packet.airwave { stroke-width: 5px; } line.wire.cable { stroke: #74b58c; stroke-width: 4; stroke-linecap: round; } line.messageOuter { stroke: #74b58c; stroke-width: 41; stroke-linecap: round; } line.messageInner { stroke: white; stroke-width: 35; stroke-linecap: round; } g.client .frame, .server .box, .graph .bars, .graph .axes { fill: #827e7a; shape-rendering: crispEdges; } .aerial circle, circle.aerial, .browser .frame, .tower .area, .server .box { stroke: #fefefc; stroke-width: 3; stroke-linejoin: round; } .playing text.label { fill: #c8c5c1; } text.label { text-anchor: middle; fill: #fefefc; font-family: "Computer Modern italic"; transition: fill 1s; /* outline effect */ text-shadow: -1px -1px 0 #fefefc, 1px -1px 0 #fefefc, -1px 1px 0 #fefefc, 1px 1px 0 #fefefc; } .tower .area { fill: #fefefc; stroke: #fefefc; stroke-width: 9; } .browser .background { stroke: #fefefc; stroke-width: 4; fill: white; shape-rendering: crispEdges; } .browser .frame { stroke: #fefefc; stroke-width: 1; } .tower .structure, .barrier .wall, .barrier .shadow, .browser .progressBar .bar { fill: #827e7a; } .progressBar, .tweet .shading { shape-rendering: crispEdges; } .browser .progressBar .space { fill: #c8c5c1; opacity: 0.8; } .map .progressBar .space { fill: #fefefc; } .browser .progressBar { transition: opacity 0.5s; transition-delay: 0.5s; } .browser .progressBar.complete { opacity: 0; } .barrier .shadow { fill: #c8c5c1; } g.client .viewPort { fill: #fefefc; } g.client .part { display: none; } .tweet .detail { fill: #fefefc; opacity: 0.5; } .browser .spinner { fill: #c8c5c1; stroke: none; } .client g.spinnerContainer { opacity: 1; transition: opacity 1s; transition-delay: opacity 0.5s; } .client:not(.requesting) g.spinnerContainer { opacity: 0; } .map .water { fill: #3f8fb4; } .map .parks { fill: #74b58c; } .map .roads { fill: none; stroke: #c8c5c1; } .map .roads.minor { stroke-width: 1; } .map .roads.major { stroke-width: 3; } .map .pins .shadow { fill: #0f0a07; opacity: 0.2; } .map .pins .pointer { stroke: #fefefc; } .graph .axes { fill: none; stroke: #f5f3ee; stroke-width: 3; transition: stroke 0.5s; } .graph .points line { stroke: black; stroke-width: 2; } .graph .points circle { stroke: #fefefc; } .received-1 .graph .axes { stroke: #c8c5c1; } .cartogram path[data-state] { shape-rendering: crispEdges; } .cartogram path { transition: fill 0.5s; } .cartogram path, .cartogram circle { stroke: #fefefc; stroke-width: 0.9; vector-effect: non-scaling-stroke; fill: #c8c5c1; } .cartogram .pie line { vector-effect: non-scaling-stroke; stroke: #fefefc; stroke-width: 1; } @media only screen and (max-width: 600px) { .cartogram path, circle { stroke-width: 0.5; } } .categorical { /* categorical colors for packets */ } .categorical .unit-0 { fill: #1f77b4; } .categorical .unit-0 .airwave { stroke: #1f77b4; } .categorical .unit-1 { fill: #ff7f0e; } .categorical .unit-1 .airwave { stroke: #ff7f0e; } .categorical .unit-2 { fill: #2ca02c; } .categorical .unit-2 .airwave { stroke: #2ca02c; } .categorical .unit-3 { fill: #9467bd; } .categorical .unit-3 .airwave { stroke: #9467bd; } .categorical .unit-4 { fill: #d62728; } .categorical .unit-4 .airwave { stroke: #d62728; } .categorical .unit-5 { fill: #8c564b; } .categorical .unit-5 .airwave { stroke: #8c564b; } .categorical .unit-6 { fill: #e377c2; } .categorical .unit-6 .airwave { stroke: #e377c2; } .categorical .unit-7 { fill: #7f7f7f; } .categorical .unit-7 .airwave { stroke: #7f7f7f; } .categorical .unit-8 { fill: #bcbd22; } .categorical .unit-8 .airwave { stroke: #bcbd22; } .categorical .unit-9 { fill: #17becf; } .categorical .unit-9 .airwave { stroke: #17becf; } .twoSeries .unit-0 { fill: #da6600; } .twoSeries line.unit-0 { stroke: #da6600; } .twoSeries .unit-1 { fill: #2b95db; } .twoSeries line.unit-1 { stroke: #2b95db; } .twoSeries .unit-2 { fill: #ff9a41; } .twoSeries line.unit-2 { stroke: #ff9a41; } .twoSeries .unit-3 { fill: #185b88; } .twoSeries line.unit-3 { stroke: #185b88; } .twoSeries .unit-4 { fill: #da6600; } .twoSeries line.unit-4 { stroke: #da6600; } .twoSeries .unit-5 { fill: #2b95db; } .twoSeries line.unit-5 { stroke: #2b95db; } .twoSeries .unit-6 { fill: #ff9a41; } .twoSeries line.unit-6 { stroke: #ff9a41; } .twoSeries .unit-7 { fill: #185b88; } .twoSeries line.unit-7 { stroke: #185b88; } .twoSeries .unit-8 { fill: #da6600; } .twoSeries line.unit-8 { stroke: #da6600; } .twoSeries .unit-9 { fill: #2b95db; } .twoSeries line.unit-9 { stroke: #2b95db; } .political [data-wonby=dem] { fill: #1f77b4; } .political [data-wonby=rep] { fill: #d62728; } .origin-slow rect.box { fill: #cf823e; } .origin-fast rect.box { fill: #49708a; } .aggregator rect.box { fill: #9382a2; } .aerial.request, .packet.request { fill: #57aae2; } .request .packet.airwave { stroke: #57aae2; } span.server1 { background-color: rgba(31, 119, 180, 0.2); } span.server2 { background-color: rgba(255, 127, 14, 0.2); } span.aggregator { background-color: rgba(148, 103, 189, 0.2); } figure[data-demo=big-small] .client1 .frame { fill: #49708a; } figure[data-demo=big-small] .client2 .frame { fill: #cf823e; } figure[data-demo=big-small] .client3 .frame { fill: #9382a2; } span.client1 { background-color: rgba(31, 119, 180, 0.2); } span.client2 { background-color: rgba(255, 127, 14, 0.2); } span.client3 { background-color: rgba(148, 103, 189, 0.2); } span.place { background-color: rgba(200, 197, 193, 0.5); }