@kevinkosterr/vue3-form-generator
Version:
A schema-based form generator component for Vue 3, based on the original [`vue-form-generator`](https://github.com/vue-generators/vue-form-generator) library.
251 lines (246 loc) • 6.12 kB
CSS
.vfg-fi {
display: flex;
align-items: center;
}
.vfg-fi svg {
height: 18px;
}
.vfg-fi.vfg-fi-right {
float: right;
}
.vfg-fi.vfg-fi-left {
float: left;
}
.vue-form-generator {
/** Select field */
/** End of select field */
}
.vue-form-generator .vfg-select {
display: inline-flex;
cursor: pointer;
position: relative;
user-select: none;
border: 1px solid #cdcdcd;
color: #202020;
border-radius: 5px;
width: 100%;
min-height: 30px;
background: #f4f4f4;
}
.vue-form-generator .vfg-select .vfg-select-label {
display: flex;
align-items: center;
justify-content: space-between;
flex: 1 0 70%;
align-content: center;
padding: 0.3rem 0.4rem;
}
.vue-form-generator .vfg-select .vfg-select-label.text-muted {
color: #5c5c5c;
}
.vue-form-generator .vfg-select .vfg-select-list-container {
position: absolute;
padding: 0.3rem;
top: calc(35px + 0.2rem);
left: 0;
right: 0;
background: #f4f4f4;
border-radius: 3px;
max-height: 250px;
overflow-y: auto;
z-index: 999;
}
.vue-form-generator .vfg-select .vfg-select-list-container .vfg-select-list {
border-radius: inherit;
}
.vue-form-generator .vfg-select .vfg-select-list-container .vfg-select-list .vfg-select-option {
display: flex;
align-content: center;
justify-content: space-between;
padding: 0.3rem 0.4rem;
margin-bottom: 0.1rem;
}
.vue-form-generator .vfg-select .vfg-select-list-container .vfg-select-list .vfg-select-option:first-child, .vue-form-generator .vfg-select .vfg-select-list-container .vfg-select-list .vfg-select-option:first-child:hover, .vue-form-generator .vfg-select .vfg-select-list-container .vfg-select-list .vfg-select-option:last-child, .vue-form-generator .vfg-select .vfg-select-list-container .vfg-select-list .vfg-select-option:last-child:hover {
border-radius: 3px;
}
.vue-form-generator .vfg-select .vfg-select-list-container .vfg-select-list .vfg-select-option.selected, .vue-form-generator .vfg-select .vfg-select-list-container .vfg-select-list .vfg-select-option:hover {
background: #d3d3d3;
}
.vue-form-generator .vfg-select .vfg-select-list-container .vfg-select-list .vfg-select-option:hover {
cursor: pointer;
}
.field-color-wrapper {
display: flex;
flex-direction: row-reverse;
align-items: stretch;
justify-content: start;
}
.field-color-wrapper .field-color-input {
max-width: 100px;
}
.vue-form-generator {
/** Form group */
/** Password strength */
/** Radio field */
/** Color field */
/** End of color field */
/** Simple button */
/** End of simple button */
/** Submit field */
/** Textarea field */
/** Switch field */
/** End of switch field */
}
.vue-form-generator input:not([type=checkbox],
[type=submit],
[type=radio],
[type=color],
[type=reset]),
.vue-form-generator textarea {
width: 100%;
padding: 0.3rem 0.4rem;
border-radius: 3px;
border: none;
background: #f4f4f4;
}
.vue-form-generator input:not([type=checkbox],
[type=submit],
[type=radio],
[type=color],
[type=reset])::placeholder,
.vue-form-generator textarea::placeholder {
color: grey;
}
.vue-form-generator label {
margin-bottom: 0.15rem;
}
.vue-form-generator input[type=submit], .vue-form-generator input[type=reset] {
padding: 0.3rem 0.4rem;
min-width: 100px;
}
.vue-form-generator input:focus, .vue-form-generator input:active {
padding: 0.3rem 0.4rem;
outline: none;
}
.vue-form-generator fieldset {
border: none;
}
.vue-form-generator .form-group {
margin: 0.3rem 0;
}
.vue-form-generator .form-group:has(input[required], select[required]) label:first-child::after {
content: "*";
font-size: 0.9em;
color: #ea0000;
margin-left: 0.2rem;
}
.vue-form-generator .hint {
color: #9f9f9f;
font-size: 90%;
}
.vue-form-generator .errors {
color: #ea0000;
font-size: 90%;
margin-top: 0.2rem;
margin-bottom: 0.3rem;
}
.vue-form-generator .password-strength-indicator {
transition: width 0.1s ease-in, background 0.3s ease-in;
height: 0.5em;
width: 100%;
background: rgba(0, 0, 0, 0.1);
}
.vue-form-generator .field-radio .option-wrap {
margin: 0.4rem;
}
.vue-form-generator .field-radio label {
margin-left: 0.5rem;
}
.vue-form-generator .field-color {
padding: 0;
border: none;
border-radius: 3px;
width: 45px;
}
.vue-form-generator .field-color:active, .vue-form-generator .field-color:focus {
border: none;
padding: 0;
}
.vue-form-generator .field-color:hover {
cursor: pointer;
}
.vue-form-generator button {
border-radius: 3px;
padding: 0.3rem 0.4rem;
min-width: 100px;
border: none;
}
.vue-form-generator .field-submit {
color: #efefef;
background: #007bff;
border: 1px solid #0070e6;
border-radius: 3px;
}
.vue-form-generator .field-submit:hover {
background: rgb(15.3, 130.92, 255);
}
.vue-form-generator .field-textarea:focus {
border: none;
outline: none;
}
.vue-form-generator .field-reset {
background: #e3e3e3;
border: 2px solid #d8d8d8;
color: #1b1b1b;
border-radius: 3px;
}
.vue-form-generator .field-reset:hover {
background: rgb(219.35, 219.35, 219.35);
}
.vue-form-generator .field-switch {
position: relative;
display: inline-block;
width: 53px;
height: 30px;
}
.vue-form-generator .field-switch input {
opacity: 0;
width: 0;
height: 0;
}
.vue-form-generator .field-switch input:checked + .slider {
background-color: #2196F3;
}
.vue-form-generator .field-switch input:checked + .slider:before {
-webkit-transform: translateX(22px);
-ms-transform: translateX(22px);
transform: translateX(22px);
}
.vue-form-generator .field-switch input:focus + .slider {
box-shadow: 0 0 1px #2196F3;
}
.vue-form-generator .field-switch .slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
-webkit-transition: 0.4s;
transition: 0.4s;
border-radius: 34px;
}
.vue-form-generator .field-switch .slider:before {
position: absolute;
content: "";
height: 24px;
width: 24px;
left: 4px;
bottom: 3px;
background-color: white;
-webkit-transition: 0.4s;
transition: 0.4s;
border-radius: 50%;
}
/*# sourceMappingURL=basic.css.map */