Initial Build

This commit is contained in:
Alex 2026-06-03 17:18:50 -07:00
parent 71cd3acccd
commit 6c0d9a3f98
140 changed files with 9802 additions and 2403 deletions

View file

@ -1,10 +0,0 @@
import './stimulus_bootstrap.js';
/*
* Welcome to your app's main JavaScript file!
*
* This file will be included onto the page via the importmap() Twig function,
* which should already be in your base.html.twig.
*/
import './styles/app.css';
console.log('This log comes from assets/app.js - welcome to AssetMapper! 🎉');

100
assets/brain.js Normal file
View file

@ -0,0 +1,100 @@
import './styles/brain.css';
import './stimulus_bootstrap.js';
const init = () => {
menu();
editorInit();
photosUploadInit();
};
const menu = () => {
const subMenus = document.querySelectorAll('.sub-menu--link');
subMenus.forEach((menu) => {
menu.addEventListener('mouseover', (event) => {
const targetedMenu = event.target.nextElementSibling;
const openMenu = document.querySelector('.level-2.open');
if (openMenu) {
openMenu.classList.remove('open');
}
if (targetedMenu.classList.contains('open')) {
targetedMenu.classList.remove('open');
} else {
targetedMenu.classList.add('open');
}
});
});
}
const editorInit = () => {
if (document.querySelector('#post_text')) {
const editor = Jodit.make('#post_text', {
"enter": "P",
"theme": 'dark',
"disablePlugins": "ai-assistant,about",
"width": 800,
"height": 500
});
}
if (document.querySelector('#page_text')) {
const editor = Jodit.make('#page_text', {
"enter": "P",
"theme": 'dark',
"disablePlugins": "ai-assistant,about",
"width": 800,
"height": 500
});
}
if (document.querySelector('#photos_text')) {
const editor = Jodit.make('#photos_text', {
"enter": "P",
"theme": 'dark',
"disablePlugins": "ai-assistant,about",
"width": 800,
"height": 500
});
}
}
const photosUploadInit = () => {
document
.querySelectorAll('.add_item_link')
.forEach(btn => {
btn.addEventListener("click", addFormToCollection)
});
function addFormToCollection(e) {
const collectionHolder = document.querySelector('#' + e.target.dataset.collectionHolderId);
const item = document.createElement('li');
let index;
if (!collectionHolder.dataset.index) {
collectionHolder.dataset.index = 0;
}
index = collectionHolder.dataset.index;
item.innerHTML = collectionHolder
.dataset
.prototype
.replace(
/__name__/g,
index
);
collectionHolder.appendChild(item);
collectionHolder.dataset.index++;
};
}
init();

View file

@ -1,5 +1,16 @@
{
"controllers": {
"@symfony/ux-autocomplete": {
"autocomplete": {
"enabled": true,
"fetch": "eager",
"autoimport": {
"tom-select/dist/css/tom-select.default.css": true,
"tom-select/dist/css/tom-select.bootstrap4.css": false,
"tom-select/dist/css/tom-select.bootstrap5.css": false
}
}
},
"@symfony/ux-turbo": {
"turbo-core": {
"enabled": true,

57
assets/landing.js Normal file
View file

@ -0,0 +1,57 @@
import './styles/landing.css';
import './stimulus_bootstrap.js';
const mobileMenu = () => {
const icon = document.querySelector('.icon-menu');
const menu = document.querySelector('.front-menu');
icon.addEventListener('click', (event) => {
icon.classList.toggle('open');
menu.classList.toggle('open');
});
}
const jobInfoToggle = () => {
const jobs = document.querySelectorAll('#work .jobs .job');
jobs.forEach((job) => {
job.addEventListener('click', (event) => {
const jobId = job.dataset.jobId;
const jobInfo = document.querySelector(`#${jobId}`);
const activeJobLabel = document.querySelector('#work .jobs .job.active');
if (jobInfo.classList.contains('hide')) {
const openJob = document.querySelector('#work .jobs .job-highlight.show');
if (jobInfo.classList.contains('hide')) {
jobInfo.classList.remove('hide');
jobInfo.classList.add('show');
openJob.classList.remove('show');
openJob.classList.add('hide');
}
}
if (!job.classList.contains('active')) {
job.classList.add('active');
activeJobLabel.classList.remove('active');
}
});
});
}
const scrollTo = () => {
const links = document.querySelectorAll('#outro .menu a');
links.forEach((link) => {
link.addEventListener('click', (event) => {
const anchor = link.dataset.scrollTo;
const element = document.querySelector(`#${anchor}`).scrollIntoView();
window.history.pushState({}, '', `#${anchor}`);
})
});
}
mobileMenu();
jobInfoToggle();
scrollTo();

52
assets/main.js Normal file
View file

@ -0,0 +1,52 @@
import './stimulus_bootstrap.js';
import './styles/main.css';
const mobileMenu = () => {
const icon = document.querySelector('.icon-menu');
const menu = document.querySelector('.menu');
const header = document.querySelector('header');
const body = document.querySelector('body');
icon.addEventListener('click', (event) => {
icon.classList.toggle('open');
menu.classList.toggle('open');
header.classList.toggle('open');
body.classList.toggle('menu-open');
});
}
const album = () => {
const album = document.querySelector('#album');
if (album) {
const photos = album.querySelectorAll('.photo');
const openImageContainer = document.querySelector('#open-image');
const close = openImageContainer.querySelector('.close');
photos.forEach((photo) => {
photo.addEventListener('click', (event) => {
const dataset = photo.dataset;
openImageContainer.querySelector('#image').setAttribute('src', dataset.url);
openImageContainer.querySelector('#image').setAttribute('alt', dataset.alt);
openImageContainer.querySelector('#caption').innerHTML = dataset.caption;
openImageContainer.querySelector('#date').innerHTML = `Date Taken: ${dataset.date}`;
openImageContainer.querySelector('#location').innerHTML = `Location: ${dataset.location}`;
openImageContainer.querySelector('#equipment').innerHTML = `Camera Used: ${dataset.equipment}`;
openImageContainer.classList.toggle('open');
document.querySelector('body').classList.toggle('photo-open');
});
});
close.addEventListener('click', (event) => {
if (openImageContainer.classList.contains('open')) {
openImageContainer.classList.remove('open');
document.querySelector('body').classList.remove('photo-open');
}
})
}
}
mobileMenu();
album();

446
assets/package-lock.json generated Normal file
View file

@ -0,0 +1,446 @@
{
"name": "brain",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "brain",
"version": "1.0.0",
"license": "ISC",
"dependencies": {
"sass": "^1.100.0"
}
},
"node_modules/@parcel/watcher": {
"version": "2.5.6",
"resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz",
"integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==",
"hasInstallScript": true,
"license": "MIT",
"optional": true,
"dependencies": {
"detect-libc": "^2.0.3",
"is-glob": "^4.0.3",
"node-addon-api": "^7.0.0",
"picomatch": "^4.0.3"
},
"engines": {
"node": ">= 10.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
},
"optionalDependencies": {
"@parcel/watcher-android-arm64": "2.5.6",
"@parcel/watcher-darwin-arm64": "2.5.6",
"@parcel/watcher-darwin-x64": "2.5.6",
"@parcel/watcher-freebsd-x64": "2.5.6",
"@parcel/watcher-linux-arm-glibc": "2.5.6",
"@parcel/watcher-linux-arm-musl": "2.5.6",
"@parcel/watcher-linux-arm64-glibc": "2.5.6",
"@parcel/watcher-linux-arm64-musl": "2.5.6",
"@parcel/watcher-linux-x64-glibc": "2.5.6",
"@parcel/watcher-linux-x64-musl": "2.5.6",
"@parcel/watcher-win32-arm64": "2.5.6",
"@parcel/watcher-win32-ia32": "2.5.6",
"@parcel/watcher-win32-x64": "2.5.6"
}
},
"node_modules/@parcel/watcher-android-arm64": {
"version": "2.5.6",
"resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz",
"integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">= 10.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/@parcel/watcher-darwin-arm64": {
"version": "2.5.6",
"resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz",
"integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">= 10.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/@parcel/watcher-darwin-x64": {
"version": "2.5.6",
"resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz",
"integrity": "sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">= 10.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/@parcel/watcher-freebsd-x64": {
"version": "2.5.6",
"resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz",
"integrity": "sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">= 10.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/@parcel/watcher-linux-arm-glibc": {
"version": "2.5.6",
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz",
"integrity": "sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==",
"cpu": [
"arm"
],
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/@parcel/watcher-linux-arm-musl": {
"version": "2.5.6",
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz",
"integrity": "sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==",
"cpu": [
"arm"
],
"libc": [
"musl"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/@parcel/watcher-linux-arm64-glibc": {
"version": "2.5.6",
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz",
"integrity": "sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==",
"cpu": [
"arm64"
],
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/@parcel/watcher-linux-arm64-musl": {
"version": "2.5.6",
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz",
"integrity": "sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==",
"cpu": [
"arm64"
],
"libc": [
"musl"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/@parcel/watcher-linux-x64-glibc": {
"version": "2.5.6",
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz",
"integrity": "sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==",
"cpu": [
"x64"
],
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/@parcel/watcher-linux-x64-musl": {
"version": "2.5.6",
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz",
"integrity": "sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==",
"cpu": [
"x64"
],
"libc": [
"musl"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/@parcel/watcher-win32-arm64": {
"version": "2.5.6",
"resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz",
"integrity": "sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 10.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/@parcel/watcher-win32-ia32": {
"version": "2.5.6",
"resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz",
"integrity": "sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==",
"cpu": [
"ia32"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 10.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/@parcel/watcher-win32-x64": {
"version": "2.5.6",
"resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz",
"integrity": "sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 10.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/chokidar": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz",
"integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==",
"license": "MIT",
"dependencies": {
"readdirp": "^5.0.0"
},
"engines": {
"node": ">= 20.19.0"
},
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/detect-libc": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
"integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
"license": "Apache-2.0",
"optional": true,
"engines": {
"node": ">=8"
}
},
"node_modules/immutable": {
"version": "5.1.5",
"resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.5.tgz",
"integrity": "sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==",
"license": "MIT"
},
"node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"license": "MIT",
"optional": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"license": "MIT",
"optional": true,
"dependencies": {
"is-extglob": "^2.1.1"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/node-addon-api": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
"integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
"license": "MIT",
"optional": true
},
"node_modules/picomatch": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
"license": "MIT",
"optional": true,
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/readdirp": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz",
"integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==",
"license": "MIT",
"engines": {
"node": ">= 20.19.0"
},
"funding": {
"type": "individual",
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/sass": {
"version": "1.100.0",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.100.0.tgz",
"integrity": "sha512-B5j0rYMlinhhOo9tjQebMVVn0TfyXAF+wB3b2ggZUuJ/is/Y+7+JGjirAMxHZ9Z3hIP98NPfamlAkBHa1lAaXQ==",
"license": "MIT",
"dependencies": {
"chokidar": "^5.0.0",
"immutable": "^5.1.5",
"source-map-js": ">=0.6.2 <2.0.0"
},
"bin": {
"sass": "sass.js"
},
"engines": {
"node": ">=20.19.0"
},
"optionalDependencies": {
"@parcel/watcher": "^2.4.1"
}
},
"node_modules/source-map-js": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
}
}
}

26
assets/package.json Normal file
View file

@ -0,0 +1,26 @@
{
"name": "brain",
"version": "1.0.0",
"description": "",
"license": "ISC",
"author": "",
"type": "commonjs",
"main": "index.js",
"directories": {
"test": "tests"
},
"scripts": {
"fe-watch": "sass styles/scss/main.scss styles/main.css -w",
"be-watch": "sass styles/scss/brain.scss styles/brain.css -w",
"landing-watch": "sass styles/scss/landing.scss styles/landing.css -W",
"fe-build": "sass styles/scss/main.scss styles/main.css --style compressed --no-source-map",
"be-build": "sass styles/scss/brain.scss styles/brain.css --style compressed --no-source-map",
"landing-build": "sass styles/scss/brain.scss styles/brain.css --style compressed --no-source-map",
"all-build": "npm run fe-build && npm run be-build && npm run landing-build"
},
"dependencies": {
"sass": "^1.100.0"
}
}

View file

@ -1,3 +0,0 @@
body {
background-color: skyblue;
}

1
assets/styles/brain.css Normal file
View file

@ -0,0 +1 @@
.page{max-width:800px;width:100%;margin:0 auto}.page h2{margin:0}.page .row{display:block;padding:1rem 0}.page .row label{display:block}.page .row input{height:30px;width:300px}.page .row #post_published{width:30px;height:30px}.page .row #post_save{width:100px;height:30px;background-color:green;border:none;color:#fff}#brain-wrapper header .level-1{display:flex;justify-content:center;align-items:flex-start;position:relative;list-style-type:none}#brain-wrapper header .level-1--item{padding:1rem 2rem}#brain-wrapper header .level-1 .level-2{display:none;margin:0;padding:0}#brain-wrapper header .level-1 .level-2.open{display:block;position:absolute}#brain-wrapper header .level-1 .level-2--item{padding:1rem 0}body{background-color:#d3d3d3}

644
assets/styles/landing.css Normal file
View file

@ -0,0 +1,644 @@
.home {
display: flex;
align-items: center;
flex-direction: column;
background-color: #696969;
margin: 0;
}
.home header {
width: 100%;
}
.home header h1 {
margin: 0;
}
.home header h1 a {
display: block;
font-size: 1.5rem;
text-decoration: none;
color: #1d1f20;
background-color: #d7b94c;
border: 2px solid #d7b94c;
padding: 2px 2px;
}
.home header h1 a:hover {
color: #d7b94c;
background-color: unset;
}
.home header nav {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 2rem;
overflow: hidden;
position: relative;
}
.home header nav .icon.icon-menu {
position: absolute;
z-index: 999;
display: block;
right: 2rem;
width: 30px;
height: 30px;
transition: right 100ms ease;
}
@media screen and (min-width: 600px) {
.home header nav .icon.icon-menu {
display: none;
}
}
.home header nav .icon.icon-menu:before {
content: "";
display: block;
background-image: url("/icons/menu-grid.svg");
background-size: 100%;
position: absolute;
width: 30px;
height: 30px;
}
.home header nav .icon.icon-menu:hover {
cursor: pointer;
}
.home header nav .icon.icon-menu.open {
right: calc(33.3333333333% + 1rem);
}
.home header nav .front-menu {
display: flex;
flex-direction: column;
gap: 1rem;
overflow: hidden;
position: fixed;
right: -100%;
top: 1rem;
margin: 0;
padding: 0;
transition: right 200ms ease;
}
.home header nav .front-menu.open {
right: 1rem;
}
@media screen and (min-width: 600px) {
.home header nav .front-menu {
flex-direction: row;
position: relative;
top: unset;
right: unset;
}
}
.home header nav .front-menu {
list-style: none;
}
.home header nav .front-menu li a {
display: block;
font-family: AtomicAge-Regular;
color: #d7b94c;
font-size: 1.5rem;
text-decoration: none;
padding-bottom: 2px;
}
.home header nav .front-menu li a:hover {
border-bottom: 2px solid #d7b94c;
padding-bottom: 0;
}
.home #root.v1 {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: auto;
width: 100%;
margin: 0 auto;
}
.home #root.v1 section {
margin: 0;
padding: 1rem 0;
}
.home #root.v1 section .title {
margin: 0;
}
.home #root.v1 .top {
display: flex;
min-height: 100vh;
justify-content: center;
align-items: center;
width: 100%;
}
.home #root.v1 .top .computer {
display: block;
max-width: 1024px;
max-height: 1024px;
width: 100%;
background-color: #1d1f20;
border: 2rem solid #a6a695;
padding: 1rem 1rem;
box-shadow: 0 0 5px 10px rgba(29, 31, 32, 0.45);
}
.home #root.v1 .top .computer .heading {
margin: 0;
font-size: 1rem;
font-family: Montserrat-Light;
color: #d7b94c;
position: relative;
padding-left: 1rem;
}
@media screen and (min-width: 600px) {
.home #root.v1 .top .computer .heading {
font-size: 2rem;
}
}
.home #root.v1 .top .computer .heading:before {
content: ">";
position: absolute;
left: 0;
width: 100%;
}
.home #root.v1 .top .computer .heading:after {
content: "|";
position: absolute;
right: 0;
width: 100%;
background: #1d1f20;
animation: typing 0.5s steps(16) forwards, cursor 1s infinite;
}
@media screen and (min-width: 600px) {
.home #root.v1 .top .computer .heading:after {
animation: typing 0.5s steps(16) forwards, cursor 1s infinite;
}
}
.home #root.v1 .top .computer #intro {
width: fit-content;
}
.home #root.v1 .top .computer #intro .heading {
width: 240px;
}
.home #root.v1 .top .computer #body {
width: fit-content;
}
.home #root.v1 .top .computer #body .about {
opacity: 0;
animation: showText 0.1s forwards;
animation-delay: 1s;
font-size: 1rem;
color: #d7b94c;
}
@media screen and (min-width: 600px) {
.home #root.v1 .top .computer #body .about {
font-size: 2rem;
animation: showText 0.1s forwards;
animation-delay: 1s;
}
}
.home #root.v1 .top .computer #outro {
width: fit-content;
}
.home #root.v1 .top .computer #outro .heading {
width: 160px;
}
.home #root.v1 .top .computer #outro .heading:after {
color: #1d1f20;
animation: typing 0.5s steps(16) forwards, cursor 1s infinite;
animation-delay: 2.5s;
}
@media screen and (min-width: 600px) {
.home #root.v1 .top .computer #outro .heading:after {
animation: typing 0.5s steps(16) forwards, cursor 1s infinite;
animation-delay: 2.5s;
}
}
.home #root.v1 .top .computer #outro .menu {
opacity: 0;
animation: showText 0.1s forwards;
animation-delay: 3s;
display: flex;
flex-wrap: wrap;
gap: 1rem;
padding-top: 2rem;
padding-bottom: 2rem;
}
@media screen and (min-width: 600px) {
.home #root.v1 .top .computer #outro .menu {
animation-delay: 3.5s;
}
}
.home #root.v1 .top .computer #outro .menu a {
font-size: 1rem;
color: #d7b94c;
cursor: pointer;
}
@media screen and (min-width: 600px) {
.home #root.v1 .top .computer #outro .menu a {
font-size: 2rem;
}
}
.home #root.v1 .bottom {
width: 100%;
height: 100%;
}
.home #root.v1 .bottom section {
box-shadow: 0 0 5px 4px rgba(29, 31, 32, 0.45);
margin: 4rem 0;
}
.home #root.v1 .bottom #cool-stuff {
display: flex;
flex-direction: column;
align-items: center;
width: 100%;
height: auto;
background-color: #d7b94c;
padding: 2rem 0;
}
.home #root.v1 .bottom #cool-stuff .title:after {
content: "";
display: block;
width: 150px;
margin: 0 auto;
border-bottom: 5px solid #04392f;
}
.home #root.v1 .bottom #cool-stuff .highlights {
display: flex;
justify-content: center;
align-items: center;
flex-wrap: wrap;
gap: 2rem;
position: relative;
height: 100%;
width: 100%;
padding-top: 1rem;
}
.home #root.v1 .bottom #cool-stuff .highlights .highlight {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
align-self: stretch;
padding: 1rem 1rem;
position: relative;
width: 100%;
height: auto;
max-width: 400px;
box-shadow: 0 0 5px 0 rgba(29, 31, 32, 0.45);
}
.home #root.v1 .bottom #cool-stuff .highlights .highlight img {
width: 75%;
}
.home #root.v1 .bottom #cool-stuff .highlights .highlight p {
font-size: 1.25rem;
text-align: center;
}
.home #root.v1 .bottom #cool-stuff .highlights .highlight a {
display: block;
font-family: Orbitron-Regular;
color: #49111C;
font-size: 1.5rem;
font-weight: bold;
text-decoration: none;
padding-bottom: 5px;
}
.home #root.v1 .bottom #cool-stuff .highlights .highlight a:hover {
border-bottom: 5px solid #49111C;
padding-bottom: 0;
}
.home #root.v1 .bottom #cool-stuff .highlights .highlight .icon.icon-paperclip {
position: absolute;
top: 0;
left: 0;
}
.home #root.v1 .bottom #cool-stuff .highlights .highlight .icon.icon-paperclip:before {
content: "";
display: block;
background-image: url("/icons/paperclip.svg");
background-size: 100%;
position: absolute;
width: 50px;
height: 50px;
top: -10px;
left: -10px;
}
.home #root.v1 .bottom #cool-stuff .highlights .highlight:hover {
box-shadow: 0 0 5px 5px rgba(29, 31, 32, 0.45);
}
.home #root.v1 .bottom #work {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
background-color: #a6a695;
padding: 1rem 2rem;
}
.home #root.v1 .bottom #work > .title {
color: #49111C;
font-weight: bold;
}
.home #root.v1 .bottom #work > .title:after {
content: "";
display: block;
width: 50px;
margin: 0 auto;
border-bottom: 5px solid #d7b94c;
}
.home #root.v1 .bottom #work .jobs {
display: flex;
justify-content: center;
flex-wrap: wrap;
gap: 2rem;
width: 100%;
height: 100%;
}
@media screen and (min-width: 800px) {
.home #root.v1 .bottom #work .jobs {
flex-wrap: nowrap;
}
}
.home #root.v1 .bottom #work .jobs .left, .home #root.v1 .bottom #work .jobs .right {
width: 100%;
height: 100%;
}
@media screen and (min-width: 800px) {
.home #root.v1 .bottom #work .jobs .left, .home #root.v1 .bottom #work .jobs .right {
width: 50%;
}
}
.home #root.v1 .bottom #work .jobs .left .title, .home #root.v1 .bottom #work .jobs .right .title {
text-align: center;
color: #49111C;
}
.home #root.v1 .bottom #work .jobs .left .wrapper {
display: flex;
flex-direction: column;
justify-content: space-between;
}
.home #root.v1 .bottom #work .jobs .left .job {
padding: 1rem 2rem;
margin-top: 1rem;
padding: 5px;
position: relative;
box-shadow: 0 0 5px 0px rgba(29, 31, 32, 0.45);
}
.home #root.v1 .bottom #work .jobs .left .job .title {
text-align: left;
color: #49111C;
}
.home #root.v1 .bottom #work .jobs .left .job:hover {
cursor: pointer;
}
.home #root.v1 .bottom #work .jobs .left .job.active {
border-left: 1rem solid #d7b94c;
box-shadow: 0 0 5px 5px rgba(29, 31, 32, 0.45);
}
.home #root.v1 .bottom #work .jobs .right .highlights {
display: block;
height: 100%;
width: 100%;
margin-top: 1rem;
}
.home #root.v1 .bottom #work .jobs .right .job-highlight {
padding: 1rem 2rem;
}
.home #root.v1 .bottom #work .jobs .right .job-highlight ul {
padding: 0;
}
.home #root.v1 .bottom #work .jobs .right .job-highlight.show {
display: block;
border-left: 1rem solid #d7b94c;
box-shadow: 0 0 5px 5px rgba(29, 31, 32, 0.45);
}
@media screen and (min-width: 800px) {
.home #root.v1 .bottom #work .jobs .right .job-highlight.show {
border-right: 1rem solid #d7b94c;
border-left: unset;
}
}
.home #root.v1 .bottom #work .jobs .right .job-highlight.hide {
display: none;
}
.home #root.v1 .bottom #contact {
display: block;
background-color: #1F2421;
}
.home #root.v1 .bottom #contact .title {
color: #FBFCFF;
text-align: center;
}
.home #root.v1 .bottom #contact .title:after {
content: "";
display: block;
width: 75px;
margin: 0 auto;
border-bottom: 5px solid #696969;
}
.home #root.v1 .bottom #contact .info {
display: flex;
justify-content: center;
padding: 1rem 0;
}
.home #root.v1 .bottom #contact .info .icon.icon-email {
position: relative;
}
.home #root.v1 .bottom #contact .info .icon.icon-email:before {
content: "";
display: block;
background-image: url("/icons/email.svg");
background-size: 100%;
width: 30px;
height: 30px;
}
.home #root.v1 #continue {
display: block;
position: absolute;
bottom: 5rem;
left: 50%;
transform: translateX(-50%);
text-align: center;
width: 100%;
opacity: 0;
color: #FBFCFF;
animation: showText 0.1s forwards, continue 0.5s steps(50) forwards;
animation-delay: 4s;
}
@media screen and (min-width: 600px) {
.home #root.v1 #continue {
animation-delay: 6s;
}
}
.home #root.v1 #continue .icon.icon-arrow-down:after {
content: "";
display: block;
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%);
background-image: url("/icons/arrow-down-top-line.svg");
background-size: 100%;
width: 50px;
height: 50px;
}
@keyframes typing {
0% {
color: #d7b94c;
}
100% {
width: 0;
color: #1d1f20;
}
}
@keyframes typing2 {
0% {
color: #d7b94c;
}
99.9% {
color: #d7b94c;
}
100% {
width: 0;
color: #1d1f20;
}
}
@keyframes cursor {
50% {
color: transparent;
}
}
@keyframes showText {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes continue {
0% {
bottom: 5rem;
}
100% {
bottom: 4rem;
}
}
@font-face {
font-family: RobotoSlab-Regular;
src: url("/fonts/RobotoSlab-Regular.ttf") format("opentype");
}
@font-face {
font-family: RobotoSlab-Medium;
src: url("/fonts/RobotoSlab-Regular.ttf") format("opentype");
}
@font-face {
font-family: RobotoSlab-Bold;
src: url("/fonts/RobotoSlab-Bold.ttf") format("opentype");
}
@font-face {
font-family: RobotoSlab-Black;
src: url("/fonts/RobotoSlab-Black.ttf") format("opentype");
}
@font-face {
font-family: AtomicAge-Regular;
src: url("/fonts/AtomicAge-Regular.ttf") format("opentype");
}
@font-face {
font-family: Montserrat-Regular;
src: url("/fonts/Montserrat-Regular.ttf") format("opentype");
}
@font-face {
font-family: Montserrat-Light;
src: url("/fonts/Montserrat-Light.ttf") format("opentype");
}
@font-face {
font-family: Montserrat-Italic;
src: url("/fonts/Montserrat-Italic.ttf") format("opentype");
}
@font-face {
font-family: Montserrat-Bold;
src: url("/fonts/Montserrat-Bold.ttf") format("opentype");
}
@font-face {
font-family: Montserrat-SemiBold;
src: url("/fonts/Montserrat-SemiBold.ttf") format("opentype");
}
@font-face {
font-family: Orbitron-Regular;
src: url("/fonts/Orbitron-Regular.ttf") format();
}
h1, h2, h3, h4, h5, h6 {
font-family: AtomicAge-Regular;
letter-spacing: 2px;
}
h1 {
font-size: 2rem;
}
@media screen and (min-width: 600px) {
h1 {
font-size: 3rem;
}
}
h2 {
font-size: 1.75rem;
}
@media screen and (min-width: 600px) {
h2 {
font-size: 2.5rem;
}
}
h3 {
font-size: 1.5rem;
}
@media screen and (min-width: 600px) {
h3 {
font-size: 2rem;
}
}
h4 {
font-size: 1.25rem;
}
@media screen and (min-width: 600px) {
h4 {
font-size: 1.5rem;
}
}
h5 {
font-size: 1rem;
}
@media screen and (min-width: 600px) {
h5 {
font-size: 1.25rem;
}
}
h6 {
font-size: 1rem;
}
@media screen and (min-width: 600px) {
h6 {
font-size: 1em;
}
}
p, a, li, span {
font-family: RobotoSlab-Regular;
}
strong {
font-family: Montserrat-Bold;
}
em {
font-family: Montserrat-Italic;
}
u {
font-family: Montserrat-SemiBold;
}
cite, q, small {
font-family: Orbitron-Regular;
}
s {
font-family: Montserrat-SemiBold;
}
/*# sourceMappingURL=landing.css.map */

839
assets/styles/main.css Normal file
View file

@ -0,0 +1,839 @@
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
========================================================================== */
/**
* 1. Correct the line height in all browsers.
* 2. Prevent adjustments of font size after orientation changes in iOS.
*/
html {
line-height: 1.15; /* 1 */
-webkit-text-size-adjust: 100%; /* 2 */
}
/* Sections
========================================================================== */
/**
* Remove the margin in all browsers.
*/
body {
margin: 0;
}
/**
* Render the `main` element consistently in IE.
*/
main {
display: block;
}
/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/* Grouping content
========================================================================== */
/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
hr {
box-sizing: content-box; /* 1 */
height: 0; /* 1 */
overflow: visible; /* 2 */
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
pre {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/* Text-level semantics
========================================================================== */
/**
* Remove the gray background on active links in IE 10.
*/
a {
background-color: transparent;
}
/**
* 1. Remove the bottom border in Chrome 57-
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
border-bottom: none; /* 1 */
text-decoration: underline; /* 2 */
text-decoration: underline dotted; /* 2 */
}
/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
font-weight: bolder;
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/**
* Add the correct font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
/* Embedded content
========================================================================== */
/**
* Remove the border on images inside links in IE 10.
*/
img {
border-style: none;
}
/* Forms
========================================================================== */
/**
* 1. Change the font styles in all browsers.
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
font-family: inherit; /* 1 */
font-size: 100%; /* 1 */
line-height: 1.15; /* 1 */
margin: 0; /* 2 */
}
/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
*/
button,
input { /* 1 */
overflow: visible;
}
/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select { /* 1 */
text-transform: none;
}
/**
* Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type=button],
[type=reset],
[type=submit] {
-webkit-appearance: button;
}
/**
* Remove the inner border and padding in Firefox.
*/
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
border-style: none;
padding: 0;
}
/**
* Restore the focus styles unset by the previous rule.
*/
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
outline: 1px dotted ButtonText;
}
/**
* Correct the padding in Firefox.
*/
fieldset {
padding: 0.35em 0.75em 0.625em;
}
/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
* `fieldset` elements in all browsers.
*/
legend {
box-sizing: border-box; /* 1 */
color: inherit; /* 2 */
display: table; /* 1 */
max-width: 100%; /* 1 */
padding: 0; /* 3 */
white-space: normal; /* 1 */
}
/**
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
vertical-align: baseline;
}
/**
* Remove the default vertical scrollbar in IE 10+.
*/
textarea {
overflow: auto;
}
/**
* 1. Add the correct box sizing in IE 10.
* 2. Remove the padding in IE 10.
*/
[type=checkbox],
[type=radio] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type=search] {
-webkit-appearance: textfield; /* 1 */
outline-offset: -2px; /* 2 */
}
/**
* Remove the inner padding in Chrome and Safari on macOS.
*/
[type=search]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */
font: inherit; /* 2 */
}
/* Interactive
========================================================================== */
/*
* Add the correct display in Edge, IE 10+, and Firefox.
*/
details {
display: block;
}
/*
* Add the correct display in all browsers.
*/
summary {
display: list-item;
}
/* Misc
========================================================================== */
/**
* Add the correct display in IE 10+.
*/
template {
display: none;
}
/**
* Add the correct display in IE 10.
*/
[hidden] {
display: none;
}
@font-face {
font-family: RobotoSlab-Regular;
src: url("/fonts/RobotoSlab-Regular.ttf") format("opentype");
}
@font-face {
font-family: RobotoSlab-Medium;
src: url("/fonts/RobotoSlab-Regular.ttf") format("opentype");
}
@font-face {
font-family: RobotoSlab-Bold;
src: url("/fonts/RobotoSlab-Bold.ttf") format("opentype");
}
@font-face {
font-family: RobotoSlab-Black;
src: url("/fonts/RobotoSlab-Black.ttf") format("opentype");
}
@font-face {
font-family: AtomicAge-Regular;
src: url("/fonts/AtomicAge-Regular.ttf") format("opentype");
}
@font-face {
font-family: Montserrat-Regular;
src: url("/fonts/Montserrat-Regular.ttf") format("opentype");
}
@font-face {
font-family: Montserrat-Light;
src: url("/fonts/Montserrat-Light.ttf") format("opentype");
}
@font-face {
font-family: Montserrat-Italic;
src: url("/fonts/Montserrat-Italic.ttf") format("opentype");
}
@font-face {
font-family: Montserrat-Bold;
src: url("/fonts/Montserrat-Bold.ttf") format("opentype");
}
@font-face {
font-family: Montserrat-SemiBold;
src: url("/fonts/Montserrat-SemiBold.ttf") format("opentype");
}
@font-face {
font-family: Orbitron-Regular;
src: url("/fonts/Orbitron-Regular.ttf") format();
}
h1, h2, h3, h4, h5, h6 {
font-family: AtomicAge-Regular;
letter-spacing: 2px;
}
h1 {
font-size: 2rem;
}
@media screen and (min-width: 600px) {
h1 {
font-size: 3rem;
}
}
h2 {
font-size: 1.75rem;
}
@media screen and (min-width: 600px) {
h2 {
font-size: 2.5rem;
}
}
h3 {
font-size: 1.5rem;
}
@media screen and (min-width: 600px) {
h3 {
font-size: 2rem;
}
}
h4 {
font-size: 1.25rem;
}
@media screen and (min-width: 600px) {
h4 {
font-size: 1.5rem;
}
}
h5 {
font-size: 1rem;
}
@media screen and (min-width: 600px) {
h5 {
font-size: 1.25rem;
}
}
h6 {
font-size: 1rem;
}
@media screen and (min-width: 600px) {
h6 {
font-size: 1em;
}
}
p, a, li, span {
font-family: RobotoSlab-Regular;
letter-spacing: 1px;
}
strong {
font-family: Montserrat-Bold;
}
em {
font-family: Montserrat-Italic;
}
u {
font-family: Montserrat-SemiBold;
}
cite, q, small {
font-family: Orbitron-Regular;
}
s {
font-family: Montserrat-SemiBold;
}
h1,
h2,
h3,
h4,
h5,
h6,
p,
a,
span,
time {
color: #FBFCFF;
}
.secondary.layout--v1 {
display: block;
position: relative;
padding: 0.5rem 0.5rem;
background-color: #d7b94c;
}
.secondary.layout--v1 #root {
display: flex;
flex-direction: column;
}
@media (min-width: 800px) {
.secondary.layout--v1 #root {
display: grid;
grid-template-columns: 25% 75%;
grid-template-rows: 1fr;
margin: 0 auto;
padding: 1rem 1rem;
}
}
.secondary.layout--v1 #root {
gap: 1rem;
position: relative;
width: 100%;
height: 100%;
min-height: 100vh;
max-width: 1200px;
background-color: #1F2421;
box-shadow: 0 0 5px 10px rgba(29, 31, 32, 0.45);
}
.secondary.layout--v1 #root main {
padding: 1rem 1rem;
}
.secondary.layout--v1.menu-open, .secondary.layout--v1.photo-open {
overflow: hidden;
}
.secondary.layout--v1.photo-open .overlay {
display: block;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #171A21;
opacity: 0.9;
}
header {
display: block;
position: sticky;
overflow: auto;
width: 100%;
height: 50px;
top: 0;
padding-bottom: 1rem;
background-color: #1F2421;
}
@media (min-width: 600px) {
header {
height: 500px;
}
}
header.open {
overflow: visible;
}
header.open .top h1 {
display: none;
}
header nav.main {
display: block;
position: relative;
}
@media (min-width: 600px) {
header nav.main {
display: flex;
flex-direction: column;
gap: 2rem;
}
}
header nav.main .top {
display: flex;
}
header nav.main .top h1 {
margin: 0;
}
header nav.main .top h1 a {
display: block;
position: relative;
top: 1rem;
left: 1rem;
font-size: 1.5rem;
text-decoration: none;
color: #1d1f20;
background-color: #d7b94c;
border: 2px solid #d7b94c;
padding: 2px 2px;
}
header nav.main .top h1 a:hover {
color: #d7b94c;
background-color: unset;
}
header nav.main .top .icon.icon-menu {
display: block;
position: absolute;
top: 1rem;
right: 1rem;
width: 35px;
height: 35px;
z-index: 999;
transition: right 100ms ease;
}
@media screen and (min-width: 600px) {
header nav.main .top .icon.icon-menu {
display: none;
}
}
header nav.main .top .icon.icon-menu:before {
content: "";
display: block;
background-image: url("/icons/menu-grid.svg");
background-size: 100%;
position: absolute;
width: 35px;
height: 35px;
}
header nav.main .top .icon.icon-menu:hover {
cursor: pointer;
}
header nav.main .top .icon.icon-menu.open {
right: 325px;
}
header nav.main .top .icon.icon-menu.open:before {
background-image: url("/icons/menu-close.svg");
}
header nav.main menu {
position: absolute;
right: 0;
top: 0;
width: 0;
background-color: #d7b94c;
overflow: hidden;
padding: 0;
margin: 0;
transition: width 100ms ease;
}
@media (min-width: 600px) {
header nav.main menu {
position: relative;
top: unset;
right: unset;
width: 100%;
transition: unset;
background-color: unset;
}
}
header nav.main menu.open {
width: 300px;
box-shadow: 0 0 5px 10px rgba(29, 31, 32, 0.45);
}
header nav.main menu li {
padding: 1rem 2rem;
}
header nav.main menu li a {
display: block;
color: #FBFCFF;
text-decoration: none;
}
header nav.main menu li a:hover {
text-decoration: underline;
}
.posts .list ul {
list-style: none;
padding: 0;
}
.posts .list ul li {
padding: 1rem 0;
}
.posts .list ul li a {
color: #FBFCFF;
text-decoration: none;
display: block;
}
.posts .list ul li a .post-title {
margin: 0;
}
.photos {
display: block;
}
.photos .albums {
display: flex;
flex-direction: column;
width: 100%;
}
@media (min-width: 800px) {
.photos .albums {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: auto;
}
}
.photos .albums {
gap: 1rem;
list-style: none;
padding: 0;
}
.photos .albums .album {
display: block;
width: 100%;
}
.photos .albums .album a {
display: block;
position: relative;
color: white;
text-decoration: none;
overflow: hidden;
}
.photos .albums .album a img {
display: block;
width: 100%;
height: auto;
}
.photos .albums .album a .title, .photos .albums .album a .date, .photos .albums .album a .overlay {
position: absolute;
visibility: visible;
margin: 0;
}
.photos .albums .album a .title, .photos .albums .album a .date, .photos .albums .album a .category {
z-index: 2;
}
.photos .albums .album a .title {
top: 1rem;
left: 1rem;
}
.photos .albums .album a .date {
bottom: 1rem;
left: 1rem;
font-weight: bold;
}
.photos .albums .album a .overlay {
width: 100%;
height: auto;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.333);
z-index: 1;
}
.photos .albums .album a:hover .title, .photos .albums .album a:hover .date, .photos .albums .album a:hover .category, .photos .albums .album a:hover .overlay {
visibility: hidden;
}
.photos .albums .album a:hover img {
transform: scale(1.01);
transition: transform 100ms ease-in-out;
}
.photos img {
width: 100%;
}
#album .title {
margin: 0;
}
#album .meta {
border-bottom: 5px solid #a6a695;
}
#album .photos {
display: flex;
flex-direction: column;
width: 100%;
}
@media (min-width: 800px) {
#album .photos {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: auto;
}
}
#album .photos {
gap: 1rem;
list-style: none;
padding: 0;
}
#album .photos .photo {
width: 100%;
overflow: hidden;
}
#album .photos .photo img {
transition: transform 100ms ease-in-out;
}
#album .photos .photo:hover {
cursor: pointer;
}
#album .photos .photo:hover img {
transform: scale(1.01);
transition: transform 100ms ease-in-out;
}
#open-image {
display: none;
position: absolute;
top: 50%;
left: 0;
transform: translateY(-50%);
z-index: 999;
}
#open-image .close {
cursor: pointer;
font-size: 2rem;
position: absolute;
right: 0;
top: 0;
}
#open-image img {
width: 100%;
height: auto;
}
#open-image #details {
display: block;
height: auto;
padding: 1rem 1rem;
background-color: #a6a695;
}
#open-image #details p {
margin: 0;
}
#open-image #details #caption {
font-size: 1.5rem;
padding-bottom: 1rem;
}
#open-image #details #location, #open-image #details #date, #open-image #details #equipment {
font-size: 1.25rem;
}
#open-image.open {
display: block;
}
.posts {
display: block;
}
.posts h2, .posts h3 {
position: relative;
margin: 0;
width: fit-content;
}
.posts h2:after, .posts h3:after {
content: "";
display: block;
width: 75px;
height: 5px;
background-color: #a6a695;
}
.posts .list {
padding-top: 1rem;
border-top: 5px solid #d7b94c;
}
.posts .list .post a .title {
padding: 0.5rem 0;
}
.posts .list .post a:hover {
text-decoration: underline;
text-decoration-color: #a6a695;
}
.post {
display: block;
}
.post .title {
margin: 0.5rem 0;
}
.post .meta {
padding-bottom: 1rem;
border-bottom: 5px solid #a6a695;
}
.post .meta .admin-actions {
padding-bottom: 1rem;
}
.post .meta .published {
font-size: 1.125rem;
}
.post .meta .category {
font-size: 1.125rem;
}
.post .text p {
font-size: 1.25rem;
line-height: 1.5;
}
/*# sourceMappingURL=main.css.map */

View file

@ -0,0 +1,6 @@
@use './brain/form';
@use './brain/layout';
body {
background-color: lightgrey;
}

View file

@ -0,0 +1,36 @@
.page {
max-width: 800px;
width: 100%;
margin: 0 auto;
h2 {
margin: 0;
}
.row {
display: block;
padding: 1rem 0;
label {
display: block;
}
input {
height: 30px;
width: 300px;
}
#post_published {
width: 30px;
height: 30px;
}
#post_save {
width: 100px;
height: 30px;
background-color: green;
border: none;
color: white;
}
}
}

View file

@ -0,0 +1,33 @@
#brain-wrapper {
header {
.level-1 {
display: flex;
justify-content: center;
align-items: flex-start;
position: relative;
list-style-type: none;
&--item {
padding: 1rem 2rem;
}
.level-2 {
display: none;
margin: 0;
padding: 0;
&.open {
display: block;
position: absolute;
}
&--item {
padding: 1rem 0;
}
}
}
}
}

View file

@ -0,0 +1,57 @@
@use '../shared/colors' as colors;
.secondary.layout--v1 {
display: block;
position: relative;
padding: 0.5rem 0.5rem;
background-color: colors.$primaryYellow;
#root {
display: flex;
flex-direction: column;
@media (min-width: 800px) {
display: grid;
grid-template-columns: 25% 75%;
grid-template-rows: 1fr;
margin: 0 auto;
padding: 1rem 1rem;
}
gap: 1rem;
position: relative;
width: 100%;
height: 100%;
min-height: 100vh;
max-width: 1200px;
background-color: colors.$carbonBlack;
box-shadow: 0 0 5px 10px rgba(29, 31, 32, 0.45);
main {
padding: 1rem 1rem;
}
}
&.menu-open,
&.photo-open {
overflow: hidden;
}
&.photo-open {
.overlay {
display: block;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: colors.$inkBlack;
opacity: .9;
}
}
}

View file

@ -0,0 +1,24 @@
@use '../shared/colors';
.posts {
.list {
ul {
list-style: none;
padding: 0;
li {
padding: 1rem 0;
a {
color: colors.$primaryWhite;
text-decoration: none;
display: block;
.post-title {
margin: 0;
}
}
}
}
}
}

View file

@ -0,0 +1,147 @@
@use '../shared/colors' as colors;
header {
display: block;
position: sticky;
overflow: auto;
width: 100%;
height: 50px;
top: 0;
padding-bottom: 1rem;
background-color: colors.$carbonBlack;
@media (min-width: 600px) {
height: 500px;
}
&.open {
overflow: visible;
}
&.open {
.top {
h1 {
display: none;
}
}
}
nav.main {
display: block;
position: relative;
@media (min-width: 600px) {
display: flex;
flex-direction: column;
gap: 2rem;
}
.top {
display: flex;
h1 {
margin: 0;
a {
display: block;
position: relative;
top: 1rem;
left: 1rem;
font-size: 1.5rem;
text-decoration: none;
color: colors.$primaryBlack;
background-color: colors.$primaryYellow;
border: 2px solid colors.$primaryYellow;
padding: 2px 2px;
&:hover {
color: colors.$primaryYellow;
background-color: unset;
}
}
}
.icon {
&.icon-menu {
display: block;
position: absolute;
top: 1rem;
right: 1rem;
width: 35px;
height: 35px;
z-index: 999;
transition: right 100ms ease;
@media screen and (min-width: 600px) {
display: none;
}
&:before {
content: '';
display: block;
background-image: url('/icons/menu-grid.svg');
background-size: 100%;
position: absolute;
width: 35px;
height: 35px;
}
&:hover {
cursor: pointer;
}
&.open {
right: 325px;
&:before {
background-image: url('/icons/menu-close.svg');
}
}
}
}
}
menu {
position: absolute;
right: 0;
top: 0;
width: 0;
background-color: colors.$primaryYellow;
overflow: hidden;
padding: 0;
margin: 0;
transition: width 100ms ease;
@media (min-width: 600px) {
position: relative;
top: unset;
right: unset;
width: 100%;
transition: unset;
background-color: unset;
}
&.open {
width: 300px;
box-shadow: 0 0 5px 10px rgba(29, 31, 32, 0.45);
}
li {
padding: 1rem 2rem;
a {
display: block;
color: colors.$primaryWhite;
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
}
}
}
}

View file

@ -0,0 +1,179 @@
@use '../shared/colors' as colors;
.photos {
display: block;
.albums {
display: flex;
flex-direction: column;
width: 100%;
@media (min-width: 800px) {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: auto;
}
gap: 1rem;
list-style: none;
padding: 0;
.album {
display: block;
width: 100%;
a {
display: block;
position: relative;
color: white;
text-decoration: none;
overflow: hidden;
img {
display: block;
width: 100%;
height: auto;
}
.title, .date, .overlay {
position: absolute;
visibility: visible;
margin: 0;
}
.title, .date, .category {
z-index: 2;
}
.title {
top: 1rem;
left: 1rem;
}
.date {
bottom: 1rem;
left: 1rem;
font-weight: bold;
}
.overlay {
width: 100%;
height: auto;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.333);
z-index: 1;
}
&:hover {
.title, .date, .category, .overlay {
visibility: hidden;
}
img {
transform: scale(1.01);
transition: transform 100ms ease-in-out;
}
}
}
}
}
img {
width: 100%;
}
}
#album {
.title {
margin: 0;
}
.meta {
border-bottom: 5px solid colors.$computerBorder;
}
.photos {
display: flex;
flex-direction: column;
width: 100%;
@media (min-width: 800px) {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: auto;
}
gap: 1rem;
list-style: none;
padding: 0;
.photo {
width: 100%;
overflow: hidden;
img {
//width: 100%;
transition: transform 100ms ease-in-out;
}
&:hover {
cursor: pointer;
img {
transform: scale(1.01);
transition: transform 100ms ease-in-out;
}
}
}
}
}
#open-image {
display: none;
position: absolute;
top: 50%;
left: 0;
transform: translateY(-50%);
z-index: 999;
.close {
cursor: pointer;
font-size: 2rem;
position: absolute;
right: 0;
top: 0;
}
img {
width: 100%;
height: auto;
}
#details {
display: block;
height: auto;
padding: 1rem 1rem;
background-color: colors.$computerBorder;
p {
margin: 0;
}
#caption {
font-size: 1.5rem;
padding-bottom: 1rem;
}
#location, #date, #equipment {
font-size: 1.25rem;
}
}
&.open {
display: block;
}
}

View file

@ -0,0 +1,73 @@
@use '../shared/colors' as colors;
.posts {
display: block;
h2, h3 {
position: relative;
margin: 0;
width: fit-content;
&:after {
content: '';
display: block;
width: 75px;
height: 5px;
background-color: colors.$computerBorder;
}
}
.intro {
//color: colors.$primaryWhite;
}
.list {
padding-top: 1rem;
border-top: 5px solid colors.$primaryYellow;
.post {
a {
.title {
padding: 0.5rem 0;
}
&:hover {
text-decoration: underline;
text-decoration-color: colors.$computerBorder;
}
}
}
}
}
.post {
display: block;
.title {
margin: 0.5rem 0;
}
.meta {
padding-bottom: 1rem;
border-bottom: 5px solid colors.$computerBorder;
.admin-actions {
padding-bottom: 1rem;
}
.published {
font-size: 1.125rem;
}
.category {
font-size: 1.125rem;
}
}
.text p {
font-size: 1.25rem;
line-height: 1.5;
}
}

View file

@ -0,0 +1,15 @@
@use '../shared/colors' as colors;
h1,
h2,
h3,
h4,
h5,
h6,
p,
a,
span,
time {
color: colors.$primaryWhite;
}

View file

@ -0,0 +1,2 @@
@use './landing/computer';
@use './shared/fonts';

View file

@ -0,0 +1,619 @@
@use '../shared/colors' as colors;
.home {
display: flex;
align-items: center;
flex-direction: column;
background-color: colors.$primaryGrey;
margin: 0;
header {
width: 100%;
h1 {
margin: 0;
a {
display: block;
font-size: 1.5rem;
text-decoration: none;
color: colors.$primaryBlack;
background-color: colors.$primaryYellow;
border: 2px solid colors.$primaryYellow;
padding: 2px 2px;
&:hover {
color: colors.$primaryYellow;
background-color: unset;
}
}
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 2rem;
overflow: hidden;
position: relative;
.icon {
&.icon-menu {
position: absolute;
z-index: 999;
display: block;
right: 2rem;
width: 30px;
height: 30px;
transition: right 100ms ease;
@media screen and (min-width: 600px) {
display: none;
}
&:before {
content: '';
display: block;
background-image: url('/icons/menu-grid.svg');
background-size: 100%;
position: absolute;
width: 30px;
height: 30px;
}
&:hover {
cursor: pointer;
}
&.open {
right: calc(1/3 * 100% + 1rem);
}
}
}
.front-menu {
display: flex;
flex-direction: column;
gap: 1rem;
overflow: hidden;
position: fixed;
right: -100%;
top: 1rem;
margin: 0;
padding: 0;
transition: right 200ms ease;
&.open {
right: 1rem;
}
@media screen and (min-width: 600px) {
flex-direction: row;
position: relative;
top: unset;
right: unset;
}
list-style: none;
li {
a {
display: block;
font-family: AtomicAge-Regular;
color: colors.$primaryYellow;
font-size: 1.5rem;
text-decoration: none;
padding-bottom: 2px;
&:hover {
border-bottom: 2px solid colors.$primaryYellow;
padding-bottom: 0;
}
}
}
}
}
}
#root {
&.v1 {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: auto;
width: 100%;
margin: 0 auto;
section {
margin: 0;
padding: 1rem 0;
.title {
margin: 0;
}
}
.top {
display: flex;
min-height: 100vh;
justify-content: center;
align-items: center;
width: 100%;
.computer {
display: block;
max-width: 1024px;
max-height: 1024px;
width: 100%;
background-color: colors.$primaryBlack;
border: 2rem solid colors.$computerBorder;
padding: 1rem 1rem;
box-shadow: 0 0 5px 10px rgba(29, 31, 32, 0.45);
.heading {
margin: 0;
font-size: 1rem;
font-family: Montserrat-Light;
color: colors.$primaryYellow;
position: relative;
padding-left: 1rem;
@media screen and (min-width: 600px) {
font-size: 2rem;
}
&:before {
content: '>';
position: absolute;
left: 0;
width: 100%;
//background: #1d1f20;
}
&:after {
content: "|";
position: absolute;
right: 0;
width: 100%;
background: colors.$primaryBlack;
animation: typing 0.5s steps(16) forwards,
cursor 1s infinite;
@media screen and (min-width: 600px) {
animation: typing 0.5s steps(16) forwards,
cursor 1s infinite;
}
}
}
#intro {
width: fit-content;
.heading {
width: 240px;
}
}
#body {
width: fit-content;
.about {
opacity: 0;
animation: showText 0.1s forwards;
animation-delay: 1s;
font-size: 1rem;
color: colors.$primaryYellow;
@media screen and (min-width: 600px) {
font-size: 2rem;
animation: showText 0.1s forwards;
animation-delay: 1s;
}
}
}
#outro {
width: fit-content;
.heading {
width: 160px;
&:after{
color: colors.$primaryBlack;
animation: typing 0.5s steps(16) forwards,
cursor 1s infinite;
animation-delay: 2.5s;
@media screen and (min-width: 600px) {
animation: typing 0.5s steps(16) forwards,
cursor 1s infinite;
animation-delay: 2.5s;
}
}
}
.menu {
opacity: 0;
animation: showText 0.1s forwards;
animation-delay: 3s;
display: flex;
flex-wrap: wrap;
gap: 1rem;
padding-top: 2rem;
padding-bottom: 2rem;
@media screen and (min-width: 600px) {
animation-delay: 3.5s;
}
a {
font-size: 1rem;
color: colors.$primaryYellow;
cursor: pointer;
@media screen and (min-width: 600px) {
font-size: 2rem;
}
}
}
}
}
}
.bottom {
width: 100%;
height: 100%;
section {
box-shadow: 0 0 5px 4px rgba(29, 31, 32, 0.45);
margin: 4rem 0;
}
#cool-stuff{
display: flex;
flex-direction: column;
align-items: center;
width: 100%;
height: auto;
background-color: colors.$primaryYellow;
padding: 2rem 0;
.title {
&:after {
content: '';
display: block;
width: 150px;
margin: 0 auto;
border-bottom: 5px solid colors.$primaryGreen;
}
}
.highlights {
display: flex;
justify-content: center;
align-items: center;
flex-wrap: wrap;
gap: 2rem;
position: relative;
height: 100%;
width: 100%;
padding-top: 1rem;
.highlight {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
align-self: stretch;
padding: 1rem 1rem;
position: relative;
width: 100%;
height: auto;
max-width: 400px;
box-shadow: 0 0 5px 0 rgba(29, 31, 32, 0.45);
img {
width: 75%;
}
p {
font-size: 1.25rem;
text-align: center;
}
a {
display: block;
font-family: Orbitron-Regular;
color: colors.$primaryRed;
font-size: 1.5rem;
font-weight: bold;
text-decoration: none;
padding-bottom: 5px;
&:hover {
border-bottom: 5px solid colors.$primaryRed;
padding-bottom: 0;
}
}
.icon {
&.icon-paperclip {
position: absolute;
top: 0;
left: 0;
&:before {
content: '';
display: block;
background-image: url('/icons/paperclip.svg');
background-size: 100%;
position: absolute;
width: 50px;
height: 50px;
top: -10px;
left: -10px;
}
}
}
&:hover {
box-shadow: 0 0 5px 5px rgba(29, 31, 32, 0.45);
}
}
}
}
#work {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
background-color: colors.$computerBorder;
padding: 1rem 2rem;
> .title {
color: colors.$primaryRed;
font-weight: bold;
&:after {
content: '';
display: block;
width: 50px;
margin: 0 auto;
border-bottom: 5px solid colors.$primaryYellow;
}
}
.jobs {
display: flex;
justify-content: center;
flex-wrap: wrap;
gap: 2rem;
width: 100%;
height: 100%;
@media screen and (min-width: 800px) {
flex-wrap: nowrap;
}
.left, .right {
width: 100%;
height: 100%;
@media screen and (min-width: 800px) {
width: 50%;
}
.title {
text-align: center;
color: colors.$primaryRed;
}
}
.left {
.wrapper {
display: flex;
flex-direction: column;
justify-content: space-between;
}
.job {
padding: 1rem 2rem;
margin-top: 1rem;
padding: 5px;
position: relative;
box-shadow: 0 0 5px 0px rgba(29, 31, 32, 0.45);
.title {
text-align: left;
color: colors.$primaryRed;
}
&:hover {
cursor: pointer;
}
&.active {
border-left: 1rem solid colors.$primaryYellow;
box-shadow: 0 0 5px 5px rgba(29, 31, 32, 0.45);
}
}
}
.right {
.highlights {
display: block;
height: 100%;
width: 100%;
margin-top: 1rem;
}
.job-highlight {
//width: 100%;
//height: 100%;
padding: 1rem 2rem;
ul {
padding: 0;
//margin: 0;
}
&.show {
display: block;
border-left: 1rem solid colors.$primaryYellow;
box-shadow: 0 0 5px 5px rgba(29, 31, 32, 0.45);
@media screen and (min-width: 800px) {
border-right: 1rem solid colors.$primaryYellow;
border-left: unset;
}
}
&.hide {
display: none;
}
}
}
}
}
#contact {
display: block;
background-color: colors.$carbonBlack;
.title {
color: colors.$primaryWhite;
text-align: center;
&:after {
content: '';
display: block;
width: 75px;
margin: 0 auto;
border-bottom: 5px solid colors.$primaryGrey;
}
}
.info {
display: flex;
justify-content: center;
padding: 1rem 0;
.icon {
&.icon-email {
position: relative;
&:before {
content: '';
display: block;
background-image: url('/icons/email.svg');
background-size: 100%;
width: 30px;
height: 30px;
}
}
}
}
}
}
#continue {
display: block;
position: absolute;
bottom: 5rem;
left: 50%;
transform: translateX(-50%);
text-align: center;
width: 100%;
opacity: 0;
color: colors.$primaryWhite;
animation: showText 0.1s forwards,
continue 0.5s steps(50) forwards;
animation-delay: 4s;
@media screen and (min-width: 600px) {
animation-delay: 6s;
}
.icon {
&.icon-arrow-down {
&:after {
content: '';
display: block;
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%);
background-image: url('/icons/arrow-down-top-line.svg');
background-size: 100%;
width: 50px;
height: 50px;
}
}
}
}
}
}
}
@keyframes typing {
0% {
color: colors.$primaryYellow;
}
100% {
width: 0;
color: colors.$primaryBlack;
}
}
@keyframes typing2 {
0% {
color: colors.$primaryYellow;
}
99.9% {
color: colors.$primaryYellow;
}
100% {
width: 0;
color: colors.$primaryBlack;
}
}
@keyframes cursor {
50% { color: transparent }
}
@keyframes showText {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes continue {
0% {
bottom: 5rem;
}
100% {
bottom: 4rem;
}
}

View file

@ -0,0 +1,9 @@
@use './shared/normalize';
@use './shared/fonts';
@use './front/typography';
@use './front/layout';
@use './front/menu';
@use './front/lists';
@use './front/photos';
@use './front/posts';

View file

@ -0,0 +1,18 @@
$primaryRed: #49111C;
$crimson: #9B1D20;
$primaryYellow: #d7b94c;
$primaryGreen: #04392f;
$primaryBlack: #1d1f20;
$primaryWhite: #FBFCFF;
$primaryGrey: #696969;
$primaryLightGrey: #a8a8a8;
$green: #0E6E0C;
//Landing
$computerBorder: #a6a695;
$evergreen: $primaryGreen;
$inkBlack: #171A21;
$fern: #3F784C;
$carbonBlack: #1F2421;

View file

@ -0,0 +1,135 @@
//headings
@font-face {
font-family: RobotoSlab-Regular;
src: url('/fonts/RobotoSlab-Regular.ttf') format('opentype');
}
@font-face {
font-family: RobotoSlab-Medium;
src: url('/fonts/RobotoSlab-Regular.ttf') format('opentype');
}
@font-face {
font-family: RobotoSlab-Bold;
src: url('/fonts/RobotoSlab-Bold.ttf') format('opentype');
}
@font-face {
font-family: RobotoSlab-Black;
src: url('/fonts/RobotoSlab-Black.ttf') format('opentype');
}
@font-face {
font-family: AtomicAge-Regular;
src: url('/fonts/AtomicAge-Regular.ttf') format('opentype');
}
//non-headings
@font-face {
font-family: Montserrat-Regular;
src: url('/fonts/Montserrat-Regular.ttf') format('opentype');
}
@font-face {
font-family: Montserrat-Light;
src: url('/fonts/Montserrat-Light.ttf') format('opentype');
}
@font-face {
font-family: Montserrat-Italic;
src: url('/fonts/Montserrat-Italic.ttf') format('opentype');
}
@font-face {
font-family: Montserrat-Bold;
src: url('/fonts/Montserrat-Bold.ttf') format('opentype');
}
@font-face {
font-family: Montserrat-SemiBold;
src: url('/fonts/Montserrat-SemiBold.ttf') format('opentype');
}
@font-face {
font-family: Orbitron-Regular;
src: url('/fonts/Orbitron-Regular.ttf') format();
}
h1, h2, h3, h4, h5, h6 {
font-family: AtomicAge-Regular;
letter-spacing: 2px;
}
h1 {
font-size: 2rem;
@media screen and (min-width: 600px) {
font-size: 3rem;
}
}
h2 {
font-size: 1.75rem;
@media screen and (min-width: 600px) {
font-size: 2.5rem;
}
}
h3 {
font-size: 1.5rem;
@media screen and (min-width: 600px) {
font-size: 2rem;
}
}
h4 {
font-size: 1.25rem;
@media screen and (min-width: 600px) {
font-size: 1.5rem;
}
}
h5 {
font-size: 1rem;
@media screen and (min-width: 600px) {
font-size: 1.25rem;
}
}
h6 {
font-size: 1rem;
@media screen and (min-width: 600px) {
font-size: 1em;
}
}
p, a, li, span {
font-family: RobotoSlab-Regular;
letter-spacing: 1px;
}
strong {
font-family: Montserrat-Bold;
}
em {
font-family: Montserrat-Italic;
}
u {
font-family: Montserrat-SemiBold;
}
cite, q, small {
font-family: Orbitron-Regular;
}
s {
font-family: Montserrat-SemiBold;
}

View file

@ -0,0 +1,349 @@
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
========================================================================== */
/**
* 1. Correct the line height in all browsers.
* 2. Prevent adjustments of font size after orientation changes in iOS.
*/
html {
line-height: 1.15; /* 1 */
-webkit-text-size-adjust: 100%; /* 2 */
}
/* Sections
========================================================================== */
/**
* Remove the margin in all browsers.
*/
body {
margin: 0;
}
/**
* Render the `main` element consistently in IE.
*/
main {
display: block;
}
/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/* Grouping content
========================================================================== */
/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
hr {
box-sizing: content-box; /* 1 */
height: 0; /* 1 */
overflow: visible; /* 2 */
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
pre {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/* Text-level semantics
========================================================================== */
/**
* Remove the gray background on active links in IE 10.
*/
a {
background-color: transparent;
}
/**
* 1. Remove the bottom border in Chrome 57-
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
border-bottom: none; /* 1 */
text-decoration: underline; /* 2 */
text-decoration: underline dotted; /* 2 */
}
/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
font-weight: bolder;
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/**
* Add the correct font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
/* Embedded content
========================================================================== */
/**
* Remove the border on images inside links in IE 10.
*/
img {
border-style: none;
}
/* Forms
========================================================================== */
/**
* 1. Change the font styles in all browsers.
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
font-family: inherit; /* 1 */
font-size: 100%; /* 1 */
line-height: 1.15; /* 1 */
margin: 0; /* 2 */
}
/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
*/
button,
input { /* 1 */
overflow: visible;
}
/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select { /* 1 */
text-transform: none;
}
/**
* Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
/**
* Remove the inner border and padding in Firefox.
*/
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
/**
* Restore the focus styles unset by the previous rule.
*/
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
/**
* Correct the padding in Firefox.
*/
fieldset {
padding: 0.35em 0.75em 0.625em;
}
/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
* `fieldset` elements in all browsers.
*/
legend {
box-sizing: border-box; /* 1 */
color: inherit; /* 2 */
display: table; /* 1 */
max-width: 100%; /* 1 */
padding: 0; /* 3 */
white-space: normal; /* 1 */
}
/**
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
vertical-align: baseline;
}
/**
* Remove the default vertical scrollbar in IE 10+.
*/
textarea {
overflow: auto;
}
/**
* 1. Add the correct box sizing in IE 10.
* 2. Remove the padding in IE 10.
*/
[type="checkbox"],
[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type="search"] {
-webkit-appearance: textfield; /* 1 */
outline-offset: -2px; /* 2 */
}
/**
* Remove the inner padding in Chrome and Safari on macOS.
*/
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */
font: inherit; /* 2 */
}
/* Interactive
========================================================================== */
/*
* Add the correct display in Edge, IE 10+, and Firefox.
*/
details {
display: block;
}
/*
* Add the correct display in all browsers.
*/
summary {
display: list-item;
}
/* Misc
========================================================================== */
/**
* Add the correct display in IE 10+.
*/
template {
display: none;
}
/**
* Add the correct display in IE 10.
*/
[hidden] {
display: none;
}