diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml
new file mode 100644
index 0000000..9acc6de
--- /dev/null
+++ b/.github/workflows/node.js.yml
@@ -0,0 +1,32 @@
+name: CI
+
+on:
+ push:
+ branches: ['main']
+ pull_request:
+ branches: ['main']
+
+env:
+ # we call `pnpm playwright install` instead
+ PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: '1'
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+
+ strategy:
+ matrix:
+ node-version: [18.x]
+ # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
+
+ steps:
+ - uses: actions/checkout@v3
+ - uses: pnpm/action-setup@v2.2.4
+ - name: Use Node.js ${{ matrix.node-version }}
+ uses: actions/setup-node@v3
+ with:
+ node-version: ${{ matrix.node-version }}
+ cache: 'pnpm'
+ - run: pnpm install --frozen-lockfile
+ - run: pnpm playwright install chromium
+ - run: pnpm test
diff --git a/content/tutorial/01-svelte/01-introduction/03-dynamic-attributes/README.md b/content/tutorial/01-svelte/01-introduction/03-dynamic-attributes/README.md
index e03524b..6c32523 100644
--- a/content/tutorial/01-svelte/01-introduction/03-dynamic-attributes/README.md
+++ b/content/tutorial/01-svelte/01-introduction/03-dynamic-attributes/README.md
@@ -32,5 +32,5 @@ It's not uncommon to have an attribute where the name and value are the same, li
```svelte
/// file: App.svelte
-
+
```
diff --git a/src/app.css b/src/app.css
index ad8d0b4..f2bbb57 100644
--- a/src/app.css
+++ b/src/app.css
@@ -23,6 +23,9 @@ button:focus-visible {
pre.language-diff code {
color: rgba(0, 0, 0, 0.4);
}
+.dark pre.language-diff code {
+ color: rgba(255, 255, 255, 0.4);
+}
.language-diff .inserted,
.language-diff .deleted {