@jsonforms/vanilla-renderers
Version:
Default Renderer Set for JSON Forms
471 lines (380 loc) • 8.55 kB
CSS
:root {
--jsf-main-bg-color: white;
--jsf-modest-bg-color: #dddddd;
--jsf-border-color: lightgray;
--jsf-modest-bg-highlight-color: silver;
--jsf-validation-color: red;
--jsf-main-fg-color: black;
--jsf-description-color: #939393;
background-color: var(--jsf-main-bg-color);
color: var(--jsf-main-fg-color);
}
body {
margin: 0;
padding: 1em;
width: 100vw;
height: 100vh;
}
/* Common */
[hidden] {
display: none;
}
/* Controls */
input {
height: 1.25em;
}
.jsf-label {
margin: 0.5em 1em;
font-weight: bold;
border-bottom: 1px solid var(--jsf-border-color);
}
.control {
display: flex;
flex: 1;
flex-direction: column;
margin: 0.25em 1em;
}
.control.trim {
display: inline-flex;
}
.control.trim > *:first-child {
margin-right: 0;
}
.control > * {
margin-left: 0.25em;
}
.control > *:first-child {
margin-left: 0;
margin-right: -0.25em;
}
.control > label {
font-weight: bold;
color: var(--jsf-main-fg-color);
}
.control > .validation:empty {
margin-left: 0;
}
.control > .input-description,
.control > .validation {
font-size: 0.75rem;
text-align: left;
margin-top: 0.5em;
min-height: 1em;
font-family: 'Roboto', 'Helvetica', 'Arial', sans-serif;
line-height: 1em;
}
.control > .validation {
color: var(--jsf-validation-color);
}
.control > .input-description {
color: var(--jsf-description-color);
}
.control > .input {
border-style: solid;
border-width: thin;
border-radius: 0.2em;
border-color: var(--jsf-border-color);
padding: 0.2em;
color: var(--jsf-main-fg-color);
}
.control > input.input {
background-color: transparent;
}
.control.validation_error > .input {
border-color: var(--jsf-validation-color);
}
.control[hidden] {
display: none;
}
/* Layouts */
.vertical-layout {
display: flex;
flex-direction: column;
}
.vertical-layout[hidden] {
display: none;
}
.vertical-layout > * {
flex: 1;
}
.horizontal-layout {
display: flex;
flex-direction: row;
align-items: flex-start;
}
.horizontal-layout[hidden] {
display: none;
}
.horizontal-layout > * {
flex: 1;
}
.group-layout {
display: flex;
flex-direction: column;
border-style: solid;
border-color: var(--jsf-border-color);
border-width: thin;
border-radius: 0.2em;
}
.group-layout[hidden] {
display: none;
}
.group-layout > legend {
padding: 0 0.5em;
font-weight: bold;
color: var(--jsf-main-fg-color);
}
.categorization {
display: flex;
flex-direction: row;
}
.categorization[hidden] {
display: none;
}
.categorization > * {
border-style: solid;
border-width: thin;
border-color: var(--jsf-border-color);
border-radius: 0.2em;
}
.categorization > *:first-child {
margin-right: 0.25em;
}
.categorization > .categorization-master {
flex: 1;
}
.categorization > .categorization-master ul {
list-style-type: none;
font-weight: normal;
}
.categorization > .categorization-master ul > li > span {
cursor: pointer;
display: block;
color: var(--jsf-main-fg-color);
}
.categorization > .categorization-master ul > li > span:hover {
font-weight: bold;
}
.categorization > .categorization-master ul > li.category-group > ul {
padding-left: 0.5em;
}
.categorization > .categorization-master ul > li.category-group > span {
cursor: default;
}
.categorization > .categorization-master ul > li.category-group > span:hover {
font-weight: normal;
}
.categorization > .categorization-master ul > li.selected > span {
font-weight: bold;
}
.categorization > .categorization-detail {
flex: 3;
}
.jsf-treeMasterDetail {
display: flex;
flex-direction: column;
}
.jsf-treeMasterDetail > .jsf-treeMasterDetail-content {
display: flex;
flex-direction: row;
}
.jsf-treeMasterDetail > .jsf-treeMasterDetail-content > * {
border-style: solid;
border-width: thin;
border-color: var(--jsf-border-color);
border-radius: 0.2em;
}
.jsf-treeMasterDetail > .jsf-treeMasterDetail-content > *:first-child {
margin-right: 0.25em;
}
.jsf-treeMasterDetail-master {
flex: 1;
}
.jsf-treeMasterDetail-detail {
flex: 3;
}
.jsf-treeMasterDetail-master ul {
list-style-type: none;
margin: 0;
padding: 0;
position: relative;
overflow: hidden;
}
.jsf-treeMasterDetail-master li {
min-height: 1em;
position: relative;
padding-left: 1.5em;
}
.jsf-treeMasterDetail-master li > div {
display: flex;
flex-direction: row;
}
.jsf-treeMasterDetail-master li > div > .icon {
flex-basis: 1em;
min-height: 1em;
margin-right: 0.25em;
background-repeat: no-repeat;
background-position: center;
}
.jsf-treeMasterDetail-master li > div > .icon.folder {
background-image: url('./icons/folder.png');
}
.jsf-treeMasterDetail-master li > div > .icon.page {
background-image: url('./icons/page.png');
}
.jsf-treeMasterDetail-master li > div > .icon.drive {
background-image: url('./icons/drive.png');
}
.jsf-treeMasterDetail-master li.selected > div > .label {
font-weight: bold;
background-color: lightgray;
}
.jsf-treeMasterDetail-master li > div > .label {
display: flex;
flex: 1;
margin-right: 1em;
min-height: 1em;
color: var(--jsf-main-fg-color);
}
/* TODO: Needed? */
.jsf-treeMasterDetail-master li > div > .label > span:first-child:empty {
background: #ffff00;
min-height: 1em;
}
.jsf-treeMasterDetail-master li > div > .label:hover {
font-weight: bold;
cursor: pointer;
background-color: var(--jsf-modest-bg-color);
}
.jsf-treeMasterDetail-master li > div > .label > .add,
.jsf-treeMasterDetail-master li > div > .label > .remove {
display: none;
cursor: pointer;
margin-left: 0.25em;
min-width: 1em;
font-weight: normal;
}
.jsf-treeMasterDetail-master li > div > .label:hover > .add,
.jsf-treeMasterDetail-master li > div > .label:hover > .remove {
display: flex;
justify-content: center;
}
.jsf-treeMasterDetail-master li > div > .label:hover > .add:hover,
.jsf-treeMasterDetail-master li > div > .label:hover > .remove:hover {
background-color: var(--jsf-modest-bg-highlight-color);
}
.jsf-treeMasterDetail-master li::before,
.jsf-treeMasterDetail-master li::after,
.jsf-treeMasterDetail-master ul::after {
content: '';
position: absolute;
left: 0.2em;
}
.jsf-treeMasterDetail-master li::before {
border-top: 1px solid var(--jsf-border-color);
top: 0.5em;
width: 1em;
}
.jsf-treeMasterDetail-master li::after {
border-left: 1px solid var(--jsf-border-color);
height: 100%;
top: -0.6em;
}
.jsf-treeMasterDetail-master ul::after {
border-left: 1px solid var(--jsf-border-color);
height: 0.6em;
bottom: 0;
}
.jsf-treeMasterDetail-master ul:last-child::after {
display: none;
}
.jsf-treeMasterDetail-master > ul > li::after {
top: 0.5em;
}
.jsf-treeMasterDetail-master > ul > li:last-child::after {
display: none;
}
.jsf-treeMasterDetail-master > ul > li:only-child::before {
display: none;
}
.jsf-treeMasterDetail-master > ul > li:only-child {
padding-left: 0.25em;
}
jsonforms-tree > dialog > .content {
display: flex;
flex-direction: column;
}
.array-layout {
display: flex;
flex: 1;
flex-direction: column;
border-style: solid;
border-color: var(--jsf-border-color);
border-width: thin;
border-radius: 0.2em;
}
.array-layout[hidden] {
display: none;
}
.array-layout > legend {
padding: 0 0.5em;
font-weight: bold;
}
.array-layout > legend > label {
margin-right: 1em;
color: var(--jsf-main-fg-color);
}
.array-layout > .children > * {
border-bottom: 1px solid var(--jsf-border-color);
display: block;
}
.array-layout > .children > *:last-child {
border-bottom: none;
}
.array-table-layout.control > header,
.array-control-layout.control > header {
display: flex;
margin: 0.25em;
}
.array-table-layout header label,
.array-control-layout header label {
flex: 1;
font-weight: bold;
}
.array-control-layout.control > .children .child-controls {
display: flex;
justify-content: flex-end;
margin: 0 1em 0.75em 0;
}
.array-table-layout table {
flex: 1;
display: flex;
flex-direction: column;
}
.array-table-layout table.control > * {
margin: 0;
}
.array-table-layout tr {
display: flex;
}
.array-table-layout table,
.array-table-layout th,
.array-table-layout td {
border: 1px solid var(--jsf-border-color);
border-collapse: collapse;
}
.array-table-layout th {
padding: 5px;
flex: 1;
}
.array-table-layout td {
display: flex;
flex: 1;
}
.array-table-layout td > * {
flex: 1;
}
.array-control-layout .children > div {
border-top: 1px solid var(--jsf-border-color);
padding-top: 10px;
}