This commit is contained in:
parent
246417a553
commit
155d47222e
20 changed files with 5172 additions and 4003 deletions
|
|
@ -1,90 +1,92 @@
|
|||
let can = document.createElement("canvas");
|
||||
let ctx = can.getContext('2d');
|
||||
let ctx = can.getContext("2d");
|
||||
let result;
|
||||
const downloadButton = document.querySelector('#download');
|
||||
const downloadButton = document.querySelector("#download");
|
||||
|
||||
function filterImage(svgDataUrl, width, height) {
|
||||
const filteredImage = new Image();
|
||||
const resultPreview = document.querySelector('#result_img')
|
||||
const filteredImage = new Image();
|
||||
const resultPreview = document.querySelector("#result_img");
|
||||
|
||||
can.width = width;
|
||||
can.height = height;
|
||||
can.width = width;
|
||||
can.height = height;
|
||||
|
||||
filteredImage.onload = function () {
|
||||
ctx.drawImage(filteredImage, 0, 0, width, height);
|
||||
result = can.toDataURL();
|
||||
downloadButton.disabled = false;
|
||||
resultPreview.src = result;
|
||||
};
|
||||
filteredImage.src = svgDataUrl;
|
||||
filteredImage.onload = function () {
|
||||
ctx.drawImage(filteredImage, 0, 0, width, height);
|
||||
result = can.toDataURL();
|
||||
downloadButton.disabled = false;
|
||||
resultPreview.src = result;
|
||||
};
|
||||
filteredImage.src = svgDataUrl;
|
||||
}
|
||||
|
||||
function loadImage(base64Image) {
|
||||
const sourceImage = new Image();
|
||||
const svg = document.querySelector('svg')
|
||||
const svgImage = svg.querySelector('image')
|
||||
const sourcePreview = document.querySelector('#source_img')
|
||||
let svgDataUrl;
|
||||
const sourceImage = new Image();
|
||||
const svg = document.querySelector("svg");
|
||||
const svgImage = svg.querySelector("image");
|
||||
const sourcePreview = document.querySelector("#source_img");
|
||||
let svgDataUrl;
|
||||
|
||||
sourceImage.onload = function () {
|
||||
let svgWidth = this.width;
|
||||
let svgHeight = this.height;
|
||||
sourceImage.onload = function () {
|
||||
let svgWidth = this.width;
|
||||
let svgHeight = this.height;
|
||||
|
||||
if (this.height > 1000) {
|
||||
svgHeight = 1000;
|
||||
svgWidth = 1000 * this.width / this.height;
|
||||
}
|
||||
if (this.height > 1000) {
|
||||
svgHeight = 1000;
|
||||
svgWidth = (1000 * this.width) / this.height;
|
||||
}
|
||||
|
||||
svg.setAttribute("height", svgHeight);
|
||||
svg.setAttribute("width", svgWidth);
|
||||
svg.setAttribute("height", svgHeight);
|
||||
svg.setAttribute("width", svgWidth);
|
||||
|
||||
let svgString = (new XMLSerializer).serializeToString(svg);
|
||||
svgDataUrl = 'data:image/svg+xml,' + encodeURIComponent(svgString);
|
||||
let svgString = new XMLSerializer().serializeToString(svg);
|
||||
svgDataUrl = "data:image/svg+xml," + encodeURIComponent(svgString);
|
||||
|
||||
filterImage(svgDataUrl, this.width, this.height);
|
||||
};
|
||||
sourceImage.src = svgImage.href.baseVal = sourcePreview.src = base64Image;
|
||||
filterImage(svgDataUrl, this.width, this.height);
|
||||
};
|
||||
sourceImage.src = svgImage.href.baseVal = sourcePreview.src = base64Image;
|
||||
}
|
||||
|
||||
|
||||
function handleFileSelect(e) {
|
||||
const files = e.target.files;
|
||||
if (!files || !files.length) return;
|
||||
const file = files[0];
|
||||
if (!file.type.match('image.*')) return;
|
||||
const files = e.target.files;
|
||||
if (!files || !files.length) return;
|
||||
const file = files[0];
|
||||
if (!file.type.match("image.*")) return;
|
||||
|
||||
const reader = new FileReader();
|
||||
const reader = new FileReader();
|
||||
|
||||
reader.onload = (readerEvent) => {
|
||||
loadImage(readerEvent.target.result);
|
||||
};
|
||||
reader.onload = (readerEvent) => {
|
||||
loadImage(readerEvent.target.result);
|
||||
};
|
||||
|
||||
reader.readAsDataURL(file);
|
||||
reader.readAsDataURL(file);
|
||||
}
|
||||
|
||||
document.querySelector('#file_input').addEventListener('change', handleFileSelect, false);
|
||||
document
|
||||
.querySelector("#file_input")
|
||||
.addEventListener("change", handleFileSelect, false);
|
||||
|
||||
function downloadURI(_uri, _name) {
|
||||
let link = document.createElement("a");
|
||||
link.download = 'distortedImageEH22.png';
|
||||
link.href = result;
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
document.body.removeChild(link);
|
||||
delete link;
|
||||
let link = document.createElement("a");
|
||||
link.download = "distortedImageEH22.png";
|
||||
link.href = result;
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
document.body.removeChild(link);
|
||||
delete link;
|
||||
}
|
||||
|
||||
downloadButton.addEventListener('click', downloadURI);
|
||||
downloadButton.addEventListener("click", downloadURI);
|
||||
|
||||
(async () => {
|
||||
let exampleImageBlob = await fetch("../assets/image/example_cat.jpg")
|
||||
.then(r => r.blob());
|
||||
let exampleImageBlob = await fetch("../assets/image/example_cat.jpg").then(
|
||||
(r) => r.blob(),
|
||||
);
|
||||
|
||||
let dataUrl = await new Promise(resolve => {
|
||||
let reader = new FileReader();
|
||||
reader.onload = () => resolve(reader.result);
|
||||
reader.readAsDataURL(exampleImageBlob);
|
||||
});
|
||||
let dataUrl = await new Promise((resolve) => {
|
||||
let reader = new FileReader();
|
||||
reader.onload = () => resolve(reader.result);
|
||||
reader.readAsDataURL(exampleImageBlob);
|
||||
});
|
||||
|
||||
loadImage(dataUrl);
|
||||
})()
|
||||
loadImage(dataUrl);
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -1,197 +1,229 @@
|
|||
const sizes = [
|
||||
"XXS", "XS", "S", "M", "L", "XL", "2XL", "3XL", "4XL", "5XL", "6XL"
|
||||
]
|
||||
"XXS",
|
||||
"XS",
|
||||
"S",
|
||||
"M",
|
||||
"L",
|
||||
"XL",
|
||||
"2XL",
|
||||
"3XL",
|
||||
"4XL",
|
||||
"5XL",
|
||||
"6XL",
|
||||
];
|
||||
|
||||
function selectCell(e) {
|
||||
const cell = e.target;
|
||||
const value = parseFloat(cell.dataset.val);
|
||||
const col = cell.dataset.col;
|
||||
const dimension = cell.dataset.dim;
|
||||
const cell = e.target;
|
||||
const value = parseFloat(cell.dataset.val);
|
||||
const col = cell.dataset.col;
|
||||
const dimension = cell.dataset.dim;
|
||||
|
||||
document.querySelectorAll('td.val:not(.empty)').forEach(match => {
|
||||
match.dataset.diff = '';
|
||||
match.classList.remove('highlighted')
|
||||
match.classList.remove('currentDimension')
|
||||
if (match.dataset.dim === dimension) {
|
||||
match.classList.add('currentDimension')
|
||||
const diff = parseFloat(match.dataset.val) - value;
|
||||
match.dataset.diff = diff > 0 ? `+${diff}` : diff;
|
||||
if (match.dataset.dim === 'A') match.style.cssText = `--custom-color: rgba(96, 165, 249, ${1 - Math.abs(diff) / 5})`
|
||||
if (match.dataset.dim === 'B') match.style.cssText = `--custom-color: rgba(211, 129, 247, ${1 - Math.abs(diff) / 5})`
|
||||
if (match.dataset.dim === 'C') match.style.cssText = `--custom-color: rgba(255, 121, 117, ${1 - Math.abs(diff) / 5})`
|
||||
}
|
||||
});
|
||||
document.querySelectorAll('td.dimension').forEach(match => {
|
||||
match.classList.remove('currentDimension');
|
||||
if (match.innerHTML === dimension) {
|
||||
match.classList.add('currentDimension');
|
||||
}
|
||||
});
|
||||
document.querySelectorAll("td.val:not(.empty)").forEach((match) => {
|
||||
match.dataset.diff = "";
|
||||
match.classList.remove("highlighted");
|
||||
match.classList.remove("currentDimension");
|
||||
if (match.dataset.dim === dimension) {
|
||||
match.classList.add("currentDimension");
|
||||
const diff = parseFloat(match.dataset.val) - value;
|
||||
match.dataset.diff = diff > 0 ? `+${diff}` : diff;
|
||||
if (match.dataset.dim === "A")
|
||||
match.style.cssText = `--custom-color: rgba(96, 165, 249, ${1 - Math.abs(diff) / 5})`;
|
||||
if (match.dataset.dim === "B")
|
||||
match.style.cssText = `--custom-color: rgba(211, 129, 247, ${1 - Math.abs(diff) / 5})`;
|
||||
if (match.dataset.dim === "C")
|
||||
match.style.cssText = `--custom-color: rgba(255, 121, 117, ${1 - Math.abs(diff) / 5})`;
|
||||
}
|
||||
});
|
||||
document.querySelectorAll("td.dimension").forEach((match) => {
|
||||
match.classList.remove("currentDimension");
|
||||
if (match.innerHTML === dimension) {
|
||||
match.classList.add("currentDimension");
|
||||
}
|
||||
});
|
||||
|
||||
cell.classList.add('highlighted')
|
||||
cell.classList.add("highlighted");
|
||||
}
|
||||
|
||||
function selectCellPlus(e) {
|
||||
e.stopPropagation();
|
||||
const cell = e.target;
|
||||
const group = cell.parentElement.parentElement;
|
||||
const col = cell.dataset.col;
|
||||
e.stopPropagation();
|
||||
const cell = e.target;
|
||||
const group = cell.parentElement.parentElement;
|
||||
const col = cell.dataset.col;
|
||||
|
||||
if (cell.classList.contains('highlighted') && !cell.classList.contains('currentDimension')) {
|
||||
selectCell(e);
|
||||
return;
|
||||
if (
|
||||
cell.classList.contains("highlighted") &&
|
||||
!cell.classList.contains("currentDimension")
|
||||
) {
|
||||
selectCell(e);
|
||||
return;
|
||||
}
|
||||
|
||||
const values = {};
|
||||
group.querySelectorAll(`td[data-col='${col}']`).forEach((match) => {
|
||||
values[match.dataset.dim] = parseFloat(match.dataset.val);
|
||||
});
|
||||
|
||||
document.querySelectorAll("td.val:not(.empty)").forEach((match) => {
|
||||
match.dataset.diff = "";
|
||||
match.classList.remove("highlighted");
|
||||
match.classList.remove("currentDimension");
|
||||
if (match.dataset.dim in values) {
|
||||
const diff = parseFloat(match.dataset.val) - values[match.dataset.dim];
|
||||
match.dataset.diff = diff > 0 ? `+${diff}` : diff;
|
||||
if (match.dataset.dim === "A")
|
||||
match.style.cssText = `--custom-color: rgba(96, 165, 249, ${1 - Math.abs(diff) / 5})`;
|
||||
if (match.dataset.dim === "B")
|
||||
match.style.cssText = `--custom-color: rgba(211, 129, 247, ${1 - Math.abs(diff) / 5})`;
|
||||
if (match.dataset.dim === "C")
|
||||
match.style.cssText = `--custom-color: rgba(255, 121, 117, ${1 - Math.abs(diff) / 5})`;
|
||||
}
|
||||
});
|
||||
document.querySelectorAll("td.dimension").forEach((match) => {
|
||||
match.classList.remove("currentDimension");
|
||||
});
|
||||
|
||||
const values = {}
|
||||
group.querySelectorAll(`td[data-col='${col}']`).forEach(match => {
|
||||
values[match.dataset.dim] = parseFloat(match.dataset.val);
|
||||
})
|
||||
|
||||
document.querySelectorAll('td.val:not(.empty)').forEach(match => {
|
||||
match.dataset.diff = '';
|
||||
match.classList.remove('highlighted')
|
||||
match.classList.remove('currentDimension')
|
||||
if (match.dataset.dim in values) {
|
||||
const diff = parseFloat(match.dataset.val) - values[match.dataset.dim];
|
||||
match.dataset.diff = diff > 0 ? `+${diff}` : diff;
|
||||
if (match.dataset.dim === 'A') match.style.cssText = `--custom-color: rgba(96, 165, 249, ${1 - Math.abs(diff) / 5})`
|
||||
if (match.dataset.dim === 'B') match.style.cssText = `--custom-color: rgba(211, 129, 247, ${1 - Math.abs(diff) / 5})`
|
||||
if (match.dataset.dim === 'C') match.style.cssText = `--custom-color: rgba(255, 121, 117, ${1 - Math.abs(diff) / 5})`
|
||||
}
|
||||
});
|
||||
document.querySelectorAll('td.dimension').forEach(match => {
|
||||
match.classList.remove('currentDimension');
|
||||
});
|
||||
|
||||
group.querySelectorAll(`td[data-col='${col}']`).forEach(match => {
|
||||
match.classList.add('highlighted')
|
||||
})
|
||||
|
||||
group.querySelectorAll(`td[data-col='${col}']`).forEach((match) => {
|
||||
match.classList.add("highlighted");
|
||||
});
|
||||
}
|
||||
|
||||
function hoverCell(e) {
|
||||
const cell = e.target;
|
||||
const group = cell.parentElement.parentElement;
|
||||
const col = cell.dataset.col;
|
||||
const dim = cell.dataset.dim;
|
||||
const cell = e.target;
|
||||
const group = cell.parentElement.parentElement;
|
||||
const col = cell.dataset.col;
|
||||
const dim = cell.dataset.dim;
|
||||
|
||||
hoverOff()
|
||||
document.querySelectorAll('table > thead > tr > th').forEach(match => {
|
||||
if (match.dataset.col === col) match.classList.add('hover')
|
||||
});
|
||||
group.querySelectorAll('td.dimension').forEach(match => {
|
||||
if (match.innerText === dim) match.classList.add('hover')
|
||||
});
|
||||
group.querySelectorAll('td:not(.dimension), th').forEach(match => {
|
||||
match.classList.add('hover')
|
||||
});
|
||||
hoverOff();
|
||||
document.querySelectorAll("table > thead > tr > th").forEach((match) => {
|
||||
if (match.dataset.col === col) match.classList.add("hover");
|
||||
});
|
||||
group.querySelectorAll("td.dimension").forEach((match) => {
|
||||
if (match.innerText === dim) match.classList.add("hover");
|
||||
});
|
||||
group.querySelectorAll("td:not(.dimension), th").forEach((match) => {
|
||||
match.classList.add("hover");
|
||||
});
|
||||
}
|
||||
|
||||
function hoverOff() {
|
||||
document.querySelectorAll('table > thead > tr > th').forEach(match => {
|
||||
match.classList.remove('hover')
|
||||
});
|
||||
document.querySelectorAll('td.dimension, td, th').forEach(match => {
|
||||
match.classList.remove('hover')
|
||||
});
|
||||
document.querySelectorAll("table > thead > tr > th").forEach((match) => {
|
||||
match.classList.remove("hover");
|
||||
});
|
||||
document.querySelectorAll("td.dimension, td, th").forEach((match) => {
|
||||
match.classList.remove("hover");
|
||||
});
|
||||
}
|
||||
|
||||
const typeList = new Set()
|
||||
const fitList = new Set()
|
||||
const typeList = new Set();
|
||||
const fitList = new Set();
|
||||
|
||||
document.querySelectorAll('tbody').forEach(tbody => {
|
||||
if (tbody.dataset.from) {
|
||||
const source = document.querySelector(`tbody#${tbody.dataset.from}`)
|
||||
if (!source) {
|
||||
console.log(`tbody with ID '${tbody.dataset.from}' not found.`);
|
||||
return;
|
||||
}
|
||||
|
||||
const name = tbody.querySelector('tr th').innerHTML;
|
||||
tbody.replaceChildren()
|
||||
tbody.insertAdjacentHTML("afterbegin", source.innerHTML)
|
||||
tbody.querySelector('tr th').innerHTML = name;
|
||||
delete tbody.dataset.from;
|
||||
tbody.dataset.type = source.dataset.type;
|
||||
tbody.dataset.fit = source.dataset.fit;
|
||||
document.querySelectorAll("tbody").forEach((tbody) => {
|
||||
if (tbody.dataset.from) {
|
||||
const source = document.querySelector(`tbody#${tbody.dataset.from}`);
|
||||
if (!source) {
|
||||
console.log(`tbody with ID '${tbody.dataset.from}' not found.`);
|
||||
return;
|
||||
}
|
||||
|
||||
typeList.add(tbody.dataset.type);
|
||||
fitList.add(tbody.dataset.fit);
|
||||
const name = tbody.querySelector("tr th").innerHTML;
|
||||
tbody.replaceChildren();
|
||||
tbody.insertAdjacentHTML("afterbegin", source.innerHTML);
|
||||
tbody.querySelector("tr th").innerHTML = name;
|
||||
delete tbody.dataset.from;
|
||||
tbody.dataset.type = source.dataset.type;
|
||||
tbody.dataset.fit = source.dataset.fit;
|
||||
}
|
||||
|
||||
typeList.add(tbody.dataset.type);
|
||||
fitList.add(tbody.dataset.fit);
|
||||
});
|
||||
|
||||
// build filter
|
||||
const filterTypeElement = document.querySelector('#filterType');
|
||||
typeList.forEach(type => {
|
||||
filterTypeElement.insertAdjacentHTML('beforeend', `<label>
|
||||
const filterTypeElement = document.querySelector("#filterType");
|
||||
typeList.forEach((type) => {
|
||||
filterTypeElement.insertAdjacentHTML(
|
||||
"beforeend",
|
||||
`<label>
|
||||
<input type="checkbox" value="${type}" checked>
|
||||
${type}
|
||||
</label>`)
|
||||
})
|
||||
const filterFitElement = document.querySelector('#filterFit');
|
||||
fitList.forEach(fit => {
|
||||
filterFitElement.insertAdjacentHTML('beforeend', `<label>
|
||||
</label>`,
|
||||
);
|
||||
});
|
||||
const filterFitElement = document.querySelector("#filterFit");
|
||||
fitList.forEach((fit) => {
|
||||
filterFitElement.insertAdjacentHTML(
|
||||
"beforeend",
|
||||
`<label>
|
||||
<input type="checkbox" value="${fit}" checked>
|
||||
${fit}
|
||||
</label>`)
|
||||
})
|
||||
</label>`,
|
||||
);
|
||||
});
|
||||
|
||||
const filterType = new Set(typeList);
|
||||
const filterFit = new Set(fitList);
|
||||
|
||||
function filter() {
|
||||
document.querySelectorAll(`tbody`).forEach(match => {
|
||||
match.classList.toggle('filtered', !filterType.has(match.dataset.type) || !filterFit.has(match.dataset.fit));
|
||||
})
|
||||
document.querySelectorAll(`tbody`).forEach((match) => {
|
||||
match.classList.toggle(
|
||||
"filtered",
|
||||
!filterType.has(match.dataset.type) || !filterFit.has(match.dataset.fit),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
filterTypeElement.querySelectorAll('input[type="checkbox"]').forEach(checkbox => {
|
||||
checkbox.addEventListener('change', (e) => {
|
||||
if (checkbox.checked) {
|
||||
filterType.add(checkbox.value)
|
||||
} else {
|
||||
filterType.delete(checkbox.value)
|
||||
}
|
||||
filter();
|
||||
filterTypeElement
|
||||
.querySelectorAll('input[type="checkbox"]')
|
||||
.forEach((checkbox) => {
|
||||
checkbox.addEventListener("change", (e) => {
|
||||
if (checkbox.checked) {
|
||||
filterType.add(checkbox.value);
|
||||
} else {
|
||||
filterType.delete(checkbox.value);
|
||||
}
|
||||
filter();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
filterFitElement.querySelectorAll('input[type="checkbox"]').forEach(checkbox => {
|
||||
checkbox.addEventListener('change', (e) => {
|
||||
if (checkbox.checked) {
|
||||
filterFit.add(checkbox.value)
|
||||
} else {
|
||||
filterFit.delete(checkbox.value)
|
||||
}
|
||||
filterFitElement
|
||||
.querySelectorAll('input[type="checkbox"]')
|
||||
.forEach((checkbox) => {
|
||||
checkbox.addEventListener("change", (e) => {
|
||||
if (checkbox.checked) {
|
||||
filterFit.add(checkbox.value);
|
||||
} else {
|
||||
filterFit.delete(checkbox.value);
|
||||
}
|
||||
|
||||
filter();
|
||||
filter();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
document.querySelectorAll('td.val').forEach(cell => {
|
||||
const rowTitle = cell.parentElement.querySelector('th');
|
||||
cell.dataset.col = sizes[rowTitle !== null ? cell.cellIndex - 4 : cell.cellIndex - 1];
|
||||
cell.addEventListener('pointerenter', hoverCell);
|
||||
cell.addEventListener('pointerleave', hoverOff);
|
||||
document.querySelectorAll("td.val").forEach((cell) => {
|
||||
const rowTitle = cell.parentElement.querySelector("th");
|
||||
cell.dataset.col =
|
||||
sizes[rowTitle !== null ? cell.cellIndex - 4 : cell.cellIndex - 1];
|
||||
cell.addEventListener("pointerenter", hoverCell);
|
||||
cell.addEventListener("pointerleave", hoverOff);
|
||||
});
|
||||
|
||||
// initialize table
|
||||
document.querySelectorAll('td.val:not(.empty)').forEach(cell => {
|
||||
cell.dataset.val = cell.innerText;
|
||||
cell.dataset.diff = '';
|
||||
cell.dataset.dim = cell.parentElement.querySelector('td.dimension').innerHTML;
|
||||
document.querySelectorAll("td.val:not(.empty)").forEach((cell) => {
|
||||
cell.dataset.val = cell.innerText;
|
||||
cell.dataset.diff = "";
|
||||
cell.dataset.dim = cell.parentElement.querySelector("td.dimension").innerHTML;
|
||||
|
||||
cell.addEventListener('click', selectCellPlus);
|
||||
cell.addEventListener("click", selectCellPlus);
|
||||
});
|
||||
|
||||
// disable select on click outside value cell
|
||||
document.addEventListener('click', e => {
|
||||
document.querySelectorAll('td.val:not(.empty)').forEach(match => {
|
||||
match.dataset.diff = '';
|
||||
match.classList.remove('highlighted')
|
||||
match.classList.remove('currentDimension')
|
||||
});
|
||||
document.querySelectorAll('td.dimension').forEach(match => {
|
||||
match.classList.remove('currentDimension');
|
||||
});
|
||||
});
|
||||
document.addEventListener("click", (e) => {
|
||||
document.querySelectorAll("td.val:not(.empty)").forEach((match) => {
|
||||
match.dataset.diff = "";
|
||||
match.classList.remove("highlighted");
|
||||
match.classList.remove("currentDimension");
|
||||
});
|
||||
document.querySelectorAll("td.dimension").forEach((match) => {
|
||||
match.classList.remove("currentDimension");
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,19 +1,18 @@
|
|||
document.querySelector('nav > button')?.addEventListener('click', (e) => {
|
||||
document.querySelector('nav').classList.toggle('visible');
|
||||
})
|
||||
document.querySelector("nav > button")?.addEventListener("click", (e) => {
|
||||
document.querySelector("nav").classList.toggle("visible");
|
||||
});
|
||||
|
||||
document.querySelectorAll('.toggleTheme')?.forEach(
|
||||
element => element.addEventListener('click', (e) => {
|
||||
const newTheme = element.dataset.theme;
|
||||
applyTheme(newTheme);
|
||||
}
|
||||
)
|
||||
document.querySelectorAll(".toggleTheme")?.forEach((element) =>
|
||||
element.addEventListener("click", (e) => {
|
||||
const newTheme = element.dataset.theme;
|
||||
applyTheme(newTheme);
|
||||
}),
|
||||
);
|
||||
|
||||
document.querySelector('#themeDark').addEventListener('change', (e) => {
|
||||
setTheme(e.target.checked ? 'dark' : 'system');
|
||||
})
|
||||
document.querySelector("#themeDark").addEventListener("change", (e) => {
|
||||
setTheme(e.target.checked ? "dark" : "system");
|
||||
});
|
||||
|
||||
document.querySelector('#themeLight').addEventListener('change', (e) => {
|
||||
setTheme(e.target.checked ? 'light' : 'system');
|
||||
})
|
||||
document.querySelector("#themeLight").addEventListener("change", (e) => {
|
||||
setTheme(e.target.checked ? "light" : "system");
|
||||
});
|
||||
|
|
|
|||
|
|
@ -129,14 +129,23 @@
|
|||
--color-accent-1: var(--color-dark-accent-1);
|
||||
--color-accent-2: var(--color-dark-accent-2);
|
||||
--color-accent-3: var(--color-dark-accent-3);
|
||||
--filter-glow-primary: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-primary)) drop-shadow(0 0 0.25em var(--color-primary));
|
||||
--filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-secondary)) drop-shadow(0 0 0.25em var(--color-secondary));
|
||||
--filter-glow-primary: drop-shadow(0 0 0.0625em var(--color-white))
|
||||
drop-shadow(0 0 0.125em var(--color-primary))
|
||||
drop-shadow(0 0 0.25em var(--color-primary));
|
||||
--filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-white))
|
||||
drop-shadow(0 0 0.125em var(--color-secondary))
|
||||
drop-shadow(0 0 0.25em var(--color-secondary));
|
||||
--color-glow-primary: var(--color-white);
|
||||
--color-glow-secondary: var(--color-white);
|
||||
--transition-glow: filter 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms;
|
||||
--text-glow-primary: drop-shadow(0 0 0.03125em var(--color-white)) drop-shadow(0 0 0.0625em var(--color-primary)) drop-shadow(0 0 0.125em var(--color-primary));
|
||||
--text-glow-secondary: drop-shadow(0 0 0.03125em var(--color-white)) drop-shadow(0 0 0.0625em var(--color-secondary)) drop-shadow(0 0 0.125em var(--color-secondary));
|
||||
--transition-glow:
|
||||
filter 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms;
|
||||
--text-glow-primary: drop-shadow(0 0 0.03125em var(--color-white))
|
||||
drop-shadow(0 0 0.0625em var(--color-primary))
|
||||
drop-shadow(0 0 0.125em var(--color-primary));
|
||||
--text-glow-secondary: drop-shadow(0 0 0.03125em var(--color-white))
|
||||
drop-shadow(0 0 0.0625em var(--color-secondary))
|
||||
drop-shadow(0 0 0.125em var(--color-secondary));
|
||||
}
|
||||
.dark .light-only {
|
||||
display: none;
|
||||
|
|
@ -163,8 +172,9 @@
|
|||
--filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-krypton-400));
|
||||
--color-glow-primary: var(--color-argon-950);
|
||||
--color-glow-secondary: var(--color-krypton-950);
|
||||
--transition-glow: filter 150ms cubic-bezier(0, 2, 1, -0.7) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 2, 1, -0.7) 50ms;
|
||||
--transition-glow:
|
||||
filter 150ms cubic-bezier(0, 2, 1, -0.7) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 2, 1, -0.7) 50ms;
|
||||
--text-glow-primary: drop-shadow(0 0 0.03125em var(--color-argon-400));
|
||||
--text-glow-secondary: drop-shadow(0 0 0.03125em var(--color-krypton-400));
|
||||
}
|
||||
|
|
@ -190,14 +200,23 @@
|
|||
--color-accent-1: var(--color-dark-accent-1);
|
||||
--color-accent-2: var(--color-dark-accent-2);
|
||||
--color-accent-3: var(--color-dark-accent-3);
|
||||
--filter-glow-primary: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-primary)) drop-shadow(0 0 0.25em var(--color-primary));
|
||||
--filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-secondary)) drop-shadow(0 0 0.25em var(--color-secondary));
|
||||
--filter-glow-primary: drop-shadow(0 0 0.0625em var(--color-white))
|
||||
drop-shadow(0 0 0.125em var(--color-primary))
|
||||
drop-shadow(0 0 0.25em var(--color-primary));
|
||||
--filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-white))
|
||||
drop-shadow(0 0 0.125em var(--color-secondary))
|
||||
drop-shadow(0 0 0.25em var(--color-secondary));
|
||||
--color-glow-primary: var(--color-white);
|
||||
--color-glow-secondary: var(--color-white);
|
||||
--transition-glow: filter 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms;
|
||||
--text-glow-primary: drop-shadow(0 0 0.03125em var(--color-white)) drop-shadow(0 0 0.0625em var(--color-primary)) drop-shadow(0 0 0.125em var(--color-primary));
|
||||
--text-glow-secondary: drop-shadow(0 0 0.03125em var(--color-white)) drop-shadow(0 0 0.0625em var(--color-secondary)) drop-shadow(0 0 0.125em var(--color-secondary));
|
||||
--transition-glow:
|
||||
filter 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms;
|
||||
--text-glow-primary: drop-shadow(0 0 0.03125em var(--color-white))
|
||||
drop-shadow(0 0 0.0625em var(--color-primary))
|
||||
drop-shadow(0 0 0.125em var(--color-primary));
|
||||
--text-glow-secondary: drop-shadow(0 0 0.03125em var(--color-white))
|
||||
drop-shadow(0 0 0.0625em var(--color-secondary))
|
||||
drop-shadow(0 0 0.125em var(--color-secondary));
|
||||
}
|
||||
html .light-only {
|
||||
display: none;
|
||||
|
|
@ -223,8 +242,9 @@
|
|||
--filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-krypton-400));
|
||||
--color-glow-primary: var(--color-argon-950);
|
||||
--color-glow-secondary: var(--color-krypton-950);
|
||||
--transition-glow: filter 150ms cubic-bezier(0, 2, 1, -0.7) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 2, 1, -0.7) 50ms;
|
||||
--transition-glow:
|
||||
filter 150ms cubic-bezier(0, 2, 1, -0.7) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 2, 1, -0.7) 50ms;
|
||||
--text-glow-primary: drop-shadow(0 0 0.03125em var(--color-argon-400));
|
||||
--text-glow-secondary: drop-shadow(0 0 0.03125em var(--color-krypton-400));
|
||||
}
|
||||
|
|
@ -257,8 +277,9 @@
|
|||
--filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-krypton-400));
|
||||
--color-glow-primary: var(--color-argon-950);
|
||||
--color-glow-secondary: var(--color-krypton-950);
|
||||
--transition-glow: filter 150ms cubic-bezier(0, 2, 1, -0.7) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 2, 1, -0.7) 50ms;
|
||||
--transition-glow:
|
||||
filter 150ms cubic-bezier(0, 2, 1, -0.7) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 2, 1, -0.7) 50ms;
|
||||
--text-glow-primary: drop-shadow(0 0 0.03125em var(--color-argon-400));
|
||||
--text-glow-secondary: drop-shadow(0 0 0.03125em var(--color-krypton-400));
|
||||
}
|
||||
|
|
@ -282,14 +303,23 @@
|
|||
--color-accent-1: var(--color-dark-accent-1);
|
||||
--color-accent-2: var(--color-dark-accent-2);
|
||||
--color-accent-3: var(--color-dark-accent-3);
|
||||
--filter-glow-primary: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-primary)) drop-shadow(0 0 0.25em var(--color-primary));
|
||||
--filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-secondary)) drop-shadow(0 0 0.25em var(--color-secondary));
|
||||
--filter-glow-primary: drop-shadow(0 0 0.0625em var(--color-white))
|
||||
drop-shadow(0 0 0.125em var(--color-primary))
|
||||
drop-shadow(0 0 0.25em var(--color-primary));
|
||||
--filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-white))
|
||||
drop-shadow(0 0 0.125em var(--color-secondary))
|
||||
drop-shadow(0 0 0.25em var(--color-secondary));
|
||||
--color-glow-primary: var(--color-white);
|
||||
--color-glow-secondary: var(--color-white);
|
||||
--transition-glow: filter 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms;
|
||||
--text-glow-primary: drop-shadow(0 0 0.03125em var(--color-white)) drop-shadow(0 0 0.0625em var(--color-primary)) drop-shadow(0 0 0.125em var(--color-primary));
|
||||
--text-glow-secondary: drop-shadow(0 0 0.03125em var(--color-white)) drop-shadow(0 0 0.0625em var(--color-secondary)) drop-shadow(0 0 0.125em var(--color-secondary));
|
||||
--transition-glow:
|
||||
filter 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms;
|
||||
--text-glow-primary: drop-shadow(0 0 0.03125em var(--color-white))
|
||||
drop-shadow(0 0 0.0625em var(--color-primary))
|
||||
drop-shadow(0 0 0.125em var(--color-primary));
|
||||
--text-glow-secondary: drop-shadow(0 0 0.03125em var(--color-white))
|
||||
drop-shadow(0 0 0.0625em var(--color-secondary))
|
||||
drop-shadow(0 0 0.125em var(--color-secondary));
|
||||
}
|
||||
html:has(#themeDark:checked) .light-only {
|
||||
display: none;
|
||||
|
|
@ -385,12 +415,18 @@ body {
|
|||
font-family: "Athiti", ui-sans, sans-serif;
|
||||
}
|
||||
|
||||
h1, .h1,
|
||||
h2, .h2,
|
||||
h3, .h3,
|
||||
h4, .h4,
|
||||
h5, .h5,
|
||||
h6, .h6 {
|
||||
h1,
|
||||
.h1,
|
||||
h2,
|
||||
.h2,
|
||||
h3,
|
||||
.h3,
|
||||
h4,
|
||||
.h4,
|
||||
h5,
|
||||
.h5,
|
||||
h6,
|
||||
.h6 {
|
||||
font-family: "Argon Glow", ui-sans, sans-serif;
|
||||
font-weight: 400;
|
||||
margin: 1rem 0;
|
||||
|
|
@ -496,7 +532,9 @@ a {
|
|||
color: var(--color-accent-1);
|
||||
text-decoration: underline;
|
||||
}
|
||||
a:hover, a:active, a:focus {
|
||||
a:hover,
|
||||
a:active,
|
||||
a:focus {
|
||||
color: var(--color-accent-3);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
|
@ -504,7 +542,9 @@ a:visited {
|
|||
color: var(--color-accent-2);
|
||||
text-decoration: underline;
|
||||
}
|
||||
a:visited:hover, a:visited:active, a:visited:focus {
|
||||
a:visited:hover,
|
||||
a:visited:active,
|
||||
a:visited:focus {
|
||||
color: var(--color-accent-3);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -145,16 +145,24 @@ $mobile-navigation-height: 4rem;
|
|||
--color-accent-2: var(--color-dark-accent-2);
|
||||
--color-accent-3: var(--color-dark-accent-3);
|
||||
|
||||
--filter-glow-primary: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-primary)) drop-shadow(0 0 0.25em var(--color-primary));
|
||||
--filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-secondary)) drop-shadow(0 0 0.25em var(--color-secondary));
|
||||
--filter-glow-primary: drop-shadow(0 0 0.0625em var(--color-white))
|
||||
drop-shadow(0 0 0.125em var(--color-primary))
|
||||
drop-shadow(0 0 0.25em var(--color-primary));
|
||||
--filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-white))
|
||||
drop-shadow(0 0 0.125em var(--color-secondary))
|
||||
drop-shadow(0 0 0.25em var(--color-secondary));
|
||||
--color-glow-primary: var(--color-white);
|
||||
--color-glow-secondary: var(--color-white);
|
||||
--transition-glow: filter 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms;
|
||||
|
||||
--text-glow-primary: drop-shadow(0 0 0.03125em var(--color-white)) drop-shadow(0 0 0.0625em var(--color-primary)) drop-shadow(0 0 0.125em var(--color-primary));
|
||||
--text-glow-secondary: drop-shadow(0 0 0.03125em var(--color-white)) drop-shadow(0 0 0.0625em var(--color-secondary)) drop-shadow(0 0 0.125em var(--color-secondary));
|
||||
--transition-glow:
|
||||
filter 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms;
|
||||
|
||||
--text-glow-primary: drop-shadow(0 0 0.03125em var(--color-white))
|
||||
drop-shadow(0 0 0.0625em var(--color-primary))
|
||||
drop-shadow(0 0 0.125em var(--color-primary));
|
||||
--text-glow-secondary: drop-shadow(0 0 0.03125em var(--color-white))
|
||||
drop-shadow(0 0 0.0625em var(--color-secondary))
|
||||
drop-shadow(0 0 0.125em var(--color-secondary));
|
||||
|
||||
.light-only {
|
||||
display: none;
|
||||
|
|
@ -184,13 +192,13 @@ $mobile-navigation-height: 4rem;
|
|||
--filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-krypton-400));
|
||||
--color-glow-primary: var(--color-argon-950);
|
||||
--color-glow-secondary: var(--color-krypton-950);
|
||||
--transition-glow: filter 150ms cubic-bezier(0, 2, 1, -0.7) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 2, 1, -0.7) 50ms;
|
||||
--transition-glow:
|
||||
filter 150ms cubic-bezier(0, 2, 1, -0.7) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 2, 1, -0.7) 50ms;
|
||||
|
||||
--text-glow-primary: drop-shadow(0 0 0.03125em var(--color-argon-400));
|
||||
--text-glow-secondary: drop-shadow(0 0 0.03125em var(--color-krypton-400));
|
||||
|
||||
|
||||
.light-only {
|
||||
display: initial;
|
||||
}
|
||||
|
|
@ -237,91 +245,91 @@ $mobile-navigation-height: 4rem;
|
|||
// fonts
|
||||
|
||||
@font-face {
|
||||
font-family: 'Athiti';
|
||||
font-family: "Athiti";
|
||||
font-weight: 700;
|
||||
src: url('../font/athiti/Athiti-Bold.woff2') format('woff2');
|
||||
src: url("../font/athiti/Athiti-Bold.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Athiti';
|
||||
font-family: "Athiti";
|
||||
font-weight: 600;
|
||||
src: url('../font/athiti/Athiti-SemiBold.woff2') format('woff2');
|
||||
src: url("../font/athiti/Athiti-SemiBold.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Athiti';
|
||||
font-family: "Athiti";
|
||||
font-weight: 500;
|
||||
src: url('../font/athiti/Athiti-Medium.woff2') format('woff2');
|
||||
src: url("../font/athiti/Athiti-Medium.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Athiti';
|
||||
font-family: "Athiti";
|
||||
font-weight: 400;
|
||||
src: url('../font/athiti/Athiti-Regular.woff2') format('woff2');
|
||||
src: url("../font/athiti/Athiti-Regular.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Athiti';
|
||||
font-family: "Athiti";
|
||||
font-weight: 300;
|
||||
src: url('../font/athiti/Athiti-Light.woff2') format('woff2');
|
||||
src: url("../font/athiti/Athiti-Light.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Athiti';
|
||||
font-family: "Athiti";
|
||||
font-weight: 200;
|
||||
src: url('../font/athiti/Athiti-ExtraLight.woff2') format('woff2');
|
||||
src: url("../font/athiti/Athiti-ExtraLight.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Departure Mono';
|
||||
src: url('../font/departuremono/DepartureMono-Regular.woff2') format('woff2');
|
||||
font-family: "Departure Mono";
|
||||
src: url("../font/departuremono/DepartureMono-Regular.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Argon Glow';
|
||||
font-family: "Argon Glow";
|
||||
font-weight: 100;
|
||||
src: url('../font/argonglow/ArgonGlow-Thin.woff2') format('woff2');
|
||||
src: url("../font/argonglow/ArgonGlow-Thin.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Argon Glow';
|
||||
font-family: "Argon Glow";
|
||||
font-weight: 200;
|
||||
src: url('../font/argonglow/ArgonGlow-ExtraLight.woff2') format('woff2');
|
||||
src: url("../font/argonglow/ArgonGlow-ExtraLight.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Argon Glow';
|
||||
font-family: "Argon Glow";
|
||||
font-weight: 300;
|
||||
src: url('../font/argonglow/ArgonGlow-Light.woff2') format('woff2');
|
||||
src: url("../font/argonglow/ArgonGlow-Light.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Argon Glow';
|
||||
font-family: "Argon Glow";
|
||||
font-weight: 400;
|
||||
src: url('../font/argonglow/ArgonGlow-Regular.woff2') format('woff2');
|
||||
src: url("../font/argonglow/ArgonGlow-Regular.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Argon Glow';
|
||||
font-family: "Argon Glow";
|
||||
font-weight: 500;
|
||||
src: url('../font/argonglow/ArgonGlow-Medium.woff2') format('woff2');
|
||||
src: url("../font/argonglow/ArgonGlow-Medium.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Argon Glow';
|
||||
font-family: "Argon Glow";
|
||||
font-weight: 600;
|
||||
src: url('../font/argonglow/ArgonGlow-SemiBold.woff2') format('woff2');
|
||||
src: url("../font/argonglow/ArgonGlow-SemiBold.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Argon Glow';
|
||||
font-family: "Argon Glow";
|
||||
font-weight: 700;
|
||||
src: url('../font/argonglow/ArgonGlow-Bold.woff2') format('woff2');
|
||||
src: url("../font/argonglow/ArgonGlow-Bold.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Argon Glow';
|
||||
src: url('../font/argonglow/ArgonGlow-VariableVF.woff2') format('woff2');
|
||||
font-family: "Argon Glow";
|
||||
src: url("../font/argonglow/ArgonGlow-VariableVF.woff2") format("woff2");
|
||||
font-weight: 100 900;
|
||||
}
|
||||
|
||||
|
|
@ -334,22 +342,26 @@ $mobile-navigation-height: 4rem;
|
|||
body {
|
||||
background-color: var(--color-background);
|
||||
color: var(--color-foreground);
|
||||
font-family: 'Athiti', ui-sans, sans-serif;
|
||||
font-family: "Athiti", ui-sans, sans-serif;
|
||||
}
|
||||
|
||||
h1, .h1,
|
||||
h2, .h2,
|
||||
h3, .h3,
|
||||
h4, .h4,
|
||||
h5, .h5,
|
||||
h6, .h6,
|
||||
{
|
||||
font-family: 'Argon Glow', ui-sans, sans-serif;
|
||||
h1,
|
||||
.h1,
|
||||
h2,
|
||||
.h2,
|
||||
h3,
|
||||
.h3,
|
||||
h4,
|
||||
.h4,
|
||||
h5,
|
||||
.h5,
|
||||
h6,
|
||||
.h6 {
|
||||
font-family: "Argon Glow", ui-sans, sans-serif;
|
||||
font-weight: 400;
|
||||
margin: 1rem 0;
|
||||
}
|
||||
|
||||
|
||||
h1,
|
||||
.h1 {
|
||||
font-size: var(--text-5xl);
|
||||
|
|
@ -387,7 +399,7 @@ h6,
|
|||
}
|
||||
|
||||
pre {
|
||||
font-family: 'Departure Mono', ui-monospace, monospace;
|
||||
font-family: "Departure Mono", ui-monospace, monospace;
|
||||
font-size: 0.8em;
|
||||
display: block;
|
||||
padding: 1rem;
|
||||
|
|
@ -404,7 +416,7 @@ pre {
|
|||
|
||||
code,
|
||||
.code {
|
||||
font-family: 'Departure Mono', ui-monospace, monospace;
|
||||
font-family: "Departure Mono", ui-monospace, monospace;
|
||||
font-size: 0.8em;
|
||||
background-color: var(--color-shade-2);
|
||||
border-radius: 0.2em;
|
||||
|
|
@ -415,7 +427,6 @@ table {
|
|||
width: fit-content;
|
||||
border-collapse: collapse;
|
||||
|
||||
|
||||
th,
|
||||
td {
|
||||
padding: 0.25rem 0.5rem;
|
||||
|
|
@ -493,7 +504,7 @@ figure {
|
|||
object-position: center;
|
||||
|
||||
&.glitch {
|
||||
filter: url('glitch.svg#glitch');
|
||||
filter: url("glitch.svg#glitch");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -506,6 +517,6 @@ img {
|
|||
margin: 0 auto;
|
||||
|
||||
&.glitch {
|
||||
filter: url('glitch.svg#glitch');
|
||||
filter: url("glitch.svg#glitch");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
i[data-icon] {
|
||||
display: inline-block;
|
||||
width: 1em;
|
||||
|
|
@ -8,7 +7,7 @@ i[data-icon] {
|
|||
box-sizing: content-box;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
content: "";
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
@ -18,39 +17,39 @@ i[data-icon] {
|
|||
background-color: currentColor;
|
||||
}
|
||||
|
||||
&[data-icon='arrow-left']::before {
|
||||
mask-image: url('../icon/arrow_left.svg');
|
||||
&[data-icon="arrow-left"]::before {
|
||||
mask-image: url("../icon/arrow_left.svg");
|
||||
}
|
||||
|
||||
&[data-icon='arrow-up']::before {
|
||||
mask-image: url('../icon/arrow_up.svg');
|
||||
&[data-icon="arrow-up"]::before {
|
||||
mask-image: url("../icon/arrow_up.svg");
|
||||
}
|
||||
|
||||
&[data-icon='arrow-right']::before {
|
||||
mask-image: url('../icon/arrow_right.svg');
|
||||
&[data-icon="arrow-right"]::before {
|
||||
mask-image: url("../icon/arrow_right.svg");
|
||||
}
|
||||
|
||||
&[data-icon='arrow-down']::before {
|
||||
mask-image: url('../icon/arrow_down.svg');
|
||||
&[data-icon="arrow-down"]::before {
|
||||
mask-image: url("../icon/arrow_down.svg");
|
||||
}
|
||||
|
||||
&[data-icon='info']::before {
|
||||
mask-image: url('../icon/info.svg');
|
||||
&[data-icon="info"]::before {
|
||||
mask-image: url("../icon/info.svg");
|
||||
}
|
||||
|
||||
&[data-icon='home']::before {
|
||||
mask-image: url('../icon/home.svg');
|
||||
&[data-icon="home"]::before {
|
||||
mask-image: url("../icon/home.svg");
|
||||
}
|
||||
|
||||
&[data-icon='menu-small']::before {
|
||||
mask-image: url('../icon/menu_small.svg');
|
||||
&[data-icon="menu-small"]::before {
|
||||
mask-image: url("../icon/menu_small.svg");
|
||||
}
|
||||
|
||||
&[data-icon='light']::before {
|
||||
mask-image: url('../icon/lightbulb.svg');
|
||||
&[data-icon="light"]::before {
|
||||
mask-image: url("../icon/lightbulb.svg");
|
||||
}
|
||||
|
||||
&[data-icon='warning']::before {
|
||||
mask-image: url('../icon/warning.svg');
|
||||
&[data-icon="warning"]::before {
|
||||
mask-image: url("../icon/warning.svg");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -86,13 +86,13 @@ table td.val:not(.empty).hover {
|
|||
table td.val:not(.empty):hover {
|
||||
background-color: var(--color-shade-3);
|
||||
}
|
||||
table td.val.highlighted[data-dim=A] {
|
||||
table td.val.highlighted[data-dim="A"] {
|
||||
background-color: rgb(96, 165, 249);
|
||||
}
|
||||
table td.val.highlighted[data-dim=B] {
|
||||
table td.val.highlighted[data-dim="B"] {
|
||||
background-color: rgb(211, 129, 247);
|
||||
}
|
||||
table td.val.highlighted[data-dim=C] {
|
||||
table td.val.highlighted[data-dim="C"] {
|
||||
background-color: rgb(255, 121, 117);
|
||||
}
|
||||
table td.val.currentDimension:not(.hover) {
|
||||
|
|
@ -165,7 +165,7 @@ div.filterBox > div label {
|
|||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
div.filterBox > div label input[type=checkbox] {
|
||||
div.filterBox > div label input[type="checkbox"] {
|
||||
appearance: none;
|
||||
background-color: var(--color-shade-1);
|
||||
margin: 0;
|
||||
|
|
@ -178,7 +178,7 @@ div.filterBox > div label input[type=checkbox] {
|
|||
position: relative;
|
||||
font-family: inherit;
|
||||
}
|
||||
div.filterBox > div label input[type=checkbox]::before {
|
||||
div.filterBox > div label input[type="checkbox"]::before {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
content: "x";
|
||||
|
|
@ -188,7 +188,7 @@ div.filterBox > div label input[type=checkbox]::before {
|
|||
transform: scale(0);
|
||||
transition: 120ms transform ease-in-out;
|
||||
}
|
||||
div.filterBox > div label input[type=checkbox]:checked::before {
|
||||
div.filterBox > div label input[type="checkbox"]:checked::before {
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ table {
|
|||
}
|
||||
}
|
||||
|
||||
tr:first-child > th[colspan='15'] {
|
||||
tr:first-child > th[colspan="15"] {
|
||||
background-color: var(--color-shade-2);
|
||||
color: var(--color-dark-foreground);
|
||||
}
|
||||
|
|
@ -86,7 +86,7 @@ table {
|
|||
|
||||
td {
|
||||
&.val {
|
||||
font-family: 'Departure Mono', ui-monospace, monospace;
|
||||
font-family: "Departure Mono", ui-monospace, monospace;
|
||||
|
||||
&.hover {
|
||||
background-color: transparent;
|
||||
|
|
@ -105,15 +105,15 @@ table {
|
|||
}
|
||||
|
||||
&.highlighted {
|
||||
&[data-dim='A'] {
|
||||
&[data-dim="A"] {
|
||||
background-color: rgb(96, 165, 249);
|
||||
}
|
||||
|
||||
&[data-dim='B'] {
|
||||
&[data-dim="B"] {
|
||||
background-color: rgb(211, 129, 247);
|
||||
}
|
||||
|
||||
&[data-dim='C'] {
|
||||
&[data-dim="C"] {
|
||||
background-color: rgb(255, 121, 117);
|
||||
}
|
||||
}
|
||||
|
|
@ -122,7 +122,7 @@ table {
|
|||
background-color: var(--color-shade-2);
|
||||
}
|
||||
|
||||
&:not([data-diff=''])::after {
|
||||
&:not([data-diff=""])::after {
|
||||
content: attr(data-diff);
|
||||
display: block;
|
||||
font-size: 0.8em;
|
||||
|
|
@ -135,8 +135,8 @@ table {
|
|||
margin-top: -0.25rem;
|
||||
}
|
||||
|
||||
&[data-diff='']::after {
|
||||
content: '';
|
||||
&[data-diff=""]::after {
|
||||
content: "";
|
||||
display: block;
|
||||
font-size: 0.8em;
|
||||
background-color: transparent;
|
||||
|
|
@ -155,9 +155,9 @@ table {
|
|||
}
|
||||
|
||||
&.currentDimension::after {
|
||||
content: '>';
|
||||
content: ">";
|
||||
/*color: var(--color-secondary);*/
|
||||
font-family: 'Departure Mono', ui-monospace, monospace;
|
||||
font-family: "Departure Mono", ui-monospace, monospace;
|
||||
position: relative;
|
||||
right: calc(-0.5rem - 0.5ch);
|
||||
margin-left: -1ch;
|
||||
|
|
@ -172,7 +172,7 @@ div.filterBox {
|
|||
margin: 2rem 0;
|
||||
padding: 1rem;
|
||||
position: relative;
|
||||
font-family: 'Departure Mono', ui-monospace, monospace;
|
||||
font-family: "Departure Mono", ui-monospace, monospace;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
column-gap: 4rem;
|
||||
|
|
@ -180,7 +180,7 @@ div.filterBox {
|
|||
width: fit-content;
|
||||
|
||||
&::before {
|
||||
content: 'filter';
|
||||
content: "filter";
|
||||
position: absolute;
|
||||
top: -0.6lh;
|
||||
background-color: var(--color-background);
|
||||
|
|
@ -198,7 +198,7 @@ div.filterBox {
|
|||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
|
||||
input[type='checkbox'] {
|
||||
input[type="checkbox"] {
|
||||
appearance: none;
|
||||
background-color: var(--color-shade-1);
|
||||
margin: 0;
|
||||
|
|
@ -214,7 +214,7 @@ div.filterBox {
|
|||
&::before {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
content: 'x';
|
||||
content: "x";
|
||||
text-align: center;
|
||||
font-size: 1.2rem;
|
||||
line-height: 0.7;
|
||||
|
|
@ -228,4 +228,4 @@ div.filterBox {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -129,14 +129,23 @@
|
|||
--color-accent-1: var(--color-dark-accent-1);
|
||||
--color-accent-2: var(--color-dark-accent-2);
|
||||
--color-accent-3: var(--color-dark-accent-3);
|
||||
--filter-glow-primary: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-primary)) drop-shadow(0 0 0.25em var(--color-primary));
|
||||
--filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-secondary)) drop-shadow(0 0 0.25em var(--color-secondary));
|
||||
--filter-glow-primary: drop-shadow(0 0 0.0625em var(--color-white))
|
||||
drop-shadow(0 0 0.125em var(--color-primary))
|
||||
drop-shadow(0 0 0.25em var(--color-primary));
|
||||
--filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-white))
|
||||
drop-shadow(0 0 0.125em var(--color-secondary))
|
||||
drop-shadow(0 0 0.25em var(--color-secondary));
|
||||
--color-glow-primary: var(--color-white);
|
||||
--color-glow-secondary: var(--color-white);
|
||||
--transition-glow: filter 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms;
|
||||
--text-glow-primary: drop-shadow(0 0 0.03125em var(--color-white)) drop-shadow(0 0 0.0625em var(--color-primary)) drop-shadow(0 0 0.125em var(--color-primary));
|
||||
--text-glow-secondary: drop-shadow(0 0 0.03125em var(--color-white)) drop-shadow(0 0 0.0625em var(--color-secondary)) drop-shadow(0 0 0.125em var(--color-secondary));
|
||||
--transition-glow:
|
||||
filter 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms;
|
||||
--text-glow-primary: drop-shadow(0 0 0.03125em var(--color-white))
|
||||
drop-shadow(0 0 0.0625em var(--color-primary))
|
||||
drop-shadow(0 0 0.125em var(--color-primary));
|
||||
--text-glow-secondary: drop-shadow(0 0 0.03125em var(--color-white))
|
||||
drop-shadow(0 0 0.0625em var(--color-secondary))
|
||||
drop-shadow(0 0 0.125em var(--color-secondary));
|
||||
}
|
||||
.dark .light-only {
|
||||
display: none;
|
||||
|
|
@ -163,8 +172,9 @@
|
|||
--filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-krypton-400));
|
||||
--color-glow-primary: var(--color-argon-950);
|
||||
--color-glow-secondary: var(--color-krypton-950);
|
||||
--transition-glow: filter 150ms cubic-bezier(0, 2, 1, -0.7) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 2, 1, -0.7) 50ms;
|
||||
--transition-glow:
|
||||
filter 150ms cubic-bezier(0, 2, 1, -0.7) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 2, 1, -0.7) 50ms;
|
||||
--text-glow-primary: drop-shadow(0 0 0.03125em var(--color-argon-400));
|
||||
--text-glow-secondary: drop-shadow(0 0 0.03125em var(--color-krypton-400));
|
||||
}
|
||||
|
|
@ -190,14 +200,23 @@
|
|||
--color-accent-1: var(--color-dark-accent-1);
|
||||
--color-accent-2: var(--color-dark-accent-2);
|
||||
--color-accent-3: var(--color-dark-accent-3);
|
||||
--filter-glow-primary: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-primary)) drop-shadow(0 0 0.25em var(--color-primary));
|
||||
--filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-secondary)) drop-shadow(0 0 0.25em var(--color-secondary));
|
||||
--filter-glow-primary: drop-shadow(0 0 0.0625em var(--color-white))
|
||||
drop-shadow(0 0 0.125em var(--color-primary))
|
||||
drop-shadow(0 0 0.25em var(--color-primary));
|
||||
--filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-white))
|
||||
drop-shadow(0 0 0.125em var(--color-secondary))
|
||||
drop-shadow(0 0 0.25em var(--color-secondary));
|
||||
--color-glow-primary: var(--color-white);
|
||||
--color-glow-secondary: var(--color-white);
|
||||
--transition-glow: filter 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms;
|
||||
--text-glow-primary: drop-shadow(0 0 0.03125em var(--color-white)) drop-shadow(0 0 0.0625em var(--color-primary)) drop-shadow(0 0 0.125em var(--color-primary));
|
||||
--text-glow-secondary: drop-shadow(0 0 0.03125em var(--color-white)) drop-shadow(0 0 0.0625em var(--color-secondary)) drop-shadow(0 0 0.125em var(--color-secondary));
|
||||
--transition-glow:
|
||||
filter 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms;
|
||||
--text-glow-primary: drop-shadow(0 0 0.03125em var(--color-white))
|
||||
drop-shadow(0 0 0.0625em var(--color-primary))
|
||||
drop-shadow(0 0 0.125em var(--color-primary));
|
||||
--text-glow-secondary: drop-shadow(0 0 0.03125em var(--color-white))
|
||||
drop-shadow(0 0 0.0625em var(--color-secondary))
|
||||
drop-shadow(0 0 0.125em var(--color-secondary));
|
||||
}
|
||||
html .light-only {
|
||||
display: none;
|
||||
|
|
@ -223,8 +242,9 @@
|
|||
--filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-krypton-400));
|
||||
--color-glow-primary: var(--color-argon-950);
|
||||
--color-glow-secondary: var(--color-krypton-950);
|
||||
--transition-glow: filter 150ms cubic-bezier(0, 2, 1, -0.7) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 2, 1, -0.7) 50ms;
|
||||
--transition-glow:
|
||||
filter 150ms cubic-bezier(0, 2, 1, -0.7) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 2, 1, -0.7) 50ms;
|
||||
--text-glow-primary: drop-shadow(0 0 0.03125em var(--color-argon-400));
|
||||
--text-glow-secondary: drop-shadow(0 0 0.03125em var(--color-krypton-400));
|
||||
}
|
||||
|
|
@ -257,8 +277,9 @@
|
|||
--filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-krypton-400));
|
||||
--color-glow-primary: var(--color-argon-950);
|
||||
--color-glow-secondary: var(--color-krypton-950);
|
||||
--transition-glow: filter 150ms cubic-bezier(0, 2, 1, -0.7) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 2, 1, -0.7) 50ms;
|
||||
--transition-glow:
|
||||
filter 150ms cubic-bezier(0, 2, 1, -0.7) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 2, 1, -0.7) 50ms;
|
||||
--text-glow-primary: drop-shadow(0 0 0.03125em var(--color-argon-400));
|
||||
--text-glow-secondary: drop-shadow(0 0 0.03125em var(--color-krypton-400));
|
||||
}
|
||||
|
|
@ -282,14 +303,23 @@
|
|||
--color-accent-1: var(--color-dark-accent-1);
|
||||
--color-accent-2: var(--color-dark-accent-2);
|
||||
--color-accent-3: var(--color-dark-accent-3);
|
||||
--filter-glow-primary: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-primary)) drop-shadow(0 0 0.25em var(--color-primary));
|
||||
--filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-secondary)) drop-shadow(0 0 0.25em var(--color-secondary));
|
||||
--filter-glow-primary: drop-shadow(0 0 0.0625em var(--color-white))
|
||||
drop-shadow(0 0 0.125em var(--color-primary))
|
||||
drop-shadow(0 0 0.25em var(--color-primary));
|
||||
--filter-glow-secondary: drop-shadow(0 0 0.0625em var(--color-white))
|
||||
drop-shadow(0 0 0.125em var(--color-secondary))
|
||||
drop-shadow(0 0 0.25em var(--color-secondary));
|
||||
--color-glow-primary: var(--color-white);
|
||||
--color-glow-secondary: var(--color-white);
|
||||
--transition-glow: filter 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms;
|
||||
--text-glow-primary: drop-shadow(0 0 0.03125em var(--color-white)) drop-shadow(0 0 0.0625em var(--color-primary)) drop-shadow(0 0 0.125em var(--color-primary));
|
||||
--text-glow-secondary: drop-shadow(0 0 0.03125em var(--color-white)) drop-shadow(0 0 0.0625em var(--color-secondary)) drop-shadow(0 0 0.125em var(--color-secondary));
|
||||
--transition-glow:
|
||||
filter 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms,
|
||||
border-color 150ms cubic-bezier(0, 1.7, 1, -0.3) 50ms;
|
||||
--text-glow-primary: drop-shadow(0 0 0.03125em var(--color-white))
|
||||
drop-shadow(0 0 0.0625em var(--color-primary))
|
||||
drop-shadow(0 0 0.125em var(--color-primary));
|
||||
--text-glow-secondary: drop-shadow(0 0 0.03125em var(--color-white))
|
||||
drop-shadow(0 0 0.0625em var(--color-secondary))
|
||||
drop-shadow(0 0 0.125em var(--color-secondary));
|
||||
}
|
||||
html:has(#themeDark:checked) .light-only {
|
||||
display: none;
|
||||
|
|
@ -385,12 +415,18 @@ body {
|
|||
font-family: "Athiti", ui-sans, sans-serif;
|
||||
}
|
||||
|
||||
h1, .h1,
|
||||
h2, .h2,
|
||||
h3, .h3,
|
||||
h4, .h4,
|
||||
h5, .h5,
|
||||
h6, .h6 {
|
||||
h1,
|
||||
.h1,
|
||||
h2,
|
||||
.h2,
|
||||
h3,
|
||||
.h3,
|
||||
h4,
|
||||
.h4,
|
||||
h5,
|
||||
.h5,
|
||||
h6,
|
||||
.h6 {
|
||||
font-family: "Argon Glow", ui-sans, sans-serif;
|
||||
font-weight: 400;
|
||||
margin: 1rem 0;
|
||||
|
|
@ -496,7 +532,9 @@ a {
|
|||
color: var(--color-accent-1);
|
||||
text-decoration: underline;
|
||||
}
|
||||
a:hover, a:active, a:focus {
|
||||
a:hover,
|
||||
a:active,
|
||||
a:focus {
|
||||
color: var(--color-accent-3);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
|
@ -504,7 +542,9 @@ a:visited {
|
|||
color: var(--color-accent-2);
|
||||
text-decoration: underline;
|
||||
}
|
||||
a:visited:hover, a:visited:active, a:visited:focus {
|
||||
a:visited:hover,
|
||||
a:visited:active,
|
||||
a:visited:focus {
|
||||
color: var(--color-accent-3);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
|
@ -553,31 +593,31 @@ i[data-icon]::before {
|
|||
mask-repeat: no-repeat;
|
||||
background-color: currentColor;
|
||||
}
|
||||
i[data-icon][data-icon=arrow-left]::before {
|
||||
i[data-icon][data-icon="arrow-left"]::before {
|
||||
mask-image: url("../icon/arrow_left.svg");
|
||||
}
|
||||
i[data-icon][data-icon=arrow-up]::before {
|
||||
i[data-icon][data-icon="arrow-up"]::before {
|
||||
mask-image: url("../icon/arrow_up.svg");
|
||||
}
|
||||
i[data-icon][data-icon=arrow-right]::before {
|
||||
i[data-icon][data-icon="arrow-right"]::before {
|
||||
mask-image: url("../icon/arrow_right.svg");
|
||||
}
|
||||
i[data-icon][data-icon=arrow-down]::before {
|
||||
i[data-icon][data-icon="arrow-down"]::before {
|
||||
mask-image: url("../icon/arrow_down.svg");
|
||||
}
|
||||
i[data-icon][data-icon=info]::before {
|
||||
i[data-icon][data-icon="info"]::before {
|
||||
mask-image: url("../icon/info.svg");
|
||||
}
|
||||
i[data-icon][data-icon=home]::before {
|
||||
i[data-icon][data-icon="home"]::before {
|
||||
mask-image: url("../icon/home.svg");
|
||||
}
|
||||
i[data-icon][data-icon=menu-small]::before {
|
||||
i[data-icon][data-icon="menu-small"]::before {
|
||||
mask-image: url("../icon/menu_small.svg");
|
||||
}
|
||||
i[data-icon][data-icon=light]::before {
|
||||
i[data-icon][data-icon="light"]::before {
|
||||
mask-image: url("../icon/lightbulb.svg");
|
||||
}
|
||||
i[data-icon][data-icon=warning]::before {
|
||||
i[data-icon][data-icon="warning"]::before {
|
||||
mask-image: url("../icon/warning.svg");
|
||||
}
|
||||
|
||||
|
|
@ -617,10 +657,14 @@ body header #backToWiki > img {
|
|||
body header #backToWiki:hover > img {
|
||||
transform: scale(1.05);
|
||||
}
|
||||
body h1, body .h1,
|
||||
body h2, body .h2,
|
||||
body h3, body .h3,
|
||||
body h4, body .h4 {
|
||||
body h1,
|
||||
body .h1,
|
||||
body h2,
|
||||
body .h2,
|
||||
body h3,
|
||||
body .h3,
|
||||
body h4,
|
||||
body .h4 {
|
||||
filter: var(--text-glow-primary);
|
||||
}
|
||||
body > div {
|
||||
|
|
@ -706,10 +750,12 @@ body > div nav ul li.link-back {
|
|||
body > div nav ul li.active {
|
||||
background-color: var(--color-shade-2);
|
||||
}
|
||||
body > div nav ul li.link-back a, body > div nav ul li.active a {
|
||||
body > div nav ul li.link-back a,
|
||||
body > div nav ul li.active a {
|
||||
border-color: var(--color-shade-4);
|
||||
}
|
||||
body > div nav ul li > a, body > div nav ul li label {
|
||||
body > div nav ul li > a,
|
||||
body > div nav ul li label {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
|
|
@ -724,26 +770,60 @@ body > div nav ul li > a, body > div nav ul li label {
|
|||
transition-duration: 400ms;
|
||||
transition-timing-function: ease-in;
|
||||
}
|
||||
body > div nav ul li > a:visited, body > div nav ul li > a:focus, body > div nav ul li > a:active, body > div nav ul li > a:hover, body > div nav ul li label:visited, body > div nav ul li label:focus, body > div nav ul li label:active, body > div nav ul li label:hover {
|
||||
body > div nav ul li > a:visited,
|
||||
body > div nav ul li > a:focus,
|
||||
body > div nav ul li > a:active,
|
||||
body > div nav ul li > a:hover,
|
||||
body > div nav ul li label:visited,
|
||||
body > div nav ul li label:focus,
|
||||
body > div nav ul li label:active,
|
||||
body > div nav ul li label:hover {
|
||||
color: var(--color-foreground);
|
||||
}
|
||||
body > div nav ul li:hover, body > div nav ul li:focus-within {
|
||||
body > div nav ul li:hover,
|
||||
body > div nav ul li:focus-within {
|
||||
background-color: transparent;
|
||||
}
|
||||
body > div nav ul li:hover a, body > div nav ul li:hover label, body > div nav ul li:focus-within a, body > div nav ul li:focus-within label {
|
||||
body > div nav ul li:hover a,
|
||||
body > div nav ul li:hover label,
|
||||
body > div nav ul li:focus-within a,
|
||||
body > div nav ul li:focus-within label {
|
||||
border: solid 0.1em var(--color-glow-primary);
|
||||
background-color: transparent;
|
||||
filter: var(--filter-glow-primary);
|
||||
transition: var(--transition-glow);
|
||||
}
|
||||
body > div nav ul li:hover a:visited, body > div nav ul li:hover a:focus, body > div nav ul li:hover a:active, body > div nav ul li:hover a:hover, body > div nav ul li:hover label:visited, body > div nav ul li:hover label:focus, body > div nav ul li:hover label:active, body > div nav ul li:hover label:hover, body > div nav ul li:focus-within a:visited, body > div nav ul li:focus-within a:focus, body > div nav ul li:focus-within a:active, body > div nav ul li:focus-within a:hover, body > div nav ul li:focus-within label:visited, body > div nav ul li:focus-within label:focus, body > div nav ul li:focus-within label:active, body > div nav ul li:focus-within label:hover {
|
||||
body > div nav ul li:hover a:visited,
|
||||
body > div nav ul li:hover a:focus,
|
||||
body > div nav ul li:hover a:active,
|
||||
body > div nav ul li:hover a:hover,
|
||||
body > div nav ul li:hover label:visited,
|
||||
body > div nav ul li:hover label:focus,
|
||||
body > div nav ul li:hover label:active,
|
||||
body > div nav ul li:hover label:hover,
|
||||
body > div nav ul li:focus-within a:visited,
|
||||
body > div nav ul li:focus-within a:focus,
|
||||
body > div nav ul li:focus-within a:active,
|
||||
body > div nav ul li:focus-within a:hover,
|
||||
body > div nav ul li:focus-within label:visited,
|
||||
body > div nav ul li:focus-within label:focus,
|
||||
body > div nav ul li:focus-within label:active,
|
||||
body > div nav ul li:focus-within label:hover {
|
||||
color: var(--color-glow-primary);
|
||||
}
|
||||
body > div nav ul li:hover.link-back a, body > div nav ul li:focus-within.link-back a {
|
||||
body > div nav ul li:hover.link-back a,
|
||||
body > div nav ul li:focus-within.link-back a {
|
||||
border: solid 0.1em var(--color-glow-secondary);
|
||||
filter: var(--filter-glow-secondary);
|
||||
}
|
||||
body > div nav ul li:hover.link-back a:visited, body > div nav ul li:hover.link-back a:focus, body > div nav ul li:hover.link-back a:active, body > div nav ul li:hover.link-back a:hover, body > div nav ul li:focus-within.link-back a:visited, body > div nav ul li:focus-within.link-back a:focus, body > div nav ul li:focus-within.link-back a:active, body > div nav ul li:focus-within.link-back a:hover {
|
||||
body > div nav ul li:hover.link-back a:visited,
|
||||
body > div nav ul li:hover.link-back a:focus,
|
||||
body > div nav ul li:hover.link-back a:active,
|
||||
body > div nav ul li:hover.link-back a:hover,
|
||||
body > div nav ul li:focus-within.link-back a:visited,
|
||||
body > div nav ul li:focus-within.link-back a:focus,
|
||||
body > div nav ul li:focus-within.link-back a:active,
|
||||
body > div nav ul li:focus-within.link-back a:hover {
|
||||
color: var(--color-glow-secondary);
|
||||
}
|
||||
body > div nav ul li:not(.themeToggle) i[data-icon] {
|
||||
|
|
@ -779,15 +859,23 @@ body > div main {
|
|||
background-color: var(--color-background);
|
||||
}
|
||||
|
||||
a.a-regular, a.a-regular:hover, a.a-regular:active, a.a-regular:focus, a.a-regular:visited {
|
||||
a.a-regular,
|
||||
a.a-regular:hover,
|
||||
a.a-regular:active,
|
||||
a.a-regular:focus,
|
||||
a.a-regular:visited {
|
||||
color: var(--color-accent-1);
|
||||
text-decoration: underline;
|
||||
}
|
||||
a.a-hover, a.a-hover:visited {
|
||||
a.a-hover,
|
||||
a.a-hover:visited {
|
||||
color: var(--color-accent-3);
|
||||
text-decoration: none;
|
||||
}
|
||||
a.a-visited, a.a-visited:hover, a.a-visited:active, a.a-visited:focus {
|
||||
a.a-visited,
|
||||
a.a-visited:hover,
|
||||
a.a-visited:active,
|
||||
a.a-visited:focus {
|
||||
color: var(--color-accent-2);
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
|
@ -873,11 +961,15 @@ main > div.generator img {
|
|||
width: 400px;
|
||||
height: 300px;
|
||||
object-fit: contain;
|
||||
filter: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-primary)) drop-shadow(0 0 0.25em var(--color-primary));
|
||||
filter: drop-shadow(0 0 0.0625em var(--color-white))
|
||||
drop-shadow(0 0 0.125em var(--color-primary))
|
||||
drop-shadow(0 0 0.25em var(--color-primary));
|
||||
}
|
||||
main > div.generator i {
|
||||
font-size: 3em;
|
||||
filter: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-primary)) drop-shadow(0 0 0.25em var(--color-primary));
|
||||
filter: drop-shadow(0 0 0.0625em var(--color-white))
|
||||
drop-shadow(0 0 0.125em var(--color-primary))
|
||||
drop-shadow(0 0 0.25em var(--color-primary));
|
||||
}
|
||||
|
||||
.swatch-grid {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
@import 'base';
|
||||
@import 'icons';
|
||||
@import "base";
|
||||
@import "icons";
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
|
|
@ -40,10 +40,14 @@ body {
|
|||
}
|
||||
}
|
||||
|
||||
h1, .h1,
|
||||
h2, .h2,
|
||||
h3, .h3,
|
||||
h4, .h4, {
|
||||
h1,
|
||||
.h1,
|
||||
h2,
|
||||
.h2,
|
||||
h3,
|
||||
.h3,
|
||||
h4,
|
||||
.h4 {
|
||||
filter: var(--text-glow-primary);
|
||||
}
|
||||
|
||||
|
|
@ -143,7 +147,8 @@ body {
|
|||
}
|
||||
}
|
||||
|
||||
> a, label {
|
||||
> a,
|
||||
label {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
|
|
@ -171,7 +176,8 @@ body {
|
|||
&:focus-within {
|
||||
background-color: transparent;
|
||||
|
||||
a, label {
|
||||
a,
|
||||
label {
|
||||
border: solid 0.1em var(--color-glow-primary);
|
||||
background-color: transparent;
|
||||
filter: var(--filter-glow-primary);
|
||||
|
|
@ -242,7 +248,6 @@ body {
|
|||
}
|
||||
|
||||
a {
|
||||
|
||||
&.a-regular,
|
||||
&.a-regular:hover,
|
||||
&.a-regular:active,
|
||||
|
|
@ -294,7 +299,7 @@ a {
|
|||
}
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
content: "";
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
border-radius: 1rem;
|
||||
|
|
@ -344,24 +349,26 @@ pre,
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
main > div.generator {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1em;
|
||||
align-items: center;
|
||||
|
||||
|
||||
img {
|
||||
width: 400px;
|
||||
height: 300px;
|
||||
object-fit: contain;
|
||||
filter: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-primary)) drop-shadow(0 0 0.25em var(--color-primary));
|
||||
filter: drop-shadow(0 0 0.0625em var(--color-white))
|
||||
drop-shadow(0 0 0.125em var(--color-primary))
|
||||
drop-shadow(0 0 0.25em var(--color-primary));
|
||||
}
|
||||
|
||||
i {
|
||||
font-size: 3em;
|
||||
filter: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-primary)) drop-shadow(0 0 0.25em var(--color-primary));
|
||||
filter: drop-shadow(0 0 0.0625em var(--color-white))
|
||||
drop-shadow(0 0 0.125em var(--color-primary))
|
||||
drop-shadow(0 0 0.25em var(--color-primary));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -399,7 +406,7 @@ main > div.generator {
|
|||
}
|
||||
|
||||
span {
|
||||
font-family: 'Departure Mono', ui-monospace, monospace;
|
||||
font-family: "Departure Mono", ui-monospace, monospace;
|
||||
color: var(--color-foreground);
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
|
@ -408,113 +415,113 @@ main > div.generator {
|
|||
}
|
||||
|
||||
.glow-16-primary {
|
||||
font-family: 'Argon Glow', ui-sans, sans-serif;
|
||||
font-family: "Argon Glow", ui-sans, sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
color: var(--color-white);
|
||||
filter: url('glows.svg#textBlur16Primary')
|
||||
filter: url("glows.svg#textBlur16Primary");
|
||||
}
|
||||
|
||||
.glow-18-primary {
|
||||
font-family: 'Argon Glow', ui-sans, sans-serif;
|
||||
font-family: "Argon Glow", ui-sans, sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 18px;
|
||||
color: var(--color-white);
|
||||
filter: url('glows.svg#textBlur18Primary')
|
||||
filter: url("glows.svg#textBlur18Primary");
|
||||
}
|
||||
|
||||
.glow-24-primary {
|
||||
font-family: 'Argon Glow', ui-sans, sans-serif;
|
||||
font-family: "Argon Glow", ui-sans, sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 24px;
|
||||
color: var(--color-white);
|
||||
filter: url('glows.svg#textBlur24Primary')
|
||||
filter: url("glows.svg#textBlur24Primary");
|
||||
}
|
||||
|
||||
.glow-32-primary {
|
||||
font-family: 'Argon Glow', ui-sans, sans-serif;
|
||||
font-family: "Argon Glow", ui-sans, sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 32px;
|
||||
color: var(--color-white);
|
||||
filter: url('glows.svg#textBlur32Primary')
|
||||
filter: url("glows.svg#textBlur32Primary");
|
||||
}
|
||||
|
||||
.glow-48-primary {
|
||||
font-family: 'Argon Glow', ui-sans, sans-serif;
|
||||
font-family: "Argon Glow", ui-sans, sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 48px;
|
||||
color: var(--color-white);
|
||||
filter: url('glows.svg#textBlur48Primary')
|
||||
filter: url("glows.svg#textBlur48Primary");
|
||||
}
|
||||
|
||||
.glow-72-primary {
|
||||
font-family: 'Argon Glow', ui-sans, sans-serif;
|
||||
font-family: "Argon Glow", ui-sans, sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 72px;
|
||||
color: var(--color-white);
|
||||
filter: url('glows.svg#textBlur72Primary')
|
||||
filter: url("glows.svg#textBlur72Primary");
|
||||
}
|
||||
|
||||
.glow-160-primary {
|
||||
font-family: 'Argon Glow', ui-sans, sans-serif;
|
||||
font-family: "Argon Glow", ui-sans, sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 160px;
|
||||
color: var(--color-white);
|
||||
filter: url('glows.svg#textBlur160Primary')
|
||||
filter: url("glows.svg#textBlur160Primary");
|
||||
}
|
||||
|
||||
.glow-16-secondary {
|
||||
font-family: 'Argon Glow', ui-sans, sans-serif;
|
||||
font-family: "Argon Glow", ui-sans, sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
color: var(--color-white);
|
||||
filter: url('glows.svg#textBlur16Secondary')
|
||||
filter: url("glows.svg#textBlur16Secondary");
|
||||
}
|
||||
|
||||
.glow-18-secondary {
|
||||
font-family: 'Argon Glow', ui-sans, sans-serif;
|
||||
font-family: "Argon Glow", ui-sans, sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 18px;
|
||||
color: var(--color-white);
|
||||
filter: url('glows.svg#textBlur18Secondary')
|
||||
filter: url("glows.svg#textBlur18Secondary");
|
||||
}
|
||||
|
||||
.glow-24-secondary {
|
||||
font-family: 'Argon Glow', ui-sans, sans-serif;
|
||||
font-family: "Argon Glow", ui-sans, sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 24px;
|
||||
color: var(--color-white);
|
||||
filter: url('glows.svg#textBlur24Secondary')
|
||||
filter: url("glows.svg#textBlur24Secondary");
|
||||
}
|
||||
|
||||
.glow-32-secondary {
|
||||
font-family: 'Argon Glow', ui-sans, sans-serif;
|
||||
font-family: "Argon Glow", ui-sans, sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 32px;
|
||||
color: var(--color-white);
|
||||
filter: url('glows.svg#textBlur32Secondary')
|
||||
filter: url("glows.svg#textBlur32Secondary");
|
||||
}
|
||||
|
||||
.glow-48-secondary {
|
||||
font-family: 'Argon Glow', ui-sans, sans-serif;
|
||||
font-family: "Argon Glow", ui-sans, sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 48px;
|
||||
color: var(--color-white);
|
||||
filter: url('glows.svg#textBlur48Secondary')
|
||||
filter: url("glows.svg#textBlur48Secondary");
|
||||
}
|
||||
|
||||
.glow-72-secondary {
|
||||
font-family: 'Argon Glow', ui-sans, sans-serif;
|
||||
font-family: "Argon Glow", ui-sans, sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 72px;
|
||||
color: var(--color-white);
|
||||
filter: url('glows.svg#textBlur72Secondary')
|
||||
filter: url("glows.svg#textBlur72Secondary");
|
||||
}
|
||||
|
||||
.glow-160-secondary {
|
||||
font-family: 'Argon Glow', ui-sans, sans-serif;
|
||||
font-family: "Argon Glow", ui-sans, sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 160px;
|
||||
color: var(--color-white);
|
||||
filter: url('glows.svg#textBlur160Secondary')
|
||||
}
|
||||
filter: url("glows.svg#textBlur160Secondary");
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue