This commit is contained in:
Andrew Banchich 2022-12-09 21:59:31 -05:00
commit 59d5238af5
89 changed files with 6040 additions and 0 deletions

177
_sass/layout/_banner.scss Normal file
View file

@ -0,0 +1,177 @@
///
/// Forty by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Banner */
#banner {
@include vendor('align-items', 'center');
@include vendor('background-image', 'url("../images/banner.jpg")');
@include vendor('display', 'flex');
@include padding(4em, 0, (2em, 0, 0, 0));
background-attachment: fixed;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
border-bottom: 0 !important;
cursor: default;
height: 60vh;
margin-bottom: -3.25em;
max-height: 32em;
min-height: 22em;
position: relative;
top: -3.25em;
&:after {
@include vendor('transition', 'opacity #{_duration(banner)} ease');
@include vendor('transition-delay', '0.75s');
@include vendor('pointer-events', 'none');
background-color: _palette(bg);
content: '';
display: block;
height: 100%;
left: 0;
opacity: 0.85;
position: absolute;
top: 0;
width: 100%;
z-index: 1;
}
h1 {
font-size: 3.25em;
}
> .inner {
@include vendor('transition', (
'opacity 1.5s ease',
'transform 0.5s ease-out',
'filter 0.5s ease',
'-webkit-filter 0.5s ease'
));
padding: 0 !important;
position: relative;
z-index: 2;
.image {
display: none;
}
header {
width: auto;
> :first-child {
width: auto;
&:after {
max-width: 100%;
}
}
}
.content {
@include vendor('display', 'flex');
@include vendor('align-items', 'center');
margin: 0 0 _size(element-margin) 0;
> * {
margin-left: 1.5em;
margin-bottom: 0;
}
> :first-child {
margin-left: 0;
}
p {
font-size: 0.7em;
font-weight: _font(weight-bold);
letter-spacing: _font(letter-spacing-alt);
text-transform: uppercase;
}
}
}
&.major {
height: 75vh;
min-height: 30em;
max-height: 50em;
&.alt {
opacity: 0.75;
}
}
&.style1 { &:after { background-color: _palette(accent1); } }
&.style2 { &:after { background-color: _palette(accent2); } }
&.style3 { &:after { background-color: _palette(accent3); } }
&.style4 { &:after { background-color: _palette(accent4); } }
&.style5 { &:after { background-color: _palette(accent5); } }
&.style6 { &:after { background-color: _palette(accent6); } }
body.is-loading & {
&:after {
opacity: 1.0;
}
> .inner {
@include vendor('filter', 'blur(0.125em)');
@include vendor('transform', 'translateX(-0.5em)');
opacity: 0;
}
}
@include breakpoint(large) {
background-attachment: scroll;
}
@include breakpoint(small) {
@include padding(3em, 0, (2em, 0, 0, 0));
height: auto;
margin-bottom: -2.75em;
max-height: none;
min-height: 0;
top: -2.75em;
h1 {
font-size: 2em;
}
> .inner {
.content {
display: block;
> * {
margin-left: 0;
margin-bottom: _size(element-margin);
}
}
}
&.major {
height: auto;
min-height: 0;
max-height: none;
}
}
@include breakpoint(xsmall) {
@include padding(4em, 0, (2em, 0, 0, 0));
> .inner {
.content {
p {
br {
display: none;
}
}
}
}
&.major {
@include padding(6em, 0, (2em, 0, 0, 0));
}
}
}

View file

@ -0,0 +1,94 @@
///
/// Forty by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Contact */
#contact {
border-bottom: solid 1px _palette(border);
overflow-x: hidden;
> .inner {
@include vendor('display', 'flex');
padding: 0 !important;
> :nth-child(2n - 1) {
@include padding(4em, 0, (0, 3em, 0, 0));
border-right: solid 1px _palette(border);
width: 60%;
z-index: 1;
}
> :nth-child(2n) {
padding-left: 3em;
width: 40%;
}
> .split {
padding: 0;
> * {
@include padding(3em, 0, (0, 0, 0, 3em));
position: relative;
&:before {
border-top: solid 1px _palette(border);
content: '';
display: block;
margin-left: -3em;
position: absolute;
top: 0;
width: calc(100vw + 3em);
}
}
> :first-child {
&:before {
display: none;
}
}
}
}
@include breakpoint(medium) {
> .inner {
display: block;
> :nth-child(2n - 1) {
@include padding(4em, 0, (0, 0, 0, 0));
border-right: 0;
width: 100%;
}
> :nth-child(2n) {
padding-left: 0;
width: 100%;
}
> .split {
> * {
@include padding(3em, 0, (0, 0, 0, 0));
&:before {
}
}
> :first-child {
&:before {
display: block;
}
}
}
}
}
@include breakpoint(small) {
> .inner {
> :nth-child(2n - 1) {
@include padding(3em, 0, (0, 0, 0, 0));
}
}
}
}

42
_sass/layout/_footer.scss Normal file
View file

@ -0,0 +1,42 @@
///
/// Forty by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Footer */
#footer {
.copyright {
font-size: 0.8em;
list-style: none;
padding-left: 0;
li {
border-left: solid 1px _palette(border);
color: _palette(fg-light);
display: inline-block;
line-height: 1;
margin-left: 1em;
padding-left: 1em;
&:first-child {
border-left: 0;
margin-left: 0;
padding-left: 0;
}
}
}
@include breakpoint(xsmall) {
.copyright {
li {
display: block;
border-left: 0;
margin-left: 0;
padding-left: 0;
line-height: inherit;
}
}
}
}

248
_sass/layout/_header.scss Normal file
View file

@ -0,0 +1,248 @@
///
/// Forty by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Header */
@include keyframes('reveal-header') {
0% { top: -4em; opacity: 0; }
100% { top: 0; opacity: 1; }
}
#header {
@include vendor('display', 'flex');
background-color: _palette(bg-alt);
box-shadow: 0 0 0.25em 0 rgba(0,0,0,0.15);
cursor: default;
font-weight: _font(weight-bold);
height: 3.25em;
left: 0;
letter-spacing: _font(letter-spacing-alt);
line-height: 3.25em;
margin: 0;
position: fixed;
text-transform: uppercase;
top: 0;
width: 100%;
z-index: _misc(z-index-base);
.logo {
border: 0;
display: inline-block;
font-size: 0.8em;
height: inherit;
line-height: inherit;
padding: 0 1.5em;
strong {
@include vendor('transition', (
'background-color #{_duration(transition)} ease-in-out',
'color #{_duration(transition)} ease-in-out'
));
background-color: _palette(fg-bold);
color: _palette(bg);
display: inline-block;
line-height: 1.65em;
margin-right: 0.325em;
padding: 0 0.125em 0 (_font(letter-spacing-alt) + 0.125em);
}
&:hover {
strong {
background-color: _palette(highlight);
}
}
&:active {
strong {
background-color: desaturate(darken(_palette(highlight), 15), 5);
}
}
}
nav {
@include vendor('display', 'flex');
@include vendor('justify-content', 'flex-end');
@include vendor('flex-grow', '1');
height: inherit;
line-height: inherit;
a {
border: 0;
display: block;
font-size: 0.8em;
height: inherit;
line-height: inherit;
padding: 0 0.75em;
position: relative;
vertical-align: middle;
&:last-child {
padding-right: 1.5em;
}
&[href="#menu"] {
padding-right: 3.325em !important;
&:before, &:after {
background-image: svg-url('<svg xmlns="http://www.w3.org/2000/svg" width="24" height="32" viewBox="0 0 24 32" preserveAspectRatio="none"><style>line { stroke-width: 2px; stroke: #{_palette(fg-bold)}; }</style><line x1="0" y1="11" x2="24" y2="11" /><line x1="0" y1="21" x2="24" y2="21" /><line x1="0" y1="16" x2="24" y2="16" /></svg>');
background-position: center;
background-repeat: no-repeat;
background-size: 24px 32px;
content: '';
display: block;
height: 100%;
position: absolute;
right: 1.5em;
top: 0;
vertical-align: middle;
width: 24px;
}
&:after {
@include vendor('transition', 'opacity #{_duration(transition)} ease-in-out');
background-image: svg-url('<svg xmlns="http://www.w3.org/2000/svg" width="24" height="32" viewBox="0 0 24 32" preserveAspectRatio="none"><style>line { stroke-width: 2px; stroke: #{_palette(highlight)}; }</style><line x1="0" y1="11" x2="24" y2="11" /><line x1="0" y1="21" x2="24" y2="21" /><line x1="0" y1="16" x2="24" y2="16" /></svg>');
opacity: 0;
z-index: 1;
}
&:hover, &:active {
&:after {
opacity: 1;
}
}
&:last-child {
padding-right: 3.875em !important;
&:before, &:after {
right: 2em;
}
}
}
}
}
&.reveal {
@include vendor('animation', 'reveal-header 0.35s ease');
}
&.alt {
@include vendor('transition', 'opacity #{_duration(banner)} ease');
@include vendor('transition-delay', '0.75s');
@include vendor('animation', 'none');
background-color: transparent;
box-shadow: none;
position: absolute;
&.style1 { .logo { strong { color: _palette(accent1); } } }
&.style2 { .logo { strong { color: _palette(accent2); } } }
&.style3 { .logo { strong { color: _palette(accent3); } } }
&.style4 { .logo { strong { color: _palette(accent4); } } }
&.style5 { .logo { strong { color: _palette(accent5); } } }
&.style6 { .logo { strong { color: _palette(accent6); } } }
}
body.is-loading & {
&.alt {
opacity: 0;
}
}
@include breakpoint(xlarge) {
nav {
a {
&[href="#menu"] {
padding-right: 3.75em !important;
&:last-child {
padding-right: 4.25em !important;
}
}
}
}
}
@include breakpoint(large) {
nav {
a {
&[href="#menu"] {
padding-right: 4em !important;
&:last-child {
padding-right: 4.5em !important;
}
}
}
}
}
@include breakpoint(small) {
height: 2.75em;
line-height: 2.75em;
.logo {
padding: 0 1em;
}
nav {
a {
padding: 0 0.5em;
&:last-child {
padding-right: 1em;
}
&[href="#menu"] {
padding-right: 3.25em !important;
&:before, &:after {
right: 0.75em;
}
&:last-child {
padding-right: 4em !important;
&:before, &:after {
right: 1.5em;
}
}
}
}
}
}
@include breakpoint(xsmall) {
.logo {
span {
display: none;
}
}
nav {
a {
&[href="#menu"] {
overflow: hidden;
padding-right: 0 !important;
text-indent: 5em;
white-space: nowrap;
width: 5em;
&:before, &:after {
right: 0;
width: inherit;
}
&:last-child {
&:before, &:after {
width: 4em;
right: 0;
}
}
}
}
}
}
}

26
_sass/layout/_main.scss Normal file
View file

@ -0,0 +1,26 @@
///
/// Forty by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Main */
#main {
background-color: _palette(bg-alt);
> * {
border-top: solid 1px _palette(border);
&:first-child {
border-top: 0;
}
@include inner;
}
&.alt {
background-color: transparent;
border-bottom: solid 1px _palette(border);
}
}

171
_sass/layout/_menu.scss Normal file
View file

@ -0,0 +1,171 @@
///
/// Forty by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Menu */
#menu {
@include vendor('transition', (
'transform #{_duration(menu)} ease',
'opacity #{_duration(menu)} ease',
'visibility #{_duration(menu)}'
));
@include vendor('align-items', 'center');
@include vendor('display', 'flex');
@include vendor('justify-content', 'center');
@include vendor('pointer-events', 'none');
background: transparentize(_palette(bg), 0.1);
box-shadow: none;
height: 100%;
left: 0;
opacity: 0;
overflow: hidden;
padding: 3em 2em;
position: fixed;
top: 0;
visibility: hidden;
width: 100%;
z-index: _misc(z-index-base) + 2;
.inner {
@include vendor('transition', (
'transform #{_duration(menu)} ease-out',
'opacity #{_duration(menu)} ease',
'visibility #{_duration(menu)}'
));
@include vendor('transform', 'rotateX(20deg)');
-webkit-overflow-scrolling: touch;
max-width: 100%;
max-height: 100vh;
opacity: 0;
overflow: auto;
text-align: center;
visibility: hidden;
width: 18em;
> :first-child {
margin-top: _size(element-margin);
}
> :last-child {
margin-bottom: (_size(element-margin) * 1.5);
}
}
ul {
margin: 0 0 (_size(element-margin) * 0.5) 0;
&.links {
list-style: none;
padding: 0;
> li {
padding: 0;
> a:not(.button) {
border: 0;
border-top: solid 1px _palette(border);
display: block;
font-size: 0.8em;
font-weight: _font(weight-bold);
letter-spacing: _font(letter-spacing-alt);
line-height: 4em;
text-decoration: none;
text-transform: uppercase;
}
> .button {
display: block;
margin: 0.5em 0 0 0;
}
&:first-child {
> a:not(.button) {
border-top: 0 !important;
}
}
}
}
}
.close {
@include vendor('transition', 'color #{_duration(transition)} ease-in-out');
-webkit-tap-highlight-color: rgba(0,0,0,0);
border: 0;
cursor: pointer;
display: block;
height: 4em;
line-height: 4em;
overflow: hidden;
padding-right: 1.25em;
position: absolute;
right: 0;
text-align: right;
text-indent: 8em;
top: 0;
vertical-align: middle;
white-space: nowrap;
width: 8em;
&:before, &:after {
@include vendor('transition', 'opacity #{_duration(transition)} ease-in-out');
background-position: center;
background-repeat: no-repeat;
content: '';
display: block;
height: 4em;
position: absolute;
right: 0;
top: 0;
width: 4em;
}
&:before {
background-image: svg-url('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20px" height="20px" viewBox="0 0 20 20" zoomAndPan="disable"><style>line { stroke: #{_palette(fg-bold)}; stroke-width: 2; }</style><line x1="0" y1="0" x2="20" y2="20" /><line x1="20" y1="0" x2="0" y2="20" /></svg>');
}
&:after {
background-image: svg-url('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20px" height="20px" viewBox="0 0 20 20" zoomAndPan="disable"><style>line { stroke: #{_palette(highlight)}; stroke-width: 2; }</style><line x1="0" y1="0" x2="20" y2="20" /><line x1="20" y1="0" x2="0" y2="20" /></svg>');
opacity: 0;
}
&:hover, &:active {
&:after {
opacity: 1;
}
}
}
}
body.is-ie {
#menu {
background: transparentize(_palette(bg-alt), 0.025);
}
}
body.is-menu-visible {
#wrapper {
-webkit-backface-visibility: hidden;
-webkit-perspective: 1000;
-webkit-transform: translate3d(0,0,0);
-webkit-transform: translateZ(0);
backface-visibility: hidden;
perspective: 1000;
transform: translate3d(0,0,0);
transform: translateZ(0);
}
#menu {
@include vendor('pointer-events', 'auto');
opacity: 1;
visibility: visible;
.inner {
@include vendor('transform', 'none');
opacity: 1;
visibility: visible;
}
}
}

View file

@ -0,0 +1,28 @@
///
/// Forty by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Wrapper */
#wrapper {
@include vendor('transition', (
'filter #{_duration(menu)} ease',
'-webkit-filter #{_duration(menu)} ease',
'opacity 0.375s ease-out'
));
padding-top: 3.25em;
&.is-transitioning {
opacity: 0;
}
> * {
@include inner;
}
@include breakpoint(small) {
padding-top: 2.75em;
}
}