diff --git a/.eleventy.js b/.eleventy.js index 16ddd86..019091b 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -2,6 +2,7 @@ const syntaxHighlight = require('@11ty/eleventy-plugin-syntaxhighlight'); const pluginRss = require('@11ty/eleventy-plugin-rss'); const timeToRead = require('eleventy-plugin-time-to-read'); const safeLinks = require('@sardine/eleventy-plugin-external-links'); +const eleventySass = require("@11tyrocks/eleventy-plugin-sass-lightningcss"); module.exports = function (eleventyConfig) { const parseDate = (str) => { @@ -23,6 +24,7 @@ module.exports = function (eleventyConfig) { eleventyConfig.addPlugin(syntaxHighlight); eleventyConfig.addPlugin(timeToRead); eleventyConfig.addPlugin(safeLinks); + eleventyConfig.addPlugin(eleventySass); eleventyConfig.addPassthroughCopy({ "src/static": "/" }); diff --git a/package-lock.json b/package-lock.json index 45d008f..5734be9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "@11ty/eleventy": "^v2.0.0-beta.1", "@11ty/eleventy-plugin-rss": "^1.2.0", "@11ty/eleventy-plugin-syntaxhighlight": "^4.0.0", + "@11tyrocks/eleventy-plugin-sass-lightningcss": "^1.0.3", "@sardine/eleventy-plugin-external-links": "^1.4.0", "eleventy-plugin-time-to-read": "^1.3.0" } @@ -157,6 +158,16 @@ "url": "https://opencollective.com/11ty" } }, + "node_modules/@11tyrocks/eleventy-plugin-sass-lightningcss": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@11tyrocks/eleventy-plugin-sass-lightningcss/-/eleventy-plugin-sass-lightningcss-1.0.3.tgz", + "integrity": "sha512-7QldZK6dsvURTDyiSJg1uXBiuQy+xYichq3oRClNiGf2mgp0jzagDiej56Xp/TGzjQ+goiB28bITLNAbvK/UiA==", + "dependencies": { + "browserslist": "^4.21.5", + "lightningcss": "^1.20.0", + "sass": "^1.62.0" + } + }, "node_modules/@babel/helper-string-parser": { "version": "7.21.5", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", @@ -584,6 +595,33 @@ "node": ">=8" } }, + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -596,6 +634,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/caniuse-lite": { + "version": "1.0.30001488", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001488.tgz", + "integrity": "sha512-NORIQuuL4xGpIy6iCCQGN4iFjlBXtfKWIenlUuyZJumLRIindLb7wXM+GO8erEhb7vXfcnf4BAg2PrSDN5TNLQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -751,6 +808,17 @@ "node": ">= 0.6.0" } }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/dev-ip": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", @@ -837,6 +905,11 @@ "node": ">=0.10.0" } }, + "node_modules/electron-to-chromium": { + "version": "1.4.401", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.401.tgz", + "integrity": "sha512-AswqHsYyEbfSn0x87n31Na/xttUqEAg7NUjpiyxC20MaWKLyadOYHMzyLdF78N1iw+FK8/2KHLpZxRdyRILgtA==" + }, "node_modules/eleventy-plugin-time-to-read": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/eleventy-plugin-time-to-read/-/eleventy-plugin-time-to-read-1.3.0.tgz", @@ -883,6 +956,14 @@ "errno": "cli.js" } }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -1210,6 +1291,11 @@ "node": ">= 0.10" } }, + "node_modules/immutable": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", + "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==" + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -1426,6 +1512,183 @@ "node": ">=6" } }, + "node_modules/lightningcss": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.20.0.tgz", + "integrity": "sha512-4bj8aP+Vi+or8Gwq/hknmicr4PmA8D9uL/3qY0N0daX5vYBMYERGI6Y93nzoeRgQMULq+gtrN/FvJYtH0xNN8g==", + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.20.0", + "lightningcss-darwin-x64": "1.20.0", + "lightningcss-linux-arm-gnueabihf": "1.20.0", + "lightningcss-linux-arm64-gnu": "1.20.0", + "lightningcss-linux-arm64-musl": "1.20.0", + "lightningcss-linux-x64-gnu": "1.20.0", + "lightningcss-linux-x64-musl": "1.20.0", + "lightningcss-win32-x64-msvc": "1.20.0" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.20.0.tgz", + "integrity": "sha512-aYEohJTlzwB8URJaNiS57tMbjyLub0mYvxlxKQk8SZv+irXx6MoBWpDNQKKTS9gg1pGf/eAwjpa3BLAoCBsh1A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.20.0.tgz", + "integrity": "sha512-cmMgY8FFWVaGgtift7eKKkHMqlz9O09/yTdlCXEDOeDP9yeo6vHOBTRP7ojb368kjw8Ew3l0L2uT1Gtx56eNkg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.20.0.tgz", + "integrity": "sha512-/m+NDO1O6JCv7R9F0XWlXcintQHx4MPNU+kt8jZJO07LLdGwCfvjN31GVcwVPlStnnx/cU8uTTmax6g/Qu/whg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.20.0.tgz", + "integrity": "sha512-gtXoa6v0HvMRLbev6Hsef0+Q5He7NslB+Rs7G49Y5LUSdJeGIATEN+j8JzHC0DnxCsOGbEgGRmvtJzzYDkkluw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.20.0.tgz", + "integrity": "sha512-Po7XpucM1kZnkiyd2BNwTExSDcZ8jm8uB9u+Sq44qjpkf5f75jreQwn3DQm9I1t5C6tB9HGt30HExMju9umJBQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.20.0.tgz", + "integrity": "sha512-8yR/fGNn/P0I+Lc3PK+VWPET/zdSpBfHFIG0DJ38TywMbItVKvnFvoTBwnIm4LqBz7g2G2dDexnNP95za2Ll8g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.20.0.tgz", + "integrity": "sha512-EmpJ+VkPZ8RACiB4m+l8TmapmE1W2UvJKDHE+ML/3Ihr9tRKUs3CibfnQTFZC8aSsrxgXagDAN+PgCDDhIyriA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.20.0.tgz", + "integrity": "sha512-BRdPvbq7Cc1qxAzp2emqWJHrqsEkf4ggxS29VOnxT7jhkdHKU+a26OVMjvm/OL0NH0ToNOZNAPvHMSexiEgBeA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/linkedom": { "version": "0.14.26", "resolved": "https://registry.npmjs.org/linkedom/-/linkedom-0.14.26.tgz", @@ -1689,6 +1952,11 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, + "node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -1806,6 +2074,11 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==" }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -2203,6 +2476,22 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/sass": { + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.62.1.tgz", + "integrity": "sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==", + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/section-matter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", @@ -2277,6 +2566,14 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -2385,6 +2682,35 @@ "node": ">= 0.8" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/void-elements": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", diff --git a/package.json b/package.json index ab88c08..114a5fa 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "@11ty/eleventy": "^v2.0.0-beta.1", "@11ty/eleventy-plugin-rss": "^1.2.0", "@11ty/eleventy-plugin-syntaxhighlight": "^4.0.0", + "@11tyrocks/eleventy-plugin-sass-lightningcss": "^1.0.3", "@sardine/eleventy-plugin-external-links": "^1.4.0", "eleventy-plugin-time-to-read": "^1.3.0" } diff --git a/src/_includes/layouts/default.njk b/src/_includes/layouts/default.njk index 714b4c9..1a2588d 100644 --- a/src/_includes/layouts/default.njk +++ b/src/_includes/layouts/default.njk @@ -4,7 +4,7 @@ {{ title if title else site.title }} - + diff --git a/src/css/css.json b/src/css/css.json new file mode 100644 index 0000000..45b2b90 --- /dev/null +++ b/src/css/css.json @@ -0,0 +1,3 @@ +{ + "eleventyExcludeFromCollections": true +} \ No newline at end of file diff --git a/src/css/style.scss b/src/css/style.scss new file mode 100644 index 0000000..755037c --- /dev/null +++ b/src/css/style.scss @@ -0,0 +1,160 @@ +html { + background-color: rgb(236, 169, 203); + color: rgb(92, 53, 124); +} + +a { + color: rgb(255, 0, 140); +} + +.like-a { + color: rgb(255, 0, 140); + text-decoration: underline; +} + +a.active, +li.lavender-webring-curr-site>a { + color: rgb(195, 0, 255); +} + +#site_header { + padding-bottom: 5px; + border-bottom: 1px solid rgb(255, 0, 140); +} + +footer { + padding-top: 5px; +} + +.footer-kitten { + height: 88px; + border-bottom: 1px solid rgb(255, 0, 140); + margin-bottom: 5px; + + >img { + height: 88px; + } +} + +footer, +#site_header, +.lavender-webring-container { + text-align: center; +} + +.list-entry { + list-style-type: none; + + h2 { + margin-bottom: 0; + } +} + +#content { + max-width: 900px; + margin-left: auto; + margin-right: auto; + padding-top: 2em; + padding-bottom: 2em; +} + +.byline { + font-size: 0.75rem; +} + +.middot::after { + content: '\00B7'; + display: inline-block; +} + +time, +.author, +.updated { + font-weight: bold; +} + +.article_header, +.page_header { + padding-bottom: 4px; + border-bottom: 1px dotted rgb(219, 103, 167); +} + +.article_header>h1, +.page_header>h1 { + margin: 0.1rem; +} + +img { + max-width: 75%; +} + +.tag { + font-weight: bold; +} + +.banner-link { + color: inherit; + text-decoration: inherit; +} + +.kofi-banner { + border-radius: 8px; + padding: 4px; + border: 2px solid rgb(255, 0, 140); + background-color: rgba(221, 116, 174, 0.211); + font-size: 1.1rem; +} + +.content-warnings { + border-radius: 8px; + padding: 4px; + border: 2px solid rgb(255, 0, 140); + background-color: rgba(221, 116, 174, 0.211); + font-size: 1.1rem; + margin-top: 16px; + margin-bottom: 16px; + width: fit-content; + + >p { + margin: 0; + } +} + +.greentext { + color: #789922; +} + +.lavender-webring-container, +.sleepy-zone-webring-container { + all: unset; + display: flex; + flex-direction: column; + padding: 1em; + font-size: 1.125rem; +} + +.lavender-webring-description, +.sleepy-zone-webring-description { + margin-block-end: 0.5em; +} + +.lavender-webring-site-links, +.sleepy-zone-webring-site-links { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + list-style: none; + margin: 0; + padding: 0; +} + +.lavender-webring-prev-site a::before, +.sleepy-zone-webring-prev-site a::before { + content: "←"; + margin-inline-end: 1ch; +} + +.lavender-webring-next-site a::after, +.sleepy-zone-webring-next-site a::after { + content: "→"; + margin-inline-start: 1ch; +} \ No newline at end of file