site: start of basic site using astro, character select implemented
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,2 +1,5 @@
|
|||||||
|
.astro
|
||||||
.koka
|
.koka
|
||||||
.vscode
|
.vscode
|
||||||
|
dist
|
||||||
|
node_modules
|
||||||
|
|||||||
6
astro.config.mjs
Normal file
6
astro.config.mjs
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
import { defineConfig } from "astro/config";
|
||||||
|
|
||||||
|
export default defineConfig({
|
||||||
|
site: "https://zenno.sunturtle.xyz",
|
||||||
|
srcDir: "./site",
|
||||||
|
});
|
||||||
4709
package-lock.json
generated
Normal file
4709
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
23
package.json
Normal file
23
package.json
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"name": "zenno",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"description": "Zenno Rob Roy: She's read all about Umamusume, and she's always happy to share her knowledge and give recommendations!",
|
||||||
|
"main": "index.js",
|
||||||
|
"directories": {},
|
||||||
|
"scripts": {
|
||||||
|
"dev": "astro dev",
|
||||||
|
"build": "astro build",
|
||||||
|
"preview": "astro preview"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git@git.sunturtle.xyz:zephyr/horse.git"
|
||||||
|
},
|
||||||
|
"keywords": [],
|
||||||
|
"author": "Branden J Brown <zephyrtronium@hey.com>",
|
||||||
|
"license": "none",
|
||||||
|
"dependencies": {
|
||||||
|
"astro": "^6.0.8",
|
||||||
|
"nanostores": "^1.2.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
35
site/components/CharaSelect.astro
Normal file
35
site/components/CharaSelect.astro
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
// Input to select a character,
|
||||||
|
// e.g. Special Week (not [Special Dreamer] Special Week).
|
||||||
|
|
||||||
|
import { character, type Character } from "../data/character";
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
id: string;
|
||||||
|
label?: string;
|
||||||
|
required?: boolean;
|
||||||
|
region?: keyof typeof character;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Emits {
|
||||||
|
"chara-change": (ev: CustomEvent<{id: string, chara?: Character}>) => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
const { id, label, required = false, region = "global" } = Astro.props;
|
||||||
|
---
|
||||||
|
{label && <label for="id">{label}</label>}
|
||||||
|
<select class="select-chara" id={id}>
|
||||||
|
{!required && <option value=""></option>}
|
||||||
|
{character[region].map((chara) => (
|
||||||
|
<option value={chara.chara_id}>{chara.name}</option>
|
||||||
|
))}
|
||||||
|
</select>
|
||||||
|
<script is:inline define:vars={{ id, region, character }}>
|
||||||
|
document.getElementById(id).addEventListener("change", (ev) => {
|
||||||
|
const chara_id = parseInt(ev.target.value);
|
||||||
|
const chara = character[region].find((c) => c.chara_id === chara_id);
|
||||||
|
const detail = chara != null ? {id, chara} : {id};
|
||||||
|
const b = new CustomEvent("chara-change", { detail, bubbles: true });
|
||||||
|
ev.target.dispatchEvent(b);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
2
site/components/LobbyConversations.astro
Normal file
2
site/components/LobbyConversations.astro
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
---
|
||||||
|
---
|
||||||
27
site/data/character.ts
Normal file
27
site/data/character.ts
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
import globalJSON from "../../global/character.json";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Character definitions.
|
||||||
|
*/
|
||||||
|
export interface Character {
|
||||||
|
/**
|
||||||
|
* Character ID.
|
||||||
|
*/
|
||||||
|
chara_id: number;
|
||||||
|
/**
|
||||||
|
* Regional name of the character.
|
||||||
|
* E.g., Special Week for Global, or スペシャルウィーク for JP.
|
||||||
|
*/
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
const global = globalJSON as Character[];
|
||||||
|
|
||||||
|
export const character = {
|
||||||
|
global,
|
||||||
|
}
|
||||||
|
|
||||||
|
export function searchChara(charas: Character[], id: Character["chara_id"]): Character | undefined {
|
||||||
|
// TODO(zephyr): binary search
|
||||||
|
return charas.find((c) => c.chara_id === id);
|
||||||
|
}
|
||||||
20
site/pages/index.astro
Normal file
20
site/pages/index.astro
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
import CharaSelect from "../components/CharaSelect.astro";
|
||||||
|
|
||||||
|
import "../styles/normalize.css";
|
||||||
|
import "../styles/sakura-vars.css";
|
||||||
|
---
|
||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<h1>Zenno Rob Roy</h1>
|
||||||
|
<p>She's read all about Umamusume, and she's always happy to share her knowledge and give recommendations!</p>
|
||||||
|
<ul>
|
||||||
|
<li>Discord bot: Prove yourself right about skill details without switching tabs.</li>
|
||||||
|
<li>Lobby conversations: Get recommendations on unlocking lobby conversations for the archive gallery.</li>
|
||||||
|
</ul>
|
||||||
|
<CharaSelect id="chara-test" label="Select character"/>
|
||||||
|
<script>
|
||||||
|
document.getElementById("chara-test")!.addEventListener("chara-change", (ev) => console.log("chara change", ev))
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
379
site/styles/normalize.css
vendored
Executable file
379
site/styles/normalize.css
vendored
Executable file
@@ -0,0 +1,379 @@
|
|||||||
|
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
|
||||||
|
|
||||||
|
/* Document
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Correct the line height in all browsers.
|
||||||
|
* 2. Prevent adjustments of font size after orientation changes in iOS.
|
||||||
|
*/
|
||||||
|
|
||||||
|
html {
|
||||||
|
line-height: 1.15;
|
||||||
|
/* 1 */
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
/* 2 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Sections
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the margin in all browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Render the `main` element consistently in IE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
main {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Correct the font size and margin on `h1` elements within `section` and
|
||||||
|
* `article` contexts in Chrome, Firefox, and Safari.
|
||||||
|
*/
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 2em;
|
||||||
|
margin: 0.67em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Grouping content
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Add the correct box sizing in Firefox.
|
||||||
|
* 2. Show the overflow in Edge and IE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
hr {
|
||||||
|
box-sizing: content-box;
|
||||||
|
/* 1 */
|
||||||
|
height: 0;
|
||||||
|
/* 1 */
|
||||||
|
overflow: visible;
|
||||||
|
/* 2 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Correct the inheritance and scaling of font size in all browsers.
|
||||||
|
* 2. Correct the odd `em` font sizing in all browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
pre {
|
||||||
|
font-family: monospace, monospace;
|
||||||
|
/* 1 */
|
||||||
|
font-size: 1em;
|
||||||
|
/* 2 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Text-level semantics
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the gray background on active links in IE 10.
|
||||||
|
*/
|
||||||
|
|
||||||
|
a {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Remove the bottom border in Chrome 57-
|
||||||
|
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
|
||||||
|
*/
|
||||||
|
|
||||||
|
abbr[title] {
|
||||||
|
border-bottom: none;
|
||||||
|
/* 1 */
|
||||||
|
text-decoration: underline;
|
||||||
|
/* 2 */
|
||||||
|
text-decoration: underline dotted;
|
||||||
|
/* 2 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the correct font weight in Chrome, Edge, and Safari.
|
||||||
|
*/
|
||||||
|
|
||||||
|
b,
|
||||||
|
strong {
|
||||||
|
font-weight: bolder;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Correct the inheritance and scaling of font size in all browsers.
|
||||||
|
* 2. Correct the odd `em` font sizing in all browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
code,
|
||||||
|
kbd,
|
||||||
|
samp {
|
||||||
|
font-family: monospace, monospace;
|
||||||
|
/* 1 */
|
||||||
|
font-size: 1em;
|
||||||
|
/* 2 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the correct font size in all browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
small {
|
||||||
|
font-size: 80%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prevent `sub` and `sup` elements from affecting the line height in
|
||||||
|
* all browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
sub,
|
||||||
|
sup {
|
||||||
|
font-size: 75%;
|
||||||
|
line-height: 0;
|
||||||
|
position: relative;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub {
|
||||||
|
bottom: -0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
sup {
|
||||||
|
top: -0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Embedded content
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the border on images inside links in IE 10.
|
||||||
|
*/
|
||||||
|
|
||||||
|
img {
|
||||||
|
border-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Forms
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Change the font styles in all browsers.
|
||||||
|
* 2. Remove the margin in Firefox and Safari.
|
||||||
|
*/
|
||||||
|
|
||||||
|
button,
|
||||||
|
input,
|
||||||
|
optgroup,
|
||||||
|
select,
|
||||||
|
textarea {
|
||||||
|
font-family: inherit;
|
||||||
|
/* 1 */
|
||||||
|
font-size: 100%;
|
||||||
|
/* 1 */
|
||||||
|
line-height: 1.15;
|
||||||
|
/* 1 */
|
||||||
|
margin: 0;
|
||||||
|
/* 2 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the overflow in IE.
|
||||||
|
* 1. Show the overflow in Edge.
|
||||||
|
*/
|
||||||
|
|
||||||
|
button,
|
||||||
|
input {
|
||||||
|
/* 1 */
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the inheritance of text transform in Edge, Firefox, and IE.
|
||||||
|
* 1. Remove the inheritance of text transform in Firefox.
|
||||||
|
*/
|
||||||
|
|
||||||
|
button,
|
||||||
|
select {
|
||||||
|
/* 1 */
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Correct the inability to style clickable types in iOS and Safari.
|
||||||
|
*/
|
||||||
|
|
||||||
|
button,
|
||||||
|
[type="button"],
|
||||||
|
[type="reset"],
|
||||||
|
[type="submit"] {
|
||||||
|
-webkit-appearance: button;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the inner border and padding in Firefox.
|
||||||
|
*/
|
||||||
|
|
||||||
|
button::-moz-focus-inner,
|
||||||
|
[type="button"]::-moz-focus-inner,
|
||||||
|
[type="reset"]::-moz-focus-inner,
|
||||||
|
[type="submit"]::-moz-focus-inner {
|
||||||
|
border-style: none;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Restore the focus styles unset by the previous rule.
|
||||||
|
*/
|
||||||
|
|
||||||
|
button:-moz-focusring,
|
||||||
|
[type="button"]:-moz-focusring,
|
||||||
|
[type="reset"]:-moz-focusring,
|
||||||
|
[type="submit"]:-moz-focusring {
|
||||||
|
outline: 1px dotted ButtonText;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Correct the padding in Firefox.
|
||||||
|
*/
|
||||||
|
|
||||||
|
fieldset {
|
||||||
|
padding: 0.35em 0.75em 0.625em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Correct the text wrapping in Edge and IE.
|
||||||
|
* 2. Correct the color inheritance from `fieldset` elements in IE.
|
||||||
|
* 3. Remove the padding so developers are not caught out when they zero out
|
||||||
|
* `fieldset` elements in all browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
legend {
|
||||||
|
box-sizing: border-box;
|
||||||
|
/* 1 */
|
||||||
|
color: inherit;
|
||||||
|
/* 2 */
|
||||||
|
display: table;
|
||||||
|
/* 1 */
|
||||||
|
max-width: 100%;
|
||||||
|
/* 1 */
|
||||||
|
padding: 0;
|
||||||
|
/* 3 */
|
||||||
|
white-space: normal;
|
||||||
|
/* 1 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
|
||||||
|
*/
|
||||||
|
|
||||||
|
progress {
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the default vertical scrollbar in IE 10+.
|
||||||
|
*/
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Add the correct box sizing in IE 10.
|
||||||
|
* 2. Remove the padding in IE 10.
|
||||||
|
*/
|
||||||
|
|
||||||
|
[type="checkbox"],
|
||||||
|
[type="radio"] {
|
||||||
|
box-sizing: border-box;
|
||||||
|
/* 1 */
|
||||||
|
padding: 0;
|
||||||
|
/* 2 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Correct the cursor style of increment and decrement buttons in Chrome.
|
||||||
|
*/
|
||||||
|
|
||||||
|
[type="number"]::-webkit-inner-spin-button,
|
||||||
|
[type="number"]::-webkit-outer-spin-button {
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Correct the odd appearance in Chrome and Safari.
|
||||||
|
* 2. Correct the outline style in Safari.
|
||||||
|
*/
|
||||||
|
|
||||||
|
[type="search"] {
|
||||||
|
-webkit-appearance: textfield;
|
||||||
|
/* 1 */
|
||||||
|
outline-offset: -2px;
|
||||||
|
/* 2 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the inner padding in Chrome and Safari on macOS.
|
||||||
|
*/
|
||||||
|
|
||||||
|
[type="search"]::-webkit-search-decoration {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Correct the inability to style clickable types in iOS and Safari.
|
||||||
|
* 2. Change font properties to `inherit` in Safari.
|
||||||
|
*/
|
||||||
|
|
||||||
|
::-webkit-file-upload-button {
|
||||||
|
-webkit-appearance: button;
|
||||||
|
/* 1 */
|
||||||
|
font: inherit;
|
||||||
|
/* 2 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Interactive
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Add the correct display in Edge, IE 10+, and Firefox.
|
||||||
|
*/
|
||||||
|
|
||||||
|
details {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Add the correct display in all browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
summary {
|
||||||
|
display: list-item;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Misc
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the correct display in IE 10+.
|
||||||
|
*/
|
||||||
|
|
||||||
|
template {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the correct display in IE 10.
|
||||||
|
*/
|
||||||
|
|
||||||
|
[hidden] {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
401
site/styles/sakura-vars.css
Executable file
401
site/styles/sakura-vars.css
Executable file
@@ -0,0 +1,401 @@
|
|||||||
|
/* Sakura.css v1.5.0
|
||||||
|
* ================
|
||||||
|
* Minimal css theme.
|
||||||
|
* Project: https://github.com/oxalorg/sakura/
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* data-theme="taiyō" */
|
||||||
|
:root {
|
||||||
|
--blossom: #292722;
|
||||||
|
--fade: #7d7768;
|
||||||
|
--bg: #ffecec;
|
||||||
|
--bg-alt: #ffecec;
|
||||||
|
--text: #292222;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme="iron goddess"] {
|
||||||
|
--blossom: #424b51;
|
||||||
|
--fade: #64707a;
|
||||||
|
--bg: #fff2e2;
|
||||||
|
--bg-alt: #fffce2;
|
||||||
|
--text: #2c2923;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme="main sequence"] {
|
||||||
|
--blossom: #3a5425;
|
||||||
|
--fade: #698650;
|
||||||
|
--bg: #fffde5;
|
||||||
|
--bg-alt: #fff4e5;
|
||||||
|
--text: #5e592a;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme="sorcery"] {
|
||||||
|
--blossom: #5a5a69;
|
||||||
|
--fade: #868698;
|
||||||
|
--bg: #e5f4e5;
|
||||||
|
--bg-alt: #e6f4e6;
|
||||||
|
--text: #323932;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme="cirrus"] {
|
||||||
|
--blossom: #565a4b;
|
||||||
|
--fade: #9da587;
|
||||||
|
--bg: #e5f6fa;
|
||||||
|
--bg-alt: #e5f6fa;
|
||||||
|
--text: #31393b;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme="oxygen"] {
|
||||||
|
--blossom: #162011;
|
||||||
|
--fade: #343932;
|
||||||
|
--bg: #e1e2e4;
|
||||||
|
--bg-alt: #e3e0e3;
|
||||||
|
--text: #27282c;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme="dauphin"] {
|
||||||
|
--blossom: #171e1c;
|
||||||
|
--fade: #485b58;
|
||||||
|
--bg: #ebe5f8;
|
||||||
|
--bg-alt: #ebe5f8;
|
||||||
|
--text: #1c1a20;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme="diamond-burned"] {
|
||||||
|
--blossom: #0f0d0b;
|
||||||
|
--fade: #4d4743;
|
||||||
|
--bg: #f8ebf2;
|
||||||
|
--bg-alt: #ebe8f4;
|
||||||
|
--text: #3e363a;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme="chi"] {
|
||||||
|
--blossom: #908975;
|
||||||
|
--fade: #fff8e5;
|
||||||
|
--bg: #110c0c;
|
||||||
|
--bg-alt: #0a090c;
|
||||||
|
--text: #cfa9a9;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme="darjeeling"] {
|
||||||
|
--blossom: #ba949c;
|
||||||
|
--fade: #f8e1e6;
|
||||||
|
--bg: #1c160d;
|
||||||
|
--bg-alt: #1c160d;
|
||||||
|
--text: #c9b9a0;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme="subgiant"] {
|
||||||
|
--blossom: #9fad8a;
|
||||||
|
--fade: #e8f2d7;
|
||||||
|
--bg: #16130b;
|
||||||
|
--bg-alt: #16130b;
|
||||||
|
--text: #bbb396;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme="goblin"] {
|
||||||
|
--blossom: #7a808e;
|
||||||
|
--fade: #dae1ef;
|
||||||
|
--bg: #070905;
|
||||||
|
--bg-alt: #0a0906;
|
||||||
|
--text: #acbd9f;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme="altostratus"] {
|
||||||
|
--blossom: #a8a0b7;
|
||||||
|
--fade: #e5dbf7;
|
||||||
|
--bg: #0c0f0f;
|
||||||
|
--bg-alt: #1a1614;
|
||||||
|
--text: #8da4a4;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme="silicon"] {
|
||||||
|
--blossom: #717f63;
|
||||||
|
--fade: #c4d4b3;
|
||||||
|
--bg: #050a0f;
|
||||||
|
--bg-alt: #050a0f;
|
||||||
|
--text: #838e9a;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme="imperator"] {
|
||||||
|
--blossom: #93a0a3;
|
||||||
|
--fade: #f3fbfd;
|
||||||
|
--bg: #0e0c12;
|
||||||
|
--bg-alt: #0e0c12;
|
||||||
|
--text: #a8a1b1;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme="mædi"] {
|
||||||
|
--blossom: #ccd3b6;
|
||||||
|
--fade: #fdfbf3;
|
||||||
|
--bg: #10090f;
|
||||||
|
--bg-alt: #2f282e;
|
||||||
|
--text: #9e889a;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Body */
|
||||||
|
html {
|
||||||
|
font-size: 62.5%;
|
||||||
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-size: 1.8rem;
|
||||||
|
line-height: 1.618;
|
||||||
|
max-width: 38em;
|
||||||
|
margin: auto;
|
||||||
|
color: var(--text);
|
||||||
|
background-color: var(--bg);
|
||||||
|
padding: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 684px) {
|
||||||
|
body {
|
||||||
|
font-size: 1.53rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 382px) {
|
||||||
|
body {
|
||||||
|
font-size: 1.35rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6 {
|
||||||
|
line-height: 1.1;
|
||||||
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
|
||||||
|
font-weight: 700;
|
||||||
|
margin-top: 3rem;
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
overflow-wrap: break-word;
|
||||||
|
word-wrap: break-word;
|
||||||
|
-ms-word-break: break-all;
|
||||||
|
word-break: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 2.35em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 1.75em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
font-size: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h5 {
|
||||||
|
font-size: 1.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h6 {
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin-top: 0px;
|
||||||
|
margin-bottom: 2.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
small,
|
||||||
|
sub,
|
||||||
|
sup {
|
||||||
|
font-size: 75%;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
border-color: var(--blossom);
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: var(--blossom);
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
color: var(--fade);
|
||||||
|
border-bottom: 2px solid var(--text);
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
padding-left: 1.4em;
|
||||||
|
margin-top: 0px;
|
||||||
|
margin-bottom: 2.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
margin-bottom: 0.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
margin-left: 0px;
|
||||||
|
margin-right: 0px;
|
||||||
|
padding-left: 1em;
|
||||||
|
padding-top: 0.8em;
|
||||||
|
padding-bottom: 0.8em;
|
||||||
|
padding-right: 0.8em;
|
||||||
|
border-left: 5px solid var(--blossom);
|
||||||
|
margin-bottom: 2.5rem;
|
||||||
|
background-color: var(--bg-alt);
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote p {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
img,
|
||||||
|
video {
|
||||||
|
height: auto;
|
||||||
|
max-width: 100%;
|
||||||
|
margin-top: 0px;
|
||||||
|
margin-bottom: 2.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Pre and Code */
|
||||||
|
pre {
|
||||||
|
background-color: var(--bg-alt);
|
||||||
|
display: block;
|
||||||
|
padding: 1em;
|
||||||
|
overflow-x: auto;
|
||||||
|
margin-top: 0px;
|
||||||
|
margin-bottom: 2.5rem;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
code,
|
||||||
|
kbd,
|
||||||
|
samp {
|
||||||
|
font-size: 0.9em;
|
||||||
|
padding: 0 0.5em;
|
||||||
|
background-color: var(--bg-alt);
|
||||||
|
white-space: pre-wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre>code {
|
||||||
|
padding: 0;
|
||||||
|
background-color: transparent;
|
||||||
|
white-space: pre;
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Tables */
|
||||||
|
table {
|
||||||
|
text-align: justify;
|
||||||
|
width: 100%;
|
||||||
|
border-collapse: collapse;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
td,
|
||||||
|
th {
|
||||||
|
padding: 0.5em;
|
||||||
|
border-bottom: 1px solid var(--bg-alt);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Buttons, forms and input */
|
||||||
|
input,
|
||||||
|
textarea {
|
||||||
|
border: 1px solid var(--text);
|
||||||
|
}
|
||||||
|
|
||||||
|
input:focus,
|
||||||
|
textarea:focus {
|
||||||
|
border: 1px solid var(--blossom);
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button,
|
||||||
|
button,
|
||||||
|
input[type=submit],
|
||||||
|
input[type=reset],
|
||||||
|
input[type=button],
|
||||||
|
input[type=file]::file-selector-button {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 5px 10px;
|
||||||
|
text-align: center;
|
||||||
|
text-decoration: none;
|
||||||
|
white-space: nowrap;
|
||||||
|
background-color: var(--blossom);
|
||||||
|
color: var(--bg);
|
||||||
|
border-radius: 1px;
|
||||||
|
border: 1px solid var(--blossom);
|
||||||
|
cursor: pointer;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button[disabled],
|
||||||
|
button[disabled],
|
||||||
|
input[type=submit][disabled],
|
||||||
|
input[type=reset][disabled],
|
||||||
|
input[type=button][disabled],
|
||||||
|
input[type=file]::file-selector-button[disabled] {
|
||||||
|
cursor: default;
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button:hover,
|
||||||
|
button:hover,
|
||||||
|
input[type=submit]:hover,
|
||||||
|
input[type=reset]:hover,
|
||||||
|
input[type=button]:hover,
|
||||||
|
input[type=file]::file-selector-button:hover {
|
||||||
|
background-color: var(--fade);
|
||||||
|
color: var(--bg);
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button:focus-visible,
|
||||||
|
button:focus-visible,
|
||||||
|
input[type=submit]:focus-visible,
|
||||||
|
input[type=reset]:focus-visible,
|
||||||
|
input[type=button]:focus-visible,
|
||||||
|
input[type=file]::file-selector-button:focus-visible {
|
||||||
|
outline-style: solid;
|
||||||
|
outline-width: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea,
|
||||||
|
select,
|
||||||
|
input {
|
||||||
|
color: var(--text);
|
||||||
|
padding: 6px 10px;
|
||||||
|
/* The 6px vertically centers text on FF, ignored by Webkit */
|
||||||
|
margin-bottom: 10px;
|
||||||
|
background-color: var(--bg-alt);
|
||||||
|
border: 1px solid var(--bg-alt);
|
||||||
|
border-radius: 4px;
|
||||||
|
box-shadow: none;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea:focus,
|
||||||
|
select:focus,
|
||||||
|
input:focus {
|
||||||
|
border: 1px solid var(--blossom);
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type=checkbox]:focus {
|
||||||
|
outline: 1px dotted var(--blossom);
|
||||||
|
}
|
||||||
|
|
||||||
|
label,
|
||||||
|
legend,
|
||||||
|
fieldset {
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
3
tsconfig.json
Normal file
3
tsconfig.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"extends": "astro/tsconfigs/strictest"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user