mirror of
https://github.com/vector-im/element-call.git
synced 2026-02-05 04:15:58 +00:00
As a first step towards adopting the Compound design system and the new Element Call designs, this pulls in Compound's color tokens and applies them to all existing components. I've tried to choose tokens based on the semantics of where they're used, but in some cases, where the new and old design systems differ in semantics, it was necessary to choose tokens based on their resulting color. These hacks can be removed as we implement more of the new designs. There were a set of environment variables that we used for custom themes, but Compound has way too many design tokens for that approach to still be a good idea, so I decided to replace them all with a single environment variable that just lets you write arbitrary custom CSS.
242 lines
5.9 KiB
CSS
242 lines
5.9 KiB
CSS
/*
|
|
Copyright 2021-2022 New Vector Ltd
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
/* Inter unexpectedly contains various codepoints which collide with emoji, even
|
|
when variation-16 is applied to request the emoji variant. From eyeballing
|
|
the emoji picker, these are: 20e3, 23cf, 24c2, 25a0-25c1, 2665, 2764, 2b06, 2b1c.
|
|
Therefore we define a unicode-range to load which excludes the glyphs
|
|
(to avoid having to maintain a fork of Inter). */
|
|
|
|
@import "normalize.css/normalize.css";
|
|
@import "@vector-im/compound-design-tokens/assets/web/css/compound-design-tokens.css";
|
|
|
|
:root {
|
|
--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI",
|
|
"Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans",
|
|
"Helvetica Neue", sans-serif;
|
|
--inter-unicode-range: U+0000-20e2, U+20e4-23ce, U+23d0-24c1, U+24c3-259f,
|
|
U+25c2-2664, U+2666-2763, U+2765-2b05, U+2b07-2b1b, U+2b1d-10FFFF;
|
|
|
|
--font-scale: 1;
|
|
--font-size-micro: calc(10px * var(--font-scale));
|
|
--font-size-caption: calc(12px * var(--font-scale));
|
|
--font-size-body: calc(15px * var(--font-scale));
|
|
--font-size-subtitle: calc(18px * var(--font-scale));
|
|
--font-size-title: calc(24px * var(--font-scale));
|
|
--font-size-headline: calc(32px * var(--font-scale));
|
|
|
|
--cpd-color-border-accent: var(--cpd-color-green-1100);
|
|
/* These colors are needed during the transitionary period between the old and
|
|
new Compound design systems, but should be removed ASAP */
|
|
--stopgap-color-on-solid-accent: var(--cpd-color-bg-canvas-default);
|
|
--stopgap-background-85: rgba(255, 255, 255, 0.85);
|
|
--stopgap-bgColor3: #444;
|
|
}
|
|
|
|
.cpd-theme-dark {
|
|
--stopgap-color-on-solid-accent: var(--cpd-color-text-primary);
|
|
--stopgap-background-85: rgba(16, 19, 23, 0.85);
|
|
}
|
|
|
|
@font-face {
|
|
font-family: "Inter";
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
font-display: swap;
|
|
unicode-range: var(--inter-unicode-range);
|
|
src: url("/fonts/Inter/Inter-Regular.woff2") format("woff2"),
|
|
url("/fonts/Inter/Inter-Regular.woff") format("woff");
|
|
}
|
|
|
|
@font-face {
|
|
font-family: "Inter";
|
|
font-style: italic;
|
|
font-weight: 400;
|
|
font-display: swap;
|
|
unicode-range: var(--inter-unicode-range);
|
|
src: url("/fonts/Inter/Inter-Italic.woff2") format("woff2"),
|
|
url("/fonts/Inter/Inter-Italic.woff") format("woff");
|
|
}
|
|
|
|
@font-face {
|
|
font-family: "Inter";
|
|
font-style: normal;
|
|
font-weight: 500;
|
|
font-display: swap;
|
|
unicode-range: var(--inter-unicode-range);
|
|
src: url("/fonts/Inter/Inter-Medium.woff2") format("woff2"),
|
|
url("/fonts/Inter/Inter-Medium.woff") format("woff");
|
|
}
|
|
|
|
@font-face {
|
|
font-family: "Inter";
|
|
font-style: italic;
|
|
font-weight: 500;
|
|
font-display: swap;
|
|
unicode-range: var(--inter-unicode-range);
|
|
src: url("/fonts/Inter/Inter-MediumItalic.woff2") format("woff2"),
|
|
url("/fonts/Inter/Inter-MediumItalic.woff") format("woff");
|
|
}
|
|
|
|
@font-face {
|
|
font-family: "Inter";
|
|
font-style: normal;
|
|
font-weight: 600;
|
|
font-display: swap;
|
|
unicode-range: var(--inter-unicode-range);
|
|
src: url("/fonts/Inter/Inter-SemiBold.woff2") format("woff2"),
|
|
url("/fonts/Inter/Inter-SemiBold.woff") format("woff");
|
|
}
|
|
|
|
@font-face {
|
|
font-family: "Inter";
|
|
font-style: italic;
|
|
font-weight: 600;
|
|
font-display: swap;
|
|
unicode-range: var(--inter-unicode-range);
|
|
src: url("/fonts/Inter/Inter-SemiBoldItalic.woff2") format("woff2"),
|
|
url("/fonts/Inter/Inter-SemiBoldItalic.woff") format("woff");
|
|
}
|
|
|
|
@font-face {
|
|
font-family: "Inter";
|
|
font-style: normal;
|
|
font-weight: 700;
|
|
font-display: swap;
|
|
unicode-range: var(--inter-unicode-range);
|
|
src: url("/fonts/Inter/Inter-Bold.woff2") format("woff2"),
|
|
url("/fonts/Inter/Inter-Bold.woff") format("woff");
|
|
}
|
|
|
|
@font-face {
|
|
font-family: "Inter";
|
|
font-style: italic;
|
|
font-weight: 700;
|
|
font-display: swap;
|
|
unicode-range: var(--inter-unicode-range);
|
|
src: url("/fonts/Inter/Inter-BoldItalic.woff2") format("woff2"),
|
|
url("/fonts/Inter/Inter-BoldItalic.woff") format("woff");
|
|
}
|
|
|
|
body {
|
|
background-color: var(--cpd-color-bg-canvas-default);
|
|
color: var(--cpd-color-text-primary);
|
|
color-scheme: dark;
|
|
margin: 0;
|
|
font-family: var(--font-family);
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
}
|
|
|
|
html,
|
|
body,
|
|
#root {
|
|
height: 100%;
|
|
}
|
|
|
|
#root {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
h1,
|
|
h2,
|
|
h3,
|
|
h4,
|
|
h5,
|
|
h6,
|
|
p,
|
|
a {
|
|
margin-top: 0;
|
|
}
|
|
|
|
/* Headline Semi Bold */
|
|
h1 {
|
|
font-weight: 600;
|
|
font-size: var(--font-size-headline);
|
|
}
|
|
|
|
/* Title */
|
|
h2 {
|
|
font-weight: 600;
|
|
font-size: var(--font-size-title);
|
|
}
|
|
|
|
/* Subtitle */
|
|
h3 {
|
|
font-weight: 600;
|
|
font-size: var(--font-size-subtitle);
|
|
}
|
|
|
|
/* Body Semi Bold */
|
|
h4 {
|
|
font-weight: 600;
|
|
font-size: var(--font-size-body);
|
|
}
|
|
|
|
h1,
|
|
h2,
|
|
h3 {
|
|
line-height: 1.2;
|
|
}
|
|
|
|
/* Body */
|
|
p {
|
|
font-size: var(--font-size-body);
|
|
line-height: var(--font-size-title);
|
|
}
|
|
|
|
a {
|
|
color: var(--cpd-color-text-action-accent);
|
|
text-decoration: none;
|
|
}
|
|
|
|
a:hover,
|
|
a:active {
|
|
opacity: 0.8;
|
|
}
|
|
|
|
hr {
|
|
width: calc(100% - 24px);
|
|
border: none;
|
|
border-top: 1px solid var(--cpd-color-border-interactive-secondary);
|
|
color: var(--cpd-color-border-interactive-secondary);
|
|
overflow: visible;
|
|
text-align: center;
|
|
height: 5px;
|
|
font-weight: 600;
|
|
font-size: var(--font-size-body);
|
|
line-height: 24px;
|
|
margin: 0 12px;
|
|
}
|
|
|
|
summary {
|
|
font-size: var(--font-size-body);
|
|
}
|
|
|
|
details > :not(summary) {
|
|
margin-left: var(--font-size-body);
|
|
}
|
|
|
|
details[open] > summary {
|
|
margin-bottom: var(--font-size-body);
|
|
}
|
|
|
|
#root > [data-overlay-container] {
|
|
position: relative;
|
|
height: 100%;
|
|
}
|