diff options
author | kartofen <mladenovnasko0@gmail.com> | 2022-10-26 18:03:58 +0300 |
---|---|---|
committer | kartofen <mladenovnasko0@gmail.com> | 2022-10-26 18:03:58 +0300 |
commit | 9ad43ed4d41906af8ae33160b30d6cd6a6ae9bc0 (patch) | |
tree | 65c17129709d70b34fc1f7ac5b48d9d479468ee8 /src | |
parent | 921421f2e2f44178333f8ef3011c43bc4eb6e39e (diff) |
prod version
Diffstat (limited to 'src')
-rw-r--r-- | src/components/Card.astro | 76 | ||||
-rw-r--r-- | src/layouts/Layout.astro | 56 | ||||
-rw-r--r-- | src/pages/board/[board].astro | 2 | ||||
-rw-r--r-- | src/pages/boards.astro | 27 | ||||
-rw-r--r-- | src/pages/index.astro | 120 |
5 files changed, 24 insertions, 257 deletions
diff --git a/src/components/Card.astro b/src/components/Card.astro deleted file mode 100644 index aea28c8..0000000 --- a/src/components/Card.astro +++ /dev/null @@ -1,76 +0,0 @@ ---- -export interface Props { - title: string; - body: string; - href: string; -} - -const { href, title, body } = Astro.props as Props; ---- - -<li class="link-card"> - <a href={href}> - <h2> - {title} - <span>→</span> - </h2> - <p> - {body} - </p> - </a> -</li> -<style> - :root { - --link-gradient: linear-gradient(45deg, #4f39fa, #da62c4 30%, var(--color-border) 60%); - } - - .link-card { - list-style: none; - display: flex; - padding: 0.15rem; - background-image: var(--link-gradient); - background-size: 400%; - border-radius: 0.5rem; - background-position: 100%; - transition: background-position 0.6s cubic-bezier(0.22, 1, 0.36, 1); - } - - .link-card > a { - width: 100%; - text-decoration: none; - line-height: 1.4; - padding: 1em 1.3em; - border-radius: 0.35rem; - color: var(--text-color); - background-color: white; - opacity: 0.8; - } - - h2 { - margin: 0; - transition: color 0.6s cubic-bezier(0.22, 1, 0.36, 1); - } - - p { - margin-top: 0.75rem; - margin-bottom: 0; - } - - h2 span { - display: inline-block; - transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1); - } - - .link-card:is(:hover, :focus-within) { - background-position: 0; - } - - .link-card:is(:hover, :focus-within) h2 { - color: #4f39fa; - } - - .link-card:is(:hover, :focus-within) h2 span { - will-change: transform; - transform: translateX(2px); - } -</style> diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro deleted file mode 100644 index 0e3e837..0000000 --- a/src/layouts/Layout.astro +++ /dev/null @@ -1,56 +0,0 @@ ---- -export interface Props { - title: string; -} - -const { title } = Astro.props as Props; ---- - -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="UTF-8" /> - <meta name="viewport" content="width=device-width" /> - <link rel="icon" type="image/svg+xml" href="/favicon.svg" /> - <meta name="generator" content={Astro.generator} /> - <title>{title}</title> - </head> - <body> - <slot /> - </body> -</html> -<style> - :root { - --font-size-base: clamp(1rem, 0.34vw + 0.91rem, 1.19rem); - --font-size-lg: clamp(1.2rem, 0.7vw + 1.2rem, 1.5rem); - --font-size-xl: clamp(2.44rem, 2.38vw + 1.85rem, 3.75rem); - - --color-text: hsl(12, 5%, 4%); - --color-bg: hsl(10, 21%, 95%); - --color-border: hsl(17, 24%, 90%); - } - - html { - font-family: system-ui, sans-serif; - font-size: var(--font-size-base); - color: var(--color-text); - background-color: var(--color-bg); - } - - body { - margin: 0; - } - - :global(h1) { - font-size: var(--font-size-xl); - } - - :global(h2) { - font-size: var(--font-size-lg); - } - - :global(code) { - font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, - Bitstream Vera Sans Mono, Courier New, monospace; - } -</style> diff --git a/src/pages/board/[board].astro b/src/pages/board/[board].astro index de76964..69959aa 100644 --- a/src/pages/board/[board].astro +++ b/src/pages/board/[board].astro @@ -19,7 +19,7 @@ const threads: Thread[] = await data.json(); <ThreadLayout> <h1 style="text-align:center"> - <a href=`/boards`>{board}</a> + <a href=`/`>{board}</a> </h1> <div class="blackbox"> diff --git a/src/pages/boards.astro b/src/pages/boards.astro deleted file mode 100644 index 8120bd2..0000000 --- a/src/pages/boards.astro +++ /dev/null @@ -1,27 +0,0 @@ ---- -import '../styles/blackbox.css' -import Default from '../layouts/Default.astro'; -import { api } from '../lib/api.ts'; - -const data = await api('get', 'boards'); -const boards: string[] = await data.json(); ---- - -<Default title="Boards"> - <h1>Boards</h1> - - <div class="blackbox"> - <ul> - {boards.map((board) => ( - <li><a href=`/board/${board}`>{board}</a></li> - ))} - </ul> - </div> -</Default> - -<style is:inline> - :root { - --wdt: 300px; - --ml: 0px; - } -</style> diff --git a/src/pages/index.astro b/src/pages/index.astro index 4dfffe3..8120bd2 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,101 +1,27 @@ --- -import Layout from '../layouts/Layout.astro'; -import Card from '../components/Card.astro'; ---- - -<Layout title="Welcome to Astro."> - <main> - <h1>Welcome to <span class="text-gradient">Astro</span></h1> - <p class="instructions"> - Check out the <code>src/pages</code> directory to get started.<br /> - <strong>Code Challenge:</strong> Tweak the "Welcome to Astro" message above. - </p> - <ul role="list" class="link-card-grid"> - <Card - href="https://docs.astro.build/" - title="Documentation" - body="Learn how Astro works and explore the official API docs." - /> - <Card - href="https://astro.build/integrations/" - title="Integrations" - body="Supercharge your project with new frameworks and libraries." - /> - <Card - href="https://astro.build/themes/" - title="Themes" - body="Explore a galaxy of community-built starter themes." - /> - <Card - href="https://astro.build/chat/" - title="Chat" - body="Come say hi to our amazing Discord community. ❤️" - /> - <Card - href="boards" - title="Boards page" - body="Fuck you" - /> - </ul> - </main> -</Layout> - -<style> - :root { - --astro-gradient: linear-gradient(0deg, #4f39fa, #da62c4); - } - - h1 { - margin: 2rem 0; - } - - main { - margin: auto; - padding: 1em; - max-width: 60ch; - } +import '../styles/blackbox.css' +import Default from '../layouts/Default.astro'; +import { api } from '../lib/api.ts'; - .text-gradient { - font-weight: 900; - background-image: var(--astro-gradient); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-size: 100% 200%; - background-position-y: 100%; - border-radius: 0.4rem; - animation: pulse 4s ease-in-out infinite; - } - - @keyframes pulse { - 0%, - 100% { - background-position-y: 0%; - } - 50% { - background-position-y: 80%; - } - } - - .instructions { - line-height: 1.6; - margin: 1rem 0; - background: #4f39fa; - padding: 1rem; - border-radius: 0.4rem; - color: var(--color-bg); - } - - .instructions code { - font-size: 0.875em; - border: 0.1em solid var(--color-border); - border-radius: 4px; - padding: 0.15em 0.25em; - } +const data = await api('get', 'boards'); +const boards: string[] = await data.json(); +--- - .link-card-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(24ch, 1fr)); - gap: 1rem; - padding: 0; - } +<Default title="Boards"> + <h1>Boards</h1> + + <div class="blackbox"> + <ul> + {boards.map((board) => ( + <li><a href=`/board/${board}`>{board}</a></li> + ))} + </ul> + </div> +</Default> + +<style is:inline> + :root { + --wdt: 300px; + --ml: 0px; + } </style> |