Files
dashboards/components/RichTextArea.module.css

227 lines
3.8 KiB
CSS

.wrap {
display: flex;
flex-direction: column;
gap: 8px;
}
.head {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 12px;
flex-wrap: wrap;
}
.head:has(.label) {
justify-content: space-between;
}
.label {
font-size: 12px;
font-weight: 400;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--color-soft);
line-height: 1;
}
.tools {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: flex-end;
gap: 6px;
}
.toolSep {
width: 1px;
height: 18px;
margin: 0 2px;
background: #e8e8e8;
}
.tool {
box-sizing: border-box;
min-width: 32px;
height: 28px;
min-height: 28px;
padding: 0 8px;
border: 1px solid #ececec;
border-radius: 3px;
background: #fff;
font-size: 11px;
font-weight: 500;
line-height: 26px;
color: var(--color-muted);
transition:
border-color 0.35s ease,
color 0.35s ease,
background-color 0.35s ease,
box-shadow 0.35s ease;
}
.tool:hover,
.tool:focus-visible {
border-color: var(--color-black);
color: var(--color-black);
}
.aiTool:hover:not(:disabled),
.aiTool:focus-visible:not(:disabled) {
border-color: transparent;
color: #fff;
}
.toolActive {
border-color: var(--color-black);
color: var(--color-black);
background: #f4f4f4;
}
.aiTool {
min-width: 36px;
letter-spacing: 0.08em;
}
.toolEnd {
display: inline-flex;
align-items: center;
margin-inline-start: 10px;
padding-inline-start: 10px;
border-inline-start: 1px solid #e4e4e4;
}
.tool:disabled {
opacity: 0.4;
cursor: not-allowed;
}
.toolSelectWrap {
display: inline-flex;
align-items: center;
height: 28px;
max-height: 28px;
}
.toolSelect {
box-sizing: border-box;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
display: block;
width: auto;
height: 28px;
min-height: 28px;
max-height: 28px;
margin: 0;
border: 1px solid #ececec;
border-radius: 3px;
background-color: #fff;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%238e8e8e' d='M1 1l4 4 4-4'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right 8px center;
background-size: 10px 6px;
padding: 0 22px 0 8px;
font: inherit;
font-size: 11px;
font-weight: 500;
line-height: 26px;
color: var(--color-muted);
outline: none;
cursor: pointer;
vertical-align: middle;
transition: border-color 0.35s ease, color 0.35s ease;
}
.toolSelect:hover,
.toolSelect:focus-visible {
border-color: var(--color-black);
color: var(--color-black);
}
.toolSelect:disabled {
opacity: 0.4;
cursor: not-allowed;
}
.srOnly {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
.editor {
border: 1px solid #f0f0f0;
border-radius: 5px;
background: #fff;
padding: 14px 16px;
font-size: 14px;
font-weight: 400;
line-height: 1.65;
color: var(--color-black);
outline: none;
transition: border-color 0.35s ease, box-shadow 0.35s ease;
}
.editor:hover {
border-color: #d8d8d8;
}
.editor:focus {
border-color: var(--color-black);
}
.editor :global(ul) {
margin: 0.4em 0 0.4em 1.2em;
}
.editor :global(p) {
margin: 0 0 0.6em;
}
.editor :global(img) {
display: block;
max-width: 100%;
height: auto;
margin: 0.7em 0;
border-radius: 4px;
}
.imageError {
margin: 0;
font-size: 12px;
font-weight: 400;
color: #b42318;
}
.fileInput {
display: none;
}
.editor :global(font[size="2"]) {
font-size: 13px;
}
.editor :global(font[size="3"]) {
font-size: 14px;
}
.editor :global(font[size="4"]) {
font-size: 16px;
}
.editor :global(font[size="5"]) {
font-size: 20px;
}
.editor:empty::before {
content: "Write here…";
color: var(--color-body);
}