Files
old-frontend/src/form.sass
Senad Uka 144bba6428 v0.1
2023-10-15 15:06:13 +02:00

292 lines
5.0 KiB
Sass

// colors
$bg: #171714
$vibrant: #E8474C
$text: white
$label: white
$border: transparent
$static: #222222
$focus: #4E4E4E
$active: white
$inactive: #4E4E4E
$error: #E8474C
html
-webkit-font-smoothing: antialiased
body
background-color: $bg
font-family: 'Titillium Web', sans-serif
@media screen and (min-width: 40em)
font-size: 1.25em
%block
padding: .75em 1em
appearance: none
outline: none
line-height: normal
border-radius: 0
border: none
background: none
display: block
%label
@extend %block
font-weight: bold
color: $label
padding:
top: 0
left: 0
letter-spacing: .025em
font-size: 1.125em
line-height: 1.25
position: relative
z-index: 100
.required &:after
content: '\0020*'
color: $error
font-weight: normal
font-size: .75em
vertical-align: top
=stripes($color1: #555, $color2: transparent, $angle: 0deg, $stripe1-width: 25px, $stripe2-width: null)
@if $stripe2-width == null
$stripe2-width: $stripe1-width
$tile-size: ($stripe1-width + $stripe2-width) * 2
$stripe2-start: $stripe1-width / $tile-size * 100%
$stripe3-start: $stripe2-start + $stripe2-width / $tile-size * 100%
$stripe4-start: $stripe3-start + $stripe1-width / $tile-size * 100%
background-size: $tile-size $tile-size
background-image: linear-gradient($angle, $color1, $color1 $stripe2-start, $color2 $stripe2-start, $color2 $stripe3-start, $color1 $stripe3-start, $color1 $stripe4-start, $color2 $stripe4-start, $color2)
background-repeat: repeat
%input
@extend %block
font: inherit
line-height: normal
width: 100%
box-sizing: border-box
background: $static
color: white
position: relative
&:placeholder
color: $label
&:-webkit-autofill
box-shadow: 0 0 0px 1000px $bg inset
-webkit-text-fill-color: white
border-top-color: $bg
border-left-color: $bg
border-right-color: $bg
&.required, &[required]
&:not(:focus):not(:active)
&.error, .error &
+stripes(rgba($vibrant,.5), transparent, 135deg, 2px, 2px)
&:active, &:focus
@extend %input-active
%input-active
.form:not(.has-magic-focus) &
background: $focus
%error
@extend %block
// color: red
position: absolute
bottom: 0
right: 0
z-index: 100
font-size: .625em
color: $label
%checkbox
border: 0
clip: rect(0 0 0 0)
height: 1px
margin: -1px
overflow: hidden
padding: 0
position: absolute
width: 1px
+ label
@extend %input
display: inline-block
width: auto
color: $inactive
position: relative
user-select: none
cursor: pointer
&:focus, &:active
+ label
color: $focus
&:checked
+ label
color: $active
// &:focus, &:active
// + label:before
// box-shadow: inset 0px 0px 0px .5em $focus
// color: $active
%option
+ label
// &:before
// border-radius: 50%
// &:after
// top: 1px
// left: 1px
// width: 1em
// height: 1em
// box-sizing: border-box
// border: 3px solid $bg
// border-radius: 50%
// transform: none
%button
@extend %block
font: inherit
// font-size: 1em
line-height: normal
cursor: pointer
background: $vibrant
color: white
font-weight: bold
width: auto
margin-left: auto
font-weight: bold
padding:
left: 2em
right: 2em
&:hover, &:focus, &:active
color: white
border-color: white
&:active
position: relative
top: 1px
left: 1px
body
padding: 2em
.form
max-width: 40em
margin: 0 auto
position: relative
display: flex
flex-flow: row wrap
justify-content: space-between
align-items: flex-end
.field
width: 100%
margin: 0 0 1.5em 0
&.half
@media screen and (min-width: 40em)
width: calc(50% - 1px)
&.last
margin-left: auto
.text-input
@extend %input
.textarea
@extend %input
max-width: 100%
.button
@extend %button
.label
@extend %label
.message
@extend %error
.select
@extend %input
text-indent: 0.01px
text-overflow: ""!important
&::-ms-expand
display: none
.checkboxes, .options
padding: 0
margin: 0
list-style-type: none
overflow: hidden
.checkbox, .option
float: left
margin: 1px
.checkbox-input
@extend %checkbox
.option-input
@extend %checkbox
// @extend %option
.customSelect
@extend %input
pointer-events: none
&:after
content: ''
pointer-events: none
width: .5em
height: .5em
border-style: solid
border-color: $label
border-width: 0 3px 3px 0
position: absolute
top: 50%
margin-top: -.625em
right: 1em
transform-origin: 0 0
transform: rotate(45deg)
&.customSelectHover
&.customSelectOpen
&.customSelectFocus
@extend %input-active
&:after
border-color: white
.customSelectInner
.magic-focus
position: absolute
z-index: 0
width: 0
// height: 0
pointer-events: none
background: rgba(white,.15)
transition: top .2s, left .2s, width .2s
backface-visibility: hidden
transform-style: preserve-3d
will-change: top, left, width
transform-origin: 0 0