Files
probo/apps/console/src/components/PolicyEditor.css
gearnode 3c39aa86c9 Add policy visual editor
Signed-off-by: gearnode <bryan@frimin.fr>
2025-03-04 12:22:04 +01:00

230 lines
3.6 KiB
CSS

.policy-editor-container {
border-radius: 0.5rem;
position: relative;
line-height: 1.5;
font-weight: 400;
margin-top: 0.5rem;
border: 1px solid hsl(var(--border));
display: block;
width: 100%;
}
.policy-editor {
background: #fff;
position: relative;
border-radius: 0.5rem;
display: flex;
flex-direction: column;
width: 100%;
}
.policy-editor-inner {
background: #fff;
position: relative;
border-radius: 0 0 0.5rem 0.5rem;
flex: 1;
min-height: 250px;
}
.policy-editor-input {
min-height: 250px;
max-height: 500px;
resize: none;
font-size: 15px;
position: relative;
tab-size: 1;
outline: 0;
padding: 15px 10px;
overflow-y: auto;
width: 100%;
display: block;
color: #000;
}
.policy-editor-placeholder {
color: #999;
overflow: hidden;
position: absolute;
text-overflow: ellipsis;
top: 15px;
left: 10px;
font-size: 15px;
user-select: none;
display: inline-block;
pointer-events: none;
}
.policy-editor-paragraph {
margin: 0 0 15px 0;
position: relative;
}
.policy-editor .toolbar {
display: flex;
flex-wrap: wrap;
padding: 8px;
border-bottom: 1px solid hsl(var(--border));
background-color: hsl(var(--muted));
border-radius: 0.5rem 0.5rem 0 0;
}
.policy-editor .toolbar button {
border: 0;
display: flex;
background: none;
border-radius: 4px;
padding: 8px;
cursor: pointer;
vertical-align: middle;
align-items: center;
justify-content: center;
}
.policy-editor .toolbar button:hover {
background-color: rgba(0, 0, 0, 0.05);
}
.policy-editor .toolbar button.active {
background-color: rgba(0, 0, 0, 0.1);
}
.policy-editor .toolbar .divider {
width: 1px;
background-color: hsl(var(--border));
margin: 0 8px;
height: 24px;
}
/* Typography */
.editor-heading-h1 {
font-size: 24px;
font-weight: 700;
margin: 0 0 12px 0;
}
.editor-heading-h2 {
font-size: 20px;
font-weight: 700;
margin: 10px 0;
}
.editor-heading-h3 {
font-size: 18px;
font-weight: 600;
margin: 8px 0;
}
.editor-heading-h4 {
font-size: 16px;
font-weight: 600;
margin: 8px 0;
}
.editor-heading-h5 {
font-size: 14px;
font-weight: 600;
margin: 8px 0;
}
.editor-quote {
margin: 0;
margin-left: 20px;
padding-left: 16px;
border-left: 4px solid hsl(var(--border));
color: hsl(var(--muted-foreground));
}
.editor-list-ol {
padding: 0;
margin: 0 0 0 16px;
}
.editor-list-ul {
padding: 0;
margin: 0 0 0 16px;
}
.editor-listitem {
margin: 8px 0 0 0;
}
.editor-nested-listitem {
list-style-type: none;
}
/* Text formatting */
.editor-text-bold {
font-weight: bold;
}
.editor-text-italic {
font-style: italic;
}
.editor-text-underline {
text-decoration: underline;
}
.editor-text-strikethrough {
text-decoration: line-through;
}
.editor-text-underlineStrikethrough {
text-decoration: underline line-through;
}
.editor-text-code {
background-color: hsl(var(--muted));
padding: 1px 4px;
border-radius: 4px;
font-family: monospace;
}
.editor-link {
color: hsl(var(--primary));
text-decoration: underline;
}
.editor-code {
background-color: hsl(var(--muted));
font-family: monospace;
display: block;
padding: 8px 16px;
line-height: 1.6;
font-size: 13px;
border-radius: 0.5rem;
margin: 8px 0;
}
/* Code highlight */
.editor-tokenComment {
color: slategray;
}
.editor-tokenPunctuation {
color: #999;
}
.editor-tokenProperty {
color: #905;
}
.editor-tokenSelector {
color: #690;
}
.editor-tokenOperator {
color: #9a6e3a;
}
.editor-tokenAttr {
color: #07a;
}
.editor-tokenVariable {
color: #e90;
}
.editor-tokenFunction {
color: #dd4a68;
}