mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
UX: improve json_schema setting styles (#24424)
This commit is contained in:
parent
7d35e406ba
commit
878b9ce549
@ -46,7 +46,7 @@ export default class JsonSchemaEditorModal extends Component {
|
|||||||
_loadEditor(editor) {
|
_loadEditor(editor) {
|
||||||
let { JSONEditor } = window;
|
let { JSONEditor } = window;
|
||||||
|
|
||||||
JSONEditor.defaults.options.theme = "bootstrap4";
|
JSONEditor.defaults.options.theme = "barebones";
|
||||||
JSONEditor.defaults.iconlibs = {
|
JSONEditor.defaults.iconlibs = {
|
||||||
discourseIcons: DiscourseJsonSchemaEditorIconlib,
|
discourseIcons: DiscourseJsonSchemaEditorIconlib,
|
||||||
};
|
};
|
||||||
@ -62,7 +62,6 @@ export default class JsonSchemaEditorModal extends Component {
|
|||||||
disable_edit_json: true,
|
disable_edit_json: true,
|
||||||
disable_properties: true,
|
disable_properties: true,
|
||||||
disable_collapse: false,
|
disable_collapse: false,
|
||||||
remove_button_labels: true,
|
|
||||||
show_errors: "never",
|
show_errors: "never",
|
||||||
startval: this.value ? JSON.parse(this.value) : null,
|
startval: this.value ? JSON.parse(this.value) : null,
|
||||||
});
|
});
|
||||||
@ -76,6 +75,8 @@ class DiscourseJsonSchemaEditorIconlib {
|
|||||||
add: "plus",
|
add: "plus",
|
||||||
moveup: "arrow-up",
|
moveup: "arrow-up",
|
||||||
movedown: "arrow-down",
|
movedown: "arrow-down",
|
||||||
|
moveleft: "chevron-left",
|
||||||
|
moveright: "chevron-right",
|
||||||
copy: "copy",
|
copy: "copy",
|
||||||
collapse: "chevron-down",
|
collapse: "chevron-down",
|
||||||
expand: "chevron-up",
|
expand: "chevron-up",
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
@import "groups";
|
@import "groups";
|
||||||
@import "header";
|
@import "header";
|
||||||
@import "history";
|
@import "history";
|
||||||
|
@import "json_schema";
|
||||||
@import "lightbox";
|
@import "lightbox";
|
||||||
@import "login";
|
@import "login";
|
||||||
@import "magnific-popup";
|
@import "magnific-popup";
|
||||||
|
247
app/assets/stylesheets/common/base/json_schema.scss
Normal file
247
app/assets/stylesheets/common/base/json_schema.scss
Normal file
@ -0,0 +1,247 @@
|
|||||||
|
// styles used for JSON schema settings
|
||||||
|
|
||||||
|
.d-modal.json-schema-editor-modal {
|
||||||
|
--modal-max-width: 95vw;
|
||||||
|
--modal-width: unset;
|
||||||
|
--space-1: 0.25em;
|
||||||
|
--space-2: calc(0.25em * 2);
|
||||||
|
--space-3: calc(0.25em * 3);
|
||||||
|
--space-4: calc(0.25em * 4);
|
||||||
|
--space-5: calc(0.25em * 5);
|
||||||
|
--space-6: calc(0.25em * 6);
|
||||||
|
|
||||||
|
.d-modal__container {
|
||||||
|
width: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
.je-ready {
|
||||||
|
.je-object__container {
|
||||||
|
padding: 0;
|
||||||
|
border: none;
|
||||||
|
margin-bottom: var(--space-4);
|
||||||
|
|
||||||
|
> span:not(.je-object__controls) {
|
||||||
|
display: flex;
|
||||||
|
padding: var(--space-1) 0 var(--space-4) var(--space-6);
|
||||||
|
|
||||||
|
.json-editor-btn-delete {
|
||||||
|
order: 2;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.je-object__controls {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.json-editor-btn-delete {
|
||||||
|
@extend .btn-danger;
|
||||||
|
@extend .no-text;
|
||||||
|
}
|
||||||
|
|
||||||
|
.json-editor-btn-add {
|
||||||
|
@extend .btn, .ok;
|
||||||
|
gap: var(--space-1);
|
||||||
|
span {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
@extend .btn;
|
||||||
|
@extend .no-text;
|
||||||
|
span {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.json-editor-btn-collapse {
|
||||||
|
@extend .btn-flat;
|
||||||
|
}
|
||||||
|
|
||||||
|
[class*="json-editor-btn"] {
|
||||||
|
margin-right: var(--space-2);
|
||||||
|
}
|
||||||
|
|
||||||
|
select {
|
||||||
|
@include appearance-none;
|
||||||
|
@include form-item-sizing;
|
||||||
|
display: inline-block;
|
||||||
|
margin-bottom: var(--space-2);
|
||||||
|
color: var(--primary);
|
||||||
|
background-color: var(--secondary);
|
||||||
|
border: 1px solid var(--primary-400);
|
||||||
|
border-radius: var(--d-input-border-radius);
|
||||||
|
background: svg-uri(
|
||||||
|
'<svg xmlns="http://www.w3.org/2000/svg" fill="#999" height=".75em" viewBox="0 0 448 512"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"/></svg>'
|
||||||
|
); // down chevron
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: 98%;
|
||||||
|
&:focus {
|
||||||
|
@include default-focus;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
select,
|
||||||
|
input {
|
||||||
|
width: 100%;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row:not(:first-child) {
|
||||||
|
.form-control {
|
||||||
|
margin: var(--space-4) 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-control {
|
||||||
|
p {
|
||||||
|
// description
|
||||||
|
color: var(--primary-medium);
|
||||||
|
margin-top: var(--space-1);
|
||||||
|
font-size: var(--font-down-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin: 0;
|
||||||
|
button.json-editor-btn-collapse.json-editor-btntype-toggle {
|
||||||
|
// needs the specificity
|
||||||
|
background: transparent;
|
||||||
|
margin: 0 0 0 calc(var(--space-2) * -1);
|
||||||
|
padding: var(--space-1) var(--space-2);
|
||||||
|
font-size: var(--font-down-2);
|
||||||
|
.d-icon {
|
||||||
|
color: var(--primary-medium);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
margin: 0 0 0 0.1em; // minor visual alignment
|
||||||
|
font-weight: normal;
|
||||||
|
font-size: var(--font-up-1);
|
||||||
|
color: var(--primary);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.je-indented-panel {
|
||||||
|
margin: 0;
|
||||||
|
padding: var(--space-4) 0 0 var(--space-6);
|
||||||
|
border-left: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-schemaid="root"] {
|
||||||
|
position: relative;
|
||||||
|
> .je-header {
|
||||||
|
label,
|
||||||
|
.json-editor-btn-collapse {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
button {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
margin-right: 0;
|
||||||
|
font-size: var(--font-down-1);
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
> .je-indented-panel {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// for "format":"tabs-top"
|
||||||
|
|
||||||
|
.je-tabholder--top {
|
||||||
|
margin: 0;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
width: 80%;
|
||||||
|
gap: 0 var(--space-3);
|
||||||
|
border-bottom: 1px solid var(--primary-low);
|
||||||
|
padding-bottom: var(--space-1);
|
||||||
|
|
||||||
|
.je-tab--top {
|
||||||
|
border: none;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.je-tabholder--clear {
|
||||||
|
padding-top: var(--space-3);
|
||||||
|
|
||||||
|
.je-object__title {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.je-object__container > span:not(.je-object__controls) {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 label {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.je-indented-panel--top {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.json-editor-btn-collapse {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.je-indented-panel {
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// for "format":"table"
|
||||||
|
|
||||||
|
table {
|
||||||
|
width: 100%;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
|
||||||
|
td,
|
||||||
|
th {
|
||||||
|
&:not(:first-child):not(:last-child) {
|
||||||
|
padding: var(--space-2);
|
||||||
|
}
|
||||||
|
&:first-child,
|
||||||
|
&:last-child {
|
||||||
|
padding: var(--space-2) 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
td {
|
||||||
|
vertical-align: top;
|
||||||
|
|
||||||
|
select {
|
||||||
|
background-position: center right var(--space-2);
|
||||||
|
padding-right: var(--space-6);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
span {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: var(--space-1);
|
||||||
|
button {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.delete {
|
||||||
|
order: 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user