slate/common/styles/global.js

353 lines
8.0 KiB
JavaScript

import * as Constants from "~/common/constants";
import { css } from "@emotion/react";
/* prettier-ignore */
export const injectTooltipStyles = () =>
css`
.tippy-touch {
cursor: pointer !important;
}
.tippy-notransition {
transition: none !important;
}
.tippy-popper {
z-index: ${Constants.zindex.tooltip};
max-width: 400px;
perspective: 800px;
outline: 0;
transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
pointer-events: none;
}
.tippy-popper.html-template {
max-width: 96%;
max-width: calc(100% - 20px);
}
.tippy-popper[x-placement^="top"] [x-arrow] {
border-top: 7px solid ${Constants.system.white};
border-right: 7px solid transparent;
border-left: 7px solid transparent;
bottom: -7px;
margin: 0 9px;
}
.tippy-popper[x-placement^="top"] [data-animation="fade"].enter {
opacity: 1;
transform: translateY(-10px);
}
.tippy-popper[x-placement^="top"] [data-animation="fade"].leave {
opacity: 0;
transform: translateY(-10px);
}
.tippy-popper[x-placement^="bottom"] [x-arrow] {
border-bottom: 7px solid ${Constants.system.white};
border-right: 7px solid transparent;
border-left: 7px solid transparent;
top: -7px;
margin: 0 9px;
}
.tippy-popper[x-placement^="bottom"] [data-animation="fade"].enter {
opacity: 1;
transform: translateY(10px);
}
.tippy-popper[x-placement^="bottom"] [data-animation="fade"].leave {
opacity: 0;
transform: translateY(10px);
}
.tippy-popper[x-placement^="left"] [x-arrow] {
border-left: 7px solid ${Constants.system.white};
border-top: 7px solid transparent;
border-bottom: 7px solid transparent;
right: -7px;
margin: 6px 0;
}
.tippy-popper[x-placement^="left"] [data-animation="fade"].enter {
opacity: 1;
transform: translateX(-10px);
}
.tippy-popper[x-placement^="left"] [data-animation="fade"].leave {
opacity: 0;
transform: translateX(-10px);
}
.tippy-popper[x-placement^="right"] [x-arrow] {
border-right: 7px solid ${Constants.system.white};
border-top: 7px solid transparent;
border-bottom: 7px solid transparent;
left: -7px;
margin: 6px 0;
}
.tippy-popper[x-placement^="right"] [data-animation="fade"].enter {
opacity: 1;
transform: translateX(10px);
}
.tippy-popper[x-placement^="right"] [data-animation="fade"].leave {
opacity: 0;
transform: translateX(10px);
}
.tippy-tooltip {
font-family: ${Constants.font.text};
color: ${Constants.system.white};
background-color: ${Constants.system.pitchBlack};
position: relative;
border-radius: 4px;
font-size: 1rem;
padding: 12px;
text-align: center;
will-change: transform;
border: 1px solid transparent;
}
.tippy-tooltip[data-animatefill] {
overflow: hidden;
background-color: transparent;
}
.tippy-tooltip[data-interactive] {
pointer-events: auto;
}
.tippy-tooltip[data-inertia] {
transition-timing-function: cubic-bezier(0.53, 2, 0.36, 0.85);
}
.tippy-tooltip [x-arrow] {
position: absolute;
width: 0;
height: 0;
}
@media (max-width: 450px) {
.tippy-popper {
max-width: 96%;
max-width: calc(100% - 20px);
}
}
`;
/* prettier-ignore */
export const injectGlobalStyles = () => css`
@font-face {
font-family: 'mono';
src: url('/static/SFMono-Medium.woff');
}
@font-face {
font-family: 'mono-bold';
src: url('/static/SFMono-Bold.woff');
}
@font-face {
font-family: 'inter-regular';
src: url('/static/Inter-Regular.woff');
}
@font-face {
font-family: 'inter-semi-bold';
src: url('/static/Inter-SemiBold.woff');
}
@font-face {
font-family: 'inter-medium';
src: url('/static/Inter-Medium.woff');
}
@font-face {
font-family: 'fira-code-regular';
src: url('/static/FiraCode-Regular.woff');
}
@font-face {
font-family: 'fira-code-bold';
src: url('/static/FiraCode-Bold.woff');
}
@font-face {
font-family: 'jet-brains-regular';
src: url('/static/JetBrainsMono-Regular.woff');
}
@font-face {
font-family: 'jet-brains-bold';
src: url('/static/JetBrainsMono-Bold.woff');
}
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
box-sizing: border-box;
margin: 0;
padding: 0;
border: 0;
vertical-align: baseline;
}
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
html, body {
background: ${Constants.system.foreground};
color: ${Constants.system.black};
font-size: 16px;
font-family: ${Constants.font.text};
scrollbar-width: none;
-ms-overflow-style: -ms-autohiding-scrollbar;
::-webkit-scrollbar {
display: none;
}
-webkit-font-feature-settings: "liga"1, "ss01"1, "zero"1, "cv11"1, 'frac'1, 'calt'1, 'tnum'1;
-moz-font-feature-settings: "liga"1, "ss01"1, "zero"1, "cv11"1, 'frac'1, 'calt'1, 'tnum'1;
-ms-font-feature-settings: "liga"1, "ss01"1, "zero"1, "cv11"1, 'frac'1, 'calt'1, 'tnum'1;
font-feature-settings: "liga"1, "ss01"1, "zero"1, "cv11"1, 'frac'1, 'calt'1, 'tnum'1;
}
`;
/* prettier-ignore */
export const injectCodeBlockStyles = () => css`
.language-javascript {
code,
pre {
color: #fff5b1;
text-shadow: 0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3;
font-family: ${Constants.font.code};
font-size: 12px;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
tab-size: 2;
hyphens: none;
}
/* Code blocks */
pre {
padding: none;
margin: none;
overflow: auto;
}
:not(pre) > code,
pre {
background: none;
}
/* Inline code */
:not(pre) > code {
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.token.comment,
.token.block-comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: #FF00FF;
}
.token.punctuation {
color: #ffd33d;
}
.token.tag,
.token.attr-name,
.token.namespace,
.token.number,
.token.unit,
.token.hexcode,
.token.deleted {
color: cyan;
}
.token.property,
.token.selector {
color: #ffdf5d;
text-shadow: 0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475;
}
.token.function-name {
color: #ffd33d;
}
.token.boolean,
.token.selector .token.id,
.token.class-name,
.token.function,
.token.constant,
.token.symbol {
color: #c8e1ff;
text-shadow: 0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975;
}
.token.important,
.token.atrule,
.token.keyword,
.token.selector .token.class,
.token.builtin {
color: #f9c513;
text-shadow: 0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575;
}
.token.string,
.token.char,
.token.attr-value,
.token.regex,
.token.variable {
color: #fff;
}
.token.operator,
.token.entity,
.token.url {
color: #f9c513;
}
.token.important,
.token.bold {
font-weight: 400;
font-family: ${Constants.font.codeBold};
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}
.token.inserted {
color: ${Constants.system.brand};
}
}
`;