@webwriter/block-based-code
Version:
Write block-based code (e.g. Scratch) and run it.
244 lines (210 loc) • 5.6 kB
text/typescript
import { css } from "lit";
export const styles = css`
:host {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
gap: var(--sl-spacing-x-small);
}
webwriter-blocks-toolbar-button#stop {
background-color: var(--sl-color-danger-50);
}
webwriter-blocks-toolbar-button#stop:hover {
background-color: var(--sl-color-danger-100);
}
webwriter-blocks-toolbar-button#stop::part(icon) {
color: var(--sl-color-danger-500);
}
webwriter-blocks-toolbar-button#start {
background-color: var(--sl-color-success-50);
}
webwriter-blocks-toolbar-button#start:hover {
background-color: var(--sl-color-success-100);
}
webwriter-blocks-toolbar-button#start::part(icon) {
color: var(--sl-color-success-500);
}
sl-spinner {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%)
}
sl-tab-group {
height: 100%;
}
sl-tab-group::part(base) {
height: 100%;
}
sl-tab-group::part(body) {
height: 100%;
position: relative;
}
sl-tab::part(base) {
padding-top: 0;
}
sl-tab-panel {
height: 100%;
position: relative;
}
sl-tab-panel::part(base) {
height: 100%;
position: relative;
overflow: hidden;
padding-top: 0;
}
sl-dialog::part(base) {
position: absolute ;
}
sl-dialog::part(body) {
display: flex;
flex-direction: column;
}
sl-dialog::part(overlay) {
position: absolute ;
}
.group {
display: flex;
flex-direction: column;
gap: var(--sl-spacing-2x-small);
padding-right: 10px;
box-sizing: border-box;
}
.label {
font-size: var(--sl-font-size-medium);
}
.error {
height: 100%;
font-size: 14px;
display: flex;
align-items: center;
justify-content: center;
background-color: var(--sl-color-danger-50);
color: var(--sl-color-danger-500);
border: 1px solid var(--sl-color-danger-300);
border-radius: var(--sl-border-radius-medium);
box-sizing: border-box;
}
pre {
width: 100%;
height: 100%;
margin: 0;
background: var(--sl-color-neutral-0);
border: 1px solid var(--sl-color-gray-300);
border-radius: var(--sl-border-radius-medium);
overflow: scroll;
font-size: 12px;
box-sizing: border-box;
padding: var(--sl-spacing-large);
}
pre code {
color: #24292e;
}
`;
export const codeStyles = css`
/*!
Theme: GitHub
Description: Light theme as seen on github.com
Author: github.com
Maintainer: @Hirse
Updated: 2021-05-15
Outdated base version: https://github.com/primer/github-syntax-light
Current colors taken from GitHub's CSS
*/
.hljs-doctag,
.hljs-keyword,
.hljs-meta .hljs-keyword,
.hljs-template-tag,
.hljs-template-variable,
.hljs-type,
.hljs-variable.language_ {
/* prettylights-syntax-keyword */
color: #d73a49
}
.hljs-title,
.hljs-title.class_,
.hljs-title.class_.inherited__,
.hljs-title.function_ {
/* prettylights-syntax-entity */
color: #6f42c1
}
.hljs-attr,
.hljs-attribute,
.hljs-literal,
.hljs-meta,
.hljs-number,
.hljs-operator,
.hljs-variable,
.hljs-selector-attr,
.hljs-selector-class,
.hljs-selector-id {
/* prettylights-syntax-constant */
color: #005cc5
}
.hljs-regexp,
.hljs-string,
.hljs-meta .hljs-string {
/* prettylights-syntax-string */
color: #032f62
}
.hljs-built_in,
.hljs-symbol {
/* prettylights-syntax-variable */
color: #e36209
}
.hljs-comment,
.hljs-code,
.hljs-formula {
/* prettylights-syntax-comment */
color: #6a737d
}
.hljs-name,
.hljs-quote,
.hljs-selector-tag,
.hljs-selector-pseudo {
/* prettylights-syntax-entity-tag */
color: #22863a
}
.hljs-subst {
/* prettylights-syntax-storage-modifier-import */
color: #24292e
}
.hljs-section {
/* prettylights-syntax-markup-heading */
color: #005cc5;
font-weight: bold
}
.hljs-bullet {
/* prettylights-syntax-markup-list */
color: #735c0f
}
.hljs-emphasis {
/* prettylights-syntax-markup-italic */
color: #24292e;
font-style: italic
}
.hljs-strong {
/* prettylights-syntax-markup-bold */
color: #24292e;
font-weight: bold
}
.hljs-addition {
/* prettylights-syntax-markup-inserted */
color: #22863a;
background-color: #f0fff4
}
.hljs-deletion {
/* prettylights-syntax-markup-deleted */
color: #b31d28;
background-color: #ffeef0
}
.hljs-char.escape_,
.hljs-link,
.hljs-params,
.hljs-property,
.hljs-punctuation,
.hljs-tag {
/* purposely ignored */
}
`;