Compare commits
No commits in common. "main" and "dev" have entirely different histories.
28
README.md
|
@ -1,38 +1,34 @@
|
||||||
# ExploreCraft: Website
|
# ExploreCraft: Website
|
||||||
|
This is the ExploreCraft Website. Created with Svelte, PicoCSS, and dedication by [Sangelo](https://gitpot.dev/sangelo/) & [LogolicusZ](https://gitpot.dev/LogolicusZ/).
|
||||||
This is the ExploreCraft Website. Created with Svelte, PicoCSS, and dedication by [Sangelo](https://gitpot.org/sangelo/) & [LogolicusZ](https://gitpot.org/LogolicusZ/).
|
|
||||||
|
|
||||||
<a href="https://explorecraft.net">
|
<a href="https://explorecraft.net">
|
||||||
<picture>
|
<picture>
|
||||||
<source srcset="docs/assets/screenshot-dark.png" media="(prefers-color-scheme: dark)" alt="ExploreCraft Website Screenshot">
|
<source srcset="docs/assets/screenshot-dark.png" media="(prefers-color-scheme: dark)">
|
||||||
<img src="docs/assets/screenshot-light.png" alt="ExploreCraft Website Screenshot">
|
<img src="docs/assets/screenshot-light.png">
|
||||||
</picture>
|
</picture>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
This project is licensed under the MPL v2.0. More info [here](./LICENSE).
|
This project is licensed under the MPL v2.0. More info [here](./LICENSE).
|
||||||
|
|
||||||
## Developing
|
## Developing
|
||||||
|
|
||||||
To start developing, clone the repository.
|
To start developing, clone the repository.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# clone the website
|
# clone the website
|
||||||
git clone https://gitpot.org/ExploreCraft/website.git
|
git clone https://gitpot.dev/ExploreCraft/website.git
|
||||||
```
|
```
|
||||||
|
|
||||||
Once you've cloned the repository you'll need to install the required dependencies, and then, start a development server:
|
Once you've cloned the repository you'll need to install the required dependencies, and then, start a development server:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# install dependencies (you can also use pyarn install or yarn)
|
# install dependencies (you can also use pnpm install or yarn)
|
||||||
yarn install
|
npm install
|
||||||
|
|
||||||
# start vite development server
|
# start vite development server
|
||||||
yarn run dev
|
npm run dev
|
||||||
|
|
||||||
# or start the server and also open the website in a new browser tab
|
# or start the server and also open the website in a new browser tab
|
||||||
yarn run dev -- --open
|
npm run dev -- --open
|
||||||
|
|
||||||
VITE v4.3.9 ready in 358 ms
|
VITE v4.3.9 ready in 358 ms
|
||||||
|
|
||||||
|
@ -40,7 +36,6 @@ yarn run dev -- --open
|
||||||
➜ Network: use --host to expose
|
➜ Network: use --host to expose
|
||||||
➜ press h to show help
|
➜ press h to show help
|
||||||
```
|
```
|
||||||
|
|
||||||
This server will automatically apply changes you do to the code, so just start working and Vite will do the rest. No need to refresh!
|
This server will automatically apply changes you do to the code, so just start working and Vite will do the rest. No need to refresh!
|
||||||
|
|
||||||
## Building
|
## Building
|
||||||
|
@ -49,15 +44,14 @@ To build a production-ready version of this website:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# run build action
|
# run build action
|
||||||
yarn run build
|
npm run build
|
||||||
```
|
```
|
||||||
|
|
||||||
You can also preview the production build (You'll need to build the website first if you haven't done so already):
|
You can also preview the production build (You'll need to build the website first if you haven't done so already):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# build the website
|
# build the website
|
||||||
yarn run build
|
npm run build
|
||||||
|
|
||||||
# start a preview server
|
# start a preview server
|
||||||
yarn run preview
|
npm run preview
|
||||||
```
|
```
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 856 KiB |
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 871 KiB |
1669
package-lock.json
generated
Normal file
|
@ -9,16 +9,12 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@fontsource/fira-mono": "^4.5.10",
|
"@fontsource/fira-mono": "^4.5.10",
|
||||||
"@neoconfetti/svelte": "^1.0.0",
|
"@neoconfetti/svelte": "^1.0.0",
|
||||||
"@picocss/pico": "^2.0.6",
|
"@picocss/pico": "^1.5.10",
|
||||||
"@sveltejs/adapter-auto": "^2.0.0",
|
"@sveltejs/adapter-auto": "^2.0.0",
|
||||||
"@sveltejs/adapter-node": "^1.2.4",
|
"@sveltejs/adapter-node": "^1.2.4",
|
||||||
"@sveltejs/adapter-static": "^2.0.3",
|
|
||||||
"@sveltejs/kit": "^1.20.5",
|
"@sveltejs/kit": "^1.20.5",
|
||||||
"fuse.js": "^7.0.0",
|
|
||||||
"nprogress": "^0.2.0",
|
|
||||||
"sass": "^1.62.0",
|
"sass": "^1.62.0",
|
||||||
"svelte": "^3.54.0",
|
"svelte": "^3.54.0",
|
||||||
"svelte-material-icons": "^3.0.5",
|
|
||||||
"svelte-preprocess": "^5.0.3",
|
"svelte-preprocess": "^5.0.3",
|
||||||
"vite": "^4.3.0"
|
"vite": "^4.3.0"
|
||||||
},
|
},
|
||||||
|
|
11
src/app.html
|
@ -6,17 +6,6 @@
|
||||||
<meta name="viewport" content="width=device-width" />
|
<meta name="viewport" content="width=device-width" />
|
||||||
%sveltekit.head%
|
%sveltekit.head%
|
||||||
</head>
|
</head>
|
||||||
<noscript>
|
|
||||||
<div class="noscript">This site uses JavaScript extensively. Please consider enabling it.</div>
|
|
||||||
<style>
|
|
||||||
.noscript {
|
|
||||||
background-color: #fd9696;
|
|
||||||
text-align: center;
|
|
||||||
color: black;
|
|
||||||
padding: 0.3em;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</noscript>
|
|
||||||
<body data-sveltekit-preload-data="hover">
|
<body data-sveltekit-preload-data="hover">
|
||||||
<div style="display: contents">%sveltekit.body%</div>
|
<div style="display: contents">%sveltekit.body%</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
97
src/app.scss
|
@ -1,7 +1,4 @@
|
||||||
// @import "@picocss/pico/scss/pico"; /* To import only what you need from Pico [check the documentaion](https://picocss.com/docs/customization.html) */
|
@import "@picocss/pico/scss/pico"; /* To import only what you need from Pico [check the documentaion](https://picocss.com/docs/customization.html) */
|
||||||
@use "@picocss/pico/scss/pico" with (
|
|
||||||
$theme-color: "green"
|
|
||||||
);
|
|
||||||
@import url('/assets/fonts/fonts.css');
|
@import url('/assets/fonts/fonts.css');
|
||||||
/* @import url('https://cdn.jsdelivr.net/npm/@mdi/font@5.8.55/css/materialdesignicons.min.css'); */
|
/* @import url('https://cdn.jsdelivr.net/npm/@mdi/font@5.8.55/css/materialdesignicons.min.css'); */
|
||||||
|
|
||||||
|
@ -13,72 +10,50 @@ h1, h2, h3, h4, h5, h6, body {
|
||||||
// color: #000000;
|
// color: #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Green Light scheme (Default) */
|
||||||
|
/* Can be forced with data-theme="light" */
|
||||||
[data-theme="light"],
|
[data-theme="light"],
|
||||||
:root:not([data-theme="dark"]) {
|
:root:not([data-theme="dark"]) {
|
||||||
|
--primary: #43a047;
|
||||||
|
--primary-hover: #388e3c;
|
||||||
|
--primary-focus: rgba(67, 160, 71, 0.125);
|
||||||
|
--primary-inverse: #FFF;
|
||||||
background-color: #FAF9F6;
|
background-color: #FAF9F6;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Green Dark scheme (Auto) */
|
||||||
|
/* Automatically enabled if user has Dark mode enabled */
|
||||||
|
@media only screen and (prefers-color-scheme: dark) {
|
||||||
|
:root:not([data-theme]) {
|
||||||
|
--primary: #43a047;
|
||||||
|
--primary-hover: #4caf50;
|
||||||
|
--primary-focus: rgba(67, 160, 71, 0.25);
|
||||||
|
--primary-inverse: #FFF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Green Dark scheme (Forced) */
|
||||||
|
/* Enabled if forced with data-theme="dark" */
|
||||||
|
[data-theme="dark"] {
|
||||||
|
--primary: #43a047;
|
||||||
|
--primary-hover: #4caf50;
|
||||||
|
--primary-focus: rgba(67, 160, 71, 0.25);
|
||||||
|
--primary-inverse: #FFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Green (Common styles) */
|
||||||
|
:root {
|
||||||
|
--form-element-active-border-color: var(--primary);
|
||||||
|
--form-element-focus-color: var(--primary-focus);
|
||||||
|
--switch-color: var(--primary-inverse);
|
||||||
|
--switch-checked-background-color: var(--primary);
|
||||||
|
}
|
||||||
|
|
||||||
p, li {
|
p, li {
|
||||||
cursor: text;
|
cursor: text;
|
||||||
}
|
}
|
||||||
|
|
||||||
article {
|
article {
|
||||||
border-radius: 0.25rem;
|
border-radius: 10px;
|
||||||
box-shadow: 0px 0px 15px rgba(32, 32, 32, 0.2);
|
box-shadow: 0px 0px 15px rgba(32, 32, 32, 0.2);
|
||||||
}
|
}
|
||||||
|
|
||||||
[role="button"].card {
|
|
||||||
background-color: $zinc-100;
|
|
||||||
border-color: $zinc-50;
|
|
||||||
p {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
button.transparent,
|
|
||||||
[role="button"].transparent {
|
|
||||||
--pico-background-color: var(--pico-form-element-background-color);
|
|
||||||
--pico-border-color: var(--pico-form-element-border-color);
|
|
||||||
border-left: none;
|
|
||||||
border-right: none;
|
|
||||||
color: black;
|
|
||||||
|
|
||||||
&:focus {
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[data-theme="dark"] button.transparent,
|
|
||||||
[data-theme="dark"] [role="button"].transparent {
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
[data-theme="dark"] [role="button"].card {
|
|
||||||
background-color: $slate-800;
|
|
||||||
border-color: $slate-750;
|
|
||||||
p {
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.overflowing::after {
|
|
||||||
background: linear-gradient(to top, $zinc-100, #00000000);
|
|
||||||
}
|
|
||||||
|
|
||||||
[data-theme="dark"] .overflowing::after {
|
|
||||||
background: linear-gradient(to top, $slate-800, #00000000);
|
|
||||||
}
|
|
||||||
|
|
||||||
.top-button.show {
|
|
||||||
visibility: visible !important;
|
|
||||||
opacity: 1 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#nprogress .bar {
|
|
||||||
background: #398711 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Fancy blur effect */
|
|
||||||
#nprogress .peg {
|
|
||||||
box-shadow: 0 0 10px #398711, 0 0 6px #398711 !important;
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
export function smoothScrollTo(elementId: string) {
|
|
||||||
const element = document.getElementById(elementId);
|
|
||||||
if (element) {
|
|
||||||
element.scrollIntoView({
|
|
||||||
behavior: 'smooth'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export function handleKeydown(elementId: string, event: KeyboardEvent) {
|
|
||||||
// Trigger redirection on Enter key or Space bar
|
|
||||||
if (event.key === 'Enter' || event.key === ' ') {
|
|
||||||
smoothScrollTo(elementId);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,250 +0,0 @@
|
||||||
<script>
|
|
||||||
import { afterUpdate, onMount } from "svelte";
|
|
||||||
import Fuse from "fuse.js"; // Import Fuse.js
|
|
||||||
import IconChevronDown from 'svelte-material-icons/ChevronDown.svelte';
|
|
||||||
import IconClose from 'svelte-material-icons/Close.svelte';
|
|
||||||
|
|
||||||
let mods = { mods: [], optional_mods: [] };
|
|
||||||
let timeout;
|
|
||||||
let searchQuery = "";
|
|
||||||
let selectedFile = "modlist-marbled.json";
|
|
||||||
let fileList = [];
|
|
||||||
let loading = true;
|
|
||||||
|
|
||||||
let searchQueryInput = (event) => {
|
|
||||||
clearTimeout(timeout);
|
|
||||||
timeout = setTimeout(checkOverflow, 300); // Debounced input handling
|
|
||||||
};
|
|
||||||
|
|
||||||
function checkOverflow() {
|
|
||||||
const modCards = document.querySelectorAll('.mod-card');
|
|
||||||
modCards.forEach((modCard) => {
|
|
||||||
if (modCard.scrollHeight > modCard.offsetHeight) {
|
|
||||||
modCard.classList.add('overflowing');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function removeOverflow() {
|
|
||||||
const modCards = document.querySelectorAll('.mod-card');
|
|
||||||
modCards.forEach(
|
|
||||||
(modCard) => modCard.classList.remove('overflowing')
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
async function fetchData(file) {
|
|
||||||
const response = await fetch(`/assets/json/${file}`);
|
|
||||||
const data = await response.json();
|
|
||||||
mods = data;
|
|
||||||
// Create Fuse instances for fuzzy search
|
|
||||||
fuseMods = new Fuse(mods.mods, {
|
|
||||||
keys: ["name", "description"],
|
|
||||||
threshold: 0.4
|
|
||||||
});
|
|
||||||
fuseOptionalMods = new Fuse(mods.optional_mods, {
|
|
||||||
keys: ["name", "description"],
|
|
||||||
threshold: 0.4
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
onMount(async () => {
|
|
||||||
loading = true;
|
|
||||||
const response = await fetch("/assets/json/modlist-items.json");
|
|
||||||
const data = await response.json();
|
|
||||||
fileList = data;
|
|
||||||
await fetchData(selectedFile);
|
|
||||||
checkOverflow();
|
|
||||||
loading = false;
|
|
||||||
});
|
|
||||||
|
|
||||||
let fuseMods, fuseOptionalMods;
|
|
||||||
|
|
||||||
function search(query, mods, fuse) {
|
|
||||||
if (!query) return mods;
|
|
||||||
const results = fuse.search(query);
|
|
||||||
return results.map(result => result.item);
|
|
||||||
}
|
|
||||||
|
|
||||||
function clearInput() {
|
|
||||||
clearTimeout(timeout);
|
|
||||||
searchQuery = "";
|
|
||||||
setTimeout(checkOverflow, 300); // Debounced overflow check
|
|
||||||
}
|
|
||||||
|
|
||||||
function handleFileChange(event) {
|
|
||||||
selectedFile = event.target.value;
|
|
||||||
fetchData(selectedFile).then(() => checkOverflow());
|
|
||||||
}
|
|
||||||
|
|
||||||
afterUpdate(() => {
|
|
||||||
loading = true;
|
|
||||||
removeOverflow();
|
|
||||||
checkOverflow();
|
|
||||||
loading = false;
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<div class="search-container" role="group">
|
|
||||||
<input type="search" placeholder="Search the mod-verse..." bind:value={searchQuery} on:input={searchQueryInput} />
|
|
||||||
<button class="close transparent" on:click={() => clearInput()}><IconClose size="1em" /></button>
|
|
||||||
<select bind:value={selectedFile} on:change={handleFileChange}>
|
|
||||||
{#each fileList as file}
|
|
||||||
<option value={file.file}>{file.name}</option>
|
|
||||||
{/each}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div class="results-bar">
|
|
||||||
<p>Results: {search(searchQuery, mods.mods, fuseMods).length + search(searchQuery, mods.optional_mods, fuseOptionalMods).length}</p>
|
|
||||||
<a href="#optional-mods"><IconChevronDown size="1.2em" /> View Optional Mods</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr />
|
|
||||||
|
|
||||||
{#if loading}
|
|
||||||
<p>Loading...</p>
|
|
||||||
{:else if search(searchQuery, mods.mods, fuseMods).length === 0 && search(searchQuery, mods.optional_mods, fuseOptionalMods).length === 0}
|
|
||||||
<p>⚠️ No results found.</p>
|
|
||||||
{:else}
|
|
||||||
<div class="grid" id="mods">
|
|
||||||
{#each Array(Math.ceil(search(searchQuery, mods.mods, fuseMods).length / 3)) as _, index}
|
|
||||||
{#each search(searchQuery, mods.mods, fuseMods).slice(index * 3, (index + 1) * 3) as mod}
|
|
||||||
<a
|
|
||||||
role="button"
|
|
||||||
class="mod-card card contrast"
|
|
||||||
href={mod.link}
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
>
|
|
||||||
<img src={mod.logo} alt={mod.name + "'s Icon"} class="mod-card-logo" loading="lazy" />
|
|
||||||
<div class="mod-card-text-ct">
|
|
||||||
<p class="mod-card-name">{mod.name}</p>
|
|
||||||
<p class="mod-card-desc">{mod.description}</p>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
{/each}
|
|
||||||
{/each}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<details open>
|
|
||||||
<!-- svelte-ignore a11y-no-redundant-roles -->
|
|
||||||
<summary role="button" class="secondary">Optional Mods</summary>
|
|
||||||
<div class="grid" id="optional-mods">
|
|
||||||
{#each Array(Math.ceil(search(searchQuery, mods.optional_mods, fuseOptionalMods).length / 3)) as _, index}
|
|
||||||
{#each search(searchQuery, mods.optional_mods, fuseOptionalMods).slice(index * 3, (index + 1) * 3) as mod}
|
|
||||||
<a
|
|
||||||
role="button"
|
|
||||||
class="mod-card card contrast"
|
|
||||||
href={mod.link}
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
>
|
|
||||||
<img src={mod.logo} alt={mod.name + "'s Icon"} class="mod-card-logo" loading="lazy" />
|
|
||||||
<div class="mod-card-text-ct">
|
|
||||||
<p class="mod-card-name">{mod.name}</p>
|
|
||||||
<p class="mod-card-desc">{mod.description}</p>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
{/each}
|
|
||||||
{/each}
|
|
||||||
</div>
|
|
||||||
</details>
|
|
||||||
{/if}
|
|
||||||
|
|
||||||
<style lang="scss">
|
|
||||||
.grid {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(3, 1fr);
|
|
||||||
margin-bottom: 1em;
|
|
||||||
gap: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search-container {
|
|
||||||
display: flex;
|
|
||||||
|
|
||||||
select {
|
|
||||||
width: 40%;
|
|
||||||
border-radius: 0px 0.25rem 0.25rem 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
input {
|
|
||||||
border-radius: 0.25rem 0 0 0.25rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.close {
|
|
||||||
padding: 0 1em 0 1em;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.results-bar {
|
|
||||||
width: 100%;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
p {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
a {
|
|
||||||
margin-left: auto;
|
|
||||||
text-decoration: none;
|
|
||||||
&:hover {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.mod-card {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
padding: 0.5em 1em;
|
|
||||||
max-height: 6em;
|
|
||||||
overflow: hidden;
|
|
||||||
transition: max-height 0.3s ease-in-out; // Smooth transition
|
|
||||||
|
|
||||||
img.mod-card-logo {
|
|
||||||
height: 4em;
|
|
||||||
width: 4em;
|
|
||||||
margin-right: 1em;
|
|
||||||
border-radius: 0.25rem;
|
|
||||||
cursor: pointer;
|
|
||||||
align-self: flex-start;
|
|
||||||
margin: 0.5em 1em 0.5em 0;
|
|
||||||
z-index: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mod-card-text-ct {
|
|
||||||
width: 100%;
|
|
||||||
text-align: left;
|
|
||||||
p {
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
p.mod-card-name {
|
|
||||||
font-weight: 700;
|
|
||||||
font-size: 1.2em;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
:global(.overflowing) {
|
|
||||||
position: relative;
|
|
||||||
|
|
||||||
&::after {
|
|
||||||
content: '';
|
|
||||||
opacity: 1;
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
height: 3em;
|
|
||||||
bottom: 0em;
|
|
||||||
right: 0em;
|
|
||||||
z-index: 1;
|
|
||||||
transition: opacity 0.25s ease-in-out;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
max-height: 100em !important;
|
|
||||||
&::after {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -5,5 +5,3 @@ export const load = ({ url }) => {
|
||||||
pathname
|
pathname
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const prerender = true
|
|
|
@ -1,45 +1,9 @@
|
||||||
<script>
|
<script>
|
||||||
import "../app.scss";
|
import "../app.scss";
|
||||||
import Header from "./Header.svelte";
|
import Header from "./Header.svelte";
|
||||||
import NProgress from "nprogress";
|
|
||||||
import { navigating } from "$app/stores";
|
|
||||||
import { page } from '$app/stores';
|
|
||||||
import "nprogress/nprogress.css";
|
|
||||||
import { smoothScrollTo, handleKeydown } from "$lib/common";
|
|
||||||
import IconChevronUp from 'svelte-material-icons/ChevronUp.svelte';
|
|
||||||
|
|
||||||
import { fly } from "svelte/transition";
|
import { fly } from 'svelte/transition'
|
||||||
import { onMount } from "svelte";
|
export let data
|
||||||
export let data;
|
|
||||||
let cached = $page.scrollRestoration === 'manual';
|
|
||||||
|
|
||||||
NProgress.configure({
|
|
||||||
// Full list: https://github.com/rstacruz/nprogress#configuration
|
|
||||||
minimum: 0.16,
|
|
||||||
showSpinner: false
|
|
||||||
});
|
|
||||||
|
|
||||||
$: {
|
|
||||||
if ($navigating && !cached) {
|
|
||||||
NProgress.start();
|
|
||||||
}
|
|
||||||
if (!$navigating && !cached) {
|
|
||||||
NProgress.done();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
onMount(() => {
|
|
||||||
function toggleTopButton() {
|
|
||||||
const topButton = document.querySelector(".top-button");
|
|
||||||
if (window.scrollY >= window.innerHeight) {
|
|
||||||
topButton.classList.add("show");
|
|
||||||
} else {
|
|
||||||
topButton.classList.remove("show");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener("scroll", toggleTopButton);
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="app">
|
<div class="app">
|
||||||
|
@ -54,29 +18,14 @@
|
||||||
</main>
|
</main>
|
||||||
{/key}
|
{/key}
|
||||||
|
|
||||||
<!-- svelte-ignore a11y-missing-attribute -->
|
|
||||||
<a
|
|
||||||
role="button"
|
|
||||||
tabindex="0"
|
|
||||||
class="top-button"
|
|
||||||
on:click={() => smoothScrollTo("header")}
|
|
||||||
on:keydown={(event) => handleKeydown("header", event)}
|
|
||||||
>
|
|
||||||
<IconChevronUp size="1.5em" />
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
<p>
|
<p>
|
||||||
© Sangelo & LogolicusZ, 2023-2024 | <a
|
© Sangelo & LogolicusZ, 2023 | <a href="https://gitpot.dev/ExploreCraft/website"> Source Code</a>
|
||||||
href="https://gitpot.org/ExploreCraft/website"
|
|
||||||
>
|
|
||||||
Source Code</a
|
|
||||||
>
|
|
||||||
</p>
|
</p>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<style lang="scss">
|
<style>
|
||||||
.app {
|
.app {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
@ -106,23 +55,6 @@
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
.top-button {
|
|
||||||
display: flex;
|
|
||||||
visibility: hidden;
|
|
||||||
position: fixed;
|
|
||||||
width: 2.5em;
|
|
||||||
height: 2.5em;
|
|
||||||
bottom: 1em;
|
|
||||||
right: 1em;
|
|
||||||
z-index: 999;
|
|
||||||
opacity: 0;
|
|
||||||
padding: 0;
|
|
||||||
transition: 0.2s ease-in-out;
|
|
||||||
border-radius: 1000px;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 480px) {
|
@media (min-width: 480px) {
|
||||||
footer {
|
footer {
|
||||||
padding: 0.1em 0;
|
padding: 0.1em 0;
|
||||||
|
|
|
@ -1,71 +1,51 @@
|
||||||
<script>
|
<script>
|
||||||
import { onMount } from "svelte";
|
import { onMount } from 'svelte';
|
||||||
|
|
||||||
let modpack = "marbled"
|
function rand(min, max) {
|
||||||
|
return Math.floor(Math.random() * (max - min + 1) + min)
|
||||||
|
}
|
||||||
|
|
||||||
function rand(min, max) {
|
onMount(() => {
|
||||||
return Math.floor(Math.random() * (max - min + 1) + min);
|
document.getElementById('banner').src = document.getElementById('banner').src.replace("pic0", `pic${rand(1,14)}`);
|
||||||
}
|
console.log(document.getElementById('banner').src);
|
||||||
|
})
|
||||||
|
|
||||||
onMount(() => {
|
|
||||||
document.getElementById("banner").src = document
|
|
||||||
.getElementById("banner")
|
|
||||||
.src.replace("pic0", `${modpack}/optimized/pic${rand(1, 30)}`);
|
|
||||||
console.log(document.getElementById("banner").src);
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:head>
|
<svelte:head>
|
||||||
<title>ExploreCraft</title>
|
<title>ExploreCraft</title>
|
||||||
<meta
|
<meta name="description" content="Welcome to ExploreCraft! An exploration-focused and Quilt based modpack for Minecraft 1.19.2" />
|
||||||
name="description"
|
|
||||||
content="Welcome to ExploreCraft! An exploration-focused and Quilt based modpack for Minecraft"
|
|
||||||
/>
|
|
||||||
</svelte:head>
|
</svelte:head>
|
||||||
|
|
||||||
<div class="text-column">
|
<div class="text-column">
|
||||||
<h1 class="main-title">ExploreCraft</h1>
|
<h1>ExploreCraft</h1>
|
||||||
<p>
|
<p>
|
||||||
This is ExploreCraft! A modpack for Minecraft designed to keep you moving.<br
|
This is ExploreCraft! A modpack for Minecraft 1.19.2 (Quilt) designed to keep you moving.<br>
|
||||||
/>
|
You may never know what you'll find, after all
|
||||||
You may never know what you'll find, after all
|
</p>
|
||||||
</p>
|
<p>Have a look around. You can download the modpack and play, have a look in our gallery, or take a look at our modlist.</p>
|
||||||
<p>
|
|
||||||
Have a look around. You can download the modpack and play, have a look in
|
|
||||||
our gallery, or take a look at our modlist.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="grid buttons">
|
<div class="grid buttons">
|
||||||
<a href="/downloads" role="button">Download</a>
|
<a href="/downloads" role="button">Download</a>
|
||||||
<a href="/modlist" role="button" class="secondary outline">Modlist</a>
|
<a href="/modlist" role="button" class="secondary outline">Modlist</a>
|
||||||
</div>
|
</div>
|
||||||
<!-- svelte-ignore a11y-img-redundant-alt -->
|
<!-- svelte-ignore a11y-img-redundant-alt -->
|
||||||
<a href="/gallery" class="banner" data-tooltip="See more...">
|
<a href="/gallery" class="banner" data-tooltip="See more..."><img src="assets/images/gallery/pic0.png" id="banner" alt="Random picture from the gallery."></a>
|
||||||
<img
|
|
||||||
src="assets/images/gallery/pic0.png"
|
|
||||||
id="banner"
|
|
||||||
alt="Random picture from the gallery."/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.main-title {
|
a.banner img {
|
||||||
margin-bottom: 2em;
|
border-radius: 1em;
|
||||||
}
|
transition: all 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
|
||||||
a.banner img {
|
align-self: center;
|
||||||
border-radius: 0.25rem;
|
}
|
||||||
transition:
|
a.banner img:hover {
|
||||||
all 0.3s ease-in-out,
|
transform: scale(1.005);
|
||||||
box-shadow 0.3s ease-in-out;
|
box-shadow: 0px 0px 16px rgba(32, 32, 32, 0.4);
|
||||||
align-self: center;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
a.banner img:hover {
|
.buttons {
|
||||||
transform: scale(1.005);
|
margin-left: 25%;
|
||||||
box-shadow: 0px 0px 16px rgba(32, 32, 32, 0.4);
|
margin-right: 25%;
|
||||||
cursor: pointer;
|
margin-bottom: 2em;
|
||||||
}
|
}
|
||||||
.buttons {
|
|
||||||
margin-left: 25%;
|
|
||||||
margin-right: 25%;
|
|
||||||
margin-bottom: 2em;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
|
@ -3,7 +3,7 @@
|
||||||
import Switcher from './Switcher.svelte';
|
import Switcher from './Switcher.svelte';
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="header-container" id="header">
|
<div class="header-container">
|
||||||
<a class="link contrast" href="/">
|
<a class="link contrast" href="/">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<img class="logo" src="/assets/logo/explorecraft.svg" alt="ExploreCraft Logo" />
|
<img class="logo" src="/assets/logo/explorecraft.svg" alt="ExploreCraft Logo" />
|
||||||
|
@ -24,9 +24,6 @@
|
||||||
<li>
|
<li>
|
||||||
<a href="/gallery" class="contrast {$page.url.pathname === '/gallery' ? 'current-page' : undefined}">Gallery</a>
|
<a href="/gallery" class="contrast {$page.url.pathname === '/gallery' ? 'current-page' : undefined}">Gallery</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
|
||||||
<a href="https://discord.gg/Z2YehhEUVr" target="_blank" rel="noopener noreferrer" class="contrast">Discord</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
<li>
|
||||||
<Switcher/>
|
<Switcher/>
|
||||||
</li>
|
</li>
|
||||||
|
@ -89,7 +86,6 @@
|
||||||
|
|
||||||
.navigation-bar li {
|
.navigation-bar li {
|
||||||
margin-left: 1em;
|
margin-left: 1em;
|
||||||
cursor: default;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.navigation-bar a {
|
.navigation-bar a {
|
||||||
|
@ -98,8 +94,7 @@
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
cursor: pointer;
|
transition: font-style;
|
||||||
user-select: none;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[data-theme="dark"] .navigation-bar a {
|
[data-theme="dark"] .navigation-bar a {
|
||||||
|
@ -108,6 +103,7 @@
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
transition: font-style;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navigation-bar a.current-page {
|
.navigation-bar a.current-page {
|
||||||
|
@ -119,12 +115,11 @@
|
||||||
display: block;
|
display: block;
|
||||||
width: 20px;
|
width: 20px;
|
||||||
height: 4px;
|
height: 4px;
|
||||||
background-color: #1b2832;
|
background-color: #000;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
margin-top: 4px;
|
margin-top: 4px;
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
transition: ease-in-out 0.05s;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[data-theme="dark"] .navigation-bar a.current-page {
|
[data-theme="dark"] .navigation-bar a.current-page {
|
||||||
|
@ -132,7 +127,15 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
[data-theme="dark"] .navigation-bar a.current-page::after {
|
[data-theme="dark"] .navigation-bar a.current-page::after {
|
||||||
|
content: "";
|
||||||
|
display: block;
|
||||||
|
width: 20px;
|
||||||
|
height: 4px;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
|
border-radius: 2px;
|
||||||
|
margin-top: 4px;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -21,59 +21,36 @@
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
<button class:dark={isDarkMode} class="switcher" on:click={toggleDarkMode}>
|
||||||
<label class:dark={isDarkMode} class="switcher" on:click={toggleDarkMode}>
|
|
||||||
<input class="input" checked="checked" type="button">
|
|
||||||
{#if isDarkMode}
|
{#if isDarkMode}
|
||||||
<img src="/assets/icons/sun.svg" class="icon" alt="Light Mode" />
|
<img src="/assets/icons/sun.svg" class="icon" alt="Light Mode" />
|
||||||
{:else}
|
{:else}
|
||||||
<img src="/assets/icons/moon.svg" class="icon" alt="Dark Mode" />
|
<img src="/assets/icons/moon.svg" class="icon" alt="Dark Mode" />
|
||||||
{/if}
|
{/if}
|
||||||
</label>
|
</button>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.switcher {
|
.switcher {
|
||||||
--bg-color: #ffffff00;
|
padding: 0.5rem;
|
||||||
--main-color: #0b0d0c;
|
background-color: transparent;
|
||||||
position: relative;
|
border: none;
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
width: 40px;
|
|
||||||
height: 40px;
|
|
||||||
background-color: var(--bg-color);
|
|
||||||
border-radius: 100%;
|
|
||||||
border: 2px solid var(--main-color);
|
|
||||||
box-shadow: 4px 4px var(--main-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
:global(.dark) {
|
|
||||||
filter: invert(100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.input {
|
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
position: absolute;
|
color: var(--text-color); /* Set the color for the button icon */
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
z-index: 10;
|
|
||||||
opacity: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon {
|
.icon {
|
||||||
position: absolute;
|
width: 1.5em;
|
||||||
top: calc(50% -13px);
|
height: 1.5em;
|
||||||
left: calc(50% -13px);
|
|
||||||
width: 24px;
|
|
||||||
height: 24px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.switcher:active {
|
/* Dark mode styles */
|
||||||
box-shadow: 0px 0px var(--main-color);
|
:global(.dark) .icon {
|
||||||
transform: translate(4px, 4px);
|
filter: invert(100%);
|
||||||
}
|
}
|
||||||
|
|
||||||
.switcher {
|
/* Dark theme styles */
|
||||||
transition: ease-in-out 0.05s;
|
:global(.dark) {
|
||||||
}
|
--bg-color: #111;
|
||||||
|
--text-color: #fff;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
9
src/routes/celebrate/+page.js
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
import { dev } from '$app/environment';
|
||||||
|
|
||||||
|
// we don't need any JS on this page, though we'll load
|
||||||
|
// it in dev so that we get hot module replacement
|
||||||
|
export const csr = dev;
|
||||||
|
|
||||||
|
// since there's no dynamic data here, we can prerender
|
||||||
|
// it so that it gets served as a static asset in production
|
||||||
|
export const prerender = true;
|
|
@ -4,13 +4,18 @@
|
||||||
|
|
||||||
<svelte:head>
|
<svelte:head>
|
||||||
<title>Downloads</title>
|
<title>Downloads</title>
|
||||||
<meta name="description" content="Download the ExploreCraft modpack here!" />
|
<meta name="description" content="About this app" />
|
||||||
</svelte:head>
|
</svelte:head>
|
||||||
|
|
||||||
<div class="text-column">
|
<div class="text-column">
|
||||||
<h1>Downloads</h1>
|
<h1>Downloads</h1>
|
||||||
<p>You've decided to download ExploreCraft?<br>Here you'll find all the download links and instructions to install ExploreCraft!</p>
|
<p>You've decided to download ExploreCraft?<br>Here you'll find all the download links and instructions to install ExploreCraft!</p>
|
||||||
</div>
|
</div>
|
||||||
|
<MsgBox
|
||||||
|
type="warning"
|
||||||
|
message="<br>Currently WIP. You'll find downloads on this page,<br>though some links aren't currently ready."
|
||||||
|
prefix="ℹ️ Note ℹ️"
|
||||||
|
/>
|
||||||
|
|
||||||
<div class="grid">
|
<div class="grid">
|
||||||
<article class="main-card">
|
<article class="main-card">
|
||||||
|
@ -21,7 +26,7 @@
|
||||||
download this version. It is the most stable.
|
download this version. It is the most stable.
|
||||||
For more versions, open the "Unstable Releases" section down below.
|
For more versions, open the "Unstable Releases" section down below.
|
||||||
</p>
|
</p>
|
||||||
<a role="button" href="https://gitpot.org/ExploreCraft/modpack/releases/tag/v2.0">Download</a>
|
<a role="button" href="https://gitpot.dev/attachments/7a690df1-d78f-41fd-a9f7-610eacb369a9">Download</a>
|
||||||
<a href="#instructions" role="button" class="outline">Instructions</a>
|
<a href="#instructions" role="button" class="outline">Instructions</a>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
|
@ -41,7 +46,7 @@
|
||||||
If you'd like to keep playing the legacy version of ExploreCraft, you
|
If you'd like to keep playing the legacy version of ExploreCraft, you
|
||||||
can download it here. Not recommended as it is not maintained anymore and incompatible with Marbled.
|
can download it here. Not recommended as it is not maintained anymore and incompatible with Marbled.
|
||||||
</p>
|
</p>
|
||||||
<a role="button" href="https://gitpot.org/ExploreCraft/modpack/releases/tag/v1.0">Download</a>
|
<a role="button" href="https://gitpot.dev/attachments/f249e088-14f3-4372-8aff-97f45810a763">Download</a>
|
||||||
<a href="#instructions" role="button" class="outline">Instructions</a>
|
<a href="#instructions" role="button" class="outline">Instructions</a>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
|
@ -53,7 +58,7 @@
|
||||||
of ExploreCraft which may have game-breaking bugs, unfinished features and
|
of ExploreCraft which may have game-breaking bugs, unfinished features and
|
||||||
world corruptions at the cost of new features.
|
world corruptions at the cost of new features.
|
||||||
</p>
|
</p>
|
||||||
<a href="https://gitpot.org/ExploreCraft/modpack/src/branch/dev-marbled" role="button">Download</a>
|
<a href="https://gitpot.dev/ExploreCraft/modpack" role="button">Download</a>
|
||||||
<a href="#instructions" role="button" class="outline">Instructions</a>
|
<a href="#instructions" role="button" class="outline">Instructions</a>
|
||||||
</article>
|
</article>
|
||||||
</div>
|
</div>
|
||||||
|
@ -98,7 +103,7 @@
|
||||||
If a screen similar to this one appears, don't fret!<br>
|
If a screen similar to this one appears, don't fret!<br>
|
||||||
<img class="guide" src="assets/images/guide/manual-download.png" alt="Manual Download error in packwiz"><br>
|
<img class="guide" src="assets/images/guide/manual-download.png" alt="Manual Download error in packwiz"><br>
|
||||||
Just follow the guide
|
Just follow the guide
|
||||||
<a href="https://gitpot.org/ExploreCraft/modpack/src/branch/marbled/manual-download.md" rel="noopener noreferrer" target="_blank">here</a>
|
<a href="https://gitpot.dev/ExploreCraft/modpack/src/branch/marbled/manual-download.md" rel="noopener noreferrer" target="_blank">here</a>
|
||||||
to continue:
|
to continue:
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -110,10 +115,6 @@
|
||||||
|
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.msg-box {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
.main-card {
|
.main-card {
|
||||||
width: 50%;
|
width: 50%;
|
||||||
justify-self: center;
|
justify-self: center;
|
||||||
|
@ -133,7 +134,7 @@
|
||||||
margin-bottom: 1em;
|
margin-bottom: 1em;
|
||||||
justify-self: center;
|
justify-self: center;
|
||||||
align-self: center;
|
align-self: center;
|
||||||
border-radius: 0.25rem;
|
border-radius: 1em;
|
||||||
transition: all 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
|
transition: all 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
|
||||||
}
|
}
|
||||||
img.guide:hover {
|
img.guide:hover {
|
||||||
|
|
13
src/routes/examples/+page.svelte
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<script>
|
||||||
|
import Modal from "$lib/modules/Modal.svelte";
|
||||||
|
let showModal = false;
|
||||||
|
const openModal = () => {
|
||||||
|
showModal = true;
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<button on:click={openModal}>Open Modal</button>
|
||||||
|
{#if showModal}
|
||||||
|
<Modal title="Modal Title" msg="Modal Message" submit="https://example.com" bind:isOpen={showModal} />
|
||||||
|
{/if}
|
||||||
|
|
|
@ -5,76 +5,46 @@
|
||||||
|
|
||||||
<div class="text-column">
|
<div class="text-column">
|
||||||
<h1>Gallery</h1>
|
<h1>Gallery</h1>
|
||||||
<p>
|
<p>Have a sneak-peek into the modpack with some screenshots!</p>
|
||||||
Have a sneak-peek into the modpack with some screenshots!<br>
|
|
||||||
Click on an image to see the full quality.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="grid">
|
<div class="grid">
|
||||||
<a href="assets/images/gallery/marbled/pic1.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic1.png" alt="pic1"></a>
|
<div><img class="gallery-image" src="assets/images/gallery/pic1.png" alt="pic1"></div>
|
||||||
<a href="assets/images/gallery/marbled/pic2.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic2.png" alt="pic2"></a>
|
<div><img class="gallery-image" src="assets/images/gallery/pic2.png" alt="pic2"></div>
|
||||||
<a href="assets/images/gallery/marbled/pic3.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic3.png" alt="pic3"></a>
|
<div><img class="gallery-image" src="assets/images/gallery/pic3.png" alt="pic3"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid">
|
<div class="grid">
|
||||||
<a href="assets/images/gallery/marbled/pic9.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic9.png" alt="pic4"></a>
|
<div><img class="gallery-image" src="assets/images/gallery/pic9.png" alt="pic4"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid">
|
<div class="grid">
|
||||||
<a href="assets/images/gallery/marbled/pic4.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic4.png" alt="pic5"></a>
|
<div><img class="gallery-image" src="assets/images/gallery/pic4.png" alt="pic5"></div>
|
||||||
<a href="assets/images/gallery/marbled/pic5.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic5.png" alt="pic6"></a>
|
<div><img class="gallery-image" src="assets/images/gallery/pic5.png" alt="pic6"></div>
|
||||||
<a href="assets/images/gallery/marbled/pic6.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic6.png" alt="pic7"></a>
|
<div><img class="gallery-image" src="assets/images/gallery/pic6.png" alt="pic7"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid">
|
<div class="grid">
|
||||||
<a href="assets/images/gallery/marbled/pic7.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic7.png" alt="pic8"></a>
|
<div><img class="gallery-image" src="assets/images/gallery/pic7.png" alt="pic8"></div>
|
||||||
<a href="assets/images/gallery/marbled/pic8.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic8.png" alt="pic9"></a>
|
<div><img class="gallery-image" src="assets/images/gallery/pic8.png" alt="pic9"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid">
|
<div class="grid">
|
||||||
<a href="assets/images/gallery/marbled/pic10.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic10.png" alt="pic10"></a>
|
<div><img class="gallery-image" src="assets/images/gallery/pic10.png" alt="pic10"></div>
|
||||||
<a href="assets/images/gallery/marbled/pic11.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic11.png" alt="pic11"></a>
|
<div><img class="gallery-image" src="assets/images/gallery/pic11.png" alt="pic11"></div>
|
||||||
<a href="assets/images/gallery/marbled/pic12.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic12.png" alt="pic12"></a>
|
<div><img class="gallery-image" src="assets/images/gallery/pic12.png" alt="pic12"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid">
|
<div class="grid">
|
||||||
<a href="assets/images/gallery/marbled/pic13.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic13.png" alt="pic13"></a>
|
<div><img class="gallery-image" src="assets/images/gallery/pic13.png" alt="pic13"></div>
|
||||||
|
<div><img class="gallery-image" src="assets/images/gallery/pic14.png" alt="pic14"></div>
|
||||||
<a href="assets/images/gallery/marbled/pic15.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic15.png" alt="pic15"></a>
|
<div><img class="gallery-image" src="assets/images/gallery/pic15.png" alt="pic15"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid">
|
<div class="grid">
|
||||||
<a href="assets/images/gallery/marbled/pic16.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic16.png" alt="pic16"></a>
|
<div><img class="gallery-image" src="assets/images/gallery/pic16.png" alt="pic16"></div>
|
||||||
<a href="assets/images/gallery/marbled/pic17.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic17.png" alt="pic17"></a>
|
<div><img class="gallery-image" src="assets/images/gallery/pic17.png" alt="pic17"></div>
|
||||||
<a href="assets/images/gallery/marbled/pic18.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic18.png" alt="pic18"></a>
|
<div><img class="gallery-image" src="assets/images/gallery/pic18.png" alt="pic18"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="grid">
|
|
||||||
<a href="assets/images/gallery/marbled/pic19.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic19.png" alt="pic19"></a>
|
|
||||||
<a href="assets/images/gallery/marbled/pic20.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic20.png" alt="pic20"></a>
|
|
||||||
<a href="assets/images/gallery/marbled/pic21.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic21.png" alt="pic21"></a>
|
|
||||||
</div>
|
|
||||||
<div class="grid">
|
|
||||||
<a href="assets/images/gallery/marbled/pic22.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic22.png" alt="pic22"></a>
|
|
||||||
<a href="assets/images/gallery/marbled/pic23.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic23.png" alt="pic23"></a>
|
|
||||||
<a href="assets/images/gallery/marbled/pic24.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic24.png" alt="pic24"></a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="grid">
|
|
||||||
<a href="assets/images/gallery/marbled/pic25.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic25.png" alt="pic25"></a>
|
|
||||||
<a href="assets/images/gallery/marbled/pic14.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic14.png" alt="pic14"></a>
|
|
||||||
<a href="assets/images/gallery/marbled/pic26.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic26.png" alt="pic26"></a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="grid">
|
|
||||||
<a href="assets/images/gallery/marbled/pic27.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic27.png" alt="pic27"></a>
|
|
||||||
</div>
|
|
||||||
<div class="grid">
|
|
||||||
<a href="assets/images/gallery/marbled/pic28.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic28.png" alt="pic28"></a>
|
|
||||||
|
|
||||||
<a href="assets/images/gallery/marbled/pic29.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic29.png" alt="pic29"></a>
|
|
||||||
</div>
|
|
||||||
<div class="grid">
|
|
||||||
<a href="assets/images/gallery/marbled/pic30.png" target="_blank" rel="noreferrer noopener"><img class="gallery-image" src="assets/images/gallery/marbled/optimized/pic30.png" alt="pic30"></a>
|
|
||||||
</div>
|
|
||||||
<style>
|
<style>
|
||||||
img.gallery-image {
|
img.gallery-image {
|
||||||
border-radius: 0.25rem;
|
border-radius: 1em;
|
||||||
transition: all 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
|
transition: all 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
|
||||||
align-self: center;
|
align-self: center;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,21 +1,185 @@
|
||||||
<script>
|
|
||||||
import ModCards from "../../lib/modules/ModCards.svelte";
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<svelte:head>
|
|
||||||
<title>ExploreCraft</title>
|
|
||||||
<meta
|
|
||||||
name="description"
|
|
||||||
content="All the mods used in the ExploreCraft modpack. This list will be kept up-to-date as much as possible."
|
|
||||||
/>
|
|
||||||
</svelte:head>
|
|
||||||
|
|
||||||
<h1>Modlist</h1>
|
<h1>Modlist</h1>
|
||||||
<p>
|
<div class="container">
|
||||||
Here's ExploreCraft's modlist! We will keep this list up-to-date as much as possible.<br>
|
<div class="column">
|
||||||
Choose an ExploreCraft version in the dropdown next to the search field.
|
<ul>
|
||||||
</p>
|
<ul>
|
||||||
<p>Please report any missing mods on our <a href="https://discord.gg/Z2YehhEUVr" target="_blank" rel="noopener noreferrer">Discord</a>.</p>
|
<li>Accurate Maps</li>
|
||||||
|
<li>Ad Astra!</li>
|
||||||
|
<li>Ada Paxels</li>
|
||||||
|
<li>Adorn</li>
|
||||||
|
<li>Advancement Plaques</li>
|
||||||
|
<li>AdventureZ</li>
|
||||||
|
<li>Alloy Forgery</li>
|
||||||
|
<li>Amethyst Tools</li>
|
||||||
|
<li>Angling Mod</li>
|
||||||
|
<li>Another Furniture</li>
|
||||||
|
<li>AntiGhost</li>
|
||||||
|
<li>Applied Energistics 2</li>
|
||||||
|
<li>Architectury</li>
|
||||||
|
<li>Auditory</li>
|
||||||
|
<li>Balm</li>
|
||||||
|
<li>Biome Makeover</li>
|
||||||
|
<li>Blocks</li>
|
||||||
|
<li>Boat Item View Fabric</li>
|
||||||
|
<li>Botarium</li>
|
||||||
|
<li>Chisel Refabricated</li>
|
||||||
|
<li>Chunky</li>
|
||||||
|
<li>Cloth Config v8</li>
|
||||||
|
<li>Continuity</li>
|
||||||
|
<li>Controlling For Fabric</li>
|
||||||
|
<li>Crafting Tweaks</li>
|
||||||
|
<li>Create Crafts and Additions</li>
|
||||||
|
<li>Croptopia</li>
|
||||||
|
<li>Detail Armor Bar</li>
|
||||||
|
<li>Eating Animaton</li>
|
||||||
|
<li>EldritchMobs</li>
|
||||||
|
<li>Enchanted Vertical Slabs</li>
|
||||||
|
<li>Enchanting Infuser</li>
|
||||||
|
<li>EntityCulling-Fabric</li>
|
||||||
|
<li>Extractinator</li>
|
||||||
|
<li>ExtrasSounds</li>
|
||||||
|
<li>Fabric language Kotlin</li>
|
||||||
|
<li>Fabric Waystones</li>
|
||||||
|
<li>Factory Blocks Mod</li>
|
||||||
|
<li>Falling Leaves</li>
|
||||||
|
<li>Fastback</li>
|
||||||
|
<li>FerriteCore</li>
|
||||||
|
<li>Frame</li>
|
||||||
|
<li>Global Packs</li>
|
||||||
|
<li>Hold That Chunk</li>
|
||||||
|
<li>Icarus</li>
|
||||||
|
<li>Iceberg</li>
|
||||||
|
<li>Indium</li>
|
||||||
|
<li>Interactic</li>
|
||||||
|
<li>Jade Addons</li>
|
||||||
|
<li>Konkrete</li>
|
||||||
|
<li>Ksyxis</li>
|
||||||
|
<li>Labels</li>
|
||||||
|
<li>Language Reload</li>
|
||||||
|
|
||||||
<ModCards />
|
</ul>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="column">
|
||||||
|
<ul>
|
||||||
|
<li>Legendary Tooltips</li>
|
||||||
|
<li>Limits' Grapple</li>
|
||||||
|
<li>Ma Enchants</li>
|
||||||
|
<li>Macaw's Bridges</li>
|
||||||
|
<li>Macaw's Bridges BYG</li>
|
||||||
|
<li>Macaw's Doors</li>
|
||||||
|
<li>Macaw's Fences and Walls</li>
|
||||||
|
<li>Macaw's Furniture</li>
|
||||||
|
<li>Macaw's Paintings</li>
|
||||||
|
<li>Macaw's Paths and Pavings</li>
|
||||||
|
<li>Macaw's Roofs BYG</li>
|
||||||
|
<li>Macaw's Trapdoors</li>
|
||||||
|
<li>Macaw's Trapdoors</li>
|
||||||
|
<li>Macaw's Windows</li>
|
||||||
|
<li>Main Menu Credits</li>
|
||||||
|
<li>Mimic</li>
|
||||||
|
<li>Missing Wilds</li>
|
||||||
|
<li>MixinTrace</li>
|
||||||
|
<li>Mod Menu</li>
|
||||||
|
<li>Moonlight</li>
|
||||||
|
<li>More Chat History</li>
|
||||||
|
<li>MoreCreativeTabs</li>
|
||||||
|
<li>Mythic Metals</li>
|
||||||
|
<li>Mythic Upgrades</li>
|
||||||
|
<li>Naturalist</li>
|
||||||
|
<li>Nature's Compass</li>
|
||||||
|
<li>NiceLoad</li>
|
||||||
|
<li>No chat Reports</li>
|
||||||
|
<li>No Mob Farm</li>
|
||||||
|
<li>NotEnoughAnimations</li>
|
||||||
|
<li>Numismatic Overhaul</li>
|
||||||
|
<li>OPAC Create Mod Support</li>
|
||||||
|
<li>Open parties and claims</li>
|
||||||
|
<li>Pehkui</li>
|
||||||
|
<li>Polymorph</li>
|
||||||
|
<li>Powah!</li>
|
||||||
|
<li>Prism</li>
|
||||||
|
<li>Puzzle</li>
|
||||||
|
<li>Quartz Elevator</li>
|
||||||
|
<li>Quilt Loading Screen</li>
|
||||||
|
<li>Quiltgoslightyfasterlol</li>
|
||||||
|
<li>Recipe Book Is Pain</li>
|
||||||
|
<li>Reesse's Sodium Options</li>
|
||||||
|
<li>Resourcefulconfig</li>
|
||||||
|
<li>Roughly Enough Items</li>
|
||||||
|
<li>Satin</li>
|
||||||
|
<li>ServerCore</li>
|
||||||
|
<li>Sky Villages</li>
|
||||||
|
<li>Smooth boot</li>
|
||||||
|
<li>Sodium</li>
|
||||||
|
<li>Sodium Extra</li>
|
||||||
|
<li>Sound physics Remastered</li>
|
||||||
|
<li>Starlight</li>
|
||||||
|
<li>TerraBlender</li>
|
||||||
|
<li>Travaler's Backpack</li>
|
||||||
|
<li>Twigs</li>
|
||||||
|
<li>Villager Hats</li>
|
||||||
|
<li>Xareo's Minimap</li>
|
||||||
|
<li>Xareo's World Map</li>
|
||||||
|
<li>Your'e in Grave Danger</li>
|
||||||
|
<li>Your Reputation</li>
|
||||||
|
<li>YUNG's Better Desert Temples</li>
|
||||||
|
<li>YUNG's Better Dungeons</li>
|
||||||
|
<li>YUNG's Better Mineshaft</li>
|
||||||
|
<li>YUNG's Better Ocean Monuments</li>
|
||||||
|
<li>YUNG's Better Strongholds</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<details>
|
||||||
|
<summary role="button" class="secondary">Optional Mods</summary>
|
||||||
|
<div class="container">
|
||||||
|
<div class="column">
|
||||||
|
<ul>
|
||||||
|
<li>3D Skin Layers</li>
|
||||||
|
<li>Animatica</li>
|
||||||
|
<li>AppleSkin</li>
|
||||||
|
<li>Better F3</li>
|
||||||
|
<li>CapeTweaks</li>
|
||||||
|
<li>Chat Heads</li>
|
||||||
|
<li>Chunks fade in</li>
|
||||||
|
<li>CIT Resewn</li>
|
||||||
|
<li>ClickTrough</li>
|
||||||
|
<li>DashLoader</li>
|
||||||
|
<li>Draggable Resource Packs</li>
|
||||||
|
<li>Dynamic FPS</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="column">
|
||||||
|
<ul>
|
||||||
|
<li>Effective 💦</li>
|
||||||
|
<li>EmuNO</li>
|
||||||
|
<li>Iris shaders</li>
|
||||||
|
<li>Jade 🔍</li>
|
||||||
|
<li>Kappa</li>
|
||||||
|
<li>LambdaBetterGrass</li>
|
||||||
|
<li>LambDynamicLights</li>
|
||||||
|
<li>Mouse Wheelie</li>
|
||||||
|
<li>Ok Zoomer</li>
|
||||||
|
<li>Presence Footsteps</li>
|
||||||
|
<li>Reese’s Sodium Options</li>
|
||||||
|
<li>Too many Binds</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
|
||||||
|
.container {
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column {
|
||||||
|
width: 50%;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
|
@ -1,9 +1,2 @@
|
||||||
/* Variables and mixins declared here will be available in all other SCSS files */ /* https://github.com/picocss/pico/issues/201 */
|
/* Variables and mixins declared here will be available in all other SCSS files */ /* https://github.com/picocss/pico/issues/201 */
|
||||||
$semantic-root-element: "body div:first-child";
|
$semantic-root-element: "body div:first-child";
|
||||||
|
|
||||||
// colors
|
|
||||||
$zinc-50: #F0F1F3;
|
|
||||||
$zinc-100: #E0E3E7;
|
|
||||||
|
|
||||||
$slate-800: #2A3140;
|
|
||||||
$slate-750: #333C4E;
|
|
||||||
|
|
BIN
static/assets/images/gallery/2023-06-12_18.51.51.png
Normal file
After Width: | Height: | Size: 3 MiB |
BIN
static/assets/images/gallery/2023-06-12_18.54.15.png
Normal file
After Width: | Height: | Size: 3.6 MiB |
BIN
static/assets/images/gallery/2023-06-12_18.54.28.png
Normal file
After Width: | Height: | Size: 3.8 MiB |
BIN
static/assets/images/gallery/2023-06-12_18.54.50.png
Normal file
After Width: | Height: | Size: 3.2 MiB |
BIN
static/assets/images/gallery/2023-06-12_18.55.06.png
Normal file
After Width: | Height: | Size: 3.3 MiB |
BIN
static/assets/images/gallery/2023-06-12_18.55.27.png
Normal file
After Width: | Height: | Size: 3.2 MiB |
BIN
static/assets/images/gallery/2023-06-12_18.55.41.png
Normal file
After Width: | Height: | Size: 2.8 MiB |
BIN
static/assets/images/gallery/2023-06-12_18.57.06.png
Normal file
After Width: | Height: | Size: 2.9 MiB |
BIN
static/assets/images/gallery/2023-06-12_18.58.53.png
Normal file
After Width: | Height: | Size: 4.7 MiB |
Before Width: | Height: | Size: 316 KiB |
Before Width: | Height: | Size: 510 KiB |
Before Width: | Height: | Size: 480 KiB |
Before Width: | Height: | Size: 561 KiB |
Before Width: | Height: | Size: 648 KiB |
Before Width: | Height: | Size: 357 KiB |
Before Width: | Height: | Size: 309 KiB |
Before Width: | Height: | Size: 332 KiB |
Before Width: | Height: | Size: 876 KiB |
Before Width: | Height: | Size: 338 KiB |
Before Width: | Height: | Size: 1.1 MiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 860 KiB |
Before Width: | Height: | Size: 611 KiB |
Before Width: | Height: | Size: 547 KiB |
Before Width: | Height: | Size: 560 KiB |
Before Width: | Height: | Size: 572 KiB |
Before Width: | Height: | Size: 570 KiB |
Before Width: | Height: | Size: 526 KiB |
Before Width: | Height: | Size: 780 KiB |
Before Width: | Height: | Size: 817 KiB |
Before Width: | Height: | Size: 606 KiB |
Before Width: | Height: | Size: 299 KiB |
Before Width: | Height: | Size: 434 KiB |
Before Width: | Height: | Size: 426 KiB |
Before Width: | Height: | Size: 781 KiB |
Before Width: | Height: | Size: 351 KiB |
Before Width: | Height: | Size: 472 KiB |
Before Width: | Height: | Size: 1.8 MiB |
Before Width: | Height: | Size: 2.4 MiB |
Before Width: | Height: | Size: 2.2 MiB |
Before Width: | Height: | Size: 105 KiB |
Before Width: | Height: | Size: 71 KiB |
Before Width: | Height: | Size: 2.7 MiB |
Before Width: | Height: | Size: 3.2 MiB |
Before Width: | Height: | Size: 1.9 MiB |
Before Width: | Height: | Size: 1.7 MiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 4.8 MiB |
Before Width: | Height: | Size: 377 KiB |
Before Width: | Height: | Size: 3.4 MiB |
Before Width: | Height: | Size: 3.4 MiB |
Before Width: | Height: | Size: 3 MiB |
Before Width: | Height: | Size: 4.1 MiB |
Before Width: | Height: | Size: 3.9 MiB |
Before Width: | Height: | Size: 3.8 MiB |
Before Width: | Height: | Size: 2.5 MiB |
Before Width: | Height: | Size: 2.5 MiB |
Before Width: | Height: | Size: 2.5 MiB |
Before Width: | Height: | Size: 3 MiB |
Before Width: | Height: | Size: 3.1 MiB |
Before Width: | Height: | Size: 2.5 MiB |
Before Width: | Height: | Size: 1 MiB |
Before Width: | Height: | Size: 2.7 MiB |
Before Width: | Height: | Size: 2.7 MiB |
Before Width: | Height: | Size: 2.8 MiB |
Before Width: | Height: | Size: 2.3 MiB |
Before Width: | Height: | Size: 2.4 MiB |
BIN
static/assets/images/gallery/pic1.png
Normal file
After Width: | Height: | Size: 1.7 MiB |
BIN
static/assets/images/gallery/pic10.png
Normal file
After Width: | Height: | Size: 2.4 MiB |
BIN
static/assets/images/gallery/pic11.png
Normal file
After Width: | Height: | Size: 2.2 MiB |
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 105 KiB |
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 71 KiB |
BIN
static/assets/images/gallery/pic14.png
Normal file
After Width: | Height: | Size: 2.7 MiB |
BIN
static/assets/images/gallery/pic15.png
Normal file
After Width: | Height: | Size: 3.1 MiB |
BIN
static/assets/images/gallery/pic16.png
Normal file
After Width: | Height: | Size: 1.8 MiB |
BIN
static/assets/images/gallery/pic17.png
Normal file
After Width: | Height: | Size: 1.7 MiB |
BIN
static/assets/images/gallery/pic18.png
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
static/assets/images/gallery/pic2.png
Normal file
After Width: | Height: | Size: 352 KiB |
BIN
static/assets/images/gallery/pic3.png
Normal file
After Width: | Height: | Size: 3.1 MiB |
BIN
static/assets/images/gallery/pic4.png
Normal file
After Width: | Height: | Size: 990 KiB |