feat: more progress
This commit is contained in:
parent
0cac6145a2
commit
53738961bb
15 changed files with 634 additions and 39 deletions
|
|
@ -1,22 +1,28 @@
|
|||
<script context="module">
|
||||
export const prerender = true;
|
||||
</script>
|
||||
<script>
|
||||
import {
|
||||
Button,
|
||||
Switch,
|
||||
Container,
|
||||
createStyles,
|
||||
SvelteUIProvider,
|
||||
createTheme,
|
||||
} from '@svelteuidev/core';
|
||||
// import type { SvelteUIProviderProps } from '@svelteuidev/core';
|
||||
import '@fontsource/syne';
|
||||
|
||||
<script lang="ts">
|
||||
import { Button, Switch, Container, createStyles, SvelteUIProvider } from '@svelteuidev/core';
|
||||
import type { SvelteUIProviderProps } from '@svelteuidev/core';
|
||||
const theme = createTheme('themeOverride', { fonts: { standard: 'Syne' } });
|
||||
|
||||
const config: SvelteUIProviderProps['config'] = {
|
||||
const config = {
|
||||
light: { bg: 'White', color: 'Black' },
|
||||
dark: { bg: '#373737', color: '#C1C2C5' }
|
||||
dark: { bg: '#373737', color: '#C1C2C5' },
|
||||
};
|
||||
|
||||
const MENU_ITEMS = [
|
||||
{ label: 'Blog', href: '/blog' },
|
||||
{ label: 'Projects', href: '/projects' }
|
||||
{ label: 'Projects', href: '/projects' },
|
||||
];
|
||||
// current y coordinate of the scroll bar
|
||||
let y: number;
|
||||
let y = 0;
|
||||
let isDark = false;
|
||||
function toggleTheme() {
|
||||
isDark = !isDark;
|
||||
|
|
@ -30,27 +36,28 @@
|
|||
alignItems: 'center',
|
||||
position: 'sticky',
|
||||
top: 0,
|
||||
marginBottom: theme.space[12],
|
||||
padding: theme.space[4],
|
||||
'&.scrolled': {
|
||||
[`${theme.dark} &`]: {
|
||||
// using of SvelteUI utilities
|
||||
// bc === backgroundColor
|
||||
bc: theme.colors['dark500'].value
|
||||
//bc: theme.colors['dark500'].value,
|
||||
},
|
||||
bc: theme.colors['gray700'].value,
|
||||
bc: '#242424',
|
||||
color: 'rgb(223 223 223);',
|
||||
boxShadow: theme.shadows.lg
|
||||
}
|
||||
boxShadow: theme.shadows.lg,
|
||||
},
|
||||
},
|
||||
list: {
|
||||
listStyle: 'none',
|
||||
display: 'flex',
|
||||
marginBlock: '0px',
|
||||
gap: theme.space[2]
|
||||
gap: theme.space[2],
|
||||
},
|
||||
menuItem: {
|
||||
fontWeight: theme.fontWeights.bold
|
||||
}
|
||||
fontWeight: theme.fontWeights.bold,
|
||||
},
|
||||
};
|
||||
});
|
||||
$: ({ classes, getStyles, cx } = useStyles());
|
||||
|
|
@ -60,19 +67,20 @@
|
|||
|
||||
<SvelteUIProvider
|
||||
{config}
|
||||
class={theme}
|
||||
themeObserver={isDark ? 'dark' : 'light'}
|
||||
withNormalizeCSS
|
||||
withGlobalStyles
|
||||
ssr
|
||||
>
|
||||
<div class={cx(getStyles(), { scrolled: y > 0 })}>
|
||||
<h1>Alex' Website</h1>
|
||||
<h1><a href="/">Yard of Stuffs</a></h1>
|
||||
<nav>
|
||||
<ul class={classes.list}>
|
||||
{#each MENU_ITEMS as menuItem}
|
||||
<li>
|
||||
<Button variant="subtle" color="cyan" radius="xl" uppercase ripple>
|
||||
<a class={classes.menuItem} href={menuItem.href}>{menuItem.label}</a>
|
||||
<li class={classes.menuItem}>
|
||||
<Button href={menuItem.href} variant="subtle" color="cyan" radius="xl" uppercase ripple>
|
||||
{menuItem.label}
|
||||
</Button>
|
||||
</li>
|
||||
{/each}
|
||||
|
|
@ -80,13 +88,17 @@
|
|||
</nav>
|
||||
<Switch offLabel="Dark" size="lg" color="yellow" on:change={toggleTheme} />
|
||||
</div>
|
||||
<Container>
|
||||
<Container class={classes.main}>
|
||||
<slot />
|
||||
</Container>
|
||||
</SvelteUIProvider>
|
||||
|
||||
<style>
|
||||
a {
|
||||
:global(body) {
|
||||
font-family: 'Syne', sans-serif;
|
||||
}
|
||||
|
||||
:global(a) {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,282 @@
|
|||
<script context="module">
|
||||
export const prerender = true;
|
||||
</script>
|
||||
|
||||
<h1>blog</h1>
|
||||
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
et magnis. Adipiscing vitae proin sagittis nisl rhoncus. Accumsan lacus vel facilisis volutpat est
|
||||
velit. Elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Nibh mauris cursus mattis
|
||||
molestie. Malesuada fames ac turpis egestas maecenas pharetra convallis posuere morbi. Ipsum
|
||||
suspendisse ultrices gravida dictum fusce ut. Tellus cras adipiscing enim eu. Commodo viverra
|
||||
maecenas accumsan lacus vel facilisis volutpat est. Quis vel eros donec ac odio tempor. Orci ac
|
||||
auctor augue mauris augue neque. Rhoncus mattis rhoncus urna neque viverra justo nec. Ultricies mi
|
||||
eget mauris pharetra et ultrices neque ornare aenean. Consectetur adipiscing elit ut aliquam purus
|
||||
sit. Eu volutpat odio facilisis mauris. Scelerisque eu ultrices vitae auctor. Massa tincidunt nunc
|
||||
pulvinar sapien et. Commodo odio aenean sed adipiscing diam. Purus faucibus ornare suspendisse sed
|
||||
nisi. Pretium viverra suspendisse potenti nullam ac tortor. Curabitur vitae nunc sed velit dignissim
|
||||
sodales. Mattis pellentesque id nibh tortor id. Scelerisque felis imperdiet proin fermentum leo.
|
||||
Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Sit amet facilisis magna etiam te
|
||||
|
|
@ -1,7 +1,3 @@
|
|||
<script context="module">
|
||||
export const prerender = true;
|
||||
</script>
|
||||
|
||||
<h1>Welcome to SvelteKit</h1>
|
||||
<p>Visit <a href="https://kit.svelte.dev">kit.svelte.dev</a> to read the documentation</p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
|
||||
|
|
|
|||
118
src/routes/projects/__layout.svelte
Normal file
118
src/routes/projects/__layout.svelte
Normal file
|
|
@ -0,0 +1,118 @@
|
|||
<script context="module" lang="ts">
|
||||
export async function load({ fetch }: LoadEvent): LoadOutput {
|
||||
const response = await fetch(`/projects/projects.json`);
|
||||
const asJson = await response.json();
|
||||
return {
|
||||
status: response.status,
|
||||
props: {
|
||||
projects: response.ok && asJson.projects,
|
||||
},
|
||||
};
|
||||
}
|
||||
</script>
|
||||
|
||||
<script lang="ts">
|
||||
import Icon from 'mdi-svelte';
|
||||
import { Card, createStyles, Text, TextInput, theme, Title, Tooltip } from '@svelteuidev/core';
|
||||
import { mdiMagnify, mdiAccountMultiple } from '@mdi/js';
|
||||
import type { Project } from './types';
|
||||
import type { LoadEvent, LoadOutput } from '@sveltejs/kit';
|
||||
|
||||
export let projects: Project[] = [];
|
||||
let search = '';
|
||||
|
||||
const useStyles = createStyles((theme) => {
|
||||
return {
|
||||
root: {
|
||||
mt: theme.space[8],
|
||||
},
|
||||
main: {
|
||||
display: 'flex',
|
||||
},
|
||||
sidebar: { maxWidth: 250 },
|
||||
input: { width: '100%' },
|
||||
projects: {
|
||||
display: 'grid',
|
||||
gap: theme.space.smPX,
|
||||
listStyle: 'none',
|
||||
margin: theme.space[2],
|
||||
padding: 0,
|
||||
},
|
||||
project: {
|
||||
transition: 'all 250ms cubic-bezier(0.4, 0, 0.2, 1) 0s',
|
||||
'&:hover': {
|
||||
boxShadow: 'rgb(46 41 51 / 8%) 0px 4px 16px, rgb(71 63 79 / 16%) 0px 8px 24px',
|
||||
position: 'relative',
|
||||
backgroundColor: 'White',
|
||||
},
|
||||
},
|
||||
projectTop: {
|
||||
display: 'flex',
|
||||
mb: theme.space[8],
|
||||
justifyContent: 'space-between',
|
||||
},
|
||||
content: {
|
||||
marginLeft: theme.space[10],
|
||||
marginRight: theme.space[10],
|
||||
},
|
||||
projectTopSmall: {
|
||||
fontSize: '0.8rem',
|
||||
},
|
||||
};
|
||||
});
|
||||
$: ({ classes, getStyles, cx } = useStyles());
|
||||
</script>
|
||||
|
||||
<div class={getStyles()}>
|
||||
<h1>Projects</h1>
|
||||
<div class={classes.main}>
|
||||
<aside class={classes.sidebar}>
|
||||
<div class="searchbar">
|
||||
<Icon path={mdiMagnify} color="black" />
|
||||
<TextInput class={classes.input} placeholder="Search Projects" bind:value={search} />
|
||||
</div>
|
||||
<ul class={classes.projects}>
|
||||
{#each projects as project}
|
||||
<li>
|
||||
<a href={project.url}>
|
||||
<Card.Container
|
||||
p={12}
|
||||
class={classes.project}
|
||||
override={{
|
||||
br: '$md',
|
||||
boxShadow: 'unset',
|
||||
backgroundColor: theme.colors['gray100'],
|
||||
opacity: 0.8,
|
||||
}}
|
||||
>
|
||||
<div class={classes.projectTop}>
|
||||
<Title order={4} override={{ mb: 8, fontWeight: theme.fontWeights.extrabold }}
|
||||
>{project.title}</Title
|
||||
>
|
||||
<Tooltip label="Daily visitors" withArrow>
|
||||
<div class={classes.projectTopSmall}>
|
||||
<Icon path={mdiAccountMultiple} size="0.9rem" />
|
||||
{project.usersPerDay}
|
||||
</div>
|
||||
</Tooltip>
|
||||
</div>
|
||||
|
||||
<Text override={{ fontWeight: theme.fontWeights.extralight }}
|
||||
>{project.description}</Text
|
||||
>
|
||||
</Card.Container>
|
||||
</a>
|
||||
</li>
|
||||
{/each}
|
||||
</ul>
|
||||
</aside>
|
||||
<div class={classes.content}><slot /></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.searchbar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
||||
12
src/routes/projects/discretize-website.svx
Normal file
12
src/routes/projects/discretize-website.svx
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
---
|
||||
title: 'Discretize Website'
|
||||
description: >-
|
||||
The Gear Optimizer helps players of the MMORPG Guild Wars 2 to find the most optimal builds for their favourit content while respecting input parameters.
|
||||
concluded: false
|
||||
timeActive: 2021-now
|
||||
usersPerDay: 500
|
||||
layout: project
|
||||
---
|
||||
|
||||
|
||||
testico
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
<script context="module">
|
||||
export async function load({ url, fetch }) {
|
||||
return { headers: { location: '/projects/optimizer' }, status: 300 };
|
||||
}
|
||||
</script>
|
||||
12
src/routes/projects/optimizer.svx
Normal file
12
src/routes/projects/optimizer.svx
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
---
|
||||
title: 'Gear Optimizer'
|
||||
description: >-
|
||||
The Gear Optimizer helps players of the MMORPG Guild Wars 2 to find the most optimal builds for their favourit content while respecting input parameters.
|
||||
concluded: false
|
||||
timeActive: 2021-now
|
||||
usersPerDay: 500
|
||||
layout: project
|
||||
---
|
||||
|
||||
|
||||
The gear optimizer helps players of the MMORP [Guild Wars 2](https://www.guildwars2.com/en/) finding the most optimal gear meeting arbitrary constraints. Players may use templates to select the most common builds or adjust the settings manually - which requires some understanding of the available options. An easy-mode hides more advanced features.
|
||||
19
src/routes/projects/project.layout.svelte
Normal file
19
src/routes/projects/project.layout.svelte
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
<script>
|
||||
export let title = '';
|
||||
export let description = '';
|
||||
export let timeActive = '';
|
||||
export let concluded = false;
|
||||
export let usersPerDay = 0;
|
||||
</script>
|
||||
|
||||
<div>
|
||||
<h1>{title}</h1>
|
||||
|
||||
<sub>{description}</sub>
|
||||
<ul>
|
||||
<li>{timeActive}</li>
|
||||
<li>{concluded}</li>
|
||||
<li>{usersPerDay}</li>
|
||||
</ul>
|
||||
<slot />
|
||||
</div>
|
||||
24
src/routes/projects/projects.json.ts
Normal file
24
src/routes/projects/projects.json.ts
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
import type { Project } from './types';
|
||||
|
||||
export async function get() {
|
||||
const modules = import.meta.glob('./*.svx');
|
||||
|
||||
const projects: Project[] = [];
|
||||
|
||||
const resolved = await Promise.all(Object.values(modules).map((f) => f()));
|
||||
resolved.forEach((project, index) => {
|
||||
const { concluded, description, timeActive, title, usersPerDay } = project.metadata;
|
||||
|
||||
projects.push({
|
||||
concluded,
|
||||
description,
|
||||
timeActive,
|
||||
title,
|
||||
usersPerDay,
|
||||
url: `/projects/${Object.keys(modules)[index].replace('.svx', '').replace('./', '')}`,
|
||||
});
|
||||
});
|
||||
return {
|
||||
body: { projects },
|
||||
};
|
||||
}
|
||||
8
src/routes/projects/types.ts
Normal file
8
src/routes/projects/types.ts
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
export interface Project {
|
||||
title: string;
|
||||
description: string;
|
||||
concluded: boolean;
|
||||
timeActive: string;
|
||||
usersPerDay: number;
|
||||
url: string;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue