202 lines
4.5 KiB
CSS
202 lines
4.5 KiB
CSS
@layer components {
|
|
lexical-editor {
|
|
display: block;
|
|
position: relative;
|
|
overflow: visible;
|
|
|
|
.node--selected:not(.attachment--custom) {
|
|
&:not(:has(img)) {
|
|
box-shadow: 0 0 0 var(--hover-size) var(--hover-color);
|
|
}
|
|
|
|
&:has(img) {
|
|
img {
|
|
box-shadow: 0 0 0 var(--hover-size) var(--hover-color);
|
|
}
|
|
}
|
|
}
|
|
|
|
&.lexical-editor--empty {
|
|
.lexical-editor__content::before {
|
|
content: attr(placeholder);
|
|
color: currentColor;
|
|
cursor: text;
|
|
opacity: 0.66;
|
|
pointer-events: none;
|
|
position: absolute;
|
|
white-space: pre-line;
|
|
}
|
|
}
|
|
}
|
|
|
|
.lexical-dialog-actions {
|
|
display: flex;
|
|
font-size: var(--text-x-small);
|
|
flex: 1 1 0%;
|
|
gap: var(--inline-space-half);
|
|
margin-block-start: var(--block-space-half);
|
|
|
|
.btn {
|
|
--radius: 0.3em;
|
|
|
|
inline-size: 100%;
|
|
justify-content: center;
|
|
|
|
&:is([type="submit"]) {
|
|
--btn-background: var(--card-color, var(--color-link));
|
|
--btn-color: var(--color-ink-inverted);
|
|
--outline-color: var(--card-color, var(--color-link));
|
|
}
|
|
}
|
|
|
|
span {
|
|
inline-size: 100%;
|
|
}
|
|
}
|
|
|
|
.lexical-editor__content {
|
|
--outline-size: max(2px, 0.08em);
|
|
|
|
margin: var(--block-space-half) 0;
|
|
min-block-size: calc(7lh + var(--block-space));
|
|
outline: 0;
|
|
padding: var(--block-space-half) var(--inline-space);
|
|
|
|
* {
|
|
&:first-child {
|
|
margin-block-start: 0;
|
|
}
|
|
|
|
&:last-child {
|
|
margin-block-end: 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
.lexical-editor--drag-over {
|
|
background-color: var(--color-selected);
|
|
border-radius: 4px;
|
|
outline: 2px dashed var(--color-selected-dark);
|
|
}
|
|
|
|
lexical-toolbar {
|
|
background-color: inherit;
|
|
border-block-end: 1px solid var(--color-ink-light);
|
|
color: currentColor;
|
|
display: flex;
|
|
font-size: inherit;
|
|
margin: 0;
|
|
max-inline-size: 100%;
|
|
padding: 0.2em 0;
|
|
position: relative;
|
|
|
|
dialog {
|
|
background-color: var(--color-canvas);
|
|
border: 1px solid var(--color-ink-lighter);
|
|
border-radius: 0.5em;
|
|
box-shadow: var(--shadow);
|
|
color: var(--color-ink);
|
|
padding: var(--block-space) calc(var(--inline-space) * 1.5);
|
|
position: absolute;
|
|
z-index: 1;
|
|
|
|
.input[type="url"] {
|
|
min-inline-size: 30ch;
|
|
}
|
|
}
|
|
|
|
> button {
|
|
aspect-ratio: 4/3.5;
|
|
appearance: none;
|
|
background-color: transparent;
|
|
block-size: 2em;
|
|
border: none;
|
|
border-radius: 0.2em;
|
|
color: currentColor;
|
|
cursor: pointer;
|
|
display: grid;
|
|
font-size: inherit;
|
|
inline-size: auto;
|
|
place-items: center;
|
|
transition: background-color 300ms ease;
|
|
|
|
svg {
|
|
-webkit-touch-callout: none;
|
|
block-size: 0.85em;
|
|
fill: currentColor;
|
|
grid-area: 1/1;
|
|
inline-size: auto;
|
|
user-select: none;
|
|
}
|
|
|
|
&:is(:focus, :hover) {
|
|
background-color: var(--color-ink-lighter);
|
|
box-shadow: none;
|
|
}
|
|
|
|
&:is(:active) {
|
|
background-color: var(--color-selected);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* Prompt
|
|
/* ------------------------------------------------------------------------ */
|
|
|
|
.lexical-prompt-menu {
|
|
--lexical-prompt-avatar-size: 24px;
|
|
--lexical-prompt-min-width: 20ch;
|
|
--lexical-prompt-padding: 0.5ch;
|
|
|
|
background-color: var(--color-canvas);
|
|
border-radius: calc(var(--lexical-prompt-padding) * 2);
|
|
box-shadow: var(--shadow);
|
|
font-size: var(--text-small);
|
|
list-style: none;
|
|
margin: 0;
|
|
min-inline-size: var(--lexical-prompt-min-width);
|
|
padding: var(--lexical-prompt-padding);
|
|
visibility: hidden;
|
|
z-index: var(--z-popup);
|
|
}
|
|
|
|
.lexical-prompt-menu--visible {
|
|
visibility: initial;
|
|
}
|
|
|
|
.lexical-prompt-menu__item {
|
|
align-items: center;
|
|
border-radius: 0.5ch;
|
|
cursor: pointer;
|
|
display: flex;
|
|
gap: var(--lexical-prompt-padding);
|
|
padding: var(--lexical-prompt-padding);
|
|
|
|
&:hover {
|
|
background-color: var(--color-selected);
|
|
}
|
|
|
|
&[aria-selected] {
|
|
box-shadow: 0 0 0 var(--hover-size) var(--color-selected-dark) inset;
|
|
|
|
&:hover {
|
|
--hover-size: 0;
|
|
}
|
|
}
|
|
|
|
img {
|
|
block-size: var(--lexical-prompt-avatar-size);
|
|
border-radius: 50%;
|
|
flex-shrink: 0;
|
|
inline-size: var(--lexical-prompt-avatar-size);
|
|
margin: 0;
|
|
}
|
|
}
|
|
|
|
/* Empty state */
|
|
.lexical-prompt-menu__item--empty {
|
|
color: var(--color-ink-medium);
|
|
padding: var(--lexical-prompt-padding);
|
|
}
|
|
}
|