mirror of
https://github.com/danog/sass-site.git
synced 2024-11-27 04:24:50 +01:00
use namespacing on classes, edit playground layout
This commit is contained in:
parent
351f932b41
commit
4c6a19bc49
@ -6,17 +6,19 @@
|
|||||||
|
|
||||||
<div class="sl-c-pop-stripe"></div>
|
<div class="sl-c-pop-stripe"></div>
|
||||||
<div class="sl-l-container">
|
<div class="sl-l-container">
|
||||||
<div class="sl-l-grid sl-l-grid--full sl-l-small-grid--fit sl-l-small-grid--center sl-l-small-grid--gutters">
|
<div class="sl-l-grid sl-l-grid--full sl-l-small-grid--fit sl-l-large-grid--center sl-l-small-grid--justify-space-between sl-l-small-grid--gutters">
|
||||||
<p class="sl-l-grid__column sl-r-banner__brand">
|
<p class="sl-l-grid__column sl-r-banner__brand">
|
||||||
<a href="/"><img
|
<a href="/"><img
|
||||||
height="24"
|
height="24"
|
||||||
alt="Sass"
|
alt="Sass"
|
||||||
src="/assets/img/logos/logo.svg"></a>
|
src="/assets/img/logos/logo.svg"></a>
|
||||||
</p>
|
</p>
|
||||||
<h1 class="sl-l-grid__column">{{ title }}</h1>
|
<h1 class="sl-l-grid__column sl-l-large-grid--center">{{ title }}</h1>
|
||||||
<div class="sl-l-grid__column">
|
<div class="sl-l-grid sl-l-grid__column sl-l-large-grid--center playground-actions">
|
||||||
<button type="button" id="playground-copy-url">Copy URL</button>
|
<button type="button" id="playground-copy-url" class="sl-c-button">Copy URL</button>
|
||||||
<div class="alert" id="playground-copied-alert">URL copied to clipboard</div>
|
<div class="sl-c-alert playground-alert" id="playground-copied-alert">
|
||||||
|
URL copied to clipboard
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
@use 'sass:color';
|
@use 'sass:color';
|
||||||
|
@use '../visual-design/typography';
|
||||||
|
|
||||||
.sl-c-button {
|
.sl-c-button {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
border: 0;
|
border: 0;
|
||||||
border-radius: var(--sl-border-radius--large);
|
border-radius: var(--radius-button, var(--sl-border-radius--large));
|
||||||
background: var(--color-button-bg, var(--sl-color--iron));
|
background: var(--color-button-bg, var(--sl-color--iron));
|
||||||
box-shadow: 0 2px 1px var(--sl-color--shadow);
|
box-shadow: 0 2px 1px var(--sl-color--shadow);
|
||||||
color: var(--color-button-text, var(--sl-color--highlight));
|
color: var(--color-button-text, var(--sl-color--highlight));
|
||||||
@ -43,6 +44,14 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&--tab {
|
||||||
|
--color-button-bg: var(--color-tab-bg, --sl-color--code-background);
|
||||||
|
--color-button-text: var(--text, var(--sl-color--pale-sky));
|
||||||
|
--radius-button: 0;
|
||||||
|
box-shadow: none;
|
||||||
|
font-weight: typography.$sl-font-weight--bold;
|
||||||
|
}
|
||||||
|
|
||||||
&:has(.caps) {
|
&:has(.caps) {
|
||||||
--display-btn: inline;
|
--display-btn: inline;
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
@use '../config/color/brand';
|
@use '../config/color/brand';
|
||||||
|
|
||||||
.sl-c-callout {
|
.sl-c-callout {
|
||||||
margin: var(--sl-gutter--sesqui) 0;
|
margin: var(--sl-c-callout--block-margin, var(--sl-gutter--sesqui)) 0;
|
||||||
padding: var(--sl-gutter--sesqui) var(--sl-gutter);
|
padding: var(--sl-gutter--sesqui) var(--sl-gutter);
|
||||||
background: color.adjust(brand.$sl-color--pale-sky, $lightness: 60%);
|
background: color.adjust(brand.$sl-color--pale-sky, $lightness: 60%);
|
||||||
border-radius: var(--sl-border-radius--small);
|
border-radius: var(--sl-border-radius--small);
|
||||||
|
@ -3,26 +3,48 @@
|
|||||||
@use '../config/color/brand';
|
@use '../config/color/brand';
|
||||||
@use '../visual-design/typography';
|
@use '../visual-design/typography';
|
||||||
|
|
||||||
|
.playground {
|
||||||
|
display: grid;
|
||||||
|
grid-template:
|
||||||
|
'header' auto
|
||||||
|
'main' 1fr
|
||||||
|
'footer' auto / 100%;
|
||||||
|
min-height: 100vh;
|
||||||
|
|
||||||
|
#main-content {
|
||||||
|
display: grid;
|
||||||
|
grid-template:
|
||||||
|
'editor' 1fr
|
||||||
|
'alert' min-content;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Use smaller sizes for condensed header
|
// Use smaller sizes for condensed header
|
||||||
.sl-r-banner-playground {
|
.sl-r-banner-playground {
|
||||||
--h1-size: var(--sl-font-size--xx-large);
|
--h1-size: var(--sl-font-size--xx-large);
|
||||||
--h1-size-lg: var(--sl-playground-heading);
|
--h1-size-lg: var(--sl-playground-heading);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sl-l-section-playground {
|
||||||
|
display: grid;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
button#playground-copy-url {
|
.playground-actions {
|
||||||
float: right;
|
flex-direction: row-reverse;
|
||||||
|
}
|
||||||
|
|
||||||
|
#playground-copied-alert {
|
||||||
|
opacity: 0;
|
||||||
|
transition: opacity 0.3s linear;
|
||||||
|
|
||||||
|
&.show {
|
||||||
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#playground-copied-alert {
|
.playground-actions {
|
||||||
opacity: 0;
|
gap: var(--sl-gutter--double);
|
||||||
float: right;
|
|
||||||
transition: opacity 0.3s linear;
|
|
||||||
|
|
||||||
&.show {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.playground-alert {
|
.playground-alert {
|
||||||
@ -30,98 +52,107 @@
|
|||||||
padding-right: var(--sl-gutter);
|
padding-right: var(--sl-gutter);
|
||||||
}
|
}
|
||||||
|
|
||||||
.code-editor-wrapper {
|
|
||||||
// Duplicated from fun fact- should this be defined elsewhere?
|
// Playground Editor area
|
||||||
border: var(--sl-border--small) solid var(--sl-color--code-background-darker);
|
.sl-c-playground {
|
||||||
.playground-wrapper {
|
--sl-c-callout--block-margin: 0;
|
||||||
display: flex;
|
display: grid;
|
||||||
flex-flow: row wrap;
|
|
||||||
gap: var(--sl-gutter);
|
gap: var(--sl-gutter);
|
||||||
|
|
||||||
flex-grow: 1;
|
@include breakpoints.sl-breakpoint--medium {
|
||||||
min-width: calc((100% - var(--sl-gutter)) / 2);
|
grid-template:
|
||||||
|
'sass css' 1fr
|
||||||
|
'debug debug' minmax(0, auto) / 50% 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Precompiled and Compiled code container
|
||||||
|
.sl-c-playground__code-editor-wrapper {
|
||||||
|
background-color: var(--sl-color-editor-background);
|
||||||
|
border: var(--sl-border--small) solid var(--sl-color--code-background-darker);
|
||||||
|
display: grid;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sl-c-playground__console-wrapper {
|
||||||
|
grid-area: debug;
|
||||||
|
min-width: calc((100% - var(--sl-gutter)) / 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-code='precompiled'] {
|
||||||
|
--sl-color-editor-background: var(--sl-color--white);
|
||||||
|
grid-template-rows: min-content 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-code='compiled'] {
|
||||||
|
--sl-color-editor-background: var(--sl-color--code-background);
|
||||||
|
grid-template-rows: min-content minmax(0, auto) 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.ͼ1 {
|
||||||
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
#editor {
|
#editor {
|
||||||
--sl-color-editor-background: var(--sl-color--white);
|
cursor: text;
|
||||||
|
|
||||||
cursor: text;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
#css-view {
|
.console {
|
||||||
--sl-color-editor-background: var(--sl-color--code-background);
|
font-family: 'Source Code Pro', 'SF Mono', monaco, inconsolata, 'Fira Mono',
|
||||||
}
|
'Droid Sans Mono', monospace;
|
||||||
|
min-height: 2em;
|
||||||
|
max-height: 500px;
|
||||||
|
margin: 0;
|
||||||
|
|
||||||
.console {
|
hr,
|
||||||
font-family: 'Source Code Pro', 'SF Mono', monaco, inconsolata, 'Fira Mono',
|
p {
|
||||||
'Droid Sans Mono', monospace;
|
|
||||||
min-height: 2em;
|
|
||||||
max-height: 500px;
|
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
hr,
|
$console-type-colors: (
|
||||||
p {
|
'error': red,
|
||||||
margin: 0;
|
'warn': orange,
|
||||||
}
|
'debug': green,
|
||||||
|
);
|
||||||
|
|
||||||
$console-type-colors: (
|
@each $name, $color in $console-type-colors {
|
||||||
'error': red,
|
.console-type-#{$name} {
|
||||||
'warn': orange,
|
color: $color;
|
||||||
'debug': green,
|
|
||||||
);
|
|
||||||
|
|
||||||
@each $name, $color in $console-type-colors {
|
|
||||||
.console-type-#{$name} {
|
|
||||||
color: $color;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.code-editor-tabbar {
|
|
||||||
|
.sl-c-playground__editor-tabbar {
|
||||||
background-color: var(--sl-color--code-background-darker);
|
background-color: var(--sl-color--code-background-darker);
|
||||||
|
|
||||||
button {
|
|
||||||
background-color: var(--sl-color--tab-bg, --sl-color--code-background);
|
|
||||||
border: 0;
|
|
||||||
color: var(--text, var(--sl-color--pale-sky));
|
|
||||||
cursor: pointer;
|
|
||||||
font-weight: typography.$sl-font-weight--bold;
|
|
||||||
padding: var(--sl-gutter--half);
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
// TODO- add hover styles
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$sassoptions: 'scss', 'indented';
|
$sassoptions: 'scss', 'indented';
|
||||||
|
|
||||||
@each $option in $sassoptions {
|
@each $option in $sassoptions {
|
||||||
&[data-active='#{$option}'] [data-value='#{$option}'] {
|
&[data-active='#{$option}'] [data-value='#{$option}'] {
|
||||||
--sl-color--tab-bg: var(--sl-color--white);
|
--color-tab-bg: var(--sl-color--white);
|
||||||
|
--color-button-text: var(--text, var(--sl-color--pale-sky));
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
--color-tab-bg: var(--sl-color--white);
|
||||||
|
--color-button-text: var(--text, var(--sl-color--pale-sky));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$cssoptions: 'expanded', 'compressed';
|
$cssoptions: 'expanded', 'compressed';
|
||||||
@each $option in $cssoptions {
|
@each $option in $cssoptions {
|
||||||
&[data-active='#{$option}'] [data-value='#{$option}'] {
|
&[data-active='#{$option}'] [data-value='#{$option}'] {
|
||||||
--sl-color--tab-bg: var(--sl-color--code-background);
|
--color-tab-bg: var(--sl-color--code-background);
|
||||||
|
--color-button-text: var(--text, var(--sl-color--pale-sky));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#code-editor-error-alert {
|
#code-editor-error-alert {
|
||||||
display: none;
|
display: none;
|
||||||
|
|
||||||
// From warning callout
|
|
||||||
background: color.adjust(brand.$sl-color--hopbush, $lightness: 38%);
|
|
||||||
border: var(--sl-border--small) solid
|
|
||||||
var(--sl-color--code-background);
|
|
||||||
font-family: typography.$sl-font-family--code;
|
|
||||||
|
|
||||||
|
|
||||||
// TODO Font weight bold not imported from Google Fonts
|
|
||||||
font-weight: typography.$sl-font-weight--bold;
|
font-weight: typography.$sl-font-weight--bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,29 +3,30 @@ layout: base
|
|||||||
title: 'Playground'
|
title: 'Playground'
|
||||||
is_playground: true
|
is_playground: true
|
||||||
---
|
---
|
||||||
<div id="docsearch"></div>
|
<div class="sl-c-playground" data-compiler-has-error="false">
|
||||||
<div class="playground-wrapper" data-compiler-has-error="false">
|
<div class="sl-c-playground__code-editor-wrapper" data-code="precompiled">
|
||||||
<div class="code-editor-wrapper">
|
|
||||||
<div
|
<div
|
||||||
class="code-editor-tabbar playground-precompiled"
|
class="sl-c-playground__editor-tabbar"
|
||||||
data-active="scss"
|
data-active="scss"
|
||||||
data-setting="inputFormat">
|
data-setting="inputFormat">
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
data-value="scss"
|
data-value="scss"
|
||||||
data-tabbar="item"
|
data-tabbar="item"
|
||||||
|
class="sl-c-button sl-c-button--tab"
|
||||||
data-setting="inputFormat">SCSS</button>
|
data-setting="inputFormat">SCSS</button>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
data-value="indented"
|
data-value="indented"
|
||||||
data-tabbar="item"
|
data-tabbar="item"
|
||||||
|
class="sl-c-button sl-c-button--tab"
|
||||||
data-setting="inputFormat">Sass</button>
|
data-setting="inputFormat">Sass</button>
|
||||||
</div>
|
</div>
|
||||||
<div id="editor"></div>
|
<div id="editor"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="code-editor-wrapper">
|
<div class="sl-c-playground__code-editor-wrapper" data-code="compiled">
|
||||||
<div
|
<div
|
||||||
class="code-editor-tabbar"
|
class="sl-c-playground__editor-tabbar"
|
||||||
data-active="expanded"
|
data-active="expanded"
|
||||||
data-setting="outputFormat">
|
data-setting="outputFormat">
|
||||||
<span data-tabbar="item">
|
<span data-tabbar="item">
|
||||||
@ -36,20 +37,22 @@ is_playground: true
|
|||||||
type="button"
|
type="button"
|
||||||
data-value="expanded"
|
data-value="expanded"
|
||||||
data-tabbar="item"
|
data-tabbar="item"
|
||||||
|
class="sl-c-button sl-c-button--tab"
|
||||||
data-setting="outputFormat">Expanded</button>
|
data-setting="outputFormat">Expanded</button>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
data-value="compressed"
|
data-value="compressed"
|
||||||
data-tabbar="item"
|
data-tabbar="item"
|
||||||
|
class="sl-c-button sl-c-button--tab"
|
||||||
data-setting="outputFormat">Compressed</button>
|
data-setting="outputFormat">Compressed</button>
|
||||||
</div>
|
</div>
|
||||||
<div id="code-editor-error-alert">Please resolve error to view compiled CSS.</div>
|
<div id="code-editor-error-alert" class="sl-c-callout sl-c-callout--warning">Please resolve error to view compiled CSS.</div>
|
||||||
<div id="css-view"></div>
|
<div id="css-view" class="is-compiled"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="console-wrapper">
|
<div class="sl-c-playground__console-wrapper">
|
||||||
<div class="code-editor-tabbar">
|
<div class="sl-c-playground__editor-tabbar">
|
||||||
<span data-tabbar="item">
|
<span data-tabbar="item">
|
||||||
Debug Console
|
Console
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<pre class="console"></pre>
|
<pre class="console"></pre>
|
||||||
|
Loading…
Reference in New Issue
Block a user