From 7a7c6ab45627bf5c57dcb08c9a87dc69ba0910d9 Mon Sep 17 00:00:00 2001 From: Henrique Ramos Date: Sat, 14 Dec 2024 12:22:55 -0300 Subject: [PATCH] initial commit --- package.json | 7 +- pnpm-lock.yaml | 217 +++++++++++++++++++- src/assets/astro.svg | 1 - src/assets/background.svg | 1 - src/components/Welcome.astro | 209 ------------------- src/content/config.ts | 13 ++ src/content/presentations/statex-gamedev.md | 148 +++++++++++++ src/layouts/BaseLayout.astro | 40 ++++ src/layouts/Layout.astro | 22 -- src/layouts/SlideLayout.astro | 43 ++++ src/pages/[slug].astro | 21 ++ src/themes/hnrq.scss | 36 ++++ tsconfig.json | 12 ++ 13 files changed, 531 insertions(+), 239 deletions(-) delete mode 100644 src/assets/astro.svg delete mode 100644 src/assets/background.svg delete mode 100644 src/components/Welcome.astro create mode 100644 src/content/config.ts create mode 100644 src/content/presentations/statex-gamedev.md create mode 100644 src/layouts/BaseLayout.astro delete mode 100644 src/layouts/Layout.astro create mode 100644 src/layouts/SlideLayout.astro create mode 100644 src/pages/[slug].astro create mode 100644 src/themes/hnrq.scss diff --git a/package.json b/package.json index e3d55e9..d2f75cb 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,11 @@ "astro": "astro" }, "dependencies": { - "astro": "^5.0.5" + "astro": "^5.0.5", + "reveal.js": "^5.1.0", + "sass": "^1.83.0" + }, + "devDependencies": { + "@types/reveal.js": "^5.0.4" } } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 220d216..3bf4636 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,7 +7,18 @@ settings: dependencies: astro: specifier: ^5.0.5 - version: 5.0.5(typescript@5.7.2) + version: 5.0.5(sass@1.83.0)(typescript@5.7.2) + reveal.js: + specifier: ^5.1.0 + version: 5.1.0 + sass: + specifier: ^1.83.0 + version: 1.83.0 + +devDependencies: + '@types/reveal.js': + specifier: ^5.0.4 + version: 5.0.4 packages: @@ -733,6 +744,149 @@ packages: resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} dev: false + /@parcel/watcher-android-arm64@2.5.0: + resolution: {integrity: sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@parcel/watcher-darwin-arm64@2.5.0: + resolution: {integrity: sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@parcel/watcher-darwin-x64@2.5.0: + resolution: {integrity: sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@parcel/watcher-freebsd-x64@2.5.0: + resolution: {integrity: sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + /@parcel/watcher-linux-arm-glibc@2.5.0: + resolution: {integrity: sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@parcel/watcher-linux-arm-musl@2.5.0: + resolution: {integrity: sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@parcel/watcher-linux-arm64-glibc@2.5.0: + resolution: {integrity: sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@parcel/watcher-linux-arm64-musl@2.5.0: + resolution: {integrity: sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@parcel/watcher-linux-x64-glibc@2.5.0: + resolution: {integrity: sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@parcel/watcher-linux-x64-musl@2.5.0: + resolution: {integrity: sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@parcel/watcher-win32-arm64@2.5.0: + resolution: {integrity: sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@parcel/watcher-win32-ia32@2.5.0: + resolution: {integrity: sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@parcel/watcher-win32-x64@2.5.0: + resolution: {integrity: sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@parcel/watcher@2.5.0: + resolution: {integrity: sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==} + engines: {node: '>= 10.0.0'} + requiresBuild: true + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.8 + node-addon-api: 7.1.1 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.5.0 + '@parcel/watcher-darwin-arm64': 2.5.0 + '@parcel/watcher-darwin-x64': 2.5.0 + '@parcel/watcher-freebsd-x64': 2.5.0 + '@parcel/watcher-linux-arm-glibc': 2.5.0 + '@parcel/watcher-linux-arm-musl': 2.5.0 + '@parcel/watcher-linux-arm64-glibc': 2.5.0 + '@parcel/watcher-linux-arm64-musl': 2.5.0 + '@parcel/watcher-linux-x64-glibc': 2.5.0 + '@parcel/watcher-linux-x64-musl': 2.5.0 + '@parcel/watcher-win32-arm64': 2.5.0 + '@parcel/watcher-win32-ia32': 2.5.0 + '@parcel/watcher-win32-x64': 2.5.0 + dev: false + optional: true + /@rollup/pluginutils@5.1.3: resolution: {integrity: sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==} engines: {node: '>=14.0.0'} @@ -972,6 +1126,10 @@ packages: '@types/unist': 3.0.3 dev: false + /@types/reveal.js@5.0.4: + resolution: {integrity: sha512-70Qua903NRU736r8Z94okthf6hXKm+brta/KdHFrK6GD16eTmGhPrDYGCUP7eNifEA2mvJGlNq1IR41ycIX0Yw==} + dev: true + /@types/unist@3.0.3: resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} dev: false @@ -1026,7 +1184,7 @@ packages: resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} dev: false - /astro@5.0.5(typescript@5.7.2): + /astro@5.0.5(sass@1.83.0)(typescript@5.7.2): resolution: {integrity: sha512-xfptdmurDsQcj/Anc7mU+eKlcyV7ppJIlmaSwhX3ZWwK5N/0rGKVmUqnuILgR6MB0XVJiIfublNzDGoyj4Q6BQ==} engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true @@ -1080,7 +1238,7 @@ packages: ultrahtml: 1.5.3 unist-util-visit: 5.0.0 vfile: 6.0.3 - vite: 6.0.3 + vite: 6.0.3(sass@1.83.0) vitefu: 1.0.4(vite@6.0.3) which-pm: 3.0.0 xxhash-wasm: 1.1.0 @@ -1168,6 +1326,13 @@ packages: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} dev: false + /chokidar@4.0.1: + resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} + engines: {node: '>= 14.16.0'} + dependencies: + readdirp: 4.0.2 + dev: false + /ci-info@4.1.0: resolution: {integrity: sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==} engines: {node: '>=8'} @@ -1259,6 +1424,14 @@ packages: engines: {node: '>=6'} dev: false + /detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + requiresBuild: true + dev: false + optional: true + /detect-libc@2.0.3: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} @@ -1606,6 +1779,10 @@ packages: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} dev: false + /immutable@5.0.3: + resolution: {integrity: sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==} + dev: false + /import-meta-resolve@4.1.0: resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} dev: false @@ -1625,6 +1802,7 @@ packages: /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + requiresBuild: true dev: false /is-fullwidth-code-point@3.0.0: @@ -2160,6 +2338,12 @@ packages: '@types/nlcst': 2.0.3 dev: false + /node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + requiresBuild: true + dev: false + optional: true + /oniguruma-to-es@0.7.0: resolution: {integrity: sha512-HRaRh09cE0gRS3+wi2zxekB+I5L8C/gN60S+vb11eADHUaB/q4u8wGGOX3GvwvitG8ixaeycZfeoyruKQzUgNg==} dependencies: @@ -2294,6 +2478,11 @@ packages: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: false + /readdirp@4.0.2: + resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} + engines: {node: '>= 14.16.0'} + dev: false + /regex-recursion@4.3.0: resolution: {integrity: sha512-5LcLnizwjcQ2ALfOj95MjcatxyqF5RPySx9yT+PaXu3Gox2vyAtLDjHB8NTJLtMGkvyau6nI3CfpwFCjPUIs/A==} dependencies: @@ -2433,6 +2622,11 @@ packages: engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: false + /reveal.js@5.1.0: + resolution: {integrity: sha512-KDt7m0+xwKV6nAZt4CNPVFBf42sTKRQapg0bGGKB5PKO5XvChnMfwlZkybydHiQJ7p5+6LbHKRGrhXODdoNIaA==} + engines: {node: '>=18.0.0'} + dev: false + /rollup@4.28.1: resolution: {integrity: sha512-61fXYl/qNVinKmGSTHAZ6Yy8I3YIJC/r2m9feHo6SwVAVcLT5MPwOUFe7EuURA/4m0NR8lXG4BBXuo/IZEsjMg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -2468,6 +2662,18 @@ packages: queue-microtask: 1.2.3 dev: false + /sass@1.83.0: + resolution: {integrity: sha512-qsSxlayzoOjdvXMVLkzF84DJFc2HZEL/rFyGIKbbilYtAvlCxyuzUeff9LawTn4btVnLKg75Z8MMr1lxU1lfGw==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + chokidar: 4.0.1 + immutable: 5.0.3 + source-map-js: 1.2.1 + optionalDependencies: + '@parcel/watcher': 2.5.0 + dev: false + /semver@7.6.3: resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} @@ -2731,7 +2937,7 @@ packages: vfile-message: 4.0.2 dev: false - /vite@6.0.3: + /vite@6.0.3(sass@1.83.0): resolution: {integrity: sha512-Cmuo5P0ENTN6HxLSo6IHsjCLn/81Vgrp81oaiFFMRa8gGDj5xEjIcEpf2ZymZtZR8oU0P2JX5WuUp/rlXcHkAw==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true @@ -2774,6 +2980,7 @@ packages: esbuild: 0.24.0 postcss: 8.4.49 rollup: 4.28.1 + sass: 1.83.0 optionalDependencies: fsevents: 2.3.3 dev: false @@ -2786,7 +2993,7 @@ packages: vite: optional: true dependencies: - vite: 6.0.3 + vite: 6.0.3(sass@1.83.0) dev: false /web-namespaces@2.0.1: diff --git a/src/assets/astro.svg b/src/assets/astro.svg deleted file mode 100644 index 8cf8fb0..0000000 --- a/src/assets/astro.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/assets/background.svg b/src/assets/background.svg deleted file mode 100644 index 4b2be0a..0000000 --- a/src/assets/background.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/components/Welcome.astro b/src/components/Welcome.astro deleted file mode 100644 index 6b7b9c7..0000000 --- a/src/components/Welcome.astro +++ /dev/null @@ -1,209 +0,0 @@ ---- -import astroLogo from '../assets/astro.svg'; -import background from '../assets/background.svg'; ---- - -
- -
-
- Astro Homepage -

- To get started, open the
src/pages
directory in your project. -

- -
-
- - - -

What's New in Astro 5.0?

-

- From content layers to server islands, click to learn more about the new features and - improvements in Astro 5.0 -

-
-
- - diff --git a/src/content/config.ts b/src/content/config.ts new file mode 100644 index 0000000..63559f4 --- /dev/null +++ b/src/content/config.ts @@ -0,0 +1,13 @@ +import { defineCollection, z } from "astro:content"; +import { glob } from "astro/loaders"; // Not available with legacy API + +const presentations = defineCollection({ + schema: z.object({ + title: z.string(), + description: z.string(), + authors: z.array(z.string()), + publishedAt: z.coerce.date(), + }), +}); + +export const collections = { presentations }; diff --git a/src/content/presentations/statex-gamedev.md b/src/content/presentations/statex-gamedev.md new file mode 100644 index 0000000..0180462 --- /dev/null +++ b/src/content/presentations/statex-gamedev.md @@ -0,0 +1,148 @@ +--- +title: "Finite State Machines with XState for Game Development using Three.js" +authors: ["Henrique Ramos"] +publishedAt: 2024-12-13 +description: "Using XState Finite State Machines to coordinate character actions in a Three.js game" +--- + +
+
+

What is a Finite State Machine (FSM)?

+
    +
  • + A mathematical model of computation that consists of a set of states and + transitions between those states. +
  • +
  • Used to represent systems with a finite number of states.
  • +
  • Well-suited for modeling complex game behaviors.
  • +
+
+
+

Visualizing FSMs

+ +
+
+
+

Why use FSMs in Game Development?

+ +
+ +
+

Introducing XState

+ +
+ +
+

Key Features of XState

+ +
+ +
+

Integrating XState with Three.js

+ +
+ +
+

Mapping XState States to Game Objects

+ +
+ +
+

Handling Game Events and Input

+ +
+ +
+

Advanced Techniques

+ +
+ +
+

Conclusion

+ +By leveraging XState, you can create more robust, flexible, and maintainable +game behaviors. XState's powerful features and intuitive state chart design +make it an excellent choice for game development using Three.js. + +
+
+

Finite State Machine

+ +
+
+

FSM in action

+ + Available at hnrq.dev +
+ +
+

References

+ +
diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro new file mode 100644 index 0000000..d49f90d --- /dev/null +++ b/src/layouts/BaseLayout.astro @@ -0,0 +1,40 @@ +--- +interface Props { + title: string; +} + +const { title } = Astro.props; +--- + + + + + + + + + + + + {title} + + + + + + + + diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro deleted file mode 100644 index e455c61..0000000 --- a/src/layouts/Layout.astro +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - Astro Basics - - - - - - - diff --git a/src/layouts/SlideLayout.astro b/src/layouts/SlideLayout.astro new file mode 100644 index 0000000..b88e949 --- /dev/null +++ b/src/layouts/SlideLayout.astro @@ -0,0 +1,43 @@ +--- +export interface Props { + title: string; + authors: string[]; + description?: string; +} +import Layout from "./BaseLayout.astro"; +import "@themes/hnrq.scss"; + +const { title, authors, description } = Astro.props; +--- + + + + {description && } + {authors.map((author) => )} + + + +
+
+
+

{title}

+ {authors} +
+ +
+
+ +
diff --git a/src/pages/[slug].astro b/src/pages/[slug].astro new file mode 100644 index 0000000..c9bca3c --- /dev/null +++ b/src/pages/[slug].astro @@ -0,0 +1,21 @@ +--- +import SlideLayout from "@layouts/SlideLayout.astro"; +import { getCollection } from "astro:content"; +// 1. Generate a new path for every collection entry +export const getStaticPaths = async () => + (await getCollection("presentations")).map((presentation) => ({ + params: { slug: presentation.slug }, + props: { presentation }, + })); + +const { presentation } = Astro.props; +const { Content } = await presentation.render(); +--- + + + + diff --git a/src/themes/hnrq.scss b/src/themes/hnrq.scss new file mode 100644 index 0000000..36e687f --- /dev/null +++ b/src/themes/hnrq.scss @@ -0,0 +1,36 @@ +// Default mixins and settings ----------------- +@use "sass:color"; +@import "reveal.js/css/theme/template/mixins"; +@import "reveal.js/css/theme/template/settings"; +// --------------------------------------------- + +// Include theme-specific fonts +@import url("https://fonts.googleapis.com/css2?family=Anaheim:wght@400..800&family=Overpass+Mono:wght@300..700&display=swap"); + +$mainColor: #fff; +$headingColor: $mainColor; +$headingTextShadow: #aaa; +$backgroundColor: #000; +$linkColor: #aaaaff; +$linkColorHover: color.scale($linkColor, $lightness: 20%); +$selectionBackgroundColor: #888; + +$overlayElementBgColor: 0, 0, 0; +$overlayElementFgColor: 240, 240, 240; +$headingFont: "Overpass Mono", monospace; +$heading2Size: 3.5rem; +$headingFontWeight: 800; +$headingTextTransform: none; +$mainFont: "Anaheim", sans-serif; + +// Background generator +@mixin bodyBackground() { + background: $backgroundColor; +} + +// Change text colors against dark slide backgrounds +@include dark-bg-text-color($backgroundColor); + +// Theme template ------------------------------ +@import "reveal.js/css/theme/template/theme"; +// --------------------------------------------- diff --git a/tsconfig.json b/tsconfig.json index 8bf91d3..7f49e38 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,17 @@ { "extends": "astro/tsconfigs/strict", "include": [".astro/types.d.ts", "**/*"], + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@components/*": ["src/components/*"], + "@layouts/*": ["src/layouts/*"], + "@assets/*": ["src/assets/*"], + "@themes/*": ["src/themes/*"] + }, + "moduleResolution": "Bundler", + "strictNullChecks": true, + "allowJs": true + }, "exclude": ["dist"] }