diff --git a/.eleventy.js b/.eleventy.js
index e6a57d0..55bbc16 100644
--- a/.eleventy.js
+++ b/.eleventy.js
@@ -1,4 +1,5 @@
const pluginRss = require('@11ty/eleventy-plugin-rss')
+require('dotenv').config()
module.exports = function (eleventyConfig) {
const { DateTime } = require('luxon')
@@ -36,6 +37,9 @@ module.exports = function (eleventyConfig) {
eleventyConfig.setLibrary('md', markdownIt)
+ const isDevelopment = process.env.NODE_ENV === 'development';
+ eleventyConfig.addGlobalData("isDevelopment", isDevelopment);
+
eleventyConfig.addPlugin(pluginRss, {
posthtmlRenderOptions: {
closingSingleTag: 'default',
@@ -85,10 +89,15 @@ module.exports = function (eleventyConfig) {
const [year, ...title] = titleParts
const titleInitials = title.map(title => title.split('')[0]).join('')
const yearSuffix = year.slice(-yearSplice)
-
+
return `${yearSuffix}-${titleInitials}`
})
+ eleventyConfig.addFilter("development", (link) => {
+ console.log(isDevelopment)
+ return isDevelopment ? "/" : link;
+ });
+
eleventyConfig.addFilter('breakLine', (string, cutAt = 3, maxSize = 30) => {
const titleWords = string.split(' ')
const titleLength = string.length
@@ -97,7 +106,7 @@ module.exports = function (eleventyConfig) {
const hasTitleRemaining = !!titleRemaining
const formattedTitleWithBreak = hasTitleRemaining ? `${titlePreview}
${titleRemaining}` : titlePreview
-
+
const returnTitle = titleLength <= maxSize || !hasTitleRemaining ? string : formattedTitleWithBreak
return returnTitle
})
diff --git a/.gitignore b/.gitignore
index 110ebec..427103d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
# dependencies
/node_modules
+.env
# public files
/public
diff --git a/archives/error.scss b/archives/error.scss
new file mode 100644
index 0000000..9780e4e
--- /dev/null
+++ b/archives/error.scss
@@ -0,0 +1,14 @@
+@import './modules/vars';
+@import './modules/mixin';
+@import './modules/global';
+
+@import './modules/component/preload';
+
+@import './modules/header';
+@import './modules/component/nav';
+@import './modules/component/title';
+@import './modules/main';
+@import './modules/footer';
+
+@import './modules/component/contact';
+@import './modules/component/error';
diff --git a/src/assets/scss/modules/_footer.scss b/archives/modules/_footer.scss
similarity index 94%
rename from src/assets/scss/modules/_footer.scss
rename to archives/modules/_footer.scss
index bc5dc42..0c2cf20 100644
--- a/src/assets/scss/modules/_footer.scss
+++ b/archives/modules/_footer.scss
@@ -1,70 +1,70 @@
-.footer {
- background-color: var(--clr-background);
- color: var(--clr-foreground);
- padding: 0.8rem;
-
- .brand {
- display: flex;
- gap: 0.5rem;
- width: max-content;
-
- &-title {
- font-size: 1.3rem;
- font-weight: 700;
- }
-
- &-logo {
- display: flex;
- align-items: center;
- }
- }
-
- &-top {
- padding: 0.8rem;
- padding-top: 3rem;
- font-size: 2rem;
- max-width: 35ch;
- line-height: 1.2;
- position: relative;
- isolation: isolate;
-
- &::before {
- content: '"';
- position: absolute;
- font-size: 4em;
- left: 0;
- top: 0;
- color: var(--clr-background-800);
- font-weight: 600;
- user-select: none;
- z-index: -1;
- }
- }
-
- &-bottom {
- padding: 0.8rem;
- text-align: left;
- display: flex;
- flex-direction: column;
- gap: 0.3em;
- }
-
- &-container {
- max-width: 64rem;
- margin: 0 auto;
- }
-
- .copyright {
- font-size: 0.9rem;
- margin: 1rem auto;
- text-align: left;
- border: 0.0625rem solid var(--clr-foreground);
- width: 100%;
- max-width: max-content;
- padding: 0.2rem 2rem;
-
- @include breakpoint-up('medium') {
- flex-direction: row;
- }
- }
-}
+.footer {
+ background-color: var(--clr-background);
+ color: var(--clr-foreground);
+ padding: 0.8rem;
+
+ .brand {
+ display: flex;
+ gap: 0.5rem;
+ width: max-content;
+
+ &-title {
+ font-size: 1.3rem;
+ font-weight: 700;
+ }
+
+ &-logo {
+ display: flex;
+ align-items: center;
+ }
+ }
+
+ &-top {
+ padding: 0.8rem;
+ padding-top: 3rem;
+ font-size: 2rem;
+ max-width: 35ch;
+ line-height: 1.2;
+ position: relative;
+ isolation: isolate;
+
+ &::before {
+ content: '"';
+ position: absolute;
+ font-size: 4em;
+ left: 0;
+ top: 0;
+ color: var(--clr-background-800);
+ font-weight: 600;
+ user-select: none;
+ z-index: -1;
+ }
+ }
+
+ &-bottom {
+ padding: 0.8rem;
+ text-align: left;
+ display: flex;
+ flex-direction: column;
+ gap: 0.3em;
+ }
+
+ &-container {
+ max-width: 64rem;
+ margin: 0 auto;
+ }
+
+ .copyright {
+ font-size: 0.9rem;
+ margin: 1rem auto;
+ text-align: left;
+ border: 0.0625rem solid var(--clr-foreground);
+ width: 100%;
+ max-width: max-content;
+ padding: 0.2rem 2rem;
+
+ @include breakpoint-up('medium') {
+ flex-direction: row;
+ }
+ }
+}
diff --git a/src/assets/scss/modules/_global.scss b/archives/modules/_global.scss
similarity index 94%
rename from src/assets/scss/modules/_global.scss
rename to archives/modules/_global.scss
index 67e40a1..93455cf 100644
--- a/src/assets/scss/modules/_global.scss
+++ b/archives/modules/_global.scss
@@ -1,163 +1,163 @@
-html {
- scroll-behavior: smooth;
- scroll-padding-top: 10rem;
- scroll-padding-bottom: 10rem;
-}
-
-html:root {
- .themes {
- background-color: #ffc107;
- color: #7e620e;
- }
-
- [data-moon] {
- display: none;
- }
-
- [data-sun] {
- display: block;
- }
-
- &[data-theme="dark"] {
- .themes {
- background-color: var(--clr-accent);
- color: var(--clr-accent-dark);
- }
-
- [data-sun] {
- display: none;
- }
-
- [data-moon] {
- display: block;
- }
- }
-}
-
-*,
-*:is(::after, ::before) {
- box-sizing: border-box;
- margin: 0;
- padding: 0;
-}
-
-body {
- display: flex;
- flex-direction: column;
- min-height: 100vh;
- background-color: var(--clr-background-900);
- font-family: 'Montserrat', sans-serif;
- color: var(--clr-foreground);
- line-height: 1.6;
- overflow-x: hidden;
-}
-
-a,
-a:is(:active, :hover, :focus-visible) {
- color: inherit;
- text-decoration: none;
-}
-
-a:is(:hover, :focus-visible) {
- color: var(--clr-accent);
-}
-
-a[href] {
- position: relative;
-
- .new-tab-warning {
- position: absolute;
- width: max-content;
- background-color: hsl(0, 0%, 13%);
- font-weight: normal;
- letter-spacing: normal;
- color: var(--clr-white) !important;
- padding: 0.3rem;
- font-size: 0.7rem;
- border-radius: 0.3rem;
- margin-top: 0.5rem;
- top: 100%;
- left: 0;
- visibility: hidden;
- pointer-events: none;
- text-transform: capitalize;
- transition: all 300ms ease-out;
- translate: 0 -0.3rem;
- z-index: 90;
- user-select: none;
- }
-
- &:focus-visible {
- .new-tab-warning {
- visibility: visible;
- translate: 0 0;
- }
- }
-}
-
-::selection {
- background-color: var(--clr-accent);
- color: var(--clr-white);
-}
-
-.t-all {
- transition: all 300ms ease-in;
-}
-
-.no-scroll {
- @include breakpoint-down('small') {
- overflow: hidden !important;
-
- :is(header, main, footer) {
- visibility: hidden;
- user-select: none;
- }
- }
-}
-
-.not-loaded {
- overflow: hidden;
-
- :is(header, main, footer, nav) {
- visibility: hidden;
- user-select: none;
- }
-}
-
-:is(ul, li) {
- margin: 0;
- padding: 0;
-}
-
-li {
- list-style: none;
-}
-
-*:focus-visible {
- outline: 0.125rem solid var(--clr-accent-dark);
-}
-
-.highlight {
- background-color: var(--clr-black);
- padding: 0.2rem 0.6rem;
- color: var(--clr-white);
-
- &:is(:hover, :focus) {
- color: var(--clr-white);
- }
-}
-
-.header-link__access {
- text-decoration: none !important;
-}
-
-.sr-only {
- border: 0;
- clip: rect(0 0 0 0);
- height: 0.0625rem;
- margin: -0.0625rem;
- overflow: hidden;
- padding: 0;
- position: absolute;
- width: 0.0625rem;
+html {
+ scroll-behavior: smooth;
+ scroll-padding-top: 10rem;
+ scroll-padding-bottom: 10rem;
+}
+
+html:root {
+ .themes {
+ background-color: #ffc107;
+ color: #7e620e;
+ }
+
+ [data-moon] {
+ display: none;
+ }
+
+ [data-sun] {
+ display: block;
+ }
+
+ &[data-theme="dark"] {
+ .themes {
+ background-color: var(--clr-accent);
+ color: var(--clr-accent-dark);
+ }
+
+ [data-sun] {
+ display: none;
+ }
+
+ [data-moon] {
+ display: block;
+ }
+ }
+}
+
+*,
+*:is(::after, ::before) {
+ box-sizing: border-box;
+ margin: 0;
+ padding: 0;
+}
+
+body {
+ display: flex;
+ flex-direction: column;
+ min-height: 100vh;
+ background-color: var(--clr-background-900);
+ font-family: 'Montserrat', sans-serif;
+ color: var(--clr-foreground);
+ line-height: 1.6;
+ overflow-x: hidden;
+}
+
+a,
+a:is(:active, :hover, :focus-visible) {
+ color: inherit;
+ text-decoration: none;
+}
+
+a:is(:hover, :focus-visible) {
+ color: var(--clr-accent);
+}
+
+a[href] {
+ position: relative;
+
+ .new-tab-warning {
+ position: absolute;
+ width: max-content;
+ background-color: hsl(0, 0%, 13%);
+ font-weight: normal;
+ letter-spacing: normal;
+ color: var(--clr-white) !important;
+ padding: 0.3rem;
+ font-size: 0.7rem;
+ border-radius: 0.3rem;
+ margin-top: 0.5rem;
+ top: 100%;
+ left: 0;
+ visibility: hidden;
+ pointer-events: none;
+ text-transform: capitalize;
+ transition: all 300ms ease-out;
+ translate: 0 -0.3rem;
+ z-index: 90;
+ user-select: none;
+ }
+
+ &:focus-visible {
+ .new-tab-warning {
+ visibility: visible;
+ translate: 0 0;
+ }
+ }
+}
+
+::selection {
+ background-color: var(--clr-accent);
+ color: var(--clr-white);
+}
+
+.t-all {
+ transition: all 300ms ease-in;
+}
+
+.no-scroll {
+ @include breakpoint-down('small') {
+ overflow: hidden !important;
+
+ :is(header, main, footer) {
+ visibility: hidden;
+ user-select: none;
+ }
+ }
+}
+
+.not-loaded {
+ overflow: hidden;
+
+ :is(header, main, footer, nav) {
+ visibility: hidden;
+ user-select: none;
+ }
+}
+
+:is(ul, li) {
+ margin: 0;
+ padding: 0;
+}
+
+li {
+ list-style: none;
+}
+
+*:focus-visible {
+ outline: 0.125rem solid var(--clr-accent-dark);
+}
+
+.highlight {
+ background-color: var(--clr-black);
+ padding: 0.2rem 0.6rem;
+ color: var(--clr-white);
+
+ &:is(:hover, :focus) {
+ color: var(--clr-white);
+ }
+}
+
+.header-link__access {
+ text-decoration: none !important;
+}
+
+.sr-only {
+ border: 0;
+ clip: rect(0 0 0 0);
+ height: 0.0625rem;
+ margin: -0.0625rem;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+ width: 0.0625rem;
}
\ No newline at end of file
diff --git a/src/assets/scss/modules/_header.scss b/archives/modules/_header.scss
similarity index 94%
rename from src/assets/scss/modules/_header.scss
rename to archives/modules/_header.scss
index 89ba20b..d86013c 100644
--- a/src/assets/scss/modules/_header.scss
+++ b/archives/modules/_header.scss
@@ -1,21 +1,21 @@
-.header {
- &_article {
- all: unset;
- position: relative;
- width: 100vw;
- aspect-ratio: 16/9;
- height: fit-content;
- max-height: 60vh;
- overflow: hidden;
- margin: 0 auto;
-
- img {
- top: 50%;
- translate: 0 -50%;
- position: absolute;
- aspect-ratio: 16 / 9;
- width: 100%;
- height: auto;
- }
- }
-}
+.header {
+ &_article {
+ all: unset;
+ position: relative;
+ width: 100vw;
+ aspect-ratio: 16/9;
+ height: fit-content;
+ max-height: 60vh;
+ overflow: hidden;
+ margin: 0 auto;
+
+ img {
+ top: 50%;
+ translate: 0 -50%;
+ position: absolute;
+ aspect-ratio: 16 / 9;
+ width: 100%;
+ height: auto;
+ }
+ }
+}
diff --git a/src/assets/scss/modules/_main.scss b/archives/modules/_main.scss
similarity index 100%
rename from src/assets/scss/modules/_main.scss
rename to archives/modules/_main.scss
diff --git a/src/assets/scss/modules/_mixin.scss b/archives/modules/_mixin.scss
similarity index 94%
rename from src/assets/scss/modules/_mixin.scss
rename to archives/modules/_mixin.scss
index bff6692..c081666 100644
--- a/src/assets/scss/modules/_mixin.scss
+++ b/archives/modules/_mixin.scss
@@ -1,23 +1,23 @@
-$breakpoints-up: (
- 'medium': '40em',
- 'large': '64em',
- 'xlarge': '87.5em',
-);
-
-$breakpoints-down: (
- 'small': '39.9375em',
- 'medium': '63.9375em',
- 'large': '87.4375em',
-);
-
-@mixin breakpoint-up($size) {
- @media screen and (min-width: map-get($breakpoints-up, $size)) {
- @content;
- }
-}
-
-@mixin breakpoint-down($size) {
- @media screen and (max-width: map-get($breakpoints-down, $size)) {
- @content;
- }
-}
+$breakpoints-up: (
+ 'medium': '40em',
+ 'large': '64em',
+ 'xlarge': '87.5em',
+);
+
+$breakpoints-down: (
+ 'small': '39.9375em',
+ 'medium': '63.9375em',
+ 'large': '87.4375em',
+);
+
+@mixin breakpoint-up($size) {
+ @media screen and (min-width: map-get($breakpoints-up, $size)) {
+ @content;
+ }
+}
+
+@mixin breakpoint-down($size) {
+ @media screen and (max-width: map-get($breakpoints-down, $size)) {
+ @content;
+ }
+}
diff --git a/src/assets/scss/modules/_vars.scss b/archives/modules/_vars.scss
similarity index 100%
rename from src/assets/scss/modules/_vars.scss
rename to archives/modules/_vars.scss
diff --git a/src/assets/scss/modules/component/_aboutme.scss b/archives/modules/component/_aboutme.scss
similarity index 94%
rename from src/assets/scss/modules/component/_aboutme.scss
rename to archives/modules/component/_aboutme.scss
index 6ae7a74..169e393 100644
--- a/src/assets/scss/modules/component/_aboutme.scss
+++ b/archives/modules/component/_aboutme.scss
@@ -1,305 +1,305 @@
-.aboutme {
- background-color: var(--clr-accent);
- color: var(--clr-white);
-
- .adds {
- font-size: 0.9rem;
- padding: 1rem;
-
- .new-line {
- margin-top: 0.5em;
- }
- }
-
- a {
- text-decoration: underline;
- text-underline-offset: 0.4rem;
- }
-
- a:hover,
- a:focus-visible {
- color: #d0d0d0;
- }
-
- ::selection {
- background-color: #333333;
- }
-
- .extra {
- text-transform: uppercase;
- letter-spacing: 0.1rem;
- }
-
- .main-container {
- display: flex;
- flex-direction: column;
- }
-
- .flex {
- display: flex;
- flex-direction: row;
- border-radius: 0.3rem;
- margin-top: 1rem;
-
- &-header {
- display: flex;
- padding: 0.5rem 1rem;
- width: 100%;
- justify-content: space-between;
- box-shadow: 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4);
- flex: 0 0 auto;
-
- span[aria-hidden=true] {
- display: block;
- margin-top: 0.3rem;
- }
-
- div {
- display: flex;
- align-items: center;
- font-weight: 600;
- gap: 0.2rem;
-
- .dot {
- height: 0.9375rem;
- width: 0.9375rem;
- background-color: hsl(0, 100%, 43%);
- border-radius: 50%;
-
- &:first-of-type {
- background-color: green;
- }
-
- &:nth-of-type(2) {
- background-color: yellow;
- }
- }
- }
- }
-
- .lists {
- display: flex;
- justify-content: space-around;
- width: 100%;
- }
-
- &.tools {
- background-color: hsl(0, 0%, 13%);
- box-shadow: 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4);
- margin-bottom: -9rem;
- z-index: 2;
-
- h2 {
- padding: 1rem;
- }
-
- .lists {
- background-color: hsl(0, 0%, 11%);
- border-radius: 0.3rem;
- padding: 2rem;
- }
- }
-
- &.languages {
- filter: brightness(110%);
- box-shadow: inset 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4);
- background-color: var(--clr-accent-dark);
- padding: 2rem;
-
- .header-title {
- gap: 1em;
- display: flex;
- }
-
- h2 {
- padding: 1rem 0;
- }
-
- ul {
- margin-top: 0.2rem;
- }
-
- .lists {
- overflow: unset;
- height: fit-content;
- }
- }
-
- &:not(:first-of-type) {
- margin-top: 5rem;
- justify-content: space-around;
- flex-direction: column;
-
- ul {
- font-size: 1.1rem;
- font-weight: 600;
-
- li {
- font-weight: 500;
- font-size: 1rem;
- margin-top: 0.5rem;
-
- &:first-of-type {
- font-weight: 600;
- }
-
- &:nth-child(2) {
- margin-top: 0.5rem;
- }
- }
- }
-
- @include breakpoint-down('medium') {
- align-items: flex-start;
-
- .lists {
- flex-direction: column;
- }
-
- ul>li {
- display: inline-block;
- margin-top: 0;
- }
- }
- }
-
- @include breakpoint-down('medium') {
- flex-direction: column;
- align-items: center;
- }
- }
-
- .data {
- position: relative;
- min-width: 25rem;
- height: 20rem;
-
- @include breakpoint-down('medium') {
- width: 100%;
- max-width: 25rem;
- min-width: unset;
- }
-
- &:hover {
- .note {
- scale: 1.1;
- }
- }
-
- &::before {
- content: '';
- position: absolute;
- width: 100%;
- height: 100%;
- background-color: hsl(0, 100%, 43%);
- left: -0.7rem;
- border-radius: 40% 20% / 10%;
- }
- }
-
- .explain {
- display: flex;
- align-items: center;
- margin-top: 1rem;
- padding: 1rem;
- font-size: 1.2rem;
-
- @include breakpoint-up('large') {
- padding-left: 3rem;
- }
- }
-
- .note {
- rotate: -3deg;
- }
-}
-
-.note {
- color: var(--clr-white);
- display: flex;
- flex: 0 0 auto;
- position: relative;
- width: min(25rem, 100%);
- flex-direction: column;
- background-color: hsl(0, 0%, 13%);
- border-radius: 0.6rem;
- box-shadow: 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4);
- height: max(20rem, 100%);
- transition: all 300ms ease-in-out;
-
- article {
- padding: 1rem;
- z-index: 80;
- }
-
- &>svg {
- position: absolute;
- right: 0.1rem;
- bottom: 0.1rem;
- color: hsl(0, 0%, 11%);
- }
-
- article {
- padding: 1rem;
- height: 100%;
- overflow-y: auto;
-
- scrollbar-width: none;
-
- &::-webkit-scrollbar {
- width: 0;
- }
-
- li {
- padding-left: 0.6rem;
- }
- }
-
- &-heading {
- font-weight: 600;
- display: block;
- text-transform: uppercase;
- letter-spacing: 0.1em;
- line-height: 1.2;
- }
-
- &-subheading {
- font-style: italic;
- }
-
- li {
- font-size: 0.85em;
- }
-
- &-header {
- display: flex;
- height: 2.5rem;
- padding: 0 1rem;
- width: 100%;
- justify-content: space-between;
- box-shadow: 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4);
- flex: 0 0 auto;
-
- div {
- display: flex;
- align-items: center;
- font-weight: 600;
- gap: 0.2rem;
-
- .dot {
- height: 0.9375rem;
- width: 0.9375rem;
- background-color: hsl(0, 100%, 43%);
- border-radius: 50%;
-
- &:first-of-type {
- background-color: green;
- }
-
- &:nth-of-type(2) {
- background-color: yellow;
- }
- }
- }
- }
+.aboutme {
+ background-color: var(--clr-accent);
+ color: var(--clr-white);
+
+ .adds {
+ font-size: 0.9rem;
+ padding: 1rem;
+
+ .new-line {
+ margin-top: 0.5em;
+ }
+ }
+
+ a {
+ text-decoration: underline;
+ text-underline-offset: 0.4rem;
+ }
+
+ a:hover,
+ a:focus-visible {
+ color: #d0d0d0;
+ }
+
+ ::selection {
+ background-color: #333333;
+ }
+
+ .extra {
+ text-transform: uppercase;
+ letter-spacing: 0.1rem;
+ }
+
+ .main-container {
+ display: flex;
+ flex-direction: column;
+ }
+
+ .flex {
+ display: flex;
+ flex-direction: row;
+ border-radius: 0.3rem;
+ margin-top: 1rem;
+
+ &-header {
+ display: flex;
+ padding: 0.5rem 1rem;
+ width: 100%;
+ justify-content: space-between;
+ box-shadow: 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4);
+ flex: 0 0 auto;
+
+ span[aria-hidden=true] {
+ display: block;
+ margin-top: 0.3rem;
+ }
+
+ div {
+ display: flex;
+ align-items: center;
+ font-weight: 600;
+ gap: 0.2rem;
+
+ .dot {
+ height: 0.9375rem;
+ width: 0.9375rem;
+ background-color: hsl(0, 100%, 43%);
+ border-radius: 50%;
+
+ &:first-of-type {
+ background-color: green;
+ }
+
+ &:nth-of-type(2) {
+ background-color: yellow;
+ }
+ }
+ }
+ }
+
+ .lists {
+ display: flex;
+ justify-content: space-around;
+ width: 100%;
+ }
+
+ &.tools {
+ background-color: hsl(0, 0%, 13%);
+ box-shadow: 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4);
+ margin-bottom: -9rem;
+ z-index: 2;
+
+ h2 {
+ padding: 1rem;
+ }
+
+ .lists {
+ background-color: hsl(0, 0%, 11%);
+ border-radius: 0.3rem;
+ padding: 2rem;
+ }
+ }
+
+ &.languages {
+ filter: brightness(110%);
+ box-shadow: inset 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4);
+ background-color: var(--clr-accent-dark);
+ padding: 2rem;
+
+ .header-title {
+ gap: 1em;
+ display: flex;
+ }
+
+ h2 {
+ padding: 1rem 0;
+ }
+
+ ul {
+ margin-top: 0.2rem;
+ }
+
+ .lists {
+ overflow: unset;
+ height: fit-content;
+ }
+ }
+
+ &:not(:first-of-type) {
+ margin-top: 5rem;
+ justify-content: space-around;
+ flex-direction: column;
+
+ ul {
+ font-size: 1.1rem;
+ font-weight: 600;
+
+ li {
+ font-weight: 500;
+ font-size: 1rem;
+ margin-top: 0.5rem;
+
+ &:first-of-type {
+ font-weight: 600;
+ }
+
+ &:nth-child(2) {
+ margin-top: 0.5rem;
+ }
+ }
+ }
+
+ @include breakpoint-down('medium') {
+ align-items: flex-start;
+
+ .lists {
+ flex-direction: column;
+ }
+
+ ul>li {
+ display: inline-block;
+ margin-top: 0;
+ }
+ }
+ }
+
+ @include breakpoint-down('medium') {
+ flex-direction: column;
+ align-items: center;
+ }
+ }
+
+ .data {
+ position: relative;
+ min-width: 25rem;
+ height: 20rem;
+
+ @include breakpoint-down('medium') {
+ width: 100%;
+ max-width: 25rem;
+ min-width: unset;
+ }
+
+ &:hover {
+ .note {
+ scale: 1.1;
+ }
+ }
+
+ &::before {
+ content: '';
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ background-color: hsl(0, 100%, 43%);
+ left: -0.7rem;
+ border-radius: 40% 20% / 10%;
+ }
+ }
+
+ .explain {
+ display: flex;
+ align-items: center;
+ margin-top: 1rem;
+ padding: 1rem;
+ font-size: 1.2rem;
+
+ @include breakpoint-up('large') {
+ padding-left: 3rem;
+ }
+ }
+
+ .note {
+ rotate: -3deg;
+ }
+}
+
+.note {
+ color: var(--clr-white);
+ display: flex;
+ flex: 0 0 auto;
+ position: relative;
+ width: min(25rem, 100%);
+ flex-direction: column;
+ background-color: hsl(0, 0%, 13%);
+ border-radius: 0.6rem;
+ box-shadow: 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4);
+ height: max(20rem, 100%);
+ transition: all 300ms ease-in-out;
+
+ article {
+ padding: 1rem;
+ z-index: 80;
+ }
+
+ &>svg {
+ position: absolute;
+ right: 0.1rem;
+ bottom: 0.1rem;
+ color: hsl(0, 0%, 11%);
+ }
+
+ article {
+ padding: 1rem;
+ height: 100%;
+ overflow-y: auto;
+
+ scrollbar-width: none;
+
+ &::-webkit-scrollbar {
+ width: 0;
+ }
+
+ li {
+ padding-left: 0.6rem;
+ }
+ }
+
+ &-heading {
+ font-weight: 600;
+ display: block;
+ text-transform: uppercase;
+ letter-spacing: 0.1em;
+ line-height: 1.2;
+ }
+
+ &-subheading {
+ font-style: italic;
+ }
+
+ li {
+ font-size: 0.85em;
+ }
+
+ &-header {
+ display: flex;
+ height: 2.5rem;
+ padding: 0 1rem;
+ width: 100%;
+ justify-content: space-between;
+ box-shadow: 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4);
+ flex: 0 0 auto;
+
+ div {
+ display: flex;
+ align-items: center;
+ font-weight: 600;
+ gap: 0.2rem;
+
+ .dot {
+ height: 0.9375rem;
+ width: 0.9375rem;
+ background-color: hsl(0, 100%, 43%);
+ border-radius: 50%;
+
+ &:first-of-type {
+ background-color: green;
+ }
+
+ &:nth-of-type(2) {
+ background-color: yellow;
+ }
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/src/assets/scss/modules/component/_animation.scss b/archives/modules/component/_animation.scss
similarity index 94%
rename from src/assets/scss/modules/component/_animation.scss
rename to archives/modules/component/_animation.scss
index c44d465..5b19ab2 100644
--- a/src/assets/scss/modules/component/_animation.scss
+++ b/archives/modules/component/_animation.scss
@@ -1,59 +1,59 @@
-[data-animation] {
- opacity: 0;
- transition: translate var(--_translate, 1s) ease-in-out, scale var(--_scale, 1s) ease-in-out, rotate var(--_rotate, 1s) ease-in-out, opacity var(--_opacity, 1s) ease-in-out;
-}
-
-[data-animation='fade-in'] {
- translate: 0 4em;
-}
-
-[data-animation='right-show'] {
- translate: -5em 0;
-}
-
-[data-animation='top-show'] {
- translate: 0 -5em;
-}
-
-[data-animation='bottom-show'] {
- translate: 0 5em;
-}
-
-[data-animation='left-show'] {
- translate: 5em 0;
-}
-
-[data-animation='prototype-card'] {
- translate: -5em 0;
-
- &:nth-of-type(odd) {
- translate: 5em 0;
- }
-}
-
-.has-been-animated {
- opacity: unset;
- scale: unset;
- rotate: unset;
- translate: unset !important;
-}
-
-@media (prefers-reduced-motion) {
- .prototype-reader,
- .data {
- transform: unset !important;
- }
-
- *,
- *::after,
- *::before {
- animation: unset !important;
- rotate: 0deg !important;
- translate: 0em 0em !important;
- }
-
- [data-animation] {
- translate: unset !important;
- opacity: 1 !important;
- }
+[data-animation] {
+ opacity: 0;
+ transition: translate var(--_translate, 1s) ease-in-out, scale var(--_scale, 1s) ease-in-out, rotate var(--_rotate, 1s) ease-in-out, opacity var(--_opacity, 1s) ease-in-out;
+}
+
+[data-animation='fade-in'] {
+ translate: 0 4em;
+}
+
+[data-animation='right-show'] {
+ translate: -5em 0;
+}
+
+[data-animation='top-show'] {
+ translate: 0 -5em;
+}
+
+[data-animation='bottom-show'] {
+ translate: 0 5em;
+}
+
+[data-animation='left-show'] {
+ translate: 5em 0;
+}
+
+[data-animation='prototype-card'] {
+ translate: -5em 0;
+
+ &:nth-of-type(odd) {
+ translate: 5em 0;
+ }
+}
+
+.has-been-animated {
+ opacity: unset;
+ scale: unset;
+ rotate: unset;
+ translate: unset !important;
+}
+
+@media (prefers-reduced-motion) {
+ .prototype-reader,
+ .data {
+ transform: unset !important;
+ }
+
+ *,
+ *::after,
+ *::before {
+ animation: unset !important;
+ rotate: 0deg !important;
+ translate: 0em 0em !important;
+ }
+
+ [data-animation] {
+ translate: unset !important;
+ opacity: 1 !important;
+ }
}
\ No newline at end of file
diff --git a/src/assets/scss/modules/component/_article.scss b/archives/modules/component/_article.scss
similarity index 94%
rename from src/assets/scss/modules/component/_article.scss
rename to archives/modules/component/_article.scss
index 619b350..6db37d7 100644
--- a/src/assets/scss/modules/component/_article.scss
+++ b/archives/modules/component/_article.scss
@@ -1,432 +1,432 @@
-.article {
- --_article-color: hsla(270, 50%, 40%, 0.5);
- -webkit-text-size-adjust: 100%;
- -ms-text-size-adjust: 100%;
- color: var(--clr-foreground-900);
- background-color: var(--clr-background-900);
- line-height: 2;
- margin: auto;
-
- main {
- position: relative;
-
- .table-of-contents {
- position: absolute;
- top: 0;
- right: 0;
-
- @include breakpoint-down('medium') {
- position: unset;
- }
- }
- }
-
-
- a {
- font-weight: 600;
- color: var(--clr-href);
-
- &:not(.header-anchor, .breadcrumb) {
- text-decoration: 0.0625em underline var(--clr-href);
- text-underline-offset: 0.35em;
- }
-
- &:hover {
- color: var(--clr-href-visited);
- }
-
- &:focus-visible {
- outline: thin dotted;
- }
-
- &:hover,
- &:active {
- outline: 0;
- }
- }
-
- span {
-
- a:hover,
- a:visited,
- a:active,
- a:focus-visible {
- color: var(--clr-href);
- }
- }
-
- ::selection {
- background: var(--clr-accent-dark);
- color: var(--clr-white);
- }
-
- a::selection {
- background: var(--clr-accent-dark);
- color: var(--clr-white);
- }
-
- :is(p:not(:first-of-type), table, blockquote) {
- max-width: 60ch;
- }
-
- p {
- margin: 1rem 0;
- }
-
- img {
- max-width: 100%;
- }
-
- h1,
- h2,
- h3,
- h4,
- h5,
- h6 {
- font-weight: 600;
- color: var(--clr-foreground-900);
- padding: 1rem 0;
- line-height: 1.1em;
- }
-
- h4,
- h5,
- h6 {
- font-weight: bold;
- }
-
- h1 {
- font-size: 2.5rem;
- }
-
- h2 {
- font-size: 2rem;
- }
-
- h3 {
- font-size: 1.5rem;
- }
-
- h4 {
- font-size: 1.2rem;
- }
-
- h5 {
- font-size: 1rem;
- }
-
- h6 {
- font-size: 0.9rem;
- }
-
- blockquote {
- color: var(--clr-foreground-900);
- margin: 0;
- padding-left: 2em;
- border-left: 0.5em var(--clr-accent) solid;
- }
-
- hr {
- display: block;
- height: 0.15em;
- border: 0;
- border-top: 0.0625em solid var(--clr-accent);
- border-bottom: 0.0625em solid var(--clr-accent-light);
- margin: 1em 0;
- padding: 0;
- }
-
- pre,
- code,
- kbd,
- samp {
- padding: 0 0.3em;
- font-family: monospace, "Trebuchet MS", "Lucida Sans Unicode", "Lucida Grande", "Lucida Sans", Arial, sans-serif;
- // font-size: 0.8rem;
- // line-height: 1.4;
- }
-
- pre {
- border: 0.1rem solid var(--_article-color);
- // background-color: var(--_article-color);
- border-radius: 0.5rem;
- padding: 1rem;
- white-space: pre;
- white-space: pre-wrap;
- word-wrap: break-word;
-
- code {
- box-shadow: none;
- background-color: transparent;
- }
- }
-
- b,
- strong {
- font-weight: bold;
- color: var(--clr-foreground-900);
- }
-
- dfn {
- font-style: italic;
- }
-
- ins {
- background: #ff9;
- color: #000;
- text-decoration: none;
- }
-
- mark {
- background-color: var(--clr-black);
- color: var(--clr-white);
-
- &:is(:hover, :focus) {
- color: var(--clr-white);
- }
- }
-
- sub,
- sup {
- font-size: 75%;
- line-height: 0;
- position: relative;
- vertical-align: baseline;
-
- >a {
- text-decoration: none !important;
- }
- }
-
- sup {
- top: -0.5rem;
- }
-
- sub {
- bottom: -0.25rem;
- }
-
- ul,
- ol {
- margin: 1em 0;
- padding: 0 0 0 2rem;
- }
-
- ul li {
- list-style-type: disc;
- }
-
- ol li {
- list-style-type: decimal;
- }
-
- li p:last-child {
- margin: 0;
- }
-
- dd {
- margin: 0 0 0 2rem;
- }
-
- img {
- border: 0;
- vertical-align: middle;
- }
-
- table {
- border-collapse: collapse;
- overflow-x: scroll;
- border-spacing: 0;
- width: 100%;
- background-color: var(--clr-background);
- border-radius: 0.5rem;
- overflow: hidden;
-
- td,
- th {
- padding: 0.4rem 0.8rem;
- }
-
- tr {
- :is(td, th):first-child {
- text-align: center;
- }
- }
-
- th {
- background-color: var(--_article-color);
- color: var(--table-header);
- // border-bottom: 0.25rem solid var(--clr-accent);
- }
-
- td {
- vertical-align: top;
- }
-
- &.properties {
- th {
- border-bottom: 0.0625rem solid var(--clr-background-800);
- border-left: 0.25rem solid var(--clr-accent);
- }
- }
- }
-
- .table-of-contents {
- .toc-container-header {
- font-weight: 700;
- }
-
- ul {
- margin: 0;
-
- li {
- margin-top: 0.15em;
- list-style: circle;
- }
- }
- }
-
- @media print {
- * {
- background: transparent !important;
- color: var(--clr-accent-dark) !important;
- filter: none !important;
- -ms-filter: none !important;
- }
-
- body {
- font-size: 12pt;
- max-width: 100%;
- }
-
- a,
- a:visited {
- text-decoration: underline;
- }
-
- hr {
- height: 0.0625em;
- border: 0;
- border-bottom: 0.0625em solid var(--clr-accent-dark);
- }
-
- a[href]:after {
- content: ' (' attr(href) ')';
- }
-
- abbr[title]:after {
- content: ' (' attr(title) ')';
- }
-
- .ir a:after,
- a[href^='javascript:']:after,
- a[href^='#']:after {
- content: '';
- }
-
- pre,
- blockquote {
- border: 0.0625em solid #999;
- padding-right: 1em;
- page-break-inside: avoid;
- }
-
- tr,
- img {
- page-break-inside: avoid;
- }
-
- img {
- max-width: 100% !important;
- }
-
- @page :left {
- margin: 15mm 20mm 15mm 10mm;
- }
-
- @page :right {
- margin: 15mm 10mm 15mm 20mm;
- }
-
- p,
- h2,
- h3 {
- orphans: 3;
- widows: 3;
- }
-
- h2,
- h3 {
- page-break-after: avoid;
- }
- }
-
- &-flex_list {
- flex-wrap: wrap;
- gap: 0.5em;
- display: flex;
- margin: unset !important;
- padding: unset !important;
- }
-
- &-detail {
- &_list {
- flex-wrap: wrap;
- gap: 0.5em;
- display: flex;
- margin: unset !important;
- padding: unset !important;
- }
-
- &_item {
- font-size: 0.9rem;
- gap: 0.5em;
- border-radius: 0.3em;
- padding: 0.4em;
- display: flex;
- color: var(--clr-foreground);
- border: 0.0625em solid var(--clr-foreground);
- align-items: center;
-
- &:first-of-type {
- border: none;
- color: var(--clr-white);
- box-shadow: 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4);
- background-color: var(--clr-accent-light);
- background-image: linear-gradient(45deg,
- var(--clr-accent-dark),
- var(--clr-accent));
- }
-
- &_svg {
- width: 1.2rem;
- }
- }
- }
-
- &-summary {
- font-style: italic;
- font-size: 1.2rem;
- color: var(--clr-foreground-700);
- }
-
- .more {
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(min(20em, 60ch), 29.5rem));
- margin-top: 1em;
- gap: 1em;
-
- div {
- padding: 1rem;
- background: var(--clr-background);
-
- a {
- display: block;
- text-overflow: ellipsis;
- overflow: hidden;
- white-space: nowrap;
- }
- }
-
- }
+.article {
+ --_article-color: hsla(270, 50%, 40%, 0.5);
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+ color: var(--clr-foreground-900);
+ background-color: var(--clr-background-900);
+ line-height: 2;
+ margin: auto;
+
+ main {
+ position: relative;
+
+ .table-of-contents {
+ position: absolute;
+ top: 0;
+ right: 0;
+
+ @include breakpoint-down('medium') {
+ position: unset;
+ }
+ }
+ }
+
+
+ a {
+ font-weight: 600;
+ color: var(--clr-href);
+
+ &:not(.header-anchor, .breadcrumb) {
+ text-decoration: 0.0625em underline var(--clr-href);
+ text-underline-offset: 0.35em;
+ }
+
+ &:hover {
+ color: var(--clr-href-visited);
+ }
+
+ &:focus-visible {
+ outline: thin dotted;
+ }
+
+ &:hover,
+ &:active {
+ outline: 0;
+ }
+ }
+
+ span {
+
+ a:hover,
+ a:visited,
+ a:active,
+ a:focus-visible {
+ color: var(--clr-href);
+ }
+ }
+
+ ::selection {
+ background: var(--clr-accent-dark);
+ color: var(--clr-white);
+ }
+
+ a::selection {
+ background: var(--clr-accent-dark);
+ color: var(--clr-white);
+ }
+
+ :is(p:not(:first-of-type), table, blockquote) {
+ max-width: 60ch;
+ }
+
+ p {
+ margin: 1rem 0;
+ }
+
+ img {
+ max-width: 100%;
+ }
+
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6 {
+ font-weight: 600;
+ color: var(--clr-foreground-900);
+ padding: 1rem 0;
+ line-height: 1.1em;
+ }
+
+ h4,
+ h5,
+ h6 {
+ font-weight: bold;
+ }
+
+ h1 {
+ font-size: 2.5rem;
+ }
+
+ h2 {
+ font-size: 2rem;
+ }
+
+ h3 {
+ font-size: 1.5rem;
+ }
+
+ h4 {
+ font-size: 1.2rem;
+ }
+
+ h5 {
+ font-size: 1rem;
+ }
+
+ h6 {
+ font-size: 0.9rem;
+ }
+
+ blockquote {
+ color: var(--clr-foreground-900);
+ margin: 0;
+ padding-left: 2em;
+ border-left: 0.5em var(--clr-accent) solid;
+ }
+
+ hr {
+ display: block;
+ height: 0.15em;
+ border: 0;
+ border-top: 0.0625em solid var(--clr-accent);
+ border-bottom: 0.0625em solid var(--clr-accent-light);
+ margin: 1em 0;
+ padding: 0;
+ }
+
+ pre,
+ code,
+ kbd,
+ samp {
+ padding: 0 0.3em;
+ font-family: monospace, "Trebuchet MS", "Lucida Sans Unicode", "Lucida Grande", "Lucida Sans", Arial, sans-serif;
+ // font-size: 0.8rem;
+ // line-height: 1.4;
+ }
+
+ pre {
+ border: 0.1rem solid var(--_article-color);
+ // background-color: var(--_article-color);
+ border-radius: 0.5rem;
+ padding: 1rem;
+ white-space: pre;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+
+ code {
+ box-shadow: none;
+ background-color: transparent;
+ }
+ }
+
+ b,
+ strong {
+ font-weight: bold;
+ color: var(--clr-foreground-900);
+ }
+
+ dfn {
+ font-style: italic;
+ }
+
+ ins {
+ background: #ff9;
+ color: #000;
+ text-decoration: none;
+ }
+
+ mark {
+ background-color: var(--clr-black);
+ color: var(--clr-white);
+
+ &:is(:hover, :focus) {
+ color: var(--clr-white);
+ }
+ }
+
+ sub,
+ sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+
+ >a {
+ text-decoration: none !important;
+ }
+ }
+
+ sup {
+ top: -0.5rem;
+ }
+
+ sub {
+ bottom: -0.25rem;
+ }
+
+ ul,
+ ol {
+ margin: 1em 0;
+ padding: 0 0 0 2rem;
+ }
+
+ ul li {
+ list-style-type: disc;
+ }
+
+ ol li {
+ list-style-type: decimal;
+ }
+
+ li p:last-child {
+ margin: 0;
+ }
+
+ dd {
+ margin: 0 0 0 2rem;
+ }
+
+ img {
+ border: 0;
+ vertical-align: middle;
+ }
+
+ table {
+ border-collapse: collapse;
+ overflow-x: scroll;
+ border-spacing: 0;
+ width: 100%;
+ background-color: var(--clr-background);
+ border-radius: 0.5rem;
+ overflow: hidden;
+
+ td,
+ th {
+ padding: 0.4rem 0.8rem;
+ }
+
+ tr {
+ :is(td, th):first-child {
+ text-align: center;
+ }
+ }
+
+ th {
+ background-color: var(--_article-color);
+ color: var(--table-header);
+ // border-bottom: 0.25rem solid var(--clr-accent);
+ }
+
+ td {
+ vertical-align: top;
+ }
+
+ &.properties {
+ th {
+ border-bottom: 0.0625rem solid var(--clr-background-800);
+ border-left: 0.25rem solid var(--clr-accent);
+ }
+ }
+ }
+
+ .table-of-contents {
+ .toc-container-header {
+ font-weight: 700;
+ }
+
+ ul {
+ margin: 0;
+
+ li {
+ margin-top: 0.15em;
+ list-style: circle;
+ }
+ }
+ }
+
+ @media print {
+ * {
+ background: transparent !important;
+ color: var(--clr-accent-dark) !important;
+ filter: none !important;
+ -ms-filter: none !important;
+ }
+
+ body {
+ font-size: 12pt;
+ max-width: 100%;
+ }
+
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+
+ hr {
+ height: 0.0625em;
+ border: 0;
+ border-bottom: 0.0625em solid var(--clr-accent-dark);
+ }
+
+ a[href]:after {
+ content: ' (' attr(href) ')';
+ }
+
+ abbr[title]:after {
+ content: ' (' attr(title) ')';
+ }
+
+ .ir a:after,
+ a[href^='javascript:']:after,
+ a[href^='#']:after {
+ content: '';
+ }
+
+ pre,
+ blockquote {
+ border: 0.0625em solid #999;
+ padding-right: 1em;
+ page-break-inside: avoid;
+ }
+
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+
+ img {
+ max-width: 100% !important;
+ }
+
+ @page :left {
+ margin: 15mm 20mm 15mm 10mm;
+ }
+
+ @page :right {
+ margin: 15mm 10mm 15mm 20mm;
+ }
+
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+ }
+
+ &-flex_list {
+ flex-wrap: wrap;
+ gap: 0.5em;
+ display: flex;
+ margin: unset !important;
+ padding: unset !important;
+ }
+
+ &-detail {
+ &_list {
+ flex-wrap: wrap;
+ gap: 0.5em;
+ display: flex;
+ margin: unset !important;
+ padding: unset !important;
+ }
+
+ &_item {
+ font-size: 0.9rem;
+ gap: 0.5em;
+ border-radius: 0.3em;
+ padding: 0.4em;
+ display: flex;
+ color: var(--clr-foreground);
+ border: 0.0625em solid var(--clr-foreground);
+ align-items: center;
+
+ &:first-of-type {
+ border: none;
+ color: var(--clr-white);
+ box-shadow: 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4);
+ background-color: var(--clr-accent-light);
+ background-image: linear-gradient(45deg,
+ var(--clr-accent-dark),
+ var(--clr-accent));
+ }
+
+ &_svg {
+ width: 1.2rem;
+ }
+ }
+ }
+
+ &-summary {
+ font-style: italic;
+ font-size: 1.2rem;
+ color: var(--clr-foreground-700);
+ }
+
+ .more {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(min(20em, 60ch), 29.5rem));
+ margin-top: 1em;
+ gap: 1em;
+
+ div {
+ padding: 1rem;
+ background: var(--clr-background);
+
+ a {
+ display: block;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+ }
+ }
+
+ }
}
\ No newline at end of file
diff --git a/src/assets/scss/modules/component/_card.scss b/archives/modules/component/_card.scss
similarity index 100%
rename from src/assets/scss/modules/component/_card.scss
rename to archives/modules/component/_card.scss
diff --git a/src/assets/scss/modules/component/_clients.scss b/archives/modules/component/_clients.scss
similarity index 93%
rename from src/assets/scss/modules/component/_clients.scss
rename to archives/modules/component/_clients.scss
index 77bfd82..ca00cd8 100644
--- a/src/assets/scss/modules/component/_clients.scss
+++ b/archives/modules/component/_clients.scss
@@ -1,17 +1,17 @@
-.clients {
- background-color: var(--clr-background);
- margin-bottom: -6em;
-
- &-list {
- padding: 2em;
- display: flex;
- flex-wrap: wrap;
- align-items: center;
- justify-content: center;
- gap: 2em;
-
- svg {
- max-height: 5em;
- }
- }
-}
+.clients {
+ background-color: var(--clr-background);
+ margin-bottom: -6em;
+
+ &-list {
+ padding: 2em;
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: center;
+ gap: 2em;
+
+ svg {
+ max-height: 5em;
+ }
+ }
+}
diff --git a/src/assets/scss/modules/component/_contact.scss b/archives/modules/component/_contact.scss
similarity index 100%
rename from src/assets/scss/modules/component/_contact.scss
rename to archives/modules/component/_contact.scss
diff --git a/src/assets/scss/modules/component/_error.scss b/archives/modules/component/_error.scss
similarity index 100%
rename from src/assets/scss/modules/component/_error.scss
rename to archives/modules/component/_error.scss
diff --git a/src/assets/scss/modules/component/_featured.scss b/archives/modules/component/_featured.scss
similarity index 95%
rename from src/assets/scss/modules/component/_featured.scss
rename to archives/modules/component/_featured.scss
index 66f0683..cde7a6a 100644
--- a/src/assets/scss/modules/component/_featured.scss
+++ b/archives/modules/component/_featured.scss
@@ -1,204 +1,204 @@
-.featured {
- --clr-variant: var(--clr-accent);
- --clr-variant-dark: var(--clr-accent-dark);
-
- &.red {
- --clr-variant: var(--clr-red);
- --clr-variant-dark: var(--clr-red-dark);
- }
-
- &-container {
- display: flex;
- flex-direction: column;
- position: relative;
- justify-content: space-between;
- overflow: hidden;
- margin: 2em auto;
- margin-top: 5em;
- border-radius: 0.3em;
- padding: 0;
- background-color: transparent;
- min-height: 20rem;
- margin-bottom: -5rem;
- // border: 0.0625em solid var(--clr-background);
- // box-shadow: 0 0.3125rem 0.625rem rgb(0 0 0 / 40%)
- box-shadow: 0 0.625rem 1.25rem hsla(0, 0%, 0%, 0.4);
-
- @include breakpoint-down('medium') {
- width: calc(100% - 2em);
- }
- }
-
- &-right {
- display: flex;
- padding: 2em;
- background-color: var(--clr-variant);
- flex: 1 auto;
- position: relative;
- justify-content: center;
- align-items: center;
-
- @include breakpoint-down('small') {
- min-height: 10em;
- }
-
- img {
- all: unset;
- overflow: clip !important;
- width: min(100%, 26.1875rem);
- aspect-ratio: 1/1;
- }
-
- #svg {
- position: absolute;
- bottom: 0;
- left: 0;
- }
- }
-
- &-left {
- color: var(--clr-white);
- padding: 2em;
- width: min(90ch, 100%);
- background-color: var(--clr-variant-dark);
-
- >.featured-header {
- display: flex;
- flex-direction: column;
- margin-bottom: 1em;
- gap: 0.5em;
- align-items: flex-start;
- }
- }
-
- &-header {
- &_project-name {
- border-radius: 0.3em;
- background-color: var(--clr-variant);
- background-image: linear-gradient(90deg,
- var(--clr-variant-dark),
- var(--clr-variant));
- padding: 1em;
- width: 100%;
-
- p:last-of-type {
- font-size: 0.8em;
- }
- }
- }
-
- &-main {
- &>* {
- max-width: 45ch;
- }
-
- &_tag {
- border-radius: 0.3em;
- padding: 0.5em 1.5em;
- color: var(--clr-white);
- border: 0.0625em solid var(--clr-white);
- user-select: none;
- pointer-events: none;
- width: fit-content;
- font-size: 0.7rem;
-
- &-area {
- display: flex;
- margin-top: 2em;
- gap: 0.5em;
- flex-wrap: wrap;
- }
- }
- }
-
- &-body {
- display: flex;
- position: relative;
- flex: 1 1 auto;
-
- @include breakpoint-down('small') {
- flex-direction: column-reverse;
- }
- }
-
- &-footer {
- padding: 1em 2em;
- display: flex;
- justify-content: flex-end;
- background-color: var(--clr-black-light);
- gap: 0.4rem;
- flex-wrap: wrap;
-
- p {
- border-radius: 0.3em;
- padding: 0.5em 1.5em;
- color: var(--clr-white);
- border: 0.0625em solid var(--clr-white);
- user-select: none;
- pointer-events: none;
- width: fit-content;
- font-size: 0.9rem;
-
- &:first-of-type {
- border: none;
- color: var(--clr-white);
- background: var(--clr-variant-dark);
- background-image: linear-gradient(-90deg,
- var(--clr-variant),
- var(--clr-variant-dark));
- }
-
- @include breakpoint-down('small') {
- width: 100%;
- }
- }
- }
-
- &-background {
- position: absolute;
- left: 0;
- bottom: 0;
- right: 0;
- width: 100%;
- user-select: none;
- pointer-events: none;
- }
-
- &-external {
- &_link {
- display: flex;
- align-items: center;
- gap: 0.5em;
- padding: 0.5em;
- margin-top: 1em;
- border-radius: 0.3em;
- font-size: 1.2rem;
- color: var(--clr-white);
- border: none;
- background: var(--clr-black-light);
-
- svg {
- width: 1.2em;
- height: 1.2em;
- }
-
- &:is(:hover, :focus) {
- color: var(--clr-white);
- outline: 0.0625em solid var(--clr-background);
- }
- }
- }
-
- &-tag {
- border-radius: 0.3em;
- position: absolute;
- right: 1em;
- top: 1em;
- padding: 0.2em 0.5em;
- z-index: 10;
- font-weight: 500;
- background-color: var(--clr-black-light);
- color: var(--clr-white);
- // box-shadow: 0 0.625rem 1.25rem hsla(270, 71%, 22%, 0.2);
- }
+.featured {
+ --clr-variant: var(--clr-accent);
+ --clr-variant-dark: var(--clr-accent-dark);
+
+ &.red {
+ --clr-variant: var(--clr-red);
+ --clr-variant-dark: var(--clr-red-dark);
+ }
+
+ &-container {
+ display: flex;
+ flex-direction: column;
+ position: relative;
+ justify-content: space-between;
+ overflow: hidden;
+ margin: 2em auto;
+ margin-top: 5em;
+ border-radius: 0.3em;
+ padding: 0;
+ background-color: transparent;
+ min-height: 20rem;
+ margin-bottom: -5rem;
+ // border: 0.0625em solid var(--clr-background);
+ // box-shadow: 0 0.3125rem 0.625rem rgb(0 0 0 / 40%)
+ box-shadow: 0 0.625rem 1.25rem hsla(0, 0%, 0%, 0.4);
+
+ @include breakpoint-down('medium') {
+ width: calc(100% - 2em);
+ }
+ }
+
+ &-right {
+ display: flex;
+ padding: 2em;
+ background-color: var(--clr-variant);
+ flex: 1 auto;
+ position: relative;
+ justify-content: center;
+ align-items: center;
+
+ @include breakpoint-down('small') {
+ min-height: 10em;
+ }
+
+ img {
+ all: unset;
+ overflow: clip !important;
+ width: min(100%, 26.1875rem);
+ aspect-ratio: 1/1;
+ }
+
+ #svg {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ }
+ }
+
+ &-left {
+ color: var(--clr-white);
+ padding: 2em;
+ width: min(90ch, 100%);
+ background-color: var(--clr-variant-dark);
+
+ >.featured-header {
+ display: flex;
+ flex-direction: column;
+ margin-bottom: 1em;
+ gap: 0.5em;
+ align-items: flex-start;
+ }
+ }
+
+ &-header {
+ &_project-name {
+ border-radius: 0.3em;
+ background-color: var(--clr-variant);
+ background-image: linear-gradient(90deg,
+ var(--clr-variant-dark),
+ var(--clr-variant));
+ padding: 1em;
+ width: 100%;
+
+ p:last-of-type {
+ font-size: 0.8em;
+ }
+ }
+ }
+
+ &-main {
+ &>* {
+ max-width: 45ch;
+ }
+
+ &_tag {
+ border-radius: 0.3em;
+ padding: 0.5em 1.5em;
+ color: var(--clr-white);
+ border: 0.0625em solid var(--clr-white);
+ user-select: none;
+ pointer-events: none;
+ width: fit-content;
+ font-size: 0.7rem;
+
+ &-area {
+ display: flex;
+ margin-top: 2em;
+ gap: 0.5em;
+ flex-wrap: wrap;
+ }
+ }
+ }
+
+ &-body {
+ display: flex;
+ position: relative;
+ flex: 1 1 auto;
+
+ @include breakpoint-down('small') {
+ flex-direction: column-reverse;
+ }
+ }
+
+ &-footer {
+ padding: 1em 2em;
+ display: flex;
+ justify-content: flex-end;
+ background-color: var(--clr-black-light);
+ gap: 0.4rem;
+ flex-wrap: wrap;
+
+ p {
+ border-radius: 0.3em;
+ padding: 0.5em 1.5em;
+ color: var(--clr-white);
+ border: 0.0625em solid var(--clr-white);
+ user-select: none;
+ pointer-events: none;
+ width: fit-content;
+ font-size: 0.9rem;
+
+ &:first-of-type {
+ border: none;
+ color: var(--clr-white);
+ background: var(--clr-variant-dark);
+ background-image: linear-gradient(-90deg,
+ var(--clr-variant),
+ var(--clr-variant-dark));
+ }
+
+ @include breakpoint-down('small') {
+ width: 100%;
+ }
+ }
+ }
+
+ &-background {
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ width: 100%;
+ user-select: none;
+ pointer-events: none;
+ }
+
+ &-external {
+ &_link {
+ display: flex;
+ align-items: center;
+ gap: 0.5em;
+ padding: 0.5em;
+ margin-top: 1em;
+ border-radius: 0.3em;
+ font-size: 1.2rem;
+ color: var(--clr-white);
+ border: none;
+ background: var(--clr-black-light);
+
+ svg {
+ width: 1.2em;
+ height: 1.2em;
+ }
+
+ &:is(:hover, :focus) {
+ color: var(--clr-white);
+ outline: 0.0625em solid var(--clr-background);
+ }
+ }
+ }
+
+ &-tag {
+ border-radius: 0.3em;
+ position: absolute;
+ right: 1em;
+ top: 1em;
+ padding: 0.2em 0.5em;
+ z-index: 10;
+ font-weight: 500;
+ background-color: var(--clr-black-light);
+ color: var(--clr-white);
+ // box-shadow: 0 0.625rem 1.25rem hsla(270, 71%, 22%, 0.2);
+ }
}
\ No newline at end of file
diff --git a/src/assets/scss/modules/component/_hero.scss b/archives/modules/component/_hero.scss
similarity index 100%
rename from src/assets/scss/modules/component/_hero.scss
rename to archives/modules/component/_hero.scss
diff --git a/src/assets/scss/modules/component/_nav.scss b/archives/modules/component/_nav.scss
similarity index 94%
rename from src/assets/scss/modules/component/_nav.scss
rename to archives/modules/component/_nav.scss
index 57b5630..f8ff033 100644
--- a/src/assets/scss/modules/component/_nav.scss
+++ b/archives/modules/component/_nav.scss
@@ -1,191 +1,191 @@
-.nav {
- background-color: var(--clr-background);
- flex-grow: 0;
- flex-shrink: 0;
- position: sticky;
- top: 0;
- padding: 0.8rem;
- z-index: 20;
-
- &-container {
- width: 100%;
- max-width: 64rem;
- margin: 0 auto;
- gap: 1rem;
- display: flex;
- flex-wrap: wrap;
- align-items: center;
- justify-content: space-between;
-
- .menubar {
- font-weight: 600;
- flex: 1;
- justify-content: flex-end;
- }
- }
-
- &-skipto {
- background-color: var(--clr-accent);
- color: var(--clr-white);
- display: flex;
- padding: 0 0.3rem;
- align-self: center;
- scale: 0 1;
- order: 2;
- transform-origin: left;
- transition: scale 200ms ease;
-
- &:focus {
- color: var(--clr-white);
- scale: 1;
- }
- }
-
- .leftside {
- display: flex;
- gap: 1rem;
- }
-
- .rightside {
- display: flex;
- gap: 0.2rem;
- }
-
- .brand {
- display: flex;
- gap: 0.5rem;
- flex: 1 0 auto;
- order: 1;
-
- &-title {
- font-size: 1.3rem;
- font-weight: 700;
- }
-
- &-logo {
- display: flex;
- align-items: center;
- }
- }
-
- .themes {
- transition: background-color 200ms ease-in;
- border-radius: 50%;
- }
-
- .themes,
- &-mobile {
- cursor: pointer;
- background: none;
- border: none;
- display: block;
- height: 2rem;
- width: 2rem;
- padding: 0.4rem;
- color: inherit;
-
- svg {
- width: 100%;
- height: 100%;
- }
-
- &__section {
- margin-top: 3.605625rem;
- right: 0;
- position: fixed;
- top: 0;
- left: 0;
- height: calc(100% - 3.605625rem);
- background-color: var(--clr-background);
- color: var(--clr-foreground);
- z-index: 20;
- display: flex;
- flex-direction: column;
- align-items: center;
- gap: 2rem;
- justify-content: center;
-
- &.not-showing {
- height: 0%;
- overflow-y: hidden;
- visibility: hidden;
- }
-
- @include breakpoint-up('medium') {
- height: 0%;
- overflow-y: hidden;
- visibility: hidden;
- }
-
- li {
- width: 100%;
- list-style: none;
-
- a {
- display: block;
- text-transform: uppercase;
- height: 5em;
-
- div {
- position: absolute;
- left: 50%;
- top: 50%;
- translate: -50% -50%;
- }
-
- &:is(:hover, :focus) {
- font-weight: 700;
- }
- }
- }
- }
- }
-
- &-mobile {
- @include breakpoint-up('medium') {
- display: none;
- }
- }
-
- ul {
- display: none;
- gap: 1rem;
- align-items: center;
-
- @include breakpoint-up('medium') {
- display: flex;
- }
-
- li {
- list-style: none;
- text-transform: uppercase;
- letter-spacing: 0rem;
-
- a {
- position: relative;
- z-index: 1;
- transition: color 300ms 150ms ease-in;
-
- &:hover,
- &:focus-visible {
- color: var(--clr-white);
- z-index: 1;
-
- &::before {
- width: 100%;
- }
- }
-
- &::before {
- content: '';
- position: absolute;
- width: 0%;
- background-color: var(--clr-accent);
- height: 110%;
- transition: all 150ms ease-in;
- z-index: -1;
- }
- }
- }
- }
+.nav {
+ background-color: var(--clr-background);
+ flex-grow: 0;
+ flex-shrink: 0;
+ position: sticky;
+ top: 0;
+ padding: 0.8rem;
+ z-index: 20;
+
+ &-container {
+ width: 100%;
+ max-width: 64rem;
+ margin: 0 auto;
+ gap: 1rem;
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: space-between;
+
+ .menubar {
+ font-weight: 600;
+ flex: 1;
+ justify-content: flex-end;
+ }
+ }
+
+ &-skipto {
+ background-color: var(--clr-accent);
+ color: var(--clr-white);
+ display: flex;
+ padding: 0 0.3rem;
+ align-self: center;
+ scale: 0 1;
+ order: 2;
+ transform-origin: left;
+ transition: scale 200ms ease;
+
+ &:focus {
+ color: var(--clr-white);
+ scale: 1;
+ }
+ }
+
+ .leftside {
+ display: flex;
+ gap: 1rem;
+ }
+
+ .rightside {
+ display: flex;
+ gap: 0.2rem;
+ }
+
+ .brand {
+ display: flex;
+ gap: 0.5rem;
+ flex: 1 0 auto;
+ order: 1;
+
+ &-title {
+ font-size: 1.3rem;
+ font-weight: 700;
+ }
+
+ &-logo {
+ display: flex;
+ align-items: center;
+ }
+ }
+
+ .themes {
+ transition: background-color 200ms ease-in;
+ border-radius: 50%;
+ }
+
+ .themes,
+ &-mobile {
+ cursor: pointer;
+ background: none;
+ border: none;
+ display: block;
+ height: 2rem;
+ width: 2rem;
+ padding: 0.4rem;
+ color: inherit;
+
+ svg {
+ width: 100%;
+ height: 100%;
+ }
+
+ &__section {
+ margin-top: 3.605625rem;
+ right: 0;
+ position: fixed;
+ top: 0;
+ left: 0;
+ height: calc(100% - 3.605625rem);
+ background-color: var(--clr-background);
+ color: var(--clr-foreground);
+ z-index: 20;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 2rem;
+ justify-content: center;
+
+ &.not-showing {
+ height: 0%;
+ overflow-y: hidden;
+ visibility: hidden;
+ }
+
+ @include breakpoint-up('medium') {
+ height: 0%;
+ overflow-y: hidden;
+ visibility: hidden;
+ }
+
+ li {
+ width: 100%;
+ list-style: none;
+
+ a {
+ display: block;
+ text-transform: uppercase;
+ height: 5em;
+
+ div {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ translate: -50% -50%;
+ }
+
+ &:is(:hover, :focus) {
+ font-weight: 700;
+ }
+ }
+ }
+ }
+ }
+
+ &-mobile {
+ @include breakpoint-up('medium') {
+ display: none;
+ }
+ }
+
+ ul {
+ display: none;
+ gap: 1rem;
+ align-items: center;
+
+ @include breakpoint-up('medium') {
+ display: flex;
+ }
+
+ li {
+ list-style: none;
+ text-transform: uppercase;
+ letter-spacing: 0rem;
+
+ a {
+ position: relative;
+ z-index: 1;
+ transition: color 300ms 150ms ease-in;
+
+ &:hover,
+ &:focus-visible {
+ color: var(--clr-white);
+ z-index: 1;
+
+ &::before {
+ width: 100%;
+ }
+ }
+
+ &::before {
+ content: '';
+ position: absolute;
+ width: 0%;
+ background-color: var(--clr-accent);
+ height: 110%;
+ transition: all 150ms ease-in;
+ z-index: -1;
+ }
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/src/assets/scss/modules/component/_partof.scss b/archives/modules/component/_partof.scss
similarity index 95%
rename from src/assets/scss/modules/component/_partof.scss
rename to archives/modules/component/_partof.scss
index 7f44956..6cc1e54 100644
--- a/src/assets/scss/modules/component/_partof.scss
+++ b/archives/modules/component/_partof.scss
@@ -1,168 +1,168 @@
-.part-of {
- background-color: var(--clr-background);
- width: 100%;
- margin-bottom: -6em;
- padding-bottom: 4em;
- position: relative;
- isolation: isolate;
-
- .description {
- font-size: 0.9rem;
- }
-
- &-more {
- display: block;
- width: 100%;
- padding: 1em;
- background-color: var(--clr-background);
- border: 0.0625em solid var(--clr-background-900);
- margin-top: 1em;
- border-radius: 0.3em;
-
- &:is(:hover, :focus) {
- background-color: var(--clr-accent);
- border-color: var(--clr-accent-light);
- color: var(--clr-white);
- }
- }
-
- &-container {
- max-width: 64rem;
- margin: 0 auto;
- padding: 3em 2em 2em 2em;
- width: 100%;
-
- h2 {
- text-transform: uppercase;
- letter-spacing: 0.1em;
-
- @include breakpoint-down('medium') {
- margin-bottom: 0.5em;
- }
- }
-
- .organization {
- &-container {
- margin-top: 1em;
- display: grid;
- gap: 1em;
- grid-template-columns: repeat(auto-fit, minmax(min(20rem, 100%), 1fr));
-
- svg {
- max-height: 8em;
-
- @include breakpoint-down('medium') {
- max-width: 100%;
- margin-top: 2em;
- }
- }
- }
-
- &-item {
- border: 0.0625em solid var(--clr-background-900);
- border-radius: 0.3em;
- padding: 1em;
- position: relative;
- background: var(--clr-background);
-
- &.full {
- grid-column: 1 / -1;
- display: flex;
- align-items: center;
- gap: 1em;
-
- svg {
- flex: 0 0 auto;
- }
-
- .organization-content {
- flex: 1 auto;
- margin-top: 2em;
- }
-
- @include breakpoint-down('medium') {
- flex-direction: column;
- }
- }
- }
-
- &-desc {
- margin-bottom: 1em;
- }
-
- &-position {
- display: flex;
- flex-direction: row;
- flex-wrap: wrap;
- gap: 0.5em;
-
- span {
- border-radius: 0.3em;
- padding: 0.5em 1.5em;
- color: var(--clr-foreground);
- border: 0.0625em solid var(--clr-foreground);
- align-items: center;
- gap: 0.4rem;
- user-select: none;
- pointer-events: none;
-
- &:first-of-type {
- border: none;
- color: var(--clr-white);
- background: var(--clr-accent-dark);
- background-image: linear-gradient(
- -90deg,
- var(--clr-accent),
- var(--clr-accent-dark)
- );
- background-size: 400%;
- animation: positionanimate 1s infinite alternate;
- }
- }
- }
-
- &-join {
- display: flex;
- flex-direction: row;
- color: var(--clr-foreground);
- border: 0.0625em solid var(--clr-foreground);
- border-radius: 0.3em;
- padding: 0.5em 1.5em;
- align-items: center;
- width: fit-content;
- position: absolute;
- right: 1em;
- font-size: 0.8rem;
- top: 1em;
- user-select: none;
- pointer-events: none;
- }
- }
- }
-
- &-svg {
- &_bottom {
- position: absolute;
- bottom: -0.0625em;
- z-index: -1;
- color: var(--clr-accent);
-
- @include breakpoint-up('medium') {
- bottom: -4.0625em;
- }
-
- @include breakpoint-up('large') {
- bottom: -8.0625em;
- }
- }
- }
-}
-
-@keyframes positionanimate {
- 0% {
- background-position: left;
- }
- 100% {
- background-position: right;
- }
-}
+.part-of {
+ background-color: var(--clr-background);
+ width: 100%;
+ margin-bottom: -6em;
+ padding-bottom: 4em;
+ position: relative;
+ isolation: isolate;
+
+ .description {
+ font-size: 0.9rem;
+ }
+
+ &-more {
+ display: block;
+ width: 100%;
+ padding: 1em;
+ background-color: var(--clr-background);
+ border: 0.0625em solid var(--clr-background-900);
+ margin-top: 1em;
+ border-radius: 0.3em;
+
+ &:is(:hover, :focus) {
+ background-color: var(--clr-accent);
+ border-color: var(--clr-accent-light);
+ color: var(--clr-white);
+ }
+ }
+
+ &-container {
+ max-width: 64rem;
+ margin: 0 auto;
+ padding: 3em 2em 2em 2em;
+ width: 100%;
+
+ h2 {
+ text-transform: uppercase;
+ letter-spacing: 0.1em;
+
+ @include breakpoint-down('medium') {
+ margin-bottom: 0.5em;
+ }
+ }
+
+ .organization {
+ &-container {
+ margin-top: 1em;
+ display: grid;
+ gap: 1em;
+ grid-template-columns: repeat(auto-fit, minmax(min(20rem, 100%), 1fr));
+
+ svg {
+ max-height: 8em;
+
+ @include breakpoint-down('medium') {
+ max-width: 100%;
+ margin-top: 2em;
+ }
+ }
+ }
+
+ &-item {
+ border: 0.0625em solid var(--clr-background-900);
+ border-radius: 0.3em;
+ padding: 1em;
+ position: relative;
+ background: var(--clr-background);
+
+ &.full {
+ grid-column: 1 / -1;
+ display: flex;
+ align-items: center;
+ gap: 1em;
+
+ svg {
+ flex: 0 0 auto;
+ }
+
+ .organization-content {
+ flex: 1 auto;
+ margin-top: 2em;
+ }
+
+ @include breakpoint-down('medium') {
+ flex-direction: column;
+ }
+ }
+ }
+
+ &-desc {
+ margin-bottom: 1em;
+ }
+
+ &-position {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ gap: 0.5em;
+
+ span {
+ border-radius: 0.3em;
+ padding: 0.5em 1.5em;
+ color: var(--clr-foreground);
+ border: 0.0625em solid var(--clr-foreground);
+ align-items: center;
+ gap: 0.4rem;
+ user-select: none;
+ pointer-events: none;
+
+ &:first-of-type {
+ border: none;
+ color: var(--clr-white);
+ background: var(--clr-accent-dark);
+ background-image: linear-gradient(
+ -90deg,
+ var(--clr-accent),
+ var(--clr-accent-dark)
+ );
+ background-size: 400%;
+ animation: positionanimate 1s infinite alternate;
+ }
+ }
+ }
+
+ &-join {
+ display: flex;
+ flex-direction: row;
+ color: var(--clr-foreground);
+ border: 0.0625em solid var(--clr-foreground);
+ border-radius: 0.3em;
+ padding: 0.5em 1.5em;
+ align-items: center;
+ width: fit-content;
+ position: absolute;
+ right: 1em;
+ font-size: 0.8rem;
+ top: 1em;
+ user-select: none;
+ pointer-events: none;
+ }
+ }
+ }
+
+ &-svg {
+ &_bottom {
+ position: absolute;
+ bottom: -0.0625em;
+ z-index: -1;
+ color: var(--clr-accent);
+
+ @include breakpoint-up('medium') {
+ bottom: -4.0625em;
+ }
+
+ @include breakpoint-up('large') {
+ bottom: -8.0625em;
+ }
+ }
+ }
+}
+
+@keyframes positionanimate {
+ 0% {
+ background-position: left;
+ }
+ 100% {
+ background-position: right;
+ }
+}
diff --git a/src/assets/scss/modules/component/_post.scss b/archives/modules/component/_post.scss
similarity index 95%
rename from src/assets/scss/modules/component/_post.scss
rename to archives/modules/component/_post.scss
index 304b0db..5c8d496 100644
--- a/src/assets/scss/modules/component/_post.scss
+++ b/archives/modules/component/_post.scss
@@ -1,79 +1,79 @@
-.post {
- &s {
- margin-top: 2.5rem;
-
- &-yeargroup {
- margin-bottom: 0.5em;
- }
-
- &-detail {
- margin-top: 1rem;
- margin-left: 2rem;
- background-color: var(--clr-background);
- color: var(--clr-foreground-700);
- border: 0.0625em solid var(--clr-background-900);
- padding: 1rem;
- border-radius: 0.3rem;
-
- @include breakpoint-down('small') {
- margin-inline: 0;
- }
-
- &_header {
- font-size: 1.6rem;
- line-height: 1.1;
- margin-bottom: 0.5em;
- display: block;
- font-weight: 600;
- color: var(--clr-foreground);
- }
-
- &_accent {
- color: var(--clr-white);
- margin-bottom: 1em;
- width: fit-content;
- flex-wrap: wrap;
- gap: 0.5em;
- display: flex;
-
- &-item {
- font-size: 0.9rem;
- gap: 0.5em;
- border-radius: 0.3em;
- padding: 0.4em;
- display: flex;
- color: var(--clr-foreground);
- border: 0.0625em solid var(--clr-foreground);
- align-items: center;
-
- &_filled {
- border: none;
- color: var(--clr-white);
- box-shadow: 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4);
- background-color: var(--clr-accent-light);
- background-image: linear-gradient(45deg,
- var(--clr-accent-dark),
- var(--clr-accent));
- }
- }
- }
-
- &_svg {
- width: 1.5em;
- height: fit-content;
- }
- }
-
- &-list {
- margin: 0;
- }
-
- &:not(:first-of-type) {
- margin-top: 1.5rem;
- }
-
- &:is(:last-of-type) {
- margin-bottom: 1.5rem;
- }
- }
+.post {
+ &s {
+ margin-top: 2.5rem;
+
+ &-yeargroup {
+ margin-bottom: 0.5em;
+ }
+
+ &-detail {
+ margin-top: 1rem;
+ margin-left: 2rem;
+ background-color: var(--clr-background);
+ color: var(--clr-foreground-700);
+ border: 0.0625em solid var(--clr-background-900);
+ padding: 1rem;
+ border-radius: 0.3rem;
+
+ @include breakpoint-down('small') {
+ margin-inline: 0;
+ }
+
+ &_header {
+ font-size: 1.6rem;
+ line-height: 1.1;
+ margin-bottom: 0.5em;
+ display: block;
+ font-weight: 600;
+ color: var(--clr-foreground);
+ }
+
+ &_accent {
+ color: var(--clr-white);
+ margin-bottom: 1em;
+ width: fit-content;
+ flex-wrap: wrap;
+ gap: 0.5em;
+ display: flex;
+
+ &-item {
+ font-size: 0.9rem;
+ gap: 0.5em;
+ border-radius: 0.3em;
+ padding: 0.4em;
+ display: flex;
+ color: var(--clr-foreground);
+ border: 0.0625em solid var(--clr-foreground);
+ align-items: center;
+
+ &_filled {
+ border: none;
+ color: var(--clr-white);
+ box-shadow: 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4);
+ background-color: var(--clr-accent-light);
+ background-image: linear-gradient(45deg,
+ var(--clr-accent-dark),
+ var(--clr-accent));
+ }
+ }
+ }
+
+ &_svg {
+ width: 1.5em;
+ height: fit-content;
+ }
+ }
+
+ &-list {
+ margin: 0;
+ }
+
+ &:not(:first-of-type) {
+ margin-top: 1.5rem;
+ }
+
+ &:is(:last-of-type) {
+ margin-bottom: 1.5rem;
+ }
+ }
}
\ No newline at end of file
diff --git a/src/assets/scss/modules/component/_preload.scss b/archives/modules/component/_preload.scss
similarity index 92%
rename from src/assets/scss/modules/component/_preload.scss
rename to archives/modules/component/_preload.scss
index 0a749ff..485b280 100644
--- a/src/assets/scss/modules/component/_preload.scss
+++ b/archives/modules/component/_preload.scss
@@ -1,55 +1,55 @@
-.preload {
- position: fixed;
- display: flex;
- align-items: center;
- justify-content: center;
- background-color: var(--clr-background);
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- height: 100dvh;
- z-index: 999;
- flex-direction: column;
- translate: 0 0;
- opacity: 1;
- transition: transform 1s ease-in-out;
-
- svg {
- rotate: 0deg;
- max-width: 10em;
- animation: preload 2s infinite;
- }
-
- &-text {
- margin-top: 1em;
- max-width: 30ch;
- text-align: center;
- }
-
- &.hidden {
- translate: 0 -100vh;
- }
-
- &.disabled {
- display: none;
- }
-}
-
-@keyframes preload {
- 25% {
- rotate: 15deg;
- }
-
- 50% {
- rotate: 0deg;
- }
-
- 75% {
- rotate: -15deg;
- }
-
- 100% {
- rotate: 0deg;
- }
-}
+.preload {
+ position: fixed;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background-color: var(--clr-background);
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ height: 100dvh;
+ z-index: 999;
+ flex-direction: column;
+ translate: 0 0;
+ opacity: 1;
+ transition: transform 1s ease-in-out;
+
+ svg {
+ rotate: 0deg;
+ max-width: 10em;
+ animation: preload 2s infinite;
+ }
+
+ &-text {
+ margin-top: 1em;
+ max-width: 30ch;
+ text-align: center;
+ }
+
+ &.hidden {
+ translate: 0 -100vh;
+ }
+
+ &.disabled {
+ display: none;
+ }
+}
+
+@keyframes preload {
+ 25% {
+ rotate: 15deg;
+ }
+
+ 50% {
+ rotate: 0deg;
+ }
+
+ 75% {
+ rotate: -15deg;
+ }
+
+ 100% {
+ rotate: 0deg;
+ }
+}
diff --git a/src/assets/scss/modules/component/_prototype.scss b/archives/modules/component/_prototype.scss
similarity index 94%
rename from src/assets/scss/modules/component/_prototype.scss
rename to archives/modules/component/_prototype.scss
index bc4496c..777d4e3 100644
--- a/src/assets/scss/modules/component/_prototype.scss
+++ b/archives/modules/component/_prototype.scss
@@ -1,259 +1,259 @@
-.prototype {
- margin-top: 4rem;
- position: relative;
- isolation: isolate;
-
- &s {
- display: flex;
- flex-direction: column;
- align-items: center;
- flex-wrap: wrap;
- justify-content: center;
- gap: 7rem;
-
- @include breakpoint-up('large') {
- margin: 3rem;
- }
-
- @include breakpoint-down('medium') {
- flex-direction: row;
- }
- }
-
- &-header {
- margin-bottom: 1rem;
- }
-
- &-card {
- align-items: center;
- display: flex;
- border-radius: 0.3rem;
- width: 100%;
-
- &:first-of-type {
- @include breakpoint-down('medium') {
- margin-top: 2em;
- }
- }
-
- @include breakpoint-down('medium') {
- flex-direction: column;
- }
-
- &:nth-of-type(odd) {
- .prototype-header {
- order: 2;
-
- &::before {
- background-color: var(--clr-accent-dark);
- rotate: -6deg;
- }
-
- @include breakpoint-down('medium') {
- order: 0;
- }
- }
-
- .prototype-description {
- .text {
- padding: 1rem;
- padding-right: 2rem;
- }
-
- .links {
- justify-content: flex-start;
- padding-left: 1rem;
- }
- }
- }
- }
-
- &-description {
- flex: 1 1 auto;
- z-index: 5;
-
- ul {
- li {
- margin-top: 0.3rem;
- }
- }
-
- .text {
- padding: 1rem;
- padding-left: 2rem;
-
- .language {
- display: inline-block;
- padding: 0 0.1rem;
- background-color: var(--clr-accent-dark);
- color: var(--clr-white);
- border-radius: 0.3rem;
- user-select: none;
- font-size: 0.8rem;
- }
-
- @include breakpoint-down('medium') {
- padding-left: 0;
- }
-
- ul {
- margin-top: 0.8rem;
- border-radius: 0.3rem;
- background-color: hsl(0, 0%, 10%);
- padding: 1rem;
- box-shadow: inset 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4);
- }
- }
-
- .links {
- display: flex;
- align-items: flex-end;
- justify-content: flex-end;
- padding-right: 1rem;
-
- a {
- background-color: var(--clr-accent);
- color: var(--clr-white);
- padding: 0.5rem 1rem;
- border-radius: 0.3rem;
- transition: all 300ms ease-out;
- display: flex;
-
- svg {
- flex: 0 0 auto;
- height: 1.5rem;
- }
-
- &:hover {
- filter: brightness(120%);
- }
- }
- }
-
- &_header {
- display: flex;
- margin-bottom: 1em;
- gap: 0.5em;
- font-weight: 700;
- align-items: center;
- line-height: 1.2;
- }
- }
-
- &-more {
- display: flex;
- flex-wrap: wrap;
- gap: 0.4rem;
-
- i {
- display: inline-block;
- font-style: normal;
- padding: 0.2rem 0.7rem;
- background-color: var(--clr-background-900);
- border-radius: 0.3rem;
-
- &.error {
- background-color: hsl(0, 100%, 43%);
- color: var(--clr-white);
- }
-
- &.active {
- background-color: #067e06;
- color: var(--clr-white);
- }
- }
-
- .status {
- background-image: linear-gradient(
- -90deg,
- var(--clr-accent),
- var(--clr-accent-dark)
- );
- padding: 0 0.7rem;
- display: flex;
- align-items: center;
- border-radius: 0.3rem;
- color: white;
- margin-right: 0.3rem;
- }
- }
-
- &-header {
- flex: 0 0 auto;
- position: relative;
- width: 25rem;
- height: 20rem;
- color: var(--clr-white);
-
- @include breakpoint-down('medium') {
- width: 100%;
- max-width: 25rem;
- }
-
- &:hover {
- .note {
- scale: 1.1;
- }
- }
-
- &::before {
- content: '';
- position: absolute;
- width: 100%;
- height: 100%;
- rotate: 6deg;
- background: var(--clr-accent);
- left: -0.7rem;
- border-radius: 40% 20% / 10%;
- }
- }
-
- .note {
- article {
- padding: 1rem;
- height: 100%;
- overflow-y: auto;
- scrollbar-width: none;
- position: relative;
-
- &::-webkit-scrollbar {
- width: 0;
- }
- }
-
- pre {
- overflow: scroll;
- &::-webkit-scrollbar {
- width: 0;
- }
- }
- }
-
- &-svg {
- &_top {
- position: absolute;
- top: -16.0625em;
- z-index: -1;
- color: var(--clr-accent);
-
- @include breakpoint-up('large') {
- top: -20.0625em;
- }
-
- @include breakpoint-down('small') {
- top: -10em;
- }
-
- @include breakpoint-up('xlarge') {
- top: -25em;
- }
- }
-
- &_bottom {
- position: absolute;
- bottom: -0.0625em;
- z-index: -1;
- color: var(--clr-background);
- }
- }
-}
+.prototype {
+ margin-top: 4rem;
+ position: relative;
+ isolation: isolate;
+
+ &s {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ flex-wrap: wrap;
+ justify-content: center;
+ gap: 7rem;
+
+ @include breakpoint-up('large') {
+ margin: 3rem;
+ }
+
+ @include breakpoint-down('medium') {
+ flex-direction: row;
+ }
+ }
+
+ &-header {
+ margin-bottom: 1rem;
+ }
+
+ &-card {
+ align-items: center;
+ display: flex;
+ border-radius: 0.3rem;
+ width: 100%;
+
+ &:first-of-type {
+ @include breakpoint-down('medium') {
+ margin-top: 2em;
+ }
+ }
+
+ @include breakpoint-down('medium') {
+ flex-direction: column;
+ }
+
+ &:nth-of-type(odd) {
+ .prototype-header {
+ order: 2;
+
+ &::before {
+ background-color: var(--clr-accent-dark);
+ rotate: -6deg;
+ }
+
+ @include breakpoint-down('medium') {
+ order: 0;
+ }
+ }
+
+ .prototype-description {
+ .text {
+ padding: 1rem;
+ padding-right: 2rem;
+ }
+
+ .links {
+ justify-content: flex-start;
+ padding-left: 1rem;
+ }
+ }
+ }
+ }
+
+ &-description {
+ flex: 1 1 auto;
+ z-index: 5;
+
+ ul {
+ li {
+ margin-top: 0.3rem;
+ }
+ }
+
+ .text {
+ padding: 1rem;
+ padding-left: 2rem;
+
+ .language {
+ display: inline-block;
+ padding: 0 0.1rem;
+ background-color: var(--clr-accent-dark);
+ color: var(--clr-white);
+ border-radius: 0.3rem;
+ user-select: none;
+ font-size: 0.8rem;
+ }
+
+ @include breakpoint-down('medium') {
+ padding-left: 0;
+ }
+
+ ul {
+ margin-top: 0.8rem;
+ border-radius: 0.3rem;
+ background-color: hsl(0, 0%, 10%);
+ padding: 1rem;
+ box-shadow: inset 0 0.3125rem 0.625rem hsla(0, 0%, 0%, 0.4);
+ }
+ }
+
+ .links {
+ display: flex;
+ align-items: flex-end;
+ justify-content: flex-end;
+ padding-right: 1rem;
+
+ a {
+ background-color: var(--clr-accent);
+ color: var(--clr-white);
+ padding: 0.5rem 1rem;
+ border-radius: 0.3rem;
+ transition: all 300ms ease-out;
+ display: flex;
+
+ svg {
+ flex: 0 0 auto;
+ height: 1.5rem;
+ }
+
+ &:hover {
+ filter: brightness(120%);
+ }
+ }
+ }
+
+ &_header {
+ display: flex;
+ margin-bottom: 1em;
+ gap: 0.5em;
+ font-weight: 700;
+ align-items: center;
+ line-height: 1.2;
+ }
+ }
+
+ &-more {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.4rem;
+
+ i {
+ display: inline-block;
+ font-style: normal;
+ padding: 0.2rem 0.7rem;
+ background-color: var(--clr-background-900);
+ border-radius: 0.3rem;
+
+ &.error {
+ background-color: hsl(0, 100%, 43%);
+ color: var(--clr-white);
+ }
+
+ &.active {
+ background-color: #067e06;
+ color: var(--clr-white);
+ }
+ }
+
+ .status {
+ background-image: linear-gradient(
+ -90deg,
+ var(--clr-accent),
+ var(--clr-accent-dark)
+ );
+ padding: 0 0.7rem;
+ display: flex;
+ align-items: center;
+ border-radius: 0.3rem;
+ color: white;
+ margin-right: 0.3rem;
+ }
+ }
+
+ &-header {
+ flex: 0 0 auto;
+ position: relative;
+ width: 25rem;
+ height: 20rem;
+ color: var(--clr-white);
+
+ @include breakpoint-down('medium') {
+ width: 100%;
+ max-width: 25rem;
+ }
+
+ &:hover {
+ .note {
+ scale: 1.1;
+ }
+ }
+
+ &::before {
+ content: '';
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ rotate: 6deg;
+ background: var(--clr-accent);
+ left: -0.7rem;
+ border-radius: 40% 20% / 10%;
+ }
+ }
+
+ .note {
+ article {
+ padding: 1rem;
+ height: 100%;
+ overflow-y: auto;
+ scrollbar-width: none;
+ position: relative;
+
+ &::-webkit-scrollbar {
+ width: 0;
+ }
+ }
+
+ pre {
+ overflow: scroll;
+ &::-webkit-scrollbar {
+ width: 0;
+ }
+ }
+ }
+
+ &-svg {
+ &_top {
+ position: absolute;
+ top: -16.0625em;
+ z-index: -1;
+ color: var(--clr-accent);
+
+ @include breakpoint-up('large') {
+ top: -20.0625em;
+ }
+
+ @include breakpoint-down('small') {
+ top: -10em;
+ }
+
+ @include breakpoint-up('xlarge') {
+ top: -25em;
+ }
+ }
+
+ &_bottom {
+ position: absolute;
+ bottom: -0.0625em;
+ z-index: -1;
+ color: var(--clr-background);
+ }
+ }
+}
diff --git a/src/assets/scss/modules/component/_title.scss b/archives/modules/component/_title.scss
similarity index 100%
rename from src/assets/scss/modules/component/_title.scss
rename to archives/modules/component/_title.scss
diff --git a/archives/style.scss b/archives/style.scss
new file mode 100644
index 0000000..5dec5b8
--- /dev/null
+++ b/archives/style.scss
@@ -0,0 +1,25 @@
+@import './modules/vars';
+@import './modules/mixin';
+@import './modules/global';
+
+@import './modules/header';
+@import './modules/component/nav';
+@import './modules/component/title';
+@import './modules/main';
+@import './modules/footer';
+
+@import './modules/component/prototype';
+@import './modules/component/card';
+@import './modules/component/partof';
+@import './modules/component/preload';
+
+@import './modules/component/aboutme';
+@import './modules/component/hero';
+@import './modules/component/featured';
+@import './modules/component/post';
+@import './modules/component/article';
+@import './modules/component/clients';
+@import './modules/component/animation';
+@import './modules/component/contact';
+
+@import './modules/component/error';
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 74413c3..963379b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,6 +9,7 @@
"version": "1.0.0",
"license": "MIT",
"dependencies": {
+ "dotenv": "^16.5.0",
"highlight.js": "^11.5.1",
"markdown-it-anchor": "^8.6.2",
"markdown-it-attrs": "^4.1.4",
@@ -1353,6 +1354,18 @@
"url": "https://github.com/fb55/domutils?sponsor=1"
}
},
+ "node_modules/dotenv": {
+ "version": "16.5.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz",
+ "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://dotenvx.com"
+ }
+ },
"node_modules/dunder-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
diff --git a/package.json b/package.json
index d0fae63..613cea2 100644
--- a/package.json
+++ b/package.json
@@ -29,6 +29,7 @@
"@11ty/eleventy-plugin-rss": "^1.2.0"
},
"dependencies": {
+ "dotenv": "^16.5.0",
"highlight.js": "^11.5.1",
"markdown-it-anchor": "^8.6.2",
"markdown-it-attrs": "^4.1.4",
diff --git a/src/_includes/article.njk b/src/_includes/article.njk
index 8c9d23a..264109c 100644
--- a/src/_includes/article.njk
+++ b/src/_includes/article.njk
@@ -1,5 +1,6 @@
---
layout: 'layouts/secondary.njk'
+style: 'use/article.css'
---
{% set previousPost = collections.post | getPreviousCollectionItem(page) %}
{% set nextPost = collections.post | getNextCollectionItem(page) %}
diff --git a/src/_includes/components/nav.njk b/src/_includes/components/nav.njk
index ad8ba34..3fbef25 100644
--- a/src/_includes/components/nav.njk
+++ b/src/_includes/components/nav.njk
@@ -2,7 +2,7 @@