diff --git a/.bundle/config b/.bundle/config new file mode 100644 index 0000000..decc948 --- /dev/null +++ b/.bundle/config @@ -0,0 +1,2 @@ +--- +BUNDLE_PATH: "vendor/bundle" \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e785ffd --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*~ +_site/ +Gemfile.lock +unsaved\ file* +vendor/ \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..732984d --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,15 @@ +# Contributing + +Contributions welcome! Please open a PR for simple/straightforward changes, or open an issue to discuss things before writing code. + +## Building + +I recommend using `toolbox` for local development, especially if you're on Endless OS or Fedora Silverblue. See [this blog post](https://cassidyjames.com/blog/github-pages-jekyll-fedora-silverblue/) for details on how to get set up. + +Once you're set up, build and serve locally with: + +```shell +bundle exec jekyll serve --host 0.0.0.0 +``` + +The site should now be available at http://0.0.0.0:4000/ on your local machine, and your local machine's IP address on your network—great for testing on mobile OSes. diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..833a30c --- /dev/null +++ b/Gemfile @@ -0,0 +1,6 @@ +source 'https://rubygems.org' +gem 'github-pages', group: :jekyll_plugins +gem 'jekyll-sitemap', group: :jekyll_plugins +gem 'jekyll-redirect-from' + +gem 'webrick', '~> 1.7' diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..bf4cc90 --- /dev/null +++ b/_config.yml @@ -0,0 +1,19 @@ +title: ROOST Community Playground +description: A collection of community projects, experiments, and demos built on or from ROOST open source projects. +theme-color: "rgb(238, 238, 0)" + +mastodon: + handle: "@roost@hachyderm.io" + url: "https://hachyderm.io/@roost" +bluesky: + handle: "@roost.tools" + url: "https://bsky.app/profile/roost.tools" + +markdown: kramdown +kramdown: + syntax_highlighter: rouge + +plugins: + - jekyll-feed + - jekyll-redirect-from + - jekyll-sitemap \ No newline at end of file diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..3f3d4e1 --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,40 @@ +--- +layout: default +--- + + + + + + + + {% if page.title %}{{ page.title }} ⋅ {% endif %}{{ site.title }} + + + + + + + + + + + + + + + + + +
+ +
+
+ {{ content }} +
+ + + diff --git a/index.html b/index.html index cfecaed..5df078e 100644 --- a/index.html +++ b/index.html @@ -1,193 +1,45 @@ - - - - - - Playground · ROOST (Robust Open Online Safety Tools) - - - - - - -
- -
-
-

ROOST Playground

-

A collection of community projects, experiments, and demos built on or from ROOST open source projects.

-

Projects on this page are not developed or endorsed by ROOST.

- -
- - - +--- +layout: default +--- + +

ROOST Playground

+

A collection of community projects, experiments, and demos built on or from ROOST open source projects.

+

Projects on this page are not developed or endorsed by ROOST, and may not be intended for production use. Check each project’s documentation for details.

+ diff --git a/style.css b/style.css new file mode 100644 index 0000000..ff0f1d8 --- /dev/null +++ b/style.css @@ -0,0 +1,128 @@ +:root { + --roost-gray: rgb(187, 193, 190); + --roost-dark: hsl(80, 22%, 13%); + --roost-yellow: rgb(238, 238, 0); + --roost-peach: rgb(247, 187, 128); + --roost-muddy: rgb(229, 217, 136); + + --bg: white; + --fg: var(--roost-dark); + --font-sans: "Funnel Sans", sans-serif; + --font-display: "Funnel Display", sans-serif; + --max-width: 800px; + + background-color: var(--bg); + color: var(--fg); + color-scheme: light dark; + font-family: var(--font-sans); + font-optical-sizing: auto; + font-style: normal; + scroll-behavior: smooth; + text-wrap: balance; +} + +@media (prefers-color-scheme: dark) { + :root { + --bg: var(--roost-dark); + --fg: rgba(255, 255, 255, 0.9); + } +} + +*, *::before, *::after { + box-sizing: border-box; +} + +html, body { + margin: 0; +} + +@media (min-width: 320px) { + body { + font-size: 15px; + } +} + +@media (min-width: 600px) { + body { + font-size: 18px; + } +} + +header { + background-color: var(--roost-dark); + color: var(--roost-yellow); + padding-block: 1em; +} + +header nav { + display: flex; + justify-content: space-between; + margin-inline: auto; + max-width: var(--max-width); + padding-inline: 1rem; +} + +header nav a { + color: inherit; +} + +main { + margin-inline: auto; + max-width: var(--max-width); + padding-inline: 1rem; +} + +h1, h2, h3, h4, h5, h6 { + font-family: var(--font-display); +} + +h1 { + margin-top: 2em; +} + +h1 + p { + font-size: 1.2em; + line-height: 1.33; +} + +ul#projects { + display: flex; + flex-wrap: wrap; + gap: 1em; + list-style: none; + margin-block-start: 3em; + padding: 0; +} + +#projects a { + --project-color: var(--roost-yellow); + border: 2px dashed var(--project-color); + border-radius: 1em; + color: inherit; + display: block; + padding: 1em 1.5em; + text-decoration: none; +} + +#projects li:nth-child(3n-1) a { + --project-color: var(--roost-peach); +} + +#projects li:nth-child(3n) a { + --project-color: var(--roost-muddy); +} + +#projects a:hover, +#projects a:focus { + background-color: color-mix(var(--project-color) 10%, transparent); +} + +#projects h2 { + margin: 0 auto 0.5em; + padding: 0; +} + +#projects p { + margin: 0 auto; + padding: 0; +}