bulma/sass/layout/hero.scss
2022-11-23 23:42:03 +00:00

260 lines
4.9 KiB
SCSS

@import "../utilities/mixins";
$hero-body-padding: 3rem 1.5rem !default;
$hero-body-padding-tablet: 3rem 3rem !default;
$hero-body-padding-small: 1.5rem !default;
$hero-body-padding-medium: 9rem 4.5rem !default;
$hero-body-padding-large: 18rem 6rem !default;
$hero-colors: $colors !default;
// Main container
.#{$class-prefix}hero {
align-items: stretch;
display: flex;
flex-direction: column;
justify-content: space-between;
.#{$class-prefix}navbar {
background: none;
}
.#{$class-prefix}tabs {
ul {
border-bottom: none;
}
}
// Colors
@each $name, $pair in $hero-colors {
$color: nth($pair, 1);
$color-invert: nth($pair, 2);
&.is-#{$name} {
background-color: $color;
color: $color-invert;
a:not(.#{$class-prefix}button):not(.#{$class-prefix}dropdown-item):not(.tag):not(.#{$class-prefix}pagination-link.is-current),
strong {
color: inherit;
}
.#{$class-prefix}title {
color: $color-invert;
}
.#{$class-prefix}subtitle {
color: bulmaRgba($color-invert, 0.9);
a:not(.#{$class-prefix}button),
strong {
color: $color-invert;
}
}
.#{$class-prefix}navbar-menu {
@include touch {
background-color: $color;
}
}
.#{$class-prefix}navbar-item,
.#{$class-prefix}navbar-link {
color: bulmaRgba($color-invert, 0.7);
}
a.#{$class-prefix}navbar-item,
.#{$class-prefix}navbar-link {
&:hover,
&.is-active {
background-color: bulmaDarken($color, 5%);
color: $color-invert;
}
}
.#{$class-prefix}tabs {
a {
color: $color-invert;
opacity: 0.9;
&:hover {
opacity: 1;
}
}
li {
&.is-active a {
color: $color !important;
opacity: 1;
}
}
&.is-boxed,
&.is-toggle {
a {
color: $color-invert;
&:hover {
background-color: bulmaRgba($scheme-invert, 0.1);
}
}
li.is-active a {
&,
&:hover {
background-color: $color-invert;
border-color: $color-invert;
color: $color;
}
}
}
}
// Modifiers
@if type-of($color) == "color" {
&.is-bold {
$gradient-top-left: darken(
saturate(adjust-hue($color, -10deg), 10%),
10%
);
$gradient-bottom-right: lighten(
saturate(adjust-hue($color, 10deg), 5%),
5%
);
background-image: linear-gradient(
141deg,
$gradient-top-left 0%,
$color 71%,
$gradient-bottom-right 100%
);
@include mobile {
.#{$class-prefix}navbar-menu {
background-image: linear-gradient(
141deg,
$gradient-top-left 0%,
$color 71%,
$gradient-bottom-right 100%
);
}
}
}
}
}
}
// Sizes
&.is-small {
.#{$class-prefix}hero-body {
padding: $hero-body-padding-small;
}
}
&.is-medium {
@include tablet {
.#{$class-prefix}hero-body {
padding: $hero-body-padding-medium;
}
}
}
&.is-large {
@include tablet {
.#{$class-prefix}hero-body {
padding: $hero-body-padding-large;
}
}
}
&.is-halfheight,
&.is-fullheight,
&.is-fullheight-with-navbar {
.#{$class-prefix}hero-body {
align-items: center;
display: flex;
& > .#{$class-prefix}container {
flex-grow: 1;
flex-shrink: 1;
}
}
}
&.is-halfheight {
min-height: 50vh;
}
&.is-fullheight {
min-height: 100vh;
}
}
// Components
.#{$class-prefix}hero-video {
@extend %overlay;
overflow: hidden;
video {
left: 50%;
min-height: 100%;
min-width: 100%;
position: absolute;
top: 50%;
transform: translate3d(-50%, -50%, 0);
}
// Modifiers
&.is-transparent {
opacity: 0.3;
}
// Responsiveness
@include mobile {
display: none;
}
}
.#{$class-prefix}hero-buttons {
margin-top: 1.5rem;
// Responsiveness
@include mobile {
.#{$class-prefix}button {
display: flex;
&:not(:last-child) {
margin-bottom: 0.75rem;
}
}
}
@include tablet {
display: flex;
justify-content: center;
.#{$class-prefix}button:not(:last-child) {
@include ltr-property("margin", 1.5rem);
}
}
}
// Containers
.#{$class-prefix}hero-head,
.#{$class-prefix}hero-foot {
flex-grow: 0;
flex-shrink: 0;
}
.#{$class-prefix}hero-body {
flex-grow: 1;
flex-shrink: 0;
padding: $hero-body-padding;
@include tablet {
padding: $hero-body-padding-tablet;
}
}