diff --git a/.gitignore b/.gitignore index c449454..11ba6f7 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,9 @@ .idea/** node_modules node_modules/** +**/node_modules +**/node_modules/** /*.patch +/packages/interests/dist/ +/packages/host/dist/ +/packages/software-eng/dist/ diff --git a/packages/host/.eslintrc.cjs b/packages/host/.eslintrc.cjs index af504c2..77cf7a3 100644 --- a/packages/host/.eslintrc.cjs +++ b/packages/host/.eslintrc.cjs @@ -6,52 +6,52 @@ module.exports = { node: true, }, extends: [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended", - "plugin:qwik/recommended", - "plugin:astro/recommended", + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:qwik/recommended', + 'plugin:astro/recommended', ], - parser: "@typescript-eslint/parser", + parser: '@typescript-eslint/parser', parserOptions: { tsconfigRootDir: __dirname, - project: ["./tsconfig.json"], + project: ['./tsconfig.json'], ecmaVersion: 2021, - sourceType: "module", + sourceType: 'module', ecmaFeatures: { jsx: true, }, }, - plugins: ["@typescript-eslint"], + plugins: ['@typescript-eslint'], rules: { - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/explicit-module-boundary-types": "off", - "@typescript-eslint/no-inferrable-types": "off", - "@typescript-eslint/no-non-null-assertion": "off", - "@typescript-eslint/no-empty-interface": "off", - "@typescript-eslint/no-namespace": "off", - "@typescript-eslint/no-empty-function": "off", - "@typescript-eslint/no-this-alias": "off", - "@typescript-eslint/ban-types": "off", - "@typescript-eslint/ban-ts-comment": "off", - "prefer-spread": "off", - "no-case-declarations": "off", - "no-console": "off", - "@typescript-eslint/no-unused-vars": ["error"], - "@typescript-eslint/consistent-type-imports": "warn", - "@typescript-eslint/no-unnecessary-condition": "off", + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-inferrable-types': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/no-empty-interface': 'off', + '@typescript-eslint/no-namespace': 'off', + '@typescript-eslint/no-empty-function': 'off', + '@typescript-eslint/no-this-alias': 'off', + '@typescript-eslint/ban-types': 'off', + '@typescript-eslint/ban-ts-comment': 'off', + 'prefer-spread': 'off', + 'no-case-declarations': 'off', + 'no-console': 'off', + '@typescript-eslint/no-unused-vars': ['error'], + '@typescript-eslint/consistent-type-imports': 'warn', + '@typescript-eslint/no-unnecessary-condition': 'off', }, overrides: [ { // Define the configuration for `.astro` file. - files: ["*.astro"], - processor: "astro/client-side-ts", // <- Uses the "client-side-ts" processor. + files: ['*.astro'], + processor: 'astro/client-side-ts', // <- Uses the "client-side-ts" processor. // Allows Astro components to be parsed. - parser: "astro-eslint-parser", + parser: 'astro-eslint-parser', // Parse the script in `.astro` as TypeScript by adding the following configuration. // It's the setting you need when using TypeScript. parserOptions: { - parser: "@typescript-eslint/parser", - extraFileExtensions: [".astro"], + parser: '@typescript-eslint/parser', + extraFileExtensions: ['.astro'], }, rules: { // override/add rules settings here, such as: @@ -60,4 +60,4 @@ module.exports = { }, // ... ], -}; +} diff --git a/packages/host/astro.config.ts b/packages/host/astro.config.ts index a7abc24..82ee8ce 100644 --- a/packages/host/astro.config.ts +++ b/packages/host/astro.config.ts @@ -1,22 +1,22 @@ -import qwik from "@qwikdev/astro"; -import { defineConfig } from "astro/config"; +import qwik from '@qwikdev/astro' +import { defineConfig } from 'astro/config' // import node from "@astrojs/node"; -import tailwind from "@astrojs/tailwind"; -import svelte from "@astrojs/svelte"; -import solidJs from "@astrojs/solid-js"; -import compressor from "astro-compressor"; -import sitemap from "@astrojs/sitemap"; -import robotsTxt from "astro-robots-txt"; +import tailwind from '@astrojs/tailwind' +import svelte from '@astrojs/svelte' +import solidJs from '@astrojs/solid-js' +import compressor from 'astro-compressor' +import sitemap from '@astrojs/sitemap' +import robotsTxt from 'astro-robots-txt' -import mdx from "@astrojs/mdx"; +import mdx from '@astrojs/mdx' // https://astro.build/config export default defineConfig({ - output: "static", + output: 'static', devToolbar: { enabled: false, }, - site: "https://nduartech.github.io", + site: 'https://nduartech.github.io', prefetch: { prefetchAll: true, }, @@ -26,28 +26,28 @@ export default defineConfig({ // }), integrations: [ qwik({ - include: "**/qwik/*", + include: '**/qwik/*', }), tailwind({ applyBaseStyles: false, }), svelte({ - include: "**/svelte/*", + include: '**/svelte/*', }), solidJs({ - include: "**/solid/*", + include: '**/solid/*', }), { - name: "importmap-externals", + name: 'importmap-externals', hooks: { - "astro:build:setup": ({ vite, target }) => { - if (target === "client") { + 'astro:build:setup': ({ vite, target }) => { + if (target === 'client') { if (vite.build && vite.build.rollupOptions) { - vite.build.rollupOptions["external"] = [ - "software-eng", - "interests", - "solid-js", - ]; + vite.build.rollupOptions['external'] = [ + 'software-eng', + 'interests', + 'solid-js', + ] } } }, @@ -58,4 +58,4 @@ export default defineConfig({ robotsTxt(), compressor(), ], -}); +}) diff --git a/packages/host/biome.json b/packages/host/biome.json new file mode 100644 index 0000000..51f3007 --- /dev/null +++ b/packages/host/biome.json @@ -0,0 +1,219 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.8.3/schema.json", + "formatter": { + "enabled": true, + "formatWithErrors": false, + "indentStyle": "space", + "indentWidth": 2, + "lineEnding": "lf", + "lineWidth": 80, + "attributePosition": "auto", + "ignore": [ + "**/*.log", + "**/.DS_Store", + "**/*.", + ".vscode/settings.json", + "**/.history", + "**/.yarn", + "**/bazel-*", + "**/bazel-bin", + "**/bazel-out", + "**/bazel-qwik", + "**/bazel-testlogs", + "**/dist", + "**/dist-dev", + "**/lib", + "**/lib-types", + "**/etc", + "**/external", + "**/node_modules", + "**/temp", + "**/tsc-out", + "**/tsdoc-metadata.json", + "**/target", + "**/output", + "**/rollup.config.js", + "**/build", + "**/.cache", + "**/.vscode", + "**/.rollup.cache", + "**/tsconfig.tsbuildinfo", + "**/vite.config.ts", + "**/*.spec.tsx", + "**/*.spec.ts", + "**/.netlify", + "**/pnpm-lock.yaml", + "**/package-lock.json", + "**/yarn.lock" + ] + }, + "organizeImports": { "enabled": true }, + "linter": { + "enabled": true, + "rules": { + "recommended": false, + "complexity": { + "noBannedTypes": "off", + "noExtraBooleanCast": "error", + "noMultipleSpacesInRegularExpressionLiterals": "error", + "noUselessCatch": "error", + "noUselessThisAlias": "off", + "noUselessTypeConstraint": "error", + "noWith": "error" + }, + "correctness": { + "noConstAssign": "error", + "noConstantCondition": "error", + "noEmptyCharacterClassInRegex": "error", + "noEmptyPattern": "error", + "noGlobalObjectCalls": "error", + "noInnerDeclarations": "error", + "noInvalidConstructorSuper": "error", + "noNewSymbol": "error", + "noNonoctalDecimalEscape": "error", + "noPrecisionLoss": "error", + "noSelfAssign": "error", + "noSetterReturn": "error", + "noSwitchDeclarations": "off", + "noUndeclaredVariables": "error", + "noUnreachable": "error", + "noUnreachableSuper": "error", + "noUnsafeFinally": "error", + "noUnsafeOptionalChaining": "error", + "noUnusedLabels": "error", + "noUnusedVariables": "warn", + "useArrayLiterals": "off", + "useIsNan": "error", + "useValidForDirection": "error", + "useYield": "error" + }, + "style": { + "noInferrableTypes": "off", + "noNamespace": "off", + "noNonNullAssertion": "off", + "useAsConstAssertion": "error", + "useImportType": "warn" + }, + "suspicious": { + "noAssignInExpressions": "error", + "noAsyncPromiseExecutor": "error", + "noCatchAssign": "error", + "noClassAssign": "error", + "noCompareNegZero": "error", + "noConsoleLog": "off", + "noControlCharactersInRegex": "error", + "noDebugger": "error", + "noDuplicateCase": "error", + "noDuplicateClassMembers": "error", + "noDuplicateObjectKeys": "error", + "noDuplicateParameters": "error", + "noEmptyBlockStatements": "error", + "noEmptyInterface": "off", + "noExplicitAny": "off", + "noExtraNonNullAssertion": "error", + "noFallthroughSwitchClause": "error", + "noFunctionAssign": "error", + "noGlobalAssign": "error", + "noImportAssign": "error", + "noMisleadingCharacterClass": "error", + "noMisleadingInstantiator": "error", + "noPrototypeBuiltins": "error", + "noRedeclare": "error", + "noShadowRestrictedNames": "error", + "noUnsafeDeclarationMerging": "error", + "noUnsafeNegation": "error", + "useGetterReturn": "error", + "useValidTypeof": "error" + } + }, + "ignore": [ + "**/*.log", + "**/.DS_Store", + "**/*.", + ".vscode/settings.json", + "**/.history", + "**/.yarn", + "**/bazel-*", + "**/bazel-bin", + "**/bazel-out", + "**/bazel-qwik", + "**/bazel-testlogs", + "**/dist", + "**/dist-dev", + "**/lib", + "**/lib-types", + "**/etc", + "**/external", + "**/node_modules", + "**/temp", + "**/tsc-out", + "**/tsdoc-metadata.json", + "**/target", + "**/output", + "**/rollup.config.js", + "**/build", + "**/.cache", + "**/.vscode", + "**/.rollup.cache", + "**/tsconfig.tsbuildinfo", + "**/vite.config.ts", + "**/*.spec.tsx", + "**/*.spec.ts", + "**/.netlify", + "**/pnpm-lock.yaml", + "**/package-lock.json", + "**/yarn.lock", + "**/svelte.config.js", + "tmp*/**" + ] + }, + "javascript": { + "formatter": { + "jsxQuoteStyle": "double", + "quoteProperties": "asNeeded", + "trailingCommas": "all", + "semicolons": "asNeeded", + "arrowParentheses": "always", + "bracketSpacing": true, + "bracketSameLine": false, + "quoteStyle": "single", + "attributePosition": "auto" + } + }, + "overrides": [ + { "include": ["*.astro"] }, + { + "include": ["*.ts", "*.tsx", "*.mts", "*.cts"], + "linter": { + "rules": { + "correctness": { + "noConstAssign": "off", + "noGlobalObjectCalls": "off", + "noInvalidConstructorSuper": "off", + "noInvalidNewBuiltin": "off", + "noNewSymbol": "off", + "noSetterReturn": "off", + "noUndeclaredVariables": "off", + "noUnreachable": "off", + "noUnreachableSuper": "off" + }, + "style": { + "noArguments": "error", + "noVar": "error", + "useConst": "error" + }, + "suspicious": { + "noDuplicateClassMembers": "off", + "noDuplicateObjectKeys": "off", + "noDuplicateParameters": "off", + "noFunctionAssign": "off", + "noImportAssign": "off", + "noRedeclare": "off", + "noUnsafeNegation": "off", + "useGetterReturn": "off" + } + } + } + } + ] +} diff --git a/packages/host/package.json b/packages/host/package.json index 3df4578..648e22d 100644 --- a/packages/host/package.json +++ b/packages/host/package.json @@ -7,13 +7,13 @@ "sync": "astro sync", "build": "yarn fix && astro build", "check": "yarn check.fmt && yarn check.lint && astro check", - "check.fmt": "prettier --check .", - "check.lint": "eslint \"**/*.{js,jsx,ts,tsx,astro}\"", + "check.fmt": "biome check --write", + "check.lint": "biome check", "dev": "astro dev", "fix": "yarn lint && yarn fmt", - "fmt": "prettier --write .", - "lint": "eslint --fix \"**/*.{js,jsx,ts,tsx,astro}\"", - "lint.dry-run": "eslint --fix-dry-run \"**/*.{js,jsx,ts,tsx,astro}\"", + "fmt": "biome format --write", + "lint": "biome lint --write", + "lint.dry-run": "biome lint", "preview": "yarn build && yarn serve", "prod": "yarn check && astro build", "serve": "astro preview", @@ -40,6 +40,7 @@ "typescript": "^5.5.4" }, "devDependencies": { + "@biomejs/biome": "1.8.3", "@types/eslint": "^8.56.10", "@types/node": "^22.0.0", "@typescript-eslint/eslint-plugin": "^7.13.0", diff --git a/packages/host/postcss.config.cjs b/packages/host/postcss.config.cjs index 502e667..c1c711a 100644 --- a/packages/host/postcss.config.cjs +++ b/packages/host/postcss.config.cjs @@ -1,11 +1,11 @@ module.exports = { - purge: ["./index.html", "./src/**/*.{vue,js,ts,jsx,tsx,svelte,astro,md,mdx}"], + purge: ['./index.html', './src/**/*.{vue,js,ts,jsx,tsx,svelte,astro,md,mdx}'], plugins: { - "postcss-import": {}, + 'postcss-import': {}, tailwindcss: {}, autoprefixer: {}, - "postcss-sort-media-queries": { - sort: "desktop-first", + 'postcss-sort-media-queries': { + sort: 'desktop-first', }, }, -}; +} diff --git a/packages/host/prettier.config.cjs b/packages/host/prettier.config.cjs index efe19e8..30d85d7 100644 --- a/packages/host/prettier.config.cjs +++ b/packages/host/prettier.config.cjs @@ -1,12 +1,12 @@ /** @type {import("prettier").Config} */ module.default = { - plugins: ["prettier-plugin-astro"], - quoteProps: "consistent", + plugins: ['prettier-plugin-astro'], + quoteProps: 'consistent', bracketSpacing: true, - arrowParens: "always", + arrowParens: 'always', jsdocPreferCodeFences: true, tsdoc: true, - trailingComma: "es5", + trailingComma: 'es5', tabWidth: 2, semi: true, singleQuote: true, @@ -14,10 +14,10 @@ module.default = { useTabs: false, overrides: [ { - files: "*.astro", + files: '*.astro', options: { - parser: "astro", + parser: 'astro', }, }, ], -}; +} diff --git a/packages/host/src/components/qwik/nav.tsx b/packages/host/src/components/qwik/nav.tsx index 50ffe6e..188d3c6 100644 --- a/packages/host/src/components/qwik/nav.tsx +++ b/packages/host/src/components/qwik/nav.tsx @@ -4,53 +4,53 @@ import { useOnDocument, useSignal, useStyles$, -} from "@builder.io/qwik"; -import { NavButton } from "./navButton"; -import { isServer } from "@builder.io/qwik/build"; -import styles from "./nav.css?inline"; +} from '@builder.io/qwik' +import { NavButton } from './navButton' +import { isServer } from '@builder.io/qwik/build' +import styles from './nav.css?inline' interface NavProps { entries: { - icon: string; - label: string; - path: string; - }[]; + icon: string + label: string + path: string + }[] } export const Nav = component$((props: NavProps) => { - const navOpen = useSignal(false); + const navOpen = useSignal(false) const toggleNav = $(() => { setTimeout(() => { - navOpen.value = !navOpen.value; + navOpen.value = !navOpen.value setTimeout(() => { document - .querySelectorAll("svg.nav") - .forEach((svg) => svg.classList.add("active")); - }, 300); + .querySelectorAll('svg.nav') + .forEach((svg) => svg.classList.add('active')) + }, 300) setTimeout(() => { document - .querySelectorAll("p.navIconLabel") - .forEach((svg) => svg.classList.add("active")); - }, 300); - }, 300); - }); - useStyles$(styles); + .querySelectorAll('p.navIconLabel') + .forEach((svg) => svg.classList.add('active')) + }, 300) + }, 300) + }) + useStyles$(styles) useOnDocument( - "pageLoad", + 'pageLoad', $(() => { - if (isServer) return; + if (isServer) return setTimeout(() => { document - .querySelectorAll("svg.nav") - .forEach((svg) => svg.classList.add("active")); - }, 300); + .querySelectorAll('svg.nav') + .forEach((svg) => svg.classList.add('active')) + }, 300) setTimeout(() => { document - .querySelectorAll("p.navIconLabel") - .forEach((svg) => svg.classList.add("active")); - }, 300); + .querySelectorAll('p.navIconLabel') + .forEach((svg) => svg.classList.add('active')) + }, 300) }), - ); + ) return (
- ); -}); + ) +}) diff --git a/packages/host/src/components/qwik/navButton.tsx b/packages/host/src/components/qwik/navButton.tsx index f8fe9e4..83f3025 100644 --- a/packages/host/src/components/qwik/navButton.tsx +++ b/packages/host/src/components/qwik/navButton.tsx @@ -1,10 +1,10 @@ -import { $, component$ } from "@builder.io/qwik"; +import { $, component$ } from '@builder.io/qwik' export interface NavButtonProps { - path?: string; - onClick?: any; - icon: string; - label: string; + path?: string + onClick?: any + icon: string + label: string } export const NavButton = component$((props: NavButtonProps) => { @@ -17,8 +17,8 @@ export const NavButton = component$((props: NavButtonProps) => { props.icon + '" + '

' } > - ); -}); + ) +}) diff --git a/packages/host/src/components/qwik/theme.tsx b/packages/host/src/components/qwik/theme.tsx index 94094db..58ead81 100644 --- a/packages/host/src/components/qwik/theme.tsx +++ b/packages/host/src/components/qwik/theme.tsx @@ -1,59 +1,58 @@ -import { $, component$, useOnDocument } from "@builder.io/qwik"; -import { isServer } from "@builder.io/qwik/build"; +import { $, component$, useOnDocument } from '@builder.io/qwik' +import { isServer } from '@builder.io/qwik/build' export const Theme = component$(() => { useOnDocument( - "pageLoad", + 'pageLoad', $(() => { - if (isServer) return; - const theme = document.documentElement.className; - const sun = document.getElementById("dayNightSun"); - const moon = document.getElementById("dayNightMoon"); + if (isServer) return + const theme = document.documentElement.className + const sun = document.getElementById('dayNightSun') + const moon = document.getElementById('dayNightMoon') if (sun && moon) { - if (theme === "dark") { - document.documentElement.className = "dark"; - localStorage.setItem("theme", "dark"); - if (sun.classList.contains("hidden")) sun.classList.remove("hidden"); - sun.classList.add("active"); - if (!moon.classList.contains("hidden")) - moon.classList.contains("active") - ? moon.classList.replace("active", "hidden") - : moon.classList.add("hidden"); + if (theme === 'dark') { + document.documentElement.className = 'dark' + localStorage.setItem('theme', 'dark') + if (sun.classList.contains('hidden')) sun.classList.remove('hidden') + sun.classList.add('active') + if (!moon.classList.contains('hidden')) + moon.classList.contains('active') + ? moon.classList.replace('active', 'hidden') + : moon.classList.add('hidden') } else { - document.documentElement.className = "light"; - localStorage.setItem("theme", "light"); - if (moon.classList.contains("hidden")) - moon.classList.remove("hidden"); - moon.classList.add("active"); - if (!sun.classList.contains("hidden")) - sun.classList.contains("active") - ? sun.classList.replace("active", "hidden") - : sun.classList.add("hidden"); + document.documentElement.className = 'light' + localStorage.setItem('theme', 'light') + if (moon.classList.contains('hidden')) moon.classList.remove('hidden') + moon.classList.add('active') + if (!sun.classList.contains('hidden')) + sun.classList.contains('active') + ? sun.classList.replace('active', 'hidden') + : sun.classList.add('hidden') } } }), - ); + ) return (
{ - const theme = document.documentElement.className; - const sun = document.getElementById("dayNightSun"); - const moon = document.getElementById("dayNightMoon"); + const theme = document.documentElement.className + const sun = document.getElementById('dayNightSun') + const moon = document.getElementById('dayNightMoon') if (sun && moon) { - if (theme === "light") { - document.documentElement.className = "dark"; - localStorage.setItem("theme", "dark"); - sun.classList.remove("hidden"); - setTimeout(() => sun.classList.add("active"), 200); - moon.classList.replace("active", "hidden"); + if (theme === 'light') { + document.documentElement.className = 'dark' + localStorage.setItem('theme', 'dark') + sun.classList.remove('hidden') + setTimeout(() => sun.classList.add('active'), 200) + moon.classList.replace('active', 'hidden') } else { - document.documentElement.className = "light"; - localStorage.setItem("theme", "light"); - moon.classList.remove("hidden"); - setTimeout(() => moon.classList.add("active"), 200); - sun.classList.replace("active", "hidden"); + document.documentElement.className = 'light' + localStorage.setItem('theme', 'light') + moon.classList.remove('hidden') + setTimeout(() => moon.classList.add('active'), 200) + sun.classList.replace('active', 'hidden') } } }} @@ -160,5 +159,5 @@ export const Theme = component$(() => {
- ); -}); + ) +}) diff --git a/packages/host/src/components/solid/Interest.tsx b/packages/host/src/components/solid/Interest.tsx index 6e868da..3c8cfaa 100644 --- a/packages/host/src/components/solid/Interest.tsx +++ b/packages/host/src/components/solid/Interest.tsx @@ -1,14 +1,14 @@ /** @jsxImportSource solid-js */ // @ts-ignore -import App from "interests"; -import type { Component } from "solid-js"; +import App from 'interests' +import type { Component } from 'solid-js' const Interest: Component = (props: any) => { return ( <> - ); -}; + ) +} -export default Interest; +export default Interest diff --git a/packages/host/src/components/solid/SoftwareXP.tsx b/packages/host/src/components/solid/SoftwareXP.tsx index 5b378af..1cf61d9 100644 --- a/packages/host/src/components/solid/SoftwareXP.tsx +++ b/packages/host/src/components/solid/SoftwareXP.tsx @@ -1,14 +1,14 @@ /** @jsxImportSource solid-js */ // @ts-ignore -import App from "software-eng"; -import type { Component } from "solid-js"; +import App from 'software-eng' +import type { Component } from 'solid-js' const SoftwareXP: Component = (props: any) => { return ( <> - ); -}; + ) +} -export default SoftwareXP; +export default SoftwareXP diff --git a/packages/host/src/components/svelte/Landing.svelte b/packages/host/src/components/svelte/Landing.svelte index 6954898..3d16be7 100644 --- a/packages/host/src/components/svelte/Landing.svelte +++ b/packages/host/src/components/svelte/Landing.svelte @@ -1,70 +1,87 @@
+import '../.astro/types.d.ts' +import 'astro/client' diff --git a/packages/host/src/layouts/BlogLayout.astro b/packages/host/src/layouts/BlogLayout.astro index 9842ec6..d223995 100644 --- a/packages/host/src/layouts/BlogLayout.astro +++ b/packages/host/src/layouts/BlogLayout.astro @@ -1,9 +1,9 @@ --- -import {ViewTransitions} from 'astro:transitions'; -import "../styles/global.css"; -import {Nav} from '../components/qwik/nav'; -import {Theme} from '../components/qwik/theme'; -const {title, navProps} = Astro.props; +import { ViewTransitions } from 'astro:transitions' +import '../styles/global.css' +import { Nav } from '../components/qwik/nav' +import { Theme } from '../components/qwik/theme' +const { title, navProps } = Astro.props --- diff --git a/packages/host/src/layouts/BlogSubLayout.astro b/packages/host/src/layouts/BlogSubLayout.astro index 87419da..5e4c611 100644 --- a/packages/host/src/layouts/BlogSubLayout.astro +++ b/packages/host/src/layouts/BlogSubLayout.astro @@ -1,23 +1,23 @@ --- const fia = { - new: { - name: 'fadeIn', - duration: '0.5s', - easing: 'cubic-bezier(0.4, 0, 0.2, 1)', - fillMode: 'forwards', - }, - old: { - name: 'fadeOut', - duration: '0.5s', - easing: 'cubic-bezier(0.4, 0, 0.2, 1)', - fillMode: 'forwards' - } -}; + new: { + name: 'fadeIn', + duration: '0.5s', + easing: 'cubic-bezier(0.4, 0, 0.2, 1)', + fillMode: 'forwards', + }, + old: { + name: 'fadeOut', + duration: '0.5s', + easing: 'cubic-bezier(0.4, 0, 0.2, 1)', + fillMode: 'forwards', + }, +} const fiAnim = { - forwards: fia, - backwards: fia, -}; + forwards: fia, + backwards: fia, +} ---
diff --git a/packages/host/src/layouts/Layout.astro b/packages/host/src/layouts/Layout.astro index 309a4b1..929b573 100644 --- a/packages/host/src/layouts/Layout.astro +++ b/packages/host/src/layouts/Layout.astro @@ -1,14 +1,13 @@ --- -import {ViewTransitions} from 'astro:transitions'; -import {Theme} from "../components/qwik/theme"; -import "../styles/global.css"; +import { ViewTransitions } from 'astro:transitions' +import { Theme } from '../components/qwik/theme' +import '../styles/global.css' interface Props { - title: string; + title: string } -const {title} = Astro.props; - +const { title } = Astro.props --- diff --git a/packages/host/src/layouts/PostLayout.astro b/packages/host/src/layouts/PostLayout.astro index 3aaf67d..e2ecbbd 100644 --- a/packages/host/src/layouts/PostLayout.astro +++ b/packages/host/src/layouts/PostLayout.astro @@ -1,8 +1,8 @@ --- -import "../styles/global.css"; -import BlogLayout from "./BlogLayout.astro"; -const {title} = Astro.props; -import BlogSubLayout from "./BlogSubLayout.astro"; +import '../styles/global.css' +import BlogLayout from './BlogLayout.astro' +const { title } = Astro.props +import BlogSubLayout from './BlogSubLayout.astro' --- diff --git a/packages/host/src/pages/blog.astro b/packages/host/src/pages/blog.astro index 08d2267..59f9b74 100644 --- a/packages/host/src/pages/blog.astro +++ b/packages/host/src/pages/blog.astro @@ -1,8 +1,8 @@ --- -import BlogLayout from '../layouts/BlogLayout.astro'; -import {getCollection} from 'astro:content'; -import BlogSubLayout from "../layouts/BlogSubLayout.astro"; -const blogEntries = await getCollection('blog'); +import BlogLayout from '../layouts/BlogLayout.astro' +import { getCollection } from 'astro:content' +import BlogSubLayout from '../layouts/BlogSubLayout.astro' +const blogEntries = await getCollection('blog') ---