From 3c02dc1c0cd480fc11647ec0f7900d4034a00cc4 Mon Sep 17 00:00:00 2001 From: Jason McCormick Date: Thu, 9 Oct 2025 12:49:05 -0400 Subject: initial add --- assets/sass/layout/_bg.scss | 68 ++++++++++ assets/sass/layout/_footer.scss | 37 ++++++ assets/sass/layout/_header.scss | 261 +++++++++++++++++++++++++++++++++++++++ assets/sass/layout/_main.scss | 102 +++++++++++++++ assets/sass/layout/_wrapper.scss | 36 ++++++ 5 files changed, 504 insertions(+) create mode 100644 assets/sass/layout/_bg.scss create mode 100644 assets/sass/layout/_footer.scss create mode 100644 assets/sass/layout/_header.scss create mode 100644 assets/sass/layout/_main.scss create mode 100644 assets/sass/layout/_wrapper.scss (limited to 'assets/sass/layout') diff --git a/assets/sass/layout/_bg.scss b/assets/sass/layout/_bg.scss new file mode 100644 index 0000000..3bbbceb --- /dev/null +++ b/assets/sass/layout/_bg.scss @@ -0,0 +1,68 @@ +/// +/// Dimension by HTML5 UP +/// html5up.net | @ajlkn +/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) +/// + +/* BG */ + + #bg { + @include vendor('transform', 'scale(1.0)'); + -webkit-backface-visibility: hidden; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100vh; + z-index: 1; + + &:before, &:after { + content: ''; + display: block; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + } + + &:before { + @include vendor('transition', 'background-color #{_duration(bg)} ease-in-out'); + @include vendor('transition-delay', '#{_duration(intro)}'); + background-image: linear-gradient(to top, #{_palette(bg-overlay)}, #{_palette(bg-overlay)}), + url('../../images/overlay.png'); + background-size: auto, + 256px 256px; + background-position: center, + center; + background-repeat: no-repeat, + repeat; + z-index: 2; + } + + &:after { + @include vendor('transform', 'scale(1.125)'); + @include vendor('transition', ( + 'transform #{_duration(article)} ease-in-out', + 'filter #{_duration(article)} ease-in-out' + )); + background-image: url('../../images/bg.webp'); + background-position: center; + background-size: cover; + background-repeat: no-repeat; + z-index: 1; + } + + body.is-article-visible & { + &:after { + @include vendor('transform', 'scale(1.0825)'); + @include vendor('filter', 'blur(0.2rem)'); + } + } + + body.is-preload & { + &:before { + background-color: _palette(bg-alt); + } + } + } \ No newline at end of file diff --git a/assets/sass/layout/_footer.scss b/assets/sass/layout/_footer.scss new file mode 100644 index 0000000..b87cc7a --- /dev/null +++ b/assets/sass/layout/_footer.scss @@ -0,0 +1,37 @@ +/// +/// Dimension by HTML5 UP +/// html5up.net | @ajlkn +/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) +/// + +/* Footer */ + + #footer { + @include vendor('transition', ( + 'transform #{_duration(article)} ease-in-out', + 'filter #{_duration(article)} ease-in-out', + 'opacity #{_duration(article)} ease-in-out', + )); + width: 100%; + max-width: 100%; + margin-top: 2rem; + text-align: center; + + .copyright { + letter-spacing: _font(letter-spacing); + font-size: 0.6rem; + opacity: 0.75; + margin-bottom: 0; + text-transform: uppercase; + } + + body.is-article-visible & { + @include vendor('transform', 'scale(0.95)'); + @include vendor('filter', 'blur(0.1rem)'); + opacity: 0; + } + + body.is-preload & { + opacity: 0; + } + } \ No newline at end of file diff --git a/assets/sass/layout/_header.scss b/assets/sass/layout/_header.scss new file mode 100644 index 0000000..52b3ce5 --- /dev/null +++ b/assets/sass/layout/_header.scss @@ -0,0 +1,261 @@ +/// +/// Dimension by HTML5 UP +/// html5up.net | @ajlkn +/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) +/// + +/* Header */ + + #header { + @include vendor('display', 'flex'); + @include vendor('flex-direction', 'column'); + @include vendor('align-items', 'center'); + @include vendor('transition', ( + 'transform #{_duration(article)} ease-in-out', + 'filter #{_duration(article)} ease-in-out', + 'opacity #{_duration(article)} ease-in-out', + )); + background-image: -moz-radial-gradient(rgba(0,0,0,0.25) 25%, rgba(0,0,0,0) 55%); + background-image: -webkit-radial-gradient(rgba(0,0,0,0.25) 25%, rgba(0,0,0,0) 55%); + background-image: -ms-radial-gradient(rgba(0,0,0,0.25) 25%, rgba(0,0,0,0) 55%); + background-image: radial-gradient(rgba(0,0,0,0.25) 25%, rgba(0,0,0,0) 55%); + max-width: 100%; + text-align: center; + + > * { + @include vendor('transition', 'opacity #{_duration(article)} ease-in-out'); + position: relative; + margin-top: 3.5rem; + + &:before { + content: ''; + display: block; + position: absolute; + top: calc(-3.5rem - 1px); + left: calc(50% - #{_size(border-width) * 1}); + width: _size(border-width); + height: calc(3.5rem + 1px); + background: _palette(border); + } + } + + > :first-child { + margin-top: 0; + + &:before { + display: none; + } + } + + .logo { + width: 5.5rem; + height: 5.5rem; + line-height: 5.5rem; + border: solid _size(border-width) _palette(border); + border-radius: 100%; + + .icon { + &:before { + font-size: 2rem; + } + } + } + + .content { + border-style: solid; + border-color: _palette(border); + border-top-width: _size(border-width); + border-bottom-width: _size(border-width); + max-width: 100%; + + .inner { + @include vendor('transition', ( + 'max-height #{_duration(intro)} ease', + 'padding #{_duration(intro)} ease', + 'opacity #{_duration(article)} ease-in-out' + )); + @include vendor('transition-delay', '0.25s'); + padding: 3rem 2rem; + max-height: 40rem; + overflow: hidden; + + > :last-child { + margin-bottom: 0; + } + } + + p { + text-transform: uppercase; + letter-spacing: _font(letter-spacing); + font-size: 0.8rem; + line-height: 2; + } + } + + nav { + ul { + @include vendor('display', 'flex'); + margin-bottom: 0; + list-style: none; + padding-left: 0; + border: solid _size(border-width) _palette(border); + border-radius: _size(border-radius); + + li { + padding-left: 0; + border-left: solid _size(border-width) _palette(border); + + &:first-child { + border-left: 0; + } + + a { + display: block; + min-width: 7.5rem; + height: 2.75rem; + line-height: 2.75rem; + padding: 0 1.25rem 0 (1.25rem + _font(letter-spacing)); + text-transform: uppercase; + letter-spacing: _font(letter-spacing); + font-size: 0.8rem; + border-bottom: 0; + + &:hover { + background-color: _palette(border-bg); + } + + &:active { + background-color: _palette(border-bg-alt); + } + } + } + } + + &.use-middle { + &:after { + content: ''; + display: block; + position: absolute; + top: 0; + left: calc(50% - #{_size(border-width) * 1}); + width: _size(border-width); + height: 100%; + background: _palette(border); + } + + ul { + li { + &.is-middle { + border-left: 0; + } + } + } + } + } + + body.is-article-visible & { + @include vendor('transform', 'scale(0.95)'); + @include vendor('filter', 'blur(0.1rem)'); + opacity: 0; + } + + body.is-preload & { + > * { + opacity: 0; + } + + @include vendor('filter', 'blur(0.125rem)'); + + .content { + .inner { + max-height: 0; + padding-top: 0; + padding-bottom: 0; + opacity: 0; + } + } + } + + @include breakpoint('<=medium') { + .content { + p { + br { + display: none; + } + } + } + } + + @include breakpoint('<=small') { + > * { + margin-top: 2rem; + + &:before { + top: calc(-2rem - 1px); + height: calc(2rem + 1px); + } + } + + .logo { + width: 4.75rem; + height: 4.75rem; + line-height: 4.75rem; + + .icon { + &:before { + font-size: 1.75rem; + } + } + } + + .content { + .inner { + padding: 2.5rem 1rem; + } + + p { + line-height: 1.875; + } + } + } + + @include breakpoint('<=xsmall') { + padding: 1.5rem 0; + + .content { + .inner { + padding: 2.5rem 0; + } + } + + nav { + ul { + @include vendor('flex-direction', 'column'); + min-width: 10rem; + max-width: 100%; + + li { + border-left: 0; + border-top: solid _size(border-width) _palette(border); + + &:first-child { + border-top: 0; + } + + a { + height: 3rem; + line-height: 3rem; + min-width: 0; + width: 100%; + } + } + } + + &.use-middle { + &:after { + display: none; + } + } + } + } + } \ No newline at end of file diff --git a/assets/sass/layout/_main.scss b/assets/sass/layout/_main.scss new file mode 100644 index 0000000..0588446 --- /dev/null +++ b/assets/sass/layout/_main.scss @@ -0,0 +1,102 @@ +/// +/// Dimension by HTML5 UP +/// html5up.net | @ajlkn +/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) +/// + +/* Main */ + + #main { + @include vendor('flex-grow', '1'); + @include vendor('flex-shrink', '1'); + @include vendor('display', 'flex'); + @include vendor('align-items', 'center'); + @include vendor('justify-content', 'center'); + @include vendor('flex-direction', 'column'); + position: relative; + max-width: 100%; + z-index: 3; + + article { + @include vendor('transform', 'translateY(0.25rem)'); + @include vendor('transition', ( + 'opacity #{_duration(article)} ease-in-out', + 'transform #{_duration(article)} ease-in-out' + )); + @include padding(2.5rem, 2.5rem, (2rem, 0, 1rem, 0)); + position: relative; + width: 40rem; + max-width: 100%; + background-color: transparentize(_palette(bg), 0.15); + border-radius: _size(border-radius); + opacity: 0; + + &.active { + @include vendor('transform', 'translateY(0)'); + opacity: 1; + } + + .close { + display: block; + position: absolute; + top: 0; + right: 0; + width: 4rem; + height: 4rem; + cursor: pointer; + text-indent: 4rem; + overflow: hidden; + white-space: nowrap; + + &:before { + @include vendor('transition', 'background-color #{_duration(transition)} ease-in-out'); + content: ''; + display: block; + position: absolute; + top: 0.75rem; + left: 0.75rem; + width: 2.5rem; + height: 2.5rem; + border-radius: 100%; + background-position: center; + background-image: svg-url(''); + background-size: 20px 20px; + background-repeat: no-repeat; + } + + &:hover { + &:before { + background-color: _palette(border-bg); + } + } + + &:active { + &:before { + background-color: _palette(border-bg-alt); + } + } + } + } + + @include breakpoint('<=small') { + article { + @include padding(2rem, 2rem, (1.5rem, 0, 0.5rem, 0)); + + .close { + &:before { + top: 0.875rem; + left: 0.875rem; + width: 2.25rem; + height: 2.25rem; + background-size: 14px 14px; + } + } + } + } + + @include breakpoint('<=xsmall') { + article { + @include padding(2rem, 1.5rem, (1rem, 0, 0.5rem, 0)); + } + } + } \ No newline at end of file diff --git a/assets/sass/layout/_wrapper.scss b/assets/sass/layout/_wrapper.scss new file mode 100644 index 0000000..9a8c9ca --- /dev/null +++ b/assets/sass/layout/_wrapper.scss @@ -0,0 +1,36 @@ +/// +/// Dimension 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('display', 'flex'); + @include vendor('flex-direction', 'column'); + @include vendor('align-items', 'center'); + @include vendor('justify-content', 'space-between'); + position: relative; + min-height: 100vh; + width: 100%; + padding: 4rem 2rem; + z-index: 3; + + &:before { + content: ''; + display: block; + } + + @include breakpoint('<=xlarge') { + padding: 3rem 2rem; + } + + @include breakpoint('<=small') { + padding: 2rem 1rem; + } + + @include breakpoint('<=xsmall') { + padding: 1rem; + } + } \ No newline at end of file -- cgit v1.2.3