- +
{showExplorer && currentContract && ( diff --git a/common/sass/mixins.scss b/common/sass/mixins.scss index d0aa6655..de1be835 100644 --- a/common/sass/mixins.scss +++ b/common/sass/mixins.scss @@ -1,5 +1,5 @@ -@import "./variables"; -@import "~bootstrap-sass/assets/stylesheets/bootstrap/mixins"; +@import './variables'; +@import '~bootstrap-sass/assets/stylesheets/bootstrap/mixins'; @mixin bg-gradient { background: $ether-navy; @@ -16,7 +16,7 @@ @mixin clearfix { &:after { - content: ""; + content: ''; display: table; clear: both; } @@ -25,7 +25,7 @@ @mixin mono { font-family: $font-family-monospace; font-weight: normal; - letter-spacing: .02em; + letter-spacing: 0.02em; } @mixin ellipsis { @@ -96,3 +96,11 @@ transition-delay: 400ms, 400ms, 300ms; } } + +@mixin input-shadow($color) { + box-shadow: inset 0 1px 1px rgba(black, 0.075), 0 0 1px rgba($color, 0.5); +} + +@mixin input-focus-shadow($color) { + box-shadow: inset 0 1px 2px rgba(black, 0.125), 0 0 1px rgba($color, 0.5); +} diff --git a/common/sass/styles.scss b/common/sass/styles.scss index 0afe5b7e..8476ca9c 100644 --- a/common/sass/styles.scss +++ b/common/sass/styles.scss @@ -1,36 +1,36 @@ // Where shared common styles live // --- BOOTSTRAP --- -@import "./variables"; -@import "./mixins"; -@import "~bootstrap-sass/assets/stylesheets/bootstrap/normalize"; -@import "~bootstrap-sass/assets/stylesheets/bootstrap/print"; -@import "~bootstrap-sass/assets/stylesheets/bootstrap/scaffolding"; -@import "~bootstrap-sass/assets/stylesheets/bootstrap/type"; -@import "~bootstrap-sass/assets/stylesheets/bootstrap/code"; -@import "~bootstrap-sass/assets/stylesheets/bootstrap/grid"; -@import "~bootstrap-sass/assets/stylesheets/bootstrap/tables"; -@import "~bootstrap-sass/assets/stylesheets/bootstrap/forms"; -@import "~bootstrap-sass/assets/stylesheets/bootstrap/buttons"; -@import "~bootstrap-sass/assets/stylesheets/bootstrap/dropdowns"; -@import "~bootstrap-sass/assets/stylesheets/bootstrap/button-groups"; -@import "~bootstrap-sass/assets/stylesheets/bootstrap/input-groups"; -@import "~bootstrap-sass/assets/stylesheets/bootstrap/alerts"; -@import "~bootstrap-sass/assets/stylesheets/bootstrap/wells"; -@import "~bootstrap-sass/assets/stylesheets/bootstrap/close"; -@import "~bootstrap-sass/assets/stylesheets/bootstrap/utilities"; -@import "~bootstrap-sass/assets/stylesheets/bootstrap/responsive-utilities"; +@import './variables'; +@import './mixins'; +@import '~bootstrap-sass/assets/stylesheets/bootstrap/normalize'; +@import '~bootstrap-sass/assets/stylesheets/bootstrap/print'; +@import '~bootstrap-sass/assets/stylesheets/bootstrap/scaffolding'; +@import '~bootstrap-sass/assets/stylesheets/bootstrap/type'; +@import '~bootstrap-sass/assets/stylesheets/bootstrap/code'; +@import '~bootstrap-sass/assets/stylesheets/bootstrap/grid'; +@import '~bootstrap-sass/assets/stylesheets/bootstrap/tables'; +@import '~bootstrap-sass/assets/stylesheets/bootstrap/forms'; +@import '~bootstrap-sass/assets/stylesheets/bootstrap/buttons'; +@import '~bootstrap-sass/assets/stylesheets/bootstrap/dropdowns'; +@import '~bootstrap-sass/assets/stylesheets/bootstrap/button-groups'; +@import '~bootstrap-sass/assets/stylesheets/bootstrap/input-groups'; +@import '~bootstrap-sass/assets/stylesheets/bootstrap/alerts'; +@import '~bootstrap-sass/assets/stylesheets/bootstrap/wells'; +@import '~bootstrap-sass/assets/stylesheets/bootstrap/close'; +@import '~bootstrap-sass/assets/stylesheets/bootstrap/utilities'; +@import '~bootstrap-sass/assets/stylesheets/bootstrap/responsive-utilities'; // --- RC SLIDER --- -@import "~rc-slider/assets/index.css"; +@import '~rc-slider/assets/index.css'; // --- React Select --- @import '~react-select/dist/react-select.css'; // --- CUSTOM --- -@import "./styles/badbrowser"; -@import "./styles/noscript"; -@import "./styles/overrides"; -@import "./styles/scaffolding"; -@import "./styles/tab"; -@import "./fonts"; +@import './styles/badbrowser'; +@import './styles/noscript'; +@import './styles/overrides'; +@import './styles/scaffolding'; +@import './styles/tab'; +@import './fonts'; diff --git a/common/sass/styles/overrides.scss b/common/sass/styles/overrides.scss index c0d586d1..a3804e4e 100644 --- a/common/sass/styles/overrides.scss +++ b/common/sass/styles/overrides.scss @@ -1,13 +1,16 @@ // This contains all of the bootstrap style overrides we do. Files should // correspond to the bootstrap filename, and be placed in the overrides/ folder -@import "./overrides/alerts"; -@import "./overrides/buttons"; -@import "./overrides/button-groups"; -@import "./overrides/dropdowns"; -@import "./overrides/forms"; -@import "./overrides/grid"; -@import "./overrides/input-groups"; -@import "./overrides/type"; +@import './overrides/alerts'; +@import './overrides/buttons'; +@import './overrides/button-groups'; +@import './overrides/dropdowns'; +@import './overrides/forms'; +@import './overrides/grid'; +@import './overrides/input-groups'; +@import './overrides/type'; + +// Other overrides +@import './overrides/react-select'; // And an override for rc-slider -@import "./overrides/rc-slider"; +@import './overrides/rc-slider'; diff --git a/common/sass/styles/overrides/forms.scss b/common/sass/styles/overrides/forms.scss index 8cae53ce..748da317 100644 --- a/common/sass/styles/overrides/forms.scss +++ b/common/sass/styles/overrides/forms.scss @@ -33,12 +33,12 @@ input[readonly] { margin-top: $space-sm; margin-bottom: $space-sm; transition: $transition; + padding: $input-padding; &:focus { border-color: $input-border-focus; outline: 0; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), - 0 0 1px rgba($brand-primary, 0.5); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 1px rgba($brand-primary, 0.5); } } @@ -63,13 +63,11 @@ select.form-control { // Custom feedback classes @mixin form-control-state($color) { border-color: lighten($color, 20%); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075) - 0 0 1px rgba($color, 0.1); + @include input-shadow($color); &:focus { border-color: lighten($color, 5%); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.125), - 0 0 1px rgba($color, 0.5); + @include input-focus-shadow($color); } } diff --git a/common/sass/styles/overrides/react-select.scss b/common/sass/styles/overrides/react-select.scss new file mode 100644 index 00000000..b9be81bb --- /dev/null +++ b/common/sass/styles/overrides/react-select.scss @@ -0,0 +1,92 @@ +// This syntax is necessary to override css styles in react-select +.Select { + font-size: 1rem; + .Select-control { + height: $input-height-base; + display: block; + box-sizing: border-box; + font-weight: 400; + border-radius: 0px; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + border: 1px solid $input-border; + transition: $transition; + &:hover { + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + border: 1px solid $input-border; + } + .Select-value { + padding-left: $input-padding-x; + padding-right: $input-padding-x; + .Select-value-label { + vertical-align: middle; + } + } + .Select-arrow-zone { + float: right; + position: relative; + top: 50%; + transform: translateY(-50%); + } + } + .Select-menu-outer { + box-sizing: content-box; + font-weight: 400; + border: 1px solid $input-border; + width: calc(100% - 1px); + } + .Select-placeholder { + color: #d3d3d3; + padding: 0px $input-padding-x; + line-height: $input-height-base; + } + .Select-input { + opacity: 0; + } + &.is-open { + .Select-control { + border: 1px solid $input-border; + } + } + &.is-focused { + &:not(.is-open):not(.is-invalid) { + .Select-control { + border-color: $brand-primary; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 1px rgba(14, 151, 192, 0.5); + } + } + } + + @mixin react-select-control-state($color) { + .Select-control { + border-color: lighten($color, 20%); + @include input-shadow($color); + } + .Select-menu-outer { + border-color: lighten($color, 20%); + @include input-shadow($color); + } + + &.is-focused { + .Select-control { + border-color: lighten($color, 5%); + @include input-focus-shadow($color); + } + .Select-menu-outer { + border-color: lighten($color, 5%); + @include input-focus-shadow($color); + } + } + } + + &.is-valid { + @include react-select-control-state($brand-success); + } + + &.is-invalid { + @include react-select-control-state($brand-danger); + } + + &.is-warning { + @include react-select-control-state($brand-warning); + } +} diff --git a/common/sass/variables/forms.scss b/common/sass/variables/forms.scss index 023c3a99..92ba05df 100644 --- a/common/sass/variables/forms.scss +++ b/common/sass/variables/forms.scss @@ -4,6 +4,9 @@ $input-color: #333333; $input-border: $gray-lighter; $input-border-focus: rgba($brand-primary, 0.6); $input-color-placeholder: darken($gray-lighter, 10%); +$input-padding-x: 1rem; +$input-padding-y: 0.75rem; +$input-padding: $input-padding-y $input-padding-x; $input-height-base: 2.55rem; $input-height-large: 4rem; @@ -20,7 +23,7 @@ $input-group-addon-border-color: $input-border; $cursor-disabled: default; $dropdown-bg: #fff; -$dropdown-border: rgba(0, 0, 0, .15); +$dropdown-border: rgba(0, 0, 0, 0.15); $dropdown-fallback-border: $gray-lighter; $dropdown-divider-bg: #e5e5e5; $dropdown-link-color: $ether-navy;