init
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
<script setup lang="ts">
|
||||
import "@3ba/styles";
|
||||
import { AeroThemeProvider, AeroSky, Card, Btn } from "@3ba/vue";
|
||||
import Navbar from "../components/Navbar.vue"
|
||||
import Countdown from "../components/Countdown.vue";
|
||||
import BirthdayAlert from "../components/BirthdayAlert.vue";
|
||||
import Footer from "../components/Footer.vue";
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div :style="{ minHeight: '100vh', padding: '32px', }">
|
||||
<div style="display: flex; flex-direction: column; gap: 20px;">
|
||||
<Navbar :active="1"></Navbar>
|
||||
<Card>
|
||||
<BirthdayAlert></BirthdayAlert>
|
||||
</Card>
|
||||
<Card>
|
||||
<BirthdayAlert :day="false"></BirthdayAlert>
|
||||
</Card>
|
||||
<Card>
|
||||
<h1>Következő éjfélig hátralévő idő:</h1>
|
||||
<Countdown></Countdown>
|
||||
</Card>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</template>
|
||||
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,78 @@
|
||||
<script setup lang="ts">
|
||||
|
||||
import { AeroThemeProvider, AeroSky, Card, Btn } from "@3ba/vue";
|
||||
import Navbar from "../components/Navbar.vue";
|
||||
import "@3ba/styles";
|
||||
import Footer from "../components/Footer.vue";
|
||||
</script>
|
||||
<template>
|
||||
<div :style="{ minHeight: '100vh', padding: '32px', }">
|
||||
<div style="display: flex; flex-direction: column; gap: 20px;">
|
||||
<Navbar :active="0"></Navbar>
|
||||
<Card>
|
||||
<h2>Mi ez az oldal?</h2>
|
||||
<div style="text-align: left;">
|
||||
Ez az oldal megmondja melyik szobába kell menni éjfélkor szülinapot ünnepelni. Ha nem tudod melyik intézményről van szó, akkor valószínűleg rossz helyen jársz.
|
||||
</div>
|
||||
<h2>Miért ilyen ocsmány?</h2>
|
||||
<div style="text-align: left;">
|
||||
Azért, mert próbálkoztam a Vue frontend frameworkkel a vicc kedvéért és nagyon megkedveltem a <a href="https://frutigeraeroarchive.org/" target="_blank">Frutiger Aero</a> stílust.
|
||||
</div>
|
||||
<h2>Mi az a csúnya szó?</h2>
|
||||
<div style="text-align: left;">
|
||||
A Kréta forráskód szivárogtatásában talált, méltán híres <a href="https://github.com/HexadecimalHUN/DirtyWords/blob/main/DirtyWords.xml">dirtywords.xml</a>-ből random generált kifejezések
|
||||
</div>
|
||||
<h2>Credit?</h2>
|
||||
<div style="text-align: left;">
|
||||
A Vue komponensek nagy része <a href="https://github.com/3ba/aero">ezen a Github repo</a>-n alapszik, szóval nagy köszönet bárki is csinálta.
|
||||
</div>
|
||||
<h2>Licence?</h2>
|
||||
<div style="text-align: left;">
|
||||
This is a non-commercial website, with no plans to ever become one. That should cover my ass for the font and the background image(s) I think.
|
||||
</div>
|
||||
</Card>
|
||||
<Card>
|
||||
<h2>Elérhetőségek/contact</h2>
|
||||
<ul style="text-align: left; font-size: 1.2rem;">
|
||||
<li>- Élőben 734 (nyáron, remélem nem felejtem ezt el frissíteni)</li>
|
||||
<li>- <a href="mailto:peter@sc0tt.org">peter@sc0tt.org</a></li>
|
||||
</ul>
|
||||
</Card>
|
||||
<Card>
|
||||
<div>
|
||||
Csúnya szó: {{ DirtyWord }}
|
||||
</div>
|
||||
</Card>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import axios from 'axios';
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
DirtyWord: '',
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
axios
|
||||
.get('https://scapi.sc0tt.org/dirtywords')
|
||||
.then(response => {
|
||||
this.DirtyWord = response.data.dirty;
|
||||
});
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
a {
|
||||
color: blue;
|
||||
text-decoration: underline;
|
||||
}
|
||||
a.visited {
|
||||
color: purple;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,24 @@
|
||||
<script setup lang="ts">
|
||||
|
||||
import { AeroThemeProvider, AeroSky, Card, Btn } from "@3ba/vue";
|
||||
import Navbar from "../components/Navbar.vue";
|
||||
import "@3ba/styles";
|
||||
import Footer from "../components/Footer.vue";
|
||||
import News from "../components/News.vue";
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div :style="{ minHeight: '100vh', padding: '32px', }">
|
||||
<div style="display: flex; flex-direction: column; gap: 20px;">
|
||||
<Navbar :active="2"></Navbar>
|
||||
<Card>
|
||||
<News important></News>
|
||||
</Card>
|
||||
<Card>
|
||||
<News info></News>
|
||||
</Card>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
@@ -0,0 +1,81 @@
|
||||
<script setup lang="ts">
|
||||
import { ref } from "vue";
|
||||
import {
|
||||
AeroThemeProvider,
|
||||
AeroSky,
|
||||
Navbar,
|
||||
ThemeSwitcher,
|
||||
Card,
|
||||
Stat,
|
||||
Btn,
|
||||
Toggle,
|
||||
Slider,
|
||||
Select,
|
||||
Badge,
|
||||
Progress,
|
||||
Tabs,
|
||||
Alert,
|
||||
Toast,
|
||||
MediaPlayer,
|
||||
Stack,
|
||||
SectionLabel,
|
||||
} from "@3ba/vue";
|
||||
import type { AeroThemeSetting } from "@3ba/vue";
|
||||
|
||||
const theme = ref<AeroThemeSetting>("morning");
|
||||
const bubbles = ref(true);
|
||||
const volume = ref(64);
|
||||
const tab = ref(0);
|
||||
const scene = ref("Lagoon");
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<AeroThemeProvider :theme="theme" :bubbles="bubbles">
|
||||
<AeroSky :style="{ minHeight: '100vh', padding: '28px 22px', boxSizing: 'border-box' }">
|
||||
<div :style="{ maxWidth: '980px', margin: '0 auto', display: 'grid', gap: '22px' }">
|
||||
<Navbar />
|
||||
|
||||
<Stack row wrap justify="space-between" align="center" :gap="16">
|
||||
<div>
|
||||
<SectionLabel>Frutiger Aero · Vue</SectionLabel>
|
||||
<h1 class="aero-text-shadow" :style="{ margin: '6px 0 0', fontWeight: 300, fontSize: '34px' }">A sky for every hour</h1>
|
||||
</div>
|
||||
<ThemeSwitcher v-model="theme" />
|
||||
</Stack>
|
||||
|
||||
<Stack row wrap :gap="16">
|
||||
<Stat label="Visitors" value="12.4k" delta="8%" glyph="☀" />
|
||||
<Stat label="Signups" value="1,208" delta="3%" glyph="✦" />
|
||||
<Stat label="Bounce" value="22%" delta="1%" :up="false" glyph="↯" />
|
||||
</Stack>
|
||||
|
||||
<div :style="{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(300px, 1fr))', gap: '16px' }">
|
||||
<Card title="Controls" subtitle="Everything recolors with the theme">
|
||||
<Stack :gap="16">
|
||||
<Toggle v-model="bubbles" label="Drifting bubbles" />
|
||||
<Slider v-model="volume" label="Volume" show-value unit="%" />
|
||||
<Select v-model="scene" :options="['Lagoon', 'Meadow', 'Aurora', 'Twilight']" />
|
||||
<Stack row :gap="10" wrap>
|
||||
<Btn variant="primary">Primary</Btn>
|
||||
<Btn variant="positive">Positive</Btn>
|
||||
<Btn variant="ghost">Ghost</Btn>
|
||||
<Badge tone="accent" dot>Live</Badge>
|
||||
</Stack>
|
||||
</Stack>
|
||||
</Card>
|
||||
|
||||
<Card title="Status" subtitle="Feedback surfaces">
|
||||
<Stack :gap="14">
|
||||
<Tabs v-model="tab" :items="['Overview', 'Activity', 'Alerts']" />
|
||||
<Progress :value="volume" label="Sync" />
|
||||
<Alert tone="success" title="All systems nominal">The sky is clear and the bubbles are rising.</Alert>
|
||||
<Toast title="Saved to the cloud" body="Your changes are floating safely." action="Undo" />
|
||||
</Stack>
|
||||
</Card>
|
||||
</div>
|
||||
|
||||
<MediaPlayer :at="volume" />
|
||||
</div>
|
||||
</AeroSky>
|
||||
</AeroThemeProvider>
|
||||
</template>
|
||||
Reference in New Issue
Block a user