* chore: disable image alignment tooltip for touch devices * chore: added touch-select-none style
508 lines
12 KiB
CSS
508 lines
12 KiB
CSS
.ProseMirror {
|
|
position: relative;
|
|
word-wrap: break-word;
|
|
white-space: pre-wrap;
|
|
-moz-tab-size: 4;
|
|
tab-size: 4;
|
|
-webkit-user-select: text;
|
|
-moz-user-select: text;
|
|
-ms-user-select: text;
|
|
user-select: text;
|
|
outline: none !important;
|
|
cursor: text;
|
|
font-family: var(--font-style);
|
|
font-size: var(--font-size-regular);
|
|
font-weight: 400;
|
|
color: inherit;
|
|
-moz-box-sizing: border-box;
|
|
box-sizing: border-box;
|
|
appearance: textfield;
|
|
-webkit-appearance: textfield;
|
|
-moz-appearance: textfield;
|
|
}
|
|
|
|
/* Placeholder only for the first line in an empty editor. */
|
|
.ProseMirror p.is-editor-empty:first-child::before {
|
|
content: attr(data-placeholder);
|
|
float: left;
|
|
color: var(--color-placeholder);
|
|
pointer-events: none;
|
|
height: 0;
|
|
}
|
|
|
|
/* Display Placeholders on every new line. */
|
|
.ProseMirror p.is-empty::before {
|
|
content: attr(data-placeholder);
|
|
float: left;
|
|
color: var(--color-placeholder);
|
|
pointer-events: none;
|
|
height: 0;
|
|
}
|
|
|
|
.ProseMirror li blockquote {
|
|
margin-top: 10px;
|
|
padding-inline-start: 1em;
|
|
}
|
|
|
|
/* block quotes */
|
|
.ProseMirror blockquote {
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
border-left: 3px solid rgb(var(--color-border-300));
|
|
}
|
|
|
|
.ProseMirror blockquote p::before,
|
|
.ProseMirror blockquote p::after {
|
|
display: none;
|
|
}
|
|
/* end block quotes */
|
|
|
|
.ProseMirror code::before,
|
|
.ProseMirror code::after {
|
|
display: none;
|
|
}
|
|
|
|
/* Custom image styles */
|
|
.ProseMirror img {
|
|
margin-top: 0 !important;
|
|
margin-bottom: 0;
|
|
|
|
&:not(.read-only-image):not(.loading-image) {
|
|
transition: filter 0.1s ease-in-out;
|
|
|
|
&:hover {
|
|
cursor: pointer;
|
|
filter: brightness(90%);
|
|
}
|
|
|
|
&.ProseMirror-selectednode {
|
|
outline: 3px solid rgba(var(--color-primary-100));
|
|
filter: brightness(90%);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* Custom gap cursor styles */
|
|
.ProseMirror-gapcursor::after {
|
|
border-top: 1px solid rgb(var(--color-text-100)) !important;
|
|
}
|
|
|
|
/* to-do list */
|
|
ul[data-type="taskList"] li {
|
|
font-size: var(--font-size-list);
|
|
line-height: 1.5;
|
|
}
|
|
|
|
ul[data-type="taskList"] li > label {
|
|
position: absolute;
|
|
left: -5px;
|
|
margin: 0.1rem 0.15rem 0 0;
|
|
user-select: none;
|
|
}
|
|
|
|
ul[data-type="taskList"] li > div {
|
|
margin-left: 1.15rem;
|
|
}
|
|
|
|
ul[data-type="taskList"] li > label input[type="checkbox"] {
|
|
border: 1px solid rgba(var(--color-text-100), 0.2) !important;
|
|
outline: none;
|
|
border-radius: 2px;
|
|
transform: scale(1.05);
|
|
}
|
|
|
|
.ProseMirror[contenteditable="true"] input[type="checkbox"]:hover {
|
|
background-color: rgba(var(--color-text-100), 0.1);
|
|
}
|
|
|
|
.ProseMirror[contenteditable="false"] input[type="checkbox"] {
|
|
pointer-events: none;
|
|
}
|
|
|
|
ul[data-type="taskList"] li > label input[type="checkbox"]:checked {
|
|
background-color: rgba(var(--color-primary-100)) !important;
|
|
border-color: rgba(var(--color-primary-100)) !important;
|
|
color: white !important;
|
|
}
|
|
|
|
ul[data-type="taskList"] li > label input[type="checkbox"]:checked:hover {
|
|
background-color: rgba(var(--color-primary-300)) !important;
|
|
border-color: rgba(var(--color-primary-300)) !important;
|
|
}
|
|
|
|
@media screen and (max-width: 768px) {
|
|
ul[data-type="taskList"] li > label {
|
|
margin-right: 0.5rem;
|
|
}
|
|
}
|
|
|
|
/* the p tag just after the ul tag */
|
|
ul[data-type="taskList"] + p.editor-paragraph-block {
|
|
margin-top: 0.4rem !important;
|
|
}
|
|
|
|
ul[data-type="taskList"] li > label input[type="checkbox"] {
|
|
position: relative;
|
|
-webkit-appearance: none;
|
|
appearance: none;
|
|
background-color: transparent;
|
|
margin: 0;
|
|
cursor: pointer;
|
|
width: 0.8rem;
|
|
height: 0.8rem;
|
|
position: relative;
|
|
border: 1.5px solid rgb(var(--color-text-100));
|
|
margin-right: 0.2rem;
|
|
margin-top: 0.15rem;
|
|
|
|
&:active {
|
|
background-color: rgb(var(--color-background-90));
|
|
}
|
|
|
|
/* check sign */
|
|
&::before {
|
|
content: "";
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
width: 0.5em;
|
|
height: 0.5em;
|
|
transform: scale(0);
|
|
transform-origin: center;
|
|
transition: 120ms transform ease-in-out;
|
|
box-shadow: inset 1em 1em;
|
|
clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
|
|
}
|
|
|
|
&:checked::before {
|
|
transform: scale(1) translate(-50%, -50%);
|
|
}
|
|
}
|
|
|
|
ul[data-type="taskList"] li > div {
|
|
& > p.editor-paragraph-block {
|
|
margin-top: 10px;
|
|
transition: color 0.2s ease;
|
|
}
|
|
|
|
[data-text-color] {
|
|
transition: opacity 0.2s ease;
|
|
}
|
|
}
|
|
|
|
ul[data-type="taskList"] li[data-checked="true"] {
|
|
& > div > p.editor-paragraph-block {
|
|
color: var(--color-placeholder);
|
|
}
|
|
|
|
[data-text-color] {
|
|
opacity: 0.6;
|
|
transition: opacity 0.2s ease;
|
|
}
|
|
}
|
|
/* end to-do list */
|
|
|
|
/* Overwrite tippy-box original max-width */
|
|
|
|
.tippy-box {
|
|
max-width: 600px !important;
|
|
}
|
|
|
|
.fade-in {
|
|
opacity: 1;
|
|
transition: opacity 0.3s ease-in;
|
|
}
|
|
|
|
.fade-out {
|
|
opacity: 0;
|
|
transition: opacity 0.2s ease-out;
|
|
}
|
|
|
|
@keyframes spinning {
|
|
to {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
.resize-cursor {
|
|
cursor: ew-resize;
|
|
cursor: col-resize;
|
|
}
|
|
|
|
.ProseMirror table * .is-empty::before {
|
|
opacity: 0;
|
|
}
|
|
|
|
/* code block, inline code */
|
|
.ProseMirror pre {
|
|
font-family: JetBrainsMono, monospace;
|
|
tab-size: 2;
|
|
}
|
|
|
|
.ProseMirror pre code {
|
|
background: none;
|
|
color: inherit;
|
|
padding: 0;
|
|
}
|
|
|
|
.ProseMirror code {
|
|
font-size: var(--font-size-code);
|
|
}
|
|
/* end code block, inline code */
|
|
|
|
div[data-type="horizontalRule"] {
|
|
line-height: 0;
|
|
padding: var(--divider-padding-top) 0 var(--divider-padding-bottom) 0;
|
|
margin-top: 0;
|
|
margin-bottom: 0;
|
|
|
|
& > div {
|
|
border-bottom: 2px solid rgb(var(--color-border-200));
|
|
}
|
|
}
|
|
|
|
/* Cursor styles for the inline code blocks */
|
|
@keyframes blink {
|
|
49% {
|
|
border-color: unset;
|
|
}
|
|
|
|
50% {
|
|
border-color: transparent;
|
|
}
|
|
|
|
99% {
|
|
border-color: transparent;
|
|
}
|
|
}
|
|
|
|
.no-cursor {
|
|
caret-color: transparent;
|
|
}
|
|
|
|
div:focus .fake-cursor,
|
|
span:focus .fake-cursor {
|
|
margin-right: -1px;
|
|
border-left-width: 1.5px;
|
|
border-left-style: solid;
|
|
animation: blink 1s;
|
|
animation-iteration-count: infinite;
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
/* numbered, bulleted and to-do lists spacing */
|
|
.prose ol:where(.prose > :first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)),
|
|
.prose
|
|
ul:not([data-type="taskList"]):where(.prose > :first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)),
|
|
.prose ul[data-type="taskList"]:where(.prose > :first-child) {
|
|
margin-top: 0.25rem !important;
|
|
margin-bottom: 1px !important;
|
|
}
|
|
|
|
.prose ol:not(:where(.prose > :first-child):not(:where([class~="not-prose"], [class~="not-prose"] *))),
|
|
.prose
|
|
ul:not([data-type="taskList"]):not(
|
|
:where(.prose > :first-child):not(:where([class~="not-prose"], [class~="not-prose"] *))
|
|
),
|
|
.prose ul[data-type="taskList"]:not(:where(.prose > :first-child)) {
|
|
margin-top: calc(0.25rem + 3px) !important;
|
|
margin-bottom: 1px !important;
|
|
}
|
|
|
|
ol ol,
|
|
ol ul:not([data-type="taskList"]),
|
|
ul:not([data-type="taskList"]) ul:not([data-type="taskList"]),
|
|
ul:not([data-type="taskList"]) ol {
|
|
margin-top: 0.45rem !important;
|
|
}
|
|
|
|
ul[data-type="taskList"] ul[data-type="taskList"] {
|
|
margin-top: 0.6rem;
|
|
}
|
|
/* end numbered, bulleted and to-do lists spacing */
|
|
|
|
h1.editor-heading-block,
|
|
h2.editor-heading-block,
|
|
h3.editor-heading-block,
|
|
h4.editor-heading-block,
|
|
h5.editor-heading-block,
|
|
h6.editor-heading-block,
|
|
p.editor-paragraph-block {
|
|
margin: 0 !important;
|
|
}
|
|
|
|
/* tailwind typography */
|
|
.prose :where(h1.editor-heading-block):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
|
|
&:not(:first-child) {
|
|
padding-top: var(--heading-1-padding-top);
|
|
}
|
|
|
|
padding-bottom: var(--heading-1-padding-bottom);
|
|
font-size: var(--font-size-h1);
|
|
line-height: var(--line-height-h1);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.prose :where(h2.editor-heading-block):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
|
|
&:not(:first-child) {
|
|
padding-top: var(--heading-2-padding-top);
|
|
}
|
|
|
|
padding-bottom: var(--heading-2-padding-bottom);
|
|
font-size: var(--font-size-h2);
|
|
line-height: var(--line-height-h2);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.prose :where(h3.editor-heading-block):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
|
|
&:not(:first-child) {
|
|
padding-top: var(--heading-3-padding-top);
|
|
}
|
|
|
|
padding-bottom: var(--heading-3-padding-bottom);
|
|
font-size: var(--font-size-h3);
|
|
line-height: var(--line-height-h3);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.prose :where(h4.editor-heading-block):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
|
|
&:not(:first-child) {
|
|
padding-top: var(--heading-4-padding-top);
|
|
}
|
|
|
|
padding-bottom: var(--heading-4-padding-bottom);
|
|
font-size: var(--font-size-h4);
|
|
line-height: var(--line-height-h4);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.prose :where(h5.editor-heading-block):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
|
|
&:not(:first-child) {
|
|
padding-top: var(--heading-5-padding-top);
|
|
}
|
|
|
|
padding-bottom: var(--heading-5-padding-bottom);
|
|
font-size: var(--font-size-h5);
|
|
line-height: var(--line-height-h5);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.prose :where(h6.editor-heading-block):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
|
|
&:not(:first-child) {
|
|
padding-top: var(--heading-6-padding-top);
|
|
}
|
|
|
|
padding-bottom: var(--heading-6-padding-bottom);
|
|
font-size: var(--font-size-h6);
|
|
line-height: var(--line-height-h6);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.prose :where(p.editor-paragraph-block):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
|
|
&:first-child {
|
|
padding-top: 0;
|
|
}
|
|
|
|
&:not(:first-child) {
|
|
padding-top: var(--paragraph-padding-top);
|
|
}
|
|
|
|
&:not(td p.editor-paragraph-block, th p.editor-paragraph-block) {
|
|
&:last-child {
|
|
padding-bottom: var(--paragraph-padding-bottom);
|
|
}
|
|
|
|
&:not(:last-child) {
|
|
padding-bottom: var(--paragraph-padding-between);
|
|
}
|
|
}
|
|
|
|
font-size: var(--font-size-regular);
|
|
line-height: var(--line-height-regular);
|
|
}
|
|
|
|
p.editor-paragraph-block + p.editor-paragraph-block {
|
|
padding-top: var(--paragraph-padding-between) !important;
|
|
}
|
|
|
|
.prose :where(ol):not(:where([class~="not-prose"], [class~="not-prose"] *)) li p.editor-paragraph-block,
|
|
.prose :where(ul):not(:where([class~="not-prose"], [class~="not-prose"] *)) li p.editor-paragraph-block {
|
|
font-size: var(--font-size-list);
|
|
line-height: var(--line-height-list);
|
|
}
|
|
|
|
.prose :where(.prose > :first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
|
|
margin-top: 0;
|
|
}
|
|
/* end tailwind typography */
|
|
|
|
/* text colors */
|
|
[data-text-color="gray"] {
|
|
color: var(--editor-colors-gray-text);
|
|
}
|
|
[data-text-color="peach"] {
|
|
color: var(--editor-colors-peach-text);
|
|
}
|
|
[data-text-color="pink"] {
|
|
color: var(--editor-colors-pink-text);
|
|
}
|
|
[data-text-color="orange"] {
|
|
color: var(--editor-colors-orange-text);
|
|
}
|
|
[data-text-color="green"] {
|
|
color: var(--editor-colors-green-text);
|
|
}
|
|
[data-text-color="light-blue"] {
|
|
color: var(--editor-colors-light-blue-text);
|
|
}
|
|
[data-text-color="dark-blue"] {
|
|
color: var(--editor-colors-dark-blue-text);
|
|
}
|
|
[data-text-color="purple"] {
|
|
color: var(--editor-colors-purple-text);
|
|
}
|
|
/* end text colors */
|
|
|
|
/* background colors */
|
|
[data-background-color="gray"] {
|
|
background-color: var(--editor-colors-gray-background);
|
|
}
|
|
[data-background-color="peach"] {
|
|
background-color: var(--editor-colors-peach-background);
|
|
}
|
|
[data-background-color="pink"] {
|
|
background-color: var(--editor-colors-pink-background);
|
|
}
|
|
[data-background-color="orange"] {
|
|
background-color: var(--editor-colors-orange-background);
|
|
}
|
|
[data-background-color="green"] {
|
|
background-color: var(--editor-colors-green-background);
|
|
}
|
|
[data-background-color="light-blue"] {
|
|
background-color: var(--editor-colors-light-blue-background);
|
|
}
|
|
[data-background-color="dark-blue"] {
|
|
background-color: var(--editor-colors-dark-blue-background);
|
|
}
|
|
[data-background-color="purple"] {
|
|
background-color: var(--editor-colors-purple-background);
|
|
}
|
|
/* end background colors */
|
|
|
|
/* emoji styles */
|
|
span[data-name][data-type="emoji"] img {
|
|
display: inline !important;
|
|
vertical-align: middle;
|
|
margin: 0;
|
|
padding: 0;
|
|
max-width: 1.25em;
|
|
max-height: 1.25em;
|
|
}
|
|
|
|
/* touch device styles */
|
|
.touch-select-none {
|
|
user-select: none;
|
|
-webkit-user-select: none;
|
|
}
|