fradrive/frontend/src/utils/inputs/inputs.sass
2022-10-12 09:35:16 +02:00

308 lines
5.8 KiB
Sass

// SPDX-FileCopyrightText: 2022 Gregor Kleen <gregor.kleen@ifi.lmu.de>
//
// SPDX-License-Identifier: AGPL-3.0-or-later
// SPDX-License-Identifier: LicenseRef-Fraport-Corporate-Design
@use "../../app" as *
// GENERAL STYLES FOR FORMS
// FORM GROUPS
.form-section-title
color: var(--color-fontsec)
margin: 0
+ .form-group
margin-top: 11px
.form-group
position: relative
display: flex
display: grid
grid-template-columns: 1fr 3fr
grid-gap: 5px
justify-content: flex-start
align-items: flex-start
+ .form-group, + .form-section-legend, + .form-section-notification
margin-top: 11px
+ .form-section-title
margin-top: 40px
.form-section-legend
@extend .explanation
margin: 7px 0
.form-group__hint, .form-section-title__hint
color: var(--color-fontsec)
font-size: 0.9rem
font-weight: 600
.form-section-title__hint
margin-top: 7px
+ .form-group
margin-top: 11px
.form-group-label
font-weight: 600
padding-top: 6px
.form-group-label__hint
margin-top: 7px
color: var(--color-fontsec)
font-size: 0.9rem
.form-group--required > .form-group-label > .form-group-label__caption::after, .form-group__required-marker::before
content: ' *'
color: var(--color-error)
font-weight: 600
font-style: normal
.form-group--potentially-required > .form-group-label > .form-group-label__caption::after, .form-group__potentially-required-marker::before
content: ''
color: var(--color-warning)
font-weight: 600
font-style: normal
vertical-align: super
font-size: 80%
.form-group--submit .form-group__input
grid-column: 2
@media (max-width: 768px)
.form-group--submit .form-group__input
grid-column: 1
.form-group--has-error
background-color: rgba(140, 7, 7, 0.05)
.form-group-label
border-left: 2px solid var(--color-error)
align-self: stretch
padding-left: 7px
input, textarea
border-color: var(--color-error) !important
.form-error
display: block
font-weight: 600
color: var(--color-error)
margin: 7px 0
white-space: pre-wrap
.form-error
display: none
.standalone-field
display: inline-flex
&__error
display: none
align-self: center
flex: 0 0 auto
.tooltip__content
font-weight: 600
color: var(--color-error)
white-space: pre-wrap
&--has-error
input, textarea
border-color: var(--color-error) !important
.standalone-field__error
display: block
@media (max-width: 768px)
.form-group
grid-template-columns: 1fr
align-items: baseline
margin-top: 17px
flex-direction: column
// TEXT INPUTS
input[type='text'],
input[type='search'],
input[type='password'],
input[type='url'],
input[type='number'],
input[type='email'],
input[type*='date'],
input[type*='time'],
select
// from bulma.css
color: #363636
border-color: #dbdbdb
background-color: #f3f3f3
box-shadow: inset 0 1px 2px 1px rgba(50, 50, 50, 0.05)
width: 100%
max-width: 600px
align-items: center
border: 1px solid transparent
border-radius: 4px
font-size: 1rem
font-family: var(--font-base)
line-height: 1.5
padding: 4px 13px
input[type='number']
width: 100px
input[type*='date'],
input[type*='time'],
.flatpickr-input[type='text']
width: 50%
width: 250px
// BUTTON STYLE SEE default-layout.lucius
// TEXTAREAS
textarea
width: 100%
height: 170px
max-width: 600px
line-height: 1.5
color: #363636
background-color: #f3f3f3
padding: 4px 13px
font-size: 1rem
font-family: var(--font-base)
appearance: none
border: 1px solid #dbdbdb
border-radius: 2px
box-shadow: inset 0 1px 2px 1px rgba(50, 50, 50, 0.05)
vertical-align: top
// SHARED STATE RELATED STYLES
input,
select,
textarea
&:focus
border-color: #3273dc
box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25)
outline: 0
&[disabled]
background-color: #f3f3f3
color: #7a7a7a
box-shadow: none
border-color: #dbdbdb
&[readonly]
background-color: #f5f5f5
border-color: #dbdbdb
// OPTIONS
select[size="1"], select:not([size])
appearance: menulist
select,
option
font-size: 1rem
line-height: 1.5
padding: 4px 13px
border: 1px solid #dbdbdb
border-radius: 2px
outline: 0
color: #363636
min-width: 250px
width: auto
background-color: #f3f3f3
box-shadow: inset 0 1px 2px 1px rgba(50, 50, 50, 0.05)
@media (max-width: 425px)
select, option
width: 100%
// FILE INPUT
.file-input
display: none
.file-input__label
cursor: pointer
display: inline-block
background-color: var(--color-primary)
color: white
padding: 10px 17px
border-radius: 3px
.file-input__info
font-size: .9rem
font-style: italic
margin: 10px 0
color: var(--color-fontsec)
.file-input__list-wrapper
overflow: auto
max-height: 75vh
max-width: 30vw
.file-input__list
margin-left: 40px
margin-top: 10px
font-weight: 600
tr:last-child td
padding-bottom: 0
.file-input__list-item
font-family: var(--font-monospace)
font-size: 15px
word-break: break-all
// PREVIOUSLY UPLOADED FILES
.file-uploads-label
margin-bottom: 10px
.file-container
display: flex
align-items: center
margin-bottom: 10px
.checkbox
margin-left: 12px
.form--vertical .form-group__input
grid-column: unset
grid-row: 2
.form-group.form--vertical
grid-template: auto auto / auto
.form--vertical__cell
vertical-align: top
// PASSWORD INPUT
.password-input__wrapper
display: grid
grid-template-areas: 'input toggle'
width: 100%
max-width: 600px
grid-template-rows: auto
grid-template-columns: 1fr auto
.password-input__input
grid-area: input
.password-input__toggle
grid-area: toggle
display: flex
justify-content: center
align-content: center
flex-direction: column
padding: 7px
cursor: pointer
color: var(--color-fontsec)
&:hover
color: var(--color-font)