1
0
mirror of https://github.com/webslides/WebSlides.git synced 2025-08-31 16:51:47 +02:00
Files
webslides/doc/styleguide/kss-assets/kss.scss
Luis Sacristán 194d3fe788 kss - longforms
2017-10-16 21:24:45 +02:00

1049 lines
19 KiB
SCSS

// ------------------------------------------------------------------------------
// Variables - Colors, Fonts, etc.
// ------------------------------------------------------------------------------
$kss-black: #000;
$kss-gray: #999;
$kss-white: #fff;
$kss-transparent: rgba(0, 0, 0, 0);
$kss-dark-gray: #333;
$kss-shadow: rgba(0, 0, 0, .25);
$kss-colors-header-bg: #2f3742;
$kss-colors-header-font: #fff;
$kss-colors-header-link-active: #93cdcf;
$kss-colors-subheader-bg: #f3f3f5;
$kss-colors-subheader-border: #e7e7e9;
$kss-colors-background: $kss-white;
$kss-colors-border-sep: #e2e3e5;
$kss-colors-border-bottom-sep: #f4f3f8;
$kss-colors-menu-link: #2e3337;
$kss-colors-menu-link-active: #93cdcf;
$kss-colors-submenu-link: #6a737a;
$kss-colors-foreground: #60676f;
$kss-colors-heading: #111;
$kss-colors-heading-side: #e2e3e5;
$kss-colors-quotes: $kss-gray;
$kss-colors-ins-bg: #ff9;
$kss-colors-mark-bg: #ff0;
$kss-colors-markup-border: #e0e4e7;
$kss-colors-markup-code: #1d1f20;
$kss-colors-link: #d1783e;
$kss-colors-link-visited: #d1783e;
$kss-colors-link-hover: lighten($kss-colors-link, 20%);
$kss-colors-link-active: #d1783e;
$kss-colors-tag: #a7925a;
$kss-colors-atn: #ddca7e;
$kss-colors-pun: #fff;
$kss-colors-atv: #96b38a;
$kss-colors-pln: #fff;
$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.
// ------------------------------------------------------------------------------
[class*='kss-'] {
font-family: 'San Francisco';
}
.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-duration: .5s;
transition-property: color;
&:visited { color: $kss-colors-link-visited; }
&:focus { color: $kss-colors-link-hover; }
&:active,
&:hover {
color: $kss-colors-link-active;
}
&:hover,
&:active {
outline: 0;
}
&.kss-nav__menu-link {
color: $kss-colors-menu-link;
font-size: 1.3rem;
font-weight: 900;
}
&.kss-nav__menu-link-active {
color: $kss-colors-menu-link-active;
}
}
p {
margin: ($kss-vertical-rhythm / 2) 0 $kss-vertical-rhythm;
}
h1,
h2,
h3,
h4,
h5,
h6 {
color: $kss-colors-heading;
font-family: $kss-font-body;
font-weight: 900;
line-height: 1.15em;
margin: $kss-vertical-rhythm 0 0;
}
h4,
h5,
h6 {
font-weight: bold;
}
h1,
h2 {
&::before {
color: $kss-colors-heading-side;
font-size: $kss-font-size * 1.1;
position: absolute;
}
&::after {
border-bottom: 1px solid $kss-colors-border-bottom-sep;
content: '';
display: block;
height: 2.4rem;
margin-left: -90px;
width: 74vw;
}
}
h1 {
font-size: $kss-font-size * 2.5;
&::before {
content: ' #';
margin-left: -20px;
}
}
h2 {
font-size: $kss-font-size * 2;
&::before {
content: '##';
margin-left: -30px;
}
}
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 {
border-left: .5em mix($kss-colors-quotes, $kss-colors-background, 25%) solid;
color: $kss-colors-quotes;
margin: 0;
padding-left: $kss-vertical-rhythm;
}
hr {
border: 0;
border-bottom: 1px solid darken($kss-colors-background, 10%);
border-top: 1px solid lighten($kss-colors-foreground, 60%);
display: block;
height: 2px;
margin: $kss-vertical-rhythm 0;
padding: 0;
}
pre,
code,
kbd,
samp {
color: mix($kss-colors-foreground, $kss-colors-heading, 50%);
font-family: $kss-font-code;
font-size: 1em;
}
pre {
overflow: scroll;
white-space: pre;
}
ins {
background: $kss-colors-ins-bg;
color: $kss-colors-heading;
text-decoration: none;
}
mark {
background: $kss-colors-mark-bg;
color: $kss-colors-heading;
font-weight: bold;
}
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup { top: -.5em; }
sub { bottom: -.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 {
border: 0;
max-width: 100%;
vertical-align: middle;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
td {
vertical-align: top;
}
@media print {
a,
a:visited {
text-decoration: underline;
}
hr {
border: 0;
border-bottom: 1px solid $kss-black;
height: 1px;
}
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 $kss-gray;
padding-right: 1em;
page-break-inside: avoid;
}
tr,
img {
page-break-inside: avoid;
}
img { max-width: 100%; }
p,
h2,
h3 {
orphans: 3;
widows: 3;
}
h2,
h3 {
page-break-after: avoid;
}
}
}
// ------------------------------------------------------------------------------
// Layout and page background
// ------------------------------------------------------------------------------
#kss-node {
background: $kss-white;
margin: 0;
padding: 20px;
&.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 {
border: 0;
border-right: 1px solid $kss-colors-border-sep;
box-sizing: border-box;
}
}
.kss-main {
@media screen and (min-width: 769px) {
padding: 140px 90px;
}
}
.kss-sidebar {
border-right: 1px solid $kss-colors-border-sep;
@media screen and (min-width: 769px) {
border-bottom: 0;
padding: 150px 10px 0 20px;
}
}
.kss-doc-title {
margin: 0;
img {
max-width: 40px;
vertical-align: middle;
}
@media screen and (min-width: 769px) {
font-size: 1.5em;
}
}
.kss-nav {
position: relative;
@media screen and (min-width: 769px) {
margin-top: 2em;
}
& ul,
& ol,
& li {
display: block;
float: none;
}
& li {
margin-left: 3.2rem;
}
.kss-nav-has-children > a::before {
content: url('./arrow_down.svg');
}
.kss-nav-has-children > a.kss-nav__menu-link-active::before {
content: url('./arrow_up.svg');
}
}
.kss-nav__menu {
list-style-type: none;
margin-bottom: ($kss-vertical-rhythm / 2);
margin-top: ($kss-vertical-rhythm / 2);
padding: 0;
}
.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 {
display: inline-block;
position: relative;
&:before {
@media screen and (min-width: 769px) {
background-color: $kss-transparent;
content: ' ';
height: 100%;
left: -20px;
position: absolute;
width: 0;
}
}
}
.kss-nav__menu-child {
display: none;
@media screen and (min-width: 769px) {
display: block;
list-style-type: none;
margin: 0;
padding: 0;
li {
padding: 15px 0 0;
&:last-child {
padding: 15px 0;
}
}
}
}
.kss-nav__ref {
color: $kss-colors-submenu-link;
&:after {
content: ' ';
}
}
.kss-nav__ref-child {
font-weight: normal;
padding-left: 1.2rem;
}
// ------------------------------------------------------------------------------
// Content-area components
// ------------------------------------------------------------------------------
.kss-section {
padding-bottom: 2.4rem;
padding-top: 2.4rem;
// "fullscreen" styles copied from Mozilla's default stylesheet.
&.is-fullscreen {
bottom: 0;
box-sizing: border-box;
height: 100%;
left: 0;
margin: 0;
max-height: none;
max-width: none;
min-height: 0;
min-width: 0;
object-fit: contain;
// Turn on scrolling if needed.
overflow: auto;
padding: 20px;
position: fixed;
right: 0;
top: 0;
transform: none;
width: 100%;
}
}
.kss-title {
margin-bottom: 0;
}
.is-fullscreen .kss-title {
margin-top: 0;
}
.kss-title__ref {
color: $kss-dark-gray;
display: block;
font-size: $kss-font-size;
line-height: $kss-font-size;
&:before {
content: 'Section ';
}
}
.kss-title__permalink {
color: $kss-black;
display: block;
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 {
color: $kss-gray;
display: none;
}
.kss-toolbar {
display: inline-block;
line-height: 1;
margin: 6px 0 24px;
padding: 3px;
a {
box-sizing: content-box;
display: inline-block;
height: 16px;
overflow: visible;
padding: 3px;
position: relative;
vertical-align: top;
width: 16px;
+ a {
margin-left: 6px;
}
.kss-toolbar__icon-fill {
fill: $kss-gray;
}
svg.on {
display: none;
}
&:focus,
&:hover {
border-color: $kss-black;
.kss-toolbar__icon-fill {
fill: $kss-black;
}
}
}
}
.kss-toolbar__tooltip {
background: $kss-white;
border: solid 1px $kss-gray;
bottom: 100%;
box-shadow: 2px 2px 2px $kss-shadow;
clip: rect(1px, 1px, 1px, 1px);
color: $kss-black;
cursor: help;
display: inline-block;
height: 1px;
left: -10px;
margin-bottom: 5px;
opacity: 0;
overflow: hidden;
padding: 8px 10px 6px;
position: absolute;
transition: opacity .25s;
white-space: nowrap;
width: 1px;
word-wrap: normal;
z-index: 1;
// Solid grey triangle.
&:before,
&:after {
border-color: $kss-gray transparent;
border-style: solid;
border-width: 7px 5px 0;
bottom: -8px;
content: '';
height: 0;
left: 15px;
position: absolute;
width: 0;
}
// White triangle knock-out.
&:after {
border-top-color: $kss-white;
bottom: -6px;
}
}
a:focus,
a:hover {
> .kss-toolbar__tooltip {
clip: auto;
height: auto;
opacity: 1;
overflow: visible;
width: auto;
}
}
.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] {
background-color: $kss-gray;
border-color: $kss-gray;
.kss-toolbar__icon-fill {
fill: $kss-white;
}
svg.on {
display: block;
}
svg.off {
display: none;
}
}
.kss-parameters {
display: table;
list-style-type: none;
margin-left: 0;
margin-top: 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;
}
.is-fullscreen .kss-modifier__wrapper {
border: 0;
margin-left: -20px;
margin-right: -20px;
padding-left: 0;
padding-right: 0;
}
.kss-modifier__heading {
margin: 2.4rem 0;
padding: 1.2rem 0;
&::after {
border-bottom: 4px solid $kss-colors-subheader-bg;
content: '';
display: block;
padding-top: 1.2rem;
width: 40%;
}
}
.is-fullscreen .kss-modifier__heading {
border: 1px solid $kss-gray;
margin: 0 20px 10px;
}
.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;
font-weight: bold;
padding-right: 10px;
}
.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 {
border: 2px dashed transparent;
clear: left;
margin: -2px -2px ($kss-vertical-rhythm - 2px);
position: relative; // Contain the example's absolute positioning.
z-index: 0; // Establishes a local stacking context.
&:last-child {
margin-bottom: 0;
}
.fullscreen {
border-radius: 6px;
padding-bottom: 50%;
.embed {
height: calc(100% - 30px);
left: 5px;
position: absolute;
top: 25px;
width: calc(100% - 10px);
}
}
section {
padding: 0;
position: relative;
&::before {
position: absolute;
top: 0;
width: 100%;
}
p {
padding: 2.4rem;
}
}
.fullscreen,
section {
border: 2px solid $kss-colors-subheader-border;
&::before {
background: url('./browser_icon.svg') no-repeat 5px center $kss-colors-subheader-bg;
border-bottom: 2px solid $kss-colors-subheader-border;
content: '';
display: block;
height: 20px;
}
}
}
&.kss-guides-mode .kss-modifier__example,
&.kss-guides-mode .kss-modifier__example-footer {
&:before,
&:after {
border: 2px solid $kss-black;
box-sizing: border-box;
content: '';
height: 5px;
position: absolute;
width: 5px;
z-index: -1;
}
}
&.kss-guides-mode .kss-modifier__example {
border-color: $kss-black;
&:before {
border-left: 0;
border-top: 0;
left: -5px;
top: -5px;
}
&:after {
border-right: 0;
border-top: 0;
right: -5px;
top: -5px;
}
}
&.kss-guides-mode.kss-fullscreen-mode .kss-modifier__example {
&:before {
left: auto;
right: 0;
}
&:after {
left: 0;
right: auto;
}
}
.kss-modifier__example-footer {
clear: both;
}
&.kss-guides-mode .kss-modifier__example-footer {
&:before {
border-bottom: 0;
border-left: 0;
bottom: -5px;
left: -5px;
}
&:after {
border-bottom: 0;
border-right: 0;
bottom: -5px;
right: -5px;
}
}
&.kss-guides-mode.kss-fullscreen-mode .kss-modifier__example-footer {
&:before {
left: auto;
right: 0;
}
&:after {
left: 0;
right: auto;
}
}
.kss-markup {
border: 1px solid $kss-colors-markup-border;
border-radius: 3px;
margin: 24px 0;
padding: 20px;
&[open] summary {
background: url('./arrow_up.svg') no-repeat right center;
}
& summary {
background: url('./arrow_down.svg') no-repeat right center;
cursor: pointer;
}
pre {
background: $kss-colors-markup-code;
overflow: auto;
padding: 20px;
code {
background: transparent;
}
}
}
.kss-source {
font-size: 70%;
font-style: italic;
}
.kss-github {
display: none;
@media screen and (min-width: 501px) {
display: block;
position: absolute;
right: 0;
top: 0;
}
img {
border: 0;
}
}
// ------------------------------------------------------------------------------
// prettify.js styles
// ------------------------------------------------------------------------------
/* SPAN elements with the classes below are added by prettyprint. */
.tag { color: $kss-colors-tag; }
.atn { color: $kss-colors-atn; }
.pun { color: $kss-colors-pun; }
.atv { color: $kss-colors-atv; }
.pln { color: $kss-colors-pln; }
/* Specify class=linenums on a pre to get line numbering */
ol.linenums {
list-style-type: none;
margin: 0;
padding: 0;
li {
line-height: 2rem;
margin: 0;
min-height: $kss-vertical-rhythm;
padding: 0 10px;
}
}
.kss__demos {
list-style: none;
li {
margin-left: 0;
}
a {
color: $kss-colors-link-active;
font-size: $kss-font-size / 1.2;
font-weight: bold;
}
}
.fullscreen > .embed {
position: relative;
}
#navigation {
opacity: 1;
position: relative;
}
#kssref-longforms-interviews {
.text-interview {
margin-left: 34%;
width: 66%;
}
}
}
.kss-container {
display: grid;
grid-template-columns: 25% 75%;
}
// ------------------------------------------------------------------------------
// Sidebar-area components
// ------------------------------------------------------------------------------
.kss-header {
background-color: $kss-colors-header-bg;
display: flex;
padding: 0 2.4rem;
position: fixed;
h1,
li a {
color: $kss-colors-header-font;
display: inline-block;
font-family: 'San Francisco';
font-size: .8em;
font-weight: bold;
line-height: 7.2rem;
padding: 0;
}
li a:hover {
color: $kss-colors-header-link-active;
}
.kss-menu-active {
border-bottom: 4px solid $kss-colors-header-link-active;
box-sizing: border-box;
color: $kss-colors-header-link-active;
}
}
.kss-sub-header {
background: $kss-colors-subheader-bg;
border-bottom: 4px solid $kss-colors-subheader-border;
font-size: 14px;
padding: 1rem 2.4rem;
position: fixed;
top: 72px;
width: 100%;
z-index: 1;
}
// WebSlides
#kssref-layout-radius {
& .radius {
padding: 2.4rem;
}
}
#kssref-layout-backgrounds {
& span[class*='bg'] {
display: inline-block;
margin-left: -4px;
padding: 1.2rem;
width: 25%;
}
}
#kssref-layout-backgrounds-transparent {
& div[class*='bg'] {
margin: 0;
padding: 2rem;
& > div[class*='bg'] {
margin: 3rem;
padding: 6rem;
}
}
}
#kssref-layout-backgrounds-gradient {
& div[class*='bg'] {
margin: 3rem;
padding: 4rem;
}
}
#kssref-slide-background-anim .slide {
clip: rect(0, 200px, 200px, 0);
position: absolute;
}
#kssref-slide-background-anim .kss-modifier__example {
height: 200px;
margin: 0 auto;
width: 200px;
}
.kss-description {
p {
padding-bottom: 1.2rem;
}
}
.kss-container-background-anim {
clip: rect(0 600px 400px 0);
}