Files
desktop/src/zen/boosts/zen-boosts.css

816 lines
14 KiB
CSS

/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#zenBoostWindow {
/* For the mica effect we want a white tint */
@media not (-moz-platform: linux) {
color-scheme: light;
}
appearance: none;
border: none;
}
.source-editor-frame {
max-width: 1000px;
max-height: 1000px;
width: 100%;
height: 100%;
border: none;
}
#zen-boost-code-top-bar {
top: 0;
z-index: 10;
width: 100%;
height: 40px;
background-color: #f6f6f8;
@media (-moz-windows-mica) {
background-color: #f6f6f8c0;
}
border: solid 0 #ededef;
border-bottom-width: 1px;
}
#zen-boost-name-container {
background-image: url("chrome://global/skin/icons/arrow-down.svg");
background-repeat: no-repeat;
background-position: calc(100% - 2px) calc(50% + 2px);
background-size: 12px 12px;
padding: 4px 18px 4px 2px;
margin-left: 4px;
border-radius: 8px;
opacity: 0.75;
background-color: transparent;
transition:
0.25s opacity cubic-bezier(0.075, 0.82, 0.165, 1),
0.25s background-color cubic-bezier(0.075, 0.82, 0.165, 1);
-moz-window-dragging: no-drag;
}
#zen-boost-name-container:hover {
opacity: 0.8;
background-color: #aaaaaa22;
}
#zen-boost-code-bottom-bar {
bottom: 0;
z-index: 10;
width: 100%;
height: 60px;
background-color: #f6f6f8;
@media (-moz-windows-mica) {
background-color: #f6f6f8c0;
}
border: solid 0 #ededef;
border-top-width: 1px;
display: flex;
align-items: center;
gap: 10px;
padding: 10px;
}
#zen-boost-code-editor {
width: 100%;
height: calc(100% - 100px);
margin-top: 0;
margin-bottom: 0;
}
body {
overflow: clip;
display: flex;
margin: 0;
width: 100%;
}
#zen-boost-editor-root,
#zen-boost-code-editor-root {
user-select: none;
width: 100%;
height: 100%;
padding: 0;
margin: 0;
& button {
border-radius: 6px;
@media (-moz-platform: macos) {
border-radius: 10px;
}
padding: 0 !important;
min-width: fit-content !important;
border: solid 6px transparent;
transition: background 0.1s cubic-bezier(0.075, 0.82, 0.165, 1);
appearance: none;
&:active {
transform: none !important;
}
&:hover {
opacity: 0.8;
}
}
& .button-text {
display: none;
}
&[disabled] {
opacity: 0.5;
cursor: not-allowed;
}
}
.subviewbutton {
color: #3a3a3b;
}
#zen-boost-editor-view {
gap: 10px;
}
#zen-boost-code-top-bar {
-moz-window-dragging: drag; /* Allow dragging the window with the custom titlebar for the code view */
}
#zen-boost-head-wrapper {
-moz-window-dragging: drag; /* Allow dragging the window with the custom titlebar */
height: 40px;
min-height: 40px;
max-height: 40px;
align-items: center;
background-color: #f6f6f8;
border: solid 1px #e7e7e7ab;
@media (-moz-windows-mica) {
background-color: #f6f6f8c0;
border: none;
}
display: flex;
flex-direction: row-reverse;
@media (-moz-platform: macos) {
flex-direction: row;
}
& button {
height: 24px !important;
width: 24px !important;
aspect-ratio: 1/1 !important;
background-color: transparent;
opacity: 0.45;
transition: 0.25s opacity cubic-bezier(0.075, 0.82, 0.165, 1);
&:hover {
opacity: 0.6;
}
}
& #zen-boost-name {
transition: color 0.2s ease-in-out;
background-color: transparent;
border: none;
outline: none;
appearance: none;
display: flex;
align-items: center;
}
}
#zen-boost-name-text {
width: 100%;
justify-content: center;
font-size: 100%;
font-weight: 600;
max-width: 100px;
overflow: hidden;
}
#zen-boost-name-text {
text-align: center;
margin: auto !important;
height: min-content;
}
#zen-boost-font-grid {
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: 0;
width: 100%;
padding: 2px;
& button {
padding: auto;
margin: auto;
background-color: transparent;
}
}
#zen-boost-filter-wrapper {
padding: 20px;
gap: 14px;
padding-top: 10px;
background-color: #fcfcfe;
-moz-window-dragging: drag;
& > * {
-moz-window-dragging: no-drag;
}
}
.big-button {
width: 100% !important;
margin: auto;
text-indent: 6px;
vertical-align: middle;
font-size: 10pt;
list-style-position: right;
& p {
width: 75%;
margin: auto;
}
}
#zen-boost-back {
width: 60px !important;
margin: 5px;
left: 5px;
display: flex;
flex-direction: row-reverse;
& hbox {
scale: 0.75;
margin-right: -7px;
margin-top: 2px;
}
}
#zen-boost-code-bottom-bar button {
content: "";
width: auto !important;
aspect-ratio: 1/1 !important;
margin: 5px;
left: 5px;
}
#zen-boost-zap {
& #zen-boost-zap-value {
text-align: right;
right: 8px;
margin: auto;
position: relative;
}
& hbox {
margin-right: 8px;
}
}
#zen-boost-zap[hideicon="true"] {
list-style: none;
list-style-type: none;
& hbox {
margin-right: 0;
}
}
.zen-boost-panel-disabled {
filter: grayscale(1);
}
.title-button {
scale: 0.9;
}
.mod-button {
height: 38px !important;
border-radius: 6px;
@media (-moz-platform: macos) {
border-radius: 12px;
}
background-color: #ebebed;
transition:
0.4s background-color cubic-bezier(0.075, 0.82, 0.165, 1),
0.4s opacity cubic-bezier(0.075, 0.82, 0.165, 1),
0.4s filter cubic-bezier(0.075, 0.82, 0.165, 1) !important;
&:hover {
opacity: 0.85;
}
&:active {
transform: none !important;
opacity: 0.9;
filter: brightness(0.9);
}
}
#zen-boost-case:not([case-mode="none"]) {
background-color: #ebebed;
font-weight: 600 !important;
}
#zen-boost-case[case-mode="uppercase"] {
text-transform: uppercase;
}
#zen-boost-case[case-mode="lowercase"] {
text-transform: lowercase;
}
#zen-boost-code-top-bar .mod-button {
height: auto !important;
}
#zen-boost-code-bottom-bar button {
margin: 0;
}
#zen-boost-name {
height: 26px;
font-size: 8pt;
text-indent: 2px;
vertical-align: middle;
color: #3a3a3b;
justify-content: center;
}
#zen-boost-close {
margin-left: 0;
margin-right: 6px;
@media (-moz-platform: macos) {
margin-left: 6px;
margin-right: 0;
}
}
#zen-boost-shuffle {
margin-right: 0;
margin-left: 4px;
@media (-moz-platform: macos) {
margin-right: 10px;
margin-left: 0;
}
}
.zen-boost-button-active {
background-color: #3a3a3a;
color: #fcfcfe;
}
.zen-boost-button-active:hover {
background-color: #5b5b5c;
}
.zen-boost-button-active-transparent {
opacity: 0.35;
}
.zen-boost-button-active-transparent:hover {
opacity: 0.5 !important;
}
#zen-boost-magic-theme {
width: 18px;
height: 24px !important;
margin-top: 12px;
z-index: 4;
box-shadow: 0 2px 4px #00000010;
position: relative;
margin-left: auto;
margin-right: auto;
& image {
width: 12px;
}
&:not(.zen-boost-button-active) {
background: white;
}
}
.footer {
background-color: #F6F6F8;
padding: 20px;
}
#zen-boost-toolbar-wrapper,
#zen-boost-toolbar-wrapper-colors {
width: 100%;
margin: auto;
justify-content: center;
align-items: center;
gap: 8px;
& .small {
margin: 0;
flex: 1 1 30%;
}
& .med {
margin: 0;
flex: 1 1 50%;
& p {
text-align: center;
width: 100%;
text-indent: initial;
margin: auto;
}
}
}
#zen-boost-font-select {
width: 120px;
height: 20px !important;
transition: 0.2s opacity ease-in-out;
color: #727272;
background: none;
font-size: 9pt;
padding: 0;
text-indent: 2px;
margin-left: 8px;
margin-right: 3px;
margin-top: 8px;
opacity: 0.75;
&:hover {
opacity: 1;
}
&[has-selection="true"] {
opacity: 1;
background-color: #ebebed;
}
}
#zen-boost-font-toolbar {
display: flex;
flex-direction: row;
justify-content: space-between;
& button {
border-radius: 6px;
min-width: fit-content;
height: 20px !important;
margin-left: 8px;
margin-right: 8px;
margin-top: 8px;
background-color: transparent;
}
}
#zen-boost-font-wrapper {
box-shadow: 0 2px 6px rgba(0,0,0,.15);
background-color: #ffffff;
border-radius: 6px;
@media (-moz-platform: macos) {
border-radius: 8px;
}
padding-top: 4px;
padding-bottom: 4px;
display: flex;
flex-direction: column;
& .visible-separator {
content: "";
height: 1px;
width: auto;
margin-right: 12px;
margin-left: 12px;
margin-top: 2px;
opacity: 0.25;
border-top: solid 1px #9a9a9a;
}
& button {
filter: none;
color: rgba(0, 0, 0, 0.6);
border-radius: 50px;
transition: 0.1s transform ease;
font-size: 12px;
padding: 2px;
align-items: center;
justify-content: center;
display: flex;
height: 26px;
width: 26px;
transform-origin: center center;
&:hover {
background-color: #9a9a9a30;
transform: scale(1.1);
}
}
}
@property --mod-button-c1 {
syntax: "<color>";
inherits: false;
initial-value: #ebebed;
}
@property --mod-button-c2 {
syntax: "<color>";
inherits: false;
initial-value: #ebebed;
}
.mod-button[mode="orange"] {
color: #e3e9e4;
--mod-button-c1: #ffbb5d;
--mod-button-c2: #ffa01d;
}
.mod-button[mode="orange-red"] {
color: #e3e9e4;
--mod-button-c1: #ff8758;
--mod-button-c2: #ff5b1b;
}
.mod-button[mode="red"] {
color: #e3e9e4;
--mod-button-c1: #ff595f;
--mod-button-c2: #ff121b;
}
.mod-button[mode="blue"] {
color: #e3e9e4;
--mod-button-c1: #6650fc;
--mod-button-c2: #4125ff;
}
.mod-button[mode] {
background: linear-gradient(180deg, var(--mod-button-c1) 0%, var(--mod-button-c2) 100%) border-box;
transition:
0.4s background-color cubic-bezier(0.075, 0.82, 0.165, 1),
0.4s opacity cubic-bezier(0.075, 0.82, 0.165, 1),
0.4s filter cubic-bezier(0.075, 0.82, 0.165, 1),
0.75s --mod-button-c1 cubic-bezier(0.075, 0.82, 0.165, 1),
0.55s --mod-button-c2 cubic-bezier(0.075, 0.82, 0.165, 1) !important;
}
#zen-boost-back {
background-color: transparent;
&:hover {
background-color: #e3e3e6;
}
}
#zen-boost-code-editor-root button {
opacity: 0.6;
}
.toggleable-button[enabled="true"] {
filter: invert();
opacity: 0.9;
&:active {
filter: invert();
opacity: 0.8;
}
}
.zen-boost-color-picker-gradient::after {
content: "";
position: absolute;
inset: 0;
border-radius: 8px;
margin: 8px;
z-index: 2;
background: #fbfbfdea;
background-position: -23px -23px;
backdrop-filter: saturate(2) blur(15px);
background-size: 6px 6px;
background-image: radial-gradient(#e3e9e4, 1px, transparent 0);
@media (-moz-platform: macos) {
background-size: 4px 4px;
background-image: radial-gradient(#e3e9e4 0.5px, transparent 0);
}
}
.zen-boost-color-picker-gradient::before {
content: "";
position: absolute;
inset: 0;
border-radius: inherit;
z-index: 1;
background: conic-gradient(
rgba(255, 0, 0, 1) 0%,
rgba(255, 162, 0, 1) 10%,
rgba(255, 242, 0, 1) 20%,
rgba(89, 255, 0, 1) 30%,
rgba(0, 255, 128, 1) 40%,
rgba(0, 255, 247, 1) 50%,
rgba(0, 89, 255, 1) 60%,
rgba(8, 0, 255, 1) 70%,
rgba(204, 0, 255, 1) 80%,
rgba(255, 0, 144, 1) 90%,
rgba(255, 0, 8, 1) 100%
)
border-box;
pointer-events: none;
}
.zen-boost-color-picker-gradient {
position: relative;
overflow: hidden;
border-radius: 16px;
box-shadow: 0 4px 12px #00000021;
width: 100%;
aspect-ratio: 1 /1;
margin: 10px 0 4px 0;
min-height: calc(var(--panel-width) - var(--panel-padding) * 2 - 2px);
& [animated="true"] {
transition: all 0.4s cubic-bezier(0.14, 1.43, 0.56, 1.01) !important;
}
& .zen-boost-color-picker-circle {
position: absolute;
z-index: 3;
transform-origin: center center;
transform: translate(-50%, -50%);
opacity: 0;
transition: opacity 0.4s ease;
left: 50%;
top: 50%;
outline: solid 1px #9a9a9a88;
border-radius: 100%;
}
& .zen-boost-color-picker-arc-svg {
opacity: 0;
transition: opacity 0.4s ease;
}
& .zen-boost-color-picker-dot {
box-shadow: 0 2px 4px #00000022;
position: absolute;
z-index: 5;
width: 24px;
height: 24px;
border-radius: 50%;
background: var(--zen-theme-picker-dot-color);
/* Move away until initialized */
left: -100px;
top: -100px;
@media (-prefers-color-scheme: dark) {
box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
}
cursor: pointer;
border: 3px solid #ffffff;
transform: translate(-50%, -50%);
transform-origin: top left;
pointer-events: all;
&:first-of-type {
width: 32px;
height: 32px;
border-width: 3px;
transition: transform 0.2s;
z-index: 4;
&:hover {
transform: scale(1.05) translate(-50%, -50%);
}
}
&[dragging="true"] {
transform: scale(1.2) translate(-50%, -50%);
}
}
}
#zen-boost-editor-root:hover {
& .zen-boost-color-picker-circle, .zen-boost-color-picker-arc-svg {
opacity: 0.4;
}
}
.zen-boost-font-button-active {
background-color: #5454572f !important;
}
.zen-boost-font-button-active:hover {
background-color: #5b5b5c28 !important;
}
/** Import animation */
/** From zen-single-components.css:211 */
@property --background-top {
syntax: "<percentage>";
inherits: false;
initial-value: -50%;
}
#import-animation {
position: fixed;
width: 100%;
height: 100%;
background: linear-gradient(to bottom, transparent, rgba(255, 255, 255, 0.5) 40%, rgba(255, 255, 255, 0.6) 60%, transparent 100%);
left: 0;
z-index: 999;
opacity: 0;
transform: translateY(-50%);
pointer-events: none;
}
#import-animation-shadow {
position: fixed;
mix-blend-mode: multiply;
background: #00000040;
left: 0;
right: 0;
top: 0;
bottom: 0;
z-index: 998;
opacity: 0;
pointer-events: none;
}
#import-animation-border {
position: absolute;
border-radius: var(--zen-border-radius);
left: 0;
right: 0;
top: 0;
bottom: 0;
z-index: 1000;
}
#import-animation-border::before {
content: "";
position: absolute;
inset: 0;
border-radius: inherit;
padding: 4px; /* thickness of border */
z-index: 1000;
background: radial-gradient(ellipse 100% 50% at center var(--background-top), rgba(255, 255, 255, 0.9) 80%, transparent);
/* Punch out the inside once (not animated) */
mask:
linear-gradient(#fff 0 0) content-box,
linear-gradient(#fff 0 0);
mask-composite: exclude;
}