UNPKG

@zkochan/pnpm

Version:

A fast implementation of npm install

540 lines (436 loc) 9.06 kB
@require './normalize.css/normalize.css' @require './github-markdown-css/github-markdown.css' @require './nprogress/nprogress.css' @require './iconfonts/stylesheets/ionicons' ion-font() $bg ?= white $black ?= #111 $slate ?= #505d6b $accent ?= #4078C0 $nav-width ?= 250px $collapsed-nav-width ?= 64px $xpad ?= 24px $line ?= rgba($black, 0.1) // :before: clearfix() &:after content: '' display: table clear: both zoom: 1 * box-sizing: border-box html, body height: 100% html background: $bg .doc-layout width: 100% height: 100% .body padding: 16px // // Menu // .toc-menu $pad = 24px & position: relative padding: ($pad - 4px) 0 // background: #fdfefe box-shadow: inset -1px 0 $line font-size: 13px transition: opacity 1500ms linear ul, li margin: 0 padding: 0 list-style: none .title display: block padding: 7px $pad height: 1em text-overflow: ellipsis overflow: hidden white-space: nowrap box-sizing: content-box .-level-1.-parent margin-bottom: 16px .-level-1.-parent > .title margin-top: 16px font-weight: bold color: $black font-size: 1.1em .link &, &:visited color: $slate text-decoration: none position: relative .link, .hlink & transition: background-color 200ms linear, color 500ms linear, box-shadow 200ms linear box-shadow: inset -2px 0 rgba($accent, 0) box-sizing: content-box &:hover background-color: rgba($accent, 0.02) color: darken($slate, 20%) transition: box-shadow 200ms linear &:active background-color: rgba($accent, 0.1) color: $black transition: box-shadow 200ms linear &.-active box-shadow: inset -2px 0 $accent transition: background-color 200ms linear, color 500ms linear // The readme .-level-1:first-child margin-bottom: 16px // The readme's headings .-level-1:first-child > .heading-list margin-top: 16px // The readme's title .-level-1:first-child > .title margin-top: 0 font-size: 1.5em font-weight: 300 color: $black .-level-3 .title padding-left: $pad + 8px * 1 .-level-4 .title padding-left: $pad + 8px * 2 // // Headings menu // ul.heading-list $pad = 24px .hlink text-decoration: none padding: 6px $pad display: block height: 1em text-overflow: ellipsis overflow: hidden white-space: nowrap &, &:visited color: $slate .hlink:before content: '' display: inline-block vertical-align: middle margin-right: 8px height: 2px width: 12px background: $slate opacity: 0.3 // // Hover fade // .toc-menu.-faded .title:not(.-active) opacity: 0.2 transition: opacity 1500ms linear &:hover .title opacity: 1 transition: opacity 200ms linear // // Markdown body // .markdown-body margin: 0 auto max-width: 768px overflow: visible // // Markdown overrides // .markdown-body h1 font-size: 2.5em font-weight: 300 margin-bottom: .5em padding-bottom: .5em // // Nprogress // #nprogress .bar background: $accent .peg box-shadow: 0 0 10px $accent, 0 0 5px $accent display: block .spinner-icon border-top-color: $accent border-left-color: $accent // // Menu toggle // .menu-toggle $size = 40px & display: none box-sizing: content-box @media (min-width: 769px) display: block width: $size + 12px height: $size + 12px line-height: $size position: fixed padding-left: 12px left: 0 bottom: 0 color: $black z-index: 10 cursor: pointer background: transparent & // keep the white visible transition: width 1ms linear 250ms, background-color 1ms linear 250ms, color 400ms linear .-menu-visible & width: $nav-width - 1px - 20px background-color: $bg transition: color 400ms linear &:before display: inline-block ion-icon('navicon', 24px) text-align: center width: $size &:hover color: $accent // transition: width 0 linear 250ms, background-color 0 linear 250ms, color 100ms linear // // Search (to do) // .toc-menu &:before ion-icon('ios-search-strong', 20px) display: block width: 40px height: 40px line-height: 40px text-align: center position: absolute right: 24px - 14px top: 24px - 8px color: $slate transition: color 400ms linear border-radius: 3px z-index: 10 cursor: pointer .header-nav, .footer-nav font-size: 16px // // Header // .header-nav & position: fixed top: 0 right: 0 left: 0 height: 40px + $xpad + $xpad line-height: 40px text-align: center & opacity: 0 transition: opacity 250ms linear pointer-events: none &.-expanded opacity: 1 pointer-events: auto .left position: absolute left: 0 top: 0 text-align: left .right position: absolute right: 0 top: 0 text-align: right .iconlink position: relative display: inline-block vertical-align: middle height: 32px line-height: 1em color: rgba($slate, 0.75) transition: all 150ms linear padding: $xpad .iconlink:hover color: $accent .iconlink white-space: nowrap text-decoration: none .title, .label white-space: nowrap margin: 0 8px position: relative top: -4px // Tooltip .iconlink[data-title]:before content: attr(data-title) display: inline-block position: absolute bottom: -24px - $xpad right: $xpad font-size: 13px padding: 3px 10px background: rgba($black, 0.8) color: white border: solid 1px rgba($black, 0.2) border-radius: 2px text-decoration: none height: 22px line-height: 22px width: auto white-space: nowrap pointer-events: none opacity: 0 transition: opacity 150ms linear, transform 150ms linear transform: translate3d(0, -8px, 0) .iconlink[data-title]:hover:before opacity: 1 transform: translate3d(0, 0, 0) pointer-events: auto .icon:after font-size: 24px width: 32px height: 32px text-align: center .icon color: rgba($slate, 0.5) transition: color 150ms linear &.-expanded .icon color: $black .iconlink:hover .icon color: $accent // Icons .icon.-github:after ion-icon('social-github') // // Footer nav // .footer-nav & position: fixed bottom: 0 right: 0 left: 0 border-top: solid 1px transparent background-color: rgba(white, 0) clearfix() &, a height: 24px + 16px + $xpad line-height: 24px a display: block white-space: nowrap text-overflow: ellipsis // Expanded: background &.-expanded background-color: rgba(white, 1) &:before content: '' position: absolute left: $xpad right: $xpad top: 0 height: 1px background: $line // Layout .left position: absolute left: 0 top: 0 .right position: absolute right: 0 top: 0 text-align: right &.-expanded .right width: 60% // Title and labels .title, .label opacity: 0 pointer-events: none // Fly the 'next: ___' from the left .right .title, .right .label transform: translate3d(-8px, 0, 0) .title, .label, a:before, a:after transition: all 250ms ease-in &.-expanded .title, &.-expanded .label opacity: 1 transform: translate3d(0, 0, 0) pointer-events: auto // Link styles a text-decoration: none color: $slate padding: 16px $xpad $xpad $xpad .label, .left .title color: rgba($slate, 0.5) .right .title margin-right: 0.1em color: $black .left a:hover:before, .right a:hover:after color: $accent a:hover .title color: $accent .left a:before, .right a:after display: inline-block font-size: 20px vertical-align: middle position: relative top: -1px .left a:before ion-icon('chevron-left') margin-right: 16px .right a:after ion-icon('chevron-right') margin-left: 16px // // Desktop layout // @media (min-width: 960px) .doc-layout .menu width: $nav-width position: fixed top: 0 left: 0 height: 100% overflow-y: auto .body padding-top: $xpad + 40px padding-bottom: 64px + 64px transition: all 250ms ease-in .menu display: block transform: translate3d(-1 * $nav-width, 0, 0) transition: all 250ms ease-in .header-nav, .footer-nav transition: all 250ms ease-in left: $collapsed-nav-width .-menu-visible & .header-nav, .footer-nav left: $nav-width .body padding-left: $nav-width + $xpad padding-right: $xpad .menu transform: translate3d(0, 0, 0) // compensate for toggle button &:after content: '' display: block height: 64px