This commit is contained in:
commit
5b2cd81828
21
.gitignore
vendored
Normal file
21
.gitignore
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
# build output
|
||||
dist/
|
||||
|
||||
# generated types
|
||||
.astro/
|
||||
|
||||
# dependencies
|
||||
node_modules/
|
||||
|
||||
# logs
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
|
||||
# environment variables
|
||||
.env
|
||||
.env.production
|
||||
|
||||
# macOS-specific files
|
||||
.DS_Store
|
4
.prettierrc.yaml
Normal file
4
.prettierrc.yaml
Normal file
|
@ -0,0 +1,4 @@
|
|||
trailingComma: 'es5'
|
||||
tabWidth: 4
|
||||
semi: true
|
||||
singleQuote: true
|
4
.vscode/extensions.json
vendored
Normal file
4
.vscode/extensions.json
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"recommendations": ["astro-build.astro-vscode"],
|
||||
"unwantedRecommendations": []
|
||||
}
|
11
.vscode/launch.json
vendored
Normal file
11
.vscode/launch.json
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"command": "./node_modules/.bin/astro dev",
|
||||
"name": "Development server",
|
||||
"request": "launch",
|
||||
"type": "node-terminal"
|
||||
}
|
||||
]
|
||||
}
|
5
.vscode/settings.json
vendored
Normal file
5
.vscode/settings.json
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"files.associations": {
|
||||
"*.mdx": "markdown"
|
||||
}
|
||||
}
|
6
.woodpecker.yml
Normal file
6
.woodpecker.yml
Normal file
|
@ -0,0 +1,6 @@
|
|||
pipeline:
|
||||
check:
|
||||
image: bash
|
||||
commands:
|
||||
- bun install
|
||||
- bun astro check
|
9
astro.config.mjs
Normal file
9
astro.config.mjs
Normal file
|
@ -0,0 +1,9 @@
|
|||
import { defineConfig } from 'astro/config';
|
||||
import tailwind from "@astrojs/tailwind";
|
||||
|
||||
import mdx from "@astrojs/mdx";
|
||||
|
||||
// https://astro.build/config
|
||||
export default defineConfig({
|
||||
integrations: [tailwind(), mdx()]
|
||||
});
|
29
package.json
Normal file
29
package.json
Normal file
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"name": "exozine",
|
||||
"type": "module",
|
||||
"version": "0.0.1",
|
||||
"scripts": {
|
||||
"dev": "astro dev",
|
||||
"start": "astro dev",
|
||||
"build": "astro check && astro build",
|
||||
"preview": "astro preview",
|
||||
"astro": "astro"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/check": "^0.4.1",
|
||||
"@astrojs/mdx": "^2.0.4",
|
||||
"@astrojs/tailwind": "^5.1.0",
|
||||
"astro": "^4.1.2",
|
||||
"autoprefixer": "^10.4.16",
|
||||
"daisyui": "^4.6.0",
|
||||
"date-fns": "^3.2.0",
|
||||
"gray-matter": "^4.0.3",
|
||||
"rss": "^1.2.2",
|
||||
"tailwindcss": "^3.4.1",
|
||||
"typescript": "^5.3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^20.11.2",
|
||||
"prettier": "^3.2.2"
|
||||
}
|
||||
}
|
BIN
public/favicon.png
Normal file
BIN
public/favicon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
BIN
public/fonts/inter-v13-latin-500.woff2
Normal file
BIN
public/fonts/inter-v13-latin-500.woff2
Normal file
Binary file not shown.
BIN
public/fonts/inter-v13-latin-700.woff2
Normal file
BIN
public/fonts/inter-v13-latin-700.woff2
Normal file
Binary file not shown.
BIN
public/fonts/inter-v13-latin-800.woff2
Normal file
BIN
public/fonts/inter-v13-latin-800.woff2
Normal file
Binary file not shown.
BIN
public/fonts/inter-v13-latin-900.woff2
Normal file
BIN
public/fonts/inter-v13-latin-900.woff2
Normal file
Binary file not shown.
BIN
public/fonts/inter-v13-latin-regular.woff2
Normal file
BIN
public/fonts/inter-v13-latin-regular.woff2
Normal file
Binary file not shown.
1
src/env.d.ts
vendored
Normal file
1
src/env.d.ts
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/// <reference types="astro/client" />
|
51
src/layouts/Layout.astro
Normal file
51
src/layouts/Layout.astro
Normal file
|
@ -0,0 +1,51 @@
|
|||
---
|
||||
interface Props {
|
||||
title: string;
|
||||
}
|
||||
|
||||
const { title } = Astro.props;
|
||||
---
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="description" content="Astro description" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.png" />
|
||||
<meta name="generator" content={Astro.generator} />
|
||||
<title>{title}</title>
|
||||
</head>
|
||||
<body>
|
||||
<slot />
|
||||
</body>
|
||||
</html>
|
||||
<!-- <style is:global>
|
||||
:root {
|
||||
--accent: 136, 58, 234;
|
||||
--accent-light: 224, 204, 250;
|
||||
--accent-dark: 49, 10, 101;
|
||||
--accent-gradient: linear-gradient(
|
||||
45deg,
|
||||
rgb(var(--accent)),
|
||||
rgb(var(--accent-light)) 30%,
|
||||
white 60%
|
||||
);
|
||||
}
|
||||
html {
|
||||
font-family: system-ui, sans-serif;
|
||||
background: #13151a;
|
||||
background-size: 224px;
|
||||
}
|
||||
code {
|
||||
font-family:
|
||||
Menlo,
|
||||
Monaco,
|
||||
Lucida Console,
|
||||
Liberation Mono,
|
||||
DejaVu Sans Mono,
|
||||
Bitstream Vera Sans Mono,
|
||||
Courier New,
|
||||
monospace;
|
||||
}
|
||||
</style> -->
|
62
src/pages/index.astro
Normal file
62
src/pages/index.astro
Normal file
|
@ -0,0 +1,62 @@
|
|||
---
|
||||
import { parseISO, format } from 'date-fns';
|
||||
|
||||
import '../styles/fonts.css';
|
||||
import '../styles/theme.css';
|
||||
---
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="description" content="Astro description" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.png" />
|
||||
<title>Exozine</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container mx-auto my-auto px-10 py-10">
|
||||
<div class="flex-col flex">
|
||||
<h1
|
||||
class="text-5xl font-bold tracking-tighter leading-tight md:pr-8"
|
||||
>
|
||||
Exozine
|
||||
</h1>
|
||||
<h3>The monthly exozyme magazine.</h3>
|
||||
</div>
|
||||
<div class="mt-10">
|
||||
<div
|
||||
class="grid grid-cols-1 md:grid-cols-2 md:gap-x-16 lg:gap-x-32 gap-y-20 md:gap-y-32 mb-32"
|
||||
>
|
||||
<!-- -->
|
||||
<div>
|
||||
<h3 class="font-semibold text-3xl">
|
||||
<a
|
||||
class="hover:underline underline-offset-2 hover:text-accent"
|
||||
href="/"
|
||||
>Lorem ipsum dolor sit amet, consectetur
|
||||
adipiscing</a
|
||||
>
|
||||
</h3>
|
||||
<div class="mb-2">
|
||||
{
|
||||
format(
|
||||
parseISO('2023-06-28T17:00:00Z'),
|
||||
'dd MMM, yyy'
|
||||
)
|
||||
}
|
||||
</div>
|
||||
<p class="text-lg leading-relaxed mb-4">
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing
|
||||
elit, sed do eiusmod tempor incididunt ut labore et
|
||||
dolore magna aliqua. Praesent elementum facilisis
|
||||
leo vel fringilla est ullamcorper eget. At imperdiet
|
||||
dui accumsan sit amet nulla facilities morbi tempus.
|
||||
</p>
|
||||
</div>
|
||||
<!-- -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
48
src/styles/fonts.css
Normal file
48
src/styles/fonts.css
Normal file
|
@ -0,0 +1,48 @@
|
|||
/* inter-regular - latin */
|
||||
@font-face {
|
||||
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url('/fonts/inter-v13-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
|
||||
}
|
||||
|
||||
/* inter-500 - latin */
|
||||
@font-face {
|
||||
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: url('/fonts/inter-v13-latin-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
|
||||
}
|
||||
|
||||
/* inter-700 - latin */
|
||||
@font-face {
|
||||
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: url('/fonts/inter-v13-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
|
||||
}
|
||||
|
||||
/* inter-800 - latin */
|
||||
@font-face {
|
||||
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 800;
|
||||
src: url('/fonts/inter-v13-latin-800.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
|
||||
}
|
||||
|
||||
/* inter-900 - latin */
|
||||
@font-face {
|
||||
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 900;
|
||||
src: url('/fonts/inter-v13-latin-900.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: Inter;
|
||||
}
|
128
src/styles/theme.css
Normal file
128
src/styles/theme.css
Normal file
|
@ -0,0 +1,128 @@
|
|||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
|
||||
@layer base {
|
||||
:root {
|
||||
--text-50: #f1f3f3;
|
||||
--text-100: #e4e7e7;
|
||||
--text-200: #c9cfcf;
|
||||
--text-300: #aeb7b7;
|
||||
--text-400: #939f9f;
|
||||
--text-500: #788787;
|
||||
--text-600: #606c6c;
|
||||
--text-700: #485151;
|
||||
--text-800: #303636;
|
||||
--text-900: #181b1b;
|
||||
--text-950: #0c0e0e;
|
||||
|
||||
--background-50: #f1f4f4;
|
||||
--background-100: #e3e8e8;
|
||||
--background-200: #c7d1d1;
|
||||
--background-300: #abbaba;
|
||||
--background-400: #8fa3a3;
|
||||
--background-500: #738c8c;
|
||||
--background-600: #5c7070;
|
||||
--background-700: #455454;
|
||||
--background-800: #2e3838;
|
||||
--background-900: #171c1c;
|
||||
--background-950: #0b0e0e;
|
||||
|
||||
--primary-50: #f0f5f5;
|
||||
--primary-100: #e0ebea;
|
||||
--primary-200: #c2d6d6;
|
||||
--primary-300: #a3c2c1;
|
||||
--primary-400: #85adad;
|
||||
--primary-500: #669998;
|
||||
--primary-600: #527a7a;
|
||||
--primary-700: #3d5c5b;
|
||||
--primary-800: #293d3d;
|
||||
--primary-900: #141f1e;
|
||||
--primary-950: #0a0f0f;
|
||||
|
||||
--secondary-50: #eff6f5;
|
||||
--secondary-100: #dfecec;
|
||||
--secondary-200: #bfd9d8;
|
||||
--secondary-300: #9fc6c5;
|
||||
--secondary-400: #7eb4b2;
|
||||
--secondary-500: #5ea19e;
|
||||
--secondary-600: #4b817f;
|
||||
--secondary-700: #39605f;
|
||||
--secondary-800: #26403f;
|
||||
--secondary-900: #132020;
|
||||
--secondary-950: #091010;
|
||||
|
||||
--accent-50: #eef6f6;
|
||||
--accent-100: #ddeeed;
|
||||
--accent-200: #bcdcdb;
|
||||
--accent-300: #9acbc9;
|
||||
--accent-400: #78bab6;
|
||||
--accent-500: #57a8a4;
|
||||
--accent-600: #458783;
|
||||
--accent-700: #346563;
|
||||
--accent-800: #234342;
|
||||
--accent-900: #112221;
|
||||
--accent-950: #091110;
|
||||
}
|
||||
.dark {
|
||||
--text-50: #0c0e0e;
|
||||
--text-100: #181b1b;
|
||||
--text-200: #303636;
|
||||
--text-300: #485151;
|
||||
--text-400: #606c6c;
|
||||
--text-500: #788787;
|
||||
--text-600: #939f9f;
|
||||
--text-700: #aeb7b7;
|
||||
--text-800: #c9cfcf;
|
||||
--text-900: #e4e7e7;
|
||||
--text-950: #f1f3f3;
|
||||
|
||||
--background-50: #0b0e0e;
|
||||
--background-100: #171c1c;
|
||||
--background-200: #2e3838;
|
||||
--background-300: #455454;
|
||||
--background-400: #5c7070;
|
||||
--background-500: #738c8c;
|
||||
--background-600: #8fa3a3;
|
||||
--background-700: #abbaba;
|
||||
--background-800: #c7d1d1;
|
||||
--background-900: #e3e8e8;
|
||||
--background-950: #f1f4f4;
|
||||
|
||||
--primary-50: #0a0f0f;
|
||||
--primary-100: #141f1e;
|
||||
--primary-200: #293d3d;
|
||||
--primary-300: #3d5c5b;
|
||||
--primary-400: #527a7a;
|
||||
--primary-500: #669998;
|
||||
--primary-600: #85adad;
|
||||
--primary-700: #a3c2c1;
|
||||
--primary-800: #c2d6d6;
|
||||
--primary-900: #e0ebea;
|
||||
--primary-950: #f0f5f5;
|
||||
|
||||
--secondary-50: #091010;
|
||||
--secondary-100: #132020;
|
||||
--secondary-200: #26403f;
|
||||
--secondary-300: #39605f;
|
||||
--secondary-400: #4b817f;
|
||||
--secondary-500: #5ea19e;
|
||||
--secondary-600: #7eb4b2;
|
||||
--secondary-700: #9fc6c5;
|
||||
--secondary-800: #bfd9d8;
|
||||
--secondary-900: #dfecec;
|
||||
--secondary-950: #eff6f5;
|
||||
|
||||
--accent-50: #091110;
|
||||
--accent-100: #112221;
|
||||
--accent-200: #234342;
|
||||
--accent-300: #346563;
|
||||
--accent-400: #458783;
|
||||
--accent-500: #57a8a4;
|
||||
--accent-600: #78bab6;
|
||||
--accent-700: #9acbc9;
|
||||
--accent-800: #bcdcdb;
|
||||
--accent-900: #ddeeed;
|
||||
--accent-950: #eef6f6;
|
||||
}
|
||||
}
|
30
tailwind.config.mjs
Normal file
30
tailwind.config.mjs
Normal file
|
@ -0,0 +1,30 @@
|
|||
/** @type {import('tailwindcss').Config} */
|
||||
export default {
|
||||
content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}'],
|
||||
theme: {
|
||||
extend: {},
|
||||
},
|
||||
plugins: [require('daisyui')],
|
||||
daisyui: {
|
||||
themes: [
|
||||
{
|
||||
light: {
|
||||
primary: '#6f9f9e',
|
||||
secondary: '#a8cccb',
|
||||
accent: '#7fbdba',
|
||||
neutral: '#222a2a',
|
||||
'base-100': '#f4f6f6',
|
||||
},
|
||||
dark: {
|
||||
primary: '#60908f',
|
||||
secondary: '#335756',
|
||||
accent: '#42807d',
|
||||
neutral: '#222a2a',
|
||||
'base-100': '#090b0b',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
// https://www.realtimecolors.com/?colors=111313-f4f6f6-6f9f9e-a8cccb-7fbdba&fonts=Inter-Inter
|
3
tsconfig.json
Normal file
3
tsconfig.json
Normal file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"extends": "astro/tsconfigs/strict"
|
||||
}
|
Loading…
Reference in a new issue