Rebuilt littlefoxsoftware.xyz in Nuxt for testing.

This commit is contained in:
Colton Deaton
2026-06-06 21:38:57 -05:00
parent c6be62a36c
commit 5d3010decf
10 changed files with 388 additions and 6 deletions
+57 -1
View File
@@ -1,3 +1,59 @@
<template>
<NuxtPage />
<main class="flex flex-col min-h-screen">
<header class="flex flex-row items-center p-8 gap-4 bg-base-100 shadow-xl">
<img class="w-1/5" src="~/assets/images/h_lfs_white.svg" alt="Little Fox Software" />
<input v-model="regex" class="input grow" type="text" placeholder="Search..." />
<button class="btn btn-ghost" @click="sortApps">
<ArrowDownAzIcon v-if="sort === 'AZ'" />
<ArrowDownZaIcon v-else />
</button>
</header>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 p-4 bg-base-200 grow">
<a v-for="app in filtered_apps"
class="card content-center items-center bg-base-100 saturate-0 hover:scale-102 hover:saturate-100 transition-all h-fit p-4"
:href="app.link">
<h3 class="card-title">{{ app.name }}</h3>
<img class="card-side" :src="app.img" />
</a>
</div>
<footer class="text-xs flex flex-col items-center p-4">
<p>Built by <a class="link" href="https://littlefoxsoftware.com" target="_blank">Little Fox Software</a></p>
<p>with <a class="link" href="https://nuxt.com" target="_blank">Nuxt</a> and <a class="link" href="https://daisyui.com" target="_blank">DaisyUI</a> </p>
</footer>
</main>
</template>
<script lang=ts setup>
import { ArrowDownAzIcon, ArrowDownZaIcon } from '@lucide/vue';
useHead({
htmlAttrs: { 'data-theme': 'halloween' }
})
const regex = ref('');
const sort = ref('AZ');
const apps = [
{ name: 'Gitea', link: 'https://git.littlefoxsoftware.xyz', img: '_nuxt/assets/images/gitea.png' },
{ name: 'Listmonk', link: 'https://newsletter.littlefoxsoftware.xyz', img: '_nuxt/assets/images/listmonk.png' },
{ name: 'Nextcloud', link: 'https://cloud.littlefoxsoftware.xyz', img: '_nuxt/assets/images/nextcloud.png' },
];
const filtered_apps = computed(() => searchApps());
function sortApps() {
if (sort.value === 'ZA') {
sort.value = 'AZ';
apps.sort((a, b) => a.name.toLocaleLowerCase().localeCompare(b.name));
} else {
sort.value = 'ZA';
apps.sort((a, b) => b.name.toLocaleLowerCase().localeCompare(a.name));
}
}
function searchApps() {
if (regex.value.length >= 3) {
return apps.filter(app => app.name.toLowerCase().includes(regex.value));
} else {
return apps;
}
}
</script>
+3 -1
View File
@@ -1,2 +1,4 @@
@import 'tailwindcss';
@plugin 'daisyui';
@plugin 'daisyui' {
themes: halloween --default;
};
Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1023 KiB

-2
View File
@@ -1,2 +0,0 @@
<template>
</template>
+3
View File
@@ -5,6 +5,7 @@
"": {
"name": "nuxt-daisyui-template",
"dependencies": {
"@lucide/vue": "^1.17.0",
"@tailwindcss/vite": "^4.3.0",
"daisyui": "^5.5.20",
"nuxt": "^4.4.7",
@@ -161,6 +162,8 @@
"@kwsites/promise-deferred": ["@kwsites/promise-deferred@1.1.1", "", {}, "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw=="],
"@lucide/vue": ["@lucide/vue@1.17.0", "", { "peerDependencies": { "vue": ">=3.0.1" } }, "sha512-6Q1ZHgr5FbmJzKWe5BxlNdjLj2lbmuH1zwDtVzUJofX0w9UREwKgq4F4jwKqFYyyIS4Rj3FiJvDi2k6djukmmw=="],
"@mapbox/node-pre-gyp": ["@mapbox/node-pre-gyp@2.0.3", "", { "dependencies": { "consola": "^3.2.3", "detect-libc": "^2.0.0", "https-proxy-agent": "^7.0.5", "node-fetch": "^2.6.7", "nopt": "^8.0.0", "semver": "^7.5.3", "tar": "^7.4.0" }, "bin": { "node-pre-gyp": "bin/node-pre-gyp" } }, "sha512-uwPAhccfFJlsfCxMYTwOdVfOz3xqyj8xYL3zJj8f0pb30tLohnnFPhLuqp4/qoEz8sNxe4SESZedcBojRefIzg=="],
"@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.4", "", { "dependencies": { "@tybys/wasm-util": "^0.10.1" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" } }, "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow=="],
+1 -1
View File
@@ -3,7 +3,7 @@ import tailwindcss from "@tailwindcss/vite";
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
compatibilityDate: '2025-07-15',
devtools: { enabled: true },
devtools: { enabled: false },
css: ['~/assets/css/main.css'],
vite: {
plugins: [tailwindcss()],
+2 -1
View File
@@ -1,5 +1,5 @@
{
"name": "nuxt-daisyui-template",
"name": "littlefoxsoftware_xyz",
"version": "1.0.0",
"type": "module",
"private": true,
@@ -11,6 +11,7 @@
"postinstall": "nuxt prepare"
},
"dependencies": {
"@lucide/vue": "^1.17.0",
"@tailwindcss/vite": "^4.3.0",
"daisyui": "^5.5.20",
"nuxt": "^4.4.7",