// ------------------------------------------------------------------------------ // Variables - Colors, Fonts, etc. // ------------------------------------------------------------------------------ $kss-colors-background : #fff; $kss-colors-foreground : #444; $kss-colors-heading : #111; $kss-colors-quotes : #666; $kss-colors-link : #0645ad; $kss-colors-link-visited : #0645ad; $kss-colors-link-hover : lighten($kss-colors-link, 20%); $kss-colors-link-active : #faa700; $kss-font-body : Helvetica, 'Helvetica Neue', Arial, sans-serif; $kss-font-code : Menlo, 'Ubuntu Mono', 'Lucida Console', 'Courier New', Courier, monospace; $kss-font-size : 16px; $kss-vertical-rhythm : $kss-font-size * 1.5; // ------------------------------------------------------------------------------ // Wrap all of this builder's base HTML styling inside a .kss-style selector. // ------------------------------------------------------------------------------ .kss-style { color: $kss-colors-foreground; font-family: $kss-font-body; font-size: $kss-font-size; line-height: $kss-vertical-rhythm; a { color: $kss-colors-link; text-decoration: none; transition-property: color; transition-duration: 0.5s; &:visited { color: $kss-colors-link-visited; } &:hover, &:focus { color: $kss-colors-link-hover; } &:active { color: $kss-colors-link-active; } &:hover, &:active { outline: 0; } } p { margin: ($kss-vertical-rhythm/2) 0 $kss-vertical-rhythm 0; } h1, h2, h3, h4, h5, h6 { margin: $kss-vertical-rhythm 0 0 0; font-family: $kss-font-body; color: $kss-colors-heading; line-height: 1.15em; } h4, h5, h6 { font-weight: bold; } h1 { font-size: $kss-font-size * 2.5; } h2 { font-size: $kss-font-size * 2.25; } h3 { font-size: $kss-font-size * 2.125; } h4 { font-size: $kss-font-size * 2; } h5 { font-size: $kss-font-size * 1.875; } h6 { font-size: $kss-font-size * 1.75; } blockquote { color: $kss-colors-quotes; margin: 0; padding-left: $kss-vertical-rhythm; border-left: 0.5em mix($kss-colors-quotes, $kss-colors-background, 25%) solid; } hr { display: block; height: 2px; border: 0; border-top: 1px solid lighten($kss-colors-foreground, 60%); border-bottom: 1px solid darken($kss-colors-background, 10%); margin: $kss-vertical-rhythm 0; padding: 0; } pre, code, kbd, samp { font-family: $kss-font-code; color: mix($kss-colors-foreground, $kss-colors-heading, 50%); font-size: 1em; } pre { white-space: pre; overflow: scroll; } ins { color: $kss-colors-heading; background: #ff9; text-decoration: none; } mark { color: $kss-colors-heading; background: #ff0; font-weight: bold; } sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sup { top: -0.5em; } sub { bottom: -0.25em; } ul, ol { margin: $kss-vertical-rhythm 0; padding: 0 0 0 $kss-vertical-rhythm; } li p:last-child { margin: 0; } dd { margin: 0 0 0 $kss-vertical-rhythm; } img { max-width:100%; border: 0; -ms-interpolation-mode: bicubic; vertical-align: middle; } table { border-collapse: collapse; border-spacing: 0; } td { vertical-align: top; } @media print { a, a:visited { text-decoration: underline; } hr { height: 1px; border:0; border-bottom:1px solid black; } a[href]:after { content: " (" attr(href) ")"; } a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } abbr[title]:after { content: " (" attr(title) ")"; } pre, blockquote { border: 1px solid #999; padding-right: 1em; page-break-inside: avoid; } tr, img { page-break-inside: avoid; } img { max-width: 100% !important; } p, h2, h3 { orphans: 3; widows: 3; } h2, h3 { page-break-after: avoid; } } } // ------------------------------------------------------------------------------ // Layout and page background // ------------------------------------------------------------------------------ #kss-node { margin: 0; padding: 20px; background: #fff; &.kss-fullscreen-mode { .kss-sidebar, .kss-section:not(.is-fullscreen), .kss-github { display: none; } } @media screen and (min-width: 769px) { padding: 0; .kss-main, .kss-sidebar { float: left; margin-right: -100%; box-sizing: border-box; } } .kss-main { width: 100%; margin: 0 auto; @media screen and (min-width: 769px) { width: 80%; margin-left: 20%; padding: 0 20px 0 30px; } } .kss-sidebar { border-bottom:1px solid #ddd; @media screen and (min-width: 769px) { position: fixed; width: 20%; height: 100%; overflow: auto; padding: 0 10px 0 20px; border-bottom: 0; background-image: url(noise-low.png), -ms-radial-gradient(#fff, #eee); background-image: url(noise-low.png), -o-radial-gradient(#fff, #eee); background-image: url(noise-low.png), -webkit-radial-gradient(#fff, #eee); background-image: url(noise-low.png), radial-gradient(#fff, #eee); box-shadow: inset -10px 0 10px -10px rgba(0,0,0,0.7); } } } // ------------------------------------------------------------------------------ // Sidebar-area components // ------------------------------------------------------------------------------ #kss-node { .kss-doc-title { margin: 0; @media screen and (min-width: 769px) { font-size: 1.5em; } } .kss-header, .kss-nav { @media screen and (min-width: 769px) { margin-top: 2em; } } .kss-nav__menu { margin-top: ($kss-vertical-rhythm/2); margin-bottom: ($kss-vertical-rhythm/2); padding: 0; list-style-type: none; } .kss-nav__menu-item { display: inline-block; padding-right: $kss-vertical-rhythm; @media screen and (min-width: 769px) { display: list-item; padding-right: 0; } } .kss-nav__menu-link { position: relative; display: inline-block; &:before { @media screen and (min-width: 769px) { content: ' '; position: absolute; left: -20px; width: 0; height: 100%; background-color: rgba(#000, 0); } } &.is-in-viewport:before { background-color: #000; width: 5px; transition: background-color .4s, width .6s; } } .kss-nav__menu-child { display: none; @media screen and (min-width: 769px) { display: block; list-style-type: none; margin: 0; padding: 0; // @TODO: The ul is output even when there are no children. Fix this, so // we can put these :first-child and :last child styles back on the ul. li:first-child { margin-top: 10px; border-top: 1px solid #ccc; padding: 10px 0 0; } li:last-child { margin-bottom: 10px; border-bottom: 1px solid #ccc; padding: 0 0 10px; } } } .kss-nav__ref { color: #333; font-weight: bold; &:after { content: ' '; } } .kss-nav__ref-child { font-weight: normal; } } // ------------------------------------------------------------------------------ // Content-area components // ------------------------------------------------------------------------------ #kss-node { .kss-section { margin-bottom: ($kss-vertical-rhythm * 2); // "fullscreen" styles copied from Mozilla's default stylesheet. &.is-fullscreen { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; width: 100% !important; height: 100% !important; margin: 0 !important; min-width: 0 !important; max-width: none !important; min-height: 0 !important; max-height: none !important; box-sizing: border-box !important; object-fit: contain !important; transform: none !important; // Turn on scrolling if needed. overflow: auto !important; padding: 20px; } } .kss-title { margin-bottom: 0; } .is-fullscreen .kss-title { margin-top: 0; } .kss-title__ref { display: block; font-size: $kss-font-size; line-height: $kss-font-size; color: #666; &:before { content: 'Section '; } } .kss-title__permalink { display: block; color: #000; text-decoration: none; &:hover, &:focus, &:active { color: $kss-colors-link; @media screen and (min-width: 607px) { .kss-title__permalink-hash { display: inline; } } } } .kss-title__permalink-hash { display: none; color: #ccc; } .kss-toolbar { margin: 6px 0 24px; display: inline-block; border: 1px solid #eee; background-color: #f9f9f9; border-right-color: #e0e0e0; border-bottom-color: #e0e0e0; line-height: 1; padding: 3px; a { box-sizing: content-box; display: inline-block; width: 16px; height: 16px; padding: 3px; vertical-align: top; // Tooltip wrapper styles: position: relative; overflow: visible; + a { margin-left: 6px; } .kss-toolbar__icon-fill { fill: #ccc; } svg.on { display: none; } &:focus, &:hover { border-color: #000; .kss-toolbar__icon-fill { fill: #000; } } } } .kss-toolbar__tooltip { position: absolute; z-index: 1; display: inline-block; bottom: 100%; left: -10px; margin-bottom: 5px; border: solid 1px #666; padding: 8px 10px 6px; box-shadow: 2px 2px 2px rgba(0, 0, 0, .25); white-space: nowrap; color: #000; background: #fff; cursor: help; opacity: 0; transition: opacity 0.25s; // Visually hidden height: 1px; width: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); word-wrap: normal; // Solid grey triangle. &:before, &:after { content: ''; position: absolute; bottom: -8px; left: 15px; width: 0; height: 0; border-width: 7px 5px 0; border-color: #666 transparent; border-style: solid; } // White triangle knock-out. &:after { bottom: -6px; border-top-color: #fff; } } a:focus, a:hover { > .kss-toolbar__tooltip { opacity: 1; // Visually hidden off clip: auto; height: auto; width: auto; overflow: visible; } } .is-fullscreen .kss-toolbar a[data-kss-fullscreen], &.kss-guides-mode .kss-toolbar a[data-kss-guides], &.kss-markup-mode .kss-toolbar a[data-kss-markup] { border-color: #666; background-color: #666; .kss-toolbar__icon-fill { fill: #fff; } svg.on { display: block; } svg.off { display: none; } } .kss-parameters { display: table; list-style-type: none; margin-top: 0; margin-left: 0; padding-left: 0; } .kss-parameters__title { font-weight: bold; } .kss-parameters__item { display: table-row; } .kss-parameters__name { display: table-cell; padding-right: 20px; white-space: nowrap; } .kss-parameters__description { display: table-cell; } .kss-parameters__default-value code { white-space: nowrap; } .kss-modifier__wrapper { border: 1px solid #ccc; padding: 0 10px 10px; } .is-fullscreen .kss-modifier__wrapper { // Un-do padding on .kss-section. margin-left: -20px; margin-right: -20px; // Remove all padding on the wrapper padding-left: 0; padding-right: 0; border: none; } .kss-modifier__heading { margin: 0 -10px 10px -10px; padding: 10px; border-bottom: 1px solid #ccc; background-color: #eee; font-weight: bold; } .is-fullscreen .kss-modifier__heading { margin: 0 20px 10px; border: 1px solid #ccc; } .kss-modifier__default-name { font-weight: bold; margin-bottom: ($kss-vertical-rhythm / 2); } .is-fullscreen .kss-modifier__default-name { margin-left: 20px; margin-right: 20px; } .kss-modifier__name { float: left; padding-right: 10px; font-weight: bold; } .is-fullscreen .kss-modifier__name { margin-left: 20px; } .kss-modifier__description { margin-bottom: ($kss-vertical-rhythm / 2); } .is-fullscreen .kss-modifier__description { margin-right: 20px; } .kss-modifier__example { clear: left; border: 2px dashed transparent; position: relative; // Contain the example's absolute positioning. z-index: 0; // Establishes a local stacking context. margin: -2px -2px ($kss-vertical-rhythm - 2px); &:last-child { margin-bottom: 0; } } &.kss-guides-mode .kss-modifier__example, &.kss-guides-mode .kss-modifier__example-footer { &:before, &:after { z-index: -1; box-sizing: border-box; content: ''; position: absolute; width: 5px; height: 5px; border: 2px solid #000; } } &.kss-guides-mode .kss-modifier__example { border-color: #000; &:before { top: -5px; left: -5px; border-top: 0; border-left: 0; } &:after { top: -5px; right: -5px; border-top: 0; border-right: 0; } } &.kss-guides-mode.kss-fullscreen-mode .kss-modifier__example { &:before { left: auto; right: 0; } &:after { right: auto; left: 0; } } .kss-modifier__example-footer { clear: both; } &.kss-guides-mode .kss-modifier__example-footer { &:before { bottom: -5px; left: -5px; border-bottom: 0; border-left: 0; } &:after { bottom: -5px; right: -5px; border-right: 0; border-bottom: 0; } } &.kss-guides-mode.kss-fullscreen-mode .kss-modifier__example-footer { &:before { left: auto; right: 0; } &:after { right: auto; left: 0; } } .kss-markup { margin: $kss-vertical-rhythm 0; border: 1px solid #ccc; &[open] summary { border-bottom: 1px solid #ccc; margin-bottom: 3px; } summary { padding-left: 10px; } pre { margin: 0; } } .kss-source { font-size: 80%; } .kss-github { display:none; @media screen and (min-width: 501px) { display: block; position: absolute; top: 0; right: 0; } img { border: 0; } } // ------------------------------------------------------------------------------ // prettify.js styles // ------------------------------------------------------------------------------ /* SPAN elements with the classes below are added by prettyprint. */ .pln { color: #000 } /* plain text */ .str { color: #080 } /* string content */ .kwd { color: #008 } /* a keyword */ .com { color: #800 } /* a comment */ .typ { color: #606 } /* a type name */ .lit { color: #066 } /* a literal value */ /* punctuation, lisp open bracket, lisp close bracket */ .pun, .opn, .clo { color: #660 } .tag { color: #008 } /* a markup tag name */ .atn { color: #606 } /* a markup attribute name */ .atv { color: #080 } /* a markup attribute value */ .dec, .var { color: #606 } /* a declaration; a variable name */ .fun { color: red } /* a function name */ /* Use higher contrast and text-weight for printable form. */ @media print, projection { .str { color: #060 } .kwd { color: #006; font-weight: bold } .com { color: #600; font-style: italic } .typ { color: #404; font-weight: bold } .lit { color: #044 } .pun, .opn, .clo { color: #440 } .tag { color: #006; font-weight: bold } .atn { color: #404 } .atv { color: #060 } } /* Specify class=linenums on a pre to get line numbering */ ol.linenums { margin: 0; padding: 0 0 3px 0; list-style-type: none; li { min-height: $kss-vertical-rhythm; border-bottom: 1px solid #eee; padding: 0 10px; background: #fff; &:first-child { padding-top: 3px; } } /* Alternate shading for lines */ li.L0, li.L2, li.L4, li.L6, li.L8 { background: #fcfcfc; } } }