$base-font-size: 16px; $base-line-height: 1.5; $__1px: (1px/$base-font-size) * 1rem; $base-font-family: 'Roboto, Helvetica, sans-serif'; $code-font-family: 'Roboto Mono, Menlo, Consolas, monospace'; $_body-margin: 0; $fore-color-var: '--fore-color'; $back-color-var: '--back-color'; $secondary-fore-color-var: '--secondary-fore-color'; $secondary-back-color-var: '--secondary-back-color'; $tertiary-fore-color-var: '--tertiary-fore-color'; $border-color-var: '--border-color'; $universal-margin-var: '--universal-margin'; $universal-padding-var: '--universal-padding'; $universal-border-radius-var: '--universal-border-radius'; $fore-color: #212121; $secondary-fore-color: #444; $tertiary-fore-color: #222; $back-color: #fff; $secondary-back-color: #f0f0f0; $border-color: #eee; $token-color-a-var: '--token-color-a'; $token-color-b-var: '--token-color-b'; $token-color-c-var: '--token-color-c'; $token-color-d-var: '--token-color-d'; $token-color-e-var: '--token-color-e'; $token-color-f-var: '--token-color-f'; $token-color-g-var: '--token-color-g'; $token-color-h-var: '--token-color-h'; $token-color-a: #80cbc4; $token-color-b: #bdbdbd; $token-color-c: #81d4fa; $token-color-d: #b388ff; $token-color-e: #c5e1a5; $token-color-f: #ff7043; $token-color-g: #4dd0e1; $token-color-h: #ffd54f; $universal-margin: 0.5rem; $universal-padding: 0.5rem; $universal-border-radius: 0.125rem; $heading-line-height: 1.2; $code-font-size: 0.875em; @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 300; src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmSU5fBBc4.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; font-display: swap; } @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 300; src: local('Roboto Light Italic'), local('Roboto-LightItalic'), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TjASc6CsQ.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; font-display: swap; } @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 500; src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmEU9fBBc4.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; font-display: swap; } @font-face { font-family: 'Roboto Mono'; font-style: normal; font-weight: 300; src: local('Roboto Mono Light'), local('RobotoMono-Light'), url(https://fonts.gstatic.com/s/robotomono/v5/L0xkDF4xlVMF-BfR8bXMIjDgiWqxf78.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; font-display: swap; } @font-face { font-family: 'Roboto Mono'; font-style: italic; font-weight: 300; src: local('Roboto Mono Light Italic'), local('RobotoMono-LightItalic'), url(https://fonts.gstatic.com/s/robotomono/v5/L0xmDF4xlVMF-BfR8bXMIjhOk9a0T72jBg.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; font-display: swap; } @font-face { font-family: 'Roboto Mono'; font-style: normal; font-weight: 500; src: local('Roboto Mono Medium'), local('RobotoMono-Medium'), url(https://fonts.gstatic.com/s/robotomono/v5/L0xkDF4xlVMF-BfR8bXMIjC4iGqxf78.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; font-display: swap; } :root { #{$fore-color-var}: $fore-color; #{$back-color-var}: $back-color; #{$border-color-var}: $border-color; #{$secondary-fore-color-var}: $secondary-fore-color; #{$tertiary-fore-color-var}: $tertiary-fore-color; #{$secondary-back-color-var}: $secondary-back-color; #{$universal-margin-var}: $universal-margin; #{$universal-padding-var}: $universal-padding; #{$universal-border-radius-var}: $universal-border-radius; #{$token-color-a-var}: $token-color-a; #{$token-color-b-var}: $token-color-b; #{$token-color-c-var}: $token-color-c; #{$token-color-d-var}: $token-color-d; #{$token-color-e-var}: $token-color-e; #{$token-color-f-var}: $token-color-f; #{$token-color-g-var}: $token-color-g; #{$token-color-h-var}: $token-color-h; } html { font-size: $base-font-size; } html, * { font-family: #{$base-font-family}; line-height: $base-line-height; // Prevent adjustments of font size after orientation changes in mobile. -webkit-text-size-adjust: 100%; } * { font-size: 1rem; font-weight: 300; } a, b, del, em, i, ins, q, span, strong, u { font-size: 1em; // Fix for elements inside headings not displaying properly. } body { margin: $_body-margin; color: var(#{$fore-color-var}); background: var(#{$back-color-var}); overflow-x: hidden; } // Correct display for Edge & Firefox. details { display: block; } // Correct display in all browsers. summary { display: list-item; } // Abbreviations abbr[title] { border-bottom: none; // Remove bottom border in Firefox 39-. text-decoration: underline dotted; // Opinionated style-fix for all browsers. } // Show overflow in Edge. input { overflow: visible; } // Make images responsive by default. img { max-width: 100%; height: auto; } h1, h2, h3, h4, h5, h6 { line-height: $heading-line-height; margin: calc(1.5 * var(#{$universal-margin-var})) var(#{$universal-margin-var}); } h1 { font-size: 6rem; } h2 { font-size: 3.75rem; } h3 { font-size: 3rem; } h4 { font-size: 2.125rem; } h5 { font-size: 1.5rem; } h6 { font-size: 1.25rem; } p { margin: var(#{$universal-margin-var}); } ol, ul { margin: var(#{$universal-margin-var}); padding-left: calc(2 * var(#{$universal-margin-var})); } b, strong { font-weight: 500; } hr { // Fixes and defaults for styling box-sizing: content-box; border: 0; // Actual styling using variables line-height: 1.25em; margin: var(#{$universal-margin-var}); height: $__1px; background: linear-gradient(to right, transparent, var(#{$border-color-var}) 20%, var(#{$border-color-var}) 80%, transparent); } code, kbd, pre { font-size: $code-font-size; } code, kbd, pre, code *, pre *, kbd *, code[class*="language-"], pre[class*="language-"] { font-family: #{$code-font-family}; } sup, sub, code, kbd { line-height: 0; position: relative; vertical-align: baseline; } code { background: var(#{$secondary-back-color-var}); padding: calc(var(#{$universal-padding-var}) / 4) calc(var(#{$universal-padding-var}) / 2); border-radius: var(#{$universal-border-radius-var}); } kbd { background: var(#{$fore-color-var}); color: var(#{$back-color-var}); border-radius: var(#{$universal-border-radius-var}); padding: calc(var(#{$universal-padding-var}) / 4) calc(var(#{$universal-padding-var}) / 2); } pre { overflow: auto; // Responsiveness padding: calc(1.5 * var(#{$universal-padding-var})); margin: var(#{$universal-margin-var}); background: #263238; border: 0; color: #fafafa; } code[class*="language-"], pre[class*="language-"] { color: var(#{$tertiary-fore-color-var}); text-align: left; white-space: pre; word-spacing: normal; word-break: normal; word-wrap: normal; line-height: 1.8; -moz-tab-size: 2; -o-tab-size: 2; tab-size: 2; -webkit-hypens: none; -moz-hyphens: none; -ms-hyphens: none; hyphens: none; color: #fafafa; } pre[class*="language-"] { padding: calc(2 * var(#{$universal-padding-var})); overflow: auto; margin: var(#{$universal-margin-var}) 0; } pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { background: #b3d4fc; } pre[class*="language-"]::selection, pre[class*="language-"] ::selection, code[class*="language-"]::selection, code[class*="language-"] ::selection { background: #b3d4fc; } :not(pre) > code[class*="language-"] { padding: .1em; border-radius: .3em; white-space: normal; } .token.comment, .token.prolog, .token.doctype, .token.cdata { color: var(#{$token-color-a-var}); } .token.punctuation { color: var(#{$token-color-b-var}); } .namespace { opacity: .7; } .token.property, .token.tag, .token.boolean, .token.constant, .token.symbol, .token.deleted, .token.function { color: var(#{$token-color-c-var}); } .token.number, .token.class-name { color: var(#{$token-color-d-var}); } .token.selector, .token.attr-name, .token.string, .token.char, .token.builtin, .token.inserted { color: var(#{$token-color-e-var}); } .token.operator, .token.entity, .token.url, .language-css .token.string, .style .token.string, .token.atrule, .token.attr-value, .token.keyword { color: var(#{$token-color-f-var}); } .token.regex { color: var(#{$token-color-g-var}); } .token.important, .token.variable { color: var(#{$token-color-h-var}); } .token.important, .token.bold { font-weight: 500; } .token.italic { font-style: italic; } .token.entity { cursor: help; } /* blockquote {} sup {} sub {} figure {} figcaption {} */ // =================================================== // Layout // =================================================== $grid-medium-breakpoint: 768px; $grid-large-breakpoint: 768px; // Grid container .container { display: grid; grid-template-columns: repeat(12, 1fr); grid-column-gap: calc(0.5 * var(#{$universal-margin-var})); } // Generic centered column .col-centered { grid-column: span 12; max-width: 100%; @media screen and (min-width: #{$grid-medium-breakpoint}) { grid-column: 2/12; } @media screen and (min-width: #{$grid-large-breakpoint}) { grid-column: 3/11; } } // 25% width - For the 'in numbers' section .col-quarter { grid-column: span 3; } .col-full-width { grid-column: span 12; } // For the contributors section .flex-row { display: flex; flex: 0 1 auto; flex-flow: row wrap; .flex-item { flex: 0 0 auto; max-width: 50%; flex-basis: 50%; @media screen and (min-width: #{$grid-medium-breakpoint}) { max-width: 25%; flex-basis: 25%; } @media screen and (min-width: #{$grid-large-breakpoint}) { max-width: 100%; flex-grow: 1; flex-basis: 0; } } } // TODO: Missing the menu system layout - probably all JS, effects and slide over // TODO: Redesign cards from scratch .card { &.code-card { margin-top: calc(2.5 * var(#{$universal-margin-var})); background: #263238; .section.card-content{ background: var(#{$back-color-var}); } } overflow: hidden; position: relative; margin: var(#{$universal-margin-var}); border-radius: calc(4 * var(#{$universal-border-radius-var})); box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2); .section { &.card-content{ padding: calc(1.5 * var(#{$universal-padding-var})); } } .collapse { background: #263238; background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23607D8B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-plus-square'%3E%3Crect x='3' y='3' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='12' y1='8' x2='12' y2='16'%3E%3C/line%3E%3Cline x1='8' y1='12' x2='16' y2='12'%3E%3C/line%3E%3C/svg%3E"); background-position: 0.25rem 0.9rem; background-repeat: no-repeat; text-transform: uppercase; padding: calc(1.5 * var(#{$universal-padding-var})); padding-left: calc(2.25 * var(#{$universal-padding-var})); display: block; font-size: 0.75rem; padding-bottom: calc(2 * var(#{$universal-padding-var})); color: #607D8B; cursor: pointer; + pre.card-examples { position: absolute; transform: scaleY(0); transform-origin: top; transition: transform 0.2s ease; } &.toggled{ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23607D8B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-minus-square'%3E%3Crect x='3' y='3' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='8' y1='12' x2='16' y2='12'%3E%3C/line%3E%3C/svg%3E"); padding-bottom: calc(0.125 * var(#{$universal-padding-var})); + pre.card-examples { position: relative; transform: scaleY(1); } } } pre.section { &.card-code { position: relative; margin-bottom: 0; padding-bottom: 0; } &.card-examples { margin-top: 0; margin-bottom: 0; border-radius: 0 0 calc(4 * var(#{$universal-border-radius-var})) calc(4 * var(#{$universal-border-radius-var})); padding-top: 0; &:before { content: ''; display: block; position: absolute; top: 0; left: 9px; border-left: 1px solid #607D8B; height: calc(100% - 18px); } } } h4 { text-align: center; padding-bottom: calc(0.75 * var(#{$universal-padding-var})); margin-bottom: calc(2 * var(#{$universal-margin-var})); border-bottom: $__1px solid var(#{$border-color-var}); } .copy-button-container { position: relative; z-index: 2; .copy-button { background: #1E88E5; background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23f0f0f0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-clipboard'%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'%3E%3C/path%3E%3Crect x='8' y='2' width='8' height='4' rx='1' ry='1'%3E%3C/rect%3E%3C/svg%3E"); background-position: center center; background-repeat: no-repeat; box-sizing: border-box; padding: calc(2.5 * var(#{$universal-padding-var})); border-radius: 50%; position: absolute; border: 0; top: -1.75rem; right: 0; margin: calc(2 * var(#{$universal-margin-var})); box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2); transition: all 0.3s ease; cursor: pointer; &:hover { background-color: #2196F3; box-shadow: 0 4px 5px 0 rgba(0,0,0,0.14),0 1px 10px 0 rgba(0,0,0,0.12),0 2px 4px -1px rgba(0,0,0,0.3); } &:before { background: #fff; position: absolute; top: -4px; right: -4px; content: ''; display: block; box-sizing: border-box; padding: calc(2.5 * var(#{$universal-padding-var})); border-radius: 50%; border: 4px solid #fff; z-index: -1; } } } } .advanced-corner { text-align: center; //text-transform: uppercase; box-sizing: border-box; padding-top: 32px; font-size: 0.75rem; position: absolute; top: -8px; right: -34px; transform: rotate(45deg); color: #fff; font-weight: 500; width: 104px; height: 52px; background: #E53935; box-shadow: 0 2px 2px 0 rgba(0,0,0,0.07),0 3px 1px -2px rgba(0,0,0,0.06),0 1px 5px 0 rgba(0,0,0,0.1); } .toast { position: fixed; bottom: calc(var(#{$universal-margin-var}) * 2); margin-bottom: 0; font-size: 0.8125rem; left: 50%; transform: translate(-50%, -50%); z-index: 1111; color: #fff; background: #212121; border-radius: calc(var(#{$universal-border-radius-var}) * 16); padding: var(#{$universal-padding-var}) calc(var(#{$universal-padding-var}) * 2); box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2); } // TODO: Links colors // TODO: Buttons and search form only // TODO: Top bar - header // TODO: Side bar - nav // TODO: Bottom area - footer // TODO: JS + CSS for side bar functionality // TODO: New toast // TODO: New marks // TODO: Components for statistics header h1.logo { margin-top: 0rem; font-size: 1.625rem; text-align: center; position: relative; top: 0; transition: top 0.3s; color: #111; } h1 a, h1 a:link, h1 a:visited { text-decoration:none; color: #111; &:hover, &:focus { text-decoration:none; color: #111; } } header #title { position:relative; top: -1.125rem; @media screen and (max-width: 768px) { display: none; } } header { z-index: 5; position: fixed; width: 110%; left: -5%; background: linear-gradient( 135deg, #ffb300 0%, #ec407a 100% ); box-shadow: 0 2px 4px rgba(0,0,0,.5); } header h1 small { display:block; font-size: 0.875rem; color: #888; margin-top: 0.75rem; } .github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}} header { background: #202124; h1 a, h1 a:link, h1 a:visited { color: #fff; &:hover, &:focus { color: #fff; } } } footer { color: #616161; * { font-size: 0.875rem; } padding-top: calc(2 * var(#{$universal-padding-var})); padding-bottom: calc(3 * var(#{$universal-padding-var})); margin-top: calc(6 * var(#{$universal-margin-var})); background: #e0e0e0; }